import React from 'react'; import { render } from '@testing-library/react'; import '@testing-library/jest-dom'; import { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from '../ArticleFlag'; import mockDate from 'mockdate'; jest.mock('@times-components/ts-components', () => ({ __esModule: true, ...jest.requireActual('@times-components/ts-components'), LiveArticleFlag: 'LiveArticleFlag' })); describe('ArticleFlag', () => { // GMT: Thursday, 14 March 2019 16:22:54 beforeEach(() => { mockDate.set(1552580574000); }); afterEach(() => { mockDate.reset(); }); it('renders an article flag', () => { const { baseElement } = render( ); expect(baseElement).toMatchSnapshot(); }); it('renders a red article flag', () => { const { baseElement } = render( ); expect(baseElement).toMatchSnapshot(); }); it('renders the new article flag', () => { const { baseElement, getByText } = render(); expect(getByText('new')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the updated article flag', () => { const { baseElement, getByText } = render(); expect(getByText('updated')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the exclusive article flag', () => { const { baseElement, getByText } = render(); expect(getByText('exclusive')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the sponsored article flag', () => { const { baseElement, getByText } = render(); expect(getByText('sponsored')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the long read article flag', () => { const { baseElement, getByText } = render(); expect(getByText('long read')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the new article flag with an override colour', () => { const { baseElement, getByText } = render( ); expect(getByText('new')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the updated article flag with an override colour', () => { const { baseElement, getByText } = render( ); expect(getByText('updated')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the exclusive article flag with an override colour', () => { const { baseElement, getByText } = render( ); expect(getByText('exclusive')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the sponsored article flag with an override colour', () => { const { baseElement, getByText } = render( ); expect(getByText('sponsored')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders the long read article flag with an override colour', () => { const { baseElement, getByText } = render( ); expect(getByText('long read')).toBeTruthy(); expect(baseElement).toMatchSnapshot(); }); it('renders multiple article flags', () => { const { baseElement } = render( ); expect(baseElement).toMatchSnapshot(); }); it('renders multiple article flags with override colours', () => { const { baseElement } = render( ); expect(baseElement).toMatchSnapshot(); }); it('renders multiple article flags in a container', () => { const { baseElement } = render( ); expect(baseElement).toMatchSnapshot(); }); it('does not render article flags if there are none', () => { const { baseElement } = render( ); expect(baseElement).toMatchSnapshot(); }); });