1
0
mirror of https://github.com/chylex/Lightning-Tracker.git synced 2024-12-22 05:42:48 +01:00
Lightning-Tracker/tests/acceptance/T121_MemberSorting_Cest.php

150 lines
5.0 KiB
PHP

<?php
declare(strict_types = 1);
namespace acceptance;
use AcceptanceTester;
class T121_MemberSorting_Cest{
private function viewProject(AcceptanceTester $I, int $project): void{
$I->amLoggedIn('User'.$project);
$I->amOnPage('/project/p'.$project.'/members');
}
public function sortByRoleAscThenNameAscIsDefaultInProject1(AcceptanceTester $I): void{
$this->viewProject($I, 1);
$I->seeTableRowOrder(['User1',
'Manager1',
'Manager2',
'User2',
'RoleLess',
'User3']);
}
public function sortByRoleAscThenNameAscIsDefaultInProject2(AcceptanceTester $I): void{
$this->viewProject($I, 2);
$I->seeTableRowOrder(['User2',
'Manager1',
'Manager2',
'User1']);
}
public function sortByNameInProject1(AcceptanceTester $I): void{
$order = [
'Manager1',
'Manager2',
'RoleLess',
'User1',
'User2',
'User3',
];
$this->viewProject($I, 1);
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder($order);
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder(array_reverse($order));
}
public function sortByNameInProject2(AcceptanceTester $I): void{
$order = [
'Manager1',
'Manager2',
'User1',
'User2',
];
$this->viewProject($I, 2);
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder($order);
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder(array_reverse($order));
}
public function sortByRoleInProject1(AcceptanceTester $I): void{
$this->viewProject($I, 1);
$I->click('thead tr:first-child th:nth-child(2) > a');
$I->seeTableRowOrder(['User1', // owner role
'Manager1', // role 1
'Manager2', // role 2
'User2', // role 3
'RoleLess', // no role, alphabetically first
'User3']); // no role, alphabetically last
$I->click('thead tr:first-child th:nth-child(2) > a');
$I->seeTableRowOrder(['RoleLess', // no role, alphabetically first
'User3', // no role, alphabetically last
'User2', // role 3
'Manager2', // role 2
'Manager1', // role 1
'User1']); // owner role
}
public function sortByRoleInProject2(AcceptanceTester $I): void{
$this->viewProject($I, 2);
$I->click('thead tr:first-child th:nth-child(2) > a');
$I->seeTableRowOrder(['User2', // owner role
'Manager1', // role 1, alphabetically first
'Manager2', // role 1, alphabetically second
'User1']); // role 1, alphabetically last
$I->click('thead tr:first-child th:nth-child(2) > a');
$I->seeTableRowOrder(['Manager1', // role 1, alphabetically first
'Manager2', // role 1, alphabetically second
'User1', // role 1, alphabetically last
'User2']); // owner role
}
/**
* @depends sortByRoleInProject2
*/
public function sortByRoleThenNameInProject2(AcceptanceTester $I): void{
$this->viewProject($I, 2);
$I->click('thead tr:first-child th:nth-child(2) > a');
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder(['User2', // owner role
'Manager1', // role 1, alphabetically first
'Manager2', // role 1, alphabetically second
'User1']); // role 1, alphabetically last
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder(['User2', // owner role
'User1', // role 1, alphabetically last
'Manager2', // role 1, alphabetically second
'Manager1']); // role 1, alphabetically first
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->click('thead tr:first-child th:nth-child(2) > a');
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder(['Manager1', // role 1, alphabetically first
'Manager2', // role 1, alphabetically second
'User1', // role 1, alphabetically last
'User2']); // owner role
$I->click('thead tr:first-child th:nth-child(1) > a');
$I->seeTableRowOrder(['User1', // role 1, alphabetically last
'Manager2', // role 1, alphabetically second
'Manager1', // role 1, alphabetically first
'User2']); // owner role
}
}
?>