// The page's coverage report, once every test has added its page's (coverage.ts, #390), and its // lines file by file in summary.json, which scripts/coverage-metrics.ts reads for Grafana (#394). import fs from 'node:fs'; import path from 'node:path'; import { CoverageReport } from 'monocart-coverage-reports'; import { coverageOptions } from './coverage.ts'; export default async function teardown() { if (!process.env.IPX_COVERAGE) return; const results = await new CoverageReport(coverageOptions).generate(); if (!results) return; const lines = results.files.map((f) => ({ file: f.sourcePath, covered: f.summary.lines.covered, total: f.summary.lines.total })); fs.writeFileSync(path.join(coverageOptions.outputDir!, 'summary.json'), JSON.stringify({ lines }, null, 2)); }