From eff3df71159a970078fa0a06efe1d7c9d41563a0 Mon Sep 17 00:00:00 2001 From: Raymond Zhou <56318341+rayzhou-bit@users.noreply.github.com> Date: Fri, 10 Feb 2023 08:31:52 -0800 Subject: [PATCH] Feat allow singleselect to accept multiple correct answers (#241) --- .../components/EditProblemView/AnswerWidget/hooks.js | 2 +- .../components/EditProblemView/AnswerWidget/hooks.test.js | 2 +- .../components/EditProblemView/SettingsWidget/hooks.js | 2 +- .../components/EditProblemView/SettingsWidget/hooks.test.js | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js index 900698c3e..061683fa0 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js @@ -55,7 +55,7 @@ export const useFeedback = (answer) => { }; export const isSingleAnswerProblem = (problemType) => ( - problemType === ProblemTypeKeys.DROPDOWN || problemType === ProblemTypeKeys.SINGLESELECT + problemType === ProblemTypeKeys.DROPDOWN ); export const useAnswerContainer = ({ answers, updateField }) => { diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.test.js b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.test.js index abd1d8826..9e588d99c 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.test.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.test.js @@ -110,7 +110,7 @@ describe('Answer Options Hooks', () => { }); describe('isSingleAnswerProblem()', () => { test('singleSelect', () => { - expect(module.isSingleAnswerProblem(ProblemTypeKeys.SINGLESELECT)).toBe(true); + expect(module.isSingleAnswerProblem(ProblemTypeKeys.SINGLESELECT)).toBe(false); }); test('multiSelect', () => { expect(module.isSingleAnswerProblem(ProblemTypeKeys.MULTISELECT)).toBe(false); diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js index 076c9e3f4..fd717dc49 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js @@ -207,7 +207,7 @@ export const typeRowHooks = ({ updateAnswer, }) => { const onClick = () => { - if (typeKey === ProblemTypeKeys.SINGLESELECT || typeKey === ProblemTypeKeys.DROPDOWN) { + if (typeKey === ProblemTypeKeys.DROPDOWN) { if (correctAnswerCount > 1) { answers.forEach(answer => { updateAnswer({ ...answer, correct: false }); diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js index 03d3a68c3..38cbb1109 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.test.js @@ -250,7 +250,7 @@ describe('Problem settings hooks', () => { describe('Type row hooks', () => { test('test onClick', () => { - const typekey = 'multiplechoiceresponse'; + const typekey = 'optionresponse'; const problemType = 'choiceresponse'; const blockTitle = 'Multi-select'; const setBlockTitle = jest.fn(); @@ -275,7 +275,7 @@ describe('Problem settings hooks', () => { updateAnswer, }); output.onClick(); - expect(setBlockTitle).toHaveBeenCalledWith('Single select'); + expect(setBlockTitle).toHaveBeenCalledWith('Dropdown'); expect(updateAnswer).toHaveBeenNthCalledWith(1, { ...answers[0], correct: false }); expect(updateAnswer).toHaveBeenNthCalledWith(2, { ...answers[1], correct: false }); expect(updateField).toHaveBeenCalledWith({ problemType: typekey });