@@ -26,6 +26,7 @@ describe('state', function () {
26
26
H = { data : { propA : 'propA' , propB : 'propB' } } ,
27
27
HH = { parent : H } ,
28
28
HHH = { parent : HH , data : { propA : 'overriddenA' , propC : 'propC' } } ,
29
+ RS = { url : '^/search?term' , reloadOnSearch : false } ,
29
30
AppInjectable = { } ;
30
31
31
32
beforeEach ( module ( function ( $stateProvider , $provide ) {
@@ -45,6 +46,7 @@ describe('state', function () {
45
46
. state ( 'H' , H )
46
47
. state ( 'HH' , HH )
47
48
. state ( 'HHH' , HHH )
49
+ . state ( 'RS' , RS )
48
50
49
51
. state ( 'home' , { url : "/" } )
50
52
. state ( 'home.item' , { url : "front/:id" } )
@@ -141,6 +143,18 @@ describe('state', function () {
141
143
expect ( $state . current ) . toBe ( A ) ;
142
144
} ) ) ;
143
145
146
+ it ( 'doesn\'t trigger state change if reloadOnSearch is false' , inject ( function ( $state , $q , $location , $rootScope ) {
147
+ initStateTo ( RS ) ;
148
+ $location . search ( { term : 'hello' } ) ;
149
+ var called ;
150
+ $rootScope . $on ( '$stateChangeStart' , function ( ev , to , toParams , from , fromParams ) {
151
+ called = true
152
+ } ) ;
153
+ $q . flush ( ) ;
154
+ expect ( $location . search ( ) ) . toEqual ( { term : 'hello' } ) ;
155
+ expect ( called ) . toBeFalsy ( ) ;
156
+ } ) ) ;
157
+
144
158
it ( 'ignores non-applicable state parameters' , inject ( function ( $state , $q ) {
145
159
$state . transitionTo ( 'A' , { w00t : 'hi mom!' } ) ;
146
160
$q . flush ( ) ;
@@ -641,6 +655,7 @@ describe('state', function () {
641
655
'H' ,
642
656
'HH' ,
643
657
'HHH' ,
658
+ 'RS' ,
644
659
'about' ,
645
660
'about.person' ,
646
661
'about.person.item' ,
@@ -899,4 +914,4 @@ describe('state queue', function(){
899
914
expect ( list . map ( function ( state ) { return state . name ; } ) ) . toEqual ( expectedStates ) ;
900
915
} ) ;
901
916
} ) ;
902
- } ) ;
917
+ } ) ;
0 commit comments