51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
/* @vitest-environment node */
|
|
|
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
const { requestJsonMock } = vi.hoisted(() => ({
|
|
requestJsonMock: vi.fn(),
|
|
}));
|
|
|
|
import { generateRpgWorldProfile } from './rpgCreationGenerationClient';
|
|
|
|
vi.mock('../apiClient', () => ({
|
|
requestJson: requestJsonMock,
|
|
}));
|
|
|
|
vi.mock('../ai', () => ({
|
|
generateCustomWorldProfile: vi.fn(() => {
|
|
throw new Error('不应再调用前端 legacy AI 生成链');
|
|
}),
|
|
}));
|
|
|
|
describe('rpgCreationGenerationClient node runtime', () => {
|
|
beforeEach(() => {
|
|
requestJsonMock.mockReset();
|
|
requestJsonMock.mockResolvedValue({
|
|
id: 'server-rs-profile-1',
|
|
name: '服务端世界',
|
|
subtitle: '副标题',
|
|
summary: '概述',
|
|
tone: '基调',
|
|
playerGoal: '目标',
|
|
settingText: '设定',
|
|
});
|
|
});
|
|
|
|
it('uses server-rs profile generation instead of importing legacy ai', async () => {
|
|
const profile = await generateRpgWorldProfile('一个在 Node 测试中生成的世界');
|
|
|
|
expect(profile.id).toBe('server-rs-profile-1');
|
|
expect(requestJsonMock).toHaveBeenCalledWith(
|
|
'/api/runtime/custom-world/profile',
|
|
expect.objectContaining({
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
settingText: '一个在 Node 测试中生成的世界',
|
|
}),
|
|
}),
|
|
'生成自定义世界失败',
|
|
);
|
|
});
|
|
});
|