fix: run Telegram storage tests on an isolated database

CI workers were sharing one SQLite file, so schema setup locked and storage_object_refs was missing.
This commit is contained in:
O96u committed 2026-10-09 15:47:09 +08:00
1 parent cc19dc6435
commit 10baf9d489
1 file changed
+27 -2
+27 -2
View File
@@ -1,4 +1,8 @@
import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest' import { mkdtempSync, rmSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { describe, expect, it, vi, beforeAll, beforeEach, afterAll, afterEach } from 'vitest'
import { closeDb } from '../db'
import { import {
parseTelegramConfig, parseTelegramConfig,
parseTelegramSecrets, parseTelegramSecrets,
@@ -57,6 +61,23 @@ describe('telegram config', () => {
describe('TelegramStorageBackend', () => { describe('TelegramStorageBackend', () => {
const backendId = 'tg-test' const backendId = 'tg-test'
const key = 'images/2026/01/test.webp' const key = 'images/2026/01/test.webp'
const tempDir = mkdtempSync(join(tmpdir(), 'pichost-tg-'))
const previousDataDir = process.env.DATA_DIR
beforeAll(() => {
process.env.DATA_DIR = tempDir
closeDb()
})
afterAll(() => {
closeDb()
if (previousDataDir === undefined) {
delete process.env.DATA_DIR
} else {
process.env.DATA_DIR = previousDataDir
}
rmSync(tempDir, { recursive: true, force: true })
})
beforeEach(() => { beforeEach(() => {
ensureStorageSchema() ensureStorageSchema()
@@ -75,7 +96,11 @@ describe('TelegramStorageBackend', () => {
}) })
afterEach(() => { afterEach(() => {
deleteStorageObjectRef(backendId, key) try {
deleteStorageObjectRef(backendId, key)
} catch {
// schema setup may have failed before the ref table existed
}
vi.unstubAllGlobals() vi.unstubAllGlobals()
}) })