Unverified Commit 83afc019 authored by Tamika Tannis's avatar Tamika Tannis Committed by GitHub

Fix preview data error handling (#225)

* Fix preview data error handling

* Updated test pattern for error handling
parent 9726156d
......@@ -146,5 +146,10 @@ export function getPreviewData(queryParams: PreviewQueryParams) {
})
.then((response: AxiosResponse<PreviewDataAPI>) => {
return { data: response.data.previewData, status: response.status };
})
.catch((e: AxiosError<PreviewDataAPI>) => {
const data = e.response ? e.response.data.previewData : {};
const status = e.response ? e.response.status : null;
return Promise.reject({ data, status });
});
}
......@@ -129,9 +129,8 @@ export function* getPreviewDataWorker(action: GetPreviewDataRequest): SagaIterat
const response = yield call(API.getPreviewData, action.payload.queryParams);
const { data, status } = response;
yield put(getPreviewDataSuccess(data, status));
} catch (e) {
const data = e.response ? e.response.data : {};
const status = e.response ? e.response.status : null;
} catch (error) {
const { data, status } = error;
yield put(getPreviewDataFailure(data, status));
}
};
......
......@@ -577,24 +577,17 @@ describe('reducer', () => {
describe('getPreviewDataWorker', () => {
it('executes flow for getting preview data', () => {
const mockResponse = { data: previewData, status: 200 };
testSaga(getPreviewDataWorker, getPreviewData(queryParams))
.next().call(API.getPreviewData, queryParams)
.next(mockResponse).put(getPreviewDataSuccess(previewData, 200))
.next({ data: previewData, status: 200 }).put(getPreviewDataSuccess(previewData, 200))
.next().isDone();
});
it('handles request error', () => {
const mockErrorResponse = { name: '', message: '', response: { data: previewData, status: 500 }};
testSaga(getPreviewDataWorker, getPreviewData(queryParams))
.next().throw(mockErrorResponse).put(getPreviewDataFailure(previewData, 500))
.next().isDone();
});
it('handles request error with response fallbacks', () => {
const mockErrorResponse = { name: '', message: '' };
testSaga(getPreviewDataWorker, getPreviewData(queryParams))
.next().throw(mockErrorResponse).put(getPreviewDataFailure({}, null))
.next().call(API.getPreviewData, queryParams)
// @ts-ignore TODO: Investigate why redux-saga-test-plan throw() complains
.throw({ data: previewData, status: 500 }).put(getPreviewDataFailure(previewData, 500))
.next().isDone();
});
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment