Files
Genarrative/apps/ai-game-creator-shell/tests/appSurface.test.ts
T
k88936 6981648796
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m56s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 3m48s
Project CI / Native shell tests (pull_request) Failing after 45s
Project CI / Repository checks (pull_request) Failing after 13s
Project CI / Frontend tests (pull_request) Failing after 1m52s
Project CI / AI game creator shell web tests (pull_request) Failing after 1m42s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Failing after 6m57s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Failing after 8m1s
合并 origin/master:Supervisor 永久退役,项目对话收敛为 DirectProject 与 Design Agent
- 解决 refactor/split-direct-project 与 origin/master 在 App.tsx、立项策划聊天视图、Direct composer/引用输入区、styles.css、Rust direct user item 与 appSurface 用例上的冲突,按「Supervisor 永久退役」口径保留 DirectProject 独立聊天容器与 Design Agent 两条产品路径
- 采纳 master 的策划 Agent V1/V2 退役:删除 GDD 审批卡、策划输入卡、planningLane、planningSessionV2、planningSessionContract、规划展示适配与 Rust planning_*_v2 命令、模块、契约及对应用例,不保留兼容别名或双跑路径
- 把 master「折叠思考显示单行预览」的目的落到当前结构:新增共享表现 chat/components/AgentReasoning/AgentReasoning.tsx(折叠态单行纯文本预览 + 箭头、展开态安全 Markdown),DirectProject 回合与策划回合共用,删掉两处写死的 pre 折叠实现
- 把 master「策划入口可选模型 / 推理档」的目的接到当前策划输入盒:复用 ConversationModelSelect 与 ComposerReasoningEffortSelect,配置写回仍走客户端配置通道
- App.tsx 删除只服务退役 Supervisor / 策划 V2 的 state、ref、effect、回调与死参数,并删除两条读路径都退役后的 workspaceProjectKind;openWorkspace 的工程类型入参保留为未使用契约
- Rust 侧保留本分支 canonical→wire 投影、无审计 Direct 回合与 direct user item 严格校验,并入 master 的 prepare_new_web_project_at 前置复核
- 更新 ADR 与 shared-memory 决策记录:策划当前只有 Design Agent、两条路径的共享表现清单,以及本次合并的口径、代价与验证证据
- 验证:AGC 与仓库 typecheck、check:encoding、check:doc-index、git diff --check、改动文件 eslint 0 error;AGC vitest 168 个文件中除 5 个 jsdom localStorage 环境失败文件与本分支既有 resourceTagStatsRefresh 失败外全绿,appSurface 198 passed / 13 skipped;Rust 定向用例 direct_codex_user_item、skill_pack、sessions 全过(整套分片在本容器受 /sbin -> usr/bin 触发沙箱预检失败,与本合并无关)
2026-09-21 21:09:34 +08:00

54 lines
2.2 KiB
TypeScript

/** @vitest-environment jsdom */
import { vi } from 'vitest';
import { registerAuthTests } from './appSurface/auth.suite';
import { registerChatComposerControlTests } from './appSurface/chat-composer.suite';
import { registerDesignAgentSurfaceTests } from './appSurface/design-agent.suite';
import { describe } from './appSurface/harness';
import {
registerClientHomeTests,
registerHomeProjectCreationTests,
registerRecentProjectsTests,
} from './appSurface/home.suite';
import { registerProjectConversationTests } from './appSurface/project-conversation.suite';
import {
registerProjectAgentStatusTests,
registerProjectWorkbenchFoundationTests,
registerProjectWorkbenchNavigationTests,
} from './appSurface/project-development.suite';
import {
registerAgentStatusDerivationTests,
registerRuntimeSettingsTests,
} from './appSurface/runtime-settings.suite';
import { registerToolCallGroupTests } from './appSurface/tool-call-group.suite';
/**
* 原生文件对话框是宿主能力,不能在 jsdom 里真开窗。
*
* 这里只替代"用户选了哪个目标路径"这一件事:`save` 按调用方给的建议文件名返回一个
* 固定的导出路径,让「下载」用例能断言工具条真的走到了 `save_local_project_asset_file`。
* 声明必须留在入口文件:`project-conversation.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();
registerClientHomeTests();
registerHomeProjectCreationTests();
registerRuntimeSettingsTests();
registerRecentProjectsTests();
registerProjectWorkbenchNavigationTests();
registerProjectConversationTests();
registerProjectAgentStatusTests();
registerDesignAgentSurfaceTests();
registerToolCallGroupTests();
registerChatComposerControlTests();
});