#8600: Added and modified E2E #1447
|
@ -56,7 +56,12 @@ async function confirm() {
|
||||||
{{ t('The notification will be sent to the following address') }}
|
{{ t('The notification will be sent to the following address') }}
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QCardSection class="q-pt-none">
|
<QCardSection class="q-pt-none">
|
||||||
<VnInput v-model="address" is-outlined autofocus />
|
<VnInput
|
||||||
|
v-model="address"
|
||||||
|
is-outlined
|
||||||
|
autofocus
|
||||||
|
data-cy="SendEmailNotifiactionDialogInput"
|
||||||
|
/>
|
||||||
</QCardSection>
|
</QCardSection>
|
||||||
<QCardActions align="right">
|
<QCardActions align="right">
|
||||||
<QBtn :label="t('globals.cancel')" color="primary" flat v-close-popup />
|
<QBtn :label="t('globals.cancel')" color="primary" flat v-close-popup />
|
||||||
|
|
|
@ -70,6 +70,7 @@ function ticketFilter(invoice) {
|
||||||
icon="vn:client"
|
icon="vn:client"
|
||||||
color="primary"
|
color="primary"
|
||||||
:to="{ name: 'CustomerCard', params: { id: entity.client.id } }"
|
:to="{ name: 'CustomerCard', params: { id: entity.client.id } }"
|
||||||
|
data-cy="invoiceOutDescriptorCustomerCard"
|
||||||
>
|
>
|
||||||
<QTooltip>{{ t('invoiceOut.card.customerCard') }}</QTooltip>
|
<QTooltip>{{ t('invoiceOut.card.customerCard') }}</QTooltip>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
|
@ -81,6 +82,7 @@ function ticketFilter(invoice) {
|
||||||
name: 'TicketList',
|
name: 'TicketList',
|
||||||
query: { table: ticketFilter(entity) },
|
query: { table: ticketFilter(entity) },
|
||||||
}"
|
}"
|
||||||
|
data-cy="invoiceOutDescriptorTicketList"
|
||||||
>
|
>
|
||||||
<QTooltip>{{ t('invoiceOut.card.ticketList') }}</QTooltip>
|
<QTooltip>{{ t('invoiceOut.card.ticketList') }}</QTooltip>
|
||||||
</QBtn>
|
</QBtn>
|
||||||
|
|
|
@ -29,10 +29,10 @@ const setFilteredAddresses = (data) => {
|
||||||
<template #form="{ data, validate }">
|
<template #form="{ data, validate }">
|
||||||
<VnRow>
|
<VnRow>
|
||||||
<VnInput
|
<VnInput
|
||||||
data-cy="zone-basic-data-name"
|
|
||||||
:label="t('Name')"
|
:label="t('Name')"
|
||||||
clearable
|
clearable
|
||||||
v-model="data.name"
|
v-model="data.name"
|
||||||
|
data-cy="ZoneBasicDataName"
|
||||||
:required="true"
|
:required="true"
|
||||||
/>
|
/>
|
||||||
</VnRow>
|
</VnRow>
|
||||||
|
@ -75,7 +75,6 @@ const setFilteredAddresses = (data) => {
|
||||||
min="0"
|
min="0"
|
||||||
/>
|
/>
|
||||||
</VnRow>
|
</VnRow>
|
||||||
|
|
||||||
<VnRow>
|
<VnRow>
|
||||||
<VnInput
|
<VnInput
|
||||||
v-model="data.travelingDays"
|
v-model="data.travelingDays"
|
||||||
|
@ -86,7 +85,6 @@ const setFilteredAddresses = (data) => {
|
||||||
/>
|
/>
|
||||||
<VnInputTime v-model="data.hour" :label="t('Closing')" :required="true" />
|
<VnInputTime v-model="data.hour" :label="t('Closing')" :required="true" />
|
||||||
</VnRow>
|
</VnRow>
|
||||||
|
|
||||||
<VnRow>
|
<VnRow>
|
||||||
<VnInput
|
<VnInput
|
||||||
v-model="data.price"
|
v-model="data.price"
|
||||||
|
@ -95,6 +93,7 @@ const setFilteredAddresses = (data) => {
|
||||||
min="0"
|
min="0"
|
||||||
:required="true"
|
:required="true"
|
||||||
clearable
|
clearable
|
||||||
|
data-cy="ZoneBasicDataPrice"
|
||||||
/>
|
/>
|
||||||
<VnInput
|
<VnInput
|
||||||
v-model="data.priceOptimum"
|
v-model="data.priceOptimum"
|
||||||
|
|
|
@ -36,13 +36,13 @@ function openConfirmDialog(callback) {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<QItem @click="openConfirmDialog('remove')" v-ripple clickable>
|
<QItem @click="openConfirmDialog('remove')" v-ripple clickable data-cy="Delete_button">
|
||||||
<QItemSection avatar>
|
<QItemSection avatar>
|
||||||
<QIcon name="delete" />
|
<QIcon name="delete" />
|
||||||
</QItemSection>
|
</QItemSection>
|
||||||
<QItemSection>{{ t('deleteZone') }}</QItemSection>
|
<QItemSection>{{ t('deleteZone') }}</QItemSection>
|
||||||
</QItem>
|
</QItem>
|
||||||
<QItem @click="openConfirmDialog('clone')" v-ripple clickable>
|
<QItem @click="openConfirmDialog('clone')" v-ripple clickable data-cy="Clone_button">
|
||||||
<QItemSection avatar>
|
<QItemSection avatar>
|
||||||
<QIcon name="content_copy" />
|
<QIcon name="content_copy" />
|
||||||
</QItemSection>
|
</QItemSection>
|
||||||
|
|
|
@ -58,7 +58,7 @@ const arrayData = useArrayData('ZoneEvents');
|
||||||
|
|
||||||
const createEvent = async () => {
|
const createEvent = async () => {
|
||||||
eventInclusionFormData.value.weekDays = weekdayStore.toSet(
|
eventInclusionFormData.value.weekDays = weekdayStore.toSet(
|
||||||
eventInclusionFormData.value.wdays
|
eventInclusionFormData.value.wdays,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (inclusionType.value == 'day') eventInclusionFormData.value.weekDays = '';
|
if (inclusionType.value == 'day') eventInclusionFormData.value.weekDays = '';
|
||||||
|
@ -74,7 +74,7 @@ const createEvent = async () => {
|
||||||
else
|
else
|
||||||
await axios.put(
|
await axios.put(
|
||||||
`Zones/${route.params.id}/events/${props.event?.id}`,
|
`Zones/${route.params.id}/events/${props.event?.id}`,
|
||||||
eventInclusionFormData.value
|
eventInclusionFormData.value,
|
||||||
);
|
);
|
||||||
|
|
||||||
await refetchEvents();
|
await refetchEvents();
|
||||||
|
@ -123,12 +123,14 @@ onMounted(() => {
|
||||||
dense
|
dense
|
||||||
val="day"
|
val="day"
|
||||||
:label="t('eventsInclusionForm.oneDay')"
|
:label="t('eventsInclusionForm.oneDay')"
|
||||||
|
data-cy="ZoneEventInclusionDayRadio"
|
||||||
/>
|
/>
|
||||||
<QRadio
|
<QRadio
|
||||||
v-model="inclusionType"
|
v-model="inclusionType"
|
||||||
dense
|
dense
|
||||||
val="indefinitely"
|
val="indefinitely"
|
||||||
:label="t('eventsInclusionForm.indefinitely')"
|
:label="t('eventsInclusionForm.indefinitely')"
|
||||||
|
data-cy="ZoneEventInclusionIndefinitelyRadio"
|
||||||
/>
|
/>
|
||||||
<QRadio
|
<QRadio
|
||||||
v-model="inclusionType"
|
v-model="inclusionType"
|
||||||
|
@ -136,6 +138,7 @@ onMounted(() => {
|
||||||
val="range"
|
val="range"
|
||||||
:label="t('eventsInclusionForm.rangeOfDates')"
|
:label="t('eventsInclusionForm.rangeOfDates')"
|
||||||
class="q-mb-sm"
|
class="q-mb-sm"
|
||||||
|
data-cy="ZoneEventInclusionRangeRadio"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<VnRow>
|
<VnRow>
|
||||||
|
@ -156,10 +159,12 @@ onMounted(() => {
|
||||||
<VnInputDate
|
<VnInputDate
|
||||||
:label="t('eventsInclusionForm.from')"
|
:label="t('eventsInclusionForm.from')"
|
||||||
v-model="eventInclusionFormData.started"
|
v-model="eventInclusionFormData.started"
|
||||||
|
data-cy="ZoneEventsFromDate"
|
||||||
/>
|
/>
|
||||||
<VnInputDate
|
<VnInputDate
|
||||||
:label="t('eventsInclusionForm.to')"
|
:label="t('eventsInclusionForm.to')"
|
||||||
v-model="eventInclusionFormData.ended"
|
v-model="eventInclusionFormData.ended"
|
||||||
|
data-cy="ZoneEventsToDate"
|
||||||
/>
|
/>
|
||||||
</VnRow>
|
</VnRow>
|
||||||
<VnRow>
|
<VnRow>
|
||||||
|
@ -221,7 +226,7 @@ onMounted(() => {
|
||||||
openConfirmationModal(
|
openConfirmationModal(
|
||||||
t('zone.deleteTitle'),
|
t('zone.deleteTitle'),
|
||||||
t('zone.deleteSubtitle'),
|
t('zone.deleteSubtitle'),
|
||||||
() => deleteEvent()
|
() => deleteEvent(),
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -185,6 +185,7 @@ const handleDateClick = (timestamp) => {
|
||||||
:class="{
|
:class="{
|
||||||
'--today': isToday(timestamp),
|
'--today': isToday(timestamp),
|
||||||
}"
|
}"
|
||||||
|
data-cy="ZoneCalendarDay"
|
||||||
>
|
>
|
||||||
<QPopupProxy v-if="isZoneDeliveryView">
|
<QPopupProxy v-if="isZoneDeliveryView">
|
||||||
<ZoneClosingTable
|
<ZoneClosingTable
|
||||||
|
|
|
@ -46,7 +46,7 @@ watch(
|
||||||
inq.value = {
|
inq.value = {
|
||||||
deliveryMethodFk: { inq: deliveryMethods.value[deliveryMethodFk.value] },
|
deliveryMethodFk: { inq: deliveryMethods.value[deliveryMethodFk.value] },
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ watch(
|
||||||
outlined
|
outlined
|
||||||
rounded
|
rounded
|
||||||
map-key="geoFk"
|
map-key="geoFk"
|
||||||
|
data-cy="ZoneDeliveryDaysPostcodeSelect"
|
||||||
>
|
>
|
||||||
<template #option="{ itemProps, opt }">
|
<template #option="{ itemProps, opt }">
|
||||||
<QItem v-bind="itemProps">
|
<QItem v-bind="itemProps">
|
||||||
|
@ -129,6 +130,7 @@ watch(
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
rounded
|
rounded
|
||||||
|
data-cy="ZoneDeliveryDaysAgencySelect"
|
||||||
/>
|
/>
|
||||||
<VnSelect
|
<VnSelect
|
||||||
v-else
|
v-else
|
||||||
|
|
|
@ -16,6 +16,11 @@ describe.skip('InvoiceOut manual invoice', () => {
|
||||||
cy.checkNotification('Data saved');
|
cy.checkNotification('Data saved');
|
||||||
cy.get('.q-virtual-scroll__content > :nth-child(1) > :nth-child(3)').click();
|
cy.get('.q-virtual-scroll__content > :nth-child(1) > :nth-child(3)').click();
|
||||||
cy.get(':nth-child(8) > .value > .link').click();
|
cy.get(':nth-child(8) > .value > .link').click();
|
||||||
cy.get('.header > :nth-child(3) > .q-btn__content').click();
|
cy.get('.q-menu > .descriptor > .header').should('be.visible');
|
||||||
|
cy.get(
|
||||||
|
'.q-menu > .descriptor > .header > [data-cy="descriptor-more-opts"] > .q-btn__content',
|
||||||
|
).click();
|
||||||
|
cy.get('[data-cy="descriptor-more-opts-menu"] > .q-list > :nth-child(4)').click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -7,7 +7,6 @@ describe('InvoiceOut summary', () => {
|
||||||
|
|
||||||
const firstRowDescriptors = (opt) =>
|
const firstRowDescriptors = (opt) =>
|
||||||
`tbody > :nth-child(1) > :nth-child(${opt}) > .q-btn`;
|
`tbody > :nth-child(1) > :nth-child(${opt}) > .q-btn`;
|
||||||
const toCustomerSummary = '[href="#/customer/1101"]';
|
|
||||||
const toTicketList = '[href="#/ticket/list?table={%22refFk%22:%22T1111111%22}"]';
|
const toTicketList = '[href="#/ticket/list?table={%22refFk%22:%22T1111111%22}"]';
|
||||||
const selectMenuOption = (opt) => `.q-menu > .q-list > :nth-child(${opt})`;
|
const selectMenuOption = (opt) => `.q-menu > .q-list > :nth-child(${opt})`;
|
||||||
const confirmSend = '.q-btn--unelevated';
|
const confirmSend = '.q-btn--unelevated';
|
||||||
|
@ -25,8 +24,8 @@ describe('InvoiceOut summary', () => {
|
||||||
cy.get('.q-item > .q-item__label').should('include.text', '1101');
|
cy.get('.q-item > .q-item__label').should('include.text', '1101');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should open the client summary and the ticket list', () => {
|
it('should open the client summary', () => {
|
||||||
cy.get(toCustomerSummary).click();
|
cy.dataCy('invoiceOutDescriptorCustomerCard').click();
|
||||||
cy.get('.descriptor').should('be.visible');
|
cy.get('.descriptor').should('be.visible');
|
||||||
cy.get('.q-item > .q-item__label').should('include.text', '1101');
|
cy.get('.q-item > .q-item__label').should('include.text', '1101');
|
||||||
});
|
});
|
||||||
|
@ -51,6 +50,7 @@ describe('InvoiceOut summary', () => {
|
||||||
cy.dataCy('descriptor-more-opts').click();
|
cy.dataCy('descriptor-more-opts').click();
|
||||||
cy.get(selectMenuOption(3)).click();
|
cy.get(selectMenuOption(3)).click();
|
||||||
cy.dataCy('InvoiceOutDescriptorMenuSendPdfOption').click();
|
cy.dataCy('InvoiceOutDescriptorMenuSendPdfOption').click();
|
||||||
|
cy.dataCy('SendEmailNotifiactionDialogInput').should('be.visible');
|
||||||
cy.get(confirmSend).click();
|
cy.get(confirmSend).click();
|
||||||
cy.checkNotification('Notification sent');
|
cy.checkNotification('Notification sent');
|
||||||
});
|
});
|
||||||
|
@ -59,18 +59,11 @@ describe('InvoiceOut summary', () => {
|
||||||
cy.dataCy('descriptor-more-opts').click();
|
cy.dataCy('descriptor-more-opts').click();
|
||||||
cy.get(selectMenuOption(3)).click();
|
cy.get(selectMenuOption(3)).click();
|
||||||
cy.dataCy('InvoiceOutDescriptorMenuSendCsvOption').click();
|
cy.dataCy('InvoiceOutDescriptorMenuSendCsvOption').click();
|
||||||
|
cy.dataCy('SendEmailNotifiactionDialogInput').should('be.visible');
|
||||||
cy.get(confirmSend).click();
|
cy.get(confirmSend).click();
|
||||||
cy.checkNotification('Notification sent');
|
cy.checkNotification('Notification sent');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should delete an invoice ', () => {
|
|
||||||
cy.typeSearchbar('T2222222{enter}');
|
|
||||||
|
|||||||
cy.dataCy('descriptor-more-opts').click();
|
|
||||||
cy.get(selectMenuOption(4)).click();
|
|
||||||
cy.dataCy('VnConfirm_confirm').click();
|
|
||||||
cy.checkNotification('InvoiceOut deleted');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should book the invoice', () => {
|
it('should book the invoice', () => {
|
||||||
cy.dataCy('descriptor-more-opts').click();
|
cy.dataCy('descriptor-more-opts').click();
|
||||||
cy.get(selectMenuOption(5)).click();
|
cy.get(selectMenuOption(5)).click();
|
||||||
|
|
|
@ -27,7 +27,7 @@ describe('VnSearchBar', () => {
|
||||||
const searchAndCheck = (searchTerm, expectedText) => {
|
const searchAndCheck = (searchTerm, expectedText) => {
|
||||||
cy.clearSearchbar();
|
cy.clearSearchbar();
|
||||||
cy.typeSearchbar(`${searchTerm}{enter}`);
|
cy.typeSearchbar(`${searchTerm}{enter}`);
|
||||||
cy.get(idGap).should('have.text', expectedText);
|
cy.get(idGap).should('include.text', expectedText);
|
||||||
};
|
};
|
||||||
|
|
||||||
const checkTableLength = (expectedLength) => {
|
const checkTableLength = (expectedLength) => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
describe('ZoneBasicData', () => {
|
describe('ZoneBasicData', () => {
|
||||||
const priceBasicData = '[data-cy="Price_input"]';
|
const priceBasicData = '[data-cy="ZoneBasicDataPrice"]';
|
||||||
const saveBtn = '.q-btn-group > .q-btn--standard';
|
const saveBtn = '.q-btn-group > .q-btn--standard';
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
@ -8,20 +8,13 @@ describe('ZoneBasicData', () => {
|
||||||
cy.visit('/#/zone/4/basic-data');
|
cy.visit('/#/zone/4/basic-data');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw an error if the name is empty', () => {
|
|
||||||
cy.get('[data-cy="zone-basic-data-name"] input').type('{selectall}{backspace}');
|
|
||||||
|
|
||||||
cy.get(saveBtn).click();
|
|
||||||
cy.checkNotification("can't be blank");
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should throw an error if the price is empty', () => {
|
it('should throw an error if the price is empty', () => {
|
||||||
cy.get(priceBasicData).clear();
|
cy.get(priceBasicData).clear();
|
||||||
cy.get(saveBtn).click();
|
cy.get(saveBtn).click();
|
||||||
cy.checkNotification('cannot be blank');
|
cy.get('.q-field__messages > div').should('have.text', 'Field required');
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should edit the basicData's zone", () => {
|
it("should edit the basicData's zone name", () => {
|
||||||
cy.get('.q-card > :nth-child(1)').type(' modified');
|
cy.get('.q-card > :nth-child(1)').type(' modified');
|
||||||
cy.get(saveBtn).click();
|
cy.get(saveBtn).click();
|
||||||
cy.checkNotification('Data saved');
|
cy.checkNotification('Data saved');
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
describe('ZoneCalendar', () => {
|
||||||
|
const addEventBtn = '.q-page-sticky > div > .q-btn';
|
||||||
|
const submitBtn = '.q-mt-lg > .q-btn--standard';
|
||||||
|
const deleteBtn = '.q-item__section--side > .q-btn';
|
||||||
|
const from = '.q-field__control-container > [data-cy="ZoneEventsFromDate"]';
|
||||||
|
const to = '.q-field__control-container > [data-cy="ZoneEventsToDate"]';
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.login('developer');
|
||||||
|
cy.viewport(1920, 1080);
|
||||||
|
cy.visit(`/#/zone/11/events`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should include a one day event, then delete it', () => {
|
||||||
|
cy.get(addEventBtn).click();
|
||||||
|
cy.dataCy('ZoneEventInclusionDayRadio').click();
|
||||||
|
cy.get('.q-card > :nth-child(5)').type('02/04/2001');
|
||||||
|
cy.get(submitBtn).click();
|
||||||
|
cy.get(deleteBtn).click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should include an indefinitely event for monday and tuesday', () => {
|
||||||
|
cy.get(addEventBtn).click();
|
||||||
|
cy.get('.flex > .q-gutter-x-sm > :nth-child(1)').click();
|
||||||
|
cy.get('.flex > .q-gutter-x-sm > :nth-child(2)').click();
|
||||||
|
cy.get(submitBtn).click();
|
||||||
|
cy.get(deleteBtn).click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should include a range of dates event', () => {
|
||||||
|
cy.get(addEventBtn).click();
|
||||||
|
cy.dataCy('ZoneEventInclusionRangeRadio').click();
|
||||||
|
cy.get('.flex > .q-gutter-x-sm > :nth-child(1)').click();
|
||||||
|
cy.dataCy('From_inputDate').type('01/01/2001');
|
||||||
|
cy.dataCy('To_inputDate').type('31/01/2001');
|
||||||
|
cy.get(submitBtn).click();
|
||||||
|
cy.get(deleteBtn).click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should exclude an event', () => {
|
||||||
|
cy.get('.q-mb-sm > .q-radio__inner').click();
|
||||||
|
cy.get('.q-current-day > .q-calendar-month__day--label__wrapper').click();
|
||||||
|
cy.get('.q-mt-lg > .q-btn--standard').click();
|
||||||
|
cy.get(
|
||||||
|
'.q-current-day > .q-calendar-month__day--content > [data-cy="ZoneCalendarDay"]',
|
||||||
|
).click();
|
||||||
|
cy.get('.q-mt-lg > :nth-child(2)').click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,15 +1,61 @@
|
||||||
describe('ZoneDeliveryDays', () => {
|
describe('ZoneDeliveryDays', () => {
|
||||||
|
const postcode = '46680';
|
||||||
|
const agency = 'Gotham247Expensive';
|
||||||
|
const submitForm = '.q-form > .q-btn > .q-btn__content';
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.login('developer');
|
cy.login('developer');
|
||||||
cy.viewport(1920, 1080);
|
cy.viewport(1920, 1080);
|
||||||
cy.visit(`/#/zone/delivery-days`);
|
cy.visit(`/#/zone/delivery-days`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should query for the day', () => {
|
it('should return no data when querying without params', () => {
|
||||||
cy.get('.q-form > .q-btn > .q-btn__content').click();
|
cy.get('.q-form > .q-btn > .q-btn__content').click();
|
||||||
cy.get('.q-notification__message').should(
|
cy.get('.q-notification__message').should(
|
||||||
'have.text',
|
'have.text',
|
||||||
'No service for the specified zone'
|
'No service for the specified zone',
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should query for delivery', () => {
|
||||||
|
cy.intercept('GET', /\/api\/Zones\/getEvents/, (req) => {
|
||||||
|
req.headers['cache-control'] = 'no-cache';
|
||||||
|
req.headers['pragma'] = 'no-cache';
|
||||||
|
req.headers['expires'] = '0';
|
||||||
|
req.on('response', (res) => {
|
||||||
|
delete res.headers['if-none-match'];
|
||||||
|
delete res.headers['if-modified-since'];
|
||||||
|
});
|
||||||
|
}).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.get('.q-menu').should('not.exist');
|
||||||
|
|
||||||
|
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.get('.q-menu').should('not.exist');
|
||||||
|
|
||||||
|
cy.get(submitForm).click();
|
||||||
|
cy.wait('@events').then((interception) => {
|
||||||
|
cy.log('interception: ', interception);
|
||||||
|
const data = interception.response.body.events;
|
||||||
|
expect(data.length).to.be.greaterThan(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -7,10 +7,6 @@ describe('ZoneList', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should filter by agency', () => {
|
it('should filter by agency', () => {
|
||||||
cy.dataCy('zoneFilterPanelNameInput').type('{downArrow}{enter}');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should open the zone summary', () => {
|
|
||||||
cy.dataCy('zoneFilterPanelAgencySelect').type(agency);
|
cy.dataCy('zoneFilterPanelAgencySelect').type(agency);
|
||||||
cy.get('.q-menu .q-item').contains(agency).click();
|
cy.get('.q-menu .q-item').contains(agency).click();
|
||||||
cy.get(':nth-child(1) > [data-col-field="agencyModeFk"]').should(
|
cy.get(':nth-child(1) > [data-col-field="agencyModeFk"]').should(
|
||||||
|
@ -18,4 +14,22 @@ describe('ZoneList', () => {
|
||||||
agency,
|
agency,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should open the zone summary', () => {
|
||||||
|
cy.dataCy('zoneFilterPanelAgencySelect').type(agency);
|
||||||
|
cy.get('.q-menu .q-item').contains(agency).click();
|
||||||
|
cy.dataCy('tableAction-0').eq(1).click();
|
||||||
|
cy.get('.header > .q-icon').click();
|
||||||
|
cy.url().should('include', 'zone/2/summary');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should clone the zone', () => {
|
||||||
|
cy.get('.router-link-active > .q-icon').click();
|
||||||
|
cy.dataCy('tableAction-1').eq(1).click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
cy.url().should('not.include', 'zone/2/');
|
||||||
|
cy.url().should('match', /zone\/\d+\/basic-data/);
|
||||||
|
cy.get('.list-box > :nth-child(1)').should('include.text', agency);
|
||||||
|
cy.get('.title > span').should('include.text', 'Zone pickup B');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
describe('ZoneLocations', () => {
|
||||||
|
const data = {
|
||||||
|
Warehouse: { val: 'Warehouse One', type: 'select' },
|
||||||
|
};
|
||||||
|
|
||||||
|
const postalCode = '[style=""] > :nth-child(1) > :nth-child(1) > :nth-child(2) > :nth-child(1) > :nth-child(1) > :nth-child(2) > :nth-child(1) > .q-tree__node--parent > .q-tree__node-collapsible > .q-tree__children'
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.viewport(1280, 720);
|
||||||
|
cy.login('developer');
|
||||||
|
cy.visit(`/#/zone/2/location`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should show all locations on entry', () => {
|
||||||
|
cy.get('.q-tree > :nth-child(1) > :nth-child(2) > :nth-child(1)').children().should('have.length', 9);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be able to search by postal code', () => {
|
||||||
|
cy.get('#searchbarForm').type('46680');
|
||||||
|
cy.get('.router-link-active > .q-icon').click();
|
||||||
|
cy.get(postalCode).should('include.text', '46680')
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,22 @@
|
||||||
|
describe('ZoneSummary', () => {
|
||||||
|
const agency = 'inhouse pickup';
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.viewport(1280, 720);
|
||||||
|
cy.login('developer');
|
||||||
|
cy.visit('/#/zone/2/summary');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should clone the zone, then delete it', () => {
|
||||||
|
cy.dataCy('descriptor-more-opts').click();
|
||||||
|
cy.dataCy('Clone_button').click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
cy.url().should('not.include', 'zone/2/');
|
||||||
|
cy.url().should('match', /zone\/\d+\/basic-data/);
|
||||||
|
cy.get('.list-box > :nth-child(1)').should('include.text', agency);
|
||||||
|
cy.get('.title > span').should('include.text', 'Zone pickup B');
|
||||||
|
cy.get('.q-page').should('exist');
|
||||||
|
cy.dataCy('descriptor-more-opts').click();
|
||||||
|
cy.dataCy('Delete_button').click();
|
||||||
|
cy.dataCy('VnConfirm_confirm').click();
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,9 +1,17 @@
|
||||||
describe('ZoneUpcomingDeliveries', () => {
|
describe('ZoneUpcomingDeliveries', () => {
|
||||||
|
const tableFields = (opt) =>
|
||||||
|
`:nth-child(1) > .q-table__container > .q-table__middle > .q-table > thead > tr > :nth-child(${opt})`;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.login('developer');
|
cy.login('developer');
|
||||||
cy.viewport(1920, 1080);
|
cy.viewport(1920, 1080);
|
||||||
cy.visit(`/#/zone/upcoming-deliveries`);
|
cy.visit(`/#/zone/upcoming-deliveries`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should show the page', () => {});
|
it('should show the page', () => {
|
||||||
|
cy.get('.q-card').should('be.visible');
|
||||||
|
cy.get(tableFields(1)).should('be.visible').should('have.text', 'Province');
|
||||||
|
cy.get(tableFields(2)).should('be.visible').should('have.text', 'Closing');
|
||||||
|
cy.get(tableFields(3)).should('be.visible').should('have.text', 'Id');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,20 +1,19 @@
|
||||||
describe.skip('ZoneWarehouse', () => {
|
describe.skip('ZoneWarehouse', () => {
|
||||||
const data = {
|
const data = {
|
||||||
Warehouse: { val: 'Warehouse One', type: 'select' },
|
Warehouse: { val: 'Warehouse Two', type: 'select' },
|
||||||
};
|
};
|
||||||
|
|
||||||
const dataError = 'The introduced warehouse already exists';
|
const dataError = 'The introduced warehouse already exists';
|
||||||
const saveBtn = '.q-btn--standard > .q-btn__content > .block';
|
const saveBtn = '.q-btn--standard > .q-btn__content > .block';
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.viewport(1280, 720);
|
cy.viewport(1280, 720);
|
||||||
cy.login('developer');
|
cy.login('developer');
|
||||||
cy.visit(`/#/zone/2/warehouses`);
|
cy.visit(`/#/zone/1/warehouses`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw an error if the warehouse chosen is already put in the zone', () => {
|
it('should throw an error if the warehouse chosen is already put in the zone', () => {
|
||||||
cy.addBtnClick();
|
cy.addBtnClick();
|
||||||
cy.dataCy('Warehouse_select').type('Warehouse Two{enter}');
|
cy.dataCy('Warehouse_select').type('Warehouse One{enter}');
|
||||||
cy.get(saveBtn).click();
|
cy.get(saveBtn).click();
|
||||||
cy.checkNotification(dataError);
|
cy.checkNotification(dataError);
|
||||||
});
|
});
|
||||||
|
@ -26,7 +25,5 @@ describe.skip('ZoneWarehouse', () => {
|
||||||
cy.get('.q-mt-lg > .q-btn--standard').click();
|
cy.get('.q-mt-lg > .q-btn--standard').click();
|
||||||
cy.get('tbody > :nth-child(2) > :nth-child(2) > .q-icon').click();
|
cy.get('tbody > :nth-child(2) > :nth-child(2) > .q-icon').click();
|
||||||
cy.get('[title="Confirm"]').click();
|
cy.get('[title="Confirm"]').click();
|
||||||
|
|
||||||
cy.reload();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Se quita?
Ahora se elimina la zona que se clona en el test ZoneSummary.spec.js para que no se vean alteradas otros test en caso de que utilicen la zona que se borraba en este test