1
- import { t } from 'testcafe' ;
1
+ import { Selector , t } from 'testcafe' ;
2
2
import { AddNewDatabaseParameters , SentinelParameters , OSSClusterParameters } from '../pageObjects/add-redis-database-page' ;
3
3
import { DiscoverMasterGroupsPage } from '../pageObjects/sentinel/discovered-sentinel-master-groups-page' ;
4
4
import {
9
9
UserAgreementPage ,
10
10
CliPage
11
11
} from '../pageObjects' ;
12
- import { addNewStandaloneDatabaseApi , discoverSentinelDatabaseApi } from './api/api-database' ;
12
+ import { addNewStandaloneDatabaseApi , discoverSentinelDatabaseApi , getDatabaseByName } from './api/api-database' ;
13
13
import { Common } from './common' ;
14
14
15
15
const myRedisDatabasePage = new MyRedisDatabasePage ( ) ;
@@ -96,19 +96,17 @@ export async function addOSSClusterDatabase(databaseParameters: OSSClusterParame
96
96
export async function addNewRECloudDatabase ( cloudAPIAccessKey : string , cloudAPISecretKey : string ) : Promise < string > {
97
97
// Fill the add database form and Submit
98
98
await addRedisDatabasePage . addAutodiscoverRECloudDatabase ( cloudAPIAccessKey , cloudAPISecretKey ) ;
99
- await t
100
- . click ( addRedisDatabasePage . addRedisDatabaseButton )
99
+ await t . click ( addRedisDatabasePage . addRedisDatabaseButton ) ;
101
100
// Select subscriptions
102
- . click ( addRedisDatabasePage . selectAllCheckbox )
103
- . click ( addRedisDatabasePage . showDatabasesButton ) ;
101
+ await t . click ( addRedisDatabasePage . selectAllCheckbox ) ;
102
+ await t . click ( addRedisDatabasePage . showDatabasesButton ) ;
104
103
// Select databases for adding
105
104
const databaseName = await browserPage . getDatabasesName ( ) ;
106
- await t
107
- . click ( addRedisDatabasePage . selectAllCheckbox )
108
- . click ( autoDiscoverREDatabases . addSelectedDatabases )
105
+ await t . click ( addRedisDatabasePage . selectAllCheckbox ) ;
106
+ await t . click ( autoDiscoverREDatabases . addSelectedDatabases ) ;
109
107
// Wait for database to be exist in the My redis databases list
110
- . click ( autoDiscoverREDatabases . viewDatabasesButton )
111
- . expect ( myRedisDatabasePage . dbNameList . withExactText ( databaseName ) . exists ) . ok ( 'The database not displayed' , { timeout : 10000 } ) ;
108
+ await t . click ( autoDiscoverREDatabases . viewDatabasesButton ) ;
109
+ await t . expect ( myRedisDatabasePage . dbNameList . withExactText ( databaseName ) . exists ) . ok ( 'The database not displayed' , { timeout : 10000 } ) ;
112
110
return databaseName ;
113
111
}
114
112
@@ -194,6 +192,7 @@ export async function acceptLicenseTermsAndAddRECloudDatabase(databaseParameters
194
192
while ( ! ( await dbSelector . exists ) && Date . now ( ) - startTime < searchTimeout ) ;
195
193
await t . expect ( myRedisDatabasePage . dbNameList . withExactText ( databaseParameters . databaseName ?? '' ) . exists ) . ok ( 'The database not displayed' , { timeout : 5000 } ) ;
196
194
await myRedisDatabasePage . clickOnDBByName ( databaseParameters . databaseName ?? '' ) ;
195
+ await common . waitForElementNotVisible ( browserPage . progressLine ) ;
197
196
}
198
197
199
198
// Accept License terms
@@ -226,6 +225,17 @@ export async function clearDatabaseInCli(): Promise<void> {
226
225
* @param databaseName The database name
227
226
*/
228
227
export async function deleteDatabase ( databaseName : string ) : Promise < void > {
228
+ await t . click ( myRedisDatabasePage . myRedisDBButton ) ;
229
+ if ( await addRedisDatabasePage . addDatabaseButton . exists ) {
230
+ await deleteDatabaseByNameApi ( databaseName ) ;
231
+ }
232
+ }
233
+
234
+ /**
235
+ * Delete database with custom name
236
+ * @param databaseName The database name
237
+ */
238
+ export async function deleteCustomDatabase ( databaseName : string ) : Promise < void > {
229
239
await t . click ( myRedisDatabasePage . myRedisDBButton ) ;
230
240
if ( await addRedisDatabasePage . addDatabaseButton . exists ) {
231
241
await myRedisDatabasePage . deleteDatabaseByName ( databaseName ) ;
@@ -245,3 +255,28 @@ export async function acceptTermsAddDatabaseOrConnectToRedisStack(databaseParame
245
255
await acceptLicenseAndConnectToRedisStack ( ) ;
246
256
}
247
257
}
258
+
259
+ /**
260
+ * Click on the edit database button by name
261
+ * @param databaseName The name of the database
262
+ */
263
+ export async function clickOnEditDatabaseByName ( databaseName : string ) : Promise < void > {
264
+ const databaseId = await getDatabaseByName ( databaseName ) ;
265
+ const databaseEditBtn = Selector ( `[data-testid=edit-instance-${ databaseId } ]` ) ;
266
+
267
+ await t . expect ( databaseEditBtn . exists ) . ok ( `"${ databaseName } " database not displayed` ) ;
268
+ await t . click ( databaseEditBtn ) ;
269
+ }
270
+
271
+ /**
272
+ * Delete database button by name
273
+ * @param databaseName The name of the database
274
+ */
275
+ export async function deleteDatabaseByNameApi ( databaseName : string ) : Promise < void > {
276
+ const databaseId = await getDatabaseByName ( databaseName ) ;
277
+ const databaseDeleteBtn = Selector ( `[data-testid=delete-instance-${ databaseId } -icon]` ) ;
278
+
279
+ await t . expect ( databaseDeleteBtn . exists ) . ok ( `"${ databaseName } " database not displayed` ) ;
280
+ await t . click ( databaseDeleteBtn ) ;
281
+ await t . click ( myRedisDatabasePage . confirmDeleteButton ) ;
282
+ }
0 commit comments