Skip to content

Commit 86a72f4

Browse files
committed
Fix toolbar initialization in order to use specified element
1 parent aae14cc commit 86a72f4

File tree

2 files changed

+13
-19
lines changed
  • app/code/Magento/Catalog/view/frontend/web/js/product/list
  • dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/list

2 files changed

+13
-19
lines changed

app/code/Magento/Catalog/view/frontend/web/js/product/list/toolbar.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ define([
99
], function ($) {
1010
'use strict';
1111

12-
var isToolbarInitialized = false;
13-
1412
/**
1513
* ProductListToolbarForm Widget - this widget is setting cookie and submitting form according to toolbar controls
1614
*/
@@ -37,14 +35,10 @@ define([
3735

3836
/** @inheritdoc */
3937
_create: function () {
40-
if (isToolbarInitialized) {
41-
return;
42-
}
43-
this._bind($(this.options.modeControl), this.options.mode, this.options.modeDefault);
44-
this._bind($(this.options.directionControl), this.options.direction, this.options.directionDefault);
45-
this._bind($(this.options.orderControl), this.options.order, this.options.orderDefault);
46-
this._bind($(this.options.limitControl), this.options.limit, this.options.limitDefault);
47-
isToolbarInitialized = true;
38+
this._bind($(this.options.modeControl, this.element), this.options.mode, this.options.modeDefault);
39+
this._bind($(this.options.directionControl, this.element), this.options.direction, this.options.directionDefault);
40+
this._bind($(this.options.orderControl, this.element), this.options.order, this.options.orderDefault);
41+
this._bind($(this.options.limitControl, this.element), this.options.limit, this.options.limitDefault);
4842
},
4943

5044
/** @inheritdoc */

dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/list/toolbar.test.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66
define([
77
'jquery',
88
'Magento_Catalog/js/product/list/toolbar'
9-
], function ($, productListToolbarForm) {
9+
], function ($) {
1010
'use strict';
1111

1212
describe('Magento_Catalog/js/product/list/toolbar', function () {
13-
var toolbar;
13+
var widget,
14+
toolbar;
1415

1516
beforeEach(function () {
1617
toolbar = $('<div class="toolbar"></div>');
@@ -33,15 +34,14 @@ define([
3334
expect($.mage.productListToolbarForm.prototype._create).toHaveBeenCalledTimes(1);
3435
});
3536

36-
it('Toolbar is initialized once', function () {
37-
spyOn($.mage.productListToolbarForm.prototype, '_bind');
38-
var secondToolbar = $('<div class="toolbar"></div>');
39-
37+
it('Toolbar receives options properly', function () {
4038
toolbar.productListToolbarForm();
41-
secondToolbar.productListToolbarForm();
39+
expect(toolbar.productListToolbarForm('option', 'page')).toBe('p');
40+
});
4241

43-
expect($.mage.productListToolbarForm.prototype._bind).toHaveBeenCalledTimes(4);
44-
secondToolbar.remove();
42+
it('Toolbar receives element properly', function () {
43+
widget = toolbar.productListToolbarForm();
44+
expect(widget).toBe(toolbar);
4545
});
4646
});
4747
});

0 commit comments

Comments
 (0)