1
+ import * as fs from 'fs' ;
2
+ import * as path from 'path' ;
1
3
import { rte } from '../../../helpers/constants' ;
2
4
import { AddRedisDatabasePage , BrowserPage , MyRedisDatabasePage } from '../../../pageObjects' ;
3
5
import { commonUrl } from '../../../helpers/conf' ;
4
6
import { acceptLicenseTerms , clickOnEditDatabaseByName } from '../../../helpers/database' ;
5
7
import { deleteStandaloneDatabasesByNamesApi } from '../../../helpers/api/api-database' ;
6
8
import { DatabasesActions } from '../../../common-actions/databases-actions' ;
9
+ // import rdmJson from '../../../test-data/rdm-full.json' assert {type: 'json'};
10
+ // import * as fil from '../../../test-data/rdm-full.json';
11
+ const file = path . join ( 'test-data' , 'rdm-full.json' ) ;
7
12
8
13
const browserPage = new BrowserPage ( ) ;
9
14
const myRedisDatabasePage = new MyRedisDatabasePage ( ) ;
10
15
const databasesActions = new DatabasesActions ( ) ;
11
16
const addRedisDatabasePage = new AddRedisDatabasePage ( ) ;
12
17
13
- const invalidJsonPath = '../../../test-data/racompass-invalid.json' ;
18
+ const racompassValidJson = 'racompass-valid.json' ;
19
+ const racompassInvalidJson = 'racompass-invalid.json' ;
20
+ const rdmValidJson = 'rdm-valid.json' ;
21
+ const rdmFullJson = 'rdm-full.json' ;
22
+ const ardmValidAno = 'ardm-valid.ano' ;
23
+ const listOfDB = JSON . parse ( fs . readFileSync ( file , 'utf-8' ) ) ;
24
+ const dbSuccessNames = listOfDB . filter ( element => element . result === 'success' ) . map ( item => item . name ) ;
25
+
14
26
const rdmData = {
15
27
type : 'rdm' ,
16
- path : '../../../ test-data/rdm-valid.json' ,
28
+ path : path . join ( '..' , '..' , '..' , ' test-data' , rdmFullJson ) ,
17
29
dbNames : [ 'rdmWithUsernameAndPass1:1561' , 'rdmOnlyHostPortDB2:6379' ] ,
18
30
userName : 'rdmUsername' ,
19
31
password : 'rdmAuth' ,
20
32
connectionType : 'Cluster' ,
21
- fileName : 'rdm-valid.json'
33
+ fileName : rdmFullJson ,
34
+ successNumber : dbSuccessNames . length ,
35
+ partialNumber : 8 ,
36
+ failedNumber : 6
22
37
} ;
23
38
const dbData = [
24
39
{
25
40
type : 'racompass' ,
26
- path : '../../../ test-data/racompass-valid.json' ,
41
+ path : path . join ( '..' , '..' , '..' , ' test-data' , racompassValidJson ) ,
27
42
dbNames : [ 'racompassCluster' , 'racompassDbWithIndex:8100 [1]' ]
28
43
} ,
29
44
{
30
45
type : 'ardm' ,
31
- path : '../../../ test-data/ardm-valid.ano' ,
46
+ path : path . join ( '..' , '..' , '..' , ' test-data' , ardmValidAno ) ,
32
47
dbNames : [ 'ardmNoName:12001' , 'ardmWithPassAndUsername' ]
33
48
}
34
49
] ;
54
69
deleteStandaloneDatabasesByNamesApi ( databases ) ;
55
70
} ) ( 'Connection import from JSON' , async t => {
56
71
const tooltipText = 'Import Database Connections' ;
57
- const partialImportedMsg = 'Successfully added 2 of 6 database connections' ;
58
72
const defaultText = 'Select or drag and drop a file' ;
73
+ const parseFailedMsg = 'Failed to add database connections' ;
74
+ const parseFailedMsg2 = `Unable to parse ${ racompassInvalidJson } ` ;
59
75
60
76
// Verify that user can see the “Import Database Connections” tooltip
61
77
await t . expect ( myRedisDatabasePage . importDatabasesBtn . visible ) . ok ( 'The import databases button not displayed' ) ;
70
86
71
87
// Verify that user see the message when parse error appears
72
88
await t
73
- . setFilesToUpload ( myRedisDatabasePage . importDatabaseInput , [ invalidJsonPath ] )
89
+ . setFilesToUpload ( myRedisDatabasePage . importDatabaseInput , [ path . join ( '..' , '..' , '..' , 'test-data' , racompassInvalidJson ) ] )
74
90
. click ( myRedisDatabasePage . submitImportBtn )
75
- . expect ( myRedisDatabasePage . failedImportMessage . exists ) . ok ( 'Failed to add database message not displayed' ) ;
91
+ . expect ( myRedisDatabasePage . failedImportMessage . exists ) . ok ( 'Failed to add database message not displayed' )
92
+ . expect ( myRedisDatabasePage . failedImportMessage . textContent ) . contains ( parseFailedMsg )
93
+ . expect ( myRedisDatabasePage . failedImportMessage . textContent ) . contains ( parseFailedMsg2 ) ;
76
94
77
95
// Verify that user can remove file from import input
78
96
await t . click ( myRedisDatabasePage . closeDialogBtn ) ;
87
105
await t . click ( myRedisDatabasePage . closeDialogBtn ) ;
88
106
await databasesActions . importDatabase ( rdmData ) ;
89
107
// Verify that success message is displayed
90
- await t . expect ( myRedisDatabasePage . successImportMessage . textContent ) . contains ( partialImportedMsg , 'Databases not imported successfully' ) ;
91
-
108
+ await t . expect ( myRedisDatabasePage . successResultsAccordion . find ( myRedisDatabasePage . cssNumberOfDbs ) . textContent )
109
+ . contains ( `${ rdmData . successNumber } ` , 'Not correct successfully imported number' ) ;
110
+ await t . expect ( myRedisDatabasePage . partialResultsAccordion . find ( myRedisDatabasePage . cssNumberOfDbs ) . textContent )
111
+ . contains ( `${ rdmData . partialNumber } ` , 'Not correct partially imported number' ) ;
112
+ await t . expect ( myRedisDatabasePage . failedResultsAccordion . find ( myRedisDatabasePage . cssNumberOfDbs ) . textContent )
113
+ . contains ( `${ rdmData . failedNumber } ` , 'Not correct failed to import number' ) ;
114
+
115
+
116
+
117
+
92
118
// Verify that list of databases is reloaded when database added
93
119
await t . click ( myRedisDatabasePage . okDialogBtn ) ;
94
120
await databasesActions . verifyDatabasesDisplayed ( rdmData . dbNames ) ;
@@ -110,3 +136,16 @@ test
110
136
await databasesActions . verifyDatabasesDisplayed ( db . dbNames ) ;
111
137
}
112
138
} ) ;
139
+ test . only
140
+ . before ( async ( ) => {
141
+ await acceptLicenseTerms ( )
142
+ } ) ( 'Connection import from JSON' , async t => {
143
+ console . log ( dbSuccessNames ) ;
144
+ console . log ( rdmData . successNumber ) ;
145
+
146
+ await databasesActions . importDatabase ( rdmData ) ;
147
+ // Verify that success message is displayed
148
+ await t . expect ( myRedisDatabasePage . successResultsAccordion . find ( myRedisDatabasePage . cssNumberOfDbs ) . textContent )
149
+ . contains ( `${ rdmData . successNumber } ` , 'Not correct successfully imported number' ) ;
150
+ await databasesActions . verifyDatabasesDisplayed ( dbSuccessNames ) ;
151
+ } ) ;
0 commit comments