From 2530b01b829968579e46ff73ee482b549c928f36 Mon Sep 17 00:00:00 2001 From: Devasia Joseph Date: Wed, 12 Nov 2025 18:13:42 +0530 Subject: [PATCH] fix: restrict single select questions to one correct answer (#2618) --- .../components/EditProblemView/AnswerWidget/hooks.js | 2 +- .../components/EditProblemView/AnswerWidget/hooks.test.js | 2 +- .../components/EditProblemView/SettingsWidget/hooks.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js index 9176d7b09..b94de1ca1 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.js @@ -90,7 +90,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 e67e05f00..5400365c1 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.test.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/AnswerWidget/hooks.test.js @@ -200,7 +200,7 @@ describe('Answer Options Hooks', () => { }); describe('isSingleAnswerProblem()', () => { test('singleSelect', () => { - expect(module.isSingleAnswerProblem(ProblemTypeKeys.SINGLESELECT)).toBe(false); + expect(module.isSingleAnswerProblem(ProblemTypeKeys.SINGLESELECT)).toBe(true); }); 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 eb0ed887b..b86772923 100644 --- a/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js +++ b/src/editors/containers/ProblemEditor/components/EditProblemView/SettingsWidget/hooks.js @@ -299,9 +299,9 @@ export const typeRowHooks = ({ if (typeKey === ProblemTypeKeys.TEXTINPUT && RichTextProblems.includes(problemType)) { convertToPlainText(); } - // Dropdown problems can only have one correct answer. When there is more than one correct answer + // Dropdown and single-select problems can only have one correct answer. When there is more than one correct answer // from a previous problem type, the correct attribute for selected answers need to be set to false. - if (typeKey === ProblemTypeKeys.DROPDOWN) { + if (typeKey === ProblemTypeKeys.DROPDOWN || typeKey === ProblemTypeKeys.SINGLESELECT) { if (correctAnswerCount > 1) { clearPreviouslySelectedAnswers(); } else if (RichTextProblems.includes(problemType)) {