From 9d500a06558dfce2193cc955ab2482bbc1c9e740 Mon Sep 17 00:00:00 2001 From: jon Date: Wed, 7 May 2025 16:53:23 +0200 Subject: [PATCH] refactor: refs #8180 get data from front instead of back --- .../Zone/Card/ZoneEventExclusionForm.vue | 39 ++++++++++--------- .../integration/zone/zoneDeliveryDays.spec.js | 23 +---------- 2 files changed, 23 insertions(+), 39 deletions(-) diff --git a/src/pages/Zone/Card/ZoneEventExclusionForm.vue b/src/pages/Zone/Card/ZoneEventExclusionForm.vue index bf82c1786..5581273b2 100644 --- a/src/pages/Zone/Card/ZoneEventExclusionForm.vue +++ b/src/pages/Zone/Card/ZoneEventExclusionForm.vue @@ -66,7 +66,10 @@ const excludeType = computed({ const arrayData = useArrayData('ZoneEvents'); const exclusionGeoCreate = async () => { - if (await hasTicketsForDay(route.params.id, dated.value)) return; + if (await hasTickets(route.params.id, dated.value)) { + await handleHasTickets(); + return; + } const params = { zoneFk: parseInt(route.params.id), @@ -89,7 +92,10 @@ const exclusionCreate = async () => { }; const zoneIds = props.zoneIds?.length ? props.zoneIds : [route.params.id]; for (const id of zoneIds) { - if (await hasTicketsForDay(id, dated.value)) return; + if (await hasTickets(id, dated.value)) { + await handleHasTickets(); + return; + } const url = `Zones/${id}/exclusions`; let today = moment(dated.value); @@ -128,26 +134,23 @@ const exclusionCreate = async () => { }; const hasTickets = async (zoneId, date) => { - let hasDayTickets = await axios.get('Zones/getZoneTickets', { - params: { + const filter = { + where: { zoneFk: zoneId, - date: date, + shipped: date, }, - }); - - if (hasDayTickets.data.length > 0) { - quasar.notify({ - message: t('eventsExclusionForm.cantCloseZone'), - type: 'negative', - }); - return true; - } - return false; + }; + const params = { filter: JSON.stringify(filter) }; + const { data } = await axios.get('Tickets', { params }); + return data.length > 0; }; -const hasTicketsForDay = async (zoneId, date) => { - const tickets = await hasTickets(zoneId, date); - return tickets; +const handleHasTickets = async (zoneId, date) => { + quasar.notify({ + message: t('eventsExclusionForm.cantCloseZone'), + type: 'negative', + }); + await refetchEvents(); }; const onSubmit = async () => { diff --git a/test/cypress/integration/zone/zoneDeliveryDays.spec.js b/test/cypress/integration/zone/zoneDeliveryDays.spec.js index 6d19edb77..51c65df05 100644 --- a/test/cypress/integration/zone/zoneDeliveryDays.spec.js +++ b/test/cypress/integration/zone/zoneDeliveryDays.spec.js @@ -26,27 +26,8 @@ describe('ZoneDeliveryDays', () => { }); }).as('events'); - cy.dataCy('ZoneDeliveryDaysPostcodeSelect').type(postcode); - cy.get('.q-menu .q-item').contains(postcode).click(); - cy.get('.q-menu').then(($menu) => { - if ($menu.is(':visible')) { - cy.get('[data-cy="ZoneDeliveryDaysPostcodeSelect"]') - .as('focusedElement') - .focus(); - cy.get('@focusedElement').blur(); - } - }); - - cy.dataCy('ZoneDeliveryDaysAgencySelect').type(agency); - cy.get('.q-menu .q-item').contains(agency).click(); - cy.get('.q-menu').then(($menu) => { - if ($menu.is(':visible')) { - cy.get('[data-cy="ZoneDeliveryDaysAgencySelect"]') - .as('focusedElement') - .focus(); - cy.get('@focusedElement').blur(); - } - }); + cy.selectOption('[data-cy="ZoneDeliveryDaysPostcodeSelect"]', postcode); + cy.selectOption('[data-cy="ZoneDeliveryDaysAgencySelect"]', agency); cy.get(submitForm).click(); cy.wait('@events').then((interception) => {