Skip to content
Snippets Groups Projects

feat(overlays): MIN-191 add possibility to login

Merged mateusz-winiarczyk requested to merge MIN-191-add-possibility-to-login into development
Files
27
 
import { render, screen, fireEvent } from '@testing-library/react';
 
import { StoreType } from '@/redux/store';
 
import {
 
InitialStoreState,
 
getReduxWrapperWithStore,
 
} from '@/utils/testing/getReduxWrapperWithStore';
 
import { act } from 'react-dom/test-utils';
 
import { LoginModal } from './LoginModal.component';
 
 
const renderComponent = (initialStoreState: InitialStoreState = {}): { store: StoreType } => {
 
const { Wrapper, store } = getReduxWrapperWithStore(initialStoreState);
 
 
return (
 
render(
 
<Wrapper>
 
<LoginModal />
 
</Wrapper>,
 
),
 
{
 
store,
 
}
 
);
 
};
 
 
test('renders LoginModal component', () => {
 
renderComponent();
 
 
const loginInput = screen.getByLabelText(/login/i);
 
const passwordInput = screen.getByLabelText(/password/i);
 
expect(loginInput).toBeInTheDocument();
 
expect(passwordInput).toBeInTheDocument();
 
});
 
 
test('handles input change correctly', () => {
 
renderComponent();
 
 
const loginInput: HTMLInputElement = screen.getByLabelText(/login/i);
 
const passwordInput: HTMLInputElement = screen.getByLabelText(/password/i);
 
 
fireEvent.change(loginInput, { target: { value: 'testuser' } });
 
fireEvent.change(passwordInput, { target: { value: 'testpassword' } });
 
 
expect(loginInput.value).toBe('testuser');
 
expect(passwordInput.value).toBe('testpassword');
 
});
 
 
test('submits form', () => {
 
renderComponent();
 
 
const loginInput = screen.getByLabelText(/login/i);
 
const passwordInput = screen.getByLabelText(/password/i);
 
const submitButton = screen.getByText(/submit/i);
 
 
fireEvent.change(loginInput, { target: { value: 'testuser' } });
 
fireEvent.change(passwordInput, { target: { value: 'testpassword' } });
 
act(() => {
 
submitButton.click();
 
});
 
 
expect(submitButton).toBeDisabled();
 
});
Loading