diff --git a/src/data/redux/thunkActions/grading.js b/src/data/redux/thunkActions/grading.js index e19a095..723754a 100644 --- a/src/data/redux/thunkActions/grading.js +++ b/src/data/redux/thunkActions/grading.js @@ -49,8 +49,9 @@ export const loadSubmission = () => (dispatch, getState) => { dispatch(actions.grading.loadSubmission({ ...response, submissionUUID })); if (selectors.grading.selected.isGrading(getState())) { dispatch(actions.app.setShowRubric(true)); + // safety constraints let { gradeData } = response; - if (gradeData === null) { + if (gradeData === null || gradeData === undefined || Object.keys(gradeData).length) { gradeData = selectors.app.emptyGrade(getState()); } const lockStatus = selectors.grading.selected.lockStatus(getState()); @@ -75,7 +76,8 @@ export const startGrading = () => (dispatch, getState) => { onSuccess: (response) => { dispatch(actions.app.setShowRubric(true)); let gradeData = selectors.grading.selected.gradeData(getState()); - if (gradeData === null) { + // safety constraints + if (gradeData === null || gradeData === undefined || 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 7dcb5ab..e3f4d2d 100644 --- a/src/data/redux/thunkActions/grading.test.js +++ b/src/data/redux/thunkActions/grading.test.js @@ -4,7 +4,6 @@ import * as thunkActions from './grading'; jest.mock('./requests', () => ({ fetchSubmission: (args) => ({ fetchSubmission: args }), - fetchSubmissionResponse: (args) => ({ fetchSubmissionResponse: args }), fetchSubmissionStatus: (args) => ({ fetchSubmissionStatus: args }), setLock: (args) => ({ setLock: args }), submitGrade: (args) => ({ submitGrade: args }), @@ -144,6 +143,8 @@ describe('grading thunkActions', () => { test('dispatches startGrading with selected gradeData if truthy', () => { actionArgs.onSuccess(startResponse); expect(dispatch.mock.calls).toContainEqual([ + actions.app.setShowRubric(true), + ], [ actions.grading.startGrading({ ...startResponse, gradeData: selectors.grading.selected.gradeData(testState), diff --git a/src/data/services/lms/api.js b/src/data/services/lms/api.js index 0dd0d79..6068100 100644 --- a/src/data/services/lms/api.js +++ b/src/data/services/lms/api.js @@ -70,16 +70,6 @@ const fetchSubmissionStatus = (submissionUUID) => get( [paramKeys.submissionUUID]: submissionUUID, }), ).then(response => response.data); -/** - * Fetches only the learner response for a given submission. Used for pre-fetching response - * for neighboring submissions in the queue. - */ -export const fetchSubmissionResponse = (submissionUUID) => get( - stringifyUrl(urls.fetchSubmissionUrl, { - [paramKeys.oraLocation]: locationId, - [paramKeys.submissionUUID]: submissionUUID, - }), -).then(response => response.data); /** * post('api/lock', { ora_location, submissionUUID }); @@ -117,7 +107,6 @@ const updateGrade = (submissionUUID, gradeData) => post( export default StrictDict({ initializeApp, fetchSubmission, - fetchSubmissionResponse, fetchSubmissionStatus, lockSubmission, updateGrade, diff --git a/src/test/app.test.jsx b/src/test/app.test.jsx index 5fc6b6b..80bee76 100644 --- a/src/test/app.test.jsx +++ b/src/test/app.test.jsx @@ -123,9 +123,6 @@ const mockApi = () => { api.fetchSubmissionStatus = jest.fn((submissionUUID) => new Promise( (resolve) => resolve(fakeData.mockSubmissionStatus(submissionUUID)), )); - api.fetchSubmissionResponse = jest.fn((submissionUUID) => new Promise( - (resolve) => resolve({ response: fakeData.mockSubmission(submissionUUID).response }), - )); api.lockSubmission = jest.fn(() => new Promise( (resolve, reject) => { resolveFns.lock = {