From 3b96b894927581edc1fe6b69ce80b755053bb14d Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sat, 12 Nov 2022 09:18:37 +0100 Subject: [PATCH] Updated getDomainVisits action so that it expects a signle DTO param --- src/container/types.ts | 2 +- src/visits/DomainVisits.tsx | 6 ++--- src/visits/NonOrphanVisits.tsx | 3 ++- src/visits/OrphanVisits.tsx | 3 ++- src/visits/VisitsStats.tsx | 3 ++- src/visits/reducers/common.ts | 3 ++- src/visits/reducers/domainVisits.ts | 11 ++++++--- src/visits/reducers/nonOrphanVisits.ts | 8 ++---- src/visits/reducers/orphanVisits.ts | 10 ++------ src/visits/reducers/shortUrlVisits.ts | 3 ++- src/visits/reducers/tagVisits.ts | 3 ++- src/visits/reducers/types/index.ts | 26 ++++++++++++++++++++ src/visits/types/index.ts | 21 +--------------- test/visits/DomainVisits.test.tsx | 2 +- test/visits/NonOrphanVisits.test.tsx | 3 ++- test/visits/OrphanVisits.test.tsx | 3 ++- test/visits/VisitsStats.test.tsx | 3 ++- test/visits/reducers/domainVisits.test.ts | 6 ++--- test/visits/reducers/nonOrphanVisits.test.ts | 3 ++- test/visits/reducers/orphanVisits.test.ts | 3 ++- 20 files changed, 68 insertions(+), 57 deletions(-) create mode 100644 src/visits/reducers/types/index.ts diff --git a/src/container/types.ts b/src/container/types.ts index 24b4cb73..3be8ee4c 100644 --- a/src/container/types.ts +++ b/src/container/types.ts @@ -13,9 +13,9 @@ import { ShortUrlVisits } from '../visits/reducers/shortUrlVisits'; import { TagVisits } from '../visits/reducers/tagVisits'; import { DomainsList } from '../domains/reducers/domainsList'; import { VisitsOverview } from '../visits/reducers/visitsOverview'; -import { VisitsInfo } from '../visits/types'; import { Sidebar } from '../common/reducers/sidebar'; import { DomainVisits } from '../visits/reducers/domainVisits'; +import { VisitsInfo } from '../visits/reducers/types'; export interface ShlinkState { servers: ServersMap; diff --git a/src/visits/DomainVisits.tsx b/src/visits/DomainVisits.tsx index b759f167..13232a69 100644 --- a/src/visits/DomainVisits.tsx +++ b/src/visits/DomainVisits.tsx @@ -1,7 +1,7 @@ import { useParams } from 'react-router-dom'; import { CommonVisitsProps } from './types/CommonVisitsProps'; import { ShlinkVisitsParams } from '../api/types'; -import { DomainVisits as DomainVisitsState } from './reducers/domainVisits'; +import { DomainVisits as DomainVisitsState, LoadDomainVisits } from './reducers/domainVisits'; import { ReportExporter } from '../common/services/ReportExporter'; import { boundToMercureHub } from '../mercure/helpers/boundToMercureHub'; import { Topics } from '../mercure/helpers/Topics'; @@ -12,7 +12,7 @@ import { VisitsStats } from './VisitsStats'; import { VisitsHeader } from './VisitsHeader'; export interface DomainVisitsProps extends CommonVisitsProps { - getDomainVisits: (domain: string, query?: ShlinkVisitsParams, doIntervalFallback?: boolean) => void; + getDomainVisits: (params: LoadDomainVisits) => void; domainVisits: DomainVisitsState; cancelGetDomainVisits: () => void; } @@ -28,7 +28,7 @@ export const DomainVisits = ({ exportVisits }: ReportExporter) => boundToMercure const { domain = '' } = useParams(); const [authority, domainId = authority] = domain.split('_'); const loadVisits = (params: ShlinkVisitsParams, doIntervalFallback?: boolean) => - getDomainVisits(domainId, toApiParams(params), doIntervalFallback); + getDomainVisits({ domain: domainId, query: toApiParams(params), doIntervalFallback }); const exportCsv = (visits: NormalizedVisit[]) => exportVisits(`domain_${authority}_visits.csv`, visits); return ( diff --git a/src/visits/NonOrphanVisits.tsx b/src/visits/NonOrphanVisits.tsx index 6113cfd6..9452167c 100644 --- a/src/visits/NonOrphanVisits.tsx +++ b/src/visits/NonOrphanVisits.tsx @@ -4,10 +4,11 @@ import { Topics } from '../mercure/helpers/Topics'; import { useGoBack } from '../utils/helpers/hooks'; import { ReportExporter } from '../common/services/ReportExporter'; import { VisitsStats } from './VisitsStats'; -import { NormalizedVisit, VisitsInfo, VisitsParams } from './types'; +import { NormalizedVisit, VisitsParams } from './types'; import { CommonVisitsProps } from './types/CommonVisitsProps'; import { toApiParams } from './types/helpers'; import { VisitsHeader } from './VisitsHeader'; +import { VisitsInfo } from './reducers/types'; export interface NonOrphanVisitsProps extends CommonVisitsProps { getNonOrphanVisits: (params?: ShlinkVisitsParams, doIntervalFallback?: boolean) => void; diff --git a/src/visits/OrphanVisits.tsx b/src/visits/OrphanVisits.tsx index dbd3d8ba..14af9c31 100644 --- a/src/visits/OrphanVisits.tsx +++ b/src/visits/OrphanVisits.tsx @@ -4,10 +4,11 @@ import { Topics } from '../mercure/helpers/Topics'; import { useGoBack } from '../utils/helpers/hooks'; import { ReportExporter } from '../common/services/ReportExporter'; import { VisitsStats } from './VisitsStats'; -import { NormalizedVisit, OrphanVisitType, VisitsInfo, VisitsParams } from './types'; +import { NormalizedVisit, OrphanVisitType, VisitsParams } from './types'; import { CommonVisitsProps } from './types/CommonVisitsProps'; import { toApiParams } from './types/helpers'; import { VisitsHeader } from './VisitsHeader'; +import { VisitsInfo } from './reducers/types'; export interface OrphanVisitsProps extends CommonVisitsProps { getOrphanVisits: ( diff --git a/src/visits/VisitsStats.tsx b/src/visits/VisitsStats.tsx index 1980ded8..2f22f5e7 100644 --- a/src/visits/VisitsStats.tsx +++ b/src/visits/VisitsStats.tsx @@ -19,13 +19,14 @@ import { NavPillItem, NavPills } from '../utils/NavPills'; import { ExportBtn } from '../utils/ExportBtn'; import { LineChartCard } from './charts/LineChartCard'; import { VisitsTable } from './VisitsTable'; -import { NormalizedOrphanVisit, NormalizedVisit, VisitsFilter, VisitsInfo, VisitsParams } from './types'; +import { NormalizedOrphanVisit, NormalizedVisit, VisitsFilter, VisitsParams } from './types'; import { OpenMapModalBtn } from './helpers/OpenMapModalBtn'; import { normalizeVisits, processStatsFromVisits } from './services/VisitsParser'; import { VisitsFilterDropdown } from './helpers/VisitsFilterDropdown'; import { HighlightableProps, highlightedVisitsToStats } from './types/helpers'; import { DoughnutChartCard } from './charts/DoughnutChartCard'; import { SortableBarChartCard } from './charts/SortableBarChartCard'; +import { VisitsInfo } from './reducers/types'; export type VisitsStatsProps = PropsWithChildren<{ getVisits: (params: VisitsParams, doIntervalFallback?: boolean) => void; diff --git a/src/visits/reducers/common.ts b/src/visits/reducers/common.ts index 1912dfc5..52544b69 100644 --- a/src/visits/reducers/common.ts +++ b/src/visits/reducers/common.ts @@ -1,10 +1,11 @@ import { flatten, prop, range, splitEvery } from 'ramda'; import { Action, Dispatch } from 'redux'; import { ShlinkPaginator, ShlinkVisits, ShlinkVisitsParams } from '../../api/types'; -import { Visit, VisitsLoadProgressChangedAction } from '../types'; +import { Visit } from '../types'; import { parseApiError } from '../../api/utils'; import { ApiErrorAction } from '../../api/types/actions'; import { dateToMatchingInterval } from '../../utils/dates/types'; +import { VisitsLoadProgressChangedAction } from './types'; const ITEMS_PER_PAGE = 5000; const PARALLEL_REQUESTS_COUNT = 4; diff --git a/src/visits/reducers/domainVisits.ts b/src/visits/reducers/domainVisits.ts index 0b226ac4..42e1f371 100644 --- a/src/visits/reducers/domainVisits.ts +++ b/src/visits/reducers/domainVisits.ts @@ -1,6 +1,6 @@ import { createAction } from '@reduxjs/toolkit'; import { Action, Dispatch } from 'redux'; -import { Visit, VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from '../types'; +import { Visit } from '../types'; import { buildReducer } from '../../utils/helpers/redux'; import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder'; import { GetState } from '../../container/types'; @@ -10,6 +10,7 @@ import { isBetween } from '../../utils/helpers/date'; import { getVisitsWithLoader, lastVisitLoaderForLoader } from './common'; import { createNewVisits, CreateVisitsAction } from './visitCreation'; import { domainMatches } from '../../short-urls/helpers'; +import { LoadVisits, VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from './types'; const REDUCER_PREFIX = 'shlink/domainVisits'; export const GET_DOMAIN_VISITS_START = `${REDUCER_PREFIX}/getDomainVisits/pending`; @@ -26,6 +27,10 @@ export interface DomainVisits extends VisitsInfo { domain: string; } +export interface LoadDomainVisits extends LoadVisits { + domain: string; +} + export interface DomainVisitsAction extends Action { visits: Visit[]; domain: string; @@ -73,9 +78,7 @@ export default buildReducer({ }, initialState); export const getDomainVisits = (buildShlinkApiClient: ShlinkApiClientBuilder) => ( - domain: string, - query: ShlinkVisitsParams = {}, - doIntervalFallback = false, + { domain, query = {}, doIntervalFallback = false }: LoadDomainVisits, ) => async (dispatch: Dispatch, getState: GetState) => { const { getDomainVisits: getVisits } = buildShlinkApiClient(getState); const visitsLoader = async (page: number, itemsPerPage: number) => getVisits( diff --git a/src/visits/reducers/nonOrphanVisits.ts b/src/visits/reducers/nonOrphanVisits.ts index e8254cc8..a2061e79 100644 --- a/src/visits/reducers/nonOrphanVisits.ts +++ b/src/visits/reducers/nonOrphanVisits.ts @@ -1,11 +1,6 @@ import { createAction } from '@reduxjs/toolkit'; import { Action, Dispatch } from 'redux'; -import { - Visit, - VisitsFallbackIntervalAction, - VisitsInfo, - VisitsLoadProgressChangedAction, -} from '../types'; +import { Visit } from '../types'; import { buildReducer } from '../../utils/helpers/redux'; import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder'; import { GetState } from '../../container/types'; @@ -14,6 +9,7 @@ import { ApiErrorAction } from '../../api/types/actions'; import { isBetween } from '../../utils/helpers/date'; import { getVisitsWithLoader, lastVisitLoaderForLoader } from './common'; import { createNewVisits, CreateVisitsAction } from './visitCreation'; +import { VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from './types'; const REDUCER_PREFIX = 'shlink/orphanVisits'; export const GET_NON_ORPHAN_VISITS_START = `${REDUCER_PREFIX}/getNonOrphanVisits/pending`; diff --git a/src/visits/reducers/orphanVisits.ts b/src/visits/reducers/orphanVisits.ts index 1514efc6..9f85f2d6 100644 --- a/src/visits/reducers/orphanVisits.ts +++ b/src/visits/reducers/orphanVisits.ts @@ -1,13 +1,6 @@ import { createAction } from '@reduxjs/toolkit'; import { Action, Dispatch } from 'redux'; -import { - OrphanVisit, - OrphanVisitType, - Visit, - VisitsFallbackIntervalAction, - VisitsInfo, - VisitsLoadProgressChangedAction, -} from '../types'; +import { OrphanVisit, OrphanVisitType, Visit } from '../types'; import { buildReducer } from '../../utils/helpers/redux'; import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder'; import { GetState } from '../../container/types'; @@ -17,6 +10,7 @@ import { ApiErrorAction } from '../../api/types/actions'; import { isBetween } from '../../utils/helpers/date'; import { getVisitsWithLoader, lastVisitLoaderForLoader } from './common'; import { createNewVisits, CreateVisitsAction } from './visitCreation'; +import { VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from './types'; const REDUCER_PREFIX = 'shlink/orphanVisits'; export const GET_ORPHAN_VISITS_START = `${REDUCER_PREFIX}/getOrphanVisits/pending`; diff --git a/src/visits/reducers/shortUrlVisits.ts b/src/visits/reducers/shortUrlVisits.ts index 5026ec65..0c34a1f8 100644 --- a/src/visits/reducers/shortUrlVisits.ts +++ b/src/visits/reducers/shortUrlVisits.ts @@ -1,7 +1,7 @@ import { createAction } from '@reduxjs/toolkit'; import { Action, Dispatch } from 'redux'; import { shortUrlMatches } from '../../short-urls/helpers'; -import { Visit, VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from '../types'; +import { Visit } from '../types'; import { ShortUrlIdentifier } from '../../short-urls/data'; import { buildReducer } from '../../utils/helpers/redux'; import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder'; @@ -11,6 +11,7 @@ import { ApiErrorAction } from '../../api/types/actions'; import { isBetween } from '../../utils/helpers/date'; import { getVisitsWithLoader, lastVisitLoaderForLoader } from './common'; import { createNewVisits, CreateVisitsAction } from './visitCreation'; +import { VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from './types'; const REDUCER_PREFIX = 'shlink/shortUrlVisits'; export const GET_SHORT_URL_VISITS_START = `${REDUCER_PREFIX}/getShortUrlVisits/pending`; diff --git a/src/visits/reducers/tagVisits.ts b/src/visits/reducers/tagVisits.ts index b5fa3d23..0b173613 100644 --- a/src/visits/reducers/tagVisits.ts +++ b/src/visits/reducers/tagVisits.ts @@ -1,6 +1,6 @@ import { createAction } from '@reduxjs/toolkit'; import { Action, Dispatch } from 'redux'; -import { Visit, VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from '../types'; +import { Visit } from '../types'; import { buildReducer } from '../../utils/helpers/redux'; import { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder'; import { GetState } from '../../container/types'; @@ -9,6 +9,7 @@ import { ApiErrorAction } from '../../api/types/actions'; import { isBetween } from '../../utils/helpers/date'; import { getVisitsWithLoader, lastVisitLoaderForLoader } from './common'; import { createNewVisits, CreateVisitsAction } from './visitCreation'; +import { VisitsFallbackIntervalAction, VisitsInfo, VisitsLoadProgressChangedAction } from './types'; const REDUCER_PREFIX = 'shlink/tagVisits'; export const GET_TAG_VISITS_START = `${REDUCER_PREFIX}/getTagVisits/pending`; diff --git a/src/visits/reducers/types/index.ts b/src/visits/reducers/types/index.ts new file mode 100644 index 00000000..a14920c0 --- /dev/null +++ b/src/visits/reducers/types/index.ts @@ -0,0 +1,26 @@ +import { PayloadAction } from '@reduxjs/toolkit'; +import { ShlinkVisitsParams } from '../../../api/types'; +import { DateInterval } from '../../../utils/dates/types'; +import { ProblemDetailsError } from '../../../api/types/errors'; +import { Visit } from '../../types'; + +export interface VisitsInfo { + visits: Visit[]; + loading: boolean; + loadingLarge: boolean; + error: boolean; + errorData?: ProblemDetailsError; + progress: number; + cancelLoad: boolean; + query?: ShlinkVisitsParams; + fallbackInterval?: DateInterval; +} + +export interface LoadVisits { + query?: ShlinkVisitsParams; + doIntervalFallback?: boolean; +} + +export type VisitsLoadProgressChangedAction = PayloadAction; + +export type VisitsFallbackIntervalAction = PayloadAction; diff --git a/src/visits/types/index.ts b/src/visits/types/index.ts index 7af91b18..cb0499aa 100644 --- a/src/visits/types/index.ts +++ b/src/visits/types/index.ts @@ -1,24 +1,5 @@ -import { PayloadAction } from '@reduxjs/toolkit'; import { ShortUrl } from '../../short-urls/data'; -import { ShlinkVisitsParams } from '../../api/types'; -import { DateInterval, DateRange } from '../../utils/dates/types'; -import { ProblemDetailsError } from '../../api/types/errors'; - -export interface VisitsInfo { - visits: Visit[]; - loading: boolean; - loadingLarge: boolean; - error: boolean; - errorData?: ProblemDetailsError; - progress: number; - cancelLoad: boolean; - query?: ShlinkVisitsParams; - fallbackInterval?: DateInterval; -} - -export type VisitsLoadProgressChangedAction = PayloadAction; - -export type VisitsFallbackIntervalAction = PayloadAction; +import { DateRange } from '../../utils/dates/types'; export type OrphanVisitType = 'base_url' | 'invalid_short_url' | 'regular_404'; diff --git a/test/visits/DomainVisits.test.tsx b/test/visits/DomainVisits.test.tsx index 19be1892..c8b17e0b 100644 --- a/test/visits/DomainVisits.test.tsx +++ b/test/visits/DomainVisits.test.tsx @@ -38,7 +38,7 @@ describe('', () => { it('wraps visits stats and header', () => { setUp(); expect(screen.getByRole('heading', { name: '"foo.com" visits' })).toBeInTheDocument(); - expect(getDomainVisits).toHaveBeenCalledWith('DEFAULT', expect.anything(), expect.anything()); + expect(getDomainVisits).toHaveBeenCalledWith(expect.objectContaining({ domain: 'DEFAULT' })); }); it('exports visits when clicking the button', async () => { diff --git a/test/visits/NonOrphanVisits.test.tsx b/test/visits/NonOrphanVisits.test.tsx index 1c3572de..a4eb1a9b 100644 --- a/test/visits/NonOrphanVisits.test.tsx +++ b/test/visits/NonOrphanVisits.test.tsx @@ -4,11 +4,12 @@ import { Mock } from 'ts-mockery'; import { formatISO } from 'date-fns'; import { NonOrphanVisits as createNonOrphanVisits } from '../../src/visits/NonOrphanVisits'; import { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub'; -import { Visit, VisitsInfo } from '../../src/visits/types'; +import { Visit } from '../../src/visits/types'; import { Settings } from '../../src/settings/reducers/settings'; import { ReportExporter } from '../../src/common/services/ReportExporter'; import { SelectedServer } from '../../src/servers/data'; import { renderWithEvents } from '../__helpers__/setUpTest'; +import { VisitsInfo } from '../../src/visits/reducers/types'; describe('', () => { const exportVisits = jest.fn(); diff --git a/test/visits/OrphanVisits.test.tsx b/test/visits/OrphanVisits.test.tsx index 6f92edf4..005445cf 100644 --- a/test/visits/OrphanVisits.test.tsx +++ b/test/visits/OrphanVisits.test.tsx @@ -4,11 +4,12 @@ import { Mock } from 'ts-mockery'; import { formatISO } from 'date-fns'; import { OrphanVisits as createOrphanVisits } from '../../src/visits/OrphanVisits'; import { MercureBoundProps } from '../../src/mercure/helpers/boundToMercureHub'; -import { Visit, VisitsInfo } from '../../src/visits/types'; +import { Visit } from '../../src/visits/types'; import { Settings } from '../../src/settings/reducers/settings'; import { ReportExporter } from '../../src/common/services/ReportExporter'; import { SelectedServer } from '../../src/servers/data'; import { renderWithEvents } from '../__helpers__/setUpTest'; +import { VisitsInfo } from '../../src/visits/reducers/types'; describe('', () => { const getOrphanVisits = jest.fn(); diff --git a/test/visits/VisitsStats.test.tsx b/test/visits/VisitsStats.test.tsx index 8bd2fb8f..ce503fac 100644 --- a/test/visits/VisitsStats.test.tsx +++ b/test/visits/VisitsStats.test.tsx @@ -3,11 +3,12 @@ import { Mock } from 'ts-mockery'; import { Router } from 'react-router-dom'; import { createMemoryHistory } from 'history'; import { VisitsStats } from '../../src/visits/VisitsStats'; -import { Visit, VisitsInfo } from '../../src/visits/types'; +import { Visit } from '../../src/visits/types'; import { Settings } from '../../src/settings/reducers/settings'; import { SelectedServer } from '../../src/servers/data'; import { renderWithEvents } from '../__helpers__/setUpTest'; import { rangeOf } from '../../src/utils/utils'; +import { VisitsInfo } from '../../src/visits/reducers/types'; describe('', () => { const visits = rangeOf(3, () => Mock.of({ date: '2020-01-01' })); diff --git a/test/visits/reducers/domainVisits.test.ts b/test/visits/reducers/domainVisits.test.ts index 48cc0f49..8564fd76 100644 --- a/test/visits/reducers/domainVisits.test.ts +++ b/test/visits/reducers/domainVisits.test.ts @@ -175,7 +175,7 @@ describe('domainVisitsReducer', () => { it('dispatches start and error when promise is rejected', async () => { const shlinkApiClient = buildApiClientMock(Promise.reject(new Error())); - await getDomainVisits(() => shlinkApiClient)('foo.com')(dispatchMock, getState); + await getDomainVisits(() => shlinkApiClient)({ domain })(dispatchMock, getState); expect(dispatchMock).toHaveBeenCalledTimes(2); expect(dispatchMock).toHaveBeenNthCalledWith(1, { type: GET_DOMAIN_VISITS_START }); @@ -197,7 +197,7 @@ describe('domainVisitsReducer', () => { }, })); - await getDomainVisits(() => shlinkApiClient)(domain, query)(dispatchMock, getState); + await getDomainVisits(() => shlinkApiClient)({ domain, query })(dispatchMock, getState); expect(dispatchMock).toHaveBeenCalledTimes(2); expect(dispatchMock).toHaveBeenNthCalledWith(1, { type: GET_DOMAIN_VISITS_START }); @@ -229,7 +229,7 @@ describe('domainVisitsReducer', () => { .mockResolvedValueOnce(buildVisitsResult(lastVisits)); const ShlinkApiClient = Mock.of({ getDomainVisits: getShlinkDomainVisits }); - await getDomainVisits(() => ShlinkApiClient)(domain, {}, true)(dispatchMock, getState); + await getDomainVisits(() => ShlinkApiClient)({ domain, doIntervalFallback: true })(dispatchMock, getState); expect(dispatchMock).toHaveBeenCalledTimes(2); expect(dispatchMock).toHaveBeenNthCalledWith(1, { type: GET_DOMAIN_VISITS_START }); diff --git a/test/visits/reducers/nonOrphanVisits.test.ts b/test/visits/reducers/nonOrphanVisits.test.ts index 2c43d236..a5a4533c 100644 --- a/test/visits/reducers/nonOrphanVisits.test.ts +++ b/test/visits/reducers/nonOrphanVisits.test.ts @@ -12,13 +12,14 @@ import reducer, { GET_NON_ORPHAN_VISITS_FALLBACK_TO_INTERVAL, } from '../../../src/visits/reducers/nonOrphanVisits'; import { rangeOf } from '../../../src/utils/utils'; -import { Visit, VisitsInfo } from '../../../src/visits/types'; +import { Visit } from '../../../src/visits/types'; import { ShlinkVisits } from '../../../src/api/types'; import { ShlinkApiClient } from '../../../src/api/services/ShlinkApiClient'; import { ShlinkState } from '../../../src/container/types'; import { formatIsoDate } from '../../../src/utils/helpers/date'; import { DateInterval } from '../../../src/utils/dates/types'; import { createNewVisits } from '../../../src/visits/reducers/visitCreation'; +import { VisitsInfo } from '../../../src/visits/reducers/types'; describe('nonOrphanVisitsReducer', () => { const now = new Date(); diff --git a/test/visits/reducers/orphanVisits.test.ts b/test/visits/reducers/orphanVisits.test.ts index 4b044a10..663d1e14 100644 --- a/test/visits/reducers/orphanVisits.test.ts +++ b/test/visits/reducers/orphanVisits.test.ts @@ -12,13 +12,14 @@ import reducer, { GET_ORPHAN_VISITS_FALLBACK_TO_INTERVAL, } from '../../../src/visits/reducers/orphanVisits'; import { rangeOf } from '../../../src/utils/utils'; -import { Visit, VisitsInfo } from '../../../src/visits/types'; +import { Visit } from '../../../src/visits/types'; import { ShlinkVisits } from '../../../src/api/types'; import { ShlinkApiClient } from '../../../src/api/services/ShlinkApiClient'; import { ShlinkState } from '../../../src/container/types'; import { formatIsoDate } from '../../../src/utils/helpers/date'; import { DateInterval } from '../../../src/utils/dates/types'; import { createNewVisits } from '../../../src/visits/reducers/visitCreation'; +import { VisitsInfo } from '../../../src/visits/reducers/types'; describe('orphanVisitsReducer', () => { const now = new Date();