From 7610b34621354d9cd8c0e74e440d1962a09a4e9d Mon Sep 17 00:00:00 2001 From: cat-shark <1716967236@qq.com> Date: Mon, 3 Aug 2026 22:21:46 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=A1=A5=E5=85=85=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=A7=84=E8=8C=83=E4=B8=8E=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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`。