Fix failing tests on VSCode 1.74.0
This fixes the tests on VSCode 1.74.0. The issue is as follows: 1. Jest wil try reset all mocks after each test, as it should. 2. When Jest does this, it will loop over all global variables and check if they are mocks. 3. One of the global variables it checks is _VSCODE_NODE_MODULES, which is a proxy object. 4. When Jest checks whether it is a proxy by getting _isMockFunction on it, the `get` function on the proxy object will be called. 5. This will in turn call require, which will try to load the non-existing `_isMockFunction` module. This throws the error we are seeing. By removing the `_VSCODE_NODE_MODULES` property from the global object in the Jest environment, Jest will not try to reset it, and the tests should work again. See:41bf230089/packages/jest-runtime/src/index.ts (L1173-L1186)See:ed442a9e99/src/bootstrap-amd.js (L15)
This commit is contained in:
@@ -1,3 +1,22 @@
|
||||
diff --git a/node_modules/jest-runner-vscode/dist/child/environment.js b/node_modules/jest-runner-vscode/dist/child/environment.js
|
||||
index 1ac28d5..52665c7 100644
|
||||
--- a/node_modules/jest-runner-vscode/dist/child/environment.js
|
||||
+++ b/node_modules/jest-runner-vscode/dist/child/environment.js
|
||||
@@ -10,6 +10,14 @@ const wrap_io_1 = __importDefault(require("./wrap-io"));
|
||||
const load_pnp_1 = __importDefault(require("./load-pnp"));
|
||||
const ipc = new ipc_client_1.default('env');
|
||||
class VSCodeEnvironment extends jest_environment_node_1.default {
|
||||
+ constructor(config, context) {
|
||||
+ super(config, context);
|
||||
+ // The _VSCODE_NODE_MODULES is a proxy which will require a module if any property
|
||||
+ // on it is accessed. This is a workaround for the fact that jest will call
|
||||
+ // _isMockFunction on the module, which will cause that function to be required.
|
||||
+ delete this.global._VSCODE_NODE_MODULES;
|
||||
+ }
|
||||
+
|
||||
async setup() {
|
||||
await super.setup();
|
||||
await (0, load_pnp_1.default)();
|
||||
diff --git a/node_modules/jest-runner-vscode/dist/child/runner.js b/node_modules/jest-runner-vscode/dist/child/runner.js
|
||||
index 0663c5c..4991663 100644
|
||||
--- a/node_modules/jest-runner-vscode/dist/child/runner.js
|
||||
|
||||
Reference in New Issue
Block a user