codeceptjs 3.3.7 → 3.3.8-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/scenario.js CHANGED
@@ -1,3 +1,4 @@
1
+ const promiseRetry = require('promise-retry');
1
2
  const event = require('./event');
2
3
  const recorder = require('./recorder');
3
4
  const assertThrown = require('./assert/throws');
@@ -106,7 +107,7 @@ module.exports.test = (test) => {
106
107
  /**
107
108
  * Injects arguments to function from controller
108
109
  */
109
- module.exports.injected = function (fn, suite, hookName) {
110
+ module.exports.injected = function (fn, suite, hookName) {
110
111
  return function (done) {
111
112
  const errHandler = (err) => {
112
113
  recorder.session.start('teardown');
@@ -133,35 +134,26 @@ module.exports.injected = function (fn, suite, hookName) {
133
134
 
134
135
  this.test.body = fn.toString();
135
136
 
136
- if (isAsyncFunction(fn)) {
137
- fn.call(this, getInjectedArguments(fn)).then(() => {
138
- recorder.add('fire hook.passed', () => event.emit(event.hook.passed, suite));
139
- recorder.add(`finish ${hookName} hook`, () => done());
140
- recorder.catch();
141
- }).catch((e) => {
142
- recorder.throw(e);
143
- recorder.catch((e) => {
144
- const err = (recorder.getAsyncErr() === null) ? e : recorder.getAsyncErr();
145
- errHandler(err);
146
- });
147
- recorder.add('fire hook.failed', () => event.emit(event.hook.failed, suite, e));
148
- });
149
- return;
150
- }
151
-
152
- try {
153
- fn.call(this, getInjectedArguments(fn));
137
+ recorder.retry(suite.retries());
138
+ promiseRetry(async (retry) => {
139
+ try {
140
+ await fn.call(this, getInjectedArguments(fn))
141
+ } catch (err) {
142
+ retry(err);
143
+ }
144
+ }, { retries: suite.retries() })
145
+ .then(() => {
154
146
  recorder.add('fire hook.passed', () => event.emit(event.hook.passed, suite));
155
147
  recorder.add(`finish ${hookName} hook`, () => done());
156
148
  recorder.catch();
157
- } catch (err) {
158
- recorder.throw(err);
149
+ }).catch((e) => {
150
+ recorder.throw(e);
159
151
  recorder.catch((e) => {
160
152
  const err = (recorder.getAsyncErr() === null) ? e : recorder.getAsyncErr();
161
153
  errHandler(err);
162
154
  });
163
- recorder.add('fire hook.failed', () => event.emit(event.hook.failed, suite, err));
164
- }
155
+ recorder.add('fire hook.failed', () => event.emit(event.hook.failed, suite, e));
156
+ });
165
157
  };
166
158
  };
167
159
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeceptjs",
3
- "version": "3.3.7",
3
+ "version": "3.3.8-beta.1",
4
4
  "description": "Supercharged End 2 End Testing Framework for NodeJS",
5
5
  "keywords": [
6
6
  "acceptance",