import { describe, expect, it } from 'vitest'; import { normalizeCustomWorldProfileRecord } from './customWorldLibrary'; describe('normalizeCustomWorldProfileRecord role asset descriptions', () => { it('保留草稿生成阶段产出的角色形象描述字段', () => { const profile = normalizeCustomWorldProfileRecord({ name: '雾港归航', settingText: '海雾旧案', playableNpcs: [ { name: '岑灯', title: '返乡守灯人', role: '主角代理', description: '追查旧案的人', visualDescription: '瘦高守灯人披深蓝旧雨衣,腰挂铜灯与卷边海图,眼下有长期失眠的青影。', actionDescription: '抬灯照出雾中航线,侧身抽出卷边海图迅速标记。', sceneVisualDescription: '旧灯塔石阶被潮水打湿,青白灯火照着雾中海图。', }, ], storyNpcs: [ { name: '议长甲', title: '群岛议长', role: '遮掩者', description: '压住旧档的人', visualDescription: '银发议长穿硬挺黑色长礼服,胸前别着海鸟徽章,手套边缘沾着档案灰。', actionDescription: '用印信压住卷宗,抬手示意巡海队封锁出口。', sceneVisualDescription: '议会厅高窗外翻涌海雾,长桌尽头堆着封存卷宗。', }, ], }); expect(profile?.playableNpcs[0]?.visualDescription).toBe( '瘦高守灯人披深蓝旧雨衣,腰挂铜灯与卷边海图,眼下有长期失眠的青影。', ); expect(profile?.playableNpcs[0]?.actionDescription).toContain('抬灯'); expect(profile?.playableNpcs[0]?.sceneVisualDescription).toContain('旧灯塔'); expect(profile?.storyNpcs[0]?.visualDescription).toBe( '银发议长穿硬挺黑色长礼服,胸前别着海鸟徽章,手套边缘沾着档案灰。', ); expect(profile?.storyNpcs[0]?.actionDescription).toContain('印信'); expect(profile?.storyNpcs[0]?.sceneVisualDescription).toContain('议会厅'); }); });