@@ -190,6 +190,38 @@ void main() {
190190 expect (root.featureModule.activateCalls, 1 );
191191 },
192192 );
193+
194+ test ('isActive returns false when no route is active' , () {
195+ expect (routing.isActive ('/feature/child' ), isFalse);
196+ expect (routing.isActive ('/feature' , exact: false ), isFalse);
197+ });
198+
199+ test ('isActive supports exact and partial matches' , () async {
200+ await routing.navigate ('/feature/child' );
201+
202+ expect (routing.isActive ('/feature/child' ), isTrue);
203+ expect (routing.isActive ('/feature' ), isFalse);
204+ expect (routing.isActive ('/feature' , exact: false ), isTrue);
205+ expect (routing.isActive ('/feature/sub' , exact: false ), isFalse);
206+ });
207+
208+ test ('isActive can ignore query params and fragments' , () async {
209+ await routing.navigate ('/feature/child?tab=profile#details' );
210+
211+ expect (
212+ routing.isActive ('/feature/child?tab=profile#details' ),
213+ isTrue,
214+ );
215+ expect (routing.isActive ('/feature/child' ), isFalse);
216+ expect (
217+ routing.isActive ('/feature/child' , ignoreParams: true ),
218+ isTrue,
219+ );
220+ expect (
221+ routing.isActive ('/feature' , exact: false , ignoreParams: true ),
222+ isTrue,
223+ );
224+ });
193225 });
194226}
195227
0 commit comments