<?php

declare(strict_types=1);

use App\Services\Graph\GraphContractRegistry;

it('provides contract registry paths for onboarding verification probes', function (): void {
    $registry = app(GraphContractRegistry::class);

    $organizationPath = $registry->probePath('organization');

    expect($organizationPath)->not->toBeNull();
    expect(ltrim((string) $organizationPath, '/'))->toBe('organization');

    $appId = '00000000-0000-0000-0000-000000000000';
    $servicePrincipalByAppIdPath = $registry->probePath('service_principal_by_app_id', ['{appId}' => $appId]);

    expect($servicePrincipalByAppIdPath)->not->toBeNull();
    expect((string) $servicePrincipalByAppIdPath)->toContain('servicePrincipals');
    expect((string) $servicePrincipalByAppIdPath)->toContain($appId);

    $servicePrincipalId = '11111111-1111-1111-1111-111111111111';
    $assignmentsPath = $registry->probePath('service_principal_app_role_assignments', ['{servicePrincipalId}' => $servicePrincipalId]);

    expect($assignmentsPath)->not->toBeNull();
    expect((string) $assignmentsPath)->toContain("servicePrincipals/{$servicePrincipalId}/appRoleAssignments");
});
