-
Notifications
You must be signed in to change notification settings - Fork 5
/
item.spec.js
33 lines (22 loc) · 1.03 KB
/
item.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { render, fireEvent } from '@testing-library/svelte';
import Item from './item.svelte';
describe('Item', () => {
it('should display todo item', () => {
const todo = { id: 'e2bb892a-844a-47fb-a2b3-47f491af9d88', name: 'Demo', completed: false };
const { getByTestId } = render(Item, { todo });
expect(getByTestId('todo-name')).toHaveTextContent(todo.name);
});
it('should mark todo item as completed', () => {
const todo = { id: 'e2bb892a-844a-47fb-a2b3-47f491af9d88', name: 'Demo', completed: true };
const { getByTestId } = render(Item, { todo });
expect(getByTestId('todo-item')).toHaveClass('completed');
});
it('should notify about delete button', () => {
const todo = { id: 'e2bb892a-844a-47fb-a2b3-47f491af9d88', name: 'Demo', completed: false };
const { getByTestId, component } = render(Item, { todo });
let removeId;
component.$on('remove', event => (removeId = event.detail));
fireEvent.click(getByTestId('todo-remove'));
expect(removeId).toEqual(todo.id);
});
});