diff --git a/src/components/CreateNewCityForm.vue b/src/components/CreateNewCityForm.vue
index 1cbba42fcb..bf38305229 100644
--- a/src/components/CreateNewCityForm.vue
+++ b/src/components/CreateNewCityForm.vue
@@ -40,6 +40,7 @@ const onDataSaved = (...args) => {
url-create="towns"
model="city"
@on-data-saved="onDataSaved"
+ data-cy="newCityForm"
>
@@ -48,12 +49,14 @@ const onDataSaved = (...args) => {
v-model="data.name"
:rules="validate('city.name')"
required
+ data-cy="cityName"
/>
diff --git a/src/components/CreateNewPostcodeForm.vue b/src/components/CreateNewPostcodeForm.vue
index 232f86a499..d3d6708f0b 100644
--- a/src/components/CreateNewPostcodeForm.vue
+++ b/src/components/CreateNewPostcodeForm.vue
@@ -1,5 +1,5 @@
@@ -105,6 +133,15 @@ const whereTowns = computed(() => {
auto-load
url="Provinces/location"
/>
+
{
:rules="validate('postcode.code')"
clearable
required
+ data-cy="locationPostcode"
/>
setTown(value, data)"
+ @filter="filterTowns"
:tooltip="t('Create city')"
v-model="data.townFk"
+ :options="townsOptions"
option-label="name"
option-value="id"
:rules="validate('postcode.city')"
:acls="[{ model: 'Town', props: '*', accessType: 'WRITE' }]"
:emit-value="false"
- :clearable="true"
required
+ data-cy="locationTown"
>
@@ -172,7 +206,6 @@ const whereTowns = computed(() => {
:province-selected="data.provinceFk"
@update:model-value="(value) => setProvince(value, data)"
v-model="data.provinceFk"
- @on-province-fetched="handleProvinces"
@on-province-created="onProvinceCreated"
required
/>
@@ -191,6 +224,7 @@ const whereTowns = computed(() => {
v-model="data.countryFk"
:rules="validate('postcode.countryFk')"
@update:model-value="(value) => setCountry(value, data)"
+ data-cy="locationCountry"
/>
diff --git a/src/components/CreateNewProvinceForm.vue b/src/components/CreateNewProvinceForm.vue
index 887ca957cf..d35690eebb 100644
--- a/src/components/CreateNewProvinceForm.vue
+++ b/src/components/CreateNewProvinceForm.vue
@@ -53,8 +53,10 @@ const where = computed(() => {
v-model="data.name"
:rules="validate('province.name')"
required
+ data-cy="provinceName"
/>
{
:input-debounce="300"
:class="{ required: isRequired }"
v-bind="$attrs"
- clearable
:emit-value="false"
:tooltip="t('Create new location')"
:rules="mixinRules"
diff --git a/src/components/common/VnSelectDialog.vue b/src/components/common/VnSelectDialog.vue
index 350aa92723..12322c3fa4 100644
--- a/src/components/common/VnSelectDialog.vue
+++ b/src/components/common/VnSelectDialog.vue
@@ -43,6 +43,7 @@ const isAllowedToCreate = computed(() => {
>
{
province
);
cy.get(
- `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) > .q-icon`
+ `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) `
).click();
- cy.get(
- `#q-portal--dialog--5 > .q-dialog > ${createForm.prefix} > .vn-row > .q-select > ${createForm.sufix} > :nth-child(1) input`
- ).should('have.value', province);
+ cy.dataCy('locationProvince').should('have.value', province);
});
});
describe('Worker Create', () => {
@@ -123,32 +121,16 @@ describe('VnLocation', () => {
const province = randomString({ length: 4 });
cy.get(createLocationButton).click();
cy.get(dialogInputs).eq(0).type(postCode);
- cy.get(
- `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(2) > .q-icon`
- ).click();
- cy.selectOption('#q-portal--dialog--3 .q-select', 'one');
- cy.get('#q-portal--dialog--3 .q-input').type(province);
- cy.get('#q-portal--dialog--3 .q-btn--standard').click();
- cy.get('#q-portal--dialog--1 .q-btn--standard').click();
+ cy.dataCy('City_icon').click();
+ cy.selectOption('[data-cy="locationProvince"]:last', 'Province one');
+ cy.dataCy('cityName').type(province);
+ cy.dataCy('FormModelPopup_save').eq(1).click();
+ cy.dataCy('FormModelPopup_save').eq(0).click();
+
cy.waitForElement('.q-form');
checkVnLocation(postCode, province);
});
- it('Create province without country', () => {
- const provinceName = 'Saskatchew'.concat(Math.random(1 * 100));
- cy.get(createLocationButton).click();
- cy.get(
- `${createForm.prefix} > :nth-child(5) > .q-select > ${createForm.sufix} > :nth-child(2) `
- )
- .eq(0)
- .click();
- cy.selectOption('#q-portal--dialog--3 .q-select', 'one');
- cy.countSelectOptions('#q-portal--dialog--3 .q-select', 4);
- cy.get('#q-portal--dialog--3 .q-input').type(provinceName);
-
- cy.get('#q-portal--dialog--3 .q-btn--standard').click();
- });
-
it('Create city with country', () => {
const cityName = 'Saskatchew'.concat(Math.random(1 * 100));
cy.get(createLocationButton).click();
@@ -156,14 +138,23 @@ describe('VnLocation', () => {
`${createForm.prefix} > :nth-child(5) > :nth-child(3) `,
'Italia'
);
- cy.get(
- `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(2) > .q-icon`
- ).click();
- cy.selectOption('#q-portal--dialog--4 .q-select', 'Province four');
- cy.countSelectOptions('#q-portal--dialog--4 .q-select', 1);
+ cy.dataCy('City_icon').click();
+ cy.selectOption('[data-cy="locationProvince"]:last', 'Province four');
+ cy.countSelectOptions('[data-cy="locationProvince"]:last', 1);
- cy.get('#q-portal--dialog--4 .q-input').type(cityName);
- cy.get('#q-portal--dialog--4 .q-btn--standard').click();
+ cy.dataCy('cityName').type(cityName);
+ cy.dataCy('FormModelPopup_save').eq(1).click();
+ });
+
+ it('Create province without country', () => {
+ const provinceName = 'Saskatchew'.concat(Math.random(1 * 100));
+ cy.get(createLocationButton).click();
+ cy.dataCy('Province_icon').click();
+ cy.selectOption('[data-cy="autonomyProvince"] ', 'Autonomy one');
+ cy.countSelectOptions('[data-cy="autonomyProvince"]', 4);
+ cy.dataCy('provinceName').type(provinceName);
+
+ cy.dataCy('FormModelPopup_save').eq(1).click();
});
it('Create province with country', () => {
@@ -173,17 +164,13 @@ describe('VnLocation', () => {
`${createForm.prefix} > :nth-child(5) > :nth-child(3) `,
'EspaƱa'
);
- cy.get(
- `${createForm.prefix} > :nth-child(5) > .q-select > ${createForm.sufix} > :nth-child(2) `
- )
- .eq(0)
- .click();
+ cy.dataCy('Province_icon').click();
- cy.selectOption('#q-portal--dialog--4 .q-select', 'one');
- cy.countSelectOptions('#q-portal--dialog--4 .q-select', 2);
+ cy.selectOption('[data-cy="autonomyProvince"] ', 'Autonomy one');
+ cy.countSelectOptions('[data-cy="autonomyProvince"]', 2);
- cy.get('#q-portal--dialog--4 .q-input').type(provinceName);
- cy.get('#q-portal--dialog--4 .q-btn--standard').click();
+ cy.dataCy('provinceName').type(provinceName);
+ cy.dataCy('FormModelPopup_save').eq(1).click();
});
function checkVnLocation(postCode, province) {