mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 18:14:17 +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 { 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 { 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', () => {
|
describe('liveRegionService', () => {
|
||||||
let service: LiveRegionService;
|
let service: LiveRegionService;
|
||||||
|
let accessibilitySettingsService: AccessibilitySettingsService;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
accessibilitySettingsService = getAccessibilitySettingsServiceStub();
|
||||||
|
|
||||||
|
accessibilitySettingsService.getAsNumber = jasmine.createSpy('getAsNumber').and.returnValue(of(100));
|
||||||
|
|
||||||
service = new LiveRegionService(
|
service = new LiveRegionService(
|
||||||
new UUIDService(),
|
new UUIDService(),
|
||||||
|
accessibilitySettingsService,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -81,13 +90,16 @@ describe('liveRegionService', () => {
|
|||||||
expect(results[2]).toEqual(['Message One', 'Message Two']);
|
expect(results[2]).toEqual(['Message One', 'Message Two']);
|
||||||
|
|
||||||
service.clear();
|
service.clear();
|
||||||
flush();
|
tick(200);
|
||||||
|
|
||||||
expect(results.length).toEqual(4);
|
expect(results.length).toEqual(4);
|
||||||
expect(results[3]).toEqual([]);
|
expect(results[3]).toEqual([]);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should not pop messages added after clearing within timeOut period', fakeAsync(() => {
|
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[][] = [];
|
const results: string[][] = [];
|
||||||
|
|
||||||
service.getMessages$().subscribe((messages) => {
|
service.getMessages$().subscribe((messages) => {
|
||||||
@@ -114,45 +126,6 @@ describe('liveRegionService', () => {
|
|||||||
expect(results.length).toEqual(5);
|
expect(results.length).toEqual(5);
|
||||||
expect(results[4]).toEqual([]);
|
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', () => {
|
describe('liveRegionVisibility', () => {
|
||||||
|
@@ -15,6 +15,8 @@ import uniqueId from 'lodash/uniqueId';
|
|||||||
import { INotificationBoardOptions } from '../../../../config/notifications-config.interfaces';
|
import { INotificationBoardOptions } from '../../../../config/notifications-config.interfaces';
|
||||||
import { NotificationsServiceStub } from '../../testing/notifications-service.stub';
|
import { NotificationsServiceStub } from '../../testing/notifications-service.stub';
|
||||||
import { cold } from 'jasmine-marbles';
|
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 };
|
export const bools = { f: false, t: true };
|
||||||
|
|
||||||
@@ -36,6 +38,7 @@ describe('NotificationsBoardComponent', () => {
|
|||||||
declarations: [NotificationsBoardComponent, NotificationComponent], // declare the test component
|
declarations: [NotificationsBoardComponent, NotificationComponent], // declare the test component
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: NotificationsService, useClass: NotificationsServiceStub },
|
{ provide: NotificationsService, useClass: NotificationsServiceStub },
|
||||||
|
{ provide: AccessibilitySettingsService, useValue: getAccessibilitySettingsServiceStub() },
|
||||||
ChangeDetectorRef]
|
ChangeDetectorRef]
|
||||||
}).compileComponents(); // compile template and css
|
}).compileComponents(); // compile template and css
|
||||||
}));
|
}));
|
||||||
|
Reference in New Issue
Block a user