Files
novalon-website/docs/acceptance/2026-09-21-gates/probe/probe-browser-name.spec.ts
T
zhangxiang a0328a623f chore(qa): 验收台账与证据入库 + 构建/部署配置同步
- docs/acceptance/qa-tracker.md:跨周期缺陷单一真源台账(§7=第五轮)。
- 周期 1/2 + iPhone SE/axe 验收证据目录、ACCEPTANCE_REVIEW 快照入库。
- 同步 README/CONTEXT/CLAUDE/DESIGN/testing/deployment/lessons-learned 口径;
  next.config/Dockerfile/nginx/Jenkinsfile/docker-compose/sentry/prisma 对齐
  standalone 产物装配与部署形态。
2026-09-28 10:48:09 +08:00

22 lines
1011 B
TypeScript

import { test } from '@playwright/test';
// 只打印、不判定:把「fixture browserName 值」与「真实引擎(userAgent)」两件事分开测,
// 因为跳过条件读的是前者,而能力(Touchscreen API)取决于后者。
test('probe browserName identity', async ({ browserName, page }, testInfo) => {
const ua = await page.evaluate(() => navigator.userAgent);
const touchPoints = await page.evaluate(() => 'ontouchstart' in window ? (navigator.maxTouchPoints ?? 0) : -1);
console.log(
JSON.stringify({
project: testInfo.project.name,
fixtureBrowserName: browserName,
useBrowserName: (testInfo.project.use as { browserName?: string }).browserName ?? null,
skipConditionIsTrue: browserName !== 'chromium',
ua: ua.slice(0, 90),
engine: /AppleWebKit\/.*Version\//.test(ua) && !/Chrome\//.test(ua) ? 'webkit'
: /Firefox\//.test(ua) ? 'firefox'
: /Chrome\//.test(ua) ? 'chromium' : 'unknown',
touchPoints,
}),
);
});