import { describe, expect, it } from 'vitest'; import { buildDefaultRolePromptBundle } from './customWorldRolePromptDefaults'; describe('buildDefaultRolePromptBundle', () => { it('uses model-generated role descriptions directly', () => { const result = buildDefaultRolePromptBundle({ name: '沈砺', title: '灰炬向导', role: '边路同行者', visualDescription: '灰黑短斗篷压着风痕,肩侧挂着旧路标与短弓,整个人像常年在裂潮边路里行走的人。', actionDescription: '起手先观察风向和站位,再用短弓牵制后迅速贴近补刀,动作克制但很准。', sceneVisualDescription: '他常出现的边路哨点铺着潮湿石板,旧灯火和风旗一直在晃,空气里带着将散未散的盐雾。', description: '熟悉裂潮边路的灰炬向导。', }); expect(result.visualPromptText).toBe( '灰黑短斗篷压着风痕,肩侧挂着旧路标与短弓,整个人像常年在裂潮边路里行走的人。', ); expect(result.animationPromptText).toBe( '起手先观察风向和站位,再用短弓牵制后迅速贴近补刀,动作克制但很准。', ); expect(result.scenePromptText).toBe( '他常出现的边路哨点铺着潮湿石板,旧灯火和风旗一直在晃,空气里带着将散未散的盐雾。', ); }); it('falls back to existing entity descriptions without assembling new rules', () => { const result = buildDefaultRolePromptBundle({ name: '顾潮音', title: '港口守望者', role: '场景角色', description: '总在潮雾港高处盯着来往船影的守望者。', personality: '寡言、敏锐、先看人再开口。', combatStyle: '长枪封线后借高差压制。', motivation: '想在港口旧秩序彻底崩掉前找出新的站位。', backstory: '他把许多没说出口的旧案痕迹留在港口高处。', tags: ['潮雾港', '守望', '旧案'], }); expect(result.visualPromptText).toBe('总在潮雾港高处盯着来往船影的守望者。'); expect(result.animationPromptText).toBe('长枪封线后借高差压制。'); expect(result.scenePromptText).toBe('他把许多没说出口的旧案痕迹留在港口高处。'); expect(result.visualPromptText).not.toContain('经典横版像素动作角色'); expect(result.visualPromptText).not.toContain('深色粗轮廓配合清晰大色块'); expect(result.visualPromptText).not.toContain('提示词'); }); });