diff --git a/AGENTS.md b/AGENTS.md index efe5306..25c33ff 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -80,10 +80,10 @@ lpt-fe/src/ - 页面主操作 / 卡片 CTA:`size="large"`,如 Study 开始任务、TaskForm 保存、Welcome 快速入口。 - 区块工具栏 / 页内操作:默认尺寸,如 Review 刷新、ReviewRecall 面板操作、历史记录。 -- 表格/列表行内操作:`size="small" text`,如 查看记录、回忆复习、编辑、删除。 +- 表格/列表行内操作:`size="small"`,主操作实底 `type="success"`,次操作 `text`;如 Review 卡片中「回忆复习」为主、「查看记录」为次。 - 弹窗 footer:默认尺寸;确认按钮 `type="success"`,取消按钮默认;危险操作统一 `type="danger"`。 - 正向/保存语义统一 `success`,次级编辑语义可用 `primary`,不要在同一功能上混用。 -- 窄屏(`max-width: 768px`)操作区按钮纵向全宽,全局规则位于 `src/assets/main.css` 的 `.action-row / .edit-actions / .fragment-edit-actions`。 +- 窄屏(`max-width: 768px`)操作区按钮纵向全宽,全局规则位于 `src/assets/main.css` 的 `.action-row / .edit-actions / .fragment-edit-actions / .task-actions`;`.task-actions` 中主操作在上、次操作在下(如 Review 的回忆复习/查看记录)。 ### 移动端适配 @@ -101,6 +101,12 @@ lpt-fe/src/ - 组件公开 props/events 只在有实际消费者时保留,例如 MindMapViewer 通过 `toOutline()` 导出编辑内容,不依赖无人监听的 change 事件。 - Vite 模板遗留文件(示例组件、icon、logo)不进入业务代码。 +### 测试规范 + +- 单元测试必须直接测试真实代码:直接调用 composable、挂载真实组件、使用真实路由;禁止把组件或 composable 的逻辑复制到测试里再自测。 +- 测试中可以 mock 外部依赖(API、Element Plus 服务、Audio 等),但被测逻辑本身必须来自生产模块。 +- `script setup` 内部状态需要测试访问时,通过 `defineExpose` 暴露,而不是在测试里重写一份相同逻辑。 + ### 提交前检查 - 运行 `npx vue-tsc --noEmit`、`npm run test`、`npm run build`。