From 034c9aa812b595c472f88b1e965624cb0be4e3fb Mon Sep 17 00:00:00 2001 From: Jacek Date: Sat, 21 Feb 2026 10:13:53 -0600 Subject: [PATCH 1/3] fix(test): Mock @formkit/auto-animate/react in vitest setup The __mocks__ directory in src/elements/ was not detected by Vitest for node_module mocks, so auto-animate ran in tests and leaked timers that fired after jsdom teardown, causing requestAnimationFrame errors. --- packages/clerk-js/vitest.setup.mts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/clerk-js/vitest.setup.mts b/packages/clerk-js/vitest.setup.mts index ed0c190ea20..85786470155 100644 --- a/packages/clerk-js/vitest.setup.mts +++ b/packages/clerk-js/vitest.setup.mts @@ -262,6 +262,13 @@ if (typeof window !== 'undefined') { window.getComputedStyle = patchedGetComputedStyle; } +// Mock @formkit/auto-animate to prevent timers leaking after test teardown. +// The __mocks__ directory in src/elements/ is not detected by Vitest for +// node_module mocks, so we need an explicit vi.mock here. +vi.mock('@formkit/auto-animate/react', () => ({ + useAutoAnimate: () => [null], +})); + // Mock browser-tabs-lock to prevent window access errors in tests vi.mock('browser-tabs-lock', () => { return { From d9a8595977a64ae176d2b22842c1b23f8089cc69 Mon Sep 17 00:00:00 2001 From: Jacek Date: Sun, 22 Feb 2026 22:13:59 -0600 Subject: [PATCH 2/3] chore: add empty changeset --- .changeset/calm-forks-take.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .changeset/calm-forks-take.md diff --git a/.changeset/calm-forks-take.md b/.changeset/calm-forks-take.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/calm-forks-take.md @@ -0,0 +1,2 @@ +--- +--- From 3cda8c676b9e46ed6009e410b41c212c485aa5e3 Mon Sep 17 00:00:00 2001 From: Jacek Date: Sun, 22 Feb 2026 22:24:51 -0600 Subject: [PATCH 3/3] fix(repo): Remove unused __mocks__ directory for auto-animate This mock was never picked up by Vitest since __mocks__ directories nested inside src/ are not detected for node_module mocks. The explicit vi.mock in vitest.setup.mts now handles this. --- .../src/elements/__mocks__/@formkit/auto-animate/react/index.ts | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 packages/ui/src/elements/__mocks__/@formkit/auto-animate/react/index.ts diff --git a/packages/ui/src/elements/__mocks__/@formkit/auto-animate/react/index.ts b/packages/ui/src/elements/__mocks__/@formkit/auto-animate/react/index.ts deleted file mode 100644 index 60259fac7be..00000000000 --- a/packages/ui/src/elements/__mocks__/@formkit/auto-animate/react/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -const useAutoAnimate = () => [null]; -export { useAutoAnimate };