Integration testing하기
별거 없다
const MockTodo = ({ numberOfIncompleteTasks }) => (
<BrowserRouter>
<Todo />
</BrowserRouter>
);
const addTasks = (tasks) => {
const inputElement = screen.getByPlaceholderText(/Add a new task here.../i);
const buttonElement = screen.getByRole('button', { name: /Add/i });
tasks.forEach((task) => {
fireEvent.change(inputElement, { target: { value: task } });
fireEvent.click(buttonElement);
});
};
describe('Todo', () => {
it('tasks should not have completed class when intially rendered', async () => {
render(<MockTodo />);
const tasks = ['test1'];
addTasks(tasks);
const divElement = screen.getByText('test1');
expect(divElement).not.toHaveClass('todo-item-active');
});
it('tasks should have completed class when clicked', async () => {
render(<MockTodo />);
const tasks = ['test1'];
addTasks(tasks);
const divElement = screen.getByText('test1');
fireEvent.click(divElement);
expect(divElement).toHaveClass('todo-item-active');
});
});Last updated