]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/blob
11a647690c3f75e2abf861673b0cfd308b4bf295
[ceph-ci.git] /
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
4
5 import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
6 import { BsModalService } from 'ngx-bootstrap/modal';
7
8 import { configureTestBed, i18nProviders, TabHelper } from '../../../../testing/unit-test-helper';
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: [BrowserAnimationsModule, HttpClientTestingModule, SharedModule, NgbNavModule],
20     providers: [BsModalService, i18nProviders]
21   });
22
23   beforeEach(() => {
24     fixture = TestBed.createComponent(RgwUserDetailsComponent);
25     component = fixture.componentInstance;
26     component.selection = {};
27     fixture.detectChanges();
28   });
29
30   it('should create', () => {
31     expect(component).toBeTruthy();
32
33     const tabs = TabHelper.getTextContents(fixture);
34     expect(tabs).toContain('Details');
35     expect(tabs).not.toContain('Keys');
36   });
37
38   it('should show "Details" tab', () => {
39     component.selection = { uid: 'myUsername' };
40     fixture.detectChanges();
41
42     const tabs = TabHelper.getTextContents(fixture);
43     expect(tabs).toContain('Details');
44     expect(tabs).not.toContain('Keys');
45   });
46
47   it('should show "Keys" tab', () => {
48     const s3Key = new RgwUserS3Key();
49     component.selection = { keys: [s3Key] };
50     component.ngOnChanges();
51     fixture.detectChanges();
52
53     const tabs = TabHelper.getTextContents(fixture);
54     expect(tabs).toContain('Details');
55     expect(tabs).toContain('Keys');
56   });
57
58   it('should show correct "System" info', () => {
59     component.selection = { uid: '', email: '', system: 'true', keys: [], swift_keys: [] };
60
61     component.ngOnChanges();
62     fixture.detectChanges();
63
64     const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
65       '.table.table-striped.table-bordered tr td'
66     );
67     expect(detailsTab[6].textContent).toEqual('System');
68     expect(detailsTab[7].textContent).toEqual('Yes');
69
70     component.selection.system = 'false';
71     component.ngOnChanges();
72     fixture.detectChanges();
73
74     expect(detailsTab[7].textContent).toEqual('No');
75   });
76 });