Updated unit tests
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
0a327087ce
commit
78ee6f1aff
|
@ -83,8 +83,6 @@ async function backTestOnce(done) {
|
||||||
port: container.dbConf.port
|
port: container.dbConf.port
|
||||||
});
|
});
|
||||||
|
|
||||||
log('[Debug] dataSources', dataSources.vn);
|
|
||||||
|
|
||||||
let bootOptions = {dataSources};
|
let bootOptions = {dataSources};
|
||||||
|
|
||||||
let app = require(`./loopback/server/server`);
|
let app = require(`./loopback/server/server`);
|
||||||
|
@ -92,8 +90,6 @@ async function backTestOnce(done) {
|
||||||
try {
|
try {
|
||||||
app.boot(bootOptions);
|
app.boot(bootOptions);
|
||||||
|
|
||||||
log('[Debug] back started');
|
|
||||||
|
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
const jasmine = require('gulp-jasmine');
|
const jasmine = require('gulp-jasmine');
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
<vn-textfield class="dense" vn-focus
|
<vn-textfield class="dense" vn-focus
|
||||||
vn-id="concept"
|
vn-id="concept"
|
||||||
ng-model="sale.concept"
|
ng-model="sale.concept"
|
||||||
on-change="$ctrl.changeConcept(sale)">
|
on-change="$ctrl.updateConcept(sale)">
|
||||||
</vn-textfield>
|
</vn-textfield>
|
||||||
</field>
|
</field>
|
||||||
</vn-td-editable>
|
</vn-td-editable>
|
||||||
|
|
|
@ -426,7 +426,7 @@ class Controller extends Section {
|
||||||
/*
|
/*
|
||||||
* Changes a sale concept
|
* Changes a sale concept
|
||||||
*/
|
*/
|
||||||
changeConcept(sale) {
|
updateConcept(sale) {
|
||||||
const data = {newConcept: sale.concept};
|
const data = {newConcept: sale.concept};
|
||||||
this.$http.post(`Sales/${sale.id}/updateConcept`, data).then(() => {
|
this.$http.post(`Sales/${sale.id}/updateConcept`, data).then(() => {
|
||||||
this.vnApp.showSuccess(this.$t('Data saved!'));
|
this.vnApp.showSuccess(this.$t('Data saved!'));
|
||||||
|
@ -463,12 +463,12 @@ class Controller extends Section {
|
||||||
}
|
}
|
||||||
|
|
||||||
isTicketEditable() {
|
isTicketEditable() {
|
||||||
this.$http.get(`Tickets/${this.$state.params.id}/isEditable`)
|
this.$http.get(`Tickets/${this.$params.id}/isEditable`)
|
||||||
.then(res => this.isEditable = res.data);
|
.then(res => this.isEditable = res.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
isTicketLocked() {
|
isTicketLocked() {
|
||||||
this.$http.get(`Tickets/${this.$state.params.id}/isLocked`)
|
this.$http.get(`Tickets/${this.$params.id}/isLocked`)
|
||||||
.then(res => this.isLocked = res.data);
|
.then(res => this.isLocked = res.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import '../index.js';
|
import './index.js';
|
||||||
import watcher from 'core/mocks/watcher';
|
import watcher from 'core/mocks/watcher';
|
||||||
import crudModel from 'core/mocks/crud-model';
|
import crudModel from 'core/mocks/crud-model';
|
||||||
|
|
||||||
|
@ -476,5 +476,247 @@ describe('Ticket', () => {
|
||||||
expect(controller.resetChanges).toHaveBeenCalledWith();
|
expect(controller.resetChanges).toHaveBeenCalledWith();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('getNewPrice()', () => {
|
||||||
|
it('should return the total price simulation from a price change', () => {
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
controller.edit = {
|
||||||
|
price: 2,
|
||||||
|
sale: selectedSale
|
||||||
|
};
|
||||||
|
|
||||||
|
const expectedAmount = 10;
|
||||||
|
const result = controller.getNewPrice();
|
||||||
|
|
||||||
|
expect(result).toEqual(expectedAmount);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return the total price simulation from a discount change', () => {
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
controller.edit = {
|
||||||
|
discount: 10,
|
||||||
|
sale: selectedSale
|
||||||
|
};
|
||||||
|
|
||||||
|
const expectedAmount = 105.75;
|
||||||
|
const result = controller.getNewPrice();
|
||||||
|
|
||||||
|
expect(result).toEqual(expectedAmount);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('hasReserves()', () => {
|
||||||
|
it('should return true for any sale marked as reserved', () => {
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.reserved = true;
|
||||||
|
|
||||||
|
const result = controller.hasReserves();
|
||||||
|
|
||||||
|
expect(result).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('unmarkAsReserved()', () => {
|
||||||
|
it('should call setReserved with false', () => {
|
||||||
|
jest.spyOn(controller, 'setReserved');
|
||||||
|
|
||||||
|
controller.unmarkAsReserved(false);
|
||||||
|
|
||||||
|
expect(controller.setReserved).toHaveBeenCalledWith(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('markAsReserved()', () => {
|
||||||
|
it('should call setReserved with true', () => {
|
||||||
|
jest.spyOn(controller, 'setReserved');
|
||||||
|
|
||||||
|
controller.markAsReserved(true);
|
||||||
|
|
||||||
|
expect(controller.setReserved).toHaveBeenCalledWith(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('setReserved()', () => {
|
||||||
|
it('should call getCheckedLines, $.index.accept and make a query ', () => {
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
const expectedParams = {
|
||||||
|
sales: [selectedSale],
|
||||||
|
ticketFk: 1,
|
||||||
|
reserved: false
|
||||||
|
};
|
||||||
|
|
||||||
|
$httpBackend.expectPOST(`Sales/reserve`, expectedParams).respond();
|
||||||
|
controller.unmarkAsReserved(false);
|
||||||
|
$httpBackend.flush();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('newOrderFromTicket()', () => {
|
||||||
|
it('should make an HTTP post query and then open the new order on a new tab', () => {
|
||||||
|
const expectedParams = {ticketFk: 1};
|
||||||
|
const expectedResponse = {id: 123};
|
||||||
|
|
||||||
|
window.open = jasmine.createSpy('open');
|
||||||
|
controller.$state.href = jasmine.createSpy('href')
|
||||||
|
.and.returnValue('/somePath');
|
||||||
|
|
||||||
|
$httpBackend.expect('POST', `Orders/newFromTicket`, expectedParams).respond(expectedResponse);
|
||||||
|
controller.newOrderFromTicket();
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(window.open).toHaveBeenCalledWith('/somePath', '_blank');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('showSMSDialog()', () => {
|
||||||
|
it('should open an SMS dialog with specified data', () => {
|
||||||
|
jest.spyOn(controller.$.sms, 'open');
|
||||||
|
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
controller.showSMSDialog();
|
||||||
|
|
||||||
|
expect(controller.$.sms.open).toHaveBeenCalledWith();
|
||||||
|
expect(controller.newSMS.destination).toEqual(111111111);
|
||||||
|
expect(controller.newSMS.message).not.toEqual('');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('changeQuantity()', () => {
|
||||||
|
it('should not call addSale() or updateQuantity() methods', () => {
|
||||||
|
jest.spyOn(controller, 'addSale');
|
||||||
|
jest.spyOn(controller, 'updateQuantity');
|
||||||
|
|
||||||
|
const sale = {itemFk: 4};
|
||||||
|
controller.changeQuantity(sale);
|
||||||
|
|
||||||
|
expect(controller.addSale).not.toHaveBeenCalled();
|
||||||
|
expect(controller.updateQuantity).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call addSale() method', () => {
|
||||||
|
jest.spyOn(controller, 'addSale');
|
||||||
|
|
||||||
|
const sale = {itemFk: 4, quantity: 5};
|
||||||
|
controller.changeQuantity(sale);
|
||||||
|
|
||||||
|
expect(controller.addSale).toHaveBeenCalledWith(sale);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call updateQuantity() method', () => {
|
||||||
|
jest.spyOn(controller, 'addSale');
|
||||||
|
jest.spyOn(controller, 'updateQuantity');
|
||||||
|
|
||||||
|
const sale = {id: 1, itemFk: 4, quantity: 5};
|
||||||
|
controller.changeQuantity(sale);
|
||||||
|
|
||||||
|
expect(controller.addSale).not.toHaveBeenCalled();
|
||||||
|
expect(controller.updateQuantity).toHaveBeenCalledWith(sale);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('updateQuantity()', () => {
|
||||||
|
it('should make a POST query saving sale quantity', () => {
|
||||||
|
jest.spyOn(controller, 'resetChanges').mockReturnThis();
|
||||||
|
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
selectedSale.quantity = 10;
|
||||||
|
|
||||||
|
const expectedParams = {quantity: 10};
|
||||||
|
$httpBackend.expect('POST', `Sales/1/updateQuantity`, expectedParams).respond();
|
||||||
|
controller.updateQuantity(selectedSale);
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.resetChanges).toHaveBeenCalledWith();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('updateConcept()', () => {
|
||||||
|
it('should make a POST query saving sale concept', () => {
|
||||||
|
jest.spyOn(controller, 'resetChanges').mockReturnThis();
|
||||||
|
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
selectedSale.concept = 'My new weapon';
|
||||||
|
|
||||||
|
const expectedParams = {newConcept: 'My new weapon'};
|
||||||
|
$httpBackend.expect('POST', `Sales/1/updateConcept`, expectedParams).respond();
|
||||||
|
controller.updateConcept(selectedSale);
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.resetChanges).toHaveBeenCalledWith();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('addSale()', () => {
|
||||||
|
it('should make a POST query adding a new sale', () => {
|
||||||
|
jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis();
|
||||||
|
jest.spyOn(controller, 'resetChanges').mockReturnThis();
|
||||||
|
|
||||||
|
const newSale = {itemFk: 4, quantity: 10};
|
||||||
|
const expectedParams = {itemId: 4, quantity: 10};
|
||||||
|
const expectedResult = {
|
||||||
|
id: 30,
|
||||||
|
quantity: 10,
|
||||||
|
discount: 0,
|
||||||
|
price: 0,
|
||||||
|
itemFk: 4,
|
||||||
|
item: {
|
||||||
|
subName: 'Item subName',
|
||||||
|
image: '30.png'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$httpBackend.expect('POST', `tickets/1/addSale`, expectedParams).respond(expectedResult);
|
||||||
|
controller.addSale(newSale);
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
||||||
|
expect(controller.resetChanges).toHaveBeenCalledWith();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('isTicketEditable()', () => {
|
||||||
|
it('should make a HTTP GET query and set the isEditable property on the controller', () => {
|
||||||
|
$httpBackend.expect('GET', `Tickets/1/isEditable`).respond(200, true);
|
||||||
|
controller.isTicketEditable();
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.isEditable).toBeDefined();
|
||||||
|
expect(controller.isEditable).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('isTicketLocked()', () => {
|
||||||
|
it('should make a HTTP GET query and set the isLocked property on the controller', () => {
|
||||||
|
$httpBackend.expect('GET', `Tickets/1/isLocked`).respond(200, false);
|
||||||
|
controller.isTicketLocked();
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.isLocked).toBeDefined();
|
||||||
|
expect(controller.isLocked).toBeFalsy();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('calculateSalePrice()', () => {
|
||||||
|
it('should make an HTTP post query ', () => {
|
||||||
|
jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis();
|
||||||
|
jest.spyOn(controller.$.model, 'refresh').mockReturnThis();
|
||||||
|
|
||||||
|
const selectedSale = controller.sales[0];
|
||||||
|
selectedSale.checked = true;
|
||||||
|
|
||||||
|
$httpBackend.expect('POST', `Sales/1/recalculatePrice`).respond(200);
|
||||||
|
controller.calculateSalePrice();
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
|
||||||
|
expect(controller.$.model.refresh).toHaveBeenCalledWith();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
|
@ -1,87 +0,0 @@
|
||||||
import '../editDiscount.js';
|
|
||||||
|
|
||||||
describe('Ticket', () => {
|
|
||||||
describe('Component vnTicketSaleEditDiscount', () => {
|
|
||||||
let controller;
|
|
||||||
let $httpBackend;
|
|
||||||
let $state;
|
|
||||||
let $scope;
|
|
||||||
|
|
||||||
beforeEach(ngModule('ticket'));
|
|
||||||
|
|
||||||
beforeEach(angular.mock.inject(($componentController, _$state_, _$httpBackend_, $rootScope) => {
|
|
||||||
$httpBackend = _$httpBackend_;
|
|
||||||
$scope = $rootScope.$new();
|
|
||||||
$scope.index = {model: {instances: [{id: 1}, {id: 2}]}, accept: () => {
|
|
||||||
return {
|
|
||||||
then: () => {}
|
|
||||||
};
|
|
||||||
}};
|
|
||||||
$state = _$state_;
|
|
||||||
$state.params.id = 11;
|
|
||||||
const $element = angular.element('<vn-ticket-sale-edit-discount></vn-ticket-sale-edit-discount>');
|
|
||||||
controller = $componentController('vnTicketSaleEditDiscount', {$element, $scope});
|
|
||||||
controller._edit = [{id: 3}];
|
|
||||||
controller.onHide = () => {};
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('edit() setter', () => {
|
|
||||||
it('should set _edit value and call setNewDiscount', () => {
|
|
||||||
jest.spyOn(controller, 'setNewDiscount');
|
|
||||||
controller.edit = {id: 1};
|
|
||||||
|
|
||||||
expect(controller.edit).toEqual({id: 1});
|
|
||||||
expect(controller.setNewDiscount).toHaveBeenCalledWith();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('bulk() setter', () => {
|
|
||||||
it('should set _bulk value and call setNewDiscount', () => {
|
|
||||||
jest.spyOn(controller, 'setNewDiscount');
|
|
||||||
controller.bulk = true;
|
|
||||||
|
|
||||||
expect(controller.bulk).toEqual(true);
|
|
||||||
expect(controller.setNewDiscount).toHaveBeenCalledWith();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('setNewDiscount()', () => {
|
|
||||||
it('should set NewDiscount to edit[0].discount value if it doesnt exists', () => {
|
|
||||||
controller.edit = [{discount: 1}];
|
|
||||||
controller.setNewDiscount();
|
|
||||||
|
|
||||||
expect(controller.newDiscount).toEqual(1);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('updateDiscount()', () => {
|
|
||||||
it('should make a query if the discount value has been modified or the bulk value is true', () => {
|
|
||||||
controller.bulk = true;
|
|
||||||
controller.newDiscount = 15;
|
|
||||||
|
|
||||||
$httpBackend.expectPOST(`Tickets/11/updateDiscount`).respond();
|
|
||||||
controller.updateDiscount();
|
|
||||||
|
|
||||||
$httpBackend.flush();
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`should throw if there's no changes on discount and it isn't bulk`, () => {
|
|
||||||
controller.bulk = false;
|
|
||||||
controller.newDiscount = 15;
|
|
||||||
controller.edit = [{discount: 15}];
|
|
||||||
jest.spyOn(controller.vnApp, 'showError');
|
|
||||||
controller.updateDiscount();
|
|
||||||
|
|
||||||
expect(controller.vnApp.showError).toHaveBeenCalledWith('There are no changes to save');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('clearDiscount()', () => {
|
|
||||||
it('should set newDiscount to null', () => {
|
|
||||||
controller.clearDiscount();
|
|
||||||
|
|
||||||
expect(controller.newDiscount).toEqual(null);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
Loading…
Reference in New Issue