TenantAtlas/apps/platform/tests/Unit/Support/TenantConfiguration/Spec417IdentityConflictDiagnosticsTest.php
ahmido 8cbf1f7fe3 feat: implement canonical identity engine (#484)
Automated PR provided by Codex via Gitea API.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #484
2026-06-26 06:50:25 +00:00

30 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
use App\Services\TenantConfiguration\IdentityConflictDiagnosticsBuilder;
use App\Support\TenantConfiguration\CanonicalKeyKind;
use App\Support\TenantConfiguration\IdentityState;
it('Spec417 builds bounded redacted identity diagnostics', function (): void {
$diagnostics = app(IdentityConflictDiagnosticsBuilder::class)->build(
reasonCode: 'same_scope_derived_identity_collision',
identityState: IdentityState::IdentityConflict,
keyKind: CanonicalKeyKind::DerivedComposite,
missingFields: ['id', 'sourceId', 'id'],
metadata: [
'candidate_count' => 2,
'authorization' => 'Bearer secret',
'candidate_values' => range(1, 20),
],
);
expect($diagnostics['reason_code'])->toBe('same_scope_derived_identity_collision')
->and($diagnostics['identity_state'])->toBe('identity_conflict')
->and($diagnostics['key_kind'])->toBe('derived_composite')
->and($diagnostics['missing_fields'])->toBe(['id', 'sourceId'])
->and($diagnostics['authorization'])->toBe('[redacted]')
->and($diagnostics['candidate_values'])->toHaveCount(16);
});