20 lines
809 B
JavaScript
20 lines
809 B
JavaScript
|
|
// 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;
|