Added unit tests
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Joan Sanchez 2021-11-19 09:24:49 +01:00
parent 8c5f0d3019
commit 46d7a6e765
2 changed files with 70 additions and 16 deletions

View File

@ -1,31 +1,40 @@
const app = require('vn-loopback/server/server');
const models = require('vn-loopback/server/server').models;
const LoopBackContext = require('loopback-context');
describe('Claim createFromSales()', () => {
const ticketId = 2;
const ticketId = 16;
const newSale = [{
id: 3,
instance: 0,
quantity: 10
}];
const ctx = {
req: {
accessToken: {userId: 1},
headers: {origin: 'localhost:5000'},
__: () => {}
}
const activeCtx = {
accessToken: {userId: 1},
headers: {origin: 'localhost:5000'},
__: () => {}
};
const ctx = {
req: activeCtx
};
beforeEach(() => {
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
active: activeCtx
});
});
it('should create a new claim', async() => {
const tx = await app.models.Claim.beginTransaction({});
const tx = await models.Claim.beginTransaction({});
try {
const options = {transaction: tx};
const claim = await app.models.Claim.createFromSales(ctx, ticketId, newSale, options);
const claim = await models.Claim.createFromSales(ctx, ticketId, newSale, options);
expect(claim.ticketFk).toEqual(ticketId);
let claimBeginning = await app.models.ClaimBeginning.findOne({where: {claimFk: claim.id}}, options);
let claimBeginning = await models.ClaimBeginning.findOne({where: {claimFk: claim.id}}, options);
expect(claimBeginning.saleFk).toEqual(newSale[0].id);
expect(claimBeginning.quantity).toEqual(newSale[0].quantity);
@ -37,17 +46,42 @@ describe('Claim createFromSales()', () => {
}
});
it('should not be able to create a claim if exists that sale', async() => {
const tx = await app.models.Claim.beginTransaction({});
it('should not be able to create a claim for a ticket delivered more than seven days ago', async() => {
const tx = await models.Claim.beginTransaction({});
let error;
try {
const options = {transaction: tx};
await app.models.Claim.createFromSales(ctx, ticketId, newSale, options);
const todayMinusEightDays = new Date();
todayMinusEightDays.setDate(todayMinusEightDays.getDate() - 8);
await app.models.Claim.createFromSales(ctx, ticketId, newSale, options);
const ticket = await models.Ticket.findById(ticketId, options);
await ticket.updateAttribute('landed', todayMinusEightDays, options);
await models.Claim.createFromSales(ctx, ticketId, newSale, options);
await tx.rollback();
} catch (e) {
error = e;
await tx.rollback();
}
expect(error.toString()).toContain(`You can't create a claim from a ticket delivered more than seven days ago`);
});
it('should not be able to create a claim if exists that sale', async() => {
const tx = await models.Claim.beginTransaction({});
let error;
try {
const options = {transaction: tx};
await models.Claim.createFromSales(ctx, ticketId, newSale, options);
await models.Claim.createFromSales(ctx, ticketId, newSale, options);
await tx.rollback();
} catch (e) {

View File

@ -15,7 +15,8 @@ describe('Ticket', () => {
const ticket = {
id: 1,
clientFk: 1101,
shipped: 1,
shipped: new Date(),
landed: new Date(),
created: new Date(),
client: {salesPersonFk: 1},
address: {mobile: 111111111}
@ -74,6 +75,25 @@ describe('Ticket', () => {
});
});
describe('isClaimable() getter', () => {
it('should return true for a ticket delivered less than seven days ago', () => {
const result = controller.isClaimable;
expect(result).toEqual(true);
});
it('should return false for a ticket delivered more than seven days ago', () => {
const ticket = controller.ticket;
const landedMinusEightDays = new Date(ticket.landed);
landedMinusEightDays.setDate(landedMinusEightDays.getDate() - 8);
ticket.landed = landedMinusEightDays;
const result = controller.isClaimable;
expect(result).toEqual(false);
});
});
describe('getSaleTotal()', () => {
it('should return the sale total amount', () => {
const sale = {