diff --git a/apps/ai-game-creator-shell/tests/resourceVersionSwitch.test.tsx b/apps/ai-game-creator-shell/tests/resourceVersionSwitch.test.tsx index ad314971f..e16024073 100644 --- a/apps/ai-game-creator-shell/tests/resourceVersionSwitch.test.tsx +++ b/apps/ai-game-creator-shell/tests/resourceVersionSwitch.test.tsx @@ -216,6 +216,26 @@ describe('C7 运行模块版本切换', () => { expect(onActiveVersionChange).toHaveBeenCalledWith('version-root'); }); + test('reloads the current preview when the version changes in the run module', async () => { + installResourceCardIntersectionObserver(); + const manifest = createVersionedManifest(); + const onPlay = vi.fn(); + const onActiveVersionChange = vi.fn(); + renderWorkbench(manifest, { onPlay, onActiveVersionChange }); + + fireEvent.click(screen.getByRole('tab', { name: '运行' })); + fireEvent.click(await screen.findByLabelText(/^当前版本:/)); + const menu = await screen.findByRole('listbox', { + name: '切换游戏版本', + }); + fireEvent.click(within(menu).getByRole('option', { name: /初始版本/ })); + + expect(onActiveVersionChange).toHaveBeenCalledWith('version-root'); + // 验收用例 S16 的「并重载当前预览」:只改记录层而不重载,用户看到的仍是上一个版本的 + // 画面(素材不可变,画面靠重载预览回到该版本对应的资源),切换就成了"点了没反应"。 + expect(onPlay).toHaveBeenCalled(); + }); + test('drives the "current use" card highlight from the active version', async () => { installResourceCardIntersectionObserver(); const manifest = createVersionedManifest();