Skip to content

chore: 파일 검증 테스트 코드#6

Merged
KOO612 merged 2 commits intomainfrom
feature/FileUpload
Jan 5, 2026
Merged

chore: 파일 검증 테스트 코드#6
KOO612 merged 2 commits intomainfrom
feature/FileUpload

Conversation

@KOO612
Copy link
Copy Markdown
Collaborator

@KOO612 KOO612 commented Jan 5, 2026

개요

업로드된 파일이 package.json 형식의 의존성 관리 파일인지 판별하는 FileUploadService에 대한 단위 테스트 코드를 추가했습니다.

주요 테스트 내용

  • createMockFile 유틸 함수를 통해 Nest.js 환경에서 업로드 파일(Express.Multer.File)을 모킹하여 테스트에 활용했습니다.
  • isJsonExtension에서 .json 확장자인지 여부를 검사하고, .json이면 true, 그 외 확장자는 false를 반환하는지 테스트했습니다.
  • isPackageJsonFileName이 파일명이 정확히 package.json일 때만 true를 반환하고, package-lock.json 등 다른 이름일 경우 false를 반환하는지 검증했습니다.
  • parseJson이 유효한 JSON 문자열일 경우 파싱된 객체를, 잘못된 JSON일 경우 null을 반환하는지 테스트했습니다.
  • hasDependenciesdependencies 또는 devDependencies가 존재하면 true, 둘 다 없거나 null/undefined일 경우 false를 반환하는지 다양한 케이스로 검증했습니다.
  • isPackageJson이 다음 조건을 모두 만족할 때만 true를 반환하는지 통합적으로 확인했습니다.
    • 확장자가 .json일 것
    • 파일명이 package.json일 것
    • JSON이 유효하게 파싱될 것
    • dependencies 또는 devDependencies 중 하나 이상 존재할 것

@KOO612 KOO612 requested a review from f-lab-namu January 5, 2026 06:59
@KOO612 KOO612 self-assigned this Jan 5, 2026
@KOO612
Copy link
Copy Markdown
Collaborator Author

KOO612 commented Jan 5, 2026

  1. 각 함수가 하나의 역할만 수행하도록 분리하여 구현했습니다.
    이 부분이 적절하게 설계되었는지, 혹시 더 분리하거나 통합하는 것이 좋을지 검토 부탁드립니다.
  2. 테스트 코드 네이밍을 각 동작과 직접적으로 연관되도록 작성했습니다.
    테스트 이름만 보고도 의도를 충분히 파악할 수 있는지, 개선하면 좋을 부분이 있다면 의견 부탁드립니다.

@KOO612 KOO612 merged commit 6ee250e into main Jan 5, 2026
1 check passed
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Jan 5, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
24.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@KOO612 KOO612 deleted the feature/FileUpload branch January 5, 2026 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants