diff --git a/modules/zone/back/methods/zone/getEventsFiltered.js b/modules/zone/back/methods/zone/getEventsFiltered.js index aa3cd8b75..2788f45d0 100644 --- a/modules/zone/back/methods/zone/getEventsFiltered.js +++ b/modules/zone/back/methods/zone/getEventsFiltered.js @@ -29,7 +29,12 @@ module.exports = Self => { } }); - Self.getEventsFiltered = async(zoneFk, started, ended) => { + Self.getEventsFiltered = async(zoneFk, started, ended, options) => { + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + query = ` SELECT * FROM vn.zoneEvent @@ -44,14 +49,14 @@ module.exports = Self => { ) ) ORDER BY type='indefinitely' DESC, type='range' DESC, type='day' DESC;`; - const events = await Self.rawSql(query, [zoneFk, started, ended, started, ended, started, ended]); + const events = await Self.rawSql(query, [zoneFk, started, ended, started, ended, started, ended], myOptions); query = ` SELECT * FROM vn.zoneExclusion WHERE zoneFk = ? AND dated BETWEEN ? AND ?;`; - const exclusions = await Self.rawSql(query, [zoneFk, started, ended]); + const exclusions = await Self.rawSql(query, [zoneFk, started, ended], myOptions); return {events, exclusions}; }; diff --git a/modules/zone/back/methods/zone/specs/clone.spec.js b/modules/zone/back/methods/zone/specs/clone.spec.js index 1ede5feb7..92392d789 100644 --- a/modules/zone/back/methods/zone/specs/clone.spec.js +++ b/modules/zone/back/methods/zone/specs/clone.spec.js @@ -1,12 +1,12 @@ -const app = require('vn-loopback/server/server'); +const models = require('vn-loopback/server/server').models; describe('agency clone()', () => { it('should clone a zone', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - const newZone = await app.models.Zone.clone(1, options); + const newZone = await models.Zone.clone(1, options); expect(newZone.name).toEqual('Zone pickup A'); diff --git a/modules/zone/back/methods/zone/specs/deleteZone.spec.js b/modules/zone/back/methods/zone/specs/deleteZone.spec.js index d8abe1da8..968685fec 100644 --- a/modules/zone/back/methods/zone/specs/deleteZone.spec.js +++ b/modules/zone/back/methods/zone/specs/deleteZone.spec.js @@ -1,4 +1,4 @@ -const app = require('vn-loopback/server/server'); +const models = require('vn-loopback/server/server').models; const LoopBackContext = require('loopback-context'); describe('zone deletezone()', () => { @@ -16,13 +16,13 @@ describe('zone deletezone()', () => { active: activeCtx }); try { - const originalTickets = await app.models.Ticket.find({ + const originalTickets = await models.Ticket.find({ where: { zoneFk: zoneId } }); ticketIDs = originalTickets.map(ticket => ticket.id); - originalTicketStates = await app.models.TicketState.find({where: { + originalTicketStates = await models.TicketState.find({where: { ticketFk: {inq: ticketIDs}, code: 'FIXING'}}); } catch (error) { @@ -31,16 +31,16 @@ describe('zone deletezone()', () => { }); it('should delete a zone and update their tickets', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - await app.models.Zone.deleteZone(ctx, zoneId, options); + await models.Zone.deleteZone(ctx, zoneId, options); - const updatedZone = await app.models.Zone.findById(zoneId, null, options); - const anUpdatedTicket = await app.models.Ticket.findById(ticketIDs[0], null, options); + const updatedZone = await models.Zone.findById(zoneId, null, options); + const anUpdatedTicket = await models.Ticket.findById(ticketIDs[0], null, options); - const updatedTicketStates = await app.models.TicketState.find({ + const updatedTicketStates = await models.TicketState.find({ where: { ticketFk: {inq: ticketIDs}, code: 'FIXING' diff --git a/modules/zone/back/methods/zone/specs/getEvents.spec.js b/modules/zone/back/methods/zone/specs/getEvents.spec.js index 4227908bb..d1c51baff 100644 --- a/modules/zone/back/methods/zone/specs/getEvents.spec.js +++ b/modules/zone/back/methods/zone/specs/getEvents.spec.js @@ -1,13 +1,13 @@ -const app = require('vn-loopback/server/server'); +const models = require('vn-loopback/server/server').models; describe('zone getEvents()', () => { it('should return all events for the specified geo and agency mode', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - let result = await app.models.Zone.getEvents(20, 1, options); + let result = await models.Zone.getEvents(20, 1, options); expect(result.events.length).toEqual(10); diff --git a/modules/zone/back/methods/zone/specs/getEventsFiltered.spec.js b/modules/zone/back/methods/zone/specs/getEventsFiltered.spec.js new file mode 100644 index 000000000..ffa416282 --- /dev/null +++ b/modules/zone/back/methods/zone/specs/getEventsFiltered.spec.js @@ -0,0 +1,21 @@ +const models = require('vn-loopback/server/server').models; + +describe('zone getEventsFiltered()', () => { + it('should return events and exclusions for the specified zoneFk in a range of dates', async() => { + const tx = await models.Zone.beginTransaction({}); + + try { + const options = {transaction: tx}; + + let result = await models.Zone.getEventsFiltered(10, '2021-10-01', '2021-10-02', options); + + expect(result.events.length).toEqual(1); + expect(result.exclusions.length).toEqual(0); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); +}); diff --git a/modules/zone/back/methods/zone/specs/getLeaves.spec.js b/modules/zone/back/methods/zone/specs/getLeaves.spec.js index 853962cc4..db7359671 100644 --- a/modules/zone/back/methods/zone/specs/getLeaves.spec.js +++ b/modules/zone/back/methods/zone/specs/getLeaves.spec.js @@ -1,13 +1,13 @@ -const app = require('vn-loopback/server/server'); +const models = require('vn-loopback/server/server').models; describe('zone getLeaves()', () => { it('should return the country and the childs containing the search value', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - let result = await app.models.Zone.getLeaves(1, null, '46000', options); + let result = await models.Zone.getLeaves(1, null, '46000', options); expect(result.length).toEqual(1); diff --git a/modules/zone/back/methods/zone/specs/includingExpired.spec.js b/modules/zone/back/methods/zone/specs/includingExpired.spec.js index ea28727f4..98fdc272d 100644 --- a/modules/zone/back/methods/zone/specs/includingExpired.spec.js +++ b/modules/zone/back/methods/zone/specs/includingExpired.spec.js @@ -1,4 +1,4 @@ -const app = require('vn-loopback/server/server'); +const models = require('vn-loopback/server/server').models; describe('zone includingExpired()', () => { const inhousePickupId = 1; @@ -6,14 +6,14 @@ describe('zone includingExpired()', () => { const warehouseId = 1; it('should return an array containing all zones', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); const ctx = {req: {accessToken: {userId: 1}}}; const where = {}; try { const options = {transaction: tx}; - const result = await app.models.Zone.includingExpired(ctx, {where}, options); + const result = await models.Zone.includingExpired(ctx, {where}, options); expect(result.length).toBeGreaterThan(2); @@ -28,12 +28,12 @@ describe('zone includingExpired()', () => { const ctx = {req: {accessToken: {userId: 1}}}; const where = {agencyModeFk: inhousePickupId}; - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - const result = await app.models.Zone.includingExpired(ctx, {where}, options); + const result = await models.Zone.includingExpired(ctx, {where}, options); const validAgency = result.every(zone => zone.agencyModeFk = inhousePickupId); @@ -56,12 +56,12 @@ describe('zone includingExpired()', () => { warehouseFk: warehouseId }; - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - const result = await app.models.Zone.includingExpired(ctx, {where}, options); + const result = await models.Zone.includingExpired(ctx, {where}, options); const firstZone = result[0]; expect(firstZone.name).toEqual('Zone pickup A'); diff --git a/modules/zone/back/methods/zone/specs/toggleIsIncluded.spec.js b/modules/zone/back/methods/zone/specs/toggleIsIncluded.spec.js index 5fe948747..562e62f5f 100644 --- a/modules/zone/back/methods/zone/specs/toggleIsIncluded.spec.js +++ b/modules/zone/back/methods/zone/specs/toggleIsIncluded.spec.js @@ -1,13 +1,13 @@ -const app = require('vn-loopback/server/server'); +const models = require('vn-loopback/server/server').models; describe('zone toggleIsIncluded()', () => { it('should return the created location with isIncluded true', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - let result = await app.models.Zone.toggleIsIncluded(1, 20, true, options); + let result = await models.Zone.toggleIsIncluded(1, 20, true, options); expect(result.isIncluded).toBeTrue(); @@ -19,12 +19,12 @@ describe('zone toggleIsIncluded()', () => { }); it('should return the created location with isIncluded false', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - let result = await app.models.Zone.toggleIsIncluded(1, 20, false, options); + let result = await models.Zone.toggleIsIncluded(1, 20, false, options); expect(result.isIncluded).toBeFalse(); @@ -36,14 +36,14 @@ describe('zone toggleIsIncluded()', () => { }); it('should return the amount of deleted locations', async() => { - const tx = await app.models.Zone.beginTransaction({}); + const tx = await models.Zone.beginTransaction({}); try { const options = {transaction: tx}; - await app.models.Zone.toggleIsIncluded(1, 20, false, options); + await models.Zone.toggleIsIncluded(1, 20, false, options); - let result = await app.models.Zone.toggleIsIncluded(1, 20, undefined, options); + let result = await models.Zone.toggleIsIncluded(1, 20, undefined, options); expect(result).toEqual({count: 1}); diff --git a/modules/zone/front/events/index.spec.js b/modules/zone/front/events/index.spec.js index c1b0d78b3..bdb7f36a6 100644 --- a/modules/zone/front/events/index.spec.js +++ b/modules/zone/front/events/index.spec.js @@ -17,8 +17,26 @@ describe('component vnZoneEvents', () => { describe('refresh()', () => { it('should set the zone and then call both getSummary() and getWarehouses()', () => { - $httpBackend.expectGET(`Zones/1/events`).respond({id: 1}); - $httpBackend.expectGET(`Zones/1/exclusions`).respond({id: 1}); + const now = '2021-10-01'; + + controller.$params.id = 999; + controller.$.calendar = { + firstDay: now, + lastDay: now + }; + + const params = { + zoneFk: controller.$params.id, + started: now, + ended: now + }; + + const query = `Zones/getEventsFiltered?ended=${now}&started=${now}&zoneFk=${params.zoneFk}`; + const response = { + events: 'myEvents', + exclusions: 'myExclusions' + }; + $httpBackend.whenGET(query).respond(response); controller.refresh(); $httpBackend.flush();