feat: Добавлены тесты React компонентов. Тесты базовой логики, Граничных тестов, стилей
This commit is contained in:
34
src/shared/ui/Button/Button.test.tsx
Normal file
34
src/shared/ui/Button/Button.test.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
import { fireEvent, render, screen } from '@testing-library/react'
|
||||
|
||||
import { Button } from './Button'
|
||||
|
||||
describe('Button', () => {
|
||||
// Тест на рендеринг кнопки
|
||||
it('должна рендериться корректно', () => {
|
||||
render(<Button>Test Button</Button>)
|
||||
expect(screen.getByText('Test Button')).toBeInTheDocument()
|
||||
})
|
||||
|
||||
// Тест на применение класса варианта
|
||||
it('должна применять класс варианта', () => {
|
||||
render(<Button variant='regular'>Regular Button</Button>)
|
||||
const button = screen.getByText('Regular Button')
|
||||
// Проверяем наличие класса, который генерируется CSS модулями (частичное совпадение)
|
||||
expect(button.className).toMatch(/regular/)
|
||||
})
|
||||
|
||||
// Тест на обработку клика
|
||||
it('должна вызывать обработчик onClick при клике', () => {
|
||||
const handleClick = jest.fn()
|
||||
render(<Button onClick={handleClick}>Click Me</Button>)
|
||||
|
||||
fireEvent.click(screen.getByText('Click Me'))
|
||||
expect(handleClick).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
|
||||
// Тест на отключенное состояние
|
||||
it('должна быть отключена при передаче пропса disabled', () => {
|
||||
render(<Button disabled>Disabled Button</Button>)
|
||||
expect(screen.getByText('Disabled Button')).toBeDisabled()
|
||||
})
|
||||
})
|
||||
18
src/shared/ui/Card/Card.test.tsx
Normal file
18
src/shared/ui/Card/Card.test.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { render, screen } from '@testing-library/react'
|
||||
|
||||
import { Card } from './Card'
|
||||
|
||||
describe('Card', () => {
|
||||
// Тест на рендеринг заголовка и описания
|
||||
it('должна рендерить заголовок и описание', () => {
|
||||
render(<Card title='1992' description='Test Description' />)
|
||||
expect(screen.getByText('1992')).toBeInTheDocument()
|
||||
expect(screen.getByText('Test Description')).toBeInTheDocument()
|
||||
})
|
||||
|
||||
// Тест на рендеринг числового заголовка
|
||||
it('должна корректно рендерить числовой заголовок', () => {
|
||||
render(<Card title={2023} description='Year Description' />)
|
||||
expect(screen.getByText('2023')).toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user