TenantAtlas/apps/platform/tests/Unit/Support/Baselines/BaselineSubjectKeyCanonicalIdentityTest.php
Ahmed Darrazi fb2642e941
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 1m9s
feat(resources): implement provider resource identity binding
Added ProviderResourceBinding model, migrations, policies, and supporting framework for canonical resource identity mapping as defined in Spec 381.
2026-06-15 17:37:06 +02:00

48 lines
2.2 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);
});