]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/monitor/monitor.component.spec.ts
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / cluster / monitor / monitor.component.spec.ts
1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { NO_ERRORS_SCHEMA } from '@angular/core';
3 import { ComponentFixture, TestBed } from '@angular/core/testing';
4
5 import { of } from 'rxjs';
6
7 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
8 import { MonitorService } from '../../../shared/api/monitor.service';
9 import { MonitorComponent } from './monitor.component';
10
11 describe('MonitorComponent', () => {
12 let component: MonitorComponent;
13 let fixture: ComponentFixture<MonitorComponent>;
14 let getMonitorSpy: jasmine.Spy;
15
16 configureTestBed({
17 imports: [HttpClientTestingModule],
18 declarations: [MonitorComponent],
19 schemas: [NO_ERRORS_SCHEMA],
20 providers: [MonitorService, i18nProviders]
21 });
22
23 beforeEach(() => {
24 fixture = TestBed.createComponent(MonitorComponent);
25 component = fixture.componentInstance;
26 const getMonitorPayload = {
27 in_quorum: [
28 {
29 stats: { num_sessions: [[1, 5]] }
30 },
31 {
32 stats: { num_sessions: [[1, 1], [2, 10], [3, 1]] }
33 },
34 {
35 stats: { num_sessions: [[1, 0], [2, 3]] }
36 },
37 {
38 stats: { num_sessions: [[1, 2], [2, 1], [3, 7], [4, 5]] }
39 }
40 ],
41 mon_status: null,
42 out_quorum: []
43 };
44 getMonitorSpy = spyOn(TestBed.get(MonitorService), 'getMonitor').and.returnValue(
45 of(getMonitorPayload)
46 );
47 });
48
49 it('should create', () => {
50 expect(component).toBeTruthy();
51 });
52
53 it('should sort by open sessions column correctly', () => {
54 component.refresh();
55
56 expect(getMonitorSpy).toHaveBeenCalled();
57
58 expect(component.inQuorum.columns[3].comparator(undefined, undefined)).toBe(0);
59 expect(component.inQuorum.columns[3].comparator(null, null)).toBe(0);
60 expect(component.inQuorum.columns[3].comparator([], [])).toBe(0);
61 expect(
62 component.inQuorum.columns[3].comparator(
63 component.inQuorum.data[0].cdOpenSessions,
64 component.inQuorum.data[3].cdOpenSessions
65 )
66 ).toBe(0);
67 expect(
68 component.inQuorum.columns[3].comparator(
69 component.inQuorum.data[0].cdOpenSessions,
70 component.inQuorum.data[1].cdOpenSessions
71 )
72 ).toBe(1);
73 expect(
74 component.inQuorum.columns[3].comparator(
75 component.inQuorum.data[1].cdOpenSessions,
76 component.inQuorum.data[0].cdOpenSessions
77 )
78 ).toBe(-1);
79 expect(
80 component.inQuorum.columns[3].comparator(
81 component.inQuorum.data[2].cdOpenSessions,
82 component.inQuorum.data[1].cdOpenSessions
83 )
84 ).toBe(1);
85 });
86 });