TenantAtlas/apps/platform/tests/Unit/Support/TenantConfiguration/ClaimGuardTest.php
ahmido dfda397eb6 feat: migrate tcm first coverage core cutover (#481)
Automated PR provided by Codex via Gitea API.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #481
2026-06-25 12:54:56 +00:00

74 lines
2.3 KiB
PHP

<?php
declare(strict_types=1);
use App\Services\TenantConfiguration\ClaimGuard;
use App\Support\TenantConfiguration\ClaimState;
use App\Support\TenantConfiguration\CoverageLevel;
use App\Support\TenantConfiguration\RestoreTier;
use App\Support\TenantConfiguration\SourceClass;
it('Spec414 blocks unscoped 100 percent claims', function () {
$guard = new ClaimGuard;
expect($guard->evaluate(
scopeKey: null,
requestedLevel: CoverageLevel::ContentBacked,
actualLevel: CoverageLevel::ContentBacked,
scopeComplete: true,
unscoped: true,
percentage: 100,
))->toBe(ClaimState::ClaimBlocked);
});
it('Spec414 blocks certified claims for beta experimental resource types by default', function () {
$guard = new ClaimGuard;
expect($guard->evaluate(
scopeKey: 'intune_tcm_core',
requestedLevel: CoverageLevel::Certified,
actualLevel: CoverageLevel::Certified,
scopeComplete: true,
sourceClass: SourceClass::GraphBetaExperimental,
allowsBetaClaims: false,
allowsCertifiedClaims: false,
))->toBe(ClaimState::ClaimBlocked);
});
it('Spec414 blocks restore claims when the resource type is not restorable', function () {
$guard = new ClaimGuard;
expect($guard->evaluate(
scopeKey: 'intune_tcm_core',
requestedLevel: CoverageLevel::Restorable,
actualLevel: CoverageLevel::Restorable,
scopeComplete: true,
restoreTier: RestoreTier::PreviewOnly,
restoreClaim: true,
))->toBe(ClaimState::ClaimBlocked);
});
it('Spec414 blocks customer-facing claims for incomplete supported scopes', function () {
$guard = new ClaimGuard;
expect($guard->evaluate(
scopeKey: 'intune_tcm_core',
requestedLevel: CoverageLevel::ContentBacked,
actualLevel: CoverageLevel::ContentBacked,
scopeComplete: false,
customerFacing: true,
))->toBe(ClaimState::ClaimBlocked);
});
it('Spec414 allows exact scope and level claims', function () {
$guard = new ClaimGuard;
expect($guard->evaluate(
scopeKey: 'intune_tcm_core',
requestedLevel: CoverageLevel::ContentBacked,
actualLevel: CoverageLevel::Comparable,
scopeComplete: true,
customerFacing: true,
))->toBe(ClaimState::ClaimAllowed);
});