2018-09-14 12:18:39 +00:00
|
|
|
import './index.js';
|
2018-12-27 11:54:16 +00:00
|
|
|
import crudModel from 'core/mocks/crud-model';
|
2018-09-14 12:18:39 +00:00
|
|
|
|
|
|
|
describe('Order', () => {
|
|
|
|
describe('Component vnOrderCatalog', () => {
|
|
|
|
let $scope;
|
|
|
|
let controller;
|
|
|
|
|
2019-10-24 22:53:53 +00:00
|
|
|
beforeEach(ngModule('order'));
|
2018-09-14 12:18:39 +00:00
|
|
|
|
2018-12-22 10:59:26 +00:00
|
|
|
beforeEach(angular.mock.inject(($componentController, $rootScope) => {
|
2018-09-14 12:18:39 +00:00
|
|
|
$scope = $rootScope.$new();
|
|
|
|
$scope.model = crudModel;
|
2018-10-31 13:56:54 +00:00
|
|
|
$scope.field = {};
|
2018-09-14 12:18:39 +00:00
|
|
|
controller = $componentController('vnOrderCatalog', {$scope: $scope});
|
|
|
|
}));
|
|
|
|
|
2018-10-31 13:56:54 +00:00
|
|
|
describe('onDataChange()', () => {
|
|
|
|
it(`should return an object with order params`, () => {
|
|
|
|
$scope.model.data = [{id: 1, name: 'My Item', tags: [
|
2019-02-19 14:13:27 +00:00
|
|
|
{tagFk: 4, name: 'Length'},
|
|
|
|
{tagFk: 5, name: 'Color'}
|
2018-10-31 13:56:54 +00:00
|
|
|
]}];
|
2019-02-19 14:13:27 +00:00
|
|
|
let expectedResult = [{field: 'showOrder, price', name: 'Color'}];
|
|
|
|
let unexpectedResult = [{tagFk: 5, name: 'Color'}];
|
2018-10-31 13:56:54 +00:00
|
|
|
controller.onDataChange();
|
|
|
|
|
2019-10-28 16:31:33 +00:00
|
|
|
expect(controller.orderFields.length).toEqual(5);
|
|
|
|
expect(controller.orderFields).toEqual(jasmine.arrayContaining(expectedResult));
|
|
|
|
expect(controller.orderFields).not.toEqual(jasmine.arrayContaining(unexpectedResult));
|
2018-10-31 13:56:54 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('getOrderBy()', () => {
|
|
|
|
it(`should return an object with order params`, () => {
|
2019-10-28 16:31:33 +00:00
|
|
|
controller.orderField = 'relevancy DESC, name';
|
|
|
|
controller.orderWay = 'DESC';
|
|
|
|
let expectedResult = {
|
|
|
|
field: 'relevancy DESC, name',
|
|
|
|
way: 'DESC',
|
|
|
|
isTag: false
|
|
|
|
};
|
2018-10-31 13:56:54 +00:00
|
|
|
let result = controller.getOrderBy();
|
|
|
|
|
|
|
|
expect(result).toEqual(expectedResult);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('applyOrder()', () => {
|
|
|
|
it(`should apply order param to model calling getOrderBy()`, () => {
|
|
|
|
controller.field = 'relevancy DESC, name';
|
|
|
|
controller.way = 'ASC';
|
|
|
|
let expectedOrder = {orderBy: controller.getOrderBy()};
|
|
|
|
spyOn(controller, 'getOrderBy').and.callThrough();
|
|
|
|
spyOn(controller.$scope.model, 'addFilter');
|
|
|
|
controller.applyOrder();
|
|
|
|
|
|
|
|
expect(controller.getOrderBy).toHaveBeenCalledWith();
|
|
|
|
expect(controller.$scope.model.addFilter).toHaveBeenCalledWith(null, expectedOrder);
|
2018-09-14 12:18:39 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|