diff --git a/frontend/cypress/e2e/import/constants/fieldsContent.js b/frontend/cypress/e2e/import/constants/fieldsContent.js index f37b212512..e6ff931b1b 100644 --- a/frontend/cypress/e2e/import/constants/fieldsContent.js +++ b/frontend/cypress/e2e/import/constants/fieldsContent.js @@ -1,9 +1,4 @@ export const FIELDS_CONTENT_STEP_UPLOAD = { - datasetField: { - defaultValue: 'JDD-TEST-IMPORT-ADMIN', - newValue: 'JDD-TEST-IMPORT-2', - selector: 'ng-select', - }, fileUploadField: { defaultValue: 'import/synthese/valid_file_test_link_list_import_synthese.csv', newValue: 'import/synthese/valid_file_import_synthese_test_changed.csv', diff --git a/frontend/cypress/e2e/import/constants/selectors.js b/frontend/cypress/e2e/import/constants/selectors.js index f58a23a071..0839c916f6 100644 --- a/frontend/cypress/e2e/import/constants/selectors.js +++ b/frontend/cypress/e2e/import/constants/selectors.js @@ -48,15 +48,19 @@ export const getSelectorsForStep = (stepName) => { export const SELECTOR_IMPORT_MODAL_DELETE = '[data-qa=import-modal-delete]'; export const SELECTOR_IMPORT_MODAL_DELETE_VALIDATE = '[data-qa=modal-delete-validate]'; + export const SELECTOR_IMPORT_MODAL_DESTINATION_START = '[data-qa=import-modal-destination-start]'; export const SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN = '[data-qa=import-fieldmapping-theme-date_min]'; export const SELECTOR_IMPORT_FIELDMAPPING_OBSERVERS = '[data-qa=import-fieldmapping-theme-observers]'; export const SELECTOR_IMPORT_FIELDMAPPING_NOM_CITE = '[data-qa=import-fieldmapping-theme-nom_cite]'; export const SELECTOR_IMPORT_FIELDMAPPING_WKT = '[data-qa=import-fieldmapping-theme-WKT]'; +export const SELECTOR_IMPORT_FIELDMAPPING_CD_HAB = '[data-qa=import-fieldmapping-theme-cd_hab]'; export const SELECTOR_IMPORT_FIELDMAPPING_CD_NOM = '[data-qa=import-fieldmapping-theme-cd_nom]'; export const SELECTOR_IMPORT_FIELDMAPPING_DATASET = '[data-qa=import-fieldmapping-theme-unique_dataset_id]'; +export const SELECTOR_IMPORT_FIELDMAPPING_DEFAULT_DATASET = + '[data-qa=import-fieldmapping-theme-default-unique_dataset_id] ng-select'; export const SELECTOR_IMPORT_FIELDMAPPING_VALIDATE = '[data-qa=import-new-fieldmapping-model-validate]'; export const SELECTOR_IMPORT_FIELDMAPPING_BUTTON_DELETE = @@ -72,6 +76,8 @@ export const SELECTOR_IMPORT_FIELDMAPPING_SELECTION_RENAME_OK = export const SELECTOR_IMPORT_FIELDMAPPING_SELECTION_RENAME_TEXT = '[data-qa=import-fieldmapping-selection-rename-text]'; export const SELECTOR_IMPORT_FIELDMAPPING_MODAL = '[data-qa=import-fieldmapping-saving-modal]'; +export const SELECTOR_IMPORT_FIELDMAPPING_MODAL_CANCEL = + '[data-qa=import-fieldmapping-saving-modal-cancel]'; export const SELECTOR_IMPORT_FIELDMAPPING_MODAL_CLOSE = '[data-qa=import-fieldmapping-saving-modal-close]'; export const SELECTOR_IMPORT_FIELDMAPPING_MODAL_OK = diff --git a/frontend/cypress/e2e/import/navigation-check-back-each-steps-spec.js b/frontend/cypress/e2e/import/navigation-check-back-each-steps-spec.js index baaae9cb85..581fd22a77 100644 --- a/frontend/cypress/e2e/import/navigation-check-back-each-steps-spec.js +++ b/frontend/cypress/e2e/import/navigation-check-back-each-steps-spec.js @@ -102,13 +102,6 @@ describe('Import Process Navigation', () => { cy.get(SELECTOR_NAVIGATION_STEP_DECODE_FILE.back_btn_selector) .should('be.visible') .click(); - // Verify the selected value in the ng-select input - cy.get(FIELDS_CONTENT_STEP_UPLOAD.datasetField.selector).within(() => { - cy.get('.ng-value').should( - 'contain.text', - FIELDS_CONTENT_STEP_UPLOAD.datasetField.defaultValue - ); - }); cy.get(FIELDS_CONTENT_STEP_UPLOAD.fileUploadField.selector).then(($el) => { const expectedValue = $el .text() diff --git a/frontend/cypress/e2e/import/step3-field-mapping-spec.js b/frontend/cypress/e2e/import/step3-field-mapping-spec.js index ce557fa422..035e2acd8e 100644 --- a/frontend/cypress/e2e/import/step3-field-mapping-spec.js +++ b/frontend/cypress/e2e/import/step3-field-mapping-spec.js @@ -7,6 +7,7 @@ import { SELECTOR_IMPORT_FIELDMAPPING_BUTTON_DELETE, SELECTOR_IMPORT_FIELDMAPPING_BUTTON_DELETE_OK, SELECTOR_IMPORT_FIELDMAPPING_CD_NOM, + SELECTOR_IMPORT_FIELDMAPPING_DEFAULT_DATASET, SELECTOR_IMPORT_FIELDMAPPING_DATASET, SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN, SELECTOR_IMPORT_FIELDMAPPING_MODAL, @@ -67,18 +68,6 @@ function deleteCurrentMapping() { cy.wait(TIMEOUT_WAIT); } -function pickDataset(datasetName) { - cy.get(SELECTOR_IMPORT_FIELDMAPPING_DATASET) - .should('exist') - .click() - .get('ng-dropdown-panel') - .get('.ng-option') - .contains(datasetName) - .then((dataset) => { - cy.wrap(dataset).should('exist').click(); - }); -} - // //////////////////////////////////////////////////////////////////////////// // Create a mapping with dummy values // //////////////////////////////////////////////////////////////////////////// @@ -89,27 +78,14 @@ function fillTheFormRaw() { selectField(SELECTOR_IMPORT_FIELDMAPPING_NOM_CITE, 'date_debut'); selectField(SELECTOR_IMPORT_FIELDMAPPING_WKT, 'date_debut'); selectField(SELECTOR_IMPORT_FIELDMAPPING_CD_NOM, 'date_debut'); + selectField(SELECTOR_IMPORT_FIELDMAPPING_DATASET, 'date_debut'); } function fillTheForm() { // Fill in the form with mandatory field cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).should('exist'); - selectField(SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN, 'date_debut'); - cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).should('exist').should('not.be.enabled'); - - selectField(SELECTOR_IMPORT_FIELDMAPPING_OBSERVERS, 'date_debut'); - cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).should('exist').should('not.be.enabled'); - selectField; - selectField(SELECTOR_IMPORT_FIELDMAPPING_NOM_CITE, 'date_debut'); - cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).should('exist').should('not.be.enabled'); - - selectField(SELECTOR_IMPORT_FIELDMAPPING_WKT, 'date_debut'); - cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).should('exist').should('not.be.enabled'); - - selectField(SELECTOR_IMPORT_FIELDMAPPING_CD_NOM, 'date_debut'); - - pickDataset(user.dataset); + fillTheFormRaw(); // Every mandatory field is filled: should be able to validate cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).should('exist').should('be.enabled').click(); @@ -128,7 +104,7 @@ function fillTheForm() { cy.wait(TIMEOUT_WAIT); } -function runTheProcess(user) { +function runTheProcess() { cy.visitImport(); cy.startImport(); cy.pickDestination(); @@ -136,11 +112,11 @@ function runTheProcess(user) { cy.configureImportFile(); } -function restartTheProcess(user) { +function restartTheProcess() { cy.wait(TIMEOUT_WAIT); cy.deleteCurrentImport(); cy.wait(TIMEOUT_WAIT); - runTheProcess(user); + runTheProcess(); } function checkThatMappingCanBeSaved() { @@ -183,16 +159,17 @@ describe('Import - Field mapping step', () => { beforeEach(() => { cy.viewport(VIEWPORT.width, VIEWPORT.height); cy.geonatureLogin(USER_ADMIN.login.username, USER_ADMIN.login.password); - runTheProcess(USER_ADMIN); + runTheProcess(); cy.get('[data-qa="import-new-fieldmapping-form"]').should('exist'); }); it('Should access jdd only filtered based on permissions ', () => { - cy.get(`${SELECTOR_IMPORT_UPLOAD_DATASET} > ng-select`) + cy.get(`${SELECTOR_IMPORT_FIELDMAPPING_DEFAULT_DATASET}`) .click() .get('.ng-option') - .should('have.length', 1) - .should('contain', USER.dataset); + .should('have.length', 2) + .should('contain', USER_ADMIN.dataset) + .should('contain', USER_AGENT.dataset); }); it('Should be able to create a new field mapping, rename it, and delete it', () => { @@ -275,7 +252,7 @@ describe('Import - Field mapping step', () => { cy.deleteCurrentImport(); cy.geonatureLogout(); cy.geonatureLogin(USER_AGENT.login.username, USER_AGENT.login.password); - runTheProcess(USER_AGENT); + runTheProcess(); // Check that field mapping does not exist cy.get(SELECTOR_IMPORT_FIELDMAPPING_SELECTION) @@ -290,7 +267,7 @@ describe('Import - Field mapping step', () => { cy.deleteCurrentImport(); cy.geonatureLogout(); cy.geonatureLogin(USER_ADMIN.login.username, USER_ADMIN.login.password); - runTheProcess(USER_ADMIN); + runTheProcess(); // Check that field mapping does exist cy.get(SELECTOR_IMPORT_FIELDMAPPING_SELECTION) @@ -311,7 +288,7 @@ describe('Import - Field mapping step', () => { cy.deleteCurrentImport(); cy.geonatureLogout(); cy.geonatureLogin(USER_AGENT.login.username, USER_AGENT.login.password); - runTheProcess(USER_AGENT); + runTheProcess(); // Create a mapping fillTheForm(); @@ -320,7 +297,7 @@ describe('Import - Field mapping step', () => { cy.deleteCurrentImport(); cy.geonatureLogout(); cy.geonatureLogin(USER_ADMIN.login.username, USER_ADMIN.login.password); - runTheProcess(USER_ADMIN); + runTheProcess(); // Check that field mapping does exist cy.get(SELECTOR_IMPORT_FIELDMAPPING_SELECTION) @@ -339,7 +316,7 @@ describe('Import - Field mapping step', () => { it('Should be able to modifiy the default mapping if user got rights. A save to alternative should be offered to the user.', () => { // Mapping Synthese selectMapping(DEFAULT_FIELDMAPPINGS[0]); - selectField(SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN, 'date_fin'); + selectField(SELECTOR_IMPORT_FIELDMAPPING_DATASET, 'date_fin'); checkThatMappingCanBeSaved(); restartTheProcess(USER_ADMIN); @@ -350,9 +327,9 @@ describe('Import - Field mapping step', () => { it('Should not be able to modifiy the default mapping if user does not got rights', () => { cy.geonatureLogout(); cy.geonatureLogin(USER_AGENT.login.username, USER_AGENT.login.password); - runTheProcess(USER_AGENT); + runTheProcess(); selectMapping(DEFAULT_FIELDMAPPINGS[0]); - selectField(SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN, 'date_fin'); + selectField(SELECTOR_IMPORT_FIELDMAPPING_DATASET, 'date_fin'); checkThatMappingCanNotBeSaved(); }); diff --git a/frontend/cypress/e2e/import/step4-content-mapping-spec.js b/frontend/cypress/e2e/import/step4-content-mapping-spec.js index 8b032a09a6..28ff53fb9b 100644 --- a/frontend/cypress/e2e/import/step4-content-mapping-spec.js +++ b/frontend/cypress/e2e/import/step4-content-mapping-spec.js @@ -19,6 +19,16 @@ import { SELECTOR_IMPORT_CONTENTMAPPING_SELECTION_TEXT, SELECTOR_IMPORT_CONTENTMAPPING_VALIDATE, SELECTOR_IMPORT_NEW_VERIFICATION_START, + SELECTOR_IMPORT_FIELDMAPPING_DEFAULT_DATASET, + SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN, + SELECTOR_IMPORT_FIELDMAPPING_WKT, + SELECTOR_IMPORT_FIELDMAPPING_NOM_CITE, + SELECTOR_IMPORT_FIELDMAPPING_CD_HAB, + SELECTOR_IMPORT_FIELDMAPPING_VALIDATE, + SELECTOR_IMPORT_FIELDMAPPING_MODAL_CLOSE, + SELECTOR_IMPORT_FIELDMAPPING_MODAL_NAME, + SELECTOR_IMPORT_FIELDMAPPING_MODAL_NEW_OK, + SELECTOR_IMPORT_FIELDMAPPING_MODAL_OK, } from './constants/selectors'; // //////////////////////////////////////////////////////////////////////////// @@ -126,15 +136,15 @@ function runTheProcessForOcchab(user) { cy.loadImportFile(FILES.synthese.valid.fixture); cy.configureImportFile(); // cy.configureImportFieldMapping(user.dataset); - selectFieldMappingField('import-fieldmapping-theme-date_min', 'error'); - selectFieldMappingField('import-fieldmapping-theme-WKT', 'error'); + selectFieldMappingField(SELECTOR_IMPORT_FIELDMAPPING_DATE_MIN, 'error'); + selectFieldMappingField(SELECTOR_IMPORT_FIELDMAPPING_WKT, 'error'); cy.get('#mat-tab-label-0-1').click(); - selectFieldMappingField('import-fieldmapping-theme-nom_cite', 'error'); - selectFieldMappingField('import-fieldmapping-theme-cd_hab', 'error'); - selectFieldMappingField('import-fieldmapping-theme-unique_dataset_id', 'error'); + selectFieldMappingField(SELECTOR_IMPORT_FIELDMAPPING_NOM_CITE, 'error'); + selectFieldMappingField(SELECTOR_IMPORT_FIELDMAPPING_CD_HAB, 'error'); + selectFieldMappingField(SELECTOR_IMPORT_FIELDMAPPING_DEFAULT_DATASET, 'error'); - cy.get('[data-qa="import-new-fieldmapping-model-validate"]').click(); - cy.get('[data-qa="import-fieldmapping-saving-modal-cancel"]', { force: true }).click(); + cy.get(SELECTOR_IMPORT_FIELDMAPPING_VALIDATE).click(); + cy.get(SELECTOR_IMPORT_FIELDMAPPING_MODAL_CANCEL, { force: true }).click(); } function restartTheProcess(user) { diff --git a/frontend/cypress/support/import/configureImportFieldMapping.js b/frontend/cypress/support/import/configureImportFieldMapping.js index b5d09cf250..88baae4974 100644 --- a/frontend/cypress/support/import/configureImportFieldMapping.js +++ b/frontend/cypress/support/import/configureImportFieldMapping.js @@ -12,7 +12,7 @@ Cypress.Commands.add('configureImportFieldMapping', (datasetName) => { cy.wrap(v).should('exist').click(); }); - cy.get('[data-qa="import-fieldmapping-theme-unique_dataset_id"]') + cy.get('[data-qa="import-fieldmapping-theme-default-unique_dataset_id"] ng-select') .should('exist') .click() .get('ng-dropdown-panel') @@ -27,4 +27,9 @@ Cypress.Commands.add('configureImportFieldMapping', (datasetName) => { .should('exist') .should('be.enabled') .click(); + + cy.get('[data-qa="import-fieldmapping-saving-modal-cancel"]') + .should('exist') + .should('be.enabled') + .click(); }); diff --git a/frontend/src/app/modules/imports/components/import_process/fields-mapping-step/mapping-theme/mapping-theme.component.html b/frontend/src/app/modules/imports/components/import_process/fields-mapping-step/mapping-theme/mapping-theme.component.html index a1ec086102..399467f20b 100644 --- a/frontend/src/app/modules/imports/components/import_process/fields-mapping-step/mapping-theme/mapping-theme.component.html +++ b/frontend/src/app/modules/imports/components/import_process/fields-mapping-step/mapping-theme/mapping-theme.component.html @@ -91,6 +91,7 @@ class="d-block mt-2" [formDef]="defaultValueFormDefs[field.name_field]" [form]="_fm.mappingFormGroup" + [attr.data-qa]="'import-fieldmapping-theme-default-' + field.name_field" >