]>
Commit | Line | Data |
---|---|---|
92f5a8d4 | 1 | import { HttpClientTestingModule } from '@angular/common/http/testing'; |
11fdf7f2 TL |
2 | import { NO_ERRORS_SCHEMA } from '@angular/core'; |
3 | import { ComponentFixture, TestBed } from '@angular/core/testing'; | |
4 | ||
92f5a8d4 TL |
5 | import { of } from 'rxjs'; |
6 | ||
f67539c2 TL |
7 | import { MonitorService } from '~/app/shared/api/monitor.service'; |
8 | import { SharedModule } from '~/app/shared/shared.module'; | |
9 | import { configureTestBed } from '~/testing/unit-test-helper'; | |
11fdf7f2 TL |
10 | import { MonitorComponent } from './monitor.component'; |
11 | ||
12 | describe('MonitorComponent', () => { | |
13 | let component: MonitorComponent; | |
14 | let fixture: ComponentFixture<MonitorComponent>; | |
92f5a8d4 | 15 | let getMonitorSpy: jasmine.Spy; |
11fdf7f2 TL |
16 | |
17 | configureTestBed({ | |
f67539c2 | 18 | imports: [HttpClientTestingModule, SharedModule], |
11fdf7f2 TL |
19 | declarations: [MonitorComponent], |
20 | schemas: [NO_ERRORS_SCHEMA], | |
f67539c2 | 21 | providers: [MonitorService] |
11fdf7f2 TL |
22 | }); |
23 | ||
24 | beforeEach(() => { | |
25 | fixture = TestBed.createComponent(MonitorComponent); | |
26 | component = fixture.componentInstance; | |
9f95a23c | 27 | const getMonitorPayload: Record<string, any> = { |
92f5a8d4 TL |
28 | in_quorum: [ |
29 | { | |
30 | stats: { num_sessions: [[1, 5]] } | |
31 | }, | |
32 | { | |
801d1391 TL |
33 | stats: { |
34 | num_sessions: [ | |
35 | [1, 1], | |
36 | [2, 10], | |
37 | [3, 1] | |
38 | ] | |
39 | } | |
92f5a8d4 TL |
40 | }, |
41 | { | |
801d1391 TL |
42 | stats: { |
43 | num_sessions: [ | |
44 | [1, 0], | |
45 | [2, 3] | |
46 | ] | |
47 | } | |
92f5a8d4 TL |
48 | }, |
49 | { | |
801d1391 TL |
50 | stats: { |
51 | num_sessions: [ | |
52 | [1, 2], | |
53 | [2, 1], | |
54 | [3, 7], | |
55 | [4, 5] | |
56 | ] | |
57 | } | |
92f5a8d4 TL |
58 | } |
59 | ], | |
60 | mon_status: null, | |
61 | out_quorum: [] | |
62 | }; | |
f67539c2 | 63 | getMonitorSpy = spyOn(TestBed.inject(MonitorService), 'getMonitor').and.returnValue( |
92f5a8d4 TL |
64 | of(getMonitorPayload) |
65 | ); | |
11fdf7f2 TL |
66 | }); |
67 | ||
68 | it('should create', () => { | |
69 | expect(component).toBeTruthy(); | |
70 | }); | |
92f5a8d4 TL |
71 | |
72 | it('should sort by open sessions column correctly', () => { | |
73 | component.refresh(); | |
74 | ||
75 | expect(getMonitorSpy).toHaveBeenCalled(); | |
76 | ||
77 | expect(component.inQuorum.columns[3].comparator(undefined, undefined)).toBe(0); | |
78 | expect(component.inQuorum.columns[3].comparator(null, null)).toBe(0); | |
79 | expect(component.inQuorum.columns[3].comparator([], [])).toBe(0); | |
80 | expect( | |
81 | component.inQuorum.columns[3].comparator( | |
82 | component.inQuorum.data[0].cdOpenSessions, | |
83 | component.inQuorum.data[3].cdOpenSessions | |
84 | ) | |
85 | ).toBe(0); | |
86 | expect( | |
87 | component.inQuorum.columns[3].comparator( | |
88 | component.inQuorum.data[0].cdOpenSessions, | |
89 | component.inQuorum.data[1].cdOpenSessions | |
90 | ) | |
91 | ).toBe(1); | |
92 | expect( | |
93 | component.inQuorum.columns[3].comparator( | |
94 | component.inQuorum.data[1].cdOpenSessions, | |
95 | component.inQuorum.data[0].cdOpenSessions | |
96 | ) | |
97 | ).toBe(-1); | |
98 | expect( | |
99 | component.inQuorum.columns[3].comparator( | |
100 | component.inQuorum.data[2].cdOpenSessions, | |
101 | component.inQuorum.data[1].cdOpenSessions | |
102 | ) | |
103 | ).toBe(1); | |
104 | }); | |
11fdf7f2 | 105 | }); |