mancala/apps/backend/tests/support/NodeEnvironment.js

20 lines
809 B
JavaScript
Raw Normal View History

// Jest 27's node environment runs tests in a context that lacks Node's newer web globals (ReadableStream, Blob,
// ...), which the HTTP client used by testcontainers needs. Copy whatever the context is missing from Node.
const NodeEnvironment = require("jest-environment-node");
// Reading these makes Node warn about its experimental web storage.
const SKIPPED = new Set(["localStorage", "sessionStorage"]);
class NodeEnvironmentWithWebGlobals extends NodeEnvironment {
constructor(config, context) {
super(config, context);
for (const name of Object.getOwnPropertyNames(globalThis)) {
if (!SKIPPED.has(name) && !(name in this.global)) {
this.global[name] = globalThis[name];
}
}
}
}
module.exports = NodeEnvironmentWithWebGlobals;