This commit is contained in:
2026-05-01 22:16:01 +08:00
parent 8d46c05129
commit 33dd105630
36 changed files with 1999 additions and 236 deletions

View File

@@ -1708,7 +1708,7 @@ beforeEach(() => {
vi.mocked(streamRpgCreationMessage).mockResolvedValue(mockSession);
});
test('create hub keeps RPG, AIRP and visual novel locked', async () => {
test('create hub opens RPG while keeping AIRP and visual novel locked', async () => {
const user = userEvent.setup();
render(<TestWrapper withAuth />);
@@ -1724,9 +1724,13 @@ test('create hub keeps RPG, AIRP and visual novel locked', async () => {
expect((visualNovelButton as HTMLButtonElement).disabled).toBe(true);
const rpgButton = screen.getByRole('button', { name: //u });
expect((rpgButton as HTMLButtonElement).disabled).toBe(true);
expect(within(rpgButton).getAllByText('敬请期待').length).toBeGreaterThan(0);
expect(createRpgCreationSession).not.toHaveBeenCalled();
expect((rpgButton as HTMLButtonElement).disabled).toBe(false);
await user.click(rpgButton);
expect(createRpgCreationSession).toHaveBeenCalledTimes(1);
expect(
await screen.findByText('Agent工作区custom-world-agent-session-1'),
).toBeTruthy();
});
test('platform create hub does not prefetch hidden big fish platform data', async () => {
@@ -2437,7 +2441,7 @@ test('published puzzle detail returns to the ranking platform tab', async () =>
});
});
test('selecting locked RPG creation while logged out does not route through requireAuth', async () => {
test('selecting RPG creation while logged out routes through requireAuth', async () => {
const user = userEvent.setup();
const requireAuth = vi.fn();
@@ -2454,9 +2458,9 @@ test('selecting locked RPG creation while logged out does not route through requ
await openCreationHub(user);
const rpgButton = await screen.findByRole('button', { name: //u });
expect((rpgButton as HTMLButtonElement).disabled).toBe(true);
expect((rpgButton as HTMLButtonElement).disabled).toBe(false);
await user.click(rpgButton);
expect(requireAuth).not.toHaveBeenCalled();
expect(requireAuth).toHaveBeenCalledTimes(1);
expect(createRpgCreationSession).not.toHaveBeenCalled();
});
@@ -2582,16 +2586,16 @@ test('new creation entry maps raw bearer token errors to user-facing auth copy',
await openCreationHub(user);
const rpgButton = screen.getByRole('button', { name: //u });
expect((rpgButton as HTMLButtonElement).disabled).toBe(true);
expect((rpgButton as HTMLButtonElement).disabled).toBe(false);
await user.click(rpgButton);
expect(listPuzzleWorks).toHaveBeenCalled();
expect(createRpgCreationSession).not.toHaveBeenCalled();
expect(createRpgCreationSession).toHaveBeenCalledTimes(1);
expect(
within(getPlatformTabPanel('create')).queryByText(
await within(getPlatformTabPanel('create')).findByText(
'当前登录状态已失效,请重新登录后继续。',
),
).toBeNull();
).toBeTruthy();
expect(screen.queryByText('缺少 Authorization Bearer Token')).toBeNull();
});