1
0
mirror of https://github.com/chylex/Lightning-Tracker.git synced 2025-04-10 02:15:43 +02:00

Update project member management tests to include tracker moderator & cleanup test code

This commit is contained in:
chylex 2020-09-23 18:31:40 +02:00
parent 939068abaa
commit b4bab956f8
3 changed files with 49 additions and 17 deletions

View File

@ -35,6 +35,10 @@ class T122_MemberManageability_Cest{
'RoleLess' => 6,
];
public function _after(): void{
Acceptance::assignUser3Role('p1', null);
}
private function startManagingAs(AcceptanceTester $I, string $user): void{
$I->amLoggedIn($user);
$I->amOnPage('/project/p1/members');
@ -71,8 +75,7 @@ class T122_MemberManageability_Cest{
}
}
public function adminCanManageAllButOwnerDespiteNotBeingAMember(AcceptanceTester $I): void{
// TODO currently failing because the role check doesn't work for system admins
public function trackerAdminCanManageAllButOwnerDespiteNotBeingAMember(AcceptanceTester $I): void{
$this->startManagingAs($I, 'Admin');
$I->dontSee('Admin', 'table td:first-child');
@ -85,6 +88,19 @@ class T122_MemberManageability_Cest{
]);
}
public function trackerModeratorCanManageAllButOwnerDespiteNotBeingAMember(AcceptanceTester $I): void{
$this->startManagingAs($I, 'Moderator');
$I->dontSee('Moderator', 'table td:first-child');
$this->ensureCanOnlyManage($I, self::ROWS_USER3_ROLELESS, [
'Manager1',
'Manager2',
'User2',
'RoleLess',
'User3',
]);
}
public function ownerCanManageAllButSelf(AcceptanceTester $I): void{
$this->startManagingAs($I, 'User1');
@ -99,7 +115,7 @@ class T122_MemberManageability_Cest{
public function memberWithAdministratorRoleCanOnlyManageLowerRoles(AcceptanceTester $I): void{
Acceptance::assignUser3Role('p1', 'Administrator');
$this->startManagingAs($I, 'Manager1');
$this->startManagingAs($I, 'User3');
$this->ensureCanOnlyManage($I, self::ROWS_USER3_ADMINISTRATOR, [
'Manager2',
@ -110,7 +126,7 @@ class T122_MemberManageability_Cest{
public function memberWithModeratorRoleCanOnlyManageLowerRoles(AcceptanceTester $I): void{
Acceptance::assignUser3Role('p1', 'Moderator');
$this->startManagingAs($I, 'Manager2');
$this->startManagingAs($I, 'User3');
$this->ensureCanOnlyManage($I, self::ROWS_USER3_MODERATOR_OR_DEVELOPER, [
'User2',
@ -123,15 +139,6 @@ class T122_MemberManageability_Cest{
$this->startManagingAs($I, 'User3');
$this->ensureCanOnlyManage($I, self::ROWS_USER3_MODERATOR_OR_DEVELOPER, []);
}
/**
* @depends memberWithAdministratorRoleCanOnlyManageLowerRoles
* @depends memberWithModeratorRoleCanOnlyManageLowerRoles
* @depends memberWithDeveloperRoleCannotManageAnyone
*/
public function resetUser3Role(): void{
Acceptance::assignUser3Role('p1', null);
}
}
?>

View File

@ -16,6 +16,10 @@ class T123_MemberEditing_Cest{
'Reporter' => 5,
];
public function _after(): void{
Acceptance::assignUser3Role('p1', null);
}
private function startEditingAs(AcceptanceTester $I, string $editor, string $user): void{
$stmt = Acceptance::getDB()->prepare('SELECT id FROM users WHERE name = ?');
$stmt->execute([$user]);
@ -63,7 +67,7 @@ class T123_MemberEditing_Cest{
$I->seeOptionIsSelected('Role', $example[2]);
}
public function adminCanSetAllButOwnerRoleDespiteNotBeingAMember(AcceptanceTester $I): void{
public function trackerAdminCanSetAllButOwnerRoleDespiteNotBeingAMember(AcceptanceTester $I): void{
$this->startEditingAs($I, 'Admin', 'RoleLess');
$this->ensureCanOnlySetRoles($I, ['Administrator',
@ -72,6 +76,15 @@ class T123_MemberEditing_Cest{
'Reporter']);
}
public function trackerModeratorCanSetAllButOwnerRoleDespiteNotBeingAMember(AcceptanceTester $I): void{
$this->startEditingAs($I, 'Moderator', 'RoleLess');
$this->ensureCanOnlySetRoles($I, ['Administrator',
'Moderator',
'Developer',
'Reporter']);
}
public function ownerCanSetAllButOwnerRole(AcceptanceTester $I): void{
$this->startEditingAs($I, 'User1', 'RoleLess');
@ -82,7 +95,8 @@ class T123_MemberEditing_Cest{
}
public function memberWithAdministratorRoleCanOnlySetLowerRoles(AcceptanceTester $I): void{
$this->startEditingAs($I, 'Manager1', 'RoleLess');
Acceptance::assignUser3Role('p1', 'Administrator');
$this->startEditingAs($I, 'User3', 'RoleLess');
$this->ensureCanOnlySetRoles($I, ['Moderator',
'Developer',
@ -90,7 +104,8 @@ class T123_MemberEditing_Cest{
}
public function memberWithModeratorRoleCanOnlySetLowerRoles(AcceptanceTester $I): void{
$this->startEditingAs($I, 'Manager2', 'RoleLess');
Acceptance::assignUser3Role('p1', 'Moderator');
$this->startEditingAs($I, 'User3', 'RoleLess');
$this->ensureCanOnlySetRoles($I, ['Developer',
'Reporter']);

View File

@ -84,7 +84,7 @@ class T124_MemberRemoval_Cest{
$I->see('Member not found');
}
public function adminCanRemoveAllButOwnerRoleDespiteNotBeingAMember(AcceptanceTester $I): void{
public function trackerAdminCanRemoveAllButOwnerRoleDespiteNotBeingAMember(AcceptanceTester $I): void{
$this->ensureCannotRemove($I, 'Admin', 'User1');
$this->ensureCanRemoveWithConfirmation($I, 'Admin', 'Manager1');
$this->ensureCanRemoveWithConfirmation($I, 'Admin', 'Manager2');
@ -94,6 +94,16 @@ class T124_MemberRemoval_Cest{
$this->restoreMembers();
}
public function trackerModeratorCanRemoveAllButOwnerRoleDespiteNotBeingAMember(AcceptanceTester $I): void{
$this->ensureCannotRemove($I, 'Moderator', 'User1');
$this->ensureCanRemoveWithConfirmation($I, 'Moderator', 'Manager1');
$this->ensureCanRemoveWithConfirmation($I, 'Moderator', 'Manager2');
$this->ensureCanRemoveWithoutConfirmation($I, 'Moderator', 'User2');
$this->ensureCanRemoveWithConfirmation($I, 'Moderator', 'RoleLess');
$this->ensureCanRemoveWithoutConfirmation($I, 'Moderator', 'User3');
$this->restoreMembers();
}
public function ownerCanRemoveAllButSelf(AcceptanceTester $I): void{
$this->ensureCannotRemove($I, 'User1', 'User1');
$this->ensureCanRemoveWithConfirmation($I, 'User1', 'Manager1');