Skip to content

Commit 7580be8

Browse files
committed
Merge remote-tracking branch 'adobe-commerce-tier-4/ACP2E-3149' into Tier4-Kings-PR-08-23-2024
2 parents f66e599 + 9d43830 commit 7580be8

File tree

2 files changed

+52
-6
lines changed

2 files changed

+52
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/************************************************************************
2+
*
3+
* Copyright 2024 Adobe
4+
* All Rights Reserved.
5+
*
6+
* ************************************************************************
7+
*/
8+
define(['mage/adminhtml/grid'], function () {
9+
'use strict';
10+
describe('mage/adminhtml/grid', function () {
11+
let gridInstance,originalVarienGridInitializeFn;
12+
13+
beforeEach(function () {
14+
// Create an instance of varienGrid
15+
originalVarienGridInitializeFn = window.varienGrid.prototype.initialize;
16+
window.varienGrid.prototype.initialize = jasmine.createSpy('initialize');
17+
gridInstance = new window.varienGrid();
18+
19+
spyOn(gridInstance, 'reload');
20+
// eslint-disable-next-line max-nested-callbacks
21+
spyOn(gridInstance, 'addVarToUrl').and.callFake(function (filterVar, value) {
22+
return `https://test.com/${filterVar}/${value}/`;
23+
});
24+
gridInstance.filterVar = 'filter';
25+
});
26+
27+
afterEach(function () {
28+
window.varienGrid.prototype.initialize = originalVarienGridInitializeFn;
29+
});
30+
31+
it('should reset the filter, clean the URL, and reload with the correct URL', function () {
32+
let callback = jasmine.createSpy('callback'),
33+
expectedUrl = 'https://test.com/filter/';
34+
35+
gridInstance.resetFilter(callback);
36+
expect(gridInstance.addVarToUrl).toHaveBeenCalledWith('filter', '');
37+
expect(gridInstance.reload).toHaveBeenCalledWith(expectedUrl, callback);
38+
expect(gridInstance.reload.calls.count()).toBe(1);
39+
});
40+
});
41+
});

lib/web/mage/adminhtml/grid.js

+11-6
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ define([
366366
* @private
367367
*/
368368
_addVarToUrl: function (url, varName, varValue) {
369+
/* eslint-disable-next-line */
369370
var re = new RegExp('\/(' + varName + '\/.*?\/)'),
370371
parts = url.split(new RegExp('\\?'));
371372

@@ -388,6 +389,7 @@ define([
388389
* @private
389390
*/
390391
_buildFormAndSubmit: function (url, varName, varValue) {
392+
/* eslint-disable-next-line */
391393
var re = new RegExp('\/(' + varName + '\/.*?\/)'),
392394
parts = url.split(new RegExp('\\?')),
393395
form = jQuery('<form></form>'),
@@ -461,8 +463,8 @@ define([
461463
*/
462464
bindFilterFields: function () {
463465
var filters = $$(
464-
'#' + this.containerId + ' [data-role="filter-form"] input',
465-
'#' + this.containerId + ' [data-role="filter-form"] select'
466+
'#' + this.containerId + ' [data-role="filter-form"] input',
467+
'#' + this.containerId + ' [data-role="filter-form"] select'
466468
),
467469
i;
468470

@@ -535,8 +537,8 @@ define([
535537
*/
536538
doFilter: function (callback) {
537539
var filters = $$(
538-
'#' + this.containerId + ' [data-role="filter-form"] input',
539-
'#' + this.containerId + ' [data-role="filter-form"] select'
540+
'#' + this.containerId + ' [data-role="filter-form"] input',
541+
'#' + this.containerId + ' [data-role="filter-form"] select'
540542
),
541543
elements = [],
542544
i;
@@ -559,7 +561,10 @@ define([
559561
* @param {Function} callback
560562
*/
561563
resetFilter: function (callback) {
562-
this.reload(this.addVarToUrl(this.filterVar, ''), callback);
564+
let resetUrl = this.addVarToUrl(this.filterVar, '');
565+
566+
resetUrl = resetUrl.replace(/([^:]\/)\/+/g, '$1');
567+
this.reload(resetUrl, callback);
563568
},
564569

565570
/**
@@ -1053,7 +1058,7 @@ define([
10531058
*/
10541059
updateCount: function () {
10551060
var checkboxesTotal = varienStringArray.count(
1056-
this.useSelectAll ? this.getGridIds() : this.getCheckboxesValuesAsString()
1061+
this.useSelectAll ? this.getGridIds() : this.getCheckboxesValuesAsString()
10571062
),
10581063
checkboxesChecked = varienStringArray.count(this.checkedString);
10591064

0 commit comments

Comments
 (0)