This project was bootstrapped with Create React App.
In the project directory, you can run:
Runs the app in the development mode on http://localhost:3000
Runs the unit tests
Runs the e2e test in Cypress
With more time there's a few things I'd like to address:
- There's an
Error: AggregateError
message that sometimes appears when running the unit tests. - There's a known issue when using MSW (Mock Service Worker) with Jest - https://mswjs.io/docs/migrations/1.x-to-2.x/#requestresponsetextencoder-is-not-defined-jest.The fix suggested in their docs didn't work for me. I also tried solutions discussed here: mswjs/msw#1916, but nothing worked so I just used Jest to mock the response I needed.
- When running the e2e test, Cypress re-enables MSW when switching routes. In the actual app when I perform the POST operation I'm adding the new consent to an existing array and then that updated array is returned on the subsequent GET request. That's why I'm able to see the new consent I've added on the
/consents
page. But when running the e2e test that doesnt work because re-enabling MSW removes the new item added to the array. So I've had to mock that GET request sperately just for the test. I guess this wouldn't be an issue in reality because the logic for the POST operation would actually live on the server.