Commits
Andreas Awouters authored c1fa52ee64e
1 1 | import { LiveRegionService } from './live-region.service'; |
2 2 | import { fakeAsync, tick, flush } from '@angular/core/testing'; |
3 + | import { UUIDService } from '../../core/shared/uuid.service'; |
3 4 | |
4 5 | describe('liveRegionService', () => { |
5 6 | let service: LiveRegionService; |
6 7 | |
7 - | |
8 8 | beforeEach(() => { |
9 - | service = new LiveRegionService(); |
9 + | service = new LiveRegionService( |
10 + | new UUIDService(), |
11 + | ); |
10 12 | }); |
11 13 | |
12 14 | describe('addMessage', () => { |
13 15 | it('should correctly add messages', () => { |
14 16 | expect(service.getMessages().length).toEqual(0); |
15 17 | |
16 18 | service.addMessage('Message One'); |
17 19 | expect(service.getMessages().length).toEqual(1); |
18 20 | expect(service.getMessages()[0]).toEqual('Message One'); |
19 21 | |
78 80 | expect(results.length).toEqual(3); |
79 81 | expect(results[2]).toEqual(['Message One', 'Message Two']); |
80 82 | |
81 83 | service.clear(); |
82 84 | flush(); |
83 85 | |
84 86 | expect(results.length).toEqual(4); |
85 87 | expect(results[3]).toEqual([]); |
86 88 | })); |
87 89 | |
90 + | it('should not pop messages added after clearing within timeOut period', fakeAsync(() => { |
91 + | const results: string[][] = []; |
92 + | |
93 + | service.getMessages$().subscribe((messages) => { |
94 + | results.push(messages); |
95 + | }); |
96 + | |
97 + | expect(results.length).toEqual(1); |
98 + | expect(results[0]).toEqual([]); |
99 + | |
100 + | service.addMessage('Message One'); |
101 + | tick(10000); |
102 + | service.clear(); |
103 + | tick(15000); |
104 + | service.addMessage('Message Two'); |
105 + | |
106 + | // Message Two should not be cleared after 5 more seconds |
107 + | tick(5000); |
108 + | |
109 + | expect(results.length).toEqual(4); |
110 + | expect(results[3]).toEqual(['Message Two']); |
111 + | |
112 + | // But should be cleared 30 seconds after it was added |
113 + | tick(25000); |
114 + | expect(results.length).toEqual(5); |
115 + | expect(results[4]).toEqual([]); |
116 + | })); |
117 + | |
88 118 | it('should respect configured timeOut', fakeAsync(() => { |
89 119 | const results: string[][] = []; |
90 120 | |
91 121 | service.getMessages$().subscribe((messages) => { |
92 122 | results.push(messages); |
93 123 | }); |
94 124 | |
95 125 | expect(results.length).toEqual(1); |
96 126 | expect(results[0]).toEqual([]); |
97 127 | |