mirror of
https://github.com/hanzoai/Detox.git
synced 2026-10-30 14:46:00 +00:00
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
// @ts-nocheck
|
|
const { DetoxRuntimeError } = require('../../../../src/errors/DetoxRuntimeError');
|
|
const { filterErrorStack } = require('../../../../src/utils/errorUtils');
|
|
|
|
function findUserConstructor() {
|
|
let wasInBaseClass = false;
|
|
let wasInUserClass = false;
|
|
|
|
return function (line) {
|
|
if (!wasInBaseClass) {
|
|
if (/^\s*at new DetoxCircusEnvironment/.test(line)) {
|
|
wasInBaseClass = true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
if (!wasInUserClass && /^\s*at new/.test(line)) {
|
|
wasInUserClass = true;
|
|
}
|
|
|
|
return wasInUserClass;
|
|
};
|
|
}
|
|
|
|
function assertExistingContext(context) {
|
|
if (!context) {
|
|
const error = new DetoxRuntimeError(`Please add both arguments to super() call in your environment constructor, e.g.:
|
|
|
|
class CustomDetoxEnvironment extends DetoxCircusEnvironment {
|
|
- constructor(config) {
|
|
- super(config);
|
|
+ constructor(config, context) {
|
|
+ super(config, context);
|
|
|
|
Cannot proceed further. Please fix your custom Detox environment class.`);
|
|
|
|
const userError = filterErrorStack(error, findUserConstructor());
|
|
|
|
throw userError;
|
|
}
|
|
|
|
return context;
|
|
}
|
|
|
|
module.exports = assertExistingContext;
|