]>
Commit | Line | Data |
---|---|---|
1911f103 TL |
1 | import { fakeAsync, TestBed, tick } from '@angular/core/testing'; |
2 | ||
3 | import { of, Subscription } from 'rxjs'; | |
4 | ||
f67539c2 | 5 | import { configureTestBed } from '~/testing/unit-test-helper'; |
1911f103 TL |
6 | import { TimerService } from './timer.service'; |
7 | ||
8 | describe('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 | }); |