]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/timer.service.spec.ts
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / services / timer.service.spec.ts
CommitLineData
1911f103
TL
1import { fakeAsync, TestBed, tick } from '@angular/core/testing';
2
3import { of, Subscription } from 'rxjs';
4
f67539c2 5import { configureTestBed } from '~/testing/unit-test-helper';
1911f103
TL
6import { TimerService } from './timer.service';
7
8describe('TimerService', () => {
9 let service: TimerService;
10 let subs: Subscription;
11 let receivedData: any[];
12 const next = () => of(true);
13 const observer = (data: boolean) => {
14 receivedData.push(data);
15 };
16
17 configureTestBed({
18 providers: [TimerService]
19 });
20
21 beforeEach(() => {
f67539c2 22 service = TestBed.inject(TimerService);
1911f103
TL
23 receivedData = [];
24 });
25
26 it('should be created', () => {
27 expect(service).toBeTruthy();
28 });
29
30 it('should not emit any value when no subscribers', fakeAsync(() => {
31 subs = service.get(next).subscribe(observer);
32 tick(service.DEFAULT_REFRESH_INTERVAL);
33 expect(receivedData.length).toEqual(2);
34
35 subs.unsubscribe();
36
37 tick(service.DEFAULT_REFRESH_INTERVAL);
38 expect(receivedData.length).toEqual(2);
39 }));
40
41 it('should emit value with no dueTime and no refresh interval', fakeAsync(() => {
42 subs = service.get(next, null, null).subscribe(observer);
43 tick(service.DEFAULT_REFRESH_INTERVAL);
44 expect(receivedData.length).toEqual(1);
45 expect(receivedData).toEqual([true]);
46
47 subs.unsubscribe();
48 }));
49
50 it('should emit expected values when refresh interval + no dueTime', fakeAsync(() => {
51 subs = service.get(next).subscribe(observer);
52 tick(service.DEFAULT_REFRESH_INTERVAL * 2);
53 expect(receivedData.length).toEqual(3);
54 expect(receivedData).toEqual([true, true, true]);
55
56 subs.unsubscribe();
57 }));
58
59 it('should emit expected values when dueTime equal to refresh interval', fakeAsync(() => {
60 const dueTime = 1000;
61 subs = service.get(next, service.DEFAULT_REFRESH_INTERVAL, dueTime).subscribe(observer);
62 tick(service.DEFAULT_REFRESH_INTERVAL * 2);
63 expect(receivedData.length).toEqual(2);
64 expect(receivedData).toEqual([true, true]);
65
66 subs.unsubscribe();
67 }));
68});