Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'jest-util' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
constructor(config) {
// lazy require
const {JSDOM} = require('jsdom');
this.document = new JSDOM('', {
url: config.testURL,
runScripts: 'dangerously'
});
const global = (this.global = this.document.window.document.defaultView);
// Node's error-message stack size is limited at 10, but it's pretty useful
// to see more than that when a test fails.
global.Error.stackTraceLimit = 100;
installCommonGlobals(global, config.globals);
this.moduleMocker = new mock.ModuleMocker(global);
this.fakeTimers = new FakeTimers(global, this.moduleMocker, config);
}
constructor(config) {
// lazy require
const {JSDOM} = require('jsdom');
this.document = new JSDOM('', {
url: config.testURL,
runScripts: 'dangerously'
});
const global = (this.global = this.document.window.document.defaultView);
// Node's error-message stack size is limited at 10, but it's pretty useful
// to see more than that when a test fails.
global.Error.stackTraceLimit = 100;
installCommonGlobals(global, config.globals);
this.moduleMocker = new mock.ModuleMocker(global);
this.fakeTimers = new FakeTimers(global, this.moduleMocker, config);
}
printTestFileHeader(testPath, config, result) {
this.log(getResultHeader(result, this._globalConfig, config));
const consoleBuffer = result.console;
const testFailed = result.numFailingTests > 0;
if (testFailed && consoleBuffer && consoleBuffer.length) {
// prettier-ignore
this.log(
` ${TITLE_BULLET}Console\n\n${getConsoleOutput(
config.cwd,
!!this._globalConfig.verbose,
consoleBuffer
)}`
);
}
}
}
asyncError.message = `Invalid second argument, ${blockFn}. It must be a callback function.`;
throw asyncError;
}
dispatch({
asyncError,
blockName,
mode,
name: 'start_describe_definition',
});
const describeReturn = blockFn();
// TODO throw in Jest 25
if (isPromise(describeReturn)) {
console.log(
formatExecError(
new ErrorWithStack(
chalk.yellow(
'Returning a Promise from "describe" is not supported. Tests must be defined synchronously.\n' +
'Returning a value from "describe" will fail the test in a future version of Jest.',
),
describeFn,
),
{rootDir: '', testMatch: []},
{noStackTrace: false},
),
);
} else if (describeReturn !== undefined) {
console.log(
formatExecError(
new ErrorWithStack(
chalk.yellow(
'A "describe" callback must not return a value.\n' +
constructor(config, options = {}) {
this.dom = new JSDOM('', {
pretendToBeVisual: true,
runScripts: 'dangerously',
url: config.testURL,
virtualConsole: new VirtualConsole().sendTo(options.console || console),
...config.testEnvironmentOptions,
})
const global = (this.global = this.dom.window.document.defaultView)
if (!global) {
throw new Error('JSDOM did not return a Window object')
}
// Node's error-message stack size is limited at 10, but it's pretty useful
// to see more than that when a test fails.
this.global.Error.stackTraceLimit = 100
installCommonGlobals(global, config.globals)
// Report uncaught errors.
let userErrorListenerCount = 0
this.errorEventListener = event => {
if (userErrorListenerCount === 0 && event.error) {
process.emit('uncaughtException', event.error)
}
}
global.addEventListener('error', this.errorEventListener)
// However, don't report them as uncaught if the user listens to 'error' event.
// In that case, we assume the might have custom error handling logic.
/* eslint-disable @typescript-eslint/unbound-method */
const originalAddListener = global.addEventListener
const originalRemoveListener = global.removeEventListener
global.addEventListener = function(...args) {
if (args[0] === 'error') {
userErrorListenerCount++
environment.global.xit = (...args) => {
const stack = (0, _jestUtil.getCallsite)(1, runtime.getSourceMaps());
const xit = originalXit(...args); // @ts-ignore
xit.result.__callsite = stack;
return xit;
};
environment.global.fit = (...args) => {
const stack = (0, _jestUtil.getCallsite)(1, runtime.getSourceMaps());
const fit = originalFit(...args); // @ts-ignore
fit.result.__callsite = stack;
return fit;
};
}
environment.global.xit = (...args) => {
const stack = (0, _jestUtil.getCallsite)(1, runtime.getSourceMaps());
const xit = originalXit(...args); // @ts-ignore
xit.result.__callsite = stack;
return xit;
};
throw asyncError;
}
if (typeof blockFn !== 'function') {
asyncError.message = `Invalid second argument, ${blockFn}. It must be a callback function.`;
throw asyncError;
}
dispatch({
asyncError,
blockName,
mode,
name: 'start_describe_definition',
});
const describeReturn = blockFn();
// TODO throw in Jest 25
if (isPromise(describeReturn)) {
console.log(
formatExecError(
new ErrorWithStack(
chalk.yellow(
'Returning a Promise from "describe" is not supported. Tests must be defined synchronously.\n' +
'Returning a value from "describe" will fail the test in a future version of Jest.',
),
describeFn,
),
{rootDir: '', testMatch: []},
{noStackTrace: false},
),
);
} else if (describeReturn !== undefined) {
console.log(
formatExecError(
constructor(config) {
// jest doesn't need full global before runScript, but to reduce possible issues we create full copy here
this.global = assign({}, global, deepCopy(config.globals));
this.moduleMocker = new ModuleMocker(global);
this.fakeTimers = new FakeTimers(this.global, this.moduleMocker, config);
}