Skip to content

Commit da63c1c

Browse files
Merge pull request #37 from magento-commerce/1.5.1-fixes
PB-1140: [PB][CLOUD] Page Builder Error popup appears
2 parents 147484a + 8a04730 commit da63c1c

File tree

2 files changed

+116
-44
lines changed
  • app/code/Magento/PageBuilderAdminAnalytics/view/adminhtml/web/js/page-builder
  • dev/tests/js/jasmine/tests/app/code/Magento/PageBuilder/view/adminhtml/web/js/page-builder

2 files changed

+116
-44
lines changed

app/code/Magento/PageBuilderAdminAnalytics/view/adminhtml/web/js/page-builder/events-mixin.js

+52-44
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,56 @@
33
* See COPYING.txt for license details.
44
*/
55

6-
define(['underscore', 'Magento_PageBuilderAdminAnalytics/js/page-builder/event-builder'],
7-
function (_, EventBuilder) {
8-
'use strict';
9-
10-
return function (target) {
11-
var originalTarget = target.trigger,
12-
isAdminAnalyticsEnabled,
13-
event,
14-
hasPageBuilderBeenUsed = false;
15-
16-
/**
17-
* Invokes custom code to track information regarding Page Builder usage
18-
*
19-
* @param {String} name
20-
* @param {Array} args
21-
*/
22-
23-
target.trigger = function (name, args) {
24-
originalTarget.apply(originalTarget, [name, args]);
25-
isAdminAnalyticsEnabled =
26-
!_.isUndefined(window.digitalData) &&
27-
!_.isUndefined(window._satellite);
28-
29-
if (!hasPageBuilderBeenUsed && name.indexOf('stage:fullScreenModeChangeAfter') !== -1 &&
30-
args.fullScreen && isAdminAnalyticsEnabled
31-
) {
32-
hasPageBuilderBeenUsed = true;
33-
window.digitalData.page.url = window.location.href;
34-
window.digitalData.page.attributes = {
35-
editedWithPageBuilder: 'true'
36-
};
37-
window._satellite.track('page');
38-
}
39-
40-
event = EventBuilder.build(name, args);
41-
42-
if (isAdminAnalyticsEnabled && !_.isUndefined(window.digitalData.event) && !_.isUndefined(event)) {
43-
window.digitalData.event.push(event);
44-
window._satellite.track('event');
45-
}
46-
};
47-
48-
return target;
6+
define([
7+
'underscore',
8+
'Magento_PageBuilderAdminAnalytics/js/page-builder/event-builder'
9+
], function (_, EventBuilder) {
10+
'use strict';
11+
12+
return function (target) {
13+
var originalTarget = target.trigger,
14+
isAdminAnalyticsEnabled,
15+
event,
16+
hasPageBuilderBeenUsed = false,
17+
delayedPush;
18+
19+
/**
20+
* Invokes custom code to track information regarding Page Builder usage
21+
*
22+
* @param {String} name
23+
* @param {Array} args
24+
*/
25+
26+
target.trigger = function (name, args) {
27+
originalTarget.apply(originalTarget, [name, args]);
28+
isAdminAnalyticsEnabled =
29+
!_.isUndefined(window.digitalData) &&
30+
!_.isUndefined(window._satellite);
31+
32+
if (!hasPageBuilderBeenUsed && name.indexOf('stage:fullScreenModeChangeAfter') !== -1 &&
33+
args.fullScreen && isAdminAnalyticsEnabled
34+
) {
35+
hasPageBuilderBeenUsed = true;
36+
window.digitalData.page.url = window.location.href;
37+
window.digitalData.page.attributes = {
38+
editedWithPageBuilder: 'true'
39+
};
40+
window._satellite.track('page');
41+
}
42+
43+
event = EventBuilder.build(name, args);
44+
45+
if (isAdminAnalyticsEnabled && !_.isUndefined(window.digitalData.event) && !_.isUndefined(event)) {
46+
delayedPush = setInterval(function (object) {
47+
if (_.isArray(window.digitalData.event)) {
48+
window.digitalData.event.push(object);
49+
window._satellite.track('event');
50+
clearInterval(delayedPush);
51+
}
52+
}, 500, event);
53+
}
4954
};
50-
});
55+
56+
return target;
57+
};
58+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
/* eslint-disable max-nested-callbacks */
7+
define([
8+
'squire'
9+
], function (Squire) {
10+
'use strict';
11+
12+
var injector = new Squire(),
13+
eventObject = {
14+
field: 'value'
15+
},
16+
mocks = {
17+
'Magento_PageBuilderAdminAnalytics/js/page-builder/event-builder': {
18+
build: jasmine.createSpy().and.returnValue(eventObject)
19+
}
20+
},
21+
mixin,
22+
uiEvents,
23+
empty = {},
24+
origSatellite = window._satellite;
25+
26+
beforeEach(function (done) {
27+
injector.mock(mocks);
28+
injector.require([
29+
'Magento_PageBuilderAdminAnalytics/js/page-builder/events-mixin',
30+
'uiEvents'
31+
], function (Mixin, UiEvents) {
32+
mixin = Mixin;
33+
uiEvents = UiEvents;
34+
done();
35+
});
36+
window.digitalData = {
37+
event: empty
38+
};
39+
window._satellite = {
40+
track: jasmine.createSpy()
41+
};
42+
});
43+
44+
afterEach(function () {
45+
try {
46+
injector.clean();
47+
injector.remove();
48+
window._satellite = origSatellite;
49+
} catch (e) {
50+
}
51+
});
52+
53+
describe('Magento_PageBuilderAdminAnalytics/js/page-builder/events-mixin', function () {
54+
it('Check event is pushed to array', function (done) {
55+
mixin(uiEvents).trigger('name', 'arg');
56+
expect(window.digitalData.event).toBe(empty);
57+
window.digitalData.event = [];
58+
setTimeout(function () {
59+
expect(window.digitalData.event).toEqual([eventObject]);
60+
done();
61+
}, 1000);
62+
});
63+
});
64+
});

0 commit comments

Comments
 (0)