diff --git a/services/db/tests/vn/buyUltimate.spec.js b/services/db/tests/vn/buyUltimate.spec.js index 1eb0b4199..63539602e 100644 --- a/services/db/tests/vn/buyUltimate.spec.js +++ b/services/db/tests/vn/buyUltimate.spec.js @@ -11,9 +11,9 @@ describe('buyUltimate()', () => { let query = ` START TRANSACTION; CALL vn.buyUltimate(?, ?); - SELECT * FROM tmp.buyUltimate; - + SELECT * FROM tmp.buyUltimate ORDER BY 'id' DESC; ROLLBACK;`; + let result = await app.models.Ticket.rawSql(query, [ params.warehouseFk, params.date diff --git a/services/db/tests/vn/buyUltimateFromInterval.spec.js b/services/db/tests/vn/buyUltimateFromInterval.spec.js new file mode 100644 index 000000000..02402eb87 --- /dev/null +++ b/services/db/tests/vn/buyUltimateFromInterval.spec.js @@ -0,0 +1,128 @@ +const app = require(`../../../ticket/server/server`); + +describe('buyUltimateFromInterval()', () => { + let today; + let future; + beforeAll(() => { + let date = new Date(); + let month = `${date.getMonth() + 1}`; + let futureMonth = `${date.getMonth() + 2}`; + let day = date.getDate(); + let year = date.getFullYear(); + + if (month.toString().length < 2) month = '0' + month; + if (futureMonth.toString().length < 2) month = '0' + month; + if (day.toString().length < 2) day = `0${day}`; + + today = [year, month, day].join('-'); + future = [year, futureMonth, day].join('-'); + }); + + it(`should create a temporal table with it's data`, async() => { + let params = { + warehouseFk: 1, + started: today, + ended: today + }; + + let query = ` + START TRANSACTION; + CALL vn.buyUltimateFromInterval(?, ?, ?); + SELECT * FROM tmp.buyUltimateFromInterval; + ROLLBACK;`; + + let result = await app.models.Ticket.rawSql(query, [ + params.warehouseFk, + params.started, + params.ended + ]); + + let buyUltimateFromIntervalTable = result[2]; + + expect(buyUltimateFromIntervalTable.length).toEqual(2); + + expect(buyUltimateFromIntervalTable[0].itemFk).toEqual(1); + expect(buyUltimateFromIntervalTable[1].itemFk).toEqual(3); + + expect(buyUltimateFromIntervalTable[0].warehouseFk).toEqual(1); + expect(buyUltimateFromIntervalTable[1].warehouseFk).toEqual(1); + + expect(buyUltimateFromIntervalTable[0].buyFk).toEqual(3); + expect(buyUltimateFromIntervalTable[1].buyFk).toEqual(5); + + expect(buyUltimateFromIntervalTable[0].landed).toEqual(today); + expect(buyUltimateFromIntervalTable[1].landed).toEqual(today); + }); + + it(`should create a temporal table with it's data in which started value is assigned to ended`, async() => { + let params = { + warehouseFk: 1, + started: today, + ended: null + }; + + let query = ` + START TRANSACTION; + CALL vn.buyUltimateFromInterval(?, ?, ?); + SELECT * FROM tmp.buyUltimateFromInterval; + ROLLBACK;`; + + let result = await app.models.Ticket.rawSql(query, [ + params.warehouseFk, + params.started, + params.ended + ]); + + let buyUltimateFromIntervalTable = result[2]; + + expect(buyUltimateFromIntervalTable.length).toEqual(2); + + expect(buyUltimateFromIntervalTable[0].itemFk).toEqual(1); + expect(buyUltimateFromIntervalTable[1].itemFk).toEqual(3); + + expect(buyUltimateFromIntervalTable[0].warehouseFk).toEqual(1); + expect(buyUltimateFromIntervalTable[1].warehouseFk).toEqual(1); + + expect(buyUltimateFromIntervalTable[0].buyFk).toEqual(3); + expect(buyUltimateFromIntervalTable[1].buyFk).toEqual(5); + + expect(buyUltimateFromIntervalTable[0].landed).toEqual(today); + expect(buyUltimateFromIntervalTable[1].landed).toEqual(today); + }); + + it(`should create a temporal table with it's data in which ended value is a date in the future`, async() => { + let params = { + warehouseFk: 1, + started: today, + ended: future + }; + + let query = ` + START TRANSACTION; + CALL vn.buyUltimateFromInterval(?, ?, ?); + SELECT * FROM tmp.buyUltimateFromInterval; + ROLLBACK;`; + + let result = await app.models.Ticket.rawSql(query, [ + params.warehouseFk, + params.started, + params.ended + ]); + + let buyUltimateFromIntervalTable = result[2]; + + expect(buyUltimateFromIntervalTable.length).toEqual(2); + + expect(buyUltimateFromIntervalTable[0].itemFk).toEqual(1); + expect(buyUltimateFromIntervalTable[1].itemFk).toEqual(3); + + expect(buyUltimateFromIntervalTable[0].warehouseFk).toEqual(1); + expect(buyUltimateFromIntervalTable[1].warehouseFk).toEqual(1); + + expect(buyUltimateFromIntervalTable[0].buyFk).toEqual(3); + expect(buyUltimateFromIntervalTable[1].buyFk).toEqual(5); + + expect(buyUltimateFromIntervalTable[0].landed).toEqual(today); + expect(buyUltimateFromIntervalTable[1].landed).toEqual(today); + }); +});