Merge branch 'test' of https://gitea.verdnatura.es/verdnatura/salix-front into dev
gitea/salix-front/pipeline/head This commit looks good
Details
gitea/salix-front/pipeline/head This commit looks good
Details
This commit is contained in:
commit
5fbd57a177
|
@ -28,6 +28,17 @@ defineProps({ row: { type: Object, required: true } });
|
|||
{{ t('ticketSale.reserved') }}
|
||||
</QTooltip>
|
||||
</QIcon>
|
||||
<QIcon
|
||||
v-if="row?.isDeleted"
|
||||
color="primary"
|
||||
name="vn:deletedTicket"
|
||||
size="xs"
|
||||
data-cy="ticketDeletedIcon"
|
||||
>
|
||||
<QTooltip>
|
||||
{{ t('Ticket deleted') }}
|
||||
</QTooltip>
|
||||
</QIcon>
|
||||
<QIcon
|
||||
v-if="row?.hasRisk"
|
||||
name="vn:risk"
|
||||
|
|
|
@ -920,12 +920,24 @@ const rowCtrlClickFunction = computed(() => {
|
|||
:row-index="index"
|
||||
>
|
||||
<VnColumn
|
||||
:column="col"
|
||||
:column="{
|
||||
...col,
|
||||
disable:
|
||||
col?.component ===
|
||||
'checkbox'
|
||||
? true
|
||||
: false,
|
||||
}"
|
||||
:row="row"
|
||||
:is-editable="false"
|
||||
v-model="row[col.name]"
|
||||
component-prop="columnField"
|
||||
:show-label="true"
|
||||
:show-label="
|
||||
col?.component ===
|
||||
'checkbox'
|
||||
? false
|
||||
: true
|
||||
"
|
||||
/>
|
||||
</slot>
|
||||
</span>
|
||||
|
|
|
@ -43,16 +43,22 @@ const columns = computed(() => [
|
|||
},
|
||||
{
|
||||
align: 'left',
|
||||
label: t('isOwn'),
|
||||
label: t('agency.isOwn'),
|
||||
name: 'isOwn',
|
||||
component: 'checkbox',
|
||||
columnFilter: {
|
||||
inWhere: true,
|
||||
},
|
||||
cardVisible: true,
|
||||
},
|
||||
{
|
||||
align: 'left',
|
||||
label: t('isAnyVolumeAllowed'),
|
||||
label: t('agency.isAnyVolumeAllowed'),
|
||||
name: 'isAnyVolumeAllowed',
|
||||
component: 'checkbox',
|
||||
columnFilter: {
|
||||
inWhere: true,
|
||||
},
|
||||
cardVisible: true,
|
||||
},
|
||||
{
|
||||
|
@ -61,7 +67,7 @@ const columns = computed(() => [
|
|||
name: 'tableActions',
|
||||
actions: [
|
||||
{
|
||||
title: t('Client ticket list'),
|
||||
title: t('globals.pageTitles.summary'),
|
||||
icon: 'preview',
|
||||
action: (row) => viewSummary(row?.id, AgencySummary),
|
||||
isPrimary: true,
|
||||
|
@ -107,11 +113,3 @@ const columns = computed(() => [
|
|||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
<i18n>
|
||||
es:
|
||||
isOwn: Tiene propietario
|
||||
isAnyVolumeAllowed: Permite cualquier volumen
|
||||
en:
|
||||
isOwn: Has owner
|
||||
isAnyVolumeAllowed: Allows any volume
|
||||
</i18n>
|
||||
|
|
|
@ -6,6 +6,7 @@ import { useI18n } from 'vue-i18n';
|
|||
import CardSummary from 'components/ui/CardSummary.vue';
|
||||
import VnLv from 'components/ui/VnLv.vue';
|
||||
import VnTitle from 'src/components/common/VnTitle.vue';
|
||||
import VnCheckbox from 'components/common/VnCheckbox.vue';
|
||||
|
||||
const route = useRoute();
|
||||
const $props = defineProps({ id: { type: Number, default: 0 } });
|
||||
|
@ -24,12 +25,12 @@ const entityId = computed(() => $props.id || route.params.id);
|
|||
:text="t('globals.pageTitles.basicData')"
|
||||
/>
|
||||
<VnLv :label="t('globals.name')" :value="agency.name" />
|
||||
<QCheckbox
|
||||
<VnCheckbox
|
||||
:label="t('agency.isOwn')"
|
||||
v-model="agency.isOwn"
|
||||
:disable="true"
|
||||
/>
|
||||
<QCheckbox
|
||||
<VnCheckbox
|
||||
:label="t('agency.isAnyVolumeAllowed')"
|
||||
v-model="agency.isAnyVolumeAllowed"
|
||||
:disable="true"
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
agency:
|
||||
search: Search agency
|
||||
searchInfo: You can search by name
|
||||
searchInfo: You can search by name and by id
|
||||
isOwn: Own
|
||||
isAnyVolumeAllowed: Any volume allowed
|
||||
removeItem: Agency removed successfully
|
||||
notification:
|
||||
removeItemError: Error removing agency
|
||||
removeItem: WorkCenter removed successfully
|
||||
removeItemError: Error removing work center
|
||||
removeItem: Work center removed successfully
|
||||
pageTitles:
|
||||
agency: Agency
|
||||
searchBar:
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
agency:
|
||||
search: Buscar agencia
|
||||
searchInfo: Puedes buscar por nombre
|
||||
searchInfo: Puedes buscar por nombre y por id
|
||||
isOwn: Propio
|
||||
isAnyVolumeAllowed: Cualquier volumen
|
||||
removeItem: Agencia eliminada correctamente
|
||||
notification:
|
||||
removeItemError: Error al eliminar la agencia
|
||||
removeItemError: Error al eliminar la el centro de trabajo
|
||||
removeItem: Centro de trabajo eliminado correctamente
|
||||
pageTitles:
|
||||
agency: Agencia
|
||||
searchBar:
|
||||
info: Puedes buscar por nombre o id
|
||||
label: Buscar agencia...
|
||||
|
||||
|
|
|
@ -49,6 +49,12 @@ route:
|
|||
shipped: Shipped
|
||||
agencyAgreement: Agency agreement
|
||||
agencyModeName: Agency route
|
||||
isOwn: Own
|
||||
isAnyVolumeallowed: Any volume allowed
|
||||
Worker: Worker
|
||||
Agency: Agency
|
||||
Vehicle: Vehicle
|
||||
Description: Description
|
||||
hourStarted: H.Start
|
||||
hourFinished: H.End
|
||||
createRoute: Create route
|
||||
|
|
|
@ -50,6 +50,8 @@ route:
|
|||
shipped: Fecha preparación
|
||||
agencyModeName: Agencia Ruta
|
||||
agencyAgreement: Agencia Acuerdo
|
||||
isOwn: Propio
|
||||
isAnyVolumeAllowed: Cualquier volumen
|
||||
Worker: Trabajador
|
||||
Agency: Agencia
|
||||
Vehicle: Vehículo
|
||||
|
|
|
@ -110,7 +110,7 @@ function getInfo() {
|
|||
</template>
|
||||
<template #icons="{ entity }">
|
||||
<QCardActions class="q-gutter-x-xs">
|
||||
<TicketProblems :row="{ ...entity?.client, ...problems }" />
|
||||
<TicketProblems :row="{ ...entity?.client, ...problems, ...entity }" />
|
||||
</QCardActions>
|
||||
</template>
|
||||
<template #actions="{ entity }">
|
||||
|
|
|
@ -174,22 +174,28 @@ const getSaleTotal = (sale) => {
|
|||
return price - discount;
|
||||
};
|
||||
|
||||
const getRowUpdateInputEvents = (sale) => ({
|
||||
'keyup.enter': () => {
|
||||
changeQuantity(sale);
|
||||
},
|
||||
blur: () => {
|
||||
changeQuantity(sale);
|
||||
},
|
||||
});
|
||||
const getRowUpdateInputEvents = (sale) => {
|
||||
return {
|
||||
'keyup.enter': (evt) => {
|
||||
console.error(evt);
|
||||
changeQuantity(sale);
|
||||
},
|
||||
blur: (evt) => {
|
||||
console.error(evt);
|
||||
changeQuantity(sale);
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
const resetChanges = async () => {
|
||||
arrayData.fetch({ append: false });
|
||||
tableRef.value.reload();
|
||||
selectedRows.value = [];
|
||||
};
|
||||
const changeQuantity = async (sale) => {
|
||||
if (!sale.itemFk || sale.quantity == null || sale?.originalQuantity === sale.quantity)
|
||||
return;
|
||||
else sale.originalQuantity = sale.quantity;
|
||||
if (!sale.id) return addSale(sale);
|
||||
|
||||
if (await isSalePrepared(sale)) {
|
||||
|
@ -235,7 +241,7 @@ const addSale = async (sale) => {
|
|||
|
||||
notify('globals.dataSaved', 'positive');
|
||||
sale.isNew = false;
|
||||
arrayData.fetch({});
|
||||
resetChanges();
|
||||
};
|
||||
const changeConcept = async (sale) => {
|
||||
if (await isSalePrepared(sale)) {
|
||||
|
@ -310,7 +316,7 @@ const changeDiscount = async (sale) => {
|
|||
}
|
||||
};
|
||||
|
||||
const updateDiscounts = async (sales, newDiscount = null) => {
|
||||
const updateDiscounts = async (sales, newDiscount) => {
|
||||
const salesTracking = await fetchSalesTracking();
|
||||
|
||||
const someSaleIsPrepared = salesTracking.some((sale) =>
|
||||
|
@ -320,12 +326,11 @@ const updateDiscounts = async (sales, newDiscount = null) => {
|
|||
else updateDiscount(sales, newDiscount);
|
||||
};
|
||||
|
||||
const updateDiscount = async (sales, newDiscount = null) => {
|
||||
const saleIds = sales.map((sale) => sale.id);
|
||||
const _newDiscount = newDiscount || edit.value.discount;
|
||||
const updateDiscount = async (sales, newDiscount = 0) => {
|
||||
const salesIds = sales.map(({ id }) => id);
|
||||
const params = {
|
||||
salesIds: saleIds,
|
||||
newDiscount: _newDiscount,
|
||||
salesIds,
|
||||
newDiscount,
|
||||
manaCode: manaCode.value,
|
||||
};
|
||||
await axios.post(`Tickets/${route.params.id}/updateDiscount`, params);
|
||||
|
@ -474,7 +479,7 @@ const endNewRow = (row) => {
|
|||
};
|
||||
|
||||
async function confirmUpdate(cb) {
|
||||
await quasar
|
||||
quasar
|
||||
.dialog({
|
||||
component: VnConfirm,
|
||||
componentProps: {
|
||||
|
@ -664,6 +669,7 @@ watch(
|
|||
selection: 'multiple',
|
||||
}"
|
||||
:right-search="false"
|
||||
:search-url="false"
|
||||
:column-search="false"
|
||||
:disable-option="{ card: true }"
|
||||
auto-load
|
||||
|
@ -703,7 +709,7 @@ watch(
|
|||
</template>
|
||||
<template #column-image="{ row }">
|
||||
<div class="image-wrapper">
|
||||
<VnImg :id="parseInt(row?.item?.id)" class="rounded" />
|
||||
<VnImg v-if="row.item" :id="parseInt(row?.item?.id)" class="rounded" />
|
||||
</div>
|
||||
</template>
|
||||
<template #column-visible="{ row }">
|
||||
|
@ -751,7 +757,7 @@ watch(
|
|||
{{ row?.item?.subName.toUpperCase() }}
|
||||
</div>
|
||||
</div>
|
||||
<FetchedTags :item="row.item" :max-length="6" />
|
||||
<FetchedTags v-if="row.item" :item="row.item" :max-length="6" />
|
||||
<QPopupProxy v-if="row.id && isTicketEditable">
|
||||
<VnInput
|
||||
v-model="row.concept"
|
||||
|
|
|
@ -1,139 +1,14 @@
|
|||
/// <reference types="cypress" />
|
||||
const firstRow = 'tbody > :nth-child(1)';
|
||||
|
||||
describe('TicketSale', () => {
|
||||
describe.skip('Free ticket #31', () => {
|
||||
beforeEach(() => {
|
||||
cy.login('developer');
|
||||
cy.viewport(1920, 1080);
|
||||
cy.visit('/#/ticket/31/sale');
|
||||
});
|
||||
|
||||
const firstRow = 'tbody > :nth-child(1)';
|
||||
|
||||
const selectFirstRow = () => {
|
||||
cy.waitForElement(firstRow);
|
||||
cy.get(firstRow).find('.q-checkbox__inner').click();
|
||||
};
|
||||
|
||||
it('it should add item to basket', () => {
|
||||
cy.window().then((win) => {
|
||||
cy.stub(win, 'open').as('windowOpen');
|
||||
});
|
||||
cy.dataCy('ticketSaleAddToBasketBtn').should('exist');
|
||||
cy.dataCy('ticketSaleAddToBasketBtn').click();
|
||||
cy.get('@windowOpen').should('be.calledWithMatch', /\/order\/\d+\/catalog/);
|
||||
});
|
||||
|
||||
it('should send SMS', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="sendShortageSMSItem"]');
|
||||
cy.dataCy('sendShortageSMSItem').should('exist');
|
||||
cy.dataCy('sendShortageSMSItem').click();
|
||||
cy.dataCy('vnSmsDialog').should('exist');
|
||||
cy.dataCy('sendSmsBtn').click();
|
||||
cy.checkNotification('SMS sent');
|
||||
});
|
||||
|
||||
it('should recalculate price when "Recalculate price" is clicked', () => {
|
||||
cy.intercept('POST', '**/recalculatePrice').as('recalculatePrice');
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="recalculatePriceItem"]');
|
||||
cy.dataCy('recalculatePriceItem').should('exist');
|
||||
cy.dataCy('recalculatePriceItem').click();
|
||||
cy.wait('@recalculatePrice').its('response.statusCode').should('eq', 200);
|
||||
cy.checkNotification('Data saved');
|
||||
});
|
||||
|
||||
it('should update discount when "Update discount" is clicked', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="updateDiscountItem"]');
|
||||
cy.dataCy('updateDiscountItem').should('exist');
|
||||
cy.dataCy('updateDiscountItem').click();
|
||||
cy.waitForElement('[data-cy="ticketSaleDiscountInput"]');
|
||||
cy.dataCy('ticketSaleDiscountInput').find('input').focus();
|
||||
cy.dataCy('ticketSaleDiscountInput').find('input').type('10');
|
||||
cy.dataCy('saveManaBtn').click();
|
||||
cy.waitForElement('.q-notification__message');
|
||||
cy.checkNotification('Data saved');
|
||||
});
|
||||
|
||||
it('adds claim', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('createClaimItem').click();
|
||||
cy.dataCy('VnConfirm_confirm').click();
|
||||
cy.url().should('contain', 'claim/');
|
||||
// Delete created claim to avoid cluttering the database
|
||||
cy.dataCy('descriptor-more-opts').click();
|
||||
cy.dataCy('deleteClaim').click();
|
||||
cy.dataCy('VnConfirm_confirm').click();
|
||||
cy.checkNotification('Data deleted');
|
||||
});
|
||||
|
||||
it('marks row as reserved', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="markAsReservedItem"]');
|
||||
cy.dataCy('markAsReservedItem').click();
|
||||
cy.dataCy('ticketSaleReservedIcon').should('exist');
|
||||
});
|
||||
|
||||
it('unmarks row as reserved', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="unmarkAsReservedItem"]');
|
||||
cy.dataCy('unmarkAsReservedItem').click();
|
||||
cy.dataCy('ticketSaleReservedIcon').should('not.exist');
|
||||
});
|
||||
|
||||
it('refunds row with warehouse', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('ticketSaleRefundItem').click();
|
||||
cy.dataCy('ticketSaleRefundWithWarehouse').click();
|
||||
cy.checkNotification('The following refund ticket have been created');
|
||||
});
|
||||
|
||||
it('refunds row without warehouse', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('ticketSaleRefundItem').click();
|
||||
cy.dataCy('ticketSaleRefundWithoutWarehouse').click();
|
||||
cy.checkNotification('The following refund ticket have been created');
|
||||
});
|
||||
|
||||
it('transfer sale to a new ticket', () => {
|
||||
cy.visit('/#/ticket/32/sale');
|
||||
cy.get('.q-item > .q-item__label').should('have.text', ' #32');
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleTransferBtn').click();
|
||||
cy.dataCy('ticketTransferPopup').should('exist');
|
||||
cy.dataCy('ticketTransferNewTicketBtn').click();
|
||||
cy.get('.q-item > .q-item__label').should('not.have.text', ' #32');
|
||||
});
|
||||
|
||||
it('should redirect to ticket logs', () => {
|
||||
cy.get(firstRow).find('.q-btn:last').click();
|
||||
cy.url().should('match', /\/ticket\/31\/log/);
|
||||
});
|
||||
});
|
||||
describe.skip('Ticket prepared #23', () => {
|
||||
describe('Ticket #23', () => {
|
||||
beforeEach(() => {
|
||||
cy.login('developer');
|
||||
cy.viewport(1920, 1080);
|
||||
cy.visit('/#/ticket/23/sale');
|
||||
});
|
||||
|
||||
const firstRow = 'tbody > :nth-child(1)';
|
||||
|
||||
const selectFirstRow = () => {
|
||||
cy.waitForElement(firstRow);
|
||||
cy.get(firstRow).find('.q-checkbox__inner').click();
|
||||
};
|
||||
|
||||
it('update price', () => {
|
||||
const price = Number((Math.random() * 99 + 1).toFixed(2));
|
||||
cy.waitForElement(firstRow);
|
||||
|
@ -196,8 +71,144 @@ describe('TicketSale', () => {
|
|||
.should('have.value', `${quantity}`);
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('Ticket to add claim #24', () => {
|
||||
beforeEach(() => {
|
||||
cy.login('developer');
|
||||
cy.viewport(1920, 1080);
|
||||
cy.visit('/#/ticket/24/sale');
|
||||
});
|
||||
|
||||
it('adds claim', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('createClaimItem').click();
|
||||
cy.dataCy('VnConfirm_confirm').click();
|
||||
cy.url().should('contain', 'claim/');
|
||||
// Delete created claim to avoid cluttering the database
|
||||
cy.dataCy('descriptor-more-opts').click();
|
||||
cy.dataCy('deleteClaim').click();
|
||||
cy.dataCy('VnConfirm_confirm').click();
|
||||
});
|
||||
});
|
||||
describe('Free ticket #31', () => {
|
||||
beforeEach(() => {
|
||||
cy.login('developer');
|
||||
cy.viewport(1920, 1080);
|
||||
cy.visit('/#/ticket/31/sale');
|
||||
});
|
||||
|
||||
it('it should add item to basket', () => {
|
||||
cy.window().then((win) => {
|
||||
cy.stub(win, 'open').as('windowOpen');
|
||||
});
|
||||
cy.dataCy('ticketSaleAddToBasketBtn').should('exist');
|
||||
cy.dataCy('ticketSaleAddToBasketBtn').click();
|
||||
cy.get('@windowOpen').should('be.calledWithMatch', /\/order\/\d+\/catalog/);
|
||||
});
|
||||
|
||||
it('should send SMS', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="sendShortageSMSItem"]');
|
||||
cy.dataCy('sendShortageSMSItem').should('exist');
|
||||
cy.dataCy('sendShortageSMSItem').click();
|
||||
cy.dataCy('vnSmsDialog').should('exist');
|
||||
cy.dataCy('sendSmsBtn').click();
|
||||
cy.checkNotification('SMS sent');
|
||||
});
|
||||
|
||||
it('should recalculate price when "Recalculate price" is clicked', () => {
|
||||
cy.intercept('POST', '**/recalculatePrice').as('recalculatePrice');
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="recalculatePriceItem"]');
|
||||
cy.dataCy('recalculatePriceItem').should('exist');
|
||||
cy.dataCy('recalculatePriceItem').click();
|
||||
cy.wait('@recalculatePrice').its('response.statusCode').should('eq', 200);
|
||||
cy.checkNotification('Data saved');
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').should('be.disabled');
|
||||
});
|
||||
|
||||
it('should update discount when "Update discount" is clicked', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="updateDiscountItem"]');
|
||||
cy.dataCy('updateDiscountItem').should('exist');
|
||||
cy.dataCy('updateDiscountItem').click();
|
||||
cy.waitForElement('[data-cy="ticketSaleDiscountInput"]');
|
||||
cy.dataCy('ticketSaleDiscountInput').find('input').focus();
|
||||
cy.dataCy('ticketSaleDiscountInput').find('input').type('10');
|
||||
cy.dataCy('saveManaBtn').click();
|
||||
cy.waitForElement('.q-notification__message');
|
||||
cy.checkNotification('Data saved');
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').should('be.disabled');
|
||||
});
|
||||
|
||||
it('adds claim', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('createClaimItem').click();
|
||||
cy.dataCy('VnConfirm_confirm').click();
|
||||
cy.checkNotification('Future ticket date not allowed');
|
||||
});
|
||||
|
||||
it('marks row as reserved', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="markAsReservedItem"]');
|
||||
cy.dataCy('markAsReservedItem').click();
|
||||
cy.dataCy('ticketSaleReservedIcon').should('exist');
|
||||
});
|
||||
|
||||
it('unmarks row as reserved', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.waitForElement('[data-cy="unmarkAsReservedItem"]');
|
||||
cy.dataCy('unmarkAsReservedItem').click();
|
||||
cy.dataCy('ticketSaleReservedIcon').should('not.exist');
|
||||
});
|
||||
|
||||
it('refunds row with warehouse', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('ticketSaleRefundItem').click();
|
||||
cy.dataCy('ticketSaleRefundWithWarehouse').click();
|
||||
cy.checkNotification('The following refund ticket have been created');
|
||||
});
|
||||
|
||||
it('refunds row without warehouse', () => {
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleMoreActionsDropdown').click();
|
||||
cy.dataCy('ticketSaleRefundItem').click();
|
||||
cy.dataCy('ticketSaleRefundWithoutWarehouse').click();
|
||||
cy.checkNotification('The following refund ticket have been created');
|
||||
});
|
||||
|
||||
it('should redirect to ticket logs', () => {
|
||||
cy.get(firstRow).find('.q-btn:last').click();
|
||||
cy.url().should('match', /\/ticket\/31\/log/);
|
||||
});
|
||||
});
|
||||
describe('Ticket to transfer #32', () => {
|
||||
beforeEach(() => {
|
||||
cy.login('developer');
|
||||
cy.viewport(1920, 1080);
|
||||
cy.visit('/#/ticket/32/sale');
|
||||
});
|
||||
it('transfer sale to a new ticket', () => {
|
||||
cy.get('.q-item > .q-item__label').should('have.text', ' #32');
|
||||
selectFirstRow();
|
||||
cy.dataCy('ticketSaleTransferBtn').click();
|
||||
cy.dataCy('ticketTransferPopup').should('exist');
|
||||
cy.dataCy('ticketTransferNewTicketBtn').click();
|
||||
cy.get('.q-item > .q-item__label').should('not.have.text', ' #32');
|
||||
});
|
||||
});
|
||||
});
|
||||
function selectFirstRow() {
|
||||
cy.waitForElement(firstRow);
|
||||
cy.get(firstRow).find('.q-checkbox__inner').click();
|
||||
}
|
||||
function handleVnConfirm() {
|
||||
cy.get('[data-cy="VnConfirm_confirm"]').click();
|
||||
cy.waitForElement('.q-notification__message');
|
||||
|
|
Loading…
Reference in New Issue