60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
const models = require('vn-loopback/server/server').models;
|
|
|
|
const invoiceInId = 1;
|
|
const supplierId = 791;
|
|
describe('invoiceIn updateInvoiceIn()', () => {
|
|
const ctx = beforeAll.getCtx();
|
|
let options;
|
|
let tx;
|
|
|
|
beforeEach(async() => {
|
|
options = {transaction: tx};
|
|
tx = await models.Sale.beginTransaction({});
|
|
options.transaction = tx;
|
|
});
|
|
|
|
afterEach(async() => {
|
|
await tx.rollback();
|
|
});
|
|
|
|
it('should update the invoice', async() => {
|
|
const invoiceBefore = await models.InvoiceIn.findById(invoiceInId, null, options);
|
|
await update(ctx, options);
|
|
const invoiceAfter = await models.InvoiceIn.findById(invoiceInId, null, options);
|
|
|
|
expect(invoiceAfter.supplierFk).not.toBe(invoiceBefore.supplierFk);
|
|
expect(invoiceAfter.supplierFk).toBe(supplierId);
|
|
});
|
|
|
|
it('should not update the invoice if is booked', async() => {
|
|
let error;
|
|
try {
|
|
await models.InvoiceIn.toBook(ctx, invoiceInId, options);
|
|
await update(ctx, options);
|
|
} catch (e) {
|
|
error = e;
|
|
}
|
|
|
|
expect(error.message).toBe('InvoiceIn is already booked');
|
|
});
|
|
});
|
|
|
|
async function update(ctx, opts) {
|
|
const supplierRef = 'mockRef';
|
|
const currencyId = 1;
|
|
await models.InvoiceIn.updateInvoiceIn(ctx,
|
|
invoiceInId,
|
|
supplierId,
|
|
supplierRef,
|
|
undefined,
|
|
undefined,
|
|
undefined,
|
|
undefined,
|
|
undefined,
|
|
undefined,
|
|
currencyId,
|
|
undefined,
|
|
undefined,
|
|
opts);
|
|
}
|