@@ -7,6 +7,7 @@ import { TestBed } from '@angular/core/testing';
77import { RouterTestingModule } from '@angular/router/testing' ;
88import { Router } from '@angular/router' ;
99import { HardRedirectService } from '../core/services/hard-redirect.service' ;
10+ import { PLATFORM_ID } from '@angular/core' ;
1011
1112describe ( 'ItemPageResolver' , ( ) => {
1213 beforeEach ( ( ) => {
@@ -25,6 +26,7 @@ describe('ItemPageResolver', () => {
2526 let store ;
2627 let router ;
2728 let hardRedirectService : HardRedirectService ;
29+ let platformId ;
2830 const uuid = '1234-65487-12354-1235' ;
2931 const item = Object . assign ( new Item ( ) , {
3032 id : uuid ,
@@ -58,6 +60,7 @@ describe('ItemPageResolver', () => {
5860
5961 beforeEach ( ( ) => {
6062 router = TestBed . inject ( Router ) ;
63+ platformId = TestBed . inject ( PLATFORM_ID ) ;
6164 itemService = {
6265 findById : ( id : string ) => createSuccessfulRemoteDataObject$ ( item )
6366 } as any ;
@@ -71,7 +74,7 @@ describe('ItemPageResolver', () => {
7174 } ) ;
7275
7376 spyOn ( router , 'navigateByUrl' ) ;
74- resolver = new ItemPageResolver ( hardRedirectService , itemService , store , router ) ;
77+ resolver = new ItemPageResolver ( platformId , hardRedirectService , itemService , store , router ) ;
7578 } ) ;
7679
7780 it ( 'should resolve a an item from from the item with the url redirect' , ( done ) => {
@@ -137,31 +140,74 @@ describe('ItemPageResolver', () => {
137140 } ) ;
138141
139142 spyOn ( router , 'navigateByUrl' ) ;
140- resolver = new ItemPageResolver ( hardRedirectService , itemService , store , router ) ;
141143 } ) ;
142144
143- it ( 'should redirect if it has not the new item url' , ( done ) => {
144- resolver . resolve ( { params : { id : uuid } } as any , { url : '/items/1234-65487-12354-1235/edit' } as any )
145- . pipe ( first ( ) )
146- . subscribe (
147- ( resolved ) => {
148- expect ( hardRedirectService . redirect ) . toHaveBeenCalledWith ( '/entities/person/1234-65487-12354-1235/edit' , 301 ) ;
149- done ( ) ;
150- }
151- ) ;
145+ describe ( ' and platform is server' , ( ) => {
146+
147+ beforeEach ( ( ) => {
148+ platformId = 'server' ;
149+ resolver = new ItemPageResolver ( platformId , hardRedirectService , itemService , store , router ) ;
150+ } ) ;
151+
152+ it ( 'should redirect if it has not the new item url' , ( done ) => {
153+ resolver . resolve ( { params : { id : uuid } } as any , { url : '/items/1234-65487-12354-1235/edit' } as any )
154+ . pipe ( first ( ) )
155+ . subscribe (
156+ ( resolved ) => {
157+ expect ( hardRedirectService . redirect ) . toHaveBeenCalledWith ( '/entities/person/1234-65487-12354-1235/edit' , 301 ) ;
158+ expect ( router . navigateByUrl ) . not . toHaveBeenCalled ( ) ;
159+ done ( ) ;
160+ }
161+ ) ;
162+ } ) ;
163+
164+ it ( 'should not redirect if it has the new item url' , ( done ) => {
165+ resolver . resolve ( { params : { id : uuid } } as any , { url : '/entities/person/1234-65487-12354-1235/edit' } as any )
166+ . pipe ( first ( ) )
167+ . subscribe (
168+ ( resolved ) => {
169+ expect ( hardRedirectService . redirect ) . not . toHaveBeenCalled ( ) ;
170+ expect ( router . navigateByUrl ) . not . toHaveBeenCalled ( ) ;
171+ done ( ) ;
172+ }
173+ ) ;
174+ } ) ;
152175 } ) ;
153176
154- it ( 'should not redirect if it has the new item url' , ( done ) => {
155- resolver . resolve ( { params : { id : uuid } } as any , { url : '/entities/person/1234-65487-12354-1235/edit' } as any )
156- . pipe ( first ( ) )
157- . subscribe (
158- ( resolved ) => {
159- expect ( hardRedirectService . redirect ) . not . toHaveBeenCalled ( ) ;
160- done ( ) ;
161- }
162- ) ;
177+ describe ( ' and platform is browser' , ( ) => {
178+
179+ beforeEach ( ( ) => {
180+ platformId = 'browser' ;
181+ resolver = new ItemPageResolver ( platformId , hardRedirectService , itemService , store , router ) ;
182+ } ) ;
183+
184+ it ( 'should redirect if it has not the new item url' , ( done ) => {
185+ resolver . resolve ( { params : { id : uuid } } as any , { url : '/items/1234-65487-12354-1235/edit' } as any )
186+ . pipe ( first ( ) )
187+ . subscribe (
188+ ( resolved ) => {
189+ expect ( router . navigateByUrl ) . toHaveBeenCalledWith ( '/entities/person/1234-65487-12354-1235/edit' ) ;
190+ expect ( hardRedirectService . redirect ) . not . toHaveBeenCalled ( ) ;
191+ done ( ) ;
192+ }
193+ ) ;
194+ } ) ;
195+
196+ it ( 'should not redirect if it has the new item url' , ( done ) => {
197+ resolver . resolve ( { params : { id : uuid } } as any , { url : '/entities/person/1234-65487-12354-1235/edit' } as any )
198+ . pipe ( first ( ) )
199+ . subscribe (
200+ ( resolved ) => {
201+ expect ( hardRedirectService . redirect ) . not . toHaveBeenCalled ( ) ;
202+ expect ( router . navigateByUrl ) . not . toHaveBeenCalled ( ) ;
203+ done ( ) ;
204+ }
205+ ) ;
206+ } ) ;
163207 } ) ;
164208
209+
210+
165211 } ) ;
166212
167213 } ) ;
0 commit comments