TenantAtlas/apps/platform/tests/Feature/Guards/FastFeedbackLaneExclusionTest.php
2026-04-17 11:44:04 +02:00

35 lines
2.0 KiB
PHP

<?php
declare(strict_types=1);
use Illuminate\Support\Collection;
use Tests\Support\TestLaneManifest;
it('excludes browser, discovery-heavy, and surface-guard families from fast-feedback discovery', function (): void {
$files = collect(TestLaneManifest::discoverFiles('fast-feedback'));
$discoveryValidation = TestLaneManifest::validateLanePlacement(
laneId: 'fast-feedback',
filePath: 'tests/Feature/Filament/PolicyResourceAdminSearchParityTest.php',
);
expect($files->contains(static fn (string $path): bool => str_starts_with($path, 'tests/Browser/')))->toBeFalse()
->and($files->contains(static fn (string $path): bool => str_starts_with($path, 'tests/Feature/OpsUx/')))->toBeFalse()
->and($files)->not->toContain('tests/Feature/Guards/ActionSurfaceContractTest.php')
->and($files->contains(static fn (string $path): bool => str_starts_with($path, 'tests/Architecture/')))->toBeFalse()
->and($files->contains(static fn (string $path): bool => str_starts_with($path, 'tests/Deprecation/')))->toBeFalse()
->and($discoveryValidation['valid'])->toBeFalse()
->and($discoveryValidation['resolvedClassificationId'])->toBe('discovery-heavy');
});
it('keeps fast-feedback focused on the quick-edit families the manifest declares', function (): void {
$files = new Collection(TestLaneManifest::discoverFiles('fast-feedback'));
expect($files->contains(static fn (string $path): bool => str_starts_with($path, 'tests/Unit/')))->toBeTrue()
->and($files->contains(static fn (string $path): bool => str_starts_with($path, 'tests/Feature/Guards/')))->toBeTrue()
->and($files)->not->toContain(
'tests/Feature/Baselines/BaselineCompareMatrixCompareAllActionTest.php',
'tests/Feature/Drift/DriftBulkAcknowledgeAllMatchingConfirmationTest.php',
'tests/Feature/Findings/FindingBulkActionsTest.php',
'tests/Feature/Rbac/OnboardingWizardUiEnforcementTest.php',
);
});