--- lib/domain/content-form.ts
+++ lib/domain/content-form.ts
... | ... | @@ -6,8 +6,10 @@ |
| 6 | 6 |
import {
|
| 7 | 7 |
ANSWER_MESSAGE_ETC, |
| 8 | 8 |
MIN_COMIC_CUTS, |
| 9 |
+ QUIZ_ANSWER_OPTIONS, |
|
| 9 | 10 |
QUIZ_LEVEL_OPTIONS, |
| 10 | 11 |
gradesOf, |
| 12 |
+ type QuizAnswer, |
|
| 11 | 13 |
type ContentKeyword, |
| 12 | 14 |
type QuizAnswerMessage, |
| 13 | 15 |
type GradesBySchool, |
... | ... | @@ -234,8 +236,7 @@ |
| 234 | 236 |
export function validateQuizForm( |
| 235 | 237 |
values: QuizFormValues, |
| 236 | 238 |
codes: SchoolGradeOptions, |
| 237 |
- answerOptions: readonly string[], |
|
| 238 |
- messageOptionsByAnswer: Record<string, readonly CommonCode[]> |
|
| 239 |
+ messageOptionsByAnswer: Record<QuizAnswer, readonly CommonCode[]> |
|
| 239 | 240 |
): ValidationResult<QuizFormValues> {
|
| 240 | 241 |
const errors: ContentFormErrors = {};
|
| 241 | 242 |
validateGrades(values, codes, errors); |
... | ... | @@ -243,7 +244,7 @@ |
| 243 | 244 |
if (!QUIZ_LEVEL_OPTIONS.some((option) => option.value === values.level)) {
|
| 244 | 245 |
errors.level = '난이도를 선택해 주세요.'; |
| 245 | 246 |
} |
| 246 |
- if (!answerOptions.includes(values.answer)) {
|
|
| 247 |
+ if (!(QUIZ_ANSWER_OPTIONS as readonly string[]).includes(values.answer)) {
|
|
| 247 | 248 |
errors.answer = '정답을 선택해 주세요.'; |
| 248 | 249 |
} |
| 249 | 250 |
|
... | ... | @@ -264,7 +265,7 @@ |
| 264 | 265 |
|
| 265 | 266 |
// 정답 선택지 줄을 각각 검사한다 — 정답이 아닌 쪽도 보내므로 모두 유효해야 한다. |
| 266 | 267 |
const answerMessages = values.answerMessages.map((message) => {
|
| 267 |
- const allowedCodes = messageOptionsByAnswer[message.answer] ?? []; |
|
| 268 |
+ const allowedCodes = messageOptionsByAnswer[message.answer]; |
|
| 268 | 269 |
if ( |
| 269 | 270 |
message.code !== '' && |
| 270 | 271 |
message.code !== ANSWER_MESSAGE_ETC && |
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?