]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-list/user-list.component.spec.ts
import 15.2.0 Octopus source
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / core / auth / user-list / user-list.component.spec.ts
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3 import { RouterTestingModule } from '@angular/router/testing';
4
5 import { TabsModule } from 'ngx-bootstrap/tabs';
6 import { ToastrModule } from 'ngx-toastr';
7
8 import {
9 configureTestBed,
10 i18nProviders,
11 PermissionHelper
12 } from '../../../../testing/unit-test-helper';
13 import { TableActionsComponent } from '../../../shared/datatable/table-actions/table-actions.component';
14 import { SharedModule } from '../../../shared/shared.module';
15 import { UserTabsComponent } from '../user-tabs/user-tabs.component';
16 import { UserListComponent } from './user-list.component';
17
18 describe('UserListComponent', () => {
19 let component: UserListComponent;
20 let fixture: ComponentFixture<UserListComponent>;
21
22 configureTestBed({
23 imports: [
24 SharedModule,
25 ToastrModule.forRoot(),
26 TabsModule.forRoot(),
27 RouterTestingModule,
28 HttpClientTestingModule
29 ],
30 declarations: [UserListComponent, UserTabsComponent],
31 providers: i18nProviders
32 });
33
34 beforeEach(() => {
35 fixture = TestBed.createComponent(UserListComponent);
36 component = fixture.componentInstance;
37 });
38
39 it('should create', () => {
40 fixture.detectChanges();
41 expect(component).toBeTruthy();
42 });
43
44 it('should test all TableActions combinations', () => {
45 const permissionHelper: PermissionHelper = new PermissionHelper(component.permission);
46 const tableActions: TableActionsComponent = permissionHelper.setPermissionsAndGetActions(
47 component.tableActions
48 );
49
50 expect(tableActions).toEqual({
51 'create,update,delete': {
52 actions: ['Create', 'Edit', 'Delete'],
53 primary: { multiple: 'Create', executing: 'Edit', single: 'Edit', no: 'Create' }
54 },
55 'create,update': {
56 actions: ['Create', 'Edit'],
57 primary: { multiple: 'Create', executing: 'Edit', single: 'Edit', no: 'Create' }
58 },
59 'create,delete': {
60 actions: ['Create', 'Delete'],
61 primary: { multiple: 'Create', executing: 'Delete', single: 'Delete', no: 'Create' }
62 },
63 create: {
64 actions: ['Create'],
65 primary: { multiple: 'Create', executing: 'Create', single: 'Create', no: 'Create' }
66 },
67 'update,delete': {
68 actions: ['Edit', 'Delete'],
69 primary: { multiple: 'Edit', executing: 'Edit', single: 'Edit', no: 'Edit' }
70 },
71 update: {
72 actions: ['Edit'],
73 primary: { multiple: 'Edit', executing: 'Edit', single: 'Edit', no: 'Edit' }
74 },
75 delete: {
76 actions: ['Delete'],
77 primary: { multiple: 'Delete', executing: 'Delete', single: 'Delete', no: 'Delete' }
78 },
79 'no-permissions': {
80 actions: [],
81 primary: { multiple: '', executing: '', single: '', no: '' }
82 }
83 });
84 });
85 });