Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/Savy011/fullstackopen-exercises. My Exercise Submissions for FullStack Open fullstackopen.com/en
Something went wrong. Try again.
1.8 kB · 65 lines
JavaScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566import React from 'react'import { render, screen } from '@testing-library/react'import '@testing-library/jest-dom/extend-expect'import userEvent from '@testing-library/user-event'import Blog from '../components/Blog'
describe('<Blog />', () => { let container const blog = { title: 'test blog', author: 'test author', url: 'https://link.to.test/blog', likes: 1212, user: { id: '918273645', username: 'testuser1' } } const user = { username: 'testuser1' } const mockHandler = jest.fn()
beforeEach(() => { container = render(<Blog blog={blog} user={user} updateBlog={mockHandler} deleteBlog={mockHandler} />).container })
test('renders title and author but not url or likes', () => { const blogDetails = container.querySelector('.blog-details')
expect(blogDetails).toHaveStyle('display: none') })
test('all blog details are render when \'Show\' button is clicked', async () => { const testUser = userEvent.setup() const showButton = screen.getByText('Show') await testUser.click(showButton)
const blogDetails = container.querySelector('.blog-details')
expect(blogDetails).not.toHaveStyle('display: none') expect(blogDetails).toHaveTextContent('Url: https://link.to.test/blog') expect(blogDetails).toHaveTextContent('Likes: 1212') })
test('clicking the like button two times, calls the updateBlog Handler twice', async () => { const testUser = userEvent.setup()
const showButton = screen.getByText('Show') await testUser.click(showButton)
const blogDetails = container.querySelector('.blog-details')
expect(blogDetails).toHaveTextContent('Url: https://link.to.test/blog')
const likeButton = screen.getByText('Like') await testUser.click(likeButton) await testUser.click(likeButton)
expect(mockHandler.mock.calls).toHaveLength(2) })})