Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: TT-310 Improve role implementation
  • Loading branch information
jcalarcon98 committed Aug 17, 2021
commit c085ab12120e041dcd06da0f4d17346f345a6246
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
<td class="col-4 text-break">{{ user.email }}</td>
<td class="col-5 text-break">{{ user.name }}</td>
<td class="col-3 text-center">
<ui-switch size="small" (change)="switchGroup('time-tracker-admin', user); updateRole(ROLES.admin, user);"
<ui-switch size="small"
(change)="switchGroup('time-tracker-admin', user); updateRole(ROLES.admin, user, $event);"
[checked]="user.groups.includes('time-tracker-admin')"></ui-switch>
admin
<ui-switch size="small" (change)="switchGroup('time-tracker-tester', user)"
Expand All @@ -24,4 +25,4 @@
</tr>
</tbody>
</table>
</div>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ describe('UsersListComponent', () => {
expect(component.dtElement.dtInstance.then).toHaveBeenCalled();
});

it('When the user does not have the role, this role must be added', () => {
it('When the toggle is enabled, the role must be added to the user ', () => {
const availableRoles = [
{
name: 'admin',
Expand All @@ -190,12 +190,13 @@ describe('UsersListComponent', () => {
};

availableRoles.forEach((role) => {
component.updateRole(role, user);
const isToggleEnabled = true;
component.updateRole(role, user, isToggleEnabled);
expect(store.dispatch).toHaveBeenCalledWith(new GrantUserRole(user.id, role.name));
});
});

it('When the user has the role, this role must be removed', () => {
it('When the toggle is disabled, the role must be removed from the user', () => {
const availableRoles = [
{
name: 'admin',
Expand All @@ -217,7 +218,8 @@ describe('UsersListComponent', () => {
};

availableRoles.forEach((role) => {
component.updateRole(role, user);
const isToggleEnabled = false;
component.updateRole(role, user, isToggleEnabled);
expect(store.dispatch).toHaveBeenCalledWith(new RevokeUserRole(user.id, role.name));
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,8 @@ export class UsersListComponent implements OnInit, OnDestroy, AfterViewInit {
);
}

updateRole(role: { name: string; value: string }, user: User) {
const userHasRole = user.roles.includes(role.value);
const action = userHasRole ? new RevokeUserRole(user.id, role.name) : new GrantUserRole(user.id, role.name);

updateRole(role: { name: string; value: string }, user: User, isToggleEnabled: boolean) {
const action = isToggleEnabled ? new GrantUserRole(user.id, role.name) : new RevokeUserRole(user.id, role.name);
this.store.dispatch(action);
}

Expand Down