Measured with a mutation oracle over 14 open-source TypeScript repositories (break one function, record which test files newly fail, compare each verb's selection with that truth), TypeScript test selection, impact and path missed tests in five recurring shapes:
- Tests the build tsconfig excludes are not in the graph. A config that leaves its tests to the runner (
exclude: ["test/**", "**/*.spec.ts"]) makes every test file NO_PROGRAM_CLAIMS_FILE. On one repository the graph held 0 of 16 test files and every verb answered nothing.
- A test file named only
test.ts is not a test. Tests written beside their module (src/<fn>/test.ts) are classified as plain functions; one repository had 0 of 288 test files recognised and test selection recall 0.
--json is not JSON when a repository has several language graphs and none answers. path with no chain printed per-graph headers (══ typescript graph ══) under --json: 279 of 1244 answers could not be parsed, on every repository indexed as TypeScript + JavaScript.
- JavaScript tests of TypeScript source are never selected.
.js tests importing .ts source sit in the JavaScript graph, which has no edge into the TypeScript one (two repositories: 73 of 95 and 284 of 557 failing test files were .js).
- What a Proxy handler's traps call is unreachable.
new Proxy(target, handler) / Proxy.revocable(target, handler): the traps the runtime calls have no caller, so draft logic in a Proxy-based library is reached by no test.
Across the 14 repositories: impact recall 0.61 (macro), 54 mutants with an empty test selection, path found 507 of 674 failing-test-to-function chains.
Measured with a mutation oracle over 14 open-source TypeScript repositories (break one function, record which test files newly fail, compare each verb's selection with that truth), TypeScript test selection, impact and path missed tests in five recurring shapes:
exclude: ["test/**", "**/*.spec.ts"]) makes every test fileNO_PROGRAM_CLAIMS_FILE. On one repository the graph held 0 of 16 test files and every verb answered nothing.test.tsis not a test. Tests written beside their module (src/<fn>/test.ts) are classified as plain functions; one repository had 0 of 288 test files recognised and test selection recall 0.--jsonis not JSON when a repository has several language graphs and none answers.pathwith no chain printed per-graph headers (══ typescript graph ══) under--json: 279 of 1244 answers could not be parsed, on every repository indexed as TypeScript + JavaScript..jstests importing.tssource sit in the JavaScript graph, which has no edge into the TypeScript one (two repositories: 73 of 95 and 284 of 557 failing test files were.js).new Proxy(target, handler)/Proxy.revocable(target, handler): the traps the runtime calls have no caller, so draft logic in a Proxy-based library is reached by no test.Across the 14 repositories: impact recall 0.61 (macro), 54 mutants with an empty test selection, path found 507 of 674 failing-test-to-function chains.