Skip to content

Commit 932c9a7

Browse files
committed
test(policy): assert circle layer is ignored in phase 1
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent e9df1b1 commit 932c9a7

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

tests/php/Unit/Service/Policy/Runtime/DefaultPolicyResolverTest.php

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,35 @@ public function testResolveAppliesRequestOverrideWhenAllowed(): void {
112112
$this->assertNull($resolved->getBlockedBy());
113113
}
114114

115+
public function testResolveIgnoresCircleLayersInCurrentPhase(): void {
116+
$source = new InMemoryPolicySource();
117+
$source->systemLayer = (new PolicyLayer())
118+
->setScope('system')
119+
->setValue('none')
120+
->setAllowChildOverride(true)
121+
->setVisibleToChild(true);
122+
$source->groupLayers = [
123+
(new PolicyLayer())
124+
->setScope('group')
125+
->setValue('parallel')
126+
->setAllowChildOverride(true)
127+
->setVisibleToChild(true),
128+
];
129+
$source->circleLayers = [
130+
(new PolicyLayer())
131+
->setScope('circle')
132+
->setValue('ordered_numeric')
133+
->setAllowChildOverride(true)
134+
->setVisibleToChild(true),
135+
];
136+
137+
$resolver = new DefaultPolicyResolver($source);
138+
$resolved = $resolver->resolve($this->getDefinition(), PolicyContext::fromUserId('john'));
139+
140+
$this->assertSame('parallel', $resolved->getEffectiveValue());
141+
$this->assertFalse($source->circlePoliciesLoaded);
142+
}
143+
115144
private function getDefinition(): PolicySpec {
116145
return new PolicySpec(
117146
key: 'signature_flow',
@@ -125,9 +154,12 @@ final class InMemoryPolicySource implements IPolicySource {
125154
public ?PolicyLayer $systemLayer = null;
126155
/** @var list<PolicyLayer> */
127156
public array $groupLayers = [];
157+
/** @var list<PolicyLayer> */
158+
public array $circleLayers = [];
128159
public ?PolicyLayer $userPreference = null;
129160
public ?PolicyLayer $requestOverride = null;
130161
public bool $userPreferenceCleared = false;
162+
public bool $circlePoliciesLoaded = false;
131163

132164
public function loadSystemPolicy(string $policyKey): ?PolicyLayer {
133165
return $this->systemLayer;
@@ -142,7 +174,8 @@ public function loadGroupPolicyConfig(string $policyKey, string $groupId): ?Poli
142174
}
143175

144176
public function loadCirclePolicies(string $policyKey, PolicyContext $context): array {
145-
return [];
177+
$this->circlePoliciesLoaded = true;
178+
return $this->circleLayers;
146179
}
147180

148181
public function loadUserPreference(string $policyKey, PolicyContext $context): ?PolicyLayer {

0 commit comments

Comments
 (0)