import { shallow, ShallowWrapper } from 'enzyme'; import { Mock } from 'ts-mockery'; import VisitsHeader from '../../src/visits/VisitsHeader'; import { Visit } from '../../src/visits/types'; describe('<VisitsHeader />', () => { let wrapper: ShallowWrapper; const visits = [ Mock.all<Visit>(), Mock.all<Visit>(), Mock.all<Visit>() ]; const title = 'My header title'; const goBack = jest.fn(); beforeEach(() => { wrapper = shallow( <VisitsHeader visits={visits} goBack={goBack} title={title} />, ); }); afterEach(() => wrapper.unmount()); afterEach(jest.resetAllMocks); it('shows the amount of visits', () => { const visitsBadge = wrapper.find('.badge'); expect(visitsBadge.html()).toContain( `Visits: <span><strong class="short-url-visits-count__amount">${visits.length}</strong></span>`, ); }); it('shows the title in two places', () => { const titles = wrapper.find('.text-center'); expect(titles).toHaveLength(2); expect(titles.at(0).html()).toContain(title); expect(titles.at(1).html()).toContain(title); }); });