Skip to content

compat-eslint: migrate 11 mechanical classes to SHAPES factory #38

compat-eslint: migrate 11 mechanical classes to SHAPES factory

compat-eslint: migrate 11 mechanical classes to SHAPES factory #38

Workflow file for this run

name: test
on:
pull_request:
push:
branches:
- 'master'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install
- run: pnpm run build
# Per-rule parity bench (~0.6 s) — gates against location-keyed
# divergence between compat-eslint and ESLint upstream.
- name: Parity bench
run: pnpm -F @tsslint/compat-eslint bench
# Vendored @typescript-eslint/scope-manager test suite.
- name: Upstream scope-manager
run: pnpm -F @tsslint/compat-eslint test:upstream
# Predicate coverage matrix for AST_NODE_TYPES.
- name: Predicate coverage
run: pnpm -F @tsslint/compat-eslint test:predicate-coverage
# JSX type-aware parity vs ESLint Linter on eslint-plugin-react-x.
- name: JSX react-x parity
run: pnpm -F @tsslint/compat-eslint test:jsx-react-x
# Lazy ESTree shape parity (every .ts under packages/) + identity
# invariants + smoke under visitorKeys traversal.
- name: Lazy ESTree parity
run: node packages/compat-eslint/test/lazy-estree.test.js
# Integration: selector dispatch + CPA fallback + per-rule error
# isolation through the full convertRule pipeline.
- name: Compat pipeline integration
run: node packages/compat-eslint/test/compat-pipeline.test.js
# Selector decomposition unit tests.
- name: Selector analysis
run: node packages/compat-eslint/test/selector-analysis.test.js
# TS-AST scan walker unit tests.
- name: TS-AST scan
run: node packages/compat-eslint/test/ts-ast-scan.test.js
# Core: type-aware rule probe (foundation for layer 1 cache).
- name: Core probe
run: node packages/core/test/probe.test.js
# Core: BuilderProgram POC for layer 2 cache invalidation.
- name: Core BuilderProgram POC
run: node packages/core/test/builder-program-poc.test.js
# Core: skip-rules option + hasFixForDiagnostic API (the surface
# the CLI cache layer uses).
- name: Core skip-rules
run: node packages/core/test/skip-rules.test.js
# CLI: cache file load / save / atomic write / version key.
- name: CLI cache module
run: node packages/cli/test/cache.test.js
# CLI: cache-flow — layer 1 cache integration with the linter.
- name: CLI cache-flow
run: node packages/cli/test/cache-flow.test.js
# CLI: end-to-end integration via subprocess on a temp fixture.
- name: CLI integration
run: node packages/cli/test/integration.test.js
# CLI: layer 2 cross-session affected-file diff.
- name: CLI incremental state
run: node packages/cli/test/incremental-state.test.js