import { render } from 'layout-test-utils';
import userEvent from '@testing-library/user-event';
import Login from '../LoginForm';
const mockLogin = jest.fn();
test('renders login form', () => {
const { getByLabelText } = render();
expect(getByLabelText(/email/i)).toBeInTheDocument();
expect(getByLabelText(/password/i)).toBeInTheDocument();
});
test('submits login form', async () => {
const { getByLabelText, getByRole } = render();
const emailInput = getByLabelText(/email/i);
const passwordInput = getByLabelText(/password/i);
const submitButton = getByRole('button', { name: /Sign in/i });
await userEvent.type(emailInput, 'test@example.com');
await userEvent.type(passwordInput, 'password');
await userEvent.click(submitButton);
expect(mockLogin).toHaveBeenCalledWith({ email: 'test@example.com', password: 'password' });
});
test('displays validation error messages', async () => {
const { getByLabelText, getByRole, getByText } = render();
const emailInput = getByLabelText(/email/i);
const passwordInput = getByLabelText(/password/i);
const submitButton = getByRole('button', { name: /Sign in/i });
await userEvent.type(emailInput, 'test');
await userEvent.type(passwordInput, 'pass');
await userEvent.click(submitButton);
expect(getByText(/You must enter a valid email address/i)).toBeInTheDocument();
expect(getByText(/Password must be at least 8 characters/i)).toBeInTheDocument();
});