blessing-skin-server/resources/assets/tests/views/widgets/EmailVerification.test.tsx
Zephyr Lykos 9524a234cf
cleanup: wip 3.1
mostly misc cleanups
2024-02-24 23:01:32 +08:00

41 lines
1.3 KiB
TypeScript

import {
expect, vi, it, describe,
} from 'vitest';
import {render, fireEvent, waitFor} from '@testing-library/react';
import {t} from '@/scripts/i18n';
import * as fetch from '@/scripts/net';
import EmailVerification from '@/views/widgets/EmailVerification';
vi.mock('@/scripts/net');
describe('send email', () => {
it('succeeded', async () => {
fetch.post.mockResolvedValue({code: 0, message: 'success'});
const {getByText, getByRole, queryByText} = render(<EmailVerification/>);
fireEvent.click(getByText(t('user.verification.resend')));
await waitFor(() => {
expect(fetch.post).toBeCalledWith('/user/email-verification');
},
);
expect(queryByText('success')).toBeInTheDocument();
expect(getByRole('status')).toHaveClass('alert-success');
});
it('failed', async () => {
fetch.post.mockResolvedValue({code: 1, message: 'failed'});
const {getByText, getByRole, queryByText} = render(<EmailVerification/>);
fireEvent.click(getByText(t('user.verification.resend')));
await waitFor(() => {
expect(fetch.post).toBeCalledWith('/user/email-verification');
},
);
expect(fetch.post).toBeCalledWith('/user/email-verification');
expect(queryByText('failed')).toBeInTheDocument();
expect(getByRole('alert')).toHaveClass('alert-danger');
});
});