119602: Add AccessibilitySettingsService stub & fix live-region test

This commit is contained in:
Andreas Awouters
2024-10-25 14:39:23 +02:00
parent 6a49df59af
commit cad086c945
3 changed files with 51 additions and 41 deletions

View File

@@ -0,0 +1,34 @@
import { of } from 'rxjs';
import { AccessibilitySettingsService } from './accessibility-settings.service';
export function getAccessibilitySettingsServiceStub(): AccessibilitySettingsService {
return new AccessibilitySettingsServiceStub() as unknown as AccessibilitySettingsService;
}
export class AccessibilitySettingsServiceStub {
getAllAccessibilitySettingKeys = jasmine.createSpy('getAllAccessibilitySettingKeys').and.returnValue([]);
get = jasmine.createSpy('get').and.returnValue(of(null));
getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(0));
getAll = jasmine.createSpy('getAll').and.returnValue(of({}));
getAllSettingsFromCookie = jasmine.createSpy('getAllSettingsFromCookie').and.returnValue({});
getAllSettingsFromAuthenticatedUserMetadata = jasmine.createSpy('getAllSettingsFromAuthenticatedUserMetadata')
.and.returnValue(of({}));
set = jasmine.createSpy('setSettings').and.returnValue(of('cookie'));
updateSettings = jasmine.createSpy('updateSettings').and.returnValue(of('cookie'));
setSettingsInAuthenticatedUserMetadata = jasmine.createSpy('setSettingsInAuthenticatedUserMetadata')
.and.returnValue(of(false));
setSettingsInMetadata = jasmine.createSpy('setSettingsInMetadata').and.returnValue(of(false));
setSettingsInCookie = jasmine.createSpy('setSettingsInCookie');
getInputType = jasmine.createSpy('getInputType').and.returnValue('text');
}

View File

@@ -1,13 +1,22 @@
import { LiveRegionService } from './live-region.service';
import { fakeAsync, tick, flush } from '@angular/core/testing';
import { fakeAsync, tick } from '@angular/core/testing';
import { UUIDService } from '../../core/shared/uuid.service';
import { getAccessibilitySettingsServiceStub } from '../../accessibility/accessibility-settings.service.stub';
import { AccessibilitySettingsService } from '../../accessibility/accessibility-settings.service';
import { of } from 'rxjs';
describe('liveRegionService', () => {
let service: LiveRegionService;
let accessibilitySettingsService: AccessibilitySettingsService;
beforeEach(() => {
accessibilitySettingsService = getAccessibilitySettingsServiceStub();
accessibilitySettingsService.getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(100));
service = new LiveRegionService(
new UUIDService(),
accessibilitySettingsService,
);
});
@@ -81,13 +90,16 @@ describe('liveRegionService', () => {
expect(results[2]).toEqual(['Message One', 'Message Two']);
service.clear();
flush();
tick(200);
expect(results.length).toEqual(4);
expect(results[3]).toEqual([]);
}));
it('should not pop messages added after clearing within timeOut period', fakeAsync(() => {
// test expects a clear rate of 30 seconds
accessibilitySettingsService.getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(30000));
const results: string[][] = [];
service.getMessages$().subscribe((messages) => {
@@ -114,45 +126,6 @@ describe('liveRegionService', () => {
expect(results.length).toEqual(5);
expect(results[4]).toEqual([]);
}));
it('should respect configured timeOut', fakeAsync(() => {
const results: string[][] = [];
service.getMessages$().subscribe((messages) => {
results.push(messages);
});
expect(results.length).toEqual(1);
expect(results[0]).toEqual([]);
const timeOutMs = 500;
service.setMessageTimeOutMs(timeOutMs);
service.addMessage('Message One');
tick(timeOutMs - 1);
expect(results.length).toEqual(2);
expect(results[1]).toEqual(['Message One']);
tick(1);
expect(results.length).toEqual(3);
expect(results[2]).toEqual([]);
const timeOutMsTwo = 50000;
service.setMessageTimeOutMs(timeOutMsTwo);
service.addMessage('Message Two');
tick(timeOutMsTwo - 1);
expect(results.length).toEqual(4);
expect(results[3]).toEqual(['Message Two']);
tick(1);
expect(results.length).toEqual(5);
expect(results[4]).toEqual([]);
}));
});
describe('liveRegionVisibility', () => {

View File

@@ -15,6 +15,8 @@ import uniqueId from 'lodash/uniqueId';
import { INotificationBoardOptions } from '../../../../config/notifications-config.interfaces';
import { NotificationsServiceStub } from '../../testing/notifications-service.stub';
import { cold } from 'jasmine-marbles';
import { AccessibilitySettingsService } from '../../../accessibility/accessibility-settings.service';
import { getAccessibilitySettingsServiceStub } from '../../../accessibility/accessibility-settings.service.stub';
export const bools = { f: false, t: true };
@@ -36,6 +38,7 @@ describe('NotificationsBoardComponent', () => {
declarations: [NotificationsBoardComponent, NotificationComponent], // declare the test component
providers: [
{ provide: NotificationsService, useClass: NotificationsServiceStub },
{ provide: AccessibilitySettingsService, useValue: getAccessibilitySettingsServiceStub() },
ChangeDetectorRef]
}).compileComponents(); // compile template and css
}));