Skip to content

Commit 1969544

Browse files
committed
ACP2E-3275: [Cloud] - CMS Slider not reflecting the latest changes
1 parent 4db4617 commit 1969544

File tree

1 file changed

+84
-0
lines changed
  • dev/tests/js/jasmine/tests/app/code/Magento/PageBuilder/adminhtml/web/js/form

1 file changed

+84
-0
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/**
2+
* Copyright 2024 Adobe
3+
* All Rights Reserved.
4+
*/
5+
6+
define([
7+
'Magento_PageBuilder/js/form/provider',
8+
'Magento_PageBuilder/js/events',
9+
'jquery'
10+
], function (Provider, events, $) {
11+
'use strict';
12+
13+
describe('Magento_PageBuilder/js/form/provider', function () {
14+
let instance;
15+
16+
beforeEach(function () {
17+
instance = new Provider({
18+
id: 'test-form'
19+
});
20+
spyOn(events, 'trigger');
21+
22+
instance.set('data', { key: 'value' });
23+
});
24+
25+
it('should trigger save event after save is called', function () {
26+
instance.save();
27+
expect(events.trigger).toHaveBeenCalledWith('form:' + instance.id + ':saveAfter', instance.get('data'));
28+
});
29+
30+
it('should trigger form saveAfter event and refresh slick if infinite is true', function () {
31+
const slickMock = {
32+
options: { infinite: true, rows: 1},
33+
getSlick: function () {
34+
return { options: this.options };
35+
}
36+
};
37+
38+
const slickListMock = {
39+
length: 1,
40+
parent: jasmine.createSpy('parent').and.returnValue({
41+
slick: jasmine.createSpy('slick').and.returnValue(slickMock)
42+
})
43+
};
44+
45+
spyOn($.fn, 'find').and.returnValue(slickListMock);
46+
47+
const result = instance.save();
48+
49+
expect(events.trigger).toHaveBeenCalledWith('form:' + instance.id + ':saveAfter', instance.get('data'));
50+
expect($.fn.find).toHaveBeenCalledWith('.slick-list.draggable');
51+
expect($.fn.find().parent).toHaveBeenCalled();
52+
expect($.fn.find().parent().slick).toHaveBeenCalledWith('refresh');
53+
expect(result).toBe(instance);
54+
});
55+
56+
it('should not refresh slick if infinite is false', function () {
57+
const slickMockFalse = {
58+
options: { infinite: false },
59+
getSlick: function () {
60+
return { options: this.options };
61+
}
62+
};
63+
64+
spyOn($.fn, 'find').and.returnValue(slickMockFalse);
65+
66+
$.fn.find.and.returnValue({
67+
length: 1,
68+
parent: jasmine.createSpy('parent').and.returnValue({
69+
slick: jasmine.createSpy('slick').and.returnValue(slickMockFalse)
70+
})
71+
});
72+
73+
const result = instance.save();
74+
75+
expect(events.trigger).toHaveBeenCalledWith('form:' + instance.id + ':saveAfter', instance.get('data'));
76+
expect($('.slick-list.draggable').parent().slick.calls.count()).toBe(1);
77+
expect($.fn.find).toHaveBeenCalledWith('.slick-list.draggable');
78+
expect($.fn.find().parent).toHaveBeenCalled();
79+
expect($.fn.find().parent().slick).toHaveBeenCalled();
80+
expect($.fn.find().parent().slick).not.toHaveBeenCalledWith('refresh');
81+
expect(result).toBe(instance);
82+
});
83+
});
84+
});

0 commit comments

Comments
 (0)