TenantAtlas/apps/platform/tests/Unit/Support/Resources/ResourceIdentityTest.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

34 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use App\Support\Resources\ResourceIdentity;
it('represents provider resource identity forms without display labels', function (): void {
$identities = [
ResourceIdentity::providerResource('fake-provider', 'policy', 'resource-1'),
ResourceIdentity::canonicalBuiltin('fake-provider', 'assignment-target', 'all-principals'),
ResourceIdentity::canonicalDefault('fake-provider', 'scope-tag', 'default-tag'),
ResourceIdentity::virtualTarget('fake-provider', 'assignment-target', 'all-devices-dynamic'),
ResourceIdentity::unsupported('fake-provider', 'foundation-resource', 'not-covered'),
ResourceIdentity::unknown('fake-provider', 'policy', 'unknown-policy'),
];
expect($identities)->toHaveCount(6);
foreach ($identities as $identity) {
expect($identity->providerKey)->toBe('fake-provider')
->and($identity->stableIdentityValue())->not->toBeNull()
->and($identity->toArray())->not->toHaveKey('display_label')
->and($identity->fingerprint())->toBeString()->toHaveLength(64);
}
});
it('restores serialized provider-neutral identities', function (): void {
$identity = ResourceIdentity::canonicalBuiltin('fake-provider', 'built-in-group', 'all-workers');
$restored = ResourceIdentity::fromArray($identity->toArray());
expect($restored->toArray())->toBe($identity->toArray());
});