1- import { t } from 'testcafe' ;
1+ import { Selector , t } from 'testcafe' ;
22import { AddNewDatabaseParameters , SentinelParameters , OSSClusterParameters } from '../pageObjects/add-redis-database-page' ;
33import { DiscoverMasterGroupsPage } from '../pageObjects/sentinel/discovered-sentinel-master-groups-page' ;
44import {
99 UserAgreementPage ,
1010 CliPage
1111} from '../pageObjects' ;
12- import { addNewStandaloneDatabaseApi , discoverSentinelDatabaseApi } from './api/api-database' ;
12+ import { addNewStandaloneDatabaseApi , discoverSentinelDatabaseApi , getDatabaseByName } from './api/api-database' ;
1313import { Common } from './common' ;
1414
1515const myRedisDatabasePage = new MyRedisDatabasePage ( ) ;
@@ -96,19 +96,17 @@ export async function addOSSClusterDatabase(databaseParameters: OSSClusterParame
9696export async function addNewRECloudDatabase ( cloudAPIAccessKey : string , cloudAPISecretKey : string ) : Promise < string > {
9797 // Fill the add database form and Submit
9898 await addRedisDatabasePage . addAutodiscoverRECloudDatabase ( cloudAPIAccessKey , cloudAPISecretKey ) ;
99- await t
100- . click ( addRedisDatabasePage . addRedisDatabaseButton )
99+ await t . click ( addRedisDatabasePage . addRedisDatabaseButton ) ;
101100 // Select subscriptions
102- . click ( addRedisDatabasePage . selectAllCheckbox )
103- . click ( addRedisDatabasePage . showDatabasesButton ) ;
101+ await t . click ( addRedisDatabasePage . selectAllCheckbox ) ;
102+ await t . click ( addRedisDatabasePage . showDatabasesButton ) ;
104103 // Select databases for adding
105104 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 ) ;
109107 // 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 } ) ;
112110 return databaseName ;
113111}
114112
@@ -194,6 +192,7 @@ export async function acceptLicenseTermsAndAddRECloudDatabase(databaseParameters
194192 while ( ! ( await dbSelector . exists ) && Date . now ( ) - startTime < searchTimeout ) ;
195193 await t . expect ( myRedisDatabasePage . dbNameList . withExactText ( databaseParameters . databaseName ?? '' ) . exists ) . ok ( 'The database not displayed' , { timeout : 5000 } ) ;
196194 await myRedisDatabasePage . clickOnDBByName ( databaseParameters . databaseName ?? '' ) ;
195+ await common . waitForElementNotVisible ( browserPage . progressLine ) ;
197196}
198197
199198// Accept License terms
@@ -226,6 +225,17 @@ export async function clearDatabaseInCli(): Promise<void> {
226225 * @param databaseName The database name
227226*/
228227export 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 > {
229239 await t . click ( myRedisDatabasePage . myRedisDBButton ) ;
230240 if ( await addRedisDatabasePage . addDatabaseButton . exists ) {
231241 await myRedisDatabasePage . deleteDatabaseByName ( databaseName ) ;
@@ -245,3 +255,28 @@ export async function acceptTermsAddDatabaseOrConnectToRedisStack(databaseParame
245255 await acceptLicenseAndConnectToRedisStack ( ) ;
246256 }
247257}
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