mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
test: capture re-baseline inventory + coverage snapshot (phase 0)
This commit is contained in:
@@ -0,0 +1 @@
|
||||
*-raw.json
|
||||
@@ -0,0 +1,41 @@
|
||||
# Quarantine List (Phase 0 Baseline)
|
||||
|
||||
Items deferred from this baseline capture. Phase 4 (e2e serial-bucket repair)
|
||||
empties this file.
|
||||
|
||||
## E2E serial bucket (known-red, pre-2.0-UI selectors)
|
||||
|
||||
The following `chromium-serial` specs rely on pre-2.0 selectors and are not yet
|
||||
updated. They are the explicit subject of Phase 4, not repaired here:
|
||||
|
||||
- `gui-settings-general.spec.ts`
|
||||
- `gui-settings-rbac.spec.ts`
|
||||
- `gui-settings-people.spec.ts`
|
||||
- `rbac.spec.ts`
|
||||
- `rbac-full.spec.ts`
|
||||
- `people.spec.ts`
|
||||
- `theme.spec.ts`
|
||||
|
||||
## Docker suite (`pnpm test:docker`)
|
||||
|
||||
The full-container install-smoke gate (`docker-compose.test.yml`) churns tens of
|
||||
GB of build cache on this machine (see CLAUDE.md ops note). It is run and
|
||||
elevated in Phase 4. Last-known CI status: see `.github/workflows/test.yml`
|
||||
(the `docker` job).
|
||||
|
||||
## Local doc-binary skips (not quarantine, informational)
|
||||
|
||||
The following integration test files skip cleanly via `describe.skipIf`
|
||||
because `pandoc`, `libreoffice`/`soffice`, `pdfcpu`, and `pdf2docx` are not
|
||||
installed on this development machine. These pass in CI where the Docker image
|
||||
provides all binaries:
|
||||
|
||||
- `convert-document.test.ts`
|
||||
- `epub-convert.test.ts`
|
||||
- `html-to-pdf.test.ts`
|
||||
- `doc-to-pdf.test.ts`
|
||||
- `pdf-to-docx.test.ts`
|
||||
- `compress-pdf.test.ts`
|
||||
- `pdf-to-image.test.ts`
|
||||
|
||||
Total local integration skips: 217 tests across 7 files.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env node
|
||||
// Reduces a Vitest/Playwright JSON report to { testIds: string[], passSet: string[] }.
|
||||
// Used by the parity gate: a later phase must keep testIds >= pre and passSet >= pre.
|
||||
import { readFileSync, writeFileSync } from "node:fs";
|
||||
|
||||
const inPath = process.argv[2];
|
||||
const outPath = process.argv[3];
|
||||
if (!inPath || !outPath) {
|
||||
console.error("usage: extract-inventory.mjs <report.json> <out.json>");
|
||||
process.exit(1);
|
||||
}
|
||||
const report = JSON.parse(readFileSync(inPath, "utf8"));
|
||||
const testIds = [];
|
||||
const passSet = [];
|
||||
// Vitest/Jest shape: { testResults: [{ name, assertionResults: [{ fullName, status }] }] }
|
||||
for (const file of report.testResults ?? []) {
|
||||
for (const a of file.assertionResults ?? []) {
|
||||
const id = `${file.name} > ${a.fullName}`;
|
||||
testIds.push(id);
|
||||
if (a.status === "passed") passSet.push(id);
|
||||
}
|
||||
}
|
||||
testIds.sort();
|
||||
passSet.sort();
|
||||
writeFileSync(outPath, JSON.stringify({ testIds, passSet, counts: { total: testIds.length, passed: passSet.length } }, null, 2));
|
||||
console.log(`inventory: ${testIds.length} tests, ${passSet.length} passed -> ${outPath}`);
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user