Files
copilotkit__copilotkit/showcase/harness/package.json
Jordan Ritter f5ff535ed6 test(showcase): add ratcheted quarantine config for the harness unit suite
Wiring the harness unit suite into CI (next commit) found it already RED on
main with exactly three failures. A job that is red on arrival gets ignored or
disabled, so this adds a CI-only vitest config that excludes those three files
— and a ratchet that stops the exclusion from becoming permanent.

  vitest.quarantine.json         the three entries, each with a date, a reason,
                                 and an explicit exit criterion
  vitest.ci.config.ts            `test` minus the quarantined files
  scripts/quarantine-ratchet.ts  re-runs each quarantined file and requires it
                                 to STILL FAIL

The ratchet is what makes the exclusion defensible: the moment somebody fixes a
quarantined test, it goes red and names the entry to delete, so an entry can
never outlive the failure it excuses. It also fails on an entry that points at a
missing file, on an entry whose filter matches more than one file, and on a
malformed manifest.

No test is deleted and no assertion is changed. The three failures are a stale
hard-coded cell count, a drift test stranded by a completed single-source
refactor, and a genuine `D5_REPRESENTATIVES` gap for `browser-use-smoke` that
belongs to the D5 owner.

`test:ci` and `test:quarantine-ratchet` are declared in the harness package.json
`nx.targets` block (project-local, not a workspace default) with `cache: false`:
the nx `test` named-input covers `src/**` but not the quarantine manifest, so a
cached result could survive an edit to the exclusion list.

Local `pnpm test` still uses the unfiltered config — a developer should see the
quarantined failures.
2026-07-24 19:13:35 -07:00

56 lines
1.5 KiB
JSON

{
"name": "@copilotkit/showcase-harness",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test:ci": "vitest run --config vitest.ci.config.ts",
"test:quarantine-ratchet": "tsx scripts/quarantine-ratchet.ts",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"test:integration": "vitest run --config vitest.integration.config.ts",
"test:e2e": "vitest run --config vitest.e2e.config.ts",
"test:update-goldens": "UPDATE_GOLDENS=1 vitest run",
"dev": "tsx watch src/orchestrator.ts",
"start": "node dist/orchestrator.js"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.710.0",
"@hono/node-server": "^1.14.0",
"axe-core": "4.11.1",
"chokidar": "^4.0.3",
"commander": "^14.0.3",
"croner": "^9.0.0",
"hono": "^4.6.0",
"js-yaml": "^4.1.0",
"mustache": "^4.2.0",
"playwright": "^1.59.1",
"ulid": "^2.3.0",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/js-yaml": "^4.0.9",
"@types/mustache": "^4.2.5",
"@types/node": "^22.0.0",
"@vitest/coverage-v8": "^3.2.4",
"tsx": "^4.19.0",
"typescript": "^5.7.0",
"vitest": "^3.2.4"
},
"nx": {
"targets": {
"test:ci": {
"dependsOn": ["^build"],
"cache": false
},
"test:quarantine-ratchet": {
"dependsOn": ["^build"],
"cache": false
}
}
}
}