# Testing signals — eslint/eslint

> Canonical page: https://codevetter.com/unpack/eslint/testing-signals

# Testing signals — eslint/eslint

Scanned commit bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI were inspected, not executed; no passing result or measured coverage is established here. The inspected suite uses Mocha-style tests, RuleTester, Chai or Node assertions, Sinon, and Proxyquire. CI defines Node, operating-system, browser, type, documentation, and ecosystem checks. Inspection is bounded, and identified limits apply to the specific tests or workflows cited.
- The configured unit runner is Mocha under c8 with --forbid-only; inspected CLI tests use Chai, Node assertions, Sinon, and Proxyquire, while ESLint-class tests also use filesystem fixtures. — [Makefile.js#L632-646](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/Makefile.js#L632-L646) [tests/lib/cli.js#L12-21](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/cli.js#L12-L21) [tests/lib/eslint/eslint.js#L17-41](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/eslint/eslint.js#L17-L41)
- The full test target checks rule files, runs unit tests, fuzzes 150 cases with fuzzBrokenAutofixes false, and checks licenses; coverage thresholds are 99% statements/functions/lines and 98% branches. — [Makefile.js#L638-646](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/Makefile.js#L638-L646) [Makefile.js#L674-678](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/Makefile.js#L674-L678)
- Inspected CLI cases assert stdin lint failure status 1, empty stdin success without log output, and unsupported-option status 2. — [tests/lib/cli.js#L116-154](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/cli.js#L116-L154)
- RuleTester no-undef cases cover explicit globals, global comments, CommonJS require, typeof exemptions, and later syntax; Linter cases assert ECMAScript-version-dependent global availability. — [tests/lib/rules/no-undef.js#L20-60](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/rules/no-undef.js#L20-L60) [tests/lib/rules/no-undef.js#L172-198](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/rules/no-undef.js#L172-L198) [tests/lib/linter/linter.js#L160-231](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/linter/linter.js#L160-L231)
- Inspected persistence tests assert ESLint/Node versions participate in cache hashing and suppression loading handles valid JSON, missing files, and malformed JSON; suppression readFile calls are stubbed in these cases. — [tests/lib/cli-engine/lint-result-cache.js#L163-211](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/cli-engine/lint-result-cache.js#L163-L211) [tests/lib/services/suppressions-service.js#L67-112](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/services/suppressions-service.js#L67-L112)
- ESLint constructor tests assert numeric/auto concurrency rejects uncloneable function/plugin options with ESLINT_UNCLONEABLE_OPTIONS and recommends options modules. — [tests/lib/eslint/eslint.js#L418-451](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/tests/lib/eslint/eslint.js#L418-L451)
- Main CI defines Linux Node 20/22/24/26 runs, minimum Node 20.19.0, Windows/macOS LTS runs, fuzzing and EMFILE checks; Cypress selects only tests/lib/linter/linter.js with a built-bundle alias, so that browser job does not select CLI/file-engine tests. — [.github/workflows/ci.yml#L60-94](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/.github/workflows/ci.yml#L60-L94) [.github/workflows/ci.yml#L96-117](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/.github/workflows/ci.yml#L96-L117) [cypress.config.js#L17-20](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/cypress.config.js#L17-L20) [cypress.config.js#L39-46](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/cypress.config.js#L39-L46)
- CI also defines type/compiler compatibility checks, external-consumer type tests, docs builds/link validation, and ecosystem plugin tests; the ecosystem matrix explicitly disables typescript-eslint pending test updates. — [.github/workflows/ci.yml#L119-147](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/.github/workflows/ci.yml#L119-L147) [.github/workflows/types-integration.yml#L21-42](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/.github/workflows/types-integration.yml#L21-L42) [.github/workflows/docs-ci.yml#L33-43](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/.github/workflows/docs-ci.yml#L33-L43) [.github/workflows/ecosystem-tests.yml#L25-33](https://github.com/eslint/eslint/blob/bc51eee6e3e816622b2dd1bc08acb9cfb2d3a6a7/.github/workflows/ecosystem-tests.yml#L25-L33)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
