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';
7 import { SharedModule } from '~/app/shared/shared.module';
8 import { configureTestBed, TabHelper } from '~/testing/unit-test-helper';
9 import { RgwUserS3Key } from '../models/rgw-user-s3-key';
10 import { RgwUserDetailsComponent } from './rgw-user-details.component';
12 describe('RgwUserDetailsComponent', () => {
13 let component: RgwUserDetailsComponent;
14 let fixture: ComponentFixture<RgwUserDetailsComponent>;
17 declarations: [RgwUserDetailsComponent],
18 imports: [BrowserAnimationsModule, HttpClientTestingModule, SharedModule, NgbNavModule]
22 fixture = TestBed.createComponent(RgwUserDetailsComponent);
23 component = fixture.componentInstance;
24 component.selection = {};
25 fixture.detectChanges();
28 it('should create', () => {
29 expect(component).toBeTruthy();
31 const tabs = TabHelper.getTextContents(fixture);
32 expect(tabs).toContain('Details');
33 expect(tabs).not.toContain('Keys');
36 it('should show "Details" tab', () => {
37 component.selection = { uid: 'myUsername' };
38 fixture.detectChanges();
40 const tabs = TabHelper.getTextContents(fixture);
41 expect(tabs).toContain('Details');
42 expect(tabs).not.toContain('Keys');
45 it('should show "Keys" tab', () => {
46 const s3Key = new RgwUserS3Key();
47 component.selection = { keys: [s3Key] };
48 component.ngOnChanges();
49 fixture.detectChanges();
51 const tabs = TabHelper.getTextContents(fixture);
52 expect(tabs).toContain('Details');
53 expect(tabs).toContain('Keys');
56 it('should show correct "System" info', () => {
57 component.selection = { uid: '', email: '', system: 'true', keys: [], swift_keys: [] };
59 component.ngOnChanges();
60 fixture.detectChanges();
62 const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
63 '.table.table-striped.table-bordered tr td'
65 expect(detailsTab[10].textContent).toEqual('System');
66 expect(detailsTab[11].textContent).toEqual('Yes');
68 component.selection.system = 'false';
69 component.ngOnChanges();
70 fixture.detectChanges();
72 expect(detailsTab[11].textContent).toEqual('No');