Files
notes/src/components/DeleteModal.test.tsx
T

43 lines
1.5 KiB
TypeScript

import { fireEvent, render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import DeleteModal from './DeleteModal'
describe('DeleteModal', () => {
it('renders nothing when closed', () => {
render(<DeleteModal open={false} title="Courses" onConfirm={vi.fn()} onCancel={vi.fn()} />)
expect(screen.queryByRole('dialog')).not.toBeInTheDocument()
})
it('renders the dialog with the note title when open', () => {
render(<DeleteModal open title="Courses" onConfirm={vi.fn()} onCancel={vi.fn()} />)
expect(screen.getByRole('dialog', { name: 'Supprimer la note ?' })).toBeInTheDocument()
expect(screen.getByText(/Courses/)).toBeInTheDocument()
})
it('shows a placeholder when the note has no title', () => {
render(<DeleteModal open title="" onConfirm={vi.fn()} onCancel={vi.fn()} />)
expect(screen.getByText(/Sans titre/)).toBeInTheDocument()
})
it('calls onConfirm when the confirm button is clicked', () => {
const onConfirm = vi.fn()
render(<DeleteModal open title="Courses" onConfirm={onConfirm} onCancel={vi.fn()} />)
fireEvent.click(screen.getByRole('button', { name: 'Supprimer' }))
expect(onConfirm).toHaveBeenCalled()
})
it('calls onCancel when the cancel button is clicked', () => {
const onCancel = vi.fn()
render(<DeleteModal open title="Courses" onConfirm={vi.fn()} onCancel={onCancel} />)
fireEvent.click(screen.getByRole('button', { name: 'Annuler' }))
expect(onCancel).toHaveBeenCalled()
})
})