@@ -10,7 +10,7 @@ describe(`BrowserReferrerService`, () => {
1010
1111 beforeEach ( ( ) => {
1212 routeService = {
13- getPreviousUrl : ( ) => observableOf ( '' )
13+ getHistory : ( ) => observableOf ( [ ] )
1414 } as any ;
1515 service = new BrowserReferrerService (
1616 { referrer : documentReferrer } ,
@@ -20,12 +20,22 @@ describe(`BrowserReferrerService`, () => {
2020 } ) ;
2121
2222 describe ( `getReferrer` , ( ) => {
23- let prevUrl : string ;
23+ describe ( `when the history is an empty` , ( ) => {
24+ beforeEach ( ( ) => {
25+ spyOn ( routeService , 'getHistory' ) . and . returnValue ( observableOf ( [ ] ) ) ;
26+ } ) ;
27+
28+ it ( `should return document.referrer` , ( done : DoneFn ) => {
29+ service . getReferrer ( ) . subscribe ( ( emittedReferrer : string ) => {
30+ expect ( emittedReferrer ) . toBe ( documentReferrer ) ;
31+ done ( ) ;
32+ } ) ;
33+ } ) ;
34+ } ) ;
2435
25- describe ( `when getPreviousUrl is an empty string ` , ( ) => {
36+ describe ( `when the history only contains the current route ` , ( ) => {
2637 beforeEach ( ( ) => {
27- prevUrl = '' ;
28- spyOn ( routeService , 'getPreviousUrl' ) . and . returnValue ( observableOf ( prevUrl ) ) ;
38+ spyOn ( routeService , 'getHistory' ) . and . returnValue ( observableOf ( [ '/current/route' ] ) ) ;
2939 } ) ;
3040
3141 it ( `should return document.referrer` , ( done : DoneFn ) => {
@@ -36,13 +46,18 @@ describe(`BrowserReferrerService`, () => {
3646 } ) ;
3747 } ) ;
3848
39- describe ( `when getPreviousUrl is not empty` , ( ) => {
49+ describe ( `when the history contains multiple routes` , ( ) => {
50+ const prevUrl = '/the/route/we/need' ;
4051 beforeEach ( ( ) => {
41- prevUrl = '/some/local/route' ;
42- spyOn ( routeService , 'getPreviousUrl' ) . and . returnValue ( observableOf ( prevUrl ) ) ;
52+ spyOn ( routeService , 'getHistory' ) . and . returnValue ( observableOf ( [
53+ '/first/route' ,
54+ '/second/route' ,
55+ prevUrl ,
56+ '/current/route'
57+ ] ) ) ;
4358 } ) ;
4459
45- it ( `should return the value emitted by getPreviousUrl combined with the origin from HardRedirectService` , ( done : DoneFn ) => {
60+ it ( `should return the last route before the current one combined with the origin from HardRedirectService` , ( done : DoneFn ) => {
4661 service . getReferrer ( ) . subscribe ( ( emittedReferrer : string ) => {
4762 expect ( emittedReferrer ) . toBe ( origin + prevUrl ) ;
4863 done ( ) ;
0 commit comments