Skip to content

Commit

Permalink
[test(auth)]: Add unit tests for useSignInUpForm hook (#9648)
Browse files Browse the repository at this point in the history
Introduce unit tests to validate the behavior of the useSignInUpForm
hook. Tests cover default initialization, handling of developer
defaults, and prefilled values based on state.
  • Loading branch information
AMoreaux authored Jan 15, 2025
1 parent 585212b commit 266b771
Showing 1 changed file with 68 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import { RecoilRoot, useSetRecoilState } from 'recoil';
import { renderHook } from '@testing-library/react';
import { useSignInUpForm } from '@/auth/sign-in-up/hooks/useSignInUpForm';
import { ReactNode } from 'react';
import { MemoryRouter } from 'react-router-dom';
import { isDeveloperDefaultSignInPrefilledState } from '@/client-config/states/isDeveloperDefaultSignInPrefilledState';

describe('useSignInUpForm', () => {
beforeEach(() => {
jest.clearAllMocks();
});

it('should initialize the form with default values', async () => {
const { result } = renderHook(() => useSignInUpForm(), {
wrapper: ({ children }: { children: ReactNode }) => (
<MemoryRouter>
<RecoilRoot>{children}</RecoilRoot>
</MemoryRouter>
),
});
expect(result.current.form).toBeDefined();
});

it('should not prefill sign-in developer defaults when state is false', () => {
const { result } = renderHook(() => useSignInUpForm(), {
wrapper: ({ children }: { children: ReactNode }) => (
<MemoryRouter initialEntries={['[email protected]']}>
<RecoilRoot>{children}</RecoilRoot>
</MemoryRouter>
),
});

expect(result.current.form.getValues()).toEqual({
exist: false,
email: '[email protected]',
password: '',
captchaToken: '',
});
});

it('should prefill developer defaults when the state is true', () => {
const { result } = renderHook(
() => {
const setIsDeveloperDefaultSignInPrefilledState = useSetRecoilState(
isDeveloperDefaultSignInPrefilledState,
);

setIsDeveloperDefaultSignInPrefilledState(true);

return useSignInUpForm();
},
{
wrapper: ({ children }: { children: ReactNode }) => (
<MemoryRouter initialEntries={['[email protected]']}>
<RecoilRoot>{children}</RecoilRoot>
</MemoryRouter>
),
},
);

expect(result.current.form.getValues()).toEqual({
exist: false,
email: '[email protected]',
password: 'Applecar2025',
captchaToken: '',
});
});
});

0 comments on commit 266b771

Please sign in to comment.