salix/modules/item/front/tax/index.spec.js

68 lines
2.4 KiB
JavaScript
Raw Normal View History

2018-08-09 11:13:50 +00:00
import './index.js';
describe('Item', () => {
describe('Component vnItemTax', () => {
let $element;
2018-08-09 11:13:50 +00:00
let $stateParams;
let controller;
let $httpBackend;
2019-09-13 14:09:14 +00:00
beforeEach(angular.mock.module('item', $translateProvider => {
$translateProvider.translations('en', {});
}));
2018-08-09 11:13:50 +00:00
beforeEach(angular.mock.inject((_$httpBackend_, $rootScope, _$stateParams_, $compile) => {
2018-08-09 11:13:50 +00:00
$stateParams = _$stateParams_;
$stateParams.id = 1;
$httpBackend = _$httpBackend_;
$httpBackend.whenGET(url => url.startsWith(`api/TaxClasses`))
.respond([
{id: 1, description: 'Reduced VAT', code: 'R'},
{id: 2, description: 'General VAT', code: 'G'}
]);
$httpBackend.whenGET(url => url.startsWith(`api/Items/${$stateParams.id}/taxes`))
.respond([
{id: 1, taxClassFk: 1}
]);
$element = $compile(`<vn-item-tax></vn-item-tax`)($rootScope);
controller = $element.controller('vnItemTax');
2018-08-09 11:13:50 +00:00
}));
afterEach(() => {
$element.remove();
});
2018-08-09 11:13:50 +00:00
describe('getTaxes()', () => {
it('should perform a query to set the array of taxes into the controller', () => {
2018-08-09 11:13:50 +00:00
$httpBackend.flush();
expect(controller.taxes[0].id).toEqual(1);
expect(controller.taxes[0].taxClassFk).toEqual(1);
2018-08-09 11:13:50 +00:00
});
});
describe('submit()', () => {
it('should perform a post to update taxes', () => {
spyOn(controller.$.watcher, 'notifySaved');
spyOn(controller.$.watcher, 'updateOriginalData');
controller.taxes = [
{id: 37, countryFk: 1, taxClassFk: 1, country: {id: 1, country: 'España'}}
];
controller.$.watcher.data = [
{id: 37, countryFk: 1, taxClassFk: 2, country: {id: 1, country: 'España'}}
];
2018-08-09 11:13:50 +00:00
$httpBackend.whenPOST(`api/Items/updateTaxes`).respond('oki doki');
2018-08-09 11:13:50 +00:00
controller.submit();
$httpBackend.flush();
expect(controller.$.watcher.notifySaved).toHaveBeenCalledWith();
expect(controller.$.watcher.updateOriginalData).toHaveBeenCalledWith();
2018-08-09 11:13:50 +00:00
});
});
});
});