@@ -13,7 +13,6 @@ import { of } from 'rxjs';
1313import { EPerson } from '../core/eperson/models/eperson.model' ;
1414import { fakeAsync , flush } from '@angular/core/testing' ;
1515import { createSuccessfulRemoteDataObject$ , createFailedRemoteDataObject$ } from '../shared/remote-data.utils' ;
16- import { KlaroService } from '../shared/cookies/klaro.service' ;
1716import { KlaroServiceStub } from '../shared/cookies/klaro.service.stub' ;
1817
1918
@@ -22,13 +21,15 @@ describe('accessibilitySettingsService', () => {
2221 let cookieService : CookieServiceMock ;
2322 let authService : AuthServiceStub ;
2423 let ePersonService : EPersonDataService ;
25- let klaroService : KlaroService ;
24+ let klaroService : KlaroServiceStub ;
2625
2726 beforeEach ( ( ) => {
2827 cookieService = new CookieServiceMock ( ) ;
2928 authService = new AuthServiceStub ( ) ;
3029 klaroService = new KlaroServiceStub ( ) ;
3130
31+ klaroService . getSavedPreferences . and . returnValue ( of ( { accessibility : true } ) ) ;
32+
3233 ePersonService = jasmine . createSpyObj ( 'ePersonService' , {
3334 createPatchFromCache : of ( [ {
3435 op : 'add' ,
@@ -176,12 +177,12 @@ describe('accessibilitySettingsService', () => {
176177
177178 describe ( 'setSettings' , ( ) => {
178179 beforeEach ( ( ) => {
179- service . setSettingsInCookie = jasmine . createSpy ( 'setSettingsInCookie' ) ;
180+ service . setSettingsInCookie = jasmine . createSpy ( 'setSettingsInCookie' ) . and . returnValue ( of ( 'cookie' ) ) ;
180181 } ) ;
181182
182183 it ( 'should attempt to set settings in metadata' , ( ) => {
183184 service . setSettingsInAuthenticatedUserMetadata =
184- jasmine . createSpy ( 'setSettingsInAuthenticatedUserMetadata' ) . and . returnValue ( of ( false ) ) ;
185+ jasmine . createSpy ( 'setSettingsInAuthenticatedUserMetadata' ) . and . returnValue ( of ( 'failed' ) ) ;
185186
186187 const settings : AccessibilitySettings = {
187188 notificationTimeOut : '1000' ,
@@ -205,7 +206,7 @@ describe('accessibilitySettingsService', () => {
205206
206207 it ( 'should not set settings in cookie if metadata succeeded' , ( ) => {
207208 service . setSettingsInAuthenticatedUserMetadata =
208- jasmine . createSpy ( 'setSettingsInAuthenticatedUserMetadata' ) . and . returnValue ( of ( true ) ) ;
209+ jasmine . createSpy ( 'setSettingsInAuthenticatedUserMetadata' ) . and . returnValue ( of ( 'metadata' ) ) ;
209210
210211 const settings : AccessibilitySettings = {
211212 notificationTimeOut : '1000' ,
@@ -217,7 +218,7 @@ describe('accessibilitySettingsService', () => {
217218
218219 it ( 'should return \'metadata\' if settings are stored in metadata' , ( ) => {
219220 service . setSettingsInAuthenticatedUserMetadata =
220- jasmine . createSpy ( 'setSettingsInAuthenticatedUserMetadata' ) . and . returnValue ( of ( true ) ) ;
221+ jasmine . createSpy ( 'setSettingsInAuthenticatedUserMetadata' ) . and . returnValue ( of ( 'metadata' ) ) ;
221222
222223 const settings : AccessibilitySettings = {
223224 notificationTimeOut : '1000' ,
@@ -280,11 +281,11 @@ describe('accessibilitySettingsService', () => {
280281 expect ( service . setSettingsInMetadata ) . toHaveBeenCalled ( ) ;
281282 } ) ) ;
282283
283- it ( 'should emit false when the user is not authenticated' , fakeAsync ( ( ) => {
284+ it ( 'should emit "failed" when the user is not authenticated' , fakeAsync ( ( ) => {
284285 authService . getAuthenticatedUserFromStoreIfAuthenticated = jasmine . createSpy ( ) . and . returnValue ( of ( null ) ) ;
285286
286287 service . setSettingsInAuthenticatedUserMetadata ( { } )
287- . subscribe ( value => expect ( value ) . toBeFalse ( ) ) ;
288+ . subscribe ( value => expect ( value ) . toEqual ( 'failed' ) ) ;
288289 flush ( ) ;
289290
290291 expect ( service . setSettingsInMetadata ) . not . toHaveBeenCalled ( ) ;
@@ -320,23 +321,23 @@ describe('accessibilitySettingsService', () => {
320321 expect ( ePersonService . patch ) . toHaveBeenCalled ( ) ;
321322 } ) ;
322323
323- it ( 'should emit true when the update succeeded' , fakeAsync ( ( ) => {
324+ it ( 'should emit "metadata" when the update succeeded' , fakeAsync ( ( ) => {
324325 ePersonService . patch = jasmine . createSpy ( ) . and . returnValue ( createSuccessfulRemoteDataObject$ ( { } ) ) ;
325326
326327 service . setSettingsInMetadata ( ePerson , { [ 'liveRegionTimeOut' ] : '500' } )
327328 . subscribe ( value => {
328- expect ( value ) . toBeTrue ( ) ;
329+ expect ( value ) . toEqual ( 'metadata' ) ;
329330 } ) ;
330331
331332 flush ( ) ;
332333 } ) ) ;
333334
334- it ( 'should emit false when the update failed' , fakeAsync ( ( ) => {
335+ it ( 'should emit "failed" when the update failed' , fakeAsync ( ( ) => {
335336 ePersonService . patch = jasmine . createSpy ( ) . and . returnValue ( createFailedRemoteDataObject$ ( ) ) ;
336337
337338 service . setSettingsInMetadata ( ePerson , { [ 'liveRegionTimeOut' ] : '500' } )
338339 . subscribe ( value => {
339- expect ( value ) . toBeFalse ( ) ;
340+ expect ( value ) . toEqual ( 'failed' ) ;
340341 } ) ;
341342
342343 flush ( ) ;
@@ -349,16 +350,20 @@ describe('accessibilitySettingsService', () => {
349350 cookieService . remove = jasmine . createSpy ( 'remove' ) ;
350351 } ) ;
351352
352- it ( 'should store the settings in a cookie' , ( ) => {
353- service . setSettingsInCookie ( { [ 'liveRegionTimeOut' ] : '500' } ) ;
353+ it ( 'should store the settings in a cookie' , fakeAsync ( ( ) => {
354+ service . setSettingsInCookie ( { [ 'liveRegionTimeOut' ] : '500' } ) . subscribe ( ) ;
355+ flush ( ) ;
354356 expect ( cookieService . set ) . toHaveBeenCalled ( ) ;
355- } ) ;
357+ } ) ) ;
358+
359+ it ( 'should remove the cookie when the settings are empty' , fakeAsync ( ( ) => {
360+ service . setSettingsInCookie ( { } ) . subscribe ( ) ;
361+
362+ flush ( ) ;
356363
357- it ( 'should remove the cookie when the settings are empty' , ( ) => {
358- service . setSettingsInCookie ( { } ) ;
359364 expect ( cookieService . set ) . not . toHaveBeenCalled ( ) ;
360365 expect ( cookieService . remove ) . toHaveBeenCalled ( ) ;
361- } ) ;
366+ } ) ) ;
362367 } ) ;
363368
364369 describe ( 'convertFormValuesToStoredValues' , ( ) => {
0 commit comments