Files
bilin/tests/main/auto-plan.test.ts

32 lines
1.3 KiB
TypeScript

import { describe, it, expect } from 'vitest'
import { DatabaseSync } from 'node:sqlite'
import { migrate } from '../../src/main/db/migrate'
import { AiSessionRepository } from '../../src/main/db/repositories/ai-session.repo'
import { AutoWritingService } from '../../src/main/services/auto-writing.service'
import { AiClientService } from '../../src/main/services/ai-client.service'
import { DEFAULT_AI_CONFIG } from '../../src/shared/types'
const AI_TEST_CONFIG = { ...DEFAULT_AI_CONFIG, timeoutMs: 240_000, maxTokens: 4096 }
const CONTEXT = '林远站在演武场中央,众人目光汇聚,等待入门考核开始。'
describe('AutoWritingService.planScenes', () => {
const service = (db: DatabaseSync) =>
new AutoWritingService(db, new AiClientService(() => AI_TEST_CONFIG))
it('IT-AUTO-01: planScenes returns >=2 scenes', async () => {
const db = new DatabaseSync(':memory:')
migrate(db)
const session = new AiSessionRepository(db).create('t', DEFAULT_AI_CONFIG.model)
const svc = service(db)
const flow = svc.start(session.id)
svc.setGoal(flow.id, {
chapterGoal: '林远通过入门考核,展现天赋震惊众人',
wordMin: 800,
wordMax: 1500
})
const plan = await svc.planScenes(flow.id, CONTEXT)
expect(plan.scenes.length).toBeGreaterThanOrEqual(2)
db.close()
}, 360_000)
})