Skip to content

Commit c5ca294

Browse files
committed
added initial tests for import ssh
1 parent 8b471e3 commit c5ca294

File tree

6 files changed

+55
-0
lines changed

6 files changed

+55
-0
lines changed

tests/e2e/docker.web.docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ services:
1313
- .redisinsight-v2:/root/.redisinsight-v2
1414
- .ritmp:/tmp
1515
- ./test-data/certs:/root/certs
16+
- ./test-data/ssh:/root/ssh
1617
env_file:
1718
- ./.env
1819
entrypoint: [
@@ -42,4 +43,5 @@ services:
4243
- .redisinsight-v2:/root/.redisinsight-v2
4344
- .ritmp:/tmp
4445
- ./test-data/certs:/root/certs
46+
- ./test-data/ssh:/root/ssh
4547

tests/e2e/local.web.docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ services:
1111
- ./plugins:/usr/src/app/plugins
1212
- .redisinsight-v2:/root/.redisinsight-v2
1313
- ./test-data/certs:/root/certs
14+
- ./test-data/ssh:/root/ssh
1415
env_file:
1516
- ./.env
1617
environment:
@@ -43,5 +44,6 @@ services:
4344
volumes:
4445
- .redisinsight-v2:/root/.redisinsight-v2
4546
- ./test-data/certs:/root/certs
47+
- ./test-data/ssh:/root/ssh
4648
ports:
4749
- 5000:5000

tests/e2e/pageObjects/my-redis-databases-page.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export class MyRedisDatabasePage {
6666
failedImportMessage = Selector('[data-testid=result-failed]');
6767
successImportMessage = Selector('[data-testid=result-success]');
6868
importDialogTitle = Selector('[data-testid=import-dbs-dialog-title]');
69+
importResult = Selector('[data-testid^=table-result-]');
6970
// DIALOG
7071
importDbDialog = Selector('[data-testid=import-dbs-dialog]');
7172
successResultsAccordion = Selector('[data-testid^=success-results-]');
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-----BEGIN OPENSSH PRIVATE KEY-----
2+
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
3+
QyNTUxOQAAACD10tMZMWO6PjFDQSSZ3+nyoegBRacwdGCH4nx0krHl8AAAAKBv1saEb9bG
4+
hAAAAAtzc2gtZWQyNTUxOQAAACD10tMZMWO6PjFDQSSZ3+nyoegBRacwdGCH4nx0krHl8A
5+
AAAEDyew1DnmWamAr0OrUM87FauJfFfea+pi8ctpKNnurNi/XS0xkxY7o+MUNBJJnf6fKh
6+
6AFFpzB0YIfifHSSseXwAAAAG3pvem9Aem96by1IUC1Qcm9Cb29rLTQ1MC1HNwEC
7+
-----END OPENSSH PRIVATE KEY-----
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-----BEGIN OPENSSH PRIVATE KEY-----
2+
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBPcEHCGN
3+
DrMHhpQnPwc0XwAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIEs/ewkUXl0+uDr7
4+
hxSM2vURqdRNFHm7+x05azzW/YzuAAAAoEhNzctHXM6YBV0z4zzvdniQ5cLwsv8TfMZp2G
5+
WUhZU05yugvKlRu1pml5q3XGSP5wYCF4vvi4BE563PMDKZWAqFFGtiTotEn+XuD/eP+P8H
6+
xdf91tV5kE+1yvVwxUNMcijHY0uYopnG2NN3bdjOH/4YmW0WLyDu10EoMZKVnrP0qBbOrR
7+
xKIy5lqa39SrAnUnGSoTEJsEWGLiIS2rBhkVc=
8+
-----END OPENSSH PRIVATE KEY-----

tests/e2e/tests/critical-path/database/import-databases.e2e.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@ const racompassInvalidJson = 'racompass-invalid.json';
1717
const rdmFullJson = 'rdm-full.json';
1818
const rdmCertsJson = 'rdm-certificates.json';
1919
const ardmValidAno = 'ardm-valid.ano';
20+
const racompFullSSHJson = 'racompFullSSH.json';
2021
const racompassInvalidJsonPath = path.join('..', '..', '..', 'test-data', 'import-databases', racompassInvalidJson);
2122
const rdmListOfDB = databasesActions.parseDbJsonByPath(path.join('test-data', 'import-databases', rdmFullJson));
2223
const rdmCertsListOfDB = databasesActions.parseDbJsonByPath(path.join('test-data', 'import-databases', rdmCertsJson));
2324
const rdmSuccessNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(rdmListOfDB, 'success');
2425
const rdmPartialNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(rdmListOfDB, 'partial');
2526
const rdmFailedNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(rdmListOfDB, 'failed');
2627
const rdmCertsNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(rdmCertsListOfDB, 'success');
28+
const racompListOfSSHDB = databasesActions.parseDbJsonByPath(path.join('test-data', 'import-databases', racompFullSSHJson));
29+
const racompSSHSuccessNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(racompListOfSSHDB, 'success');
30+
const racompSSHPartialNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(racompListOfSSHDB, 'partial');
31+
const racompSSHFailedNames = myRedisDatabasePage.getDatabaseNamesFromListByResult(racompListOfSSHDB, 'failed');
2732
const rdmData = {
2833
type: 'rdm',
2934
path: path.join('..', '..', '..', 'test-data', 'import-databases', rdmFullJson),
@@ -38,6 +43,13 @@ const rdmCertsData = {
3843
path: path.join('..', '..', '..', 'test-data', 'import-databases', rdmCertsJson),
3944
parsedJson: databasesActions.parseDbJsonByPath(path.join('test-data', 'import-databases', rdmCertsJson))
4045
};
46+
const racompSSHData = {
47+
type: 'racompass',
48+
path: path.join('..', '..', '..', 'test-data', 'import-databases', racompFullSSHJson),
49+
successNumber: racompSSHSuccessNames.length,
50+
partialNumber: racompSSHPartialNames.length,
51+
failedNumber: racompSSHFailedNames.length
52+
};
4153
const dbData = [
4254
{
4355
type: 'racompass',
@@ -208,3 +220,26 @@ test
208220
await t.expect(addRedisDatabasePage.caCertField.textContent).eql('1_caPath', 'CA certificate import incorrect');
209221
await t.expect(addRedisDatabasePage.clientCertField.textContent).eql('1_clientPath', 'Client certificate import incorrect');
210222
});
223+
test
224+
.after(async() => {
225+
// Delete databases
226+
await deleteStandaloneDatabasesByNamesApi(rdmCertsNames);
227+
})('Import SSH parameters', async t => {
228+
const sshAgentsResult = 'SSH Agents are not supported';
229+
230+
await databasesActions.importDatabase(racompSSHData);
231+
232+
// Fully imported table with SSH
233+
await t.expect(myRedisDatabasePage.successResultsAccordion.find(myRedisDatabasePage.cssNumberOfDbs).textContent)
234+
.contains(`${racompSSHData.successNumber}`, 'Not correct successfully SSH imported number');
235+
// Partially imported table with SSH
236+
await t.expect(myRedisDatabasePage.partialResultsAccordion.find(myRedisDatabasePage.cssNumberOfDbs).textContent)
237+
.contains(`${racompSSHData.partialNumber}`, 'Not correct partially SSH imported number');
238+
// Failed to import table with SSH
239+
await t.expect(myRedisDatabasePage.failedResultsAccordion.find(myRedisDatabasePage.cssNumberOfDbs).textContent)
240+
.contains(`${racompSSHData.failedNumber}`, 'Not correct SSH import failed number');
241+
// Expand partial results
242+
await t.click(myRedisDatabasePage.partialResultsAccordion);
243+
// Verify that database is partially imported with corresponding message when the ssh_agent_path specified in imported JSON
244+
await t.expect(myRedisDatabasePage.importResult.withText(sshAgentsResult).exists).ok('SSH agents not supported message not displayed in result');
245+
});

0 commit comments

Comments
 (0)