feat: ship v0.4.0 with interactive writing mode
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
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 { InteractiveWritingService } from '../../src/main/services/interactive-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 }
|
||||
|
||||
describe('interactive plots integration', () => {
|
||||
it('IT-INT-01: suggestPlots returns 3 options from LM Studio', async () => {
|
||||
const db = new DatabaseSync(':memory:')
|
||||
migrate(db)
|
||||
const session = new AiSessionRepository(db).create('t', AI_TEST_CONFIG.model)
|
||||
const service = new InteractiveWritingService(db, new AiClientService(() => AI_TEST_CONFIG))
|
||||
const flow = service.start(session.id)
|
||||
service.confirmContext(
|
||||
flow.id,
|
||||
{ chapterIds: [], outlineIds: [], settingIds: [], inspirationIds: [] },
|
||||
'林远参加宗门入门考核,演武场测灵石前众人围观。'
|
||||
)
|
||||
const plots = await service.suggestPlots(flow.id)
|
||||
expect(plots).toHaveLength(3)
|
||||
db.close()
|
||||
}, 180_000)
|
||||
})
|
||||
Reference in New Issue
Block a user