mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
119602: Add AccessibilitySettingsService stub & fix live-region test
This commit is contained in:
34
src/app/accessibility/accessibility-settings.service.stub.ts
Normal file
34
src/app/accessibility/accessibility-settings.service.stub.ts
Normal 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');
|
||||
}
|
@@ -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', () => {
|
||||
|
@@ -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
|
||||
}));
|
||||
|
Reference in New Issue
Block a user