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 (