119602: Fix existing accessibility-settings.service tests

This commit is contained in:
Andreas Awouters
2025-02-21 09:56:00 +01:00
parent d05096c015
commit 4c30e2d0be

View File

@@ -13,7 +13,6 @@ import { of } from 'rxjs';
import { EPerson } from '../core/eperson/models/eperson.model';
import { fakeAsync, flush } from '@angular/core/testing';
import { createSuccessfulRemoteDataObject$, createFailedRemoteDataObject$ } from '../shared/remote-data.utils';
import { KlaroService } from '../shared/cookies/klaro.service';
import { KlaroServiceStub } from '../shared/cookies/klaro.service.stub';
@@ -22,13 +21,15 @@ describe('accessibilitySettingsService', () => {
let cookieService: CookieServiceMock;
let authService: AuthServiceStub;
let ePersonService: EPersonDataService;
let klaroService: KlaroService;
let klaroService: KlaroServiceStub;
beforeEach(() => {
cookieService = new CookieServiceMock();
authService = new AuthServiceStub();
klaroService = new KlaroServiceStub();
klaroService.getSavedPreferences.and.returnValue(of({ accessibility: true }));
ePersonService = jasmine.createSpyObj('ePersonService', {
createPatchFromCache: of([{
op: 'add',
@@ -176,12 +177,12 @@ describe('accessibilitySettingsService', () => {
describe('setSettings', () => {
beforeEach(() => {
service.setSettingsInCookie = jasmine.createSpy('setSettingsInCookie');
service.setSettingsInCookie = jasmine.createSpy('setSettingsInCookie').and.returnValue(of('cookie'));
});
it('should attempt to set settings in metadata', () => {
service.setSettingsInAuthenticatedUserMetadata =
jasmine.createSpy('setSettingsInAuthenticatedUserMetadata').and.returnValue(of(false));
jasmine.createSpy('setSettingsInAuthenticatedUserMetadata').and.returnValue(of('failed'));
const settings: AccessibilitySettings = {
notificationTimeOut: '1000',
@@ -205,7 +206,7 @@ describe('accessibilitySettingsService', () => {
it('should not set settings in cookie if metadata succeeded', () => {
service.setSettingsInAuthenticatedUserMetadata =
jasmine.createSpy('setSettingsInAuthenticatedUserMetadata').and.returnValue(of(true));
jasmine.createSpy('setSettingsInAuthenticatedUserMetadata').and.returnValue(of('metadata'));
const settings: AccessibilitySettings = {
notificationTimeOut: '1000',
@@ -217,7 +218,7 @@ describe('accessibilitySettingsService', () => {
it('should return \'metadata\' if settings are stored in metadata', () => {
service.setSettingsInAuthenticatedUserMetadata =
jasmine.createSpy('setSettingsInAuthenticatedUserMetadata').and.returnValue(of(true));
jasmine.createSpy('setSettingsInAuthenticatedUserMetadata').and.returnValue(of('metadata'));
const settings: AccessibilitySettings = {
notificationTimeOut: '1000',
@@ -280,11 +281,11 @@ describe('accessibilitySettingsService', () => {
expect(service.setSettingsInMetadata).toHaveBeenCalled();
}));
it('should emit false when the user is not authenticated', fakeAsync(() => {
it('should emit "failed" when the user is not authenticated', fakeAsync(() => {
authService.getAuthenticatedUserFromStoreIfAuthenticated = jasmine.createSpy().and.returnValue(of(null));
service.setSettingsInAuthenticatedUserMetadata({})
.subscribe(value => expect(value).toBeFalse());
.subscribe(value => expect(value).toEqual('failed'));
flush();
expect(service.setSettingsInMetadata).not.toHaveBeenCalled();
@@ -320,23 +321,23 @@ describe('accessibilitySettingsService', () => {
expect(ePersonService.patch).toHaveBeenCalled();
});
it('should emit true when the update succeeded', fakeAsync(() => {
it('should emit "metadata" when the update succeeded', fakeAsync(() => {
ePersonService.patch = jasmine.createSpy().and.returnValue(createSuccessfulRemoteDataObject$({}));
service.setSettingsInMetadata(ePerson, { ['liveRegionTimeOut']: '500' })
.subscribe(value => {
expect(value).toBeTrue();
expect(value).toEqual('metadata');
});
flush();
}));
it('should emit false when the update failed', fakeAsync(() => {
it('should emit "failed" when the update failed', fakeAsync(() => {
ePersonService.patch = jasmine.createSpy().and.returnValue(createFailedRemoteDataObject$());
service.setSettingsInMetadata(ePerson, { ['liveRegionTimeOut']: '500' })
.subscribe(value => {
expect(value).toBeFalse();
expect(value).toEqual('failed');
});
flush();
@@ -349,16 +350,20 @@ describe('accessibilitySettingsService', () => {
cookieService.remove = jasmine.createSpy('remove');
});
it('should store the settings in a cookie', () => {
service.setSettingsInCookie({ ['liveRegionTimeOut']: '500' });
it('should store the settings in a cookie', fakeAsync(() => {
service.setSettingsInCookie({ ['liveRegionTimeOut']: '500' }).subscribe();
flush();
expect(cookieService.set).toHaveBeenCalled();
});
}));
it('should remove the cookie when the settings are empty', fakeAsync(() => {
service.setSettingsInCookie({}).subscribe();
flush();
it('should remove the cookie when the settings are empty', () => {
service.setSettingsInCookie({});
expect(cookieService.set).not.toHaveBeenCalled();
expect(cookieService.remove).toHaveBeenCalled();
});
}));
});
describe('convertFormValuesToStoredValues', () => {