返回 oh-my-ppt
session-jobs-schema.test.ts
根目录 / tests / unit / edit-jobs / session-jobs-schema.test.ts
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
25 lines TYPESCRIPT