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