salix/client/item/src/diary/index.spec.js

104 lines
4.1 KiB
JavaScript
Raw Normal View History

import './index.js';
import {crudModel} from '../../../helpers/crudModelHelper';
describe('Item', () => {
describe('Component vnItemDiary', () => {
let $componentController;
2018-09-06 13:08:02 +00:00
let $stateParams;
let $scope;
let controller;
let $httpBackend;
beforeEach(() => {
angular.mock.module('item');
});
2018-09-06 13:08:02 +00:00
beforeEach(angular.mock.inject((_$componentController_, $rootScope, _$stateParams_, _$httpBackend_) => {
$componentController = _$componentController_;
2018-09-06 13:08:02 +00:00
$stateParams = _$stateParams_;
$stateParams.id = 1;
$httpBackend = _$httpBackend_;
$httpBackend.when('GET', /\/locale\/\w+\/[a-z]{2}\.json/).respond({});
$scope = $rootScope.$new();
2018-09-06 13:08:02 +00:00
controller = $componentController('vnItemDiary', {$scope: $scope, $stateParams});
controller.$scope.model = crudModel;
}));
describe('isToday()', () => {
it(`should call isToday() an return true if an specified date is the current date`, () => {
let date = new Date();
let result = controller.isToday(date);
expect(result).toBeTruthy();
});
it(`should call isToday() an return false if an specified date is the current date`, () => {
let date = '2018-07-03';
let result = controller.isToday(date);
expect(result).toBeFalsy();
});
});
describe('freeLineIndex()', () => {
it(`should call freeLineIndex() and return an index from line with alertLevel 0 and current date`, () => {
2018-09-03 08:55:04 +00:00
let currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);
controller.$scope.model = {data: [
{name: 'My item 1', alertLevel: 3, date: '2018-05-02'},
{name: 'My item 2', alertLevel: 1, date: '2018-05-03'},
2018-09-03 08:55:04 +00:00
{name: 'My item 3', alertLevel: 0, date: currentDate}]
};
let result = controller.freeLineIndex;
expect(result).toEqual(2);
});
});
describe('onPreparationLineIndex()', () => {
it(`should call onPreparationLineIndex() and return an index from line with alertLevel 1 and isPicked true`, () => {
2018-09-03 08:55:04 +00:00
let currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);
controller.$scope.model = {data: [
{name: 'My item 1', alertLevel: 3, isPicked: true, date: '2018-05-02'},
{name: 'My item 3', alertLevel: 1, isPicked: true, date: '2018-05-03'},
{name: 'My item 4', alertLevel: 1, isPicked: false, date: '2018-05-03'},
2018-09-03 08:55:04 +00:00
{name: 'My item 5', alertLevel: 0, isPicked: false, date: currentDate}]
};
let result = controller.onPreparationLineIndex;
2018-09-03 08:55:04 +00:00
expect(result).toEqual(2);
});
});
describe('set item()', () => {
2018-09-06 13:08:02 +00:00
it(`should set warehouseFk property based on itemType warehouseFk`, () => {
spyOn(controller.$scope, '$$postDigest').and.callThrough();
2018-09-06 13:08:02 +00:00
controller.item = {id: 1, itemType: {warehouseFk: 1}};
expect(controller.$scope.$$postDigest).toHaveBeenCalledWith(jasmine.any(Function));
$scope.$digest();
2018-09-06 13:08:02 +00:00
expect(controller.warehouseFk).toEqual(1);
expect(controller.item.id).toEqual(1);
});
it(`should set warehouseFk property based on url query warehouseFk`, () => {
spyOn(controller.$scope, '$$postDigest').and.callThrough();
2018-09-06 13:08:02 +00:00
controller.$stateParams.warehouseFk = 4;
controller.item = {id: 1, itemType: {warehouseFk: 1}};
expect(controller.$scope.$$postDigest).toHaveBeenCalledWith(jasmine.any(Function));
$scope.$digest();
2018-09-06 13:08:02 +00:00
expect(controller.warehouseFk).toEqual(4);
expect(controller.item.id).toEqual(1);
});
});
});
});