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