@@ -490,6 +490,68 @@ describe("A <NavLink>", () => {
490
490
} ) ;
491
491
} ) ;
492
492
493
+ describe ( "with `sensitive=true`" , ( ) => {
494
+ it ( "applies default activeClassName for sensitive matches" , ( ) => {
495
+ renderStrict (
496
+ < MemoryRouter initialEntries = { [ "/pizza" ] } >
497
+ < NavLink sensitive to = "/pizza" >
498
+ Pizza!
499
+ </ NavLink >
500
+ </ MemoryRouter > ,
501
+ node
502
+ ) ;
503
+
504
+ const a = node . querySelector ( "a" ) ;
505
+
506
+ expect ( a . className ) . toContain ( "active" ) ;
507
+ } ) ;
508
+
509
+ it ( "does not apply default activeClassName for non-sensitive matches" , ( ) => {
510
+ renderStrict (
511
+ < MemoryRouter initialEntries = { [ "/PIZZA" ] } >
512
+ < NavLink sensitive to = "/pizza" >
513
+ Pizza!
514
+ </ NavLink >
515
+ </ MemoryRouter > ,
516
+ node
517
+ ) ;
518
+
519
+ const a = node . querySelector ( "a" ) ;
520
+
521
+ expect ( a . className ) . not . toContain ( "active" ) ;
522
+ } ) ;
523
+
524
+ it ( "applies custom activeClassName for sensitive matches" , ( ) => {
525
+ renderStrict (
526
+ < MemoryRouter initialEntries = { [ "/pizza" ] } >
527
+ < NavLink sensitive to = "/pizza" activeClassName = "selected" >
528
+ Pizza!
529
+ </ NavLink >
530
+ </ MemoryRouter > ,
531
+ node
532
+ ) ;
533
+
534
+ const a = node . querySelector ( "a" ) ;
535
+
536
+ expect ( a . className ) . toContain ( "selected" ) ;
537
+ } ) ;
538
+
539
+ it ( "does not apply custom activeClassName for non-sensitive matches" , ( ) => {
540
+ renderStrict (
541
+ < MemoryRouter initialEntries = { [ "/pizza" ] } >
542
+ < NavLink sensitive to = "/PIZZA" activeClassName = "selected" >
543
+ Pizza!
544
+ </ NavLink >
545
+ </ MemoryRouter > ,
546
+ node
547
+ ) ;
548
+
549
+ const a = node . querySelector ( "a" ) ;
550
+
551
+ expect ( a . className ) . not . toContain ( "selected" ) ;
552
+ } ) ;
553
+ } ) ;
554
+
493
555
describe ( "the `location` prop" , ( ) => {
494
556
it ( "overrides the current location" , ( ) => {
495
557
renderStrict (
0 commit comments