| 1 | import fs from 'fs' |
| 2 | import path from 'path' |
| 3 | import { describe, expect, it } from 'vitest' |
| 4 | |
| 5 | describe('session job schema', () => { |
| 6 | it('uses one persisted job table and migrates every legacy job kind into it', () => { |
| 7 | const schemaSource = fs.readFileSync(path.resolve('src/main/db/schema.ts'), 'utf8') |
| 8 | const patchSource = fs.readFileSync(path.resolve('src/main/db/patch/index.ts'), 'utf8') |
| 9 | |
| 10 | expect(schemaSource).toContain("'session_jobs'") |
| 11 | expect(schemaSource).not.toContain("'generation_jobs'") |
| 12 | expect(schemaSource).not.toContain("'page_edit_jobs'") |
| 13 | expect(schemaSource).not.toContain("'deck_edit_jobs'") |
| 14 | expect(patchSource).toContain("client.transaction('write')") |
| 15 | expect(patchSource).toContain('ON CONFLICT(id) DO UPDATE SET') |
| 16 | expect(patchSource).toContain('NOT EXISTS (SELECT 1 FROM page_edit_jobs') |
| 17 | expect(patchSource).toContain('NOT EXISTS (SELECT 1 FROM deck_edit_jobs') |
| 18 | expect(patchSource).toContain("'page-edit'") |
| 19 | expect(patchSource).toContain("'deck-edit'") |
| 20 | expect(patchSource).toContain('DROP TABLE generation_jobs') |
| 21 | expect(patchSource).toContain('DROP TABLE page_edit_jobs') |
| 22 | expect(patchSource).toContain('DROP TABLE deck_edit_jobs') |
| 23 | }) |
| 24 | }) |
| 25 |