From 7a53342966f7003f45eddb3f7d4bd8637cd6f2b5 Mon Sep 17 00:00:00 2001 From: Drake Costa Date: Thu, 10 Jul 2025 00:16:45 -0700 Subject: [PATCH] add smoke test for `NewAccessTokenButton`, fix vitest config This adds a minimal test for `NewAccessTokenButton` but more importantly fixes a critical bug in the vitest configuration for `studio`. Because `restoreMocks: true` was set in the config, this meant that the mock implementation for `window.matchMedia` defined in the `tests/vitestSetup.ts` file was being **reset** to an empty function before each test suite was run. While this didn't appear to be a problem before, that appears to be because none of the existing tests had `motion.div` in their component trees. Since `motion.div` calls `addListener` on a media query as part of it's lifecycle, that meant that any test which included it would fail as `addListener` would be undefined in this situation. Removing `restoreMocks: true` from the config results in the desired mocking behavior. This change is necessary in order to test any component that has the `FormItemLayout` component, as it uses `framer-motion` to animate in error messages for input elements. --- .../interfaces/Account/NewAccessTokenButton.tsx | 9 +++++++-- .../__tests__/NewAccessTokenButton.test.tsx | 16 ++++++++++++++++ apps/studio/vitest.config.ts | 1 - 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 apps/studio/components/interfaces/Account/__tests__/NewAccessTokenButton.test.tsx diff --git a/apps/studio/components/interfaces/Account/NewAccessTokenButton.tsx b/apps/studio/components/interfaces/Account/NewAccessTokenButton.tsx index 92bc2ea585c..869df587ae5 100644 --- a/apps/studio/components/interfaces/Account/NewAccessTokenButton.tsx +++ b/apps/studio/components/interfaces/Account/NewAccessTokenButton.tsx @@ -83,6 +83,7 @@ const NewAccessTokenButton = ({ onCreateToken }: NewAccessTokenButtonProps) => {