Skip to content

Commit 3f240a0

Browse files
committed
MC-3993: Impossible add Slider on Page if it contains block with slider inside
- Fix test failures
1 parent fe5029a commit 3f240a0

File tree

2 files changed

+50
-22
lines changed

2 files changed

+50
-22
lines changed

dev/tests/js/jasmine/tests/app/code/Magento/PageBuilder/view/frontend/web/js/content-type/map/appearance/default/widget.test.js

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,57 @@
33
* See COPYING.txt for license details.
44
*/
55
define([
6-
'squire'
7-
], function (Squire) {
6+
'squire',
7+
'jquery'
8+
], function (Squire, $) {
89
'use strict';
910

1011
var mapWidgetInitializer,
1112
injector = new Squire(),
1213
mocks = {
1314
'Magento_PageBuilder/js/utils/map': jasmine.createSpy(),
1415
'googleMaps': jasmine.createSpy()
15-
};
16+
},
17+
loadWidgetinitializer;
1618

17-
beforeEach(function (done) {
19+
/**
20+
* Load the widget initializer for map
21+
*
22+
* @param {Function} done
23+
*/
24+
loadWidgetinitializer = function (done) {
1825
injector.mock(mocks);
19-
injector.require(['Magento_PageBuilder/js/content-type/map/appearance/default/widget'], function (module) {
20-
mapWidgetInitializer = module;
21-
done();
22-
});
23-
});
26+
injector.require(
27+
['Magento_PageBuilder/js/content-type/map/appearance/default/widget'],
28+
function (module) {
29+
mapWidgetInitializer = module;
30+
done();
31+
}
32+
);
33+
};
2434

2535
describe('Magento_PageBuilder/js/content-type/map/appearance/default/widget', function () {
36+
beforeEach(loadWidgetinitializer);
2637

2738
it('Does not call googleMap constructor if element is missing data-locations', function () {
28-
var el = document.createElement('div');
39+
var el = $('div');
2940

3041
mapWidgetInitializer(undefined, el);
3142

3243
expect(mocks.googleMaps).not.toHaveBeenCalled();
3344
});
3445

3546
it('Calls googleMap constructor if element has data-locations', function () {
36-
var el = document.createElement('div'),
47+
var el = $('<div />'),
3748
locationsJSON = '[{"position": {"latitude": 0, "longitude": 0}}]';
3849

39-
el.setAttribute('data-locations', locationsJSON);
40-
el.setAttribute('data-show-controls', true);
50+
el.attr('data-locations', locationsJSON);
51+
el.attr('data-show-controls', true);
4152

4253
mapWidgetInitializer(undefined, el);
4354

4455
expect(mocks['Magento_PageBuilder/js/utils/map']).toHaveBeenCalledWith(
45-
el,
56+
el[0],
4657
JSON.parse(locationsJSON),
4758
{
4859
disableDefaultUI: false,

dev/tests/js/jasmine/tests/app/code/Magento/PageBuilder/view/frontend/web/js/widget-initializer.test.js

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,39 @@ define([
1515
'mage/apply/main': {
1616
applyFor: jasmine.createSpy()
1717
}
18-
};
18+
},
19+
loadWidgetInitializer,
20+
removeCreatedElement;
1921

20-
beforeEach(function (done) {
22+
/**
23+
* Load the widget initializer for the tests
24+
*
25+
* @param {Function} done
26+
*/
27+
loadWidgetInitializer = function (done) {
2128
injector.mock(mocks);
2229
injector.require(['Magento_PageBuilder/js/widget-initializer'], function (module) {
2330
widgetInitializer = module;
2431
done();
2532
});
26-
});
33+
};
2734

28-
afterEach(function () {
35+
/**
36+
* Remove any created elements
37+
*/
38+
removeCreatedElement = function () {
2939
if (el !== undefined) {
3040
el.remove();
3141
}
32-
});
42+
};
3343

3444
describe('Magento_PageBuilder/js/content-type/map/appearance/default/widget', function () {
45+
beforeEach(loadWidgetInitializer);
46+
afterEach(removeCreatedElement);
47+
3548
it('Calls mage.applyFor on each element with each item present in config', function () {
36-
var data;
49+
var data,
50+
applyForMock;
3751

3852
el = $('<div class="unique-element-class-attr"></div>');
3953

@@ -50,8 +64,11 @@ define([
5064

5165
widgetInitializer(data);
5266

53-
expect(mocks['mage/apply/main'].applyFor).toHaveBeenCalledWith(el, true, 'awesome');
54-
expect(mocks['mage/apply/main'].applyFor).toHaveBeenCalledWith(el, true, 'cool');
67+
applyForMock = mocks['mage/apply/main'].applyFor;
68+
expect(applyForMock).toHaveBeenCalledWith(jasmine.any(Object), true, 'awesome');
69+
expect(applyForMock).toHaveBeenCalledWith(jasmine.any(Object), true, 'cool');
70+
// Due to jQuery objects not being === we must use jQuery's is to validate if the elements are the same
71+
expect(el.is(applyForMock.calls.mostRecent().args[0])).toBeTruthy();
5572
});
5673
});
5774
});

0 commit comments

Comments
 (0)