/
githubmirror
/
redux
Обзор
Документация
Войти
/
githubmirror
/
redux
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/todomvc/src/components/MainSection.spec.js
107 строк
3 KB
Tim Dorr
Format the examples
20 мар 2024, 19:52
Не верифицирован
20 мар 2024, 19:52
3085048
Код
Авторство
О чём код?
import React from 'react' import { createRenderer } from 'react-test-renderer/shallow' import MainSection from './MainSection' import Footer from './Footer' import VisibleTodoList from '../containers/VisibleTodoList' const setup = propOverrides => { const props = Object.assign( { todosCount: 2, completedCount: 1, actions: { editTodo: jest.fn(), deleteTodo: jest.fn(), completeTodo: jest.fn(), completeAllTodos: jest.fn(), clearCompleted: jest.fn() } }, propOverrides ) const renderer = createRenderer() renderer.render(<MainSection {...props} />) const output = renderer.getRenderOutput() return { props: props, output: output, renderer: renderer } } describe('components', () => { describe('MainSection', () => { it('should render container', () => { const { output } = setup() expect(output.type).toBe('section') expect(output.props.className).toBe('main') }) describe('toggle all input', () => { it('should render', () => { const { output } = setup() const [toggle] = output.props.children[0].props.children expect(toggle.type).toBe('input') expect(toggle.props.className).toBe('toggle-all') expect(toggle.props.type).toBe('checkbox') expect(toggle.props.checked).toBe(false) }) it('should be checked if all todos completed', () => { const { output } = setup({ completedCount: 2 }) const [toggle] = output.props.children[0].props.children expect(toggle.props.checked).toBe(true) }) it('should call completeAllTodos on change', () => { const { output, props } = setup() const [, label] = output.props.children[0].props.children label.props.onClick({}) expect(props.actions.completeAllTodos).toBeCalled() }) }) describe('footer', () => { it('should render', () => { const { output } = setup() const [, , footer] = output.props.children expect(footer.type).toBe(Footer) expect(footer.props.completedCount).toBe(1) expect(footer.props.activeCount).toBe(1) }) it('onClearCompleted should call clearCompleted', () => { const { output, props } = setup() const [, , footer] = output.props.children footer.props.onClearCompleted() expect(props.actions.clearCompleted).toBeCalled() }) }) describe('visible todo list', () => { it('should render', () => { const { output } = setup() const [, visibleTodoList] = output.props.children expect(visibleTodoList.type).toBe(VisibleTodoList) }) }) describe('toggle all input and footer', () => { it('should not render if there are no todos', () => { const { output } = setup({ todosCount: 0, completedCount: 0 }) const renderedChildren = output.props.children.filter( item => item !== false ) expect(renderedChildren.length).toBe(1) expect(renderedChildren[0].type).toBe(VisibleTodoList) }) }) }) })