0
0
Fork 0

Merge pull request 'Fix[ItemType]: Fixed list and e2e' (!1303) from Fix-ItemTypeE2E into dev

Reviewed-on: verdnatura/salix-front#1303
Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
This commit is contained in:
Jon Elias 2025-01-31 09:34:54 +00:00
commit 0fcd969c97
4 changed files with 45 additions and 26 deletions

View File

@ -53,6 +53,7 @@ const url = computed(() => {
:fields="['id', 'name', 'nickname', 'code']" :fields="['id', 'name', 'nickname', 'code']"
:filter-options="['id', 'name', 'nickname', 'code']" :filter-options="['id', 'name', 'nickname', 'code']"
sort-by="nickname ASC" sort-by="nickname ASC"
data-cy="vnWorkerSelect"
> >
<template #prepend v-if="$props.hasAvatar"> <template #prepend v-if="$props.hasAvatar">
<VnAvatar :worker-id="value" color="primary" v-bind="$attrs" /> <VnAvatar :worker-id="value" color="primary" v-bind="$attrs" />

View File

@ -5,6 +5,9 @@ import VnTable from 'components/VnTable/VnTable.vue';
import FetchData from 'components/FetchData.vue'; import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue'; import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue';
import VnSection from 'src/components/common/VnSection.vue'; import VnSection from 'src/components/common/VnSection.vue';
import VnInput from 'src/components/common/VnInput.vue';
import VnSelectWorker from 'src/components/common/VnSelectWorker.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
const { t } = useI18n(); const { t } = useI18n();
const tableRef = ref(); const tableRef = ref();
@ -60,20 +63,17 @@ const columns = computed(() => [
label: t('code'), label: t('code'),
isTitle: true, isTitle: true,
cardVisible: true, cardVisible: true,
create: true,
}, },
{ {
align: 'left', align: 'left',
name: 'name', name: 'name',
label: t('globals.name'), label: t('globals.name'),
cardVisible: true, cardVisible: true,
create: true,
}, },
{ {
align: 'left', align: 'left',
label: t('worker'), label: t('worker'),
name: 'workerFk', name: 'workerFk',
create: true,
component: 'select', component: 'select',
attrs: { attrs: {
url: 'Workers/search', url: 'Workers/search',
@ -100,7 +100,6 @@ const columns = computed(() => [
align: 'left', align: 'left',
name: 'categoryFk', name: 'categoryFk',
label: t('ItemCategory'), label: t('ItemCategory'),
create: true,
component: 'select', component: 'select',
attrs: { attrs: {
options: itemCategoriesOptions.value, options: itemCategoriesOptions.value,
@ -112,7 +111,6 @@ const columns = computed(() => [
align: 'left', align: 'left',
name: 'Temperature', name: 'Temperature',
label: t('Temperature'), label: t('Temperature'),
create: true,
component: 'select', component: 'select',
attrs: { attrs: {
options: temperatureOptions.value, options: temperatureOptions.value,
@ -180,6 +178,29 @@ const columns = computed(() => [
<WorkerDescriptorProxy :id="row.workerFk" /> <WorkerDescriptorProxy :id="row.workerFk" />
</span> </span>
</template> </template>
<template #more-create-dialog="{ data }">
<VnInput v-model="data.code" :label="t('code')" data-cy="codeInput" />
<VnInput
v-model="data.name"
:label="t('globals.name')"
data-cy="nameInput"
/>
<VnSelectWorker v-model="data.workerFk" />
<VnSelect
:label="t('ItemCategory')"
v-model="data.categoryFk"
:options="itemCategoriesOptions"
hide-selected
data-cy="itemCategorySelect"
/>
<VnSelect
:label="t('Temperature')"
v-model="data.temperatureFk"
:options="temperatureOptions"
hide-selected
data-cy="temperatureSelect"
/>
</template>
</VnTable> </VnTable>
</template> </template>
</VnSection> </VnSection>

View File

@ -1,5 +1,5 @@
/// <reference types="cypress" /> /// <reference types="cypress" />
describe('Item shelving', () => { describe('ItemBarcodes', () => {
beforeEach(() => { beforeEach(() => {
cy.viewport(1920, 1080); cy.viewport(1920, 1080);
cy.login('developer'); cy.login('developer');

View File

@ -1,5 +1,10 @@
/// <reference types="cypress" /> /// <reference types="cypress" />
describe('Item type', () => { describe('Item type', () => {
const workerError = 'employeeNick';
const worker = 'buyerNick';
const category = 'Artificial';
const type = 'Flower';
beforeEach(() => { beforeEach(() => {
cy.viewport(1920, 1080); cy.viewport(1920, 1080);
cy.login('developer'); cy.login('developer');
@ -8,32 +13,24 @@ describe('Item type', () => {
it('should throw an error if the code already exists', () => { it('should throw an error if the code already exists', () => {
cy.dataCy('vnTableCreateBtn').click(); cy.dataCy('vnTableCreateBtn').click();
cy.get( cy.dataCy('codeInput').type('ALS');
'div.fit > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="Code_input"]' cy.dataCy('nameInput').type('Alstroemeria');
).type('ALS'); cy.dataCy('vnWorkerSelect').type(workerError);
cy.get( cy.get('.q-menu .q-item').contains(workerError).click();
'div.fit > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="Name_input"]' cy.dataCy('itemCategorySelect').type(category);
).type('Alstroemeria'); cy.get('.q-menu .q-item').contains(category).click();
cy.dataCy('Worker_select').type('employeeNick');
cy.get('.q-menu .q-item').contains('employeeNick').click();
cy.dataCy('ItemCategory_select').type('Artificial');
cy.get('.q-menu .q-item').contains('Artificial').click();
cy.dataCy('FormModelPopup_save').click(); cy.dataCy('FormModelPopup_save').click();
cy.checkNotification('An item type with the same code already exists'); cy.checkNotification('An item type with the same code already exists');
}); });
it('should create a new type', () => { it('should create a new type', () => {
cy.dataCy('vnTableCreateBtn').click(); cy.dataCy('vnTableCreateBtn').click();
cy.get( cy.dataCy('codeInput').type('LIL');
'div.fit > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="Code_input"]' cy.dataCy('nameInput').type('Lilium');
).type('LIL'); cy.dataCy('vnWorkerSelect').type(worker);
cy.get( cy.get('.q-menu .q-item').contains(worker).click();
'div.fit > .q-field > .q-field__inner > .q-field__control > .q-field__control-container > [data-cy="Name_input"]' cy.dataCy('itemCategorySelect').type(type);
).type('Lilium'); cy.get('.q-menu .q-item').contains(type).click();
cy.dataCy('Worker_select').type('buyerNick');
cy.get('.q-menu .q-item').contains('buyerNick').click();
cy.dataCy('ItemCategory_select').type('Flower');
cy.get('.q-menu .q-item').contains('Flower').click();
cy.dataCy('FormModelPopup_save').click(); cy.dataCy('FormModelPopup_save').click();
cy.checkNotification('Data created'); cy.checkNotification('Data created');
}); });