Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 1m12s
Replaced legacy tenant and environment bindings in the BaselineDriftEngine with the new ProviderResourceIdentity framework as defined in Spec 382.
62 lines
3.1 KiB
PHP
62 lines
3.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Support\Baselines\BaselineSubjectKey;
|
|
use App\Support\Baselines\SubjectClass;
|
|
use App\Support\Resources\ResourceIdentity;
|
|
|
|
it('does not collapse same-label provider resources with different stable IDs', function (): void {
|
|
$left = BaselineSubjectKey::forProviderResourceIdentity(
|
|
subjectDomain: 'baseline',
|
|
subjectClass: SubjectClass::PolicyBacked,
|
|
subjectTypeKey: 'deviceConfiguration',
|
|
identity: ResourceIdentity::providerResource('fake-provider', 'policy', 'provider-resource-1'),
|
|
);
|
|
|
|
$right = BaselineSubjectKey::forProviderResourceIdentity(
|
|
subjectDomain: 'baseline',
|
|
subjectClass: SubjectClass::PolicyBacked,
|
|
subjectTypeKey: 'deviceConfiguration',
|
|
identity: ResourceIdentity::providerResource('fake-provider', 'policy', 'provider-resource-2'),
|
|
);
|
|
|
|
expect($left)->toStartWith('provider-resource:v1:baseline:policy_backed:deviceconfiguration:fake-provider:policy:provider_resource:')
|
|
->and($right)->toStartWith('provider-resource:v1:baseline:policy_backed:deviceconfiguration:fake-provider:policy:provider_resource:')
|
|
->and($left)->not->toBe($right);
|
|
});
|
|
|
|
it('creates canonical keys for built-in and virtual targets without provider object IDs', function (): void {
|
|
$builtin = BaselineSubjectKey::forProviderResourceIdentity(
|
|
subjectDomain: 'baseline',
|
|
subjectClass: SubjectClass::FoundationBacked,
|
|
subjectTypeKey: 'assignmentTarget',
|
|
identity: ResourceIdentity::canonicalBuiltin('fake-provider', 'target', 'all-principals'),
|
|
);
|
|
|
|
$virtual = BaselineSubjectKey::forProviderResourceIdentity(
|
|
subjectDomain: 'baseline',
|
|
subjectClass: SubjectClass::FoundationBacked,
|
|
subjectTypeKey: 'assignmentTarget',
|
|
identity: ResourceIdentity::virtualTarget('fake-provider', 'target', 'dynamic-group-all-devices'),
|
|
);
|
|
|
|
expect($builtin)->toStartWith('provider-resource:v1:baseline:foundation_backed:assignmenttarget:fake-provider:target:canonical_builtin:')
|
|
->and($virtual)->toStartWith('provider-resource:v1:baseline:foundation_backed:assignmenttarget:fake-provider:target:canonical_virtual_target:')
|
|
->and($builtin)->not->toBe($virtual);
|
|
});
|
|
|
|
it('validates only provider-resource canonical keys as canonical provider subject keys', function (): void {
|
|
$key = BaselineSubjectKey::forProviderResourceIdentity(
|
|
subjectDomain: 'baseline',
|
|
subjectClass: SubjectClass::PolicyBacked,
|
|
subjectTypeKey: 'deviceConfiguration',
|
|
identity: ResourceIdentity::providerResource('fake-provider', 'policy', 'provider-resource-1'),
|
|
);
|
|
|
|
expect(BaselineSubjectKey::isProviderResourceCanonicalKey($key))->toBeTrue()
|
|
->and(BaselineSubjectKey::isProviderResourceCanonicalKey('duplicate policy'))->toBeFalse()
|
|
->and(BaselineSubjectKey::isProviderResourceCanonicalKey('provider-resource:v1:baseline:policy_backed:deviceconfiguration:fake-provider:policy:provider_resource:not-a-sha'))->toBeFalse()
|
|
->and(BaselineSubjectKey::isProviderResourceCanonicalKey(null))->toBeFalse();
|
|
});
|