8f96b05f6e
- index.tsx 把资源面板的保存流程抽成共用 saveProjectResourcesToDisk(原生保存对话框 + save_local_project_asset_file),资源面板改为委派调用,不再有第二份保存实现 - index.tsx 工具条 onDownloadLayer 由空回调改为调用该共用 handler,回执写进 resourceWorkbenchNotice;不可导出的资源仍直接返回 - resourceCanvasToolbarModel.ts 把 download 加回 supportedActions,判据是 isResourceCanvasExportable(拿不到本地文件路径就不渲染),不按媒体类型放行 - resourceCanvasToolbarModel.test.ts 期望值随判据重算为 [quick-edit, download] 或 [download],并补 download 放行与拒绝两侧用例(空 path、虚拟版本条目) - project-development.suite.ts 音频工具条按钮集合断言更新为 [分类与标签, 重命名, 下载按钮],并新增两条真链路断言:工具条下载打到 save_local_project_asset_file、资源面板下载仍打到同一命令 - appSurface.test.ts 在入口文件 mock 原生对话框,只替代用户选择目标路径这一步;放别处注册会晚于真实模块实例化
76 lines
3.0 KiB
TypeScript
76 lines
3.0 KiB
TypeScript
/** @vitest-environment jsdom */
|
|
import { vi } from 'vitest';
|
|
|
|
import { registerAgentRuntimeCommandTests } from './appSurface/agent-runtime.suite';
|
|
import { registerAuthTests } from './appSurface/auth.suite';
|
|
import {
|
|
registerDeveloperAgentWindowTests,
|
|
registerDeveloperToolsTests,
|
|
} from './appSurface/developer-agent-window.suite';
|
|
import { describe } from './appSurface/harness';
|
|
import {
|
|
registerClientHomeTests,
|
|
registerHomeProjectCreationTests,
|
|
registerRecentProjectsTests,
|
|
} from './appSurface/home.suite';
|
|
import { registerPlanGddApprovalTests } from './appSurface/plan-gdd.suite';
|
|
import {
|
|
registerCanvasAssetTests,
|
|
registerProjectAssetTests,
|
|
} from './appSurface/project-assets.suite';
|
|
import { registerProjectCommandTests } from './appSurface/project-commands.suite';
|
|
import { registerProjectConversationTests } from './appSurface/project-conversation.suite';
|
|
import {
|
|
registerProjectAgentStatusTests,
|
|
registerProjectSupervisorSurfaceTests,
|
|
registerProjectWorkbenchFoundationTests,
|
|
registerProjectWorkbenchNavigationTests,
|
|
registerUserSurfaceBoundaryTests,
|
|
} from './appSurface/project-development.suite';
|
|
import { registerProjectPreviewAndRunHistoryTests } from './appSurface/project-preview.suite';
|
|
import {
|
|
registerAgentStatusDerivationTests,
|
|
registerPublishedRuntimeSettingsTests,
|
|
registerRuntimeSettingsTests,
|
|
} from './appSurface/runtime-settings.suite';
|
|
import { registerSupervisorRuntimeTests } from './appSurface/supervisor-runtime.suite';
|
|
|
|
/**
|
|
* 原生文件对话框是宿主能力,不能在 jsdom 里真开窗。
|
|
*
|
|
* 这里只替代"用户选了哪个目标路径"这一件事:`save` 按调用方给的建议文件名返回一个
|
|
* 固定的导出路径,让「下载」用例能断言工具条真的走到了 `save_local_project_asset_file`。
|
|
* 声明必须留在入口文件:`project-assets.suite` 等模块比 `project-development.suite`
|
|
* 更早 import 工作台视图,放在别处注册会晚于真实模块实例化。
|
|
*/
|
|
vi.mock('@tauri-apps/plugin-dialog', () => ({
|
|
open: async () => null,
|
|
save: async (options?: { defaultPath?: string }) =>
|
|
options?.defaultPath ? `/tmp/native-export/${options.defaultPath}` : null,
|
|
}));
|
|
|
|
describe('AI 游戏创作 App 界面边界', () => {
|
|
registerProjectWorkbenchFoundationTests();
|
|
registerAuthTests();
|
|
registerAgentStatusDerivationTests();
|
|
registerUserSurfaceBoundaryTests();
|
|
registerClientHomeTests();
|
|
registerDeveloperAgentWindowTests();
|
|
registerHomeProjectCreationTests();
|
|
registerProjectSupervisorSurfaceTests();
|
|
registerRuntimeSettingsTests();
|
|
registerRecentProjectsTests();
|
|
registerProjectWorkbenchNavigationTests();
|
|
registerProjectPreviewAndRunHistoryTests();
|
|
registerProjectConversationTests();
|
|
registerProjectAgentStatusTests();
|
|
registerPublishedRuntimeSettingsTests();
|
|
registerDeveloperToolsTests();
|
|
registerProjectCommandTests();
|
|
registerSupervisorRuntimeTests();
|
|
registerProjectAssetTests();
|
|
registerAgentRuntimeCommandTests();
|
|
registerCanvasAssetTests();
|
|
registerPlanGddApprovalTests();
|
|
});
|