@@ -6,12 +6,15 @@ import {
66import { TestBed } from '@angular/core/testing' ;
77import { Router } from '@angular/router' ;
88import { StoreModule } from '@ngrx/store' ;
9+ import { of } from 'rxjs' ;
910
1011import {
1112 appReducers ,
1213 storeModuleConfig ,
1314} from '../../app.reducer' ;
1415import { CorrelationIdService } from '../../correlation-id/correlation-id.service' ;
16+ import { OrejimeService } from '../../shared/cookies/orejime.service' ;
17+ import { CORRELATION_ID_OREJIME_KEY } from '../../shared/cookies/orejime-configuration' ;
1518import { CookieServiceMock } from '../../shared/mocks/cookie.service.mock' ;
1619import { RouterStub } from '../../shared/testing/router.stub' ;
1720import { RestRequestMethod } from '../data/rest-request-method' ;
@@ -26,7 +29,7 @@ describe('LogInterceptor', () => {
2629 let httpMock : HttpTestingController ;
2730 let cookieService : CookieService ;
2831 let correlationIdService : CorrelationIdService ;
29- const router = Object . assign ( new RouterStub ( ) , { url : '/statistics' } ) ;
32+ const router = Object . assign ( new RouterStub ( ) , { url : '/statistics' } ) ;
3033
3134 // Mock payload/statuses are dummy content as we are not testing the results
3235 // of any below requests. We are only testing for X-XSRF-TOKEN header.
@@ -36,6 +39,8 @@ describe('LogInterceptor', () => {
3639 const mockStatusCode = 200 ;
3740 const mockStatusText = 'SUCCESS' ;
3841
42+ const mockOrejimeService = jasmine . createSpyObj ( 'OrejimeService' , [ 'getSavedPreferences' ] ) ;
43+
3944
4045 beforeEach ( ( ) => {
4146 TestBed . configureTestingModule ( {
@@ -55,6 +60,7 @@ describe('LogInterceptor', () => {
5560 { provide : Router , useValue : router } ,
5661 { provide : CorrelationIdService , useClass : CorrelationIdService } ,
5762 { provide : UUIDService , useClass : UUIDService } ,
63+ { provide : OrejimeService , useValue : mockOrejimeService } ,
5864 ] ,
5965 } ) ;
6066
@@ -63,12 +69,14 @@ describe('LogInterceptor', () => {
6369 cookieService = TestBed . inject ( CookieService ) ;
6470 correlationIdService = TestBed . inject ( CorrelationIdService ) ;
6571
66- cookieService . set ( 'CORRELATION-ID' , '123455' ) ;
72+ cookieService . set ( 'CORRELATION-ID' , '123455' ) ;
6773 correlationIdService . initCorrelationId ( ) ;
6874 } ) ;
6975
7076
71- it ( 'headers should be set' , ( done ) => {
77+ it ( 'headers should be set when cookie is accepted' , ( done ) => {
78+ mockOrejimeService . getSavedPreferences . and . returnValue ( of ( { [ CORRELATION_ID_OREJIME_KEY ] : true } ) ) ;
79+
7280 service . request ( RestRequestMethod . POST , 'server/api/core/items' , 'test' , { withCredentials : false } ) . subscribe ( ( response ) => {
7381 expect ( response ) . toBeTruthy ( ) ;
7482 done ( ) ;
@@ -80,7 +88,23 @@ describe('LogInterceptor', () => {
8088 expect ( httpRequest . request . headers . has ( 'X-REFERRER' ) ) . toBeTrue ( ) ;
8189 } ) ;
8290
83- it ( 'headers should have the right values' , ( done ) => {
91+ it ( 'headers should not be set when cookie is declined' , ( done ) => {
92+ mockOrejimeService . getSavedPreferences . and . returnValue ( of ( { [ CORRELATION_ID_OREJIME_KEY ] : false } ) ) ;
93+
94+ service . request ( RestRequestMethod . POST , 'server/api/core/items' , 'test' , { withCredentials : false } ) . subscribe ( ( response ) => {
95+ expect ( response ) . toBeTruthy ( ) ;
96+ done ( ) ;
97+ } ) ;
98+
99+ const httpRequest = httpMock . expectOne ( 'server/api/core/items' ) ;
100+ httpRequest . flush ( mockPayload , { status : mockStatusCode , statusText : mockStatusText } ) ;
101+ expect ( httpRequest . request . headers . has ( 'X-CORRELATION-ID' ) ) . toBeFalse ( ) ;
102+ expect ( httpRequest . request . headers . has ( 'X-REFERRER' ) ) . toBeTrue ( ) ;
103+ } ) ;
104+
105+ it ( 'headers should have the right values when cookie is accepted' , ( done ) => {
106+ mockOrejimeService . getSavedPreferences . and . returnValue ( of ( { [ CORRELATION_ID_OREJIME_KEY ] : true } ) ) ;
107+
84108 service . request ( RestRequestMethod . POST , 'server/api/core/items' , 'test' , { withCredentials : false } ) . subscribe ( ( response ) => {
85109 expect ( response ) . toBeTruthy ( ) ;
86110 done ( ) ;
0 commit comments