Use Jest, react testing-library, cypress and cypress-eyes in react-frontend.
In the core JS library, use Jest for units and consider .html test-beds for each widget containing nothing but the canvas. Cypress eyes might be useful for snapshotting, but snapshots might get in the way.
Outcome: