Automated PR for spec 427 Exchange Teams verified source contract enablement. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #494
36 lines
1.9 KiB
PHP
36 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Models\TenantConfigurationResourceType;
|
|
use App\Services\Graph\GraphContractRegistry;
|
|
use App\Services\TenantConfiguration\CoverageSourceContractDecision;
|
|
use App\Services\TenantConfiguration\CoverageSourceContractResolver;
|
|
use App\Services\TenantConfiguration\ResourceTypeRegistry;
|
|
|
|
it('Spec427 classifies acceptedDomain as adapter-blocked with bounded Exchange source metadata', function (): void {
|
|
$decision = (new CoverageSourceContractResolver(new GraphContractRegistry))
|
|
->resolve(spec427AcceptedDomainResourceType());
|
|
|
|
expect($decision->sourceContractState)->toBe(CoverageSourceContractDecision::CONTRACT_BLOCKED_REPO_ADAPTER_MISSING)
|
|
->and($decision->sourceMetadata['workload'])->toBe('exchange')
|
|
->and($decision->sourceMetadata['source_class'])->toBe('tcm')
|
|
->and($decision->sourceMetadata['source_contract_name'])->toBe('exchange.acceptedDomain.source_contract_review')
|
|
->and($decision->sourceMetadata['source_contract_version'])->toBe('review-2026-07-03')
|
|
->and($decision->sourceMetadata['provider_adapter_state'])->toBe('missing')
|
|
->and($decision->sourceMetadata['identity_handoff']['preferred_identity_fields'])->toBe(['id', 'sourceId'])
|
|
->and($decision->sourceMetadata['identity_handoff']['fallback_identity_fields'])->toBe(['DomainName', 'domainName'])
|
|
->and($decision->sourceMetadata['response_shape']['display_safe_fields'])->toContain('DomainName')
|
|
->and($decision->sourceMetadata['normalization_handoff']['identity_fields'])->toContain('DomainName');
|
|
});
|
|
|
|
function spec427AcceptedDomainResourceType(): TenantConfigurationResourceType
|
|
{
|
|
$definition = collect(ResourceTypeRegistry::defaultDefinitions())
|
|
->firstWhere('canonical_type', 'acceptedDomain');
|
|
|
|
expect($definition)->not->toBeNull('Missing default resource type definition for acceptedDomain.');
|
|
|
|
return new TenantConfigurationResourceType($definition);
|
|
}
|