diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js b/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js index c5d66acda70f0..cea94114990cf 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js @@ -41,8 +41,14 @@ define([ return _.isString(value) ? value.split(',') : value; }, + /** + * Sets the prepared data to dataSource + * by path, where key is component link to dataSource with + * suffix "-prepared-for-send" + * + * @param {Array} data - current component value + */ setPrepareToSendData: function (data) { - if (!data.length) { data = ''; } diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/multiselect.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/multiselect.test.js new file mode 100644 index 0000000000000..c0f4b345509d0 --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/multiselect.test.js @@ -0,0 +1,60 @@ +/** + * Copyright © 2013-2017 Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +/* eslint max-nested-callbacks: 0 */ +define([ + 'squire' +], function (Squire) { + 'use strict'; + + var injector = new Squire(), + mocks = { + 'Magento_Ui/js/lib/core/events': { + on: jasmine.createSpy() + }, + 'Magento_Ui/js/lib/registry/registry': { + get: function() { + return { + get: jasmine.createSpy(), + set: jasmine.createSpy() + }; + }, + create: jasmine.createSpy(), + set: jasmine.createSpy(), + async: jasmine.createSpy() + }, + '/mage/utils/wrapper': jasmine.createSpy() + }, + obj, + dataScope = 'dataScope'; + + beforeEach(function (done) { + injector.mock(mocks); + injector.require(['Magento_Ui/js/form/element/multiselect'], function (Constr) { + obj = new Constr({ + provider: 'provName', + name: '', + index: '', + dataScope: dataScope + }); + + done(); + }); + }); + + describe('Magento_Ui/js/form/element/multiselect', function () { + describe('"setPrepareToSendData" method', function () { + it('Check method call with empty array as parameter.', function () { + expect(obj.setPrepareToSendData([])).toBeUndefined(); + expect(obj.source.set).toHaveBeenCalledWith(dataScope + '-prepared-for-send', ''); + }); + + it('Check method call with array with data as parameter.', function () { + expect(obj.setPrepareToSendData(['1', '2', '3'])).toBeUndefined(); + expect(obj.source.set).toHaveBeenCalledWith(dataScope + '-prepared-for-send', ['1', '2', '3']); + }); + }); + }); +});