feat: additional role 'customer expert'
This commit is contained in:
@@ -40,6 +40,20 @@ class CrmAttributesResponseParserTest extends TestCase
|
||||
self::assertNotContains('ROLE_GROUPS_MANAGER', $roles);
|
||||
}
|
||||
|
||||
public function testParseAssignsCustomerExpertRoleWhenSelected(): void
|
||||
{
|
||||
$roles = $this->parseRoles($this->selectionXml(1483, true));
|
||||
|
||||
self::assertContains('ROLE_CUSTOMER_EXPERT', $roles);
|
||||
}
|
||||
|
||||
public function testParseAssignsNoCustomerExpertRoleWhenNotSelected(): void
|
||||
{
|
||||
$roles = $this->parseRoles($this->selectionXml(1483, false));
|
||||
|
||||
self::assertNotContains('ROLE_CUSTOMER_EXPERT', $roles);
|
||||
}
|
||||
|
||||
public function testParseAssignsNoGroupsRolesWhenNotSelected(): void
|
||||
{
|
||||
$roles = $this->parseRoles($this->selectionXml(1477, false));
|
||||
|
||||
@@ -24,6 +24,25 @@ class RoleTest extends TestCase
|
||||
self::assertSame([Role::TEAMER], Role::effectiveOnly($roles));
|
||||
}
|
||||
|
||||
public function testCustomerExpertClaimOnlyProducesANomination(): void
|
||||
{
|
||||
$roles = Role::sync([], [Role::CUSTOMER_EXPERT]);
|
||||
|
||||
self::assertSame([Role::pending(Role::CUSTOMER_EXPERT), Role::CUSTOMER], $roles);
|
||||
self::assertSame([Role::CUSTOMER], Role::effectiveOnly($roles));
|
||||
self::assertSame(
|
||||
[Role::CUSTOMER_EXPERT => 'KO-Experte'],
|
||||
Role::nominatedFrom($roles),
|
||||
);
|
||||
}
|
||||
|
||||
public function testApprovedCustomerExpertDisplacesTheCustomerFallback(): void
|
||||
{
|
||||
$roles = Role::approve([Role::pending(Role::CUSTOMER_EXPERT), Role::CUSTOMER], Role::CUSTOMER_EXPERT);
|
||||
|
||||
self::assertSame([Role::CUSTOMER_EXPERT], $roles);
|
||||
}
|
||||
|
||||
public function testApprovedRoleSurvivesTheNextSyncAndIsNotMarkedAgain(): void
|
||||
{
|
||||
$roles = Role::sync([Role::TEAMER, Role::GROUPS_ADMIN], [Role::GROUPS_ADMIN, Role::TEAMER]);
|
||||
|
||||
Reference in New Issue
Block a user