This commit is contained in:
nuno maduro
2026-08-07 01:55:34 +01:00
parent 37bdf60a1c
commit 1f79660add
18 changed files with 6 additions and 316 deletions
-17
View File
@@ -8,19 +8,6 @@ afterEach(function (): void {
Project::destroyAll();
});
/*
* An active coverage report owns the coverage driver, so TIA cannot open a
* session of its own and has to piggyback on PHPUnit's — which is scoped to
* `phpunit.xml`'s <source>, not to the whole project. Edges recorded that way
* are missing every source file outside that scope, and a change to one of them
* would select nothing and replay a pass. Invariant 3 at its most dangerous.
*
* The rows below assert what a coverage run may and may not leave behind. They
* are deliberately silent about exit codes and result counts: `--coverage`
* itself fails on an interpreter with no driver, so only the graph's fate is
* the same everywhere.
*/
test('a coverage report does not found a dependency graph', function (array $arguments): void {
$project = Project::make('master');
@@ -41,16 +28,12 @@ test('a plain run after a coverage run records the whole project scope', functio
$graph = $project->graph();
// Nothing to assert without a driver: there is no graph either way, and the
// point of the row is that the *plain* run is the one that founds it.
if ($graph === null) {
expect($project->graphExists())->toBeFalse();
return;
}
// Self-edges included — they are the first thing a coverage-scoped
// recording drops, since test files are not in <source>.
expect(array_keys($graph['edges']))->toEqualCanonicalizing(array_keys(Project::EDGES))
->and($graph['files'])->toContain('tests/Unit/CalculatorTest.php')
->and($graph['files'])->toContain('app/Calculator.php');