import React, { Fragment } from 'react' import renderer from 'react-test-renderer' import { mount } from 'enzyme' import { Caption } from './caption' import { Review } from './index' const defaultReviewProps = { title: 'Review title', text: 'Review content', formattedDatetime: '05 jul - 17:39', isoDatetime: '2017-08-07T14:10:40.526Z', } function assertReview( review: any, expectedTitle: string, expectedText: string, expectedDate: string, isReviewResponse: boolean, ) { const title = review.find('h2') expect(title.text()).toBe('Review title') const paragraph = review.find('p') expect(paragraph.text()).toBe('Review content') const date = review.find(Caption) expect(date.text()).toBe('05 jul - 17:39') const reviewResponse = review.find('.kirk-is-review-response') expect(reviewResponse.exists()).toBe(isReviewResponse) } it('Should render basic review', () => { const review = mount() assertReview(review, 'Review title', 'Review content', '05 jul - 17:39', false) }) it('Should render review response', () => { const review = mount() assertReview(review, 'Review title', 'Review content', '05 jul - 17:39', true) }) it('Should render basic review with href link', () => { const review = mount( , ) const replyReviewLink = review.find('.kirk-button') expect(replyReviewLink.exists()).toBe(true) expect(replyReviewLink.text()).toBe('Reply to this review') }) it('Should render basic review with onClick link', () => { const review = mount( {}} />, ) const replyReviewLink = review.find('.kirk-button') expect(replyReviewLink.exists()).toBe(true) expect(replyReviewLink.text()).toBe('Reply to this review') }) it('Should render review microdata annotations and HTML', () => { const reviewAndResponse = ( ) const component = renderer.create(reviewAndResponse).toJSON() expect(component).toMatchSnapshot() })