Skip to content

Commit def4e04

Browse files
committed
Initialize toolbar.js once
1 parent ac1ea0b commit def4e04

File tree

2 files changed

+39
-1
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

+39
-1
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,20 @@ define([
3030
limitDefault: '9',
3131
url: '',
3232
formKey: '',
33-
post: false
33+
post: false,
34+
isToolbarInitialized: false
3435
},
3536

3637
/** @inheritdoc */
3738
_create: function () {
39+
if (this.options.isToolbarInitialized) {
40+
return;
41+
}
3842
this._bind($(this.options.modeControl), this.options.mode, this.options.modeDefault);
3943
this._bind($(this.options.directionControl), this.options.direction, this.options.directionDefault);
4044
this._bind($(this.options.orderControl), this.options.order, this.options.orderDefault);
4145
this._bind($(this.options.limitControl), this.options.limit, this.options.limitDefault);
46+
this.options.isToolbarInitialized = true;
4247
},
4348

4449
/** @inheritdoc */
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
define([
7+
'jquery',
8+
'Magento_Catalog/js/product/list/toolbar'
9+
], function ($, productListToolbarForm) {
10+
'use strict';
11+
12+
describe('Magento_Catalog/js/product/list/toolbar', function () {
13+
var widget,
14+
wdContainer;
15+
16+
beforeEach(function () {
17+
wdContainer = $('<div class="toolbar toolbar-products"></div>');
18+
widget = wdContainer.productListToolbarForm();
19+
});
20+
21+
afterEach(function () {
22+
$(wdContainer).remove();
23+
});
24+
25+
it('Widget extends jQuery object', function () {
26+
expect($.fn.productListToolbarForm).toBeDefined();
27+
});
28+
29+
it('Toolbar is initialized', function () {
30+
expect(wdContainer.productListToolbarForm('option', 'isToolbarInitialized')).not.toBe(false);
31+
});
32+
});
33+
});

0 commit comments

Comments
 (0)