salix/modules/ticket/front/component/index.spec.js

92 lines
3.3 KiB
JavaScript

import './index.js';
import crudModel from 'core/mocks/crud-model';
describe('ticket', () => {
describe('Component vnTicketComponents', () => {
let controller;
beforeEach(ngModule('ticket'));
beforeEach(angular.mock.inject(($componentController, $rootScope, $state) => {
$state.params.id = '1';
let $scope = $rootScope.$new();
$scope.model = crudModel;
$scope.model.data = [{
components: [
{componentRate: {name: 'valor de compra'}, value: 5},
{componentRate: {name: 'reparto'}, value: 5},
{componentRate: {name: 'recobro'}, value: 5}
],
quantity: 1
},
{
components: [
{componentRate: {name: 'valor de compra'}, value: 1},
{componentRate: {name: 'reparto'}, value: 1},
{componentRate: {name: 'recobro'}, value: 1}
],
quantity: 5
}];
controller = $componentController('vnTicketComponents', {$scope});
}));
describe('total()', () => {
it('should return the sum from all componenets in each sale', () => {
let result = controller.total();
expect(result).toEqual(30);
});
});
describe('base()', () => {
it(`should return the sum from all 'valor de compra' componenets in each sale`, () => {
controller.sales = [{
components: [
{componentRate: {name: 'valor de compra'}, value: 5},
{componentRate: {name: 'reparto'}, value: 5},
{componentRate: {name: 'recobro'}, value: 5}
],
quantity: 1
},
{
components: [
{componentRate: {name: 'valor de compra'}, value: 1},
{componentRate: {name: 'reparto'}, value: 1},
{componentRate: {name: 'recobro'}, value: 1}
],
quantity: 5
}
];
let result = controller.base();
expect(result).toEqual(10);
});
});
describe('profitMargin()', () => {
it(`should return the sum from all componenets but 'valor de compra' in each sale`, () => {
controller.sales = [{
components: [
{componentRate: {name: 'valor de compra'}, value: 5},
{componentRate: {name: 'reparto'}, value: 5},
{componentRate: {name: 'recobro'}, value: 5}
],
quantity: 1
},
{
components: [
{componentRate: {name: 'valor de compra'}, value: 1},
{componentRate: {name: 'reparto'}, value: 1},
{componentRate: {name: 'recobro'}, value: 1}
],
quantity: 5
}
];
let result = controller.profitMargin();
expect(result).toEqual(20);
});
});
});
});