From dd9a31278e980a18ef334e35aa5a567d8d12e4f8 Mon Sep 17 00:00:00 2001 From: radmehr Date: Fri, 28 Aug 2026 13:58:51 +0330 Subject: [PATCH] test: testing system and fix bugs --- src/i18n/en/submissions.json | 2 +- .../http/admin-choices.post.endpoints.http | 8 ++++---- ...in-question-transitions.delete.endpoints.http | 3 +++ ...min-question-transitions.patch.endpoints.http | 7 +++++++ ...dmin-question-transitions.post.endpoints.http | 11 ++++++----- .../http/admin-questions.post.endpoints.http | 16 ++++++++-------- .../tests/http/admin-tests.get.endpoints.http | 2 +- .../tests/http/admin-tests.patch.endpoints.http | 7 ++++--- .../tests/http/admin-tests.post.endpoints.http | 4 ++-- .../http/submissions.post.endpoints.http | 9 +++++---- .../providers/start/start-submission.provider.ts | 1 - .../validators/submission-answer.validator.ts | 10 +++++++--- 12 files changed, 48 insertions(+), 32 deletions(-) create mode 100644 src/modules/admin/question-transitions/http/admin-question-transitions.delete.endpoints.http create mode 100644 src/modules/admin/question-transitions/http/admin-question-transitions.patch.endpoints.http diff --git a/src/i18n/en/submissions.json b/src/i18n/en/submissions.json index cf6b749..a061dab 100644 --- a/src/i18n/en/submissions.json +++ b/src/i18n/en/submissions.json @@ -9,7 +9,7 @@ }, "errors": { "alreadyTookTest": "You already took this test.", - "choiceNumericConstraint": "You must send either choiceId or numericValue.", + "choiceNumericConstraint": "You must send either choiceId, choiceIds or numericValue.", "emptyNumericValue": "A numeric value should be provided as answer.", "numericValueRange": "Numeric value is out of specified range.", "emptyChoiceId": "Choice Id should be provided as answer.", diff --git a/src/modules/admin/choices/http/admin-choices.post.endpoints.http b/src/modules/admin/choices/http/admin-choices.post.endpoints.http index 58d8ab0..78089c9 100644 --- a/src/modules/admin/choices/http/admin-choices.post.endpoints.http +++ b/src/modules/admin/choices/http/admin-choices.post.endpoints.http @@ -3,9 +3,9 @@ Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - "question": 6, - "text": "Option 2", + "question": 13, + "text": "Option 4", "value": 1, - "order": 2, - "score": 8 + "order": 4, + "score": 10 } \ No newline at end of file diff --git a/src/modules/admin/question-transitions/http/admin-question-transitions.delete.endpoints.http b/src/modules/admin/question-transitions/http/admin-question-transitions.delete.endpoints.http new file mode 100644 index 0000000..453d1f2 --- /dev/null +++ b/src/modules/admin/question-transitions/http/admin-question-transitions.delete.endpoints.http @@ -0,0 +1,3 @@ +DELETE {{baseUrl}}/admin/question-transitions/26 +Authorization: Bearer {{$global.accessToken}} +Content-Type: application/json diff --git a/src/modules/admin/question-transitions/http/admin-question-transitions.patch.endpoints.http b/src/modules/admin/question-transitions/http/admin-question-transitions.patch.endpoints.http new file mode 100644 index 0000000..27cb065 --- /dev/null +++ b/src/modules/admin/question-transitions/http/admin-question-transitions.patch.endpoints.http @@ -0,0 +1,7 @@ +PATCH {{baseUrl}}/admin/question-transitions/26 +Authorization: Bearer {{$global.accessToken}} +Content-Type: application/json + +{ + "toQuestion": 13 +} \ No newline at end of file diff --git a/src/modules/admin/question-transitions/http/admin-question-transitions.post.endpoints.http b/src/modules/admin/question-transitions/http/admin-question-transitions.post.endpoints.http index 83a4631..5a9c5ae 100644 --- a/src/modules/admin/question-transitions/http/admin-question-transitions.post.endpoints.http +++ b/src/modules/admin/question-transitions/http/admin-question-transitions.post.endpoints.http @@ -3,10 +3,11 @@ Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - "test": 1, + "test": 2, "type": "end", - "fromQuestion": 7 - // "toQuestion": 7 - // "conditionValue": {"min": 51, "max": 100} - // "conditionValue": {"choiceId": 5} + "fromQuestion": 13 + // "toQuestion": 13 + // "conditionValue": {"min": 11, "max": 20} + // "conditionValue": {"choiceId": 16 } + // "conditionValue": {"choiceIds": [13, 14, 15], "operator": "all"} } \ No newline at end of file diff --git a/src/modules/admin/questions/http/admin-questions.post.endpoints.http b/src/modules/admin/questions/http/admin-questions.post.endpoints.http index 7611cfd..5f300cf 100644 --- a/src/modules/admin/questions/http/admin-questions.post.endpoints.http +++ b/src/modules/admin/questions/http/admin-questions.post.endpoints.http @@ -3,11 +3,11 @@ Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - "test": 1, - "content": "سوال هفتم", + "test": 2, + "content": "Q6", "required": true, - "type": "numeric" - // "metadata": { "min": -10, "max": 10 } + "type": "multi-choice" + // "metadata": { "min": 0, "max": 100 } } POST {{baseUrl}}/admin/questions/range-rules @@ -15,8 +15,8 @@ Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - "question": 5, - "min": 1, - "max": 10, - "score": 8 + "question": 11, + "min": 51, + "max": 100, + "score": 5 } \ No newline at end of file diff --git a/src/modules/admin/tests/http/admin-tests.get.endpoints.http b/src/modules/admin/tests/http/admin-tests.get.endpoints.http index 444d5cd..9d967a8 100644 --- a/src/modules/admin/tests/http/admin-tests.get.endpoints.http +++ b/src/modules/admin/tests/http/admin-tests.get.endpoints.http @@ -1,5 +1,5 @@ GET {{baseUrl}}/admin/tests?title=test&isActive=true&accessType=paid&sortBy=title&order=DSC&page=2&limit=1 Authorization: Bearer {{$global.accessToken}} -GET {{baseUrl}}/admin/tests/4 +GET {{baseUrl}}/admin/tests/1 Authorization: Bearer {{$global.accessToken}} diff --git a/src/modules/admin/tests/http/admin-tests.patch.endpoints.http b/src/modules/admin/tests/http/admin-tests.patch.endpoints.http index e595ccd..d01c837 100644 --- a/src/modules/admin/tests/http/admin-tests.patch.endpoints.http +++ b/src/modules/admin/tests/http/admin-tests.patch.endpoints.http @@ -1,8 +1,9 @@ -PATCH {{baseUrl}}/admin/tests/4 +PATCH {{baseUrl}}/admin/tests/2 Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - "accessType": "login", - "isActive": false + // "accessType": "login", + // "isActive": false + "status": "published" } diff --git a/src/modules/admin/tests/http/admin-tests.post.endpoints.http b/src/modules/admin/tests/http/admin-tests.post.endpoints.http index fe13ae9..ad82b1e 100644 --- a/src/modules/admin/tests/http/admin-tests.post.endpoints.http +++ b/src/modules/admin/tests/http/admin-tests.post.endpoints.http @@ -3,8 +3,8 @@ Content-Type: application/json Authorization: Bearer {{$global.accessToken}} { - "title": "Test One", - "description": "Description One", + "title": "Test Two", + "description": "Description Two", "accessType": "login", "isActive": true } \ No newline at end of file diff --git a/src/modules/submissions/http/submissions.post.endpoints.http b/src/modules/submissions/http/submissions.post.endpoints.http index 310b10d..5b2b400 100644 --- a/src/modules/submissions/http/submissions.post.endpoints.http +++ b/src/modules/submissions/http/submissions.post.endpoints.http @@ -3,14 +3,15 @@ Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - "testId": 1 + "testId": 2 } -POST {{baseUrl}}/submissions/2/answer +POST {{baseUrl}}/submissions/1/answer Authorization: Bearer {{$global.accessToken}} Content-Type: application/json { - // "choiceId": 2 - "numericValue": 8 + // "choiceId": 17 + // "numericValue": 12 + "choiceIds": [19,21] } diff --git a/src/modules/submissions/providers/start/start-submission.provider.ts b/src/modules/submissions/providers/start/start-submission.provider.ts index 0cf9603..4e1ff60 100644 --- a/src/modules/submissions/providers/start/start-submission.provider.ts +++ b/src/modules/submissions/providers/start/start-submission.provider.ts @@ -77,7 +77,6 @@ export class StartSubmissionProvider { relations: { toQuestion: { choices: true, - rangeRules: true, }, }, order: { diff --git a/src/modules/submissions/validators/submission-answer.validator.ts b/src/modules/submissions/validators/submission-answer.validator.ts index 6e3799b..6b7df45 100644 --- a/src/modules/submissions/validators/submission-answer.validator.ts +++ b/src/modules/submissions/validators/submission-answer.validator.ts @@ -14,9 +14,13 @@ export class SubmissionAnswerValidator implements ValidatorConstraintInterface { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const obj = validationArguments?.object as any; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const { choiceId, numericValue } = obj; + const { choiceId, numericValue, choiceIds } = obj; - return choiceId !== undefined || numericValue !== undefined; + return ( + choiceId !== undefined || + numericValue !== undefined || + choiceIds !== undefined + ); } defaultMessage?(): string { @@ -24,7 +28,7 @@ export class SubmissionAnswerValidator implements ValidatorConstraintInterface { return ( i18n?.t('submissions.errors.choiceNumericConstraint') ?? - 'You must send either choiceId or numericValue.' + 'You must send either choiceId, choiceIds or numericValue.' ); } }