feat: 補齊工具一(最新章節狀態、作品用語、語言欄位、貼上章節、台詞引號檢查)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
root
2026-10-15 08:34:36 +00:00
co-authored by Claude Sonnet 5.5
parent 8c25728206
commit fb04b0fa23
7 changed files with 89 additions and 10 deletions
+21
View File
@@ -73,3 +73,24 @@ test('角色包轉成可啟動角色:代號、年齡與原作戀人', () => {
registerCharacters([c, c])
expect(CHARACTERS.filter(x => x.slug === 'demo-rin').length).toBe(1)
})
test('角色包:最新章節狀態、作品用語與語言設定進入 persona', () => {
const pack: PackLike = {
slug: 'mio', name: '澪', work: 'demo2',
persona: { selfRef: '我', address: '你', tone: '冷靜', catchphrase: '嗯', values: '誠實', taboos: '不說謊' },
axes: CHARACTERS[0]!.axes,
anime: { moe: 'm', speech: 's', emotions: 'e', kaomoji: 'k', themeColor: 'red' },
language: '繁體中文,不使用口癖',
timeline: [
{ chapter: '第1章', mood: '緊張', dialogueStyle: '客氣', monologue: '想變強', place: '學院', age: 16, relationships: [] },
{ chapter: '第2章', mood: '安心', dialogueStyle: '放鬆', monologue: '想守護', place: '街上', age: 16, relationships: [] },
],
}
const c = packToCharacter(pack, '示範二', [{ term: '魔核', definition: '力量來源' }])
const text = personaSection(c, c.axes)
expect(text).toContain('最新章節(第2章)')
expect(text).toContain('安心')
expect(text).not.toContain('緊張')
expect(text).toContain('魔核=力量來源')
expect(text).toContain('不使用口癖')
})