mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-05-28 08:06:19 +00:00
Migrate more tests to shoehorn
This commit is contained in:
@@ -1,13 +1,10 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatISO } from 'date-fns';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { ReportExporter } from '../../src/common/services/ReportExporter';
|
||||
import type { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub';
|
||||
import type { Settings } from '../../src/settings/reducers/settings';
|
||||
import { DomainVisits as createDomainVisits } from '../../src/visits/DomainVisits';
|
||||
import type { DomainVisits } from '../../src/visits/reducers/domainVisits';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
jest.mock('react-router-dom', () => ({
|
||||
@@ -19,16 +16,16 @@ describe('<DomainVisits />', () => {
|
||||
const exportVisits = jest.fn();
|
||||
const getDomainVisits = jest.fn();
|
||||
const cancelGetDomainVisits = jest.fn();
|
||||
const domainVisits = Mock.of<DomainVisits>({ visits: [Mock.of<Visit>({ date: formatISO(new Date()) })] });
|
||||
const DomainVisits = createDomainVisits(Mock.of<ReportExporter>({ exportVisits }));
|
||||
const domainVisits = fromPartial<DomainVisits>({ visits: [{ date: formatISO(new Date()) }] });
|
||||
const DomainVisits = createDomainVisits(fromPartial({ exportVisits }));
|
||||
const setUp = () => renderWithEvents(
|
||||
<MemoryRouter>
|
||||
<DomainVisits
|
||||
{...Mock.of<MercureBoundProps>({ mercureInfo: {} })}
|
||||
{...fromPartial<MercureBoundProps>({ mercureInfo: {} })}
|
||||
getDomainVisits={getDomainVisits}
|
||||
cancelGetDomainVisits={cancelGetDomainVisits}
|
||||
domainVisits={domainVisits}
|
||||
settings={Mock.all<Settings>()}
|
||||
settings={fromPartial({})}
|
||||
/>
|
||||
</MemoryRouter>,
|
||||
);
|
||||
|
||||
@@ -1,29 +1,26 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatISO } from 'date-fns';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { ReportExporter } from '../../src/common/services/ReportExporter';
|
||||
import type { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub';
|
||||
import type { Settings } from '../../src/settings/reducers/settings';
|
||||
import { NonOrphanVisits as createNonOrphanVisits } from '../../src/visits/NonOrphanVisits';
|
||||
import type { VisitsInfo } from '../../src/visits/reducers/types';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
describe('<NonOrphanVisits />', () => {
|
||||
const exportVisits = jest.fn();
|
||||
const getNonOrphanVisits = jest.fn();
|
||||
const cancelGetNonOrphanVisits = jest.fn();
|
||||
const nonOrphanVisits = Mock.of<VisitsInfo>({ visits: [Mock.of<Visit>({ date: formatISO(new Date()) })] });
|
||||
const NonOrphanVisits = createNonOrphanVisits(Mock.of<ReportExporter>({ exportVisits }));
|
||||
const nonOrphanVisits = fromPartial<VisitsInfo>({ visits: [{ date: formatISO(new Date()) }] });
|
||||
const NonOrphanVisits = createNonOrphanVisits(fromPartial({ exportVisits }));
|
||||
const setUp = () => renderWithEvents(
|
||||
<MemoryRouter>
|
||||
<NonOrphanVisits
|
||||
{...Mock.of<MercureBoundProps>({ mercureInfo: {} })}
|
||||
{...fromPartial<MercureBoundProps>({ mercureInfo: {} })}
|
||||
getNonOrphanVisits={getNonOrphanVisits}
|
||||
cancelGetNonOrphanVisits={cancelGetNonOrphanVisits}
|
||||
nonOrphanVisits={nonOrphanVisits}
|
||||
settings={Mock.all<Settings>()}
|
||||
settings={fromPartial({})}
|
||||
/>
|
||||
</MemoryRouter>,
|
||||
);
|
||||
|
||||
@@ -1,28 +1,25 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatISO } from 'date-fns';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { ReportExporter } from '../../src/common/services/ReportExporter';
|
||||
import type { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub';
|
||||
import type { Settings } from '../../src/settings/reducers/settings';
|
||||
import { OrphanVisits as createOrphanVisits } from '../../src/visits/OrphanVisits';
|
||||
import type { VisitsInfo } from '../../src/visits/reducers/types';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
describe('<OrphanVisits />', () => {
|
||||
const getOrphanVisits = jest.fn();
|
||||
const exportVisits = jest.fn();
|
||||
const orphanVisits = Mock.of<VisitsInfo>({ visits: [Mock.of<Visit>({ date: formatISO(new Date()) })] });
|
||||
const OrphanVisits = createOrphanVisits(Mock.of<ReportExporter>({ exportVisits }));
|
||||
const orphanVisits = fromPartial<VisitsInfo>({ visits: [{ date: formatISO(new Date()) }] });
|
||||
const OrphanVisits = createOrphanVisits(fromPartial({ exportVisits }));
|
||||
const setUp = () => renderWithEvents(
|
||||
<MemoryRouter>
|
||||
<OrphanVisits
|
||||
{...Mock.of<MercureBoundProps>({ mercureInfo: {} })}
|
||||
{...fromPartial<MercureBoundProps>({ mercureInfo: {} })}
|
||||
getOrphanVisits={getOrphanVisits}
|
||||
orphanVisits={orphanVisits}
|
||||
cancelGetOrphanVisits={jest.fn()}
|
||||
settings={Mock.all<Settings>()}
|
||||
settings={fromPartial({})}
|
||||
/>
|
||||
</MemoryRouter>,
|
||||
);
|
||||
|
||||
@@ -1,33 +1,29 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatISO } from 'date-fns';
|
||||
import { identity } from 'ramda';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { ReportExporter } from '../../src/common/services/ReportExporter';
|
||||
import type { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub';
|
||||
import type { Settings } from '../../src/settings/reducers/settings';
|
||||
import type { ShortUrlDetail } from '../../src/short-urls/reducers/shortUrlDetail';
|
||||
import type { ShortUrlVisits as ShortUrlVisitsState } from '../../src/visits/reducers/shortUrlVisits';
|
||||
import type { ShortUrlVisitsProps } from '../../src/visits/ShortUrlVisits';
|
||||
import { ShortUrlVisits as createShortUrlVisits } from '../../src/visits/ShortUrlVisits';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
describe('<ShortUrlVisits />', () => {
|
||||
const getShortUrlVisitsMock = jest.fn();
|
||||
const exportVisits = jest.fn();
|
||||
const shortUrlVisits = Mock.of<ShortUrlVisitsState>({ visits: [Mock.of<Visit>({ date: formatISO(new Date()) })] });
|
||||
const ShortUrlVisits = createShortUrlVisits(Mock.of<ReportExporter>({ exportVisits }));
|
||||
const shortUrlVisits = fromPartial<ShortUrlVisitsState>({ visits: [{ date: formatISO(new Date()) }] });
|
||||
const ShortUrlVisits = createShortUrlVisits(fromPartial({ exportVisits }));
|
||||
const setUp = () => renderWithEvents(
|
||||
<MemoryRouter>
|
||||
<ShortUrlVisits
|
||||
{...Mock.all<ShortUrlVisitsProps>()}
|
||||
{...Mock.of<MercureBoundProps>({ mercureInfo: {} })}
|
||||
{...fromPartial<ShortUrlVisitsProps>({})}
|
||||
{...fromPartial<MercureBoundProps>({ mercureInfo: {} })}
|
||||
getShortUrlDetail={identity}
|
||||
getShortUrlVisits={getShortUrlVisitsMock}
|
||||
shortUrlVisits={shortUrlVisits}
|
||||
shortUrlDetail={Mock.all<ShortUrlDetail>()}
|
||||
settings={Mock.all<Settings>()}
|
||||
shortUrlDetail={fromPartial({})}
|
||||
settings={fromPartial({})}
|
||||
cancelGetShortUrlVisits={() => {}}
|
||||
/>
|
||||
</MemoryRouter>,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatDistance, parseISO } from 'date-fns';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { ShortUrlDetail } from '../../src/short-urls/reducers/shortUrlDetail';
|
||||
import type { ShortUrlVisits } from '../../src/visits/reducers/shortUrlVisits';
|
||||
import { ShortUrlVisitsHeader } from '../../src/visits/ShortUrlVisitsHeader';
|
||||
@@ -9,12 +9,12 @@ import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
describe('<ShortUrlVisitsHeader />', () => {
|
||||
const dateCreated = '2018-01-01T10:00:00+00:00';
|
||||
const longUrl = 'https://foo.bar/bar/foo';
|
||||
const shortUrlVisits = Mock.of<ShortUrlVisits>({
|
||||
const shortUrlVisits = fromPartial<ShortUrlVisits>({
|
||||
visits: [{}, {}, {}],
|
||||
});
|
||||
const goBack = jest.fn();
|
||||
const setUp = (title?: string | null) => {
|
||||
const shortUrlDetail = Mock.of<ShortUrlDetail>({
|
||||
const shortUrlDetail = fromPartial<ShortUrlDetail>({
|
||||
shortUrl: {
|
||||
shortUrl: 'https://s.test/abc123',
|
||||
longUrl,
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatISO } from 'date-fns';
|
||||
import { MemoryRouter } from 'react-router-dom';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { ReportExporter } from '../../src/common/services/ReportExporter';
|
||||
import type { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub';
|
||||
import type { Settings } from '../../src/settings/reducers/settings';
|
||||
import type { ColorGenerator } from '../../src/utils/services/ColorGenerator';
|
||||
import type { TagVisits as TagVisitsStats } from '../../src/visits/reducers/tagVisits';
|
||||
import type { TagVisitsProps } from '../../src/visits/TagVisits';
|
||||
import { TagVisits as createTagVisits } from '../../src/visits/TagVisits';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
jest.mock('react-router-dom', () => ({
|
||||
@@ -20,19 +16,19 @@ jest.mock('react-router-dom', () => ({
|
||||
describe('<TagVisits />', () => {
|
||||
const getTagVisitsMock = jest.fn();
|
||||
const exportVisits = jest.fn();
|
||||
const tagVisits = Mock.of<TagVisitsStats>({ visits: [Mock.of<Visit>({ date: formatISO(new Date()) })] });
|
||||
const tagVisits = fromPartial<TagVisitsStats>({ visits: [{ date: formatISO(new Date()) }] });
|
||||
const TagVisits = createTagVisits(
|
||||
Mock.of<ColorGenerator>({ isColorLightForKey: () => false, getColorForKey: () => 'red' }),
|
||||
Mock.of<ReportExporter>({ exportVisits }),
|
||||
fromPartial({ isColorLightForKey: () => false, getColorForKey: () => 'red' }),
|
||||
fromPartial({ exportVisits }),
|
||||
);
|
||||
const setUp = () => renderWithEvents(
|
||||
<MemoryRouter>
|
||||
<TagVisits
|
||||
{...Mock.all<TagVisitsProps>()}
|
||||
{...Mock.of<MercureBoundProps>({ mercureInfo: {} })}
|
||||
{...fromPartial<TagVisitsProps>({})}
|
||||
{...fromPartial<MercureBoundProps>({ mercureInfo: {} })}
|
||||
getTagVisits={getTagVisitsMock}
|
||||
tagVisits={tagVisits}
|
||||
settings={Mock.all<Settings>()}
|
||||
settings={fromPartial({})}
|
||||
cancelGetTagVisits={() => {}}
|
||||
/>
|
||||
</MemoryRouter>,
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { ColorGenerator } from '../../src/utils/services/ColorGenerator';
|
||||
import type { TagVisits } from '../../src/visits/reducers/tagVisits';
|
||||
import { TagVisitsHeader } from '../../src/visits/TagVisitsHeader';
|
||||
|
||||
describe('<TagVisitsHeader />', () => {
|
||||
const tagVisits = Mock.of<TagVisits>({
|
||||
const tagVisits = fromPartial<TagVisits>({
|
||||
tag: 'foo',
|
||||
visits: [{}, {}, {}, {}],
|
||||
});
|
||||
const goBack = jest.fn();
|
||||
const colorGenerator = Mock.of<ColorGenerator>({ isColorLightForKey: () => false, getColorForKey: () => 'red' });
|
||||
const colorGenerator = fromPartial<ColorGenerator>({ isColorLightForKey: () => false, getColorForKey: () => 'red' });
|
||||
const setUp = () => render(<TagVisitsHeader tagVisits={tagVisits} goBack={goBack} colorGenerator={colorGenerator} />);
|
||||
|
||||
it('shows expected visits', () => {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
import { VisitsHeader } from '../../src/visits/VisitsHeader';
|
||||
|
||||
describe('<VisitsHeader />', () => {
|
||||
const visits = [Mock.all<Visit>(), Mock.all<Visit>(), Mock.all<Visit>()];
|
||||
const visits: Visit[] = [fromPartial({}), fromPartial({}), fromPartial({})];
|
||||
const title = 'My header title';
|
||||
const goBack = jest.fn();
|
||||
const setUp = () => render(<VisitsHeader visits={visits} goBack={goBack} title={title} />);
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { createMemoryHistory } from 'history';
|
||||
import { Router } from 'react-router-dom';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { Settings } from '../../src/settings/reducers/settings';
|
||||
import { rangeOf } from '../../src/utils/utils';
|
||||
import type { VisitsInfo } from '../../src/visits/reducers/types';
|
||||
import type { Visit } from '../../src/visits/types';
|
||||
@@ -10,7 +9,7 @@ import { VisitsStats } from '../../src/visits/VisitsStats';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
describe('<VisitsStats />', () => {
|
||||
const visits = rangeOf(3, () => Mock.of<Visit>({ date: '2020-01-01' }));
|
||||
const visits = rangeOf(3, () => fromPartial<Visit>({ date: '2020-01-01' }));
|
||||
const getVisitsMock = jest.fn();
|
||||
const exportCsv = jest.fn();
|
||||
const setUp = (visitsInfo: Partial<VisitsInfo>, activeRoute = '/by-time') => {
|
||||
@@ -23,9 +22,9 @@ describe('<VisitsStats />', () => {
|
||||
<Router location={history.location} navigator={history}>
|
||||
<VisitsStats
|
||||
getVisits={getVisitsMock}
|
||||
visitsInfo={Mock.of<VisitsInfo>(visitsInfo)}
|
||||
visitsInfo={fromPartial(visitsInfo)}
|
||||
cancelGetVisits={() => {}}
|
||||
settings={Mock.all<Settings>()}
|
||||
settings={fromPartial({})}
|
||||
exportCsv={exportCsv}
|
||||
/>
|
||||
</Router>,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { rangeOf } from '../../src/utils/utils';
|
||||
import type { NormalizedVisit } from '../../src/visits/types';
|
||||
import type { VisitsTableProps } from '../../src/visits/VisitsTable';
|
||||
@@ -7,7 +7,7 @@ import { VisitsTable } from '../../src/visits/VisitsTable';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
describe('<VisitsTable />', () => {
|
||||
const matchMedia = () => Mock.of<MediaQueryList>({ matches: false });
|
||||
const matchMedia = () => fromPartial<MediaQueryList>({ matches: false });
|
||||
const setSelectedVisits = jest.fn();
|
||||
const setUpFactory = (props: Partial<VisitsTableProps> = {}) => renderWithEvents(
|
||||
<VisitsTable
|
||||
@@ -23,8 +23,8 @@ describe('<VisitsTable />', () => {
|
||||
const setUpForOrphanVisits = (isOrphanVisits: boolean) => setUpFactory({ isOrphanVisits });
|
||||
const setUpWithBots = () => setUpFactory({
|
||||
visits: [
|
||||
Mock.of<NormalizedVisit>({ potentialBot: false, date: '2022-05-05' }),
|
||||
Mock.of<NormalizedVisit>({ potentialBot: true, date: '2022-05-05' }),
|
||||
fromPartial({ potentialBot: false, date: '2022-05-05' }),
|
||||
fromPartial({ potentialBot: true, date: '2022-05-05' }),
|
||||
],
|
||||
});
|
||||
|
||||
@@ -48,7 +48,7 @@ describe('<VisitsTable />', () => {
|
||||
[115, 7, 2], // This one will have ellipsis
|
||||
])('renders the expected amount of pages', (visitsCount, expectedAmountOfPageItems, expectedDisabledItems) => {
|
||||
const { container } = setUp(
|
||||
rangeOf(visitsCount, () => Mock.of<NormalizedVisit>({ browser: '', date: '2022-01-01', referer: '' })),
|
||||
rangeOf(visitsCount, () => fromPartial<NormalizedVisit>({ browser: '', date: '2022-01-01', referer: '' })),
|
||||
);
|
||||
expect(container.querySelectorAll('.page-item')).toHaveLength(expectedAmountOfPageItems);
|
||||
expect(container.querySelectorAll('.disabled')).toHaveLength(expectedDisabledItems);
|
||||
@@ -58,7 +58,7 @@ describe('<VisitsTable />', () => {
|
||||
rangeOf(20, (value) => [value]),
|
||||
)('does not render footer when there is only one page to render', (visitsCount) => {
|
||||
const { container } = setUp(
|
||||
rangeOf(visitsCount, () => Mock.of<NormalizedVisit>({ browser: '', date: '2022-01-01', referer: '' })),
|
||||
rangeOf(visitsCount, () => fromPartial<NormalizedVisit>({ browser: '', date: '2022-01-01', referer: '' })),
|
||||
);
|
||||
|
||||
expect(container.querySelector('tfoot')).not.toBeInTheDocument();
|
||||
@@ -66,7 +66,7 @@ describe('<VisitsTable />', () => {
|
||||
});
|
||||
|
||||
it('selected rows are highlighted', async () => {
|
||||
const visits = rangeOf(10, () => Mock.of<NormalizedVisit>({ browser: '', date: '2022-01-01', referer: '' }));
|
||||
const visits = rangeOf(10, () => fromPartial<NormalizedVisit>({ browser: '', date: '2022-01-01', referer: '' }));
|
||||
const { container, user } = setUp(visits, [visits[1], visits[2]]);
|
||||
|
||||
// Initial situation
|
||||
@@ -86,7 +86,7 @@ describe('<VisitsTable />', () => {
|
||||
});
|
||||
|
||||
it('orders visits when column is clicked', async () => {
|
||||
const { user } = setUp(rangeOf(9, (index) => Mock.of<NormalizedVisit>({
|
||||
const { user } = setUp(rangeOf(9, (index) => fromPartial<NormalizedVisit>({
|
||||
browser: '',
|
||||
date: `2022-01-0${10 - index}`,
|
||||
referer: `${index}`,
|
||||
@@ -108,8 +108,8 @@ describe('<VisitsTable />', () => {
|
||||
|
||||
it('filters list when writing in search box', async () => {
|
||||
const { user } = setUp([
|
||||
...rangeOf(7, () => Mock.of<NormalizedVisit>({ browser: 'aaa', date: '2022-01-01', referer: 'aaa' })),
|
||||
...rangeOf(2, () => Mock.of<NormalizedVisit>({ browser: 'bbb', date: '2022-01-01', referer: 'bbb' })),
|
||||
...rangeOf(7, () => fromPartial<NormalizedVisit>({ browser: 'aaa', date: '2022-01-01', referer: 'aaa' })),
|
||||
...rangeOf(2, () => fromPartial<NormalizedVisit>({ browser: 'bbb', date: '2022-01-01', referer: 'bbb' })),
|
||||
]);
|
||||
const searchField = screen.getByPlaceholderText('Search...');
|
||||
const searchText = async (text: string) => {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { Chart, ChartDataset } from 'chart.js';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { DoughnutChartLegend } from '../../../src/visits/charts/DoughnutChartLegend';
|
||||
|
||||
describe('<DoughnutChartLegend />', () => {
|
||||
const labels = ['foo', 'bar', 'baz', 'foo2', 'bar2'];
|
||||
const colors = ['green', 'blue', 'yellow'];
|
||||
const defaultColor = 'red';
|
||||
const datasets = [Mock.of<ChartDataset>({ backgroundColor: colors })];
|
||||
const chart = Mock.of<Chart>({
|
||||
const datasets = [fromPartial<ChartDataset>({ backgroundColor: colors })];
|
||||
const chart = fromPartial<Chart>({
|
||||
config: {
|
||||
data: { labels, datasets },
|
||||
options: { defaultColor } as any,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { formatISO, subDays, subMonths, subYears } from 'date-fns';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { LineChartCard } from '../../../src/visits/charts/LineChartCard';
|
||||
import type { NormalizedVisit } from '../../../src/visits/types';
|
||||
import { setUpCanvas } from '../../__helpers__/setUpTest';
|
||||
@@ -29,7 +29,7 @@ describe('<LineChartCard />', () => {
|
||||
visits,
|
||||
expectedActiveIndex,
|
||||
) => {
|
||||
const { user } = setUp(visits.map((visit) => Mock.of<NormalizedVisit>(visit)));
|
||||
const { user } = setUp(visits.map((visit) => fromPartial(visit)));
|
||||
|
||||
await user.click(screen.getByRole('button', { name: /Group by/ }));
|
||||
|
||||
@@ -46,8 +46,8 @@ describe('<LineChartCard />', () => {
|
||||
it.each([
|
||||
[undefined, undefined],
|
||||
[[], []],
|
||||
[[Mock.of<NormalizedVisit>({ date: '2016-04-01' })], []],
|
||||
[[Mock.of<NormalizedVisit>({ date: '2016-04-01' })], [Mock.of<NormalizedVisit>({ date: '2016-04-01' })]],
|
||||
[[fromPartial<NormalizedVisit>({ date: '2016-04-01' })], []],
|
||||
[[fromPartial<NormalizedVisit>({ date: '2016-04-01' })], [fromPartial<NormalizedVisit>({ date: '2016-04-01' })]],
|
||||
])('renders chart with expected data', (visits, highlightedVisits) => {
|
||||
const { events } = setUp(visits, highlightedVisits);
|
||||
|
||||
@@ -57,8 +57,8 @@ describe('<LineChartCard />', () => {
|
||||
|
||||
it('includes stats for visits with no dates if selected', async () => {
|
||||
const { getEvents, user } = setUp([
|
||||
Mock.of<NormalizedVisit>({ date: '2016-04-01' }),
|
||||
Mock.of<NormalizedVisit>({ date: '2016-01-01' }),
|
||||
fromPartial({ date: '2016-04-01' }),
|
||||
fromPartial({ date: '2016-01-01' }),
|
||||
]);
|
||||
|
||||
const eventsBefore = getEvents();
|
||||
|
||||
Reference in New Issue
Block a user