From 27ef99c76d2ae77d1a6619492161e0b9ffb2234b Mon Sep 17 00:00:00 2001 From: belviskhoremk Date: Wed, 12 Aug 2026 11:10:28 +0200 Subject: [PATCH] fix: only navigate on sign-out success, not on error --- src/pages/admin/AdminLayout.test.tsx | 8 ++++++++ src/pages/admin/AdminLayout.tsx | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pages/admin/AdminLayout.test.tsx b/src/pages/admin/AdminLayout.test.tsx index f8f0d6b..9847691 100644 --- a/src/pages/admin/AdminLayout.test.tsx +++ b/src/pages/admin/AdminLayout.test.tsx @@ -51,4 +51,12 @@ describe('AdminLayout', () => { expect(signOutMock).toHaveBeenCalled() expect(navigateMock).toHaveBeenCalledWith('/admin/login') }) + + it('does not navigate if sign out fails', async () => { + signOutMock.mockResolvedValue({ error: new Error('Sign out failed') }) + renderLayout() + await userEvent.click(screen.getByRole('button', { name: /sign out/i })) + expect(signOutMock).toHaveBeenCalled() + expect(navigateMock).not.toHaveBeenCalled() + }) }) diff --git a/src/pages/admin/AdminLayout.tsx b/src/pages/admin/AdminLayout.tsx index 1bb1094..ab60049 100644 --- a/src/pages/admin/AdminLayout.tsx +++ b/src/pages/admin/AdminLayout.tsx @@ -14,8 +14,8 @@ function AdminLayout() { const navigate = useNavigate() async function handleSignOut() { - await supabase.auth.signOut() - navigate('/admin/login') + const { error } = await supabase.auth.signOut() + if (!error) navigate('/admin/login') } return (