Testing (Series)
Understanding Unit Test From The Best Book On The Topic
Testing Ag-Grid React’s Custom Cell Renderer Component
Testing ErrorFallback Component
Testing useDebouncedValue Hook
Testing a HTTP Client Adaptor Hook useClient
Testing a HTTP Error Handler Utility Hook
Testing a Generic Fetch Item List hook with Mock Service
Introducing @mockapi/msw, mock an API server for your entities without writing any code with Mock Service Worker
Testing a Generic Save Item Hook with MSW and @mockapi/msw
Testing a Text Field component integrating Mui’s Text Field with React Hook Form
Subject Under Test(sut)
An error fallback component to be passed to ErrorBoundary
component from react-error-boundary
.
Behaviours
- In development mode, it shows error track trace
- In production mode, it hides error track trace
- It shows a
Reset
button, and clicking it callsresetErrorBoundary
action passed by parentErrorBoundary
component.
Notes
- The
renderInErrorBoundary
helper method renders a bomb component inside an actualErrorBoundary
, no mocks. It shows how the sut should be used. getByText
itself implicitly asserts if the element is in the document because if not found, it will throw an error. However, I asserted anyway for clarityqueryByTestId
is used to assert if the error stack trace is rendered in the DOM under production, it returns null if not found, contrary togetByTestId
, which would throw an error when the element is not found.@epic/enviornments
is mocked out to override the value to test production mode behaviour.- The
renderStandalone
helper method renders the component as any other React component, for the sole purpose of testing the behaviour of theReset
button. Because theresetErrorBoundary
is implicitly passed to the sut, and I don’t know a way to mock a React component prop yet. The test shouldn’t care about it anyway.