salix/modules/item/back/methods/fixed-price/specs/upsertFixedPrice.spec.js

76 lines
2.2 KiB
JavaScript

const models = require('vn-loopback/server/server').models;
describe('upsertFixedPrice()', () => {
const now = new Date();
const fixedPriceId = 1;
let originalFixedPrice;
beforeAll(async() => {
originalFixedPrice = await models.FixedPrice.findById(fixedPriceId);
});
it(`should toggle the hasMinPrice boolean if there's a minPrice and update the rest of the data`, async() => {
const tx = await models.FixedPrice.beginTransaction({});
try {
const options = {transaction: tx};
const ctx = {args: {
id: fixedPriceId,
itemFk: originalFixedPrice.itemFk,
warehouseFk: 1,
rate2: 100,
rate3: 300,
started: now,
ended: now,
minPrice: 100,
hasMinPrice: false
}};
const result = await models.FixedPrice.upsertFixedPrice(ctx, options);
delete ctx.args.started;
delete ctx.args.ended;
ctx.args.hasMinPrice = true;
expect(result).toEqual(jasmine.objectContaining(ctx.args));
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
it(`should toggle the hasMinPrice boolean if there's no minPrice and update the rest of the data`, async() => {
const tx = await models.FixedPrice.beginTransaction({});
try {
const options = {transaction: tx};
const ctx = {args: {
id: fixedPriceId,
itemFk: originalFixedPrice.itemFk,
warehouseFk: 1,
rate2: 2.5,
rate3: 2,
started: now,
ended: now,
minPrice: 0,
hasMinPrice: true
}};
const result = await models.FixedPrice.upsertFixedPrice(ctx, options);
delete ctx.args.started;
delete ctx.args.ended;
ctx.args.hasMinPrice = false;
expect(result).toEqual(jasmine.objectContaining(ctx.args));
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
});