Skip to content

Commit c247670

Browse files
committed
test: assert visibility is gated on user eligibility
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent ce8d17c commit c247670

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,29 @@ public function testResolveCanSaveAsUserDefaultFalseWhenDefinitionDoesNotSupport
342342
$this->assertFalse($resolved->canUseAsRequestOverride());
343343
}
344344

345+
public function testResolveHidesWhenUserIsNotEligible(): void {
346+
$source = new InMemoryPolicySource();
347+
$source->systemLayer = (new PolicyLayer())
348+
->setScope('system')
349+
->setValue('none')
350+
->setAllowChildOverride(true)
351+
->setVisibleToChild(true);
352+
353+
$definition = new PolicySpec(
354+
key: 'context_only_policy',
355+
defaultSystemValue: 'none',
356+
allowedValues: ['none', 'strict'],
357+
eligibilityChecker: static fn (PolicyContext $ctx): bool => false,
358+
);
359+
360+
$resolver = new DefaultPolicyResolver($source);
361+
$resolved = $resolver->resolve($definition, PolicyContext::fromUserId('john'));
362+
363+
$this->assertFalse($resolved->isVisible(), 'Policy must be hidden when user is not eligible');
364+
$this->assertFalse($resolved->canSaveAsUserDefault());
365+
$this->assertFalse($resolved->canUseAsRequestOverride());
366+
}
367+
345368
private function getValueChoiceDefinition(): PolicySpec {
346369
return new PolicySpec(
347370
key: 'signature_flow',

0 commit comments

Comments
 (0)