fix: test
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
dc93454ac3
commit
2b62e16164
|
@ -105,8 +105,6 @@ module.exports = Self => {
|
|||
serialLetter,
|
||||
args.invoiceDate
|
||||
], myOptions);
|
||||
if (client.id == 1101 && args.addressId == 121)
|
||||
throw new Error('No se ha podido facturar');
|
||||
|
||||
const [newInvoice] = await Self.rawSql(`SELECT @invoiceId id`, null, myOptions);
|
||||
if (newInvoice.id) {
|
||||
|
|
|
@ -1,126 +1,121 @@
|
|||
import './index.js';
|
||||
import popover from 'core/mocks/popover';
|
||||
import crudModel from 'core/mocks/crud-model';
|
||||
import './index';
|
||||
|
||||
describe('Zone Component vnZoneDeliveryDays', () => {
|
||||
let $httpBackend;
|
||||
let controller;
|
||||
let $element;
|
||||
describe('InvoiceOut', () => {
|
||||
describe('Component vnInvoiceOutGlobalInvoicing', () => {
|
||||
let controller;
|
||||
let $httpBackend;
|
||||
let $httpParamSerializer;
|
||||
|
||||
beforeEach(ngModule('zone'));
|
||||
beforeEach(ngModule('invoiceOut'));
|
||||
|
||||
beforeEach(inject(($componentController, _$httpBackend_) => {
|
||||
$httpBackend = _$httpBackend_;
|
||||
$element = angular.element('<vn-zone-delivery-days></vn-zone-delivery-days');
|
||||
controller = $componentController('vnZoneDeliveryDays', {$element});
|
||||
controller.$.zoneEvents = popover;
|
||||
controller.$.params = {};
|
||||
controller.$.zoneModel = crudModel;
|
||||
}));
|
||||
|
||||
describe('deliveryMethodFk() setter', () => {
|
||||
it('should set the deliveryMethodFk property as pickup and then perform a query that sets the filter', () => {
|
||||
$httpBackend.expect('GET', 'DeliveryMethods').respond([{id: 999}]);
|
||||
controller.deliveryMethodFk = 'pickUp';
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.agencyFilter).toEqual({deliveryMethodFk: {inq: [999]}});
|
||||
});
|
||||
});
|
||||
|
||||
describe('setParams()', () => {
|
||||
it('should do nothing when no params are received', () => {
|
||||
controller.setParams();
|
||||
|
||||
expect(controller.deliveryMethodFk).toBeUndefined();
|
||||
expect(controller.geoFk).toBeUndefined();
|
||||
expect(controller.agencyModeFk).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should set the controller properties when the params are provided', () => {
|
||||
controller.$params = {
|
||||
deliveryMethodFk: 3,
|
||||
geoFk: 2,
|
||||
agencyModeFk: 1
|
||||
};
|
||||
controller.setParams();
|
||||
|
||||
expect(controller.deliveryMethodFk).toEqual(controller.$params.deliveryMethodFk);
|
||||
expect(controller.geoFk).toEqual(controller.$params.geoFk);
|
||||
expect(controller.agencyModeFk).toEqual(controller.$params.agencyModeFk);
|
||||
});
|
||||
});
|
||||
|
||||
describe('fetchData()', () => {
|
||||
it('should make an HTTP GET query and then call the showMessage() method', () => {
|
||||
jest.spyOn(controller.vnApp, 'showMessage');
|
||||
jest.spyOn(controller.$state, 'go');
|
||||
|
||||
controller.agencyModeFk = 1;
|
||||
controller.deliveryMethodFk = 2;
|
||||
controller.geoFk = 3;
|
||||
controller.$state.current.name = 'myState';
|
||||
|
||||
const expectedData = {events: []};
|
||||
|
||||
const url = 'Zones/getEvents?agencyModeFk=1&deliveryMethodFk=2&geoFk=3';
|
||||
|
||||
$httpBackend.when('GET', 'DeliveryMethods').respond([]);
|
||||
$httpBackend.expect('GET', url).respond({events: []});
|
||||
controller.fetchData();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.$.data).toEqual(expectedData);
|
||||
expect(controller.vnApp.showMessage).toHaveBeenCalledWith('No service for the specified zone');
|
||||
expect(controller.$state.go).toHaveBeenCalledWith(
|
||||
controller.$state.current.name,
|
||||
{
|
||||
agencyModeFk: 1,
|
||||
deliveryMethodFk: 2,
|
||||
geoFk: 3
|
||||
beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _$httpParamSerializer_) => {
|
||||
$httpBackend = _$httpBackend_;
|
||||
$httpParamSerializer = _$httpParamSerializer_;
|
||||
let $scope = $rootScope.$new();
|
||||
const $element = angular.element('<vn-invoice-out-global-invoicing></vn-invoice-out-global-invoicing>');
|
||||
const $transclude = {
|
||||
$$boundTransclude: {
|
||||
$$slots: []
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('onSelection()', () => {
|
||||
it('should not call the show popover method if events array is empty', () => {
|
||||
jest.spyOn(controller.$.zoneEvents, 'show');
|
||||
|
||||
const event = new Event('click');
|
||||
const target = document.createElement('div');
|
||||
target.dispatchEvent(event);
|
||||
const events = [];
|
||||
controller.onSelection(event, events);
|
||||
|
||||
expect(controller.$.zoneEvents.show).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should call the show() method and call getZoneClosing() with the expected ids', () => {
|
||||
jest.spyOn(controller.$.zoneEvents, 'show');
|
||||
|
||||
const event = new Event('click');
|
||||
const target = document.createElement('div');
|
||||
target.dispatchEvent(event);
|
||||
|
||||
const day = new Date();
|
||||
const events = [
|
||||
{zoneFk: 1},
|
||||
{zoneFk: 2},
|
||||
{zoneFk: 8}
|
||||
];
|
||||
const params = {
|
||||
zoneIds: [1, 2, 8],
|
||||
date: [day][0]
|
||||
};
|
||||
const response = [{id: 1, hour: ''}];
|
||||
controller = $componentController('vnInvoiceOutGlobalInvoicing', {$element, $scope, $transclude});
|
||||
controller.$.invoiceButton = {disabled: false};
|
||||
}));
|
||||
|
||||
$httpBackend.when('POST', 'Zones/getZoneClosing', params).respond({response});
|
||||
controller.onSelection(event, events, [day]);
|
||||
$httpBackend.flush();
|
||||
describe('getMinClientId()', () => {
|
||||
it('should set the invoice fromClientId property', () => {
|
||||
const filter = {
|
||||
order: 'id ASC',
|
||||
limit: 1
|
||||
};
|
||||
|
||||
expect(controller.$.zoneEvents.show).toHaveBeenCalledWith(target);
|
||||
expect(controller.zoneClosing.id).toEqual(response.id);
|
||||
const serializedParams = $httpParamSerializer({filter});
|
||||
$httpBackend.expectGET(`Clients/findOne?${serializedParams}`).respond(200, {id: 1101});
|
||||
|
||||
controller.getMinClientId();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.invoice.fromClientId).toEqual(1101);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getMaxClientId()', () => {
|
||||
it('should set the invoice toClientId property', () => {
|
||||
const filter = {
|
||||
order: 'id DESC',
|
||||
limit: 1
|
||||
};
|
||||
|
||||
const serializedParams = $httpParamSerializer({filter});
|
||||
$httpBackend.expectGET(`Clients/findOne?${serializedParams}`).respond(200, {id: 1112});
|
||||
|
||||
controller.getMaxClientId();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.invoice.toClientId).toEqual(1112);
|
||||
});
|
||||
});
|
||||
|
||||
describe('makeInvoice()', () => {
|
||||
it('should throw an error when invoiceDate or maxShipped properties are not filled in', () => {
|
||||
jest.spyOn(controller.vnApp, 'showError');
|
||||
|
||||
controller.invoice = {
|
||||
fromClientId: 1101,
|
||||
toClientId: 1101
|
||||
};
|
||||
|
||||
controller.makeInvoice();
|
||||
|
||||
const expectedError = 'Invoice date and the max date should be filled';
|
||||
|
||||
expect(controller.vnApp.showError).toHaveBeenCalledWith(expectedError);
|
||||
});
|
||||
|
||||
it('should throw an error when fromClientId or toClientId properties are not filled in', () => {
|
||||
jest.spyOn(controller.vnApp, 'showError');
|
||||
|
||||
controller.invoice = {
|
||||
invoiceDate: new Date(),
|
||||
maxShipped: new Date()
|
||||
};
|
||||
|
||||
controller.makeInvoice();
|
||||
|
||||
expect(controller.vnApp.showError).toHaveBeenCalledWith(`Choose a valid clients range`);
|
||||
});
|
||||
|
||||
it('should make an http POST query and then call to the showSuccess() method', () => {
|
||||
jest.spyOn(controller.vnApp, 'showSuccess');
|
||||
|
||||
const minShipped = new Date();
|
||||
minShipped.setFullYear(minShipped.getFullYear() - 1);
|
||||
minShipped.setMonth(1);
|
||||
minShipped.setDate(1);
|
||||
minShipped.setHours(0, 0, 0, 0);
|
||||
controller.invoice = {
|
||||
invoiceDate: new Date(),
|
||||
maxShipped: new Date(),
|
||||
fromClientId: 1101,
|
||||
toClientId: 1101,
|
||||
companyFk: 442,
|
||||
minShipped: minShipped
|
||||
};
|
||||
const response = {
|
||||
clientsAndAddresses: [{clientId: 1101, addressId: 121}],
|
||||
invoice: controller.invoice
|
||||
};
|
||||
|
||||
const address = {id: 121};
|
||||
|
||||
$httpBackend.expect('POST', `InvoiceOuts/clientsToInvoice`).respond(response);
|
||||
$httpBackend.expect('GET', `Addresses/${response.clientsAndAddresses[0].addressId}`).respond(address);
|
||||
$httpBackend.expect('POST', `InvoiceOuts/invoiceClient`).respond({id: 1});
|
||||
controller.makeInvoice();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue