Skip to content
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed

- **Bare Jest Uses the Intended Config** — The broken root Jest config is gone and a root `jest.config.cjs` now forwards to `.jest.config.cjs`, so bare `npx jest` no longer runs 76 suites this repository excludes. (#3711)

- **Label Drift Check Signs In To Linear** — The weekly check now sends the Linear key the way Linear expects, so its request is no longer refused as a bad authorisation header. (#3760)
- **Label Drift Check Reads Its Label List** — The weekly check no longer stops at its first step when loading the approved label list, and a test now runs that step the way the workflow does. (#3760)
- **Label Drift Check Can Sign In** — The weekly check now uses the project automation App, which is installed on every repository, because the earlier App could not read issues and every run stopped at sign-in. (#3760)
Expand Down
25 changes: 25 additions & 0 deletions jest.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Auto-discovered entry point for bare `jest` invocations.
//
// Jest discovers this file because of its name — "The file will be discovered
// automatically, if it is named jest.config.js|ts|mjs|mts|cjs|cts|json"
// (https://jestjs.io/docs/configuration, read 2026-10-01). Without it, a bare
// `npx jest` finds no configuration at all and falls back to Jest's built-in
// defaults, which run test files this repository deliberately excludes,
// including those under `.jest-skip/` and suites under `scripts/release`,
// `scripts/automation` and `scripts/workflows` that have their own runners.
//
// `.jest.config.cjs` holds the intended configuration and stays the single
// source of truth. This file only forwards to it, so the two cannot drift.
// The npm scripts pass `--config .jest.config.cjs` explicitly, and Jest skips
// auto-discovery when --config is given, so the two entry points never both
// apply.
//
// CommonJS is required: the root package.json is "type": "module", so a .js
// file here would be read as an ES module and `module.exports` would throw
// "module is not defined in ES module scope" — the failure that made the
// previous root jest.config.js unusable.
//
// rootDir is unaffected. Jest defaults it to "the root of the directory
// containing your Jest config file", which is this directory, so the
// `<rootDir>` tokens inside .jest.config.cjs resolve exactly as before.
module.exports = require('./.jest.config.cjs');
23 changes: 0 additions & 23 deletions jest.config.js

This file was deleted.

2 changes: 1 addition & 1 deletion tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ Typical commands:

- Run all tests (orchestrated shell + jest): `./run-all-tests.sh`
- Run Bats only: `bats tests/` (or `bats tests/utility` for a subset)
- Run Jest unit tests: `npm test` (alias for `npx jest`)
- Run Jest unit tests: `npm run test:js` (adds `--coverage`; `npm test` also runs the phase-5 shell suites)
- Run Python doc/schema validations: `pytest tests/pytests`
- Show coverage summary (after Jest): `npx jest --coverage` or view `coverage/README.md`

Expand Down
Loading