SuperAPI AI 工具集

ui-data-testid

数据与分析

查看项目

更新于 10-15 21:35

技能介绍

用途:在实现 UI 组件时默认添加可预测的 data-testid,使其在 i18n 文案变化和视觉重构后仍保持稳定选择器。

主要能力:为组件根容器与主要交互节点(按钮/链接触发器、输入/选择/复选/单选控件、标签页/菜单项/子菜单触发器、弹窗/抽屉打开与确认操作)添加 id;为配置驱动 UI(如 menu.items)在配置中添加 data-testid 并在渲染器/包装组件转发到真实可点击 DOM 节点;对重复列表行/项优先在行/项容器放稳定 id。

命名规则:仅用小写 kebab-case,语义格式为 <scope>-<entity>-<action>;与文案无关,避免动态/随机值(Date.now、UUID、翻译文本);不嵌入密钥、邮箱、电话或令牌;可用后缀 trigger、content、button、input、option、item、row、loading、empty、error。

使用方式:先根据功能/模块确定范围前缀(如 user-menus、organization-switch),再按最小覆盖清单补 id;测试查询优先 getByTestId,辅以 getByRole、getByLabelText、getByText,避免 container.querySelector。重复行中先用共享行 id 加文本/业务数据定位行,再以 within(row) 查询子控件,仅当无法从行作用域可靠选中时才给子元素加共享 id。

限制:迁移/重构时保留既有 data-testid,不得擅自删除或重命名,除非用户明确要求;不要用数组索引或时间戳生成 id;单例 id 页面内唯一;异步 UI 需补 loading/empty/error id。交互变更时尽量在就近 tests 中补充 Vitest/RTL 测试。该技能基于 dtyq/magic 项目规则(.cursor/rules),具体项目差异以实际规则为准。