From dbe45dfbe789c66e8a9b49a79c0882e088169be3 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Wed, 16 Nov 2022 22:00:33 +0100 Subject: [PATCH 1/4] upd --- .../e2e/tests/critical-path/database/import-databases.e2e.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts index db100c0727..ae0319325c 100644 --- a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts +++ b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts @@ -71,16 +71,17 @@ test .click(myRedisDatabasePage.submitImportBtn) .expect(myRedisDatabasePage.failedImportMessage.exists).ok('Failed to add database message not displayed'); - // Verify that success message is displayed + // Verify that user can import database with mandatory fields await t.click(myRedisDatabasePage.closeDialogBtn); await databasesActions.importDatabase(rdmData.path); + // Verify that success message is displayed await t.expect(myRedisDatabasePage.successImportMessage.textContent).contains(partialImportedMsg, 'Successfully added databases number not correct'); // Verify that list of databases is reloaded when database added await t.click(myRedisDatabasePage.okDialogBtn); await databasesActions.verifyDatabasesDisplayed(rdmData.dbNames); - // Verify that user can import database with all data + // Verify that user can import database with mandatory+optional data await clickOnEditDatabaseByName(rdmData.dbNames[0]); // Verify username imported await t.expect(addRedisDatabasePage.usernameInput.value).eql(rdmData.userName); From 3fc18725dfbfc442ed72637468d6f2eafd1e7df4 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Thu, 17 Nov 2022 10:53:23 +0100 Subject: [PATCH 2/4] fix --- tests/e2e/common-actions/databases-actions.ts | 2 +- tests/e2e/tests/critical-path/database/import-databases.e2e.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/e2e/common-actions/databases-actions.ts b/tests/e2e/common-actions/databases-actions.ts index 129b24dbf7..a33e0b22f7 100644 --- a/tests/e2e/common-actions/databases-actions.ts +++ b/tests/e2e/common-actions/databases-actions.ts @@ -9,7 +9,7 @@ export class DatabasesActions { * @param databases The list of databases to verify */ async verifyDatabasesDisplayed(databases: string[]): Promise { - for (const db in databases) { + for (const db of databases) { const databaseName = myRedisDatabasePage.dbNameList.withText(db); await t.expect(databaseName.exists).ok(`"${db}" database doesn't exist`); } diff --git a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts index ae0319325c..dcbe4ed2bf 100644 --- a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts +++ b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts @@ -31,6 +31,7 @@ const dbData = [ dbNames: ['ardmNoName:12001', 'ardmWithPassAndUsername'] } ]; +// List of all created databases to delete const databases = [ rdmData.dbNames[0], rdmData.dbNames[1], From aa9bd15cf2b1373843ed36f6de73f107e7f5be81 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Thu, 17 Nov 2022 12:27:14 +0100 Subject: [PATCH 3/4] add test for remove file --- tests/e2e/pageObjects/my-redis-databases-page.ts | 1 + .../critical-path/database/import-databases.e2e.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/e2e/pageObjects/my-redis-databases-page.ts b/tests/e2e/pageObjects/my-redis-databases-page.ts index 89a78e35da..668c1d5f40 100644 --- a/tests/e2e/pageObjects/my-redis-databases-page.ts +++ b/tests/e2e/pageObjects/my-redis-databases-page.ts @@ -34,6 +34,7 @@ export class MyRedisDatabasePage { submitImportBtn = Selector('[data-testid=submit-btn]'); closeDialogBtn = Selector('[aria-label="Closes this modal window"]'); okDialogBtn = Selector('[data-testid=ok-btn]'); + removeImportedFileBtn = Selector('[aria-label="Clear selected files"]'); //CHECKBOXES selectAllCheckbox = Selector('[data-test-subj=checkboxSelectAll]'); //ICONS diff --git a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts index dcbe4ed2bf..2e7a1e91ce 100644 --- a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts +++ b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts @@ -17,7 +17,8 @@ const rdmData = { dbNames: ['rdmWithUsernameAndPass1:1561', 'rdmOnlyHostPortDB2:6379'], userName: 'rdmUsername', password: 'rdmAuth', - connectionType: 'Cluster' + connectionType: 'Cluster', + fileName: 'rdm-valid.json' }; const dbData = [ { @@ -54,6 +55,7 @@ test })('Connection import from JSON', async t => { const tooltipText = 'Import Database Connections'; const partialImportedMsg = 'Successfully added 2 of 6 database connections'; + const defaultText = 'Select or drag and drop a file'; // Verify that user can see the “Import Database Connections” tooltip await t.hover(myRedisDatabasePage.importDatabasesBtn); @@ -72,6 +74,15 @@ test .click(myRedisDatabasePage.submitImportBtn) .expect(myRedisDatabasePage.failedImportMessage.exists).ok('Failed to add database message not displayed'); + // Verify that user can remove file from import input + await t.click(myRedisDatabasePage.closeDialogBtn); + await t.click(myRedisDatabasePage.importDatabasesBtn); + await t.setFilesToUpload(myRedisDatabasePage.importDatabaseInput, [rdmData.path]); + await t.expect(myRedisDatabasePage.importDbDialog.textContent).contains(rdmData.fileName, 'Filename not displayed in import input'); + // Click on remove button + await t.click(myRedisDatabasePage.removeImportedFileBtn); + await t.expect(myRedisDatabasePage.importDbDialog.textContent).contains(defaultText, 'File not removed from import input'); + // Verify that user can import database with mandatory fields await t.click(myRedisDatabasePage.closeDialogBtn); await databasesActions.importDatabase(rdmData.path); From 4be338b0e43cf83a5e1a1cc77b85e53f587ab029 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Fri, 18 Nov 2022 10:09:21 +0100 Subject: [PATCH 4/4] fixes by comments --- tests/e2e/common-actions/databases-actions.ts | 29 +++++++++++++++---- .../database/import-databases.e2e.ts | 8 ++--- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/tests/e2e/common-actions/databases-actions.ts b/tests/e2e/common-actions/databases-actions.ts index a33e0b22f7..3167ce1b2c 100644 --- a/tests/e2e/common-actions/databases-actions.ts +++ b/tests/e2e/common-actions/databases-actions.ts @@ -17,15 +17,34 @@ export class DatabasesActions { /** * Import database using file - * @param pathToFile The path to file for import - * @param databaseType The database type + * @param fileParameters The arguments of imported file */ - async importDatabase(pathToFile: string, databaseType = ''): Promise { + async importDatabase(fileParameters: ImportDatabaseParameters): Promise { await t .click(myRedisDatabasePage.importDatabasesBtn) - .setFilesToUpload(myRedisDatabasePage.importDatabaseInput, [pathToFile]) + .setFilesToUpload(myRedisDatabasePage.importDatabaseInput, [fileParameters.path]) .click(myRedisDatabasePage.submitImportBtn) - .expect(myRedisDatabasePage.successImportMessage.exists).ok(`Successfully added ${databaseType} databases message not displayed`); + .expect(myRedisDatabasePage.successImportMessage.exists).ok(`Successfully added ${fileParameters.type} databases message not displayed`); } } + +/** + * Import database parameters + * @param path The path to file + * @param type The type of application + * @param dbNames The names of databases + * @param userName The username of db + * @param password The password of db + * @param connectionType The connection type of db + * @param fileName The file name + */ +export type ImportDatabaseParameters = { + path: string, + type?: string, + dbNames?: string[], + userName?: string, + password?: string, + connectionType?: string, + fileName?: string +}; diff --git a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts index 2e7a1e91ce..ce738b9dac 100644 --- a/tests/e2e/tests/critical-path/database/import-databases.e2e.ts +++ b/tests/e2e/tests/critical-path/database/import-databases.e2e.ts @@ -58,7 +58,7 @@ test const defaultText = 'Select or drag and drop a file'; // Verify that user can see the “Import Database Connections” tooltip - await t.hover(myRedisDatabasePage.importDatabasesBtn); + await t.expect(myRedisDatabasePage.importDatabasesBtn.visible).ok('The import databases button not displayed'); await t.hover(myRedisDatabasePage.importDatabasesBtn); await t.expect(browserPage.tooltip.innerText).contains(tooltipText, 'The tooltip message not displayed/correct'); @@ -85,9 +85,9 @@ test // Verify that user can import database with mandatory fields await t.click(myRedisDatabasePage.closeDialogBtn); - await databasesActions.importDatabase(rdmData.path); + await databasesActions.importDatabase(rdmData); // Verify that success message is displayed - await t.expect(myRedisDatabasePage.successImportMessage.textContent).contains(partialImportedMsg, 'Successfully added databases number not correct'); + await t.expect(myRedisDatabasePage.successImportMessage.textContent).contains(partialImportedMsg, 'Databases not imported successfully'); // Verify that list of databases is reloaded when database added await t.click(myRedisDatabasePage.okDialogBtn); @@ -105,7 +105,7 @@ test // Verify that user can import files from Racompass, ARDM, RDM for (const db of dbData) { - await databasesActions.importDatabase(db.path, db.type); + await databasesActions.importDatabase(db); await t.click(myRedisDatabasePage.okDialogBtn); await databasesActions.verifyDatabasesDisplayed(db.dbNames); }