Skip to content

Commit cad086c

Browse files
committed
119602: Add AccessibilitySettingsService stub & fix live-region test
1 parent 6a49df5 commit cad086c

3 files changed

Lines changed: 51 additions & 41 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { of } from 'rxjs';
2+
import { AccessibilitySettingsService } from './accessibility-settings.service';
3+
4+
export function getAccessibilitySettingsServiceStub(): AccessibilitySettingsService {
5+
return new AccessibilitySettingsServiceStub() as unknown as AccessibilitySettingsService;
6+
}
7+
8+
export class AccessibilitySettingsServiceStub {
9+
getAllAccessibilitySettingKeys = jasmine.createSpy('getAllAccessibilitySettingKeys').and.returnValue([]);
10+
11+
get = jasmine.createSpy('get').and.returnValue(of(null));
12+
13+
getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(0));
14+
15+
getAll = jasmine.createSpy('getAll').and.returnValue(of({}));
16+
17+
getAllSettingsFromCookie = jasmine.createSpy('getAllSettingsFromCookie').and.returnValue({});
18+
19+
getAllSettingsFromAuthenticatedUserMetadata = jasmine.createSpy('getAllSettingsFromAuthenticatedUserMetadata')
20+
.and.returnValue(of({}));
21+
22+
set = jasmine.createSpy('setSettings').and.returnValue(of('cookie'));
23+
24+
updateSettings = jasmine.createSpy('updateSettings').and.returnValue(of('cookie'));
25+
26+
setSettingsInAuthenticatedUserMetadata = jasmine.createSpy('setSettingsInAuthenticatedUserMetadata')
27+
.and.returnValue(of(false));
28+
29+
setSettingsInMetadata = jasmine.createSpy('setSettingsInMetadata').and.returnValue(of(false));
30+
31+
setSettingsInCookie = jasmine.createSpy('setSettingsInCookie');
32+
33+
getInputType = jasmine.createSpy('getInputType').and.returnValue('text');
34+
}

src/app/shared/live-region/live-region.service.spec.ts

Lines changed: 14 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
import { LiveRegionService } from './live-region.service';
2-
import { fakeAsync, tick, flush } from '@angular/core/testing';
2+
import { fakeAsync, tick } from '@angular/core/testing';
33
import { UUIDService } from '../../core/shared/uuid.service';
4+
import { getAccessibilitySettingsServiceStub } from '../../accessibility/accessibility-settings.service.stub';
5+
import { AccessibilitySettingsService } from '../../accessibility/accessibility-settings.service';
6+
import { of } from 'rxjs';
47

58
describe('liveRegionService', () => {
69
let service: LiveRegionService;
10+
let accessibilitySettingsService: AccessibilitySettingsService;
711

812
beforeEach(() => {
13+
accessibilitySettingsService = getAccessibilitySettingsServiceStub();
14+
15+
accessibilitySettingsService.getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(100));
16+
917
service = new LiveRegionService(
1018
new UUIDService(),
19+
accessibilitySettingsService,
1120
);
1221
});
1322

@@ -81,13 +90,16 @@ describe('liveRegionService', () => {
8190
expect(results[2]).toEqual(['Message One', 'Message Two']);
8291

8392
service.clear();
84-
flush();
93+
tick(200);
8594

8695
expect(results.length).toEqual(4);
8796
expect(results[3]).toEqual([]);
8897
}));
8998

9099
it('should not pop messages added after clearing within timeOut period', fakeAsync(() => {
100+
// test expects a clear rate of 30 seconds
101+
accessibilitySettingsService.getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(30000));
102+
91103
const results: string[][] = [];
92104

93105
service.getMessages$().subscribe((messages) => {
@@ -114,45 +126,6 @@ describe('liveRegionService', () => {
114126
expect(results.length).toEqual(5);
115127
expect(results[4]).toEqual([]);
116128
}));
117-
118-
it('should respect configured timeOut', fakeAsync(() => {
119-
const results: string[][] = [];
120-
121-
service.getMessages$().subscribe((messages) => {
122-
results.push(messages);
123-
});
124-
125-
expect(results.length).toEqual(1);
126-
expect(results[0]).toEqual([]);
127-
128-
const timeOutMs = 500;
129-
service.setMessageTimeOutMs(timeOutMs);
130-
131-
service.addMessage('Message One');
132-
tick(timeOutMs - 1);
133-
134-
expect(results.length).toEqual(2);
135-
expect(results[1]).toEqual(['Message One']);
136-
137-
tick(1);
138-
139-
expect(results.length).toEqual(3);
140-
expect(results[2]).toEqual([]);
141-
142-
const timeOutMsTwo = 50000;
143-
service.setMessageTimeOutMs(timeOutMsTwo);
144-
145-
service.addMessage('Message Two');
146-
tick(timeOutMsTwo - 1);
147-
148-
expect(results.length).toEqual(4);
149-
expect(results[3]).toEqual(['Message Two']);
150-
151-
tick(1);
152-
153-
expect(results.length).toEqual(5);
154-
expect(results[4]).toEqual([]);
155-
}));
156129
});
157130

158131
describe('liveRegionVisibility', () => {

src/app/shared/notifications/notifications-board/notifications-board.component.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import uniqueId from 'lodash/uniqueId';
1515
import { INotificationBoardOptions } from '../../../../config/notifications-config.interfaces';
1616
import { NotificationsServiceStub } from '../../testing/notifications-service.stub';
1717
import { cold } from 'jasmine-marbles';
18+
import { AccessibilitySettingsService } from '../../../accessibility/accessibility-settings.service';
19+
import { getAccessibilitySettingsServiceStub } from '../../../accessibility/accessibility-settings.service.stub';
1820

1921
export const bools = { f: false, t: true };
2022

@@ -36,6 +38,7 @@ describe('NotificationsBoardComponent', () => {
3638
declarations: [NotificationsBoardComponent, NotificationComponent], // declare the test component
3739
providers: [
3840
{ provide: NotificationsService, useClass: NotificationsServiceStub },
41+
{ provide: AccessibilitySettingsService, useValue: getAccessibilitySettingsServiceStub() },
3942
ChangeDetectorRef]
4043
}).compileComponents(); // compile template and css
4144
}));

0 commit comments

Comments
 (0)