src/app/legacy/containers/FrontPageStoryRows/index.test.jsx

Summary

Maintainability
A
0 mins
Test Coverage
import React from 'react';
import { RequestContextProvider } from '#contexts/RequestContext';
import { ToggleContextProvider } from '#contexts/ToggleContext';
import { FRONT_PAGE } from '#app/routes/utils/pageTypes';
import { shouldMatchSnapshot } from '#psammead/psammead-test-helpers/src';
import { ServiceContextProvider } from '../../../contexts/ServiceContext';
import ThemeProvider from '../../../components/ThemeProvider';
import getNumberPromoFixtures from './testHelpers';
import { TopRow, LeadingRow, RegularRow } from '.';

jest.mock('../../../components/ThemeProvider');

const ImageRow = props => <RegularRow displayImages {...props} />;
const NoImageRow = props => <RegularRow {...props} />;

const getRow = (Type, service, dir, number) => (
  <ThemeProvider service={service} variant="default">
    <ServiceContextProvider service={service}>
      <RequestContextProvider
        bbcOrigin="https://www.test.bbc.co.uk"
        id="c0000000000o"
        pathname="/pathname"
        pageType={FRONT_PAGE}
        isAmp={false}
        service={service}
      >
        <ToggleContextProvider
          toggles={{
            eventTracking: { enabled: true },
          }}
        >
          <Type dir={dir} stories={getNumberPromoFixtures(dir, number)} />
        </ToggleContextProvider>
      </RequestContextProvider>
    </ServiceContextProvider>
  </ThemeProvider>
);

describe('FrontPageStoryRows Container - snapshots', () => {
  shouldMatchSnapshot('TopRow', getRow(TopRow, 'news', 'ltr', 1));
  shouldMatchSnapshot('LeadingRow', getRow(LeadingRow, 'news', 'ltr', 2));
  shouldMatchSnapshot(
    'RegularRow with images',
    getRow(ImageRow, 'news', 'ltr', 4),
  );
  shouldMatchSnapshot(
    'RegularRow without images',
    getRow(NoImageRow, 'news', 'ltr', 4),
  );
  shouldMatchSnapshot('TopRow - rtl', getRow(TopRow, 'arabic', 'rtl', 1));
  shouldMatchSnapshot(
    'LeadingRow - rtl',
    getRow(LeadingRow, 'arabic', 'rtl', 2),
  );
  shouldMatchSnapshot(
    'RegularRow with images - rtl',
    getRow(ImageRow, 'arabic', 'rtl', 4),
  );
  shouldMatchSnapshot(
    'RegularRow without images - rtl',
    getRow(NoImageRow, 'arabic', 'rtl', 4),
  );
});