fix: only navigate on sign-out success, not on error
This commit is contained in:
@@ -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()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user