Commit 36ed95a
authored
deps: migrate from Enzyme to RTL (agilgur5#88)
* deps: migrate from Enzyme to RTL
- Enzyme only has unofficial support for React 17 and no support what-so-ever for React 18, so forced to migrate
- RTL is most certainly more of an integration testing library than a unit test library
- can't access the instance through RTL, even though this component actually _needs_ to use refs (bc canvas)
- I managed to hack around this by using refs, but I honestly wasn't even sure that this was possible
- notably hooks like `useRef` don't work since they can only be used inside of a React component or another hook
- but callback refs and `createRef` do work fortunately
- tried to use `react-dom-instance` initially, as suggested in blog post by the author, but it only works with React 16
- in React 17 and React 18 it just returns `false` and doesn't get an instance
- `querySelector` is an escape hatch that is not recommended, enough so that I read through the docs multiple times before finding it was even possible
- was using `document.querySelector` directly before finding this
- somewhat replaces Enzyme's `exists`
- `rerender` is also a bit of an escape hatch
- notably, you can't set props directly on a `ref`, `.props` is a read-only property, so had to find some alternative to be able to run the tests
- replaces Enzyme's `setProps`
- had to change `clearOnResize` to an optional type as it was required without this
- despite that it's in `defaultProps`; the interface itself can't infer this, so probably makes sense to make it optional here as well
* fix lint issues1 parent 9c6c3ae commit 36ed95a
File tree
6 files changed
+284
-748
lines changed- src
- test
- config
6 files changed
+284
-748
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
10 | 8 | | |
11 | 9 | | |
12 | 10 | | |
| |||
0 commit comments