toBeTrue() ->and($lane['parallelMode'])->toBe('required') ->and($lane['includedFamilies'])->toContain('unit', 'ui-light') ->and($lane['excludedFamilies'])->toContain('browser', 'surface-guard', 'discovery-heavy') ->and($lane['budget']['baselineDeltaTargetPercent'])->toBe(50) ->and(TestLaneManifest::commandRef('fast-feedback'))->toBe('test') ->and($command)->toContain('--parallel') ->and($command)->toContain('--configuration='.$configurationPath) ->and($command)->toContain('--testsuite=Lane') ->and($configurationContents)->toContain('tests/Feature/Auth/BreakGlassWorkspaceOwnerRecoveryTest.php') ->and($configurationContents)->not->toContain('tests/Feature/Drift/DriftBulkAcknowledgeAllMatchingConfirmationTest.php') ->and($configurationContents)->not->toContain('tests/Feature/Findings/FindingBulkActionsTest.php') ->and($configurationContents)->not->toContain('tests/Feature/Guards/ActionSurfaceContractTest.php') ->and($configurationContents)->not->toContain('tests/Feature/Filament/PolicyResourceAdminSearchParityTest.php'); }); it('keeps fast-feedback narrower than confidence and rejects broad surface or discovery families', function (): void { $fastTargets = TestLaneManifest::discoverFiles('fast-feedback'); $confidenceTargets = TestLaneManifest::discoverFiles('confidence'); $validation = TestLaneManifest::validateLanePlacement( laneId: 'fast-feedback', filePath: 'tests/Feature/Guards/ActionSurfaceContractTest.php', ); expect($fastTargets)->not->toBeEmpty() ->and(count($fastTargets))->toBeLessThan(count($confidenceTargets)) ->and($fastTargets)->not->toContain('tests/Feature/Guards/ActionSurfaceContractTest.php') ->and($validation['valid'])->toBeFalse() ->and($validation['resolvedClassificationId'])->toBe('surface-guard'); });