feat: add multi choice publish test validator

This commit is contained in:
2026-08-19 22:39:13 +03:30
parent ca8d02c531
commit ca88e6994e
4 changed files with 10 additions and 4 deletions
@@ -7,6 +7,7 @@ import { QuestionTransitionType } from '@/modules/questions/enums/question-trans
import { AppTimeoutException } from '@/common/exceptions/app-timeout.exception';
import { QuestionTransition } from '@/modules/questions/entities/question-transition.entity';
import { Question } from '@/modules/questions/entities/question.entity';
import { MultiChoiceTransitionValidator } from '../validators/multi-choice-transition.validator';
@Injectable()
export class PublishTestValidatorProvider {
@@ -61,6 +62,8 @@ export class PublishTestValidatorProvider {
const startQuestionId = startTransitions[0].toQuestion!.id;
MultiChoiceTransitionValidator.validate(test.questions, transitions);
const transitionsGraph = new Map<number, QuestionTransition[]>();
this.createTransitionsGraph(transitions, transitionsGraph);
@@ -8,7 +8,7 @@ import { MultiChoiceCondition } from '@/modules/questions/interfaces/multi-choic
import { HttpStatus } from '@nestjs/common';
export class MultiChoiceTransitionValidator {
public static validateMultiChoiceTransitions(
public static validate(
questions: Question[],
transitions: QuestionTransition[],
) {
@@ -29,7 +29,6 @@ export class MultiChoiceTransitionValidator {
continue;
}
// اگر transition شرطی داریم، باید fallback داشته باشیم.
const hasDefault = outgoing.some(
(t) => t.type === QuestionTransitionType.DEFAULT,
);