Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
0323775
feat: QnaSetIntegrationTest 생성
zxc534 Feb 11, 2026
fa6d3c1
Merge remote-tracking branch 'origin/dev' into DEV-176/test/qna-set-c…
zxc534 Feb 12, 2026
69fb4cd
test: 질답_세트_생성에_성공한다 작성
zxc534 Feb 13, 2026
19674de
feat: 질답 세트 생성 시 interview가 qnaSetDraft 상태인지 검증 로직 추가
zxc534 Feb 13, 2026
90c60c3
test: 인터뷰 상태에 검증 추가로 테스트 로직 수정
zxc534 Feb 13, 2026
0fd411b
chore: 프롬프트 파일 삭제
zxc534 Feb 13, 2026
c2c6785
test: 어려웠던 질문 마킹 등록/해제 테스트 작성
zxc534 Feb 13, 2026
3176285
feat: 인터뷰 상태 검증 로직 추가
zxc534 Feb 13, 2026
572fdae
test: 질답 세트 수정 테스트 작성
zxc534 Feb 13, 2026
8795868
Merge remote-tracking branch 'origin/dev' into DEV-176/test/qna-set-c…
zxc534 Feb 13, 2026
d2c39a2
merge origin/dev
zxc534 Feb 13, 2026
5e18714
test: 면접 생성을 메소드 사용하여 간소화
zxc534 Feb 13, 2026
3a67be1
test: 질답 세트 수정 테스트 추가
zxc534 Feb 13, 2026
6b70636
test: 질문 답변 세트 삭제 테스트 작성
zxc534 Feb 13, 2026
80090dc
docs: 하이라이팅 등록/수정 API swagger 작성
zxc534 Feb 13, 2026
4f2558b
feat: PDF 하이라이팅 업데이트 시 면접 상태 검증 로직 추가
zxc534 Feb 13, 2026
3071b23
test: PDF 하이라이팅 등록 테스트 작성
zxc534 Feb 13, 2026
cad5846
test: createAndSavePdfHighlighting 메소드 구현
zxc534 Feb 13, 2026
20b1437
test: PDF 하이라이팅 조회 테스트 작성
zxc534 Feb 13, 2026
3240dd8
chore: spotless 적용
zxc534 Feb 13, 2026
35f8050
test: 실제 값 검증 로직을 추가
zxc534 Feb 13, 2026
82e3ced
fix: unmark 메소드가 값을 false로 설정하도록 수정
zxc534 Feb 13, 2026
9c8e3ec
chore: 잘못된 테스트 이름 수정
zxc534 Feb 13, 2026
f6110f4
Merge branch 'DEV-176/test/qna-set-controller-통합-테스트-작성' into DEV-256…
zxc534 Feb 13, 2026
c782c9e
test: qnaSetCategory 테스트 데이터 추가
zxc534 Feb 13, 2026
42bbbf1
test: qnaSetMy 통합 테스트 작성
zxc534 Feb 13, 2026
d1d6299
refactor: 테스트 코드의 공통 부분을 외부 클래스의 BeforeEach로 분리
zxc534 Feb 15, 2026
b389a38
chore: QnaSetDraft->질답 세트 검토 중, 명칭 변경
zxc534 Feb 15, 2026
bd48aff
chore: 테스트 코드 들여쓰기 수정
zxc534 Feb 15, 2026
2562534
chore: 일회성 변수 타입을 var로 수정
zxc534 Feb 15, 2026
a425e09
test: 테스트에 업데이트된 값 검증 추가
zxc534 Feb 15, 2026
3d2463e
test: 질답 세트 수정 테스트 ParameterizedTest+EnumSource로 케이스 추가
zxc534 Feb 15, 2026
337ec07
test: 테스트 케이스 추가
zxc534 Feb 15, 2026
169b9c5
chore: given/when/then 주석 추가
zxc534 Feb 15, 2026
4cbd370
chore: spoless 적용
zxc534 Feb 15, 2026
6fa5ea3
merge origin/dev
zxc534 Feb 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
public enum InterviewReviewStatus {
NOT_LOGGED, // 기록 전
LOG_DRAFT, // 기록 중
QNA_SET_DRAFT,
QNA_SET_DRAFT, // 질답 세트 검토 중
SELF_REVIEW_DRAFT, // 회고 중
DEBRIEF_COMPLETED // 회고 완료
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public ResponseEntity<ApiResponse<Void>> unmarkDifficultQuestion(@PathVariable L
return ResponseEntity.ok(response);
}

@Operation(summary = "지정한 질문 답변 세트의 질문 답변 내용을 수정합니다.", description = "질문 답변 내용 수정은 'QnaSetDraft' 상태에서만 가능합니다.")
@Operation(summary = "지정한 질문 답변 세트의 질문 답변 내용을 수정합니다.", description = "질문 답변 내용 수정은 질답 세트 검토 중 상태에서만 가능합니다.")
@PutMapping("/{qnaSetId}")
public ResponseEntity<ApiResponse<Void>> updateQnaSet(
@PathVariable Long qnaSetId, @Valid @RequestBody QnaSetUpdateRequest request) {
Expand All @@ -82,7 +82,7 @@ public ResponseEntity<ApiResponse<Void>> updateQnaSet(
return ResponseEntity.ok(response);
}

@Operation(summary = "지정한 질문 답변 세트를 삭제합니다.", description = "질문 답변 세트 삭제는 'QnaSetDraft' 상태에서만 가능합니다.")
@Operation(summary = "지정한 질문 답변 세트를 삭제합니다.", description = "질문 답변 세트 삭제는 질답 세트 검토 중 상태에서만 가능합니다.")
@DeleteMapping("/{qnaSetId}")
public ResponseEntity<ApiResponse<Void>> deleteQnaSet(@PathVariable Long qnaSetId) {
qnaSetService.deleteQnaSet(qnaSetId);
Expand All @@ -92,7 +92,7 @@ public ResponseEntity<ApiResponse<Void>> deleteQnaSet(@PathVariable Long qnaSetI

@Operation(
summary = "지정한 질문 답변 세트에 대해 PDF 하이라이팅 정보를 등록/수정합니다.",
description = "PDF 하이라이팅 정보 등록/수정은 'QnaSetDraft' 상태에서만 가능합니다.")
description = "PDF 하이라이팅 정보 등록/수정은 질답 세트 검토 중 상태에서만 가능합니다.")
@PutMapping("/{qnaSetId}/pdf-highlightings")
public ResponseEntity<ApiResponse<Void>> updatePdfHighlighting(
@PathVariable Long qnaSetId, @Valid @RequestBody List<PdfHighlightingUpdateRequest> request) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ public enum ErrorCode {
INTERVIEW_NOT_ACCESSIBLE(FORBIDDEN, "인터뷰에 접근할 수 없습니다."),
INTERVIEW_NOT_IN_DRAFT_STATUS(BAD_REQUEST, "임시저장 상태의 인터뷰만 조회할 수 있습니다."),
INTERVIEW_REVIEW_STATUS_NOT_UPDATABLE_TO_LOG_DRAFT(BAD_REQUEST, "인터뷰 상태가 기록전 상태일 때만 기록중으로 바뀔 수 있습니다"),
INTERVIEW_REVIEW_STATUS_NOT_UPDATABLE_TO_QNA_SET_DRAFT(BAD_REQUEST, "인터뷰 상태가 기록중 상태일 때만 QnaSetDraft로 바뀔 수 있습니다"),
INTERVIEW_REVIEW_STATUS_NOT_UPDATABLE_TO_SELF_REVIEW_DRAFT(
BAD_REQUEST, "인터뷰 상태가 QnaSetDraft 상태일 때만 회고중으로 바뀔 수 있습니다"),
INTERVIEW_REVIEW_STATUS_NOT_UPDATABLE_TO_QNA_SET_DRAFT(BAD_REQUEST, "인터뷰 상태가 기록중 상태일 때만 질답세트검토중으로 바뀔 수 있습니다"),
INTERVIEW_REVIEW_STATUS_NOT_UPDATABLE_TO_SELF_REVIEW_DRAFT(BAD_REQUEST, "인터뷰 상태가 질답세트검토중 상태일 때만 회고중으로 바뀔 수 있습니다"),
INTERVIEW_REVIEW_STATUS_NOT_UPDATABLE_TO_DEBRIEF_COMPLETED(BAD_REQUEST, "인터뷰 상태가 회고중 상태일 때만 회고완료로 바뀔 수 있습니다"),
INTERVIEW_REVIEW_STATUS_VALIDATION_FAILED(BAD_REQUEST, "요청을 처리하는데 필요한 인터뷰 상태의 검증에 실패하였습니다."),

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@
import com.shyashyashya.refit.domain.qnaset.model.PdfHighlighting;
import com.shyashyashya.refit.domain.qnaset.model.PdfHighlightingRect;
import com.shyashyashya.refit.domain.qnaset.model.QnaSet;
import com.shyashyashya.refit.domain.qnaset.model.QnaSetCategory;
import com.shyashyashya.refit.domain.qnaset.repository.PdfHighlightingRectRepository;
import com.shyashyashya.refit.domain.qnaset.repository.PdfHighlightingRepository;
import com.shyashyashya.refit.domain.qnaset.repository.QnaSetCategoryRepository;
import com.shyashyashya.refit.domain.qnaset.repository.QnaSetRepository;
import com.shyashyashya.refit.domain.qnaset.dto.request.PdfHighlightingUpdateRequest;
import com.shyashyashya.refit.domain.qnaset.model.PdfHighlighting;
import com.shyashyashya.refit.domain.qnaset.model.PdfHighlightingRect;
import com.shyashyashya.refit.domain.qnaset.model.QnaSet;
import com.shyashyashya.refit.domain.qnaset.repository.PdfHighlightingRectRepository;
import com.shyashyashya.refit.domain.qnaset.repository.PdfHighlightingRepository;
import com.shyashyashya.refit.domain.qnaset.repository.QnaSetRepository;
Expand Down Expand Up @@ -66,6 +75,9 @@ public abstract class IntegrationTest {
protected Company company1;
protected Company company2;
protected Company company3;
protected QnaSetCategory qnaSetCategory1;
protected QnaSetCategory qnaSetCategory2;
protected QnaSetCategory qnaSetCategory3;

@PersistenceContext
private EntityManager em;
Expand Down Expand Up @@ -97,6 +109,9 @@ public abstract class IntegrationTest {
@Autowired
private PdfHighlightingRectRepository pdfHighlightingRectRepository;

@Autowired
private QnaSetCategoryRepository qnaSetCategoryRepository;

@BeforeEach
void restAssuredSetUp() {
clearDatabase();
Expand All @@ -111,6 +126,9 @@ void restAssuredSetUp() {
company1 = companyRepository.save(Company.create("현대자동차", "logo1", true));
company2 = companyRepository.save(Company.create("카카오", "logo2", true));
company3 = companyRepository.save(Company.create("네이버", "logo3", true));
qnaSetCategory1 = qnaSetCategoryRepository.save(QnaSetCategory.create("리더십 질문", "당신은 리더십있는 사람입니까?", 3.141592));
qnaSetCategory2 = qnaSetCategoryRepository.save(QnaSetCategory.create("인성 질문", "당신은 인성이 좋은 사람입니까?", 2.145));
qnaSetCategory3 = qnaSetCategoryRepository.save(QnaSetCategory.create("기술 질문", "당신은 기술 있는 사람입니까?", 0.001));

requestUser = createAndSaveUser("test@example.com", "default", industry1, jobCategory1);
Instant issuedAt = Instant.now();
Expand Down Expand Up @@ -206,7 +224,11 @@ protected Company createAndSaveCompany(String companyName) {
return companyRepository.save(company);
}

protected QnaSet createQnaSet(QnaSetCreateRequest request, Interview interview, boolean isMarkedDifficult) {
protected QnaSet createAndSaveQnaSet(QnaSetCreateRequest request, Interview interview) {
return createAndSaveQnaSet(request, interview, false);
}

protected QnaSet createAndSaveQnaSet(QnaSetCreateRequest request, Interview interview, boolean isMarkedDifficult) {
QnaSet qnaSet = QnaSet.create(
request.questionText(),
request.answerText(),
Expand All @@ -218,6 +240,18 @@ protected QnaSet createQnaSet(QnaSetCreateRequest request, Interview interview,
return qnaSetRepository.save(qnaSet);
}

protected QnaSet createAndSaveQnaSet(QnaSetCreateRequest request, Interview interview, QnaSetCategory qnaSetCategory) {
QnaSet qnaSet = QnaSet.create(
request.questionText(),
request.answerText(),
false,
interview,
qnaSetCategory
);

return qnaSetRepository.save(qnaSet);
}

protected List<PdfHighlighting> createAndSavePdfHighlighting(List<PdfHighlightingUpdateRequest> requests, QnaSet qnaSet) {
List<PdfHighlighting> result = new ArrayList<>();

Expand Down
Loading
Loading