1
- import { browser , promise } from 'protractor' ;
1
+ import { browser , promise , protractor } from 'protractor' ;
2
2
3
3
import { CFResponse , createEmptyCfResponse } from '../../frontend/app/store/types/api.types' ;
4
4
import { e2e , E2ESetup } from '../e2e' ;
@@ -9,6 +9,7 @@ import { ListComponent } from '../po/list.po';
9
9
import { CreateServiceInstance } from './create-service-instance.po' ;
10
10
11
11
const customServiceLabel = E2EHelpers . e2eItemPrefix + process . env . USER ;
12
+ const until = protractor . ExpectedConditions ;
12
13
13
14
export class ServicesHelperE2E {
14
15
@@ -92,9 +93,32 @@ export class ServicesHelperE2E {
92
93
93
94
this . setServiceInstanceDetail ( ) ;
94
95
95
- this . createServiceInstance . stepper . next ( ) ;
96
+ this . createInstanceAttempt ( 0 , 3 , serviceName ) ;
97
+ } ) ;
98
+ }
99
+
100
+ createInstanceAttempt = ( retryNumber : number , maxRetries : number , serviceName : string ) => {
101
+ this . createServiceInstance . stepper . next ( ) ;
102
+ browser . wait ( until . or (
103
+ until . invisibilityOf ( this . createServiceInstance . stepper . nextButton ( ) ) ,
104
+ this . createServiceInstance . stepper . canNext . bind ( this . createServiceInstance . stepper )
105
+ ) , 10000 ) ;
106
+
107
+ this . createServiceInstance . stepper . canNext ( ) . then ( canNext => {
108
+ if ( canNext ) {
109
+ const attemptsLeft = maxRetries - retryNumber ;
110
+ if ( ! ! attemptsLeft ) {
111
+ e2e . log ( `Failed to create service instance '${ this . serviceInstanceName } ' of type '${ serviceName } '.
112
+ Attempting ${ attemptsLeft } more time/s` ) ;
113
+ browser . sleep ( 1000 ) ;
114
+ this . createInstanceAttempt ( retryNumber + 1 , maxRetries , serviceName ) ;
115
+ } else {
116
+ fail ( `Failed to create service instance after ${ maxRetries } retries` ) ;
117
+ }
118
+ }
96
119
} ) ;
97
120
}
121
+
98
122
canBindAppStep = ( ) : promise . Promise < boolean > => {
99
123
return this . cfHelper . fetchDefaultSpaceGuid ( true )
100
124
. then ( spaceGuid => this . cfHelper . fetchAppsCountInSpace ( CFHelpers . cachedDefaultCfGuid , spaceGuid ) )
0 commit comments