-
Notifications
You must be signed in to change notification settings - Fork 232
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
react-hooks-testing-library
version: 0.3.7react-testing-library
version: N/A (I haven't installed this package in my repo for testing)react
version: 16.8node
version: 8.11.2npm
(oryarn
) version: 5.6.0
Relevant code or config:
const usCustomHook = (argA, argB) => {
if (!argA || typeof argA !== 'function') {
throw new Error('argA must be a function');
}
if (!argB || typeof argB !== 'string' || !argB.length) {
throw new Error('argB must be a string');
}
..... // code for the custom hook
}
What you did:
I am trying to implement a custom hook adding validation for the arguments to match the expectations. undefined arguments should result in throwing error.
What happened:
The custom hook itself works as expected, however when testing above using jest passes tests but prints errors in console:
Tests:
test('Not providing valid argA should fail', () => {
try {
renderHook(() => useCustomHook(undefined, 'invalid data'));
} catch (e) {
expect(e.message).toBe('argA must be a function');
}
try {
renderHook(() => useCustomHook('foo', 'invalid data'));
} catch (e) {
expect(e.message).toBe('argA must be a function');
}
});
test('Not providing valid argB should fail', () => {
try {
renderHook(() => useCustomHook(() => {}, undefined));
} catch (e) {
expect(e.message).toBe('argB must be a string');
}
try {
renderHook(() => useCustomHook(() => {}, 12345));
} catch (e) {
expect(e.message).toBe('argB must be a string');
}
});
Error it prints in console with tests passing:
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Uncaught [Error: argA must be a function]
console.error node_modules/react-dom/cjs/react-dom.development.js:17071
The above error occurred in the <TestHook> component:
in TestHook
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Uncaught [Error: argA must be a function]
console.error node_modules/react-dom/cjs/react-dom.development.js:17071
The above error occurred in the <TestHook> component:
in TestHook
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Uncaught [Error: argB must be a string]
console.error node_modules/react-dom/cjs/react-dom.development.js:17071
The above error occurred in the <TestHook> component:
in TestHook
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Uncaught [Error: argB must be a string]
console.error node_modules/react-dom/cjs/react-dom.development.js:17071
The above error occurred in the <TestHook> component:
in TestHook
Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://fb.me/react-error-boundaries to learn more about error boundaries.
Reproduction:
CodeSandBox link: https://codesandbox.io/s/183om7054
Problem description:
I believe it would be ideal not to print the jsdom errors since the errors are catched and error message is verified using jest.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request