From cba789bc011131fb92d4f44a16994e902282a2fa Mon Sep 17 00:00:00 2001 From: wooh Date: Fri, 22 May 2026 21:28:08 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=EB=AC=B8=ED=95=AD=20=ED=9B=84?= =?UTF-8?q?=EB=B3=B4=20=EC=9D=91=EB=8B=B5=EC=97=90=20ID=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 문항 후보 조회 응답에 questionId 필드 추가 - 기본 문항 후보에 고정 ID 부여 - 문항 후보 조회 테스트에 ID 검증 추가 --- .../dto/response/QuestionCandidateResponse.java | 1 + .../domain/analysis/service/QuestionService.java | 13 +++++++------ .../analysis/service/QuestionServiceTest.java | 3 +++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/jobdri/jobdri_api/domain/analysis/dto/response/QuestionCandidateResponse.java b/src/main/java/com/jobdri/jobdri_api/domain/analysis/dto/response/QuestionCandidateResponse.java index 644b113..3c024e2 100644 --- a/src/main/java/com/jobdri/jobdri_api/domain/analysis/dto/response/QuestionCandidateResponse.java +++ b/src/main/java/com/jobdri/jobdri_api/domain/analysis/dto/response/QuestionCandidateResponse.java @@ -1,6 +1,7 @@ package com.jobdri.jobdri_api.domain.analysis.dto.response; public record QuestionCandidateResponse( + Long questionId, String content, int charLimit, boolean selected diff --git a/src/main/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionService.java b/src/main/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionService.java index fd6ef28..e0ebba9 100644 --- a/src/main/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionService.java +++ b/src/main/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionService.java @@ -35,11 +35,11 @@ public class QuestionService { private static final int DEFAULT_CHAR_LIMIT = 1000; private static final List DEFAULT_CANDIDATES = List.of( - new QuestionCandidate("지원 동기와 입사 후 목표를 작성해주세요.", 700), - new QuestionCandidate("지원 직무와 관련된 경험 또는 역량을 구체적으로 작성해주세요.", 1000), - new QuestionCandidate("문제를 해결했던 경험과 그 과정에서의 역할을 작성해주세요.", 1000), - new QuestionCandidate("협업 과정에서 갈등을 해결했던 경험을 작성해주세요.", 800), - new QuestionCandidate("가장 성취감을 느꼈던 프로젝트와 성과를 작성해주세요.", 1000) + new QuestionCandidate(1L, "지원 동기와 입사 후 목표를 작성해주세요.", 700), + new QuestionCandidate(2L, "지원 직무와 관련된 경험 또는 역량을 구체적으로 작성해주세요.", 1000), + new QuestionCandidate(3L, "문제를 해결했던 경험과 그 과정에서의 역할을 작성해주세요.", 1000), + new QuestionCandidate(4L, "협업 과정에서 갈등을 해결했던 경험을 작성해주세요.", 800), + new QuestionCandidate(5L, "가장 성취감을 느꼈던 프로젝트와 성과를 작성해주세요.", 1000) ); private final MockApplyRepository mockApplyRepository; @@ -53,6 +53,7 @@ public List getQuestionCandidates(User user, Long moc return DEFAULT_CANDIDATES.stream() .map(candidate -> new QuestionCandidateResponse( + candidate.id(), candidate.content(), candidate.charLimit(), selectedContents.contains(candidate.content()) @@ -165,6 +166,6 @@ private String normalizeAnswer(String answer) { return ""; } - private record QuestionCandidate(String content, int charLimit) { + private record QuestionCandidate(Long id, String content, int charLimit) { } } diff --git a/src/test/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionServiceTest.java b/src/test/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionServiceTest.java index 23d758b..3275f83 100644 --- a/src/test/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionServiceTest.java +++ b/src/test/java/com/jobdri/jobdri_api/domain/analysis/service/QuestionServiceTest.java @@ -122,6 +122,9 @@ void getQuestionCandidatesMarksSelectedQuestion() { List candidates = questionService.getQuestionCandidates(user, mockApply.getId()); assertThat(candidates).hasSize(5); + assertThat(candidates) + .extracting(QuestionCandidateResponse::questionId) + .containsExactly(1L, 2L, 3L, 4L, 5L); assertThat(candidates.get(0).selected()).isTrue(); assertThat(candidates.get(1).selected()).isFalse(); }