Skip to content

Commit 5624fc9

Browse files
PB-1140: [PB][CLOUD] Page Builder Error popup appears
1 parent 147484a commit 5624fc9

File tree

2 files changed

+74
-4
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

+74
-4
lines changed

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

+10-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ define(['underscore', 'Magento_PageBuilderAdminAnalytics/js/page-builder/event-b
1111
var originalTarget = target.trigger,
1212
isAdminAnalyticsEnabled,
1313
event,
14-
hasPageBuilderBeenUsed = false;
14+
hasPageBuilderBeenUsed = false,
15+
delayedPush;
1516

1617
/**
1718
* Invokes custom code to track information regarding Page Builder usage
@@ -40,11 +41,16 @@ define(['underscore', 'Magento_PageBuilderAdminAnalytics/js/page-builder/event-b
4041
event = EventBuilder.build(name, args);
4142

4243
if (isAdminAnalyticsEnabled && !_.isUndefined(window.digitalData.event) && !_.isUndefined(event)) {
43-
window.digitalData.event.push(event);
44-
window._satellite.track('event');
44+
delayedPush = setInterval(function (object) {
45+
if (_.isArray(window.digitalData.event)) {
46+
window.digitalData.event.push(object);
47+
window._satellite.track('event');
48+
clearInterval(delayedPush);
49+
}
50+
}, 500, event);
4551
}
4652
};
4753

4854
return target;
4955
};
50-
});
56+
});
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)