From df20512443c3f67473302a3dac512418f0f51e65 Mon Sep 17 00:00:00 2001 From: Chris Beer <cabeer@stanford.edu> Date: Tue, 19 Feb 2019 09:31:38 -0800 Subject: [PATCH] Refactor ManifestListItem test to use a createWrapper helper --- .../src/components/ManifestListItem.test.js | 52 ++++++++----------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/__tests__/src/components/ManifestListItem.test.js b/__tests__/src/components/ManifestListItem.test.js index 16c46918d..2b698224f 100644 --- a/__tests__/src/components/ManifestListItem.test.js +++ b/__tests__/src/components/ManifestListItem.test.js @@ -2,60 +2,54 @@ import React from 'react'; import { shallow } from 'enzyme'; import ManifestListItem from '../../../src/components/ManifestListItem'; +/** */ +function createWrapper(props) { + return shallow( + <ManifestListItem + manifestId="http://example.com" + title="xyz" + ready + addWindow={() => {}} + fetchManifest={() => {}} + t={t => t} + {...props} + />, + ).dive(); // to unwrapp HOC created by withStyle() +} + describe('ManifestListItem', () => { it('renders without an error', () => { - const addWindow = jest.fn(); - const wrapper = shallow( - <ManifestListItem - manifestId="http://example.com" - title="xyz" - ready - addWindow={addWindow} - t={t => t} - />, - ).dive(); + const wrapper = createWrapper(); expect(wrapper.find('.mirador-manifest-list-item').length).toBe(1); expect(wrapper.find('WithStyles(ButtonBase)').length).toBe(1); expect(wrapper.find('WithStyles(ButtonBase) WithStyles(Typography)').children().text()).toEqual('xyz'); }); it('renders a placeholder element until real data is available', () => { - const addWindow = jest.fn(); - const wrapper = shallow( - <ManifestListItem manifestId="http://example.com" addWindow={addWindow} />, - ).dive(); + const wrapper = createWrapper({ ready: false }); + expect(wrapper.find('.mirador-manifest-list-item').length).toBe(1); expect(wrapper.find('ReactPlaceholder').length).toBe(1); }); it('updates and adds window when button clicked', () => { const addWindow = jest.fn(); - const wrapper = shallow( - <ManifestListItem manifestId="http://example.com" title="xyz" addWindow={addWindow} />, - ).dive(); + const wrapper = createWrapper({ addWindow }); wrapper.find('WithStyles(ButtonBase)').simulate('click'); expect(addWindow).toHaveBeenCalledTimes(1); }); it('uses the manifest id if the title is not available', () => { - const addWindow = jest.fn(); - const wrapper = shallow( - <ManifestListItem manifestId="http://example.com" ready addWindow={addWindow} />, - ).dive(); + const wrapper = createWrapper({ ready: true, title: null }); + expect(wrapper.find('WithStyles(ButtonBase)').length).toBe(1); expect(wrapper.find('WithStyles(ButtonBase) WithStyles(Typography)').children().text()).toEqual('http://example.com'); }); it('displays the provider information', () => { - const addWindow = jest.fn(); - const wrapper = shallow( - <ManifestListItem manifestId="http://example.com" ready provider="ACME" addWindow={addWindow} />, - ).dive(); + const wrapper = createWrapper({ provider: 'ACME' }); expect(wrapper.find('WithStyles(Typography).mirador-manifest-list-item-provider').children().text()).toEqual('ACME'); }); it('displays a placeholder provider if no information is given', () => { - const addWindow = jest.fn(); - const wrapper = shallow( - <ManifestListItem manifestId="http://example.com" ready addWindow={addWindow} />, - ).dive(); + const wrapper = createWrapper(); expect(wrapper.find('WithStyles(Typography).mirador-manifest-list-item-provider').children().text()).toEqual('addedFromUrl'); }); }); -- GitLab