mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
f5ff535ed6
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.
56 lines
1.5 KiB
JSON
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
|
|
}
|
|
}
|
|
}
|
|
}
|