first commit
This commit is contained in:
53
src/componentsTest/HozzadasForm.test.jsx
Normal file
53
src/componentsTest/HozzadasForm.test.jsx
Normal file
@@ -0,0 +1,53 @@
|
||||
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()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user