diff --git a/src/redux/export/export.reducers.test.ts b/src/redux/export/export.reducers.test.ts index 778aca4f95a58b094b126f449643804fcab85287..40e92e5cce3ba3acebf5ad28dbc7b4c1f5afecfe 100644 --- a/src/redux/export/export.reducers.test.ts +++ b/src/redux/export/export.reducers.test.ts @@ -4,6 +4,7 @@ import { createStoreInstanceUsingSliceReducer, } from '@/utils/createStoreInstanceUsingSliceReducer'; import { HttpStatusCode } from 'axios'; +import { unwrapResult } from '@reduxjs/toolkit'; import { ExportState } from './export.types'; import exportReducer from './export.slice'; import { apiPath } from '../apiPath'; @@ -76,7 +77,7 @@ describe('export reducer', () => { mockedAxiosClient .onPost(apiPath.downloadNetworkCsv()) .reply(HttpStatusCode.NotFound, undefined); - const { payload, type } = await store.dispatch( + const action = await store.dispatch( downloadNetwork({ annotations: [], columns: [], @@ -85,8 +86,8 @@ describe('export reducer', () => { submaps: [], }), ); - expect(type).toBe('export/downloadNetwork/rejected'); - expect(payload).toBe( + expect(action.type).toBe('export/downloadNetwork/rejected'); + expect(() => unwrapResult(action)).toThrow( "Failed to download network: The page you're looking for doesn't exist. Please verify the URL and try again.", ); const { loading } = store.getState().export.downloadNetwork; @@ -135,7 +136,7 @@ describe('export reducer', () => { mockedAxiosClient .onPost(apiPath.downloadElementsCsv()) .reply(HttpStatusCode.NotFound, undefined); - const { payload } = await store.dispatch( + const action = await store.dispatch( downloadElements({ annotations: [], columns: [], @@ -147,7 +148,7 @@ describe('export reducer', () => { const { loading } = store.getState().export.downloadElements; expect(loading).toEqual('failed'); - expect(payload).toEqual( + expect(() => unwrapResult(action)).toThrow( "Failed to download elements: The page you're looking for doesn't exist. Please verify the URL and try again.", ); }); diff --git a/src/redux/export/export.thunks.ts b/src/redux/export/export.thunks.ts index bf49e0b04e79e1eea61cac05f2eb79810b23ce55..ccb5f74d412d0963fbd420b3a662ab1ee8c89f5e 100644 --- a/src/redux/export/export.thunks.ts +++ b/src/redux/export/export.thunks.ts @@ -5,8 +5,8 @@ import { PROJECT_ID } from '@/constants'; import { ExportNetwork, ExportElements } from '@/types/models'; import { validateDataUsingZodSchema } from '@/utils/validateDataUsingZodSchema'; import { exportNetworkchema, exportElementsSchema } from '@/models/exportSchema'; -import { getErrorMessage } from '@/utils/getErrorMessage'; import { ThunkConfig } from '@/types/store'; +import { getError } from '@/utils/error-report/getError'; import { apiPath } from '../apiPath'; import { downloadFileFromBlob } from './export.utils'; import { ELEMENTS_DOWNLOAD_ERROR_PREFIX, NETWORK_DOWNLOAD_ERROR_PREFIX } from './export.constants'; @@ -24,7 +24,7 @@ export const downloadElements = createAsyncThunk< DownloadElementsBodyRequest, ThunkConfig // eslint-disable-next-line consistent-return ->('export/downloadElements', async (data, { rejectWithValue }) => { +>('export/downloadElements', async data => { try { const response = await axiosInstanceNewAPI.post<ExportElements>( apiPath.downloadElementsCsv(), @@ -40,9 +40,7 @@ export const downloadElements = createAsyncThunk< downloadFileFromBlob(response.data, `${PROJECT_ID}-elementExport.csv`); } } catch (error) { - const errorMessage = getErrorMessage({ error, prefix: ELEMENTS_DOWNLOAD_ERROR_PREFIX }); - - return rejectWithValue(errorMessage); + return Promise.reject(getError({ error, prefix: ELEMENTS_DOWNLOAD_ERROR_PREFIX })); } }); @@ -57,7 +55,7 @@ type DownloadNetworkBodyRequest = { export const downloadNetwork = createAsyncThunk<undefined, DownloadNetworkBodyRequest, ThunkConfig>( 'export/downloadNetwork', // eslint-disable-next-line consistent-return - async (data, { rejectWithValue }) => { + async data => { try { const response = await axiosInstanceNewAPI.post<ExportNetwork>( apiPath.downloadNetworkCsv(), @@ -73,9 +71,7 @@ export const downloadNetwork = createAsyncThunk<undefined, DownloadNetworkBodyRe downloadFileFromBlob(response.data, `${PROJECT_ID}-networkExport.csv`); } } catch (error) { - const errorMessage = getErrorMessage({ error, prefix: NETWORK_DOWNLOAD_ERROR_PREFIX }); - - return rejectWithValue(errorMessage); + return Promise.reject(getError({ error, prefix: NETWORK_DOWNLOAD_ERROR_PREFIX })); } }, );