Automated PR provided by Codex via Gitea API. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #481
74 lines
2.3 KiB
PHP
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);
|
|
});
|