UNPKG

@kiwicom/smart-faq

Version:

56 lines (49 loc) 1.57 kB
// @flow import * as React from 'react'; import { mount } from 'enzyme'; import PageVariantContext, { VARIANTS } from '../../context/PageVariant'; import { SidebarVersion, FullPageVersion } from '../PageVariant'; const FakeComponent = () => <div>Hello World!</div>; const PrepareComponentForTest = Component => { const PreparedComponent = ({ variant, urlPrefix }) => ( <PageVariantContext.Provider value={{ variant, urlPrefix }}> <Component> <FakeComponent /> </Component> </PageVariantContext.Provider> ); return PreparedComponent; }; const TestCases = [ { Component: PrepareComponentForTest(SidebarVersion), componentName: 'SidebarVersion', cases: [ { ...VARIANTS.SIDEBAR, shouldRender: true }, { ...VARIANTS.FULL_PAGE, shouldRender: false }, ], }, { Component: PrepareComponentForTest(FullPageVersion), componentName: 'FullPageVersion', cases: [ { ...VARIANTS.SIDEBAR, shouldRender: false }, { ...VARIANTS.FULL_PAGE, shouldRender: true }, ], }, ]; describe('PageVariant', () => { TestCases.forEach(({ Component, componentName, cases }) => { describe(`variant for ${componentName}`, () => { cases.forEach(({ variant, urlPrefix, shouldRender }) => { it(`should${shouldRender ? '' : ' not'} render on ${variant}`, () => { expect( mount(<Component variant={variant} urlPrefix={urlPrefix} />).find( FakeComponent, ), ).toHaveLength(shouldRender ? 1 : 0); }); }); }); }); });