1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
import { SharedModule } from '~/app/shared/shared.module';
import { configureTestBed, TabHelper } from '~/testing/unit-test-helper';
import { RgwUserS3Key } from '../models/rgw-user-s3-key';
import { RgwUserDetailsComponent } from './rgw-user-details.component';
describe('RgwUserDetailsComponent', () => {
let component: RgwUserDetailsComponent;
let fixture: ComponentFixture<RgwUserDetailsComponent>;
configureTestBed({
declarations: [RgwUserDetailsComponent],
imports: [BrowserAnimationsModule, HttpClientTestingModule, SharedModule, NgbNavModule]
});
beforeEach(() => {
fixture = TestBed.createComponent(RgwUserDetailsComponent);
component = fixture.componentInstance;
component.selection = {};
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
const tabs = TabHelper.getTextContents(fixture);
expect(tabs).toContain('Details');
expect(tabs).not.toContain('Keys');
});
it('should show "Details" tab', () => {
component.selection = { uid: 'myUsername' };
fixture.detectChanges();
const tabs = TabHelper.getTextContents(fixture);
expect(tabs).toContain('Details');
expect(tabs).not.toContain('Keys');
});
it('should show "Keys" tab', () => {
const s3Key = new RgwUserS3Key();
component.selection = { keys: [s3Key] };
component.ngOnChanges();
fixture.detectChanges();
const tabs = TabHelper.getTextContents(fixture);
expect(tabs).toContain('Details');
expect(tabs).toContain('Keys');
});
it('should show correct "System" info', () => {
component.selection = { uid: '', email: '', system: 'true', keys: [], swift_keys: [] };
component.ngOnChanges();
fixture.detectChanges();
const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
'.table.table-striped.table-bordered tr td'
);
expect(detailsTab[10].textContent).toEqual('System');
expect(detailsTab[11].textContent).toEqual('Yes');
component.selection.system = 'false';
component.ngOnChanges();
fixture.detectChanges();
expect(detailsTab[11].textContent).toEqual('No');
});
it('should show mfa ids only if length > 0', () => {
component.selection = {
uid: 'dashboard',
email: '',
system: 'true',
keys: [],
swift_keys: [],
mfa_ids: ['testMFA1', 'testMFA2']
};
component.ngOnChanges();
fixture.detectChanges();
const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
'.table.table-striped.table-bordered tr td'
);
expect(detailsTab[14].textContent).toEqual('MFAs(Id)');
expect(detailsTab[15].textContent).toEqual('testMFA1, testMFA2');
});
});
|