Unit test the button
yeah ... I know ... should have done this from the beginning! It's a simple component, but the complexity is growing!
We do have Puppeteer tests, but even running them with Jest is a touch awkward, as we seem unable to use "fake timers", meaning our tests need to await real-time events such as the 2-second debounce on click before the server is actually called. This makes them far from snappy, although as the component is lightweight there aren't all that many scenarios to test.
We might consider using Playwright with its Clock API instead, to speed up test runs. Alternatively, we could use DOM Testing Library with Jest for the bulk of our tests, and keep a couple of smoke tests using Puppeteer. In that case, there is also a Testing Library Puppeteer wrapper which would provide a consistent (and arguably nicer) API across all tests.