Files
stockfill/scripts/playwright-collect-coverage.cjs
T
beatzaplenty 6192bd20eb modified: .gitignore
modified:   .vscode/launch.json
	new file:   e2e/playwright-collect-coverage.spec.ts
	modified:   package-lock.json
	modified:   package.json
	modified:   playwright.config.ts
	new file:   scripts/merge-lcov.cjs
	new file:   scripts/normalize-lcov.cjs
	new file:   scripts/playwright-collect-coverage.cjs
	new file:   scripts/remap-and-report.cjs
	modified:   vite.config.ts
	new file:   vitest.config.ts
2025-12-02 16:14:12 +10:00

24 lines
874 B
JavaScript
Executable File

// tests/playwright-collect-coverage.js
const fs = require('fs');
const path = require('path');
const { test } = require('@playwright/test');
test.afterEach(async ({ page }, testInfo) => {
try {
// evaluate coverage from the page
const coverage = await page.evaluate(() => (globalThis.__coverage__ || {}));
if (coverage && Object.keys(coverage).length) {
const dir = path.join(process.cwd(), '.nyc_output');
fs.mkdirSync(dir, { recursive: true });
// unique file per worker/test
const filename = path.join(dir, `coverage-e2e-${process.pid}-${Date.now()}.json`);
fs.writeFileSync(filename, JSON.stringify(coverage));
console.log('Wrote coverage:', filename);
}
} catch (err) {
// don't fail tests if coverage collection fails
console.warn('Failed to collect coverage from page:', err.message || err);
}
});