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/CHANGELOG.md +2375 -0
- package/lib/scenario.js +15 -23
- package/package.json +1 -1
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
}
|
|
158
|
-
recorder.throw(
|
|
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,
|
|
164
|
-
}
|
|
155
|
+
recorder.add('fire hook.failed', () => event.emit(event.hook.failed, suite, e));
|
|
156
|
+
});
|
|
165
157
|
};
|
|
166
158
|
};
|
|
167
159
|
|