11const event = require ( '../event' )
22const recorder = require ( '../recorder' )
3- const container = require ( '../container' )
4- const { log } = require ( '../output' )
5-
3+ const store = require ( '../store' )
64const defaultConfig = {
75 retries : 3 ,
86 defaultIgnoredSteps : [ 'amOnPage' , 'wait*' , 'send*' , 'execute*' , 'run*' , 'have*' ] ,
@@ -70,9 +68,9 @@ const defaultConfig = {
7068 * Use scenario configuration to disable plugin for a test
7169 *
7270 * ```js
73- * Scenario('scenario tite', () => {
71+ * Scenario('scenario tite', { disableRetryFailedStep: true }, () => {
7472 * // test goes here
75- * }).config(test => test.disableRetryFailedStep = true)
73+ * })
7674 * ```
7775 *
7876 */
@@ -85,19 +83,14 @@ module.exports = config => {
8583
8684 const when = err => {
8785 if ( ! enableRetry ) return
88- const store = require ( '../store' )
8986 if ( store . debugMode ) return false
87+ if ( ! store . autoRetries ) return false
9088 if ( customWhen ) return customWhen ( err )
9189 return true
9290 }
9391 config . when = when
9492
9593 event . dispatcher . on ( event . step . started , step => {
96- if ( process . env . TRY_TO === 'true' ) {
97- log ( 'Info: RetryFailedStep plugin is disabled inside tryTo block' )
98- return
99- }
100-
10194 // if a step is ignored - return
10295 for ( const ignored of config . ignoredSteps ) {
10396 if ( step . name === ignored ) return
@@ -113,9 +106,13 @@ module.exports = config => {
113106 } )
114107
115108 event . dispatcher . on ( event . test . before , test => {
116- if ( test && test . disableRetryFailedStep ) return // disable retry when a test is not active
117- // this env var is used to set the retries inside _before() block of helpers
118- process . env . FAILED_STEP_RETRIES = config . retries
109+ if ( test . opts . disableRetryFailedStep ) {
110+ store . autoRetries = false
111+ return // disable retry when a test is not active
112+ }
113+ // this option is used to set the retries inside _before() block of helpers
114+ store . autoRetries = true
115+ test . opts . conditionalRetries = config . retries
119116 recorder . retry ( config )
120117 } )
121118}
0 commit comments