Skip to content

Commit

Permalink
fix: frontend test for import
Browse files Browse the repository at this point in the history
  • Loading branch information
edelclaux committed Jan 23, 2025
1 parent b1dd828 commit e3869dd
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 61 deletions.
5 changes: 0 additions & 5 deletions frontend/cypress/e2e/import/constants/fieldsContent.js
Original file line number Diff line number Diff line change
@@ -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',
Expand Down
6 changes: 6 additions & 0 deletions frontend/cypress/e2e/import/constants/selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand All @@ -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 =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
59 changes: 18 additions & 41 deletions frontend/cypress/e2e/import/step3-field-mapping-spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
// ////////////////////////////////////////////////////////////////////////////
Expand All @@ -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();
Expand All @@ -128,19 +104,19 @@ function fillTheForm() {
cy.wait(TIMEOUT_WAIT);
}

function runTheProcess(user) {
function runTheProcess() {
cy.visitImport();
cy.startImport();
cy.pickDestination();
cy.loadImportFile(FILES.synthese.valid.fixture);
cy.configureImportFile();
}

function restartTheProcess(user) {
function restartTheProcess() {
cy.wait(TIMEOUT_WAIT);
cy.deleteCurrentImport();
cy.wait(TIMEOUT_WAIT);
runTheProcess(user);
runTheProcess();
}

function checkThatMappingCanBeSaved() {
Expand Down Expand Up @@ -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', () => {
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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();
Expand All @@ -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)
Expand All @@ -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);
Expand All @@ -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();
});

Expand Down
24 changes: 17 additions & 7 deletions frontend/cypress/e2e/import/step4-content-mapping-spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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';

// ////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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();
});
Original file line number Diff line number Diff line change
Expand Up @@ -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"
></pnx-dynamic-form>
</div>
<div
Expand Down

0 comments on commit e3869dd

Please sign in to comment.