54 lines
2.0 KiB
JavaScript
54 lines
2.0 KiB
JavaScript
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(<HozzadasForm hozzaAd={mockHozzaAd} />)
|
|
|
|
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(<HozzadasForm hozzaAd={mockHozzaAd} />)
|
|
|
|
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(<HozzadasForm hozzaAd={mockHozzaAd} />)
|
|
|
|
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()
|
|
})
|
|
})
|