From 092b8443e68e9040535e2ed441114396226bb1ac Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@magento.com> Date: Thu, 5 Jan 2017 17:47:21 +0200 Subject: [PATCH] MAGETWO-59322: Incorrect scope filter caching in UI grids --- .../Ui/base/js/grid/data-storage.test.js | 101 +++++++----------- 1 file changed, 41 insertions(+), 60 deletions(-) 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 index b113c7b1073..ab896c36749 100644 --- 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 @@ -1,29 +1,27 @@ /** - * Copyright © 2017 Magento. All rights reserved. + * Copyright © 2017 Magento. All rights reserved. * See COPYING.txt for license details. */ /*eslint max-nested-callbacks: 0*/ /*jscs:disable requireCamelCaseOrUpperCaseIdentifiers*/ define([ + 'mageUtils', 'Magento_Ui/js/grid/data-storage' -], function (DataStorage) { +], function (utils, DataStorage) { 'use strict'; describe('Magento_Ui/js/grid/data-storage', function () { - var obj = new DataStorage({ - dataScope: '' - }), - type; + describe('initConfig', function () { + it('is function', function () { + var model = new DataStorage({ + dataScope: '' + }); - 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'); + expect(model.initConfig).toBeDefined(); + expect(typeof model.initConfig).toEqual('function'); }); + it('Check method change "$this.dataScope" property', function () { var model = new DataStorage({ dataScope: 'magento' @@ -33,22 +31,27 @@ define([ expect(model.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'); + + describe('hasScopeChanged', function () { + it('is function', function () { + var model = new DataStorage({ + dataScope: '' + }); + + expect(model.hasScopeChanged).toBeDefined(); + expect(typeof model.hasScopeChanged).toEqual('function'); }); - it('Check method with empty cached requests', function () { - var expectedResult; - expectedResult = obj.hasScopeChanged(); - expect(expectedResult).toBeFalsy(); + it('returns false if no requests have been made', function () { + var model = new DataStorage({ + dataScope: '' + }); + + expect(model.hasScopeChanged()).toBeFalsy(); }); - it('Check method with not empty cached requests', function () { - var expectedResult, params, requestParams, model; + + it('check if requests have been made', function () { + var params, newParams, model; params = { namespace: 'magento', @@ -59,46 +62,24 @@ define([ sorting: {}, paging: {} }; - requestParams = { - namespace: 'magento', + + newParams = utils.extend({}, params, { search: 'magento', filters: { store_id: 1 - }, - sorting: {}, - paging: {} - }; - model = new DataStorage( - { - dataScope: ['filters.store_id'] //became after initConfig method call } - ); - spyOn(model, 'getRequest').and.returnValue({ - ids: [], - params: { - namespace: 'magento', - search: '', - filters: { - store_id: 0 - }, - sorting: {}, - paging: {} - }, - totalRecords: 0 }); - spyOn(model, 'removeRequest').and.callFake(function () { - return false; + + model = new DataStorage({ + dataScope: ['filters.store_id'] //became after initConfig method call }); - model.cacheRequest( - { - totalRecords: 0 - }, - params - ); - expect(model.getRequest).toHaveBeenCalled(); - expect(model.removeRequest).toHaveBeenCalled(); - expectedResult = model.hasScopeChanged(requestParams); - expect(expectedResult).toBeTruthy(); + + model.cacheRequest({ + totalRecords: 0 + }, params); + + expect(model.hasScopeChanged(params)).toBeFalsy(); + expect(model.hasScopeChanged(newParams)).toBeTruthy(); }); }); }); -- GitLab