From 9117e813d6947dfab3efae251df3ff8892e742c9 Mon Sep 17 00:00:00 2001 From: Nicolas Borde Date: Tue, 25 Jun 2024 23:05:47 +0200 Subject: [PATCH 1/2] feat: [SDCOSMO-1274] add scenario name edit trad for scenario manager --- public/locales/en/translation.json | 3 ++- public/locales/fr/translation.json | 3 ++- src/views/ScenarioManager/labels.js | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 6d37a7e4b..18d977958 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -326,7 +326,8 @@ }, "action": { "delete": "Delete this scenario", - "redirect": "Open in scenario view" + "redirect": "Open in scenario view", + "edit": "Edit scenario name" }, "text": { "search": "Filter..." diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json index c7e0f3814..b15389fd5 100644 --- a/public/locales/fr/translation.json +++ b/public/locales/fr/translation.json @@ -326,7 +326,8 @@ }, "action": { "delete": "Supprimer ce scénario", - "redirect": "Ouvrir dans la vue scénario" + "redirect": "Ouvrir dans la vue scénario", + "edit": "Editer le nom du scenario" }, "text": { "search": "Filtrer..." diff --git a/src/views/ScenarioManager/labels.js b/src/views/ScenarioManager/labels.js index 35e824b2c..e00f7be62 100644 --- a/src/views/ScenarioManager/labels.js +++ b/src/views/ScenarioManager/labels.js @@ -10,7 +10,7 @@ export const getScenarioManagerLabels = (t) => ({ failed: t('commoncomponents.scenariomanager.treelist.node.status.failed'), created: t('commoncomponents.scenariomanager.treelist.node.status.created'), delete: t('commoncomponents.scenariomanager.treelist.node.action.delete'), - redirect: t('commoncomponents.scenariomanager.treelist.node.action.redirect'), + edit: t('commoncomponents.scenariomanager.treelist.node.action.edit'), scenarioRename: { title: t('commoncomponents.dialog.create.scenario.input.scenarioname.label'), errors: { From 3d0bb6216036555b5c287e0bf43fb98945867ba1 Mon Sep 17 00:00:00 2001 From: Nicolas Borde Date: Wed, 26 Jun 2024 00:37:41 +0200 Subject: [PATCH 2/2] test: [SDCOSMO-1274] update e2e tests relating scenario rename feature refacto --- .../actions/generic/ScenarioManager.js | 25 ++++++++++++------- .../commons/constants/generic/IdConstants.js | 4 ++- cypress/e2e/brewery/RenameScenario.cy.js | 13 +++++----- cypress/e2e/brewery/ScenarioManager.cy.js | 2 +- cypress/e2e/brewery/ScenarioSharing.cy.js | 14 +++++------ 5 files changed, 33 insertions(+), 25 deletions(-) diff --git a/cypress/commons/actions/generic/ScenarioManager.js b/cypress/commons/actions/generic/ScenarioManager.js index 224e09db3..3e1f89bf6 100644 --- a/cypress/commons/actions/generic/ScenarioManager.js +++ b/cypress/commons/actions/generic/ScenarioManager.js @@ -57,20 +57,26 @@ function getScenarioCreationDate(scenarioId) { return getScenarioAccordion(scenarioId).find(GENERIC_SELECTORS.scenario.creationDate); } -function getScenarioEditableLabel(scenarioId, timeout = 5) { - return getScenarioAccordion(scenarioId).find(GENERIC_SELECTORS.scenario.manager.editableLabel, { +function getRenameScenarioButton(scenarioId) { + return getScenarioAccordion(scenarioId).find(GENERIC_SELECTORS.scenario.manager.button.renameScenario); +} +function getScenarioEditableLink(scenarioId, timeout = 5) { + return getScenarioAccordion(scenarioId).find(GENERIC_SELECTORS.scenario.manager.editableLink, { timeout: timeout * 1000, }); } -function getScenarioEditableLabelInEditMode(scenarioId, timeout = 5) { - return getScenarioAccordion(scenarioId).find(GENERIC_SELECTORS.scenario.manager.editableLabelInEditMode, { +function getScenarioEditableLinkInEditMode(scenarioId, timeout = 5) { + return getScenarioAccordion(scenarioId).find(GENERIC_SELECTORS.scenario.manager.editableLinkInEditMode, { timeout: timeout * 1000, }); } function renameScenario(scenarioId, newScenarioName) { - return ScenarioManager.getScenarioEditableLabel(scenarioId) - .click() - .type('{selectAll}{backspace}' + newScenarioName + '{enter}'); + const renameScenarioAlias = api.interceptUpdateScenario(scenarioId); + + getRenameScenarioButton(scenarioId).click(); + getScenarioEditableLinkInEditMode(scenarioId).type('{selectAll}{backspace}' + newScenarioName + '{enter}'); + + api.waitAlias(renameScenarioAlias); } function getScenarioValidationStatusChip(scenarioId) { @@ -164,8 +170,9 @@ export const ScenarioManager = { getScenarioAccordion, getScenarioOwnerName, getScenarioCreationDate, - getScenarioEditableLabel, - getScenarioEditableLabelInEditMode, + getRenameScenarioButton, + getScenarioEditableLink, + getScenarioEditableLinkInEditMode, renameScenario, getScenarioValidationStatusChip, getScenarioValidationStatusLoadingSpinner, diff --git a/cypress/commons/constants/generic/IdConstants.js b/cypress/commons/constants/generic/IdConstants.js index e1e3cb573..517401dc9 100644 --- a/cypress/commons/constants/generic/IdConstants.js +++ b/cypress/commons/constants/generic/IdConstants.js @@ -120,14 +120,16 @@ export const GENERIC_SELECTORS = { search: '[data-cy=scenario-manager-search-field]', button: { delete: '[data-cy=scenario-delete-button]', + renameScenario: '[data-cy=rename-scenario-button]', }, scenarioAccordion: '[data-cy=scenario-accordion-$SCENARIOID]', scenarioAccordions: '[data-cy^=scenario-accordion-]', scenarioAccordionExpandButton: '[data-cy=expand-accordion-button]', scenarioRunTemplate: '[data-cy=scenario-run-template]', scenarioDataset: '[data-cy=scenario-datasets]', - editableLabel: '[data-cy=editable-label]', editableLabelInEditMode: '[data-cy=editable-label-in-edition-mode]', + editableLink: '[data-cy=editable-link]', + editableLinkInEditMode: '[data-cy=editable-link-in-edition-mode]', }, }, workspace: { diff --git a/cypress/e2e/brewery/RenameScenario.cy.js b/cypress/e2e/brewery/RenameScenario.cy.js index 851e5e10b..d2677b325 100644 --- a/cypress/e2e/brewery/RenameScenario.cy.js +++ b/cypress/e2e/brewery/RenameScenario.cy.js @@ -48,13 +48,12 @@ describe('Create scenario and rename it', () => { Scenarios.createScenario(scenarioName, true, SCENARIO_DATASET, SCENARIO_RUN_TEMPLATE).then((data) => { const scenarioId = data.scenarioCreatedId; ScenarioManager.switchToScenarioManager(); - ScenarioManager.getScenarioEditableLabel(scenarioId) - .click() + ScenarioManager.getRenameScenarioButton(scenarioId).click(); + ScenarioManager.getScenarioEditableLink(scenarioId, 15) .type('{selectAll}{backspace}' + newScenarioName + '{esc}') // Do not confirm new name .should('have.text', scenarioName); - ScenarioManager.renameScenario(scenarioId, newScenarioName); - ScenarioManager.getScenarioEditableLabel(scenarioId, 15).should('have.text', newScenarioName); + ScenarioManager.getScenarioEditableLink(scenarioId, 15).should('have.text', newScenarioName); Scenarios.switchToScenarioView(); ScenarioSelector.selectScenario(anotherScenario, anotherScenarioId); ScenarioSelector.selectScenario(newScenarioName, scenarioId); @@ -65,7 +64,7 @@ describe('Create scenario and rename it', () => { ScenarioManager.switchToScenarioManager(); ScenarioManager.getScenarioAccordion(scenarioId).click(); ScenarioManager.renameScenario(scenarioId, newScenarioName); - ScenarioManager.getScenarioEditableLabel(scenarioId, 15).should('have.text', newScenarioName); + ScenarioManager.getScenarioEditableLink(scenarioId, 15).should('have.text', newScenarioName); ScenarioManager.getScenarioViewRedirect(scenarioId).click(); ScenarioSelector.selectScenario(anotherScenario, anotherScenarioId); ScenarioSelector.selectScenario(newScenarioName, scenarioId); @@ -89,9 +88,9 @@ describe('Create scenario and rename it', () => { ScenarioManager.switchToScenarioManager(); ScenarioManager.renameScenario(scenarioID1, scenarioName1B); - ScenarioManager.getScenarioEditableLabel(scenarioID1, 15).should('have.text', scenarioName1B); + ScenarioManager.getScenarioEditableLink(scenarioID1, 15).should('have.text', scenarioName1B); ScenarioManager.renameScenario(scenarioID2, scenarioName1A); - ScenarioManager.getScenarioEditableLabel(scenarioID2, 15).should('have.text', scenarioName1A); + ScenarioManager.getScenarioEditableLink(scenarioID2, 15).should('have.text', scenarioName1A); ScenarioManager.getScenarioViewRedirect(scenarioID2).click(); ScenarioSelector.selectScenario(anotherScenario, anotherScenarioId); diff --git a/cypress/e2e/brewery/ScenarioManager.cy.js b/cypress/e2e/brewery/ScenarioManager.cy.js index b79308978..1093d1c06 100644 --- a/cypress/e2e/brewery/ScenarioManager.cy.js +++ b/cypress/e2e/brewery/ScenarioManager.cy.js @@ -55,7 +55,7 @@ describe('Create scenario and check its data in scenario manager', () => { ScenarioManager.getScenarioAccordion(scenarioId).click(); ScenarioManager.getScenarioOwnerName(scenarioId).should('have.text', scenarioOwnerName); ScenarioManager.getScenarioCreationDate(scenarioId).should('have.text', _formatDate(scenarioCreationDate)); - ScenarioManager.getScenarioEditableLabel(scenarioId).should('have.text', scenarioName); + ScenarioManager.getScenarioEditableLink(scenarioId).should('have.text', scenarioName); ScenarioManager.getScenarioRunStatus(scenarioId, SCENARIO_STATUS.CREATED); ScenarioManager.getScenarioRunTemplate(scenarioId).should('have.text', scenarioRunTemplate); ScenarioManager.getScenarioDataset(scenarioId).should('have.text', DATASET.BREWERY_ADT, { matchCase: false }); diff --git a/cypress/e2e/brewery/ScenarioSharing.cy.js b/cypress/e2e/brewery/ScenarioSharing.cy.js index 101397589..d5b055497 100644 --- a/cypress/e2e/brewery/ScenarioSharing.cy.js +++ b/cypress/e2e/brewery/ScenarioSharing.cy.js @@ -51,9 +51,9 @@ describe('Check workspace permissions for admin', () => { ScenarioManager.switchToScenarioManager(); ScenarioManager.getScenarioAccordion(PRIVATE_SCENARIOS_LIST[0].id); ScenarioManager.getDeleteScenarioButton().should('be.visible').should('not.be.disabled'); - ScenarioManager.getScenarioEditableLabelInEditMode(PRIVATE_SCENARIOS_LIST[0].id).should('not.exist'); - ScenarioManager.getScenarioEditableLabel(PRIVATE_SCENARIOS_LIST[0].id).click(); - ScenarioManager.getScenarioEditableLabelInEditMode(PRIVATE_SCENARIOS_LIST[0].id).should('exist'); + ScenarioManager.getScenarioEditableLink(PRIVATE_SCENARIOS_LIST[0].id).should('not.exist'); + ScenarioManager.getRenameScenarioButton(PRIVATE_SCENARIOS_LIST[0].id).should('exist').click(); + ScenarioManager.getScenarioEditableLinkInEditMode(PRIVATE_SCENARIOS_LIST[0].id).should('exist'); }); it('Is shown a message error when last admin is removed', () => { @@ -179,7 +179,7 @@ describe('Check workspace permissions for Viewer, Editor & Validator', () => { ScenarioManager.switchToScenarioManager(); ScenarioManager.getScenarioAccordion(scenario.id); ScenarioManager.getDeleteScenarioButton().should('not.exist'); - ScenarioManager.getScenarioEditableLabel(scenario.id).should('not.exist'); + ScenarioManager.getRenameScenarioButton(scenario.id).should('not.exist'); }); it('Check Editor permissions', () => { @@ -193,9 +193,9 @@ describe('Check workspace permissions for Viewer, Editor & Validator', () => { ScenarioManager.switchToScenarioManager(); ScenarioManager.getScenarioAccordion(scenario.id); ScenarioManager.getDeleteScenarioButton().should('not.exist'); - ScenarioManager.getScenarioEditableLabelInEditMode(scenario.id).should('not.exist'); - ScenarioManager.getScenarioEditableLabel(scenario.id).click(); - ScenarioManager.getScenarioEditableLabelInEditMode(scenario.id).should('exist'); + ScenarioManager.getScenarioEditableLinkInEditMode(scenario.id).should('not.exist'); + ScenarioManager.getRenameScenarioButton(scenario.id).click(); + ScenarioManager.getScenarioEditableLinkInEditMode(scenario.id).should('exist'); }); it('Check Validator permissions', () => {