import React from 'react';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { LoginForm } from '../LoginForm';
describe('LoginForm', () => {
test('should render Login form', () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
test('should call onChangeUsername callback', async () => {
const mockFn = jest.fn();
const user = userEvent.setup();
render();
await user.type(screen.getByText('Username'), 'updatedUserName');
expect(mockFn).toHaveBeenCalled();
});
test('should call onChangePassword callback', async () => {
const mockFn = jest.fn();
const user = userEvent.setup();
render();
await user.type(screen.getByText('Password'), 'updatedPassword');
expect(mockFn).toHaveBeenCalled();
});
test('should call onChangeRememberMe callback', async () => {
const mockFn = jest.fn();
const user = userEvent.setup();
render();
await user.click(screen.getByLabelText('Remember me'));
expect(mockFn).toHaveBeenCalled();
});
test('LoginForm with rememberMeLabel', () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
test('LoginForm with show password', () => {
const { asFragment } = render();
expect(asFragment()).toMatchSnapshot();
});
});