1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
5 import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
6 import { BsModalService } from 'ngx-bootstrap/modal';
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';
13 describe('RgwUserDetailsComponent', () => {
14 let component: RgwUserDetailsComponent;
15 let fixture: ComponentFixture<RgwUserDetailsComponent>;
18 declarations: [RgwUserDetailsComponent],
19 imports: [BrowserAnimationsModule, HttpClientTestingModule, SharedModule, NgbNavModule],
20 providers: [BsModalService, i18nProviders]
24 fixture = TestBed.createComponent(RgwUserDetailsComponent);
25 component = fixture.componentInstance;
26 component.selection = {};
27 fixture.detectChanges();
30 it('should create', () => {
31 expect(component).toBeTruthy();
33 const tabs = TabHelper.getTextContents(fixture);
34 expect(tabs).toContain('Details');
35 expect(tabs).not.toContain('Keys');
38 it('should show "Details" tab', () => {
39 component.selection = { uid: 'myUsername' };
40 fixture.detectChanges();
42 const tabs = TabHelper.getTextContents(fixture);
43 expect(tabs).toContain('Details');
44 expect(tabs).not.toContain('Keys');
47 it('should show "Keys" tab', () => {
48 const s3Key = new RgwUserS3Key();
49 component.selection = { keys: [s3Key] };
50 component.ngOnChanges();
51 fixture.detectChanges();
53 const tabs = TabHelper.getTextContents(fixture);
54 expect(tabs).toContain('Details');
55 expect(tabs).toContain('Keys');
58 it('should show correct "System" info', () => {
59 component.selection = { uid: '', email: '', system: 'true', keys: [], swift_keys: [] };
61 component.ngOnChanges();
62 fixture.detectChanges();
64 const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
65 '.table.table-striped.table-bordered tr td'
67 expect(detailsTab[6].textContent).toEqual('System');
68 expect(detailsTab[7].textContent).toEqual('Yes');
70 component.selection.system = 'false';
71 component.ngOnChanges();
72 fixture.detectChanges();
74 expect(detailsTab[7].textContent).toEqual('No');