From 823c83eea421bed2fdafd26aae7982fe25b1f811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Krzeslak?= Date: Tue, 4 Aug 2026 00:54:15 +0200 Subject: [PATCH] test: ensure that migrateDb database always gets cleaned up --- tests/db/db.test.ts | 64 +++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/tests/db/db.test.ts b/tests/db/db.test.ts index a73cb27..f9806f6 100644 --- a/tests/db/db.test.ts +++ b/tests/db/db.test.ts @@ -150,40 +150,42 @@ test("db handles migration from version 0 to version 1", () => { const migrateDbPath = `./data/test-db-migrate-${Date.now()}.sqlite`; const migrateDb = new Database(migrateDbPath, { create: true }); - // Simulates a real v0 database state - migrateDb.exec(` - CREATE TABLE IF NOT EXISTS users ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - email TEXT NOT NULL, - password TEXT NOT NULL - ); - CREATE TABLE IF NOT EXISTS file_names ( + try { + // Simulates a real v0 database state + migrateDb.exec(` + CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT NOT NULL, + password TEXT NOT NULL + ); + CREATE TABLE IF NOT EXISTS file_names ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + job_id INTEGER NOT NULL, + file_name TEXT NOT NULL, + output_file_name TEXT NOT NULL, + FOREIGN KEY (job_id) REFERENCES jobs(id) + ); + CREATE TABLE IF NOT EXISTS jobs ( id INTEGER PRIMARY KEY AUTOINCREMENT, - job_id INTEGER NOT NULL, - file_name TEXT NOT NULL, - output_file_name TEXT NOT NULL, - FOREIGN KEY (job_id) REFERENCES jobs(id) - ); - CREATE TABLE IF NOT EXISTS jobs ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - user_id INTEGER NOT NULL, - date_created TEXT NOT NULL, - FOREIGN KEY (user_id) REFERENCES users(id) - ); - PRAGMA user_version = 0; - `); + user_id INTEGER NOT NULL, + date_created TEXT NOT NULL, + FOREIGN KEY (user_id) REFERENCES users(id) + ); + PRAGMA user_version = 0; + `); - // Now runs the real migration logic from db.ts - initializeDatabase(migrateDb); + // Now runs the real migration logic from db.ts + initializeDatabase(migrateDb); - expect(getDbVersion(migrateDb)).toBe(1); - const columnInfo = getColumnInfo(migrateDb, "file_names"); - expect(columnInfo.map((c) => c.name)).toContain("status"); - - migrateDb.close(); - if (existsSync(migrateDbPath)) unlinkSync(migrateDbPath); - if (existsSync(`${migrateDbPath}-wal`)) unlinkSync(`${migrateDbPath}-wal`); - if (existsSync(`${migrateDbPath}-shm`)) unlinkSync(`${migrateDbPath}-shm`); + expect(getDbVersion(migrateDb)).toBe(1); + const columnInfo = getColumnInfo(migrateDb, "file_names"); + expect(columnInfo.map((c) => c.name)).toContain("status"); + } finally { + if (migrateDb) migrateDb.close(); + if (existsSync(migrateDbPath)) unlinkSync(migrateDbPath); + if (existsSync(`${migrateDbPath}-wal`)) unlinkSync(`${migrateDbPath}-wal`); + if (existsSync(`${migrateDbPath}-shm`)) unlinkSync(`${migrateDbPath}-shm`); + } }); test("db enables WAL mode", () => {