import { describe, it, expect, vi } from 'vitest' import { render, screen, fireEvent } from '@testing-library/react' import HozzadasForm from '../components/HozzadasForm' describe('HozzadasForm', () => { it('Hibák megjelennek üres submitnál', () => { const mockHozzaAd = vi.fn() render() const submitButton = screen.getByDisplayValue('Küldés') fireEvent.submit(submitButton.closest('form')) expect(screen.getByText('A név megadása kötelező')).toBeInTheDocument() expect(screen.getByText('Az email megadása kötelező')).toBeInTheDocument() expect(mockHozzaAd).not.toHaveBeenCalled() }) it('Érvényes adatoknál meghívódik az onSubmit', () => { const mockHozzaAd = vi.fn() render() const nevInput = screen.getByPlaceholderText('Név') const emailInput = screen.getByPlaceholderText('Email') const submitButton = screen.getByDisplayValue('Küldés') fireEvent.change(nevInput, { target: { value: 'Teszt Elek' } }) fireEvent.change(emailInput, { target: { value: 'teszt@proba.com' } }) fireEvent.submit(submitButton.closest('form')) expect(mockHozzaAd).toHaveBeenCalledWith( expect.objectContaining({ nev: 'Teszt Elek', email: 'teszt@proba.com' }) ) }) it('Érvénytelen email nem engedi a submitet', () => { const mockHozzaAd = vi.fn() render() const nevInput = screen.getByPlaceholderText('Név') const emailInput = screen.getByPlaceholderText('Email') const submitButton = screen.getByDisplayValue('Küldés') fireEvent.change(nevInput, { target: { value: 'Teszt Elek' } }) fireEvent.change(emailInput, { target: { value: 'rosszemail' } }) fireEvent.submit(submitButton.closest('form')) expect(screen.getByText('Érvénytelen email formátum')).toBeInTheDocument() expect(mockHozzaAd).not.toHaveBeenCalled() }) })