TenantAtlas/apps/platform/tests/Feature/TenantConfiguration/Spec426ExchangeTeamsNoRestoreTest.php
Ahmed Darrazi fb4dc20cb0
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 5m11s
feat: implement Exchange Teams evidence identity readiness
2026-07-03 13:41:08 +02:00

36 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use App\Models\TenantConfigurationResourceType;
use App\Services\TenantConfiguration\ClaimGuard;
use App\Services\TenantConfiguration\ResourceTypeRegistry;
use App\Support\TenantConfiguration\ClaimState;
use App\Support\TenantConfiguration\CoverageLevel;
use App\Support\TenantConfiguration\IdentityState;
use App\Support\TenantConfiguration\RestoreTier;
it('Spec426 keeps selected Exchange and Teams readiness separate from restore readiness', function (): void {
app(ResourceTypeRegistry::class)->syncDefaults();
$rows = TenantConfigurationResourceType::query()
->whereIn('canonical_type', ['transportRule', 'acceptedDomain', 'appPermissionPolicy', 'meetingPolicy'])
->get();
expect($rows)->toHaveCount(4);
foreach ($rows as $row) {
expect($row->restore_tier)->not->toBe(RestoreTier::Restorable)
->and(app(ClaimGuard::class)->evaluate(
scopeKey: 'spec426_exchange_teams_internal',
requestedLevel: CoverageLevel::Renderable,
actualLevel: CoverageLevel::Renderable,
scopeComplete: true,
sourceClass: $row->source_class,
restoreTier: $row->restore_tier,
identityState: IdentityState::Stable,
restoreClaim: true,
))->toBe(ClaimState::ClaimBlocked);
}
});