]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.spec.ts
370e717db7fdd7ea2a045311be2c0cd325e2cc72
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / rgw / rgw-user-details / rgw-user-details.component.spec.ts
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3
4 import { BsModalService } from 'ngx-bootstrap/modal';
5 import { TabsModule } from 'ngx-bootstrap/tabs';
6
7 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
8 import { CdTableSelection } from '../../../shared/models/cd-table-selection';
9 import { SharedModule } from '../../../shared/shared.module';
10 import { RgwUserS3Key } from '../models/rgw-user-s3-key';
11 import { RgwUserDetailsComponent } from './rgw-user-details.component';
12
13 describe('RgwUserDetailsComponent', () => {
14 let component: RgwUserDetailsComponent;
15 let fixture: ComponentFixture<RgwUserDetailsComponent>;
16
17 configureTestBed({
18 declarations: [RgwUserDetailsComponent],
19 imports: [HttpClientTestingModule, SharedModule, TabsModule.forRoot()],
20 providers: [BsModalService, i18nProviders]
21 });
22
23 beforeEach(() => {
24 fixture = TestBed.createComponent(RgwUserDetailsComponent);
25 component = fixture.componentInstance;
26 component.selection = new CdTableSelection();
27 fixture.detectChanges();
28 });
29
30 it('should create', () => {
31 expect(component).toBeTruthy();
32
33 const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
34 expect(detailsTab).toBeFalsy();
35 const keysTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Keys"]');
36 expect(keysTab).toBeFalsy();
37 });
38
39 it('should show "Details" tab', () => {
40 component.selection.selected = [{ uid: 'myUsername' }];
41 fixture.detectChanges();
42
43 const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
44 expect(detailsTab).toBeTruthy();
45 const keysTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Keys"]');
46 expect(keysTab).toBeFalsy();
47 });
48
49 it('should show "Keys" tab', () => {
50 const s3Key = new RgwUserS3Key();
51 component.selection.selected = [{ keys: [s3Key] }];
52 component.ngOnChanges();
53 fixture.detectChanges();
54
55 const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
56 expect(detailsTab).toBeTruthy();
57 const keysTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Keys"]');
58 expect(keysTab).toBeTruthy();
59 });
60
61 it('should show correct "System" info', () => {
62 component.selection.selected = [
63 { uid: '', email: '', system: 'true', keys: [], swift_keys: [] }
64 ];
65 component.ngOnChanges();
66 fixture.detectChanges();
67
68 const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
69 '.table.table-striped.table-bordered tr td'
70 );
71 expect(detailsTab[6].textContent).toEqual('System');
72 expect(detailsTab[7].textContent).toEqual('Yes');
73
74 component.selection.selected[0].system = 'false';
75 component.ngOnChanges();
76 fixture.detectChanges();
77
78 expect(detailsTab[7].textContent).toEqual('No');
79 });
80 });