用途:为 CometChat React UI Kit v6 的集成编写测试,分单元、组件、端到端三层,每层使用不同的模拟策略。技能提供配置和标准断言,具体测试用例由应用自行编写。建议先阅读 cometchat-core(init、login、provider 模式)和对应框架的 patterns 技能;通话测试见 cometchat-react-calls/references/testing-calls-on-web.md。
主要能力与用法:Vitest 安装命令为 npm install -D vitest @testing-library/react @testing-library/jest-dom @testing-library/user-event jsdom,配置 environment: "jsdom"、globals: true、setupFiles、css: false,并排除 e2e 目录。setup 文件引入 jest-dom,在 afterEach 调用 cleanup,并 polyfill WebSocket 与 matchMedia。SDK 模拟通过 vi.mock("@cometchat/chat-sdk-javascript") 和 vi.mock("@cometchat/chat-uikit-react") 提升为模块级 mock,UI Kit 组件 mock 为 () => null;注意 v6 没有 CometChatThemeProvider,区域为字符串常量("us"/"eu"/"in")。组件测试应断言 init 解析前不渲染子元素、init 失败时显示红色错误 UI;meta 测试检查源码无硬编码 Auth Key、css-variables.css 只导入一次。端到端使用 npm install -D @playwright/test 和 npx playwright install,配置 testDir、baseURL、webServer,编写双页面聊天冒烟测试。v6 输入框为 contenteditable div,选择器为 .cometchat-message-composer__input[contenteditable="plaintext-only"] 和 .cometchat-message-composer__send-button,该选择器仅用于测试;实时消息延迟通常低于 500ms,CI 中可使用 10 秒超时。测试用户可用开发模式预置的 cometchat-uid-1 至 cometchat-uid-5。CI 中单元与 e2e 分开,使用专用测试应用的凭据,失败时上传 playwright-report。
适用场景:Vite、Next.js、React Router、Astro 项目中的 CometChat React UI Kit v6 聊天集成测试。
限制:真实测试用例需应用自行编写;不要 mock 成真实实现、不要跳过 cleanup、不要断言内部 CSS 类名、不要硬编码 Auth Key、不要与开发共用同一应用;提交前移除 .skip()/.only()。具体价格、平台限制等细节暂未提供。