Merge pull request 'feat: enhance item tags with data attributes for improved testing' (!1471) from hotFixItemTags into master
gitea/salix-front/pipeline/pr-test Build started... Details
gitea/salix-front/pipeline/head This commit looks good Details

Reviewed-on: #1471
Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
This commit is contained in:
Pablo Natek 2025-02-24 13:10:39 +00:00
commit 6954cd599a
2 changed files with 27 additions and 20 deletions

View File

@ -87,7 +87,7 @@ const insertTag = (rows) => {
tagFk: undefined, tagFk: undefined,
}" }"
:default-remove="false" :default-remove="false"
:filter="{ :user-filter="{
fields: ['id', 'itemFk', 'tagFk', 'value', 'priority'], fields: ['id', 'itemFk', 'tagFk', 'value', 'priority'],
where: { itemFk: route.params.id }, where: { itemFk: route.params.id },
include: { include: {
@ -119,6 +119,7 @@ const insertTag = (rows) => {
" "
:required="true" :required="true"
:rules="validate('itemTag.tagFk')" :rules="validate('itemTag.tagFk')"
:data-cy="`tag${row?.tag?.name}`"
/> />
<VnSelect <VnSelect
v-if="row.tag?.isFree === false" v-if="row.tag?.isFree === false"
@ -145,6 +146,7 @@ const insertTag = (rows) => {
:label="t('itemTags.value')" :label="t('itemTags.value')"
:is-clearable="false" :is-clearable="false"
@keyup.enter.stop="(data) => itemTagsRef.onSubmit(data)" @keyup.enter.stop="(data) => itemTagsRef.onSubmit(data)"
:data-cy="`tag${row?.tag?.name}Value`"
/> />
<VnInput <VnInput
:label="t('itemBasicData.relevancy')" :label="t('itemBasicData.relevancy')"
@ -162,6 +164,7 @@ const insertTag = (rows) => {
name="delete" name="delete"
size="sm" size="sm"
dense dense
:data-cy="`deleteTag${row?.tag?.name}`"
> >
<QTooltip> <QTooltip>
{{ t('itemTags.removeTag') }} {{ t('itemTags.removeTag') }}
@ -177,6 +180,7 @@ const insertTag = (rows) => {
icon="add" icon="add"
shortcut="+" shortcut="+"
fab fab
data-cy="createNewTag"
> >
<QTooltip> <QTooltip>
{{ t('itemTags.addTag') }} {{ t('itemTags.addTag') }}

View File

@ -1,33 +1,36 @@
/// <reference types="cypress" />
describe('Item tag', () => { describe('Item tag', () => {
beforeEach(() => { beforeEach(() => {
cy.viewport(1920, 1080); cy.viewport(1920, 1080);
cy.login('developer'); cy.login('developer');
cy.visit(`/#/item/1/tags`); cy.visit(`/#/item/1/tags`);
cy.get('.q-page').should('be.visible');
cy.waitForElement('[data-cy="itemTags"]');
}); });
const createNewTag = 'createNewTag';
const saveBtn = 'crudModelDefaultSaveBtn';
const newTag = 'tagundefined';
it('should throw an error adding an existent tag', () => { it('should throw an error adding an existent tag', () => {
cy.get('.q-page').should('be.visible'); cy.dataCy(createNewTag).click();
cy.get('.q-page-sticky > div').click(); cy.dataCy(newTag).should('be.visible').click().type('Genero{enter}');
cy.get('.q-page-sticky > div').click(); cy.dataCy('tagGeneroValue').eq(1).should('be.visible');
cy.dataCy('Tag_select').eq(7).type('Tallos'); cy.dataCy(saveBtn).click();
cy.get('.q-menu .q-item').contains('Tallos').click(); cy.get('.q-notification__message').should(
cy.get(':nth-child(8) > [label="Value"]').type('1'); 'have.text',
+cy.dataCy('crudModelDefaultSaveBtn').click(); "The tag or priority can't be repeated for an item",
cy.checkNotification("The tag or priority can't be repeated for an item"); );
}); });
it('should add a new tag', () => { it('should add a new tag', () => {
cy.get('.q-page').should('be.visible'); cy.dataCy(createNewTag).click();
cy.get('.q-page-sticky > div').click(); cy.dataCy(newTag).should('be.visible').click().type('Forma{enter}');
cy.get('.q-page-sticky > div').click(); cy.dataCy('tagFormaValue').should('be.visible').type('50');
cy.dataCy('Tag_select').eq(7).click(); cy.dataCy(saveBtn).click();
cy.get('.q-menu .q-item').contains('Ancho de la base').type('{enter}');
cy.get(':nth-child(8) > [label="Value"]').type('50');
cy.dataCy('crudModelDefaultSaveBtn').click();
cy.checkNotification('Data saved'); cy.checkNotification('Data saved');
cy.dataCy('itemTags').children(':nth-child(8)').find('.justify-center > .q-icon').click(); cy.dataCy('deleteTagForma').should('be.visible').click();
cy.dataCy('VnConfirm_confirm').click(); cy.dataCy('VnConfirm_confirm').should('be.visible').click();
cy.checkNotification('Data saved'); cy.checkNotification('Data saved');
}); });
}); });