From ffc976c597899c9083f9ccdab4ad74aa28d33bed Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@magento.com> Date: Wed, 4 Jan 2017 18:40:44 +0200 Subject: [PATCH] MAGETWO-59322: Incorrect scope filter caching in UI grids --- .../Ui/base/js/grid/data-storage.test.js | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/data-storage.test.js diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/data-storage.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/data-storage.test.js new file mode 100644 index 00000000000..27275b9fe66 --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/data-storage.test.js @@ -0,0 +1,96 @@ +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +/*eslint max-nested-callbacks: 0*/ +/*jscs:disable requirePaddingNewLinesInObjects*/ +/*jscs:disable jsDoc*/ + +define([ + 'Magento_Ui/js/grid/data-storage', +], function (DataStorage) { + 'use strict'; + + describe('Magento_Ui/js/grid/data-storage', function () { + var obj = new DataStorage({ + dataScope: '', + }), + type; + describe('"initConfig" method', function () { + it('Check for defined ', function () { + expect(obj.hasOwnProperty('initConfig')).toBeDefined(); + }); + it('Check method type', function () { + type = typeof obj.initConfig; + expect(type).toEqual('function'); + }); + it('Check method change "$this.dataScope" property', function () { + var obj = new DataStorage({dataScope: 'magento'}); + obj.initConfig; + expect(obj.dataScope).toEqual(['magento']); + }); + }); + describe('"hasScopeChanged" method', function () { + it('Check for defined ', function () { + expect(obj.hasOwnProperty('hasScopeChanged')).toBeDefined(); + }); + it('Check method type', function () { + type = typeof obj.hasScopeChanged; + expect(type).toEqual('function'); + }); + it('Check method with empty cached requests', function () { + var expectedResult; + expectedResult = obj.hasScopeChanged(); + expect(expectedResult).toBeFalsy(); + }); + it('Check method with not empty cached requests', function () { + var expectedResult, params, requestParams; + params = { + namespace: "magento", + search: "", + filters: { + store_id: 0 + }, + sorting: {}, + paging: {} + }; + requestParams = { + namespace: "magento", + search: "magento", + filters: { + store_id: 1 + }, + sorting: {}, + paging: {} + }; + var obj = new DataStorage( + { + dataScope: ['filters.store_id'] //became after initConfig method call + } + ); + spyOn(obj, "getRequest").and.returnValue({ + ids: [], + params: { + namespace: "magento", + search: "", + filters: { + store_id: 0 + }, + sorting: {}, + paging: {} + }, + totalRecords: 0 + }); + spyOn(obj, "removeRequest").and.callFake(function () { + return false; + }); + obj.cacheRequest({totalRecords: 0}, params); + expect(obj.getRequest).toHaveBeenCalled(); + expect(obj.removeRequest).toHaveBeenCalled(); + expectedResult = obj.hasScopeChanged(requestParams); + expect(expectedResult).toBeTruthy(); + }); + }); + }); +}); -- GitLab