@@ -1231,6 +1231,75 @@ describe('current()', () => {
12311231 expect ( route ( ) . current ( 'events.venues.show' , { id : 12 , user : 'Matt' } ) ) . toBe ( false ) ;
12321232 } ) ;
12331233
1234+ test ( 'can check the current route with array and object query parameters' , ( ) => {
1235+ global . window . location . pathname = '/events/1/venues/2' ;
1236+ global . window . location . search =
1237+ '?filter[year]=2024&filter[month]=Jan&filter[month]=Feb&tags[0]=music&tags[1]=dance&genres[]=jazz&genres[]=folk' ;
1238+
1239+ expect (
1240+ route ( ) . current ( 'events.venues.show' , {
1241+ filter : {
1242+ year : '2024' ,
1243+ } ,
1244+ } ) ,
1245+ ) . toBe ( true ) ;
1246+ // Weird, but technically correct since this isn't checking for an exact match, just 'overlap'
1247+ expect (
1248+ route ( ) . current ( 'events.venues.show' , {
1249+ filter : { } ,
1250+ } ) ,
1251+ ) . toBe ( true ) ;
1252+ // Even weirder, but probably better than getting really picky about empty arrays vs. empty objects
1253+ expect (
1254+ route ( ) . current ( 'events.venues.show' , {
1255+ genres : { } ,
1256+ } ) ,
1257+ ) . toBe ( true ) ;
1258+ expect (
1259+ route ( ) . current ( 'events.venues.show' , {
1260+ filter : {
1261+ year : '2024' ,
1262+ month : [ 'Jan' ] ,
1263+ } ,
1264+ tags : [ 'dance' , 'music' ] ,
1265+ genres : [ 'folk' ] ,
1266+ } ) ,
1267+ ) . toBe ( true ) ;
1268+
1269+ expect (
1270+ route ( ) . current ( 'events.venues.show' , {
1271+ filter : {
1272+ year : '2025' ,
1273+ } ,
1274+ } ) ,
1275+ ) . toBe ( false ) ;
1276+ expect (
1277+ route ( ) . current ( 'events.venues.show' , {
1278+ filter : {
1279+ year : null ,
1280+ } ,
1281+ } ) ,
1282+ ) . toBe ( false ) ;
1283+ expect (
1284+ route ( ) . current ( 'events.venues.show' , {
1285+ filter : {
1286+ year : '2024' ,
1287+ month : [ 'Mar' ] ,
1288+ } ,
1289+ } ) ,
1290+ ) . toBe ( false ) ;
1291+ expect (
1292+ route ( ) . current ( 'events.venues.show' , {
1293+ tags : [ '' ] ,
1294+ } ) ,
1295+ ) . toBe ( false ) ;
1296+ expect (
1297+ route ( ) . current ( 'events.venues.show' , {
1298+ genres : [ null ] ,
1299+ } ) ,
1300+ ) . toBe ( false ) ;
1301+ } ) ;
1302+
12341303 test ( 'can check the current route with Cyrillic characters' , ( ) => {
12351304 global . window . location . pathname = '/статистика' ;
12361305
0 commit comments