diff --git a/src/components/ui/CardSummary.vue b/src/components/ui/CardSummary.vue
index 2ec6bea78..7ea91edca 100644
--- a/src/components/ui/CardSummary.vue
+++ b/src/components/ui/CardSummary.vue
@@ -159,6 +159,7 @@ async function fetch() {
display: flex;
flex-direction: row;
margin-top: 2px;
+ align-items: start;
.label {
color: var(--vn-label-color);
width: 9em;
@@ -169,6 +170,10 @@ async function fetch() {
flex-grow: 0;
flex-shrink: 0;
}
+ &.ellipsis > .value {
+ text-overflow: ellipsis;
+ white-space: pre;
+ }
.value {
color: var(--vn-text-color);
overflow: hidden;
diff --git a/src/components/ui/VnLinkMail.vue b/src/components/ui/VnLinkMail.vue
index a54f463f5..6c5129a9b 100644
--- a/src/components/ui/VnLinkMail.vue
+++ b/src/components/ui/VnLinkMail.vue
@@ -1,8 +1,11 @@
+ {{ dashIfEmpty(email) }}
diff --git a/src/components/ui/VnLinkPhone.vue b/src/components/ui/VnLinkPhone.vue
index 4174e4ae6..e34a70011 100644
--- a/src/components/ui/VnLinkPhone.vue
+++ b/src/components/ui/VnLinkPhone.vue
@@ -1,7 +1,7 @@
+
-
-
- {{ capitalize(type).replace('-', '') }}
-
-
- {{ phoneNumber }}
+
+
+ handleClick(type)"
+ >
+
+ {{ capitalize(type).replace('-', '') }}
+
+
+ {{ dashIfEmpty(phone) }}
+
diff --git a/src/composables/__tests__/useRole.spec.js b/src/composables/__tests__/useRole.spec.js
index d0bca5342..54d983a13 100644
--- a/src/composables/__tests__/useRole.spec.js
+++ b/src/composables/__tests__/useRole.spec.js
@@ -23,18 +23,19 @@ describe('useRole', () => {
name: `T'Challa`,
nickname: 'Black Panther',
lang: 'en',
+ worker: { department: { departmentFk: 155 } },
};
const expectedUser = {
id: 999,
name: `T'Challa`,
nickname: 'Black Panther',
lang: 'en',
+ departmentFk: 155,
};
const expectedRoles = ['salesPerson', 'admin'];
- vi.spyOn(axios, 'get')
- .mockResolvedValueOnce({
+ vi.spyOn(axios, 'get').mockResolvedValueOnce({
data: { roles: rolesData, user: fetchedUser },
- })
+ });
vi.spyOn(role.state, 'setUser');
vi.spyOn(role.state, 'setRoles');
diff --git a/src/composables/__tests__/useSession.spec.js b/src/composables/__tests__/useSession.spec.js
index 789b149ec..cae33f893 100644
--- a/src/composables/__tests__/useSession.spec.js
+++ b/src/composables/__tests__/useSession.spec.js
@@ -75,6 +75,7 @@ describe('session', () => {
userConfig: {
darkMode: false,
},
+ worker: { department: { departmentFk: 155 } },
};
const rolesData = [
{
@@ -143,7 +144,7 @@ describe('session', () => {
await session.destroy(); // this clears token and user for any other test
});
},
- {}
+ {},
);
describe('RenewToken', () => {
@@ -175,7 +176,7 @@ describe('session', () => {
await session.checkValidity();
expect(sessionStorage.getItem('token')).toEqual(expectedToken);
expect(sessionStorage.getItem('tokenMultimedia')).toEqual(
- expectedTokenMultimedia
+ expectedTokenMultimedia,
);
});
it('Should renewToken', async () => {
@@ -204,7 +205,7 @@ describe('session', () => {
await session.checkValidity();
expect(sessionStorage.getItem('token')).not.toEqual(expectedToken);
expect(sessionStorage.getItem('tokenMultimedia')).not.toEqual(
- expectedTokenMultimedia
+ expectedTokenMultimedia,
);
});
});
diff --git a/src/composables/useAcl.js b/src/composables/useAcl.js
index ede359186..52704fee9 100644
--- a/src/composables/useAcl.js
+++ b/src/composables/useAcl.js
@@ -30,9 +30,16 @@ export function useAcl() {
return false;
}
+ function hasAcl(model, prop, accessType) {
+ const modelAcl = state.getAcls().value[model];
+ const propAcl = modelAcl?.[prop] || modelAcl?.['*'];
+ return !!(propAcl?.[accessType] || propAcl?.['*']);
+ }
+
return {
fetch,
hasAny,
state,
+ hasAcl,
};
}
diff --git a/src/composables/useRole.js b/src/composables/useRole.js
index ff54b409c..e700b1f2e 100644
--- a/src/composables/useRole.js
+++ b/src/composables/useRole.js
@@ -13,6 +13,7 @@ export function useRole() {
name: data.user.name,
nickname: data.user.nickname,
lang: data.user.lang || 'es',
+ departmentFk: data.user.worker.department.departmentFk,
};
state.setUser(userData);
state.setRoles(roles);
diff --git a/src/pages/Account/Card/AccountDescriptorMenu.vue b/src/pages/Account/Card/AccountDescriptorMenu.vue
index eafd62df6..f3eabb531 100644
--- a/src/pages/Account/Card/AccountDescriptorMenu.vue
+++ b/src/pages/Account/Card/AccountDescriptorMenu.vue
@@ -100,12 +100,8 @@ const onChangePass = (oldPass) => {
};
onMounted(() => {
- hasitManagementAccess.value = useAcl().hasAny([
- { model: 'VnUser', props: 'higherPrivileges', accessType: 'WRITE' },
- ]);
- hasSysadminAccess.value = useAcl().hasAny([
- { model: 'VnUser', props: 'adminUser', accessType: 'WRITE' },
- ]);
+ hasitManagementAccess.value = useAcl().hasAcl('VnUser', 'higherPrivileges', 'WRITE');
+ hasSysadminAccess.value = useAcl().hasAcl('VnUser', 'adminUser', 'WRITE');
});
@@ -227,7 +223,7 @@ onMounted(() => {
{{ t('account.card.actions.deactivateUser.name') }}
en:
params:
+ departmentFk: Department
search: Contains
clientFk: Customer
clientName: Customer
@@ -127,6 +128,7 @@ en:
zoneFk: Zone
es:
params:
+ departmentFk: Departamento
search: Contiene
clientFk: Cliente
clientName: Cliente
diff --git a/src/pages/Customer/Card/CustomerBalance.vue b/src/pages/Customer/Card/CustomerBalance.vue
index 15f80b2f6..4855fadc0 100644
--- a/src/pages/Customer/Card/CustomerBalance.vue
+++ b/src/pages/Customer/Card/CustomerBalance.vue
@@ -25,7 +25,7 @@ import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.v
const { openConfirmationModal } = useVnConfirm();
const { sendEmail, openReport } = usePrintService();
const { t } = useI18n();
-const { hasAny } = useAcl();
+const { hasAcl } = useAcl();
const quasar = useQuasar();
const route = useRoute();
@@ -276,9 +276,7 @@ const showBalancePdf = ({ id }) => {
>
diff --git a/src/pages/Customer/Card/CustomerSummary.vue b/src/pages/Customer/Card/CustomerSummary.vue
index 7d5d691a3..342643ec3 100644
--- a/src/pages/Customer/Card/CustomerSummary.vue
+++ b/src/pages/Customer/Card/CustomerSummary.vue
@@ -84,28 +84,27 @@ const sumRisk = ({ clientRisks }) => {
-
-
- {{ t('customer.extendedList.tableVisibleColumns.phone') }}
+
+
-
-
- {{ t('customer.summary.mobile') }}
-
+
+
-
- {{ t('globals.params.email') }}
-
diff --git a/src/pages/Customer/CustomerFilter.vue b/src/pages/Customer/CustomerFilter.vue
index 55a7f565e..107a08144 100644
--- a/src/pages/Customer/CustomerFilter.vue
+++ b/src/pages/Customer/CustomerFilter.vue
@@ -156,6 +156,7 @@ en:
email: Email
isToBeMailed: Mailed
isEqualizated: Equailized
+ departmentFk: Department
businessTypeFk: Business type
sageTaxTypeFk: Sage Tax Type
sageTransactionTypeFk: Sage Tax Type
@@ -166,6 +167,7 @@ en:
postcode: Postcode
es:
params:
+ departmentFk: Departamento
search: Contiene
fi: NIF
isActive: Activo
diff --git a/src/pages/Customer/Defaulter/CustomerDefaulterFilter.vue b/src/pages/Customer/Defaulter/CustomerDefaulterFilter.vue
index 64e3baeb5..f7d4163d1 100644
--- a/src/pages/Customer/Defaulter/CustomerDefaulterFilter.vue
+++ b/src/pages/Customer/Defaulter/CustomerDefaulterFilter.vue
@@ -192,8 +192,10 @@ en:
date: L. O. Date
credit: Credit I.
defaulterSinced: From
+ departmentFk: Department
es:
params:
+ departmentFk: Departamento
clientFk: Cliente
countryFk: País
paymentMethod: F. Pago
diff --git a/src/pages/Monitor/MonitorClients.vue b/src/pages/Monitor/MonitorClients.vue
index c814d623e..2ba5f4c0b 100644
--- a/src/pages/Monitor/MonitorClients.vue
+++ b/src/pages/Monitor/MonitorClients.vue
@@ -9,12 +9,14 @@ import VnInputDate from 'src/components/common/VnInputDate.vue';
import VnRow from 'src/components/ui/VnRow.vue';
import { dateRange } from 'src/filters';
import useOpenURL from 'src/composables/useOpenURL';
+import { useState } from 'src/composables/useState';
const { t } = useI18n();
const dates = dateRange(Date.vnNew());
const from = ref(dates[0]);
const to = ref(dates[1]);
+const state = useState();
const filter = computed(() => {
const obj = {};
const formatFrom = setHours(from.value, 'from');
@@ -24,16 +26,18 @@ const filter = computed(() => {
if (!formatFrom && formatTo) stamp = { lte: formatTo };
else if (formatFrom && !formatTo) stamp = { gte: formatFrom };
else if (formatFrom && formatTo) stamp = { between: [formatFrom, formatTo] };
-
- return Object.assign(obj, { where: { 'v.stamp': stamp } });
+ return Object.assign(obj, {
+ where: {
+ 'v.stamp': stamp,
+ 'c.departmentFk': state.getUser().value.departmentFk,
+ },
+ });
});
function exprBuilder(param, value) {
switch (param) {
case 'clientFk':
return { [`c.id`]: value };
- case 'departmentFk':
- return { [`c.${param}`]: value };
}
}
@@ -66,9 +70,13 @@ const columns = computed(() => [
align: 'left',
name: 'departmentFk',
label: t('customer.summary.team'),
- component: 'select',
- attrs: {
- url: 'Departments',
+ columnFilter: {
+ component: 'select',
+ attrs: {
+ url: 'Departments',
+ },
+ alias: 'c',
+ inWhere: true,
},
columnField: {
component: null,
diff --git a/src/pages/Order/Card/OrderFilter.vue b/src/pages/Order/Card/OrderFilter.vue
index 609a1215a..5f91153ac 100644
--- a/src/pages/Order/Card/OrderFilter.vue
+++ b/src/pages/Order/Card/OrderFilter.vue
@@ -130,8 +130,10 @@ en:
myTeam: My Team
isConfirmed: Order Confirmed
showEmpty: Show Empty
+ departmentFk: Department
es:
params:
+ departmentFk: Departamento
search: Búsqueda
clientFk: Cliente
agencyModeFk: Agencia
diff --git a/src/pages/Route/Roadmap/RoadmapSummary.vue b/src/pages/Route/Roadmap/RoadmapSummary.vue
index 0c1c2b903..dcd02d98e 100644
--- a/src/pages/Route/Roadmap/RoadmapSummary.vue
+++ b/src/pages/Route/Roadmap/RoadmapSummary.vue
@@ -112,12 +112,9 @@ const filter = {
:label="t('Trailer Plate')"
:value="dashIfEmpty(entity?.trailerPlate)"
/>
-
+
-
- {{ dashIfEmpty(entity?.phone) }}
-
-
+
{
const resetChanges = async () => {
arrayData.fetch({ append: false });
- tableRef.value.reload();
+ tableRef.value.CrudModelRef.hasChanges = false;
+ await tableRef.value.reload();
+
selectedRows.value = [];
};
const changeQuantity = async (sale) => {
@@ -392,7 +394,7 @@ const changeTicketState = async (val) => {
const params = { ticketFk: route.params.id, code: val };
await axios.post('Tickets/state', params);
notify('globals.dataSaved', 'positive');
- await resetChanges();
+ resetChanges();
};
const removeSelectedSales = () => {
diff --git a/src/pages/Ticket/Card/TicketSaleMoreActions.vue b/src/pages/Ticket/Card/TicketSaleMoreActions.vue
index 773b0807f..37441b44f 100644
--- a/src/pages/Ticket/Card/TicketSaleMoreActions.vue
+++ b/src/pages/Ticket/Card/TicketSaleMoreActions.vue
@@ -55,13 +55,12 @@ const isClaimable = computed(() => {
if (ticket.value) {
const landedPlusWeek = new Date(ticket.value.landed);
landedPlusWeek.setDate(landedPlusWeek.getDate() + 7);
- const createAfterDeadline = acl.hasAny([
- { model: 'Claim', props: 'createAfterDeadline', accessType: 'WRITE' },
- ]);
+ const createAfterDeadline = acl.hasAcl('Claim', 'createAfterDeadline', 'WRITE');
return landedPlusWeek >= Date.vnNew() || createAfterDeadline;
}
return false;
});
+
const sendSms = async (params) => {
await axios.post(`Tickets/${ticket.value.id}/sendSms`, params);
notify(t('SMS sent'), 'positive');
@@ -230,18 +229,6 @@ const createRefund = async (withWarehouse) => {
{{ t('Add claim') }}
-
-
- {{ t('Mark as reserved') }}
-
-
{{ t('Refund') }}
@@ -287,8 +274,6 @@ es:
Recalculate price: Recalcular precio
Update discount: Actualizar descuento
Add claim: Crear reclamación
- Mark as reserved: Marcar como reservado
- Unmark as reserved: Desmarcar como reservado
Refund: Abono
with warehouse: con almacén
without warehouse: sin almacén
diff --git a/src/pages/Ticket/TicketFilter.vue b/src/pages/Ticket/TicketFilter.vue
index b763ef970..d84d1c082 100644
--- a/src/pages/Ticket/TicketFilter.vue
+++ b/src/pages/Ticket/TicketFilter.vue
@@ -22,16 +22,6 @@ const states = ref([]);
const agencies = ref([]);
const warehouses = ref([]);
const groupedStates = ref([]);
-
-const getGroupedStates = (data) => {
- for (const state of data) {
- groupedStates.value.push({
- id: state.id,
- name: t(`${state.code}`),
- code: state.code,
- });
- }
-};
@@ -39,12 +29,11 @@ const getGroupedStates = (data) => {
(states = data)" auto-load />
{
- getGroupedStates(data);
- }
- "
auto-load
+ @on-fetch="
+ (data) =>
+ (groupedStates = data.map((x) => Object.assign(x, { code: t(x.code) })))
+ "
/>
{
diff --git a/src/pages/Travel/Card/TravelCard.vue b/src/pages/Travel/Card/TravelCard.vue
index 479b47fb9..d452f5287 100644
--- a/src/pages/Travel/Card/TravelCard.vue
+++ b/src/pages/Travel/Card/TravelCard.vue
@@ -8,6 +8,6 @@ import filter from './TravelFilter.js';
data-key="Travel"
url="Travels"
:descriptor="TravelDescriptor"
- :filter="filter"
+ :filter="{ ...filter, where: { id: $route.params.id } }"
/>
diff --git a/src/pages/Travel/Card/TravelDescriptorMenuItems.vue b/src/pages/Travel/Card/TravelDescriptorMenuItems.vue
index 14d824b86..f8828bffe 100644
--- a/src/pages/Travel/Card/TravelDescriptorMenuItems.vue
+++ b/src/pages/Travel/Card/TravelDescriptorMenuItems.vue
@@ -37,7 +37,7 @@ const cloneTravelWithEntries = async () => {
router.push({ name: 'TravelBasicData', params: { id: data.id } });
};
-const canDelete = computed(() => useAcl().hasAny('Travel', '*', 'WRITE'));
+const canDelete = computed(() => useAcl().hasAcl('Travel', '*', 'WRITE'));
const openDeleteEntryDialog = (id) => {
quasar
diff --git a/src/pages/Travel/Card/TravelSummary.vue b/src/pages/Travel/Card/TravelSummary.vue
index dc3f6f8c0..22e2cff86 100644
--- a/src/pages/Travel/Card/TravelSummary.vue
+++ b/src/pages/Travel/Card/TravelSummary.vue
@@ -410,18 +410,18 @@ onMounted(async () => {
-
-
+ (warehouses = data)"
+ auto-load
+ />
+
- acl.hasAny([{ model: 'Worker', props: '__get__business', accessType: 'READ' }]),
-);
+const canSeeNotes = computed(() => acl.hasAcl('Worker', '__get__business', 'READ'));
const workerIsFreelance = ref();
const WorkerFreelanceRef = ref();
const workerCalendarFilterRef = ref(null);
diff --git a/src/pages/Worker/Card/WorkerDescriptor.vue b/src/pages/Worker/Card/WorkerDescriptor.vue
index 060520e84..0f09c0a97 100644
--- a/src/pages/Worker/Card/WorkerDescriptor.vue
+++ b/src/pages/Worker/Card/WorkerDescriptor.vue
@@ -128,15 +128,13 @@ const handlePhotoUpdated = (evt = false) => {
-
-
- {{ t('globals.phone') }}
+
+
-
-
- {{ t('worker.summary.sipExtension') }}
+
+
diff --git a/src/pages/Worker/Card/WorkerLocker.vue b/src/pages/Worker/Card/WorkerLocker.vue
index 015bced35..62891070d 100644
--- a/src/pages/Worker/Card/WorkerLocker.vue
+++ b/src/pages/Worker/Card/WorkerLocker.vue
@@ -9,7 +9,7 @@ import VnSelect from 'src/components/common/VnSelect.vue';
import { useArrayData } from 'src/composables/useArrayData';
import FetchData from 'components/FetchData.vue';
-const { hasAny } = useAcl();
+const { hasAcl } = useAcl();
const { t } = useI18n();
const fetchData = ref();
const originaLockerId = ref();
@@ -58,11 +58,7 @@ const init = async (data) => {
option-label="code"
option-value="id"
hide-selected
- :readonly="
- !hasAny([
- { model: 'Worker', props: '__get__locker', accessType: 'READ' },
- ])
- "
+ :readonly="!hasAcl('Worker', '__get__locker', 'READ')"
/>
diff --git a/src/pages/Worker/Card/WorkerSummary.vue b/src/pages/Worker/Card/WorkerSummary.vue
index 40787613c..26c84fe09 100644
--- a/src/pages/Worker/Card/WorkerSummary.vue
+++ b/src/pages/Worker/Card/WorkerSummary.vue
@@ -73,21 +73,18 @@ onBeforeMount(async () => {
/>
-
-
- {{ t('worker.summary.phoneExtension') }}
+
+
-
-
- {{ t('worker.summary.entPhone') }}
+
+
-
-
- {{ t('worker.summary.personalPhone') }}
+
+
@@ -147,9 +144,8 @@ onBeforeMount(async () => {
-
-
- {{ t('worker.summary.sipExtension') }}
+
+
diff --git a/src/pages/Worker/Card/WorkerTimeControl.vue b/src/pages/Worker/Card/WorkerTimeControl.vue
index 9c0fa6758..b64166c7d 100644
--- a/src/pages/Worker/Card/WorkerTimeControl.vue
+++ b/src/pages/Worker/Card/WorkerTimeControl.vue
@@ -68,13 +68,9 @@ const arrayData = useArrayData('Worker');
const acl = useAcl();
const selectedDateYear = computed(() => moment(selectedDate.value).isoWeekYear());
const worker = computed(() => arrayData.store?.data);
-const canSend = computed(() =>
- acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }]),
-);
+const canSend = computed(() => acl.hasAcl('WorkerTimeControl', 'sendMail', 'WRITE'));
const canUpdate = computed(() =>
- acl.hasAny([
- { model: 'WorkerTimeControl', props: 'updateMailState', accessType: 'WRITE' },
- ]),
+ acl.hasAcl('WorkerTimeControl', 'updateMailState', 'WRITE'),
);
const isHimself = computed(() => user.value.id === Number(route.params.id));
diff --git a/src/pages/Worker/WorkerFilter.vue b/src/pages/Worker/WorkerFilter.vue
index 44dfd32b4..c40afe57e 100644
--- a/src/pages/Worker/WorkerFilter.vue
+++ b/src/pages/Worker/WorkerFilter.vue
@@ -102,8 +102,11 @@ en:
lastName: Last name
userName: User
extension: Extension
+ departmentFk: Department
es:
+
params:
+ departmentFk: Departamento
search: Contiene
firstName: Nombre
lastName: Apellidos
diff --git a/test/cypress/integration/account/accountDescriptorMenu.spec.js b/test/cypress/integration/account/accountDescriptorMenu.spec.js
index 67a7d8ef6..04fc57040 100644
--- a/test/cypress/integration/account/accountDescriptorMenu.spec.js
+++ b/test/cypress/integration/account/accountDescriptorMenu.spec.js
@@ -1,4 +1,4 @@
-describe('ClaimNotes', () => {
+describe('Account descriptor', () => {
const descriptorOptions = '[data-cy="descriptor-more-opts-menu"] > .q-list';
const url = '/#/account/1/summary';
@@ -7,6 +7,9 @@ describe('ClaimNotes', () => {
cy.visit(url);
cy.dataCy('descriptor-more-opts').click();
cy.get(descriptorOptions)
+ .should('exist')
+ .should('be.visible')
+
.find('.q-item')
.its('length')
.then((count) => {
diff --git a/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js b/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js
index 7058e154c..fdaa01876 100644
--- a/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js
+++ b/test/cypress/integration/invoiceIn/invoiceInDescriptor.spec.js
@@ -13,7 +13,7 @@ describe('InvoiceInDescriptor', () => {
cy.validateCheckbox(checkbox, false);
});
- it('should delete the invoice properly', () => {
+ it.skip('should delete the invoice properly', () => {
cy.visit('/#/invoice-in/2/summary');
cy.selectDescriptorOption(2);
cy.clickConfirm();
diff --git a/test/cypress/integration/order/orderList.spec.js b/test/cypress/integration/order/orderList.spec.js
index 34cd2bffc..ee011ea05 100644
--- a/test/cypress/integration/order/orderList.spec.js
+++ b/test/cypress/integration/order/orderList.spec.js
@@ -30,9 +30,11 @@ describe('OrderList', () => {
cy.url().should('include', `/order`);
});
- it.skip('filter list and create order', () => {
+ it('filter list and create order', () => {
cy.dataCy('Customer ID_input').type('1101{enter}');
+ cy.intercept('GET', /\/api\/Clients/).as('clientFilter');
cy.dataCy('vnTableCreateBtn').click();
+ cy.wait('@clientFilter');
cy.dataCy('landedDate').find('input').type('06/01/2001');
cy.selectOption(agencyCreateSelect, 1);
diff --git a/test/cypress/integration/vnComponent/VnAccountNumber.spec.js b/test/cypress/integration/vnComponent/VnAccountNumber.spec.js
deleted file mode 100644
index 053902f35..000000000
--- a/test/cypress/integration/vnComponent/VnAccountNumber.spec.js
+++ /dev/null
@@ -1,37 +0,0 @@
-describe('VnAccountNumber', () => {
- const accountInput = 'input[data-cy="supplierFiscalDataAccount_input"]';
- beforeEach(() => {
- cy.login('developer');
- cy.viewport(1920, 1080);
- cy.visit('/#/supplier/1/fiscal-data');
- });
-
- describe('VnInput handleInsertMode()', () => {
- it('should replace character at cursor position in insert mode', () => {
- cy.get(accountInput).type('{selectall}4100000001');
- cy.get(accountInput).type('{movetostart}');
- cy.get(accountInput).type('999');
- cy.get(accountInput).should('have.value', '9990000001');
- });
-
- it('should replace character at cursor position in insert mode', () => {
- cy.get(accountInput).clear();
- cy.get(accountInput).type('4100000001');
- cy.get(accountInput).type('{movetostart}');
- cy.get(accountInput).type('999');
- cy.get(accountInput).should('have.value', '9990000001');
- });
-
- it('should respect maxlength prop', () => {
- cy.get(accountInput).clear();
- cy.get(accountInput).type('123456789012345');
- cy.get(accountInput).should('have.value', '1234567890');
- });
- });
-
- it('should convert short account number to standard format', () => {
- cy.get(accountInput).clear();
- cy.get(accountInput).type('123.');
- cy.get(accountInput).should('have.value', '1230000000');
- });
-});
diff --git a/test/cypress/integration/vnComponent/VnShortcut.spec.js b/test/cypress/integration/vnComponent/VnShortcut.spec.js
index e08c44635..fa05e2e3d 100644
--- a/test/cypress/integration/vnComponent/VnShortcut.spec.js
+++ b/test/cypress/integration/vnComponent/VnShortcut.spec.js
@@ -27,12 +27,15 @@ describe('VnShortcuts', () => {
code: `Key${shortcut.toUpperCase()}`,
});
+ cy.waitSpinner();
cy.url().should('include', module);
if (['monitor', 'claim'].includes(module)) {
return;
}
cy.waitForElement('.q-page').should('exist');
cy.dataCy('vnTableCreateBtn').should('exist');
+ cy.waitSpinner();
+
cy.get('.q-page').trigger('keydown', {
ctrlKey: true,
altKey: true,