用途:这是 dean-stack 中 Playwright 的唯一入口路由技能。该技术栈只用 Playwright 做浏览器层测试,不推荐 Cypress、Selenium、Puppeteer 或 vitest 浏览器模式;不需要真实浏览器的纯逻辑测试用 bun-test。
主要能力:把 Playwright 问题按主导关注点路由到子技能——playwright-story-tests(用 iframe.html?id=... 指向 Storybook 故事,断言可见状态、ARIA 与 IDB 内容)、playwright-app-tests(驱动 localhost:3000 或配置的预览地址,跨路由端到端流程,含 BroadcastChannel 跨标签同步)、playwright-pwa-offline(离线深链契约:安装 SW、setOffline(true)、深链解析)、playwright-conventions(选择器、fixture、IDB 播种、reduced-motion、配置与 ASK-FIRST 规则)。
使用方式:任何编写或修改 Playwright 测试的请求,必须先执行 ASK-FIRST,向用户确认结构决策(故事级还是应用级、断言什么、选择器、fixture、网络与 IDB 状态、reduced-motion),等待回答后再写。测试中 IDB 不 mock,使用真实浏览器 IndexedDB,通过 page.addInitScript 播种;只使用 locator 优先、web-first 断言,如 await expect(locator).toBe…(),不把 isVisible()、textContent()、count() 包进 expect();默认项目强制 reducedMotion: 'reduce'。
限制与规则:仅 Playwright 1.59+,旧版 API 一律重写;不要用 page.waitForTimeout 修 flake;不得 test.skip 或禁用失败测试让 CI 变绿,bun run check 中 Playwright 是最后的红色门禁;不 mock IDB,不推荐其他浏览器测试运行器与 @storybook/test-runner。更多细节、具体配置与 fixture 模式暂未提供。