TenantAtlas/tests/Unit/GraphContractRegistrySettingsWriteStrategyTest.php
2025-12-14 20:23:18 +01:00

31 lines
1.1 KiB
PHP

<?php
use App\Services\Graph\GraphContractRegistry;
use Tests\TestCase;
uses(TestCase::class);
it('builds settings write method and path from the contract', function () {
config()->set('graph_contracts.types.settingsCatalogPolicy', [
'settings_write' => [
'path_template' => 'deviceManagement/configurationPolicies/{id}/settings/{settingId}',
'method' => 'PATCH',
],
]);
$registry = app(GraphContractRegistry::class);
expect($registry->settingsWriteMethod('settingsCatalogPolicy'))->toBe('PATCH');
expect($registry->settingsWritePath('settingsCatalogPolicy', 'policy-1', 'setting-9'))
->toBe('deviceManagement/configurationPolicies/policy-1/settings/setting-9');
});
it('returns null when settings write contract is missing', function () {
config()->set('graph_contracts.types.settingsCatalogPolicy', []);
$registry = app(GraphContractRegistry::class);
expect($registry->settingsWriteMethod('settingsCatalogPolicy'))->toBeNull();
expect($registry->settingsWritePath('settingsCatalogPolicy', 'policy-1', 'setting-9'))->toBeNull();
});