From f7341efc71e7d794147a34c51fb226b6360682d8 Mon Sep 17 00:00:00 2001 From: leangseu-edx <83240113+leangseu-edx@users.noreply.github.com> Date: Fri, 21 Jan 2022 13:36:54 -0500 Subject: [PATCH] fix: grade data is empty object when there isn't grade data (#48) * fix: grade data is empty object when there isn't grade data * test: update unit testing --- src/data/redux/grading/selectors.js | 4 ++-- src/data/redux/thunkActions/grading.js | 4 ++-- src/data/redux/thunkActions/grading.test.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/data/redux/grading/selectors.js b/src/data/redux/grading/selectors.js index 76d43c1..25b7bfb 100644 --- a/src/data/redux/grading/selectors.js +++ b/src/data/redux/grading/selectors.js @@ -136,13 +136,13 @@ selected.userDisplay = createSelector( ***********************************/ /** - * Returns the grade data for the selected submission + * Returns the grade data for the selected submission or empty object * @return {obj} grade data * { score, overallFeedback, criteria } */ selected.gradeData = createSelector( [module.selected.submissionUUID, module.simpleSelectors.gradeData], - (submissionUUID, gradeData) => gradeData[submissionUUID], + (submissionUUID, gradeData) => gradeData[submissionUUID] || {}, ); /** diff --git a/src/data/redux/thunkActions/grading.js b/src/data/redux/thunkActions/grading.js index 3f8ec28..466073d 100644 --- a/src/data/redux/thunkActions/grading.js +++ b/src/data/redux/thunkActions/grading.js @@ -50,7 +50,7 @@ export const loadSubmission = () => (dispatch, getState) => { if (selectors.grading.selected.isGrading(getState())) { dispatch(actions.app.setShowRubric(true)); let gradeData = selectors.grading.selected.gradeData(getState()); - if (!gradeData) { + if (!Object.keys(gradeData).length) { gradeData = selectors.app.emptyGrade(getState()); } const lockStatus = selectors.grading.selected.lockStatus(getState()); @@ -75,7 +75,7 @@ export const startGrading = () => (dispatch, getState) => { onSuccess: (response) => { dispatch(actions.app.setShowRubric(true)); let gradeData = selectors.grading.selected.gradeData(getState()); - if (!gradeData) { + if (!Object.keys(gradeData).length) { gradeData = selectors.app.emptyGrade(getState()); } dispatch(actions.grading.startGrading({ ...response, gradeData })); diff --git a/src/data/redux/thunkActions/grading.test.js b/src/data/redux/thunkActions/grading.test.js index 0b81bd6..6717d07 100644 --- a/src/data/redux/thunkActions/grading.test.js +++ b/src/data/redux/thunkActions/grading.test.js @@ -156,8 +156,8 @@ describe('grading thunkActions', () => { const expected = [ actions.grading.startGrading({ ...startResponse, gradeData: emptyGrade }), ]; - selectors.grading.selected.gradeData.mockReturnValue(undefined); - actionArgs.onSuccess({ ...startResponse, gradeData: undefined }); + selectors.grading.selected.gradeData.mockReturnValue({}); + actionArgs.onSuccess({ ...startResponse, gradeData: {} }); expect(dispatch.mock.calls).toContainEqual(expected); expect(dispatch.mock.calls).toContainEqual([actions.app.setShowRubric(true)]); dispatch.mockClear();