diff --git a/bloglist_frontend/src/components/Blog.test.js b/bloglist_frontend/src/components/Blog.test.js new file mode 100644 index 0000000000000000000000000000000000000000..54c5a98f38d05ab0427a660cabdd2e30b102fed2 --- /dev/null +++ b/bloglist_frontend/src/components/Blog.test.js @@ -0,0 +1,38 @@ +import React from 'react' +import '@testing-library/jest-dom/extend-expect' +import { render, screen } from '@testing-library/react' +import userEvent from '@testing-library/user-event' +import Blog from './Blog' + + const loggedUser = { + username: "mluukkai", + name: "Matti Luukkainen" + } + + test('renders title and author', async () => { + const blog = { + title: 'Title is rendered okay', + author: 'Test Author', + user: "mluukkai" + } + render(<Blog blog={blog} user={loggedUser} />) + const element = screen.getByText('Title is rendered okay by Test Author') + expect(element).toBeDefined() + }) + + test('clicking the likebutton calls event handler twice', async () => { + const blog = { + title: 'Component testing is done with react-testing-library', + user: "mluukkai" + } + const mockHandler = jest.fn() + render( + <Blog blog={blog} addLike={mockHandler} user={loggedUser} /> + ) + const user = userEvent.setup() + const button = screen.getByText('like') + await user.click(button) + await user.click(button) + + expect(mockHandler.mock.calls).toHaveLength(2) + }) \ No newline at end of file