Skip to content

Conversation

@jbh010204
Copy link
Member

@jbh010204 jbh010204 commented Aug 23, 2025

This pull request introduces significant improvements to both the CI workflow and the test coverage for inquiry-related features. The workflow is refactored to separate build and test jobs and to handle build artifacts more efficiently. Additionally, comprehensive unit and controller tests are added for inquiry answer and attachment services, as well as for the inquiry controller, improving reliability and maintainability.

CI Workflow Improvements

  • Refactored .github/workflows/docker-pr-build.yaml to split the build and test processes into separate jobs, added artifact upload/download steps, and changed the build step to skip tests. This improves pipeline efficiency and clarity. [1] [2]

Test Coverage Enhancements

Inquiry Answer Service Tests

  • Added InquiryAnswerServiceTest.java with thorough tests for creating, updating, deleting, and retrieving inquiry answers, including edge cases for error handling.

Inquiry Attachment Service Tests

  • Added InquiryAttachmentServiceTest.java to test creation, deletion, updating, and response conversion for inquiry attachments, ensuring correct repository and S3 interactions.

Inquiry Controller Tests

  • Added InquiryControllerTest2.java to test inquiry creation, update, deletion, detail retrieval, and user inquiry list endpoints, validating controller behavior and response structure.

Summary by CodeRabbit

  • Bug Fixes
    • Fixed a validation package/import issue that could disrupt builds.
  • Chores
    • CI pipeline now separates build and test steps and publishes build artifacts for pull requests.
  • Tests
    • Added extensive unit tests across applications, payments, refunds, inquiries, notices, and infrastructure.
    • Introduced test resources, database migrations, and logging configuration to stabilize test environments.
  • Refactor
    • Minor code cleanups and test package reorganizations to improve maintainability.

@coderabbitai
Copy link

coderabbitai bot commented Aug 23, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Warning

Rate limit exceeded

@polyglot-k has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 5 minutes and 43 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 718b1a9 and e9c91e0.

⛔ Files ignored due to path filters (1)
  • src/test/resources/static/fonts/AKONY.woff2 is excluded by !**/*.woff2
📒 Files selected for processing (85)
  • .github/workflows/docker-pr-build.yaml (2 hunks)
  • src/main/java/life/mosu/mosuserver/application/application/ApplicationContext.java (3 hunks)
  • src/main/java/life/mosu/mosuserver/application/application/ApplicationService.java (1 hunks)
  • src/main/java/life/mosu/mosuserver/application/application/validator/ApplicationValidator.java (1 hunks)
  • src/main/java/life/mosu/mosuserver/application/event/EventAttachmentService.java (0 hunks)
  • src/test/java/life/mosu/mosuserver/FaqServiceTest.java (0 hunks)
  • src/test/java/life/mosu/mosuserver/MosuServerApplicationTests.java (0 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/ApplicationContextTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/ApplicationEventServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/ApplicationProcessingContextTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/ApplicationServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/cron/ApplicationFailureLogCleanupExecutorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/cron/ApplicationFailureLogDomainArchiveExecutorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/factory/ApplicationFailureLogFactoryTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/processor/GetApplicationsStepProcessorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/processor/RegisterApplicationStepProcessorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/processor/SaveExamTicketStepProcessorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/stream/IdStreamTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/application/validator/ApplicationValidatorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/faq/FaqServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/inquiry/InquiryAnswerServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/inquiry/InquiryAttachmentServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/inquiry/InquiryServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/notice/NoticeAttachmentServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/notice/NoticeServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/payment/PaymentConfirmServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/payment/PaymentPrepareServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/payment/support/PaymentQuotaSyncServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/payment/verifier/PaymentVerifierTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/RefundEventTxServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/RefundServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/cron/RefundFailureLogCleanupExecutorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/cron/RefundFailureLogDomainArchiveExecutorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/factory/RefundFailureLogFactoryTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/processor/TossRefundProcessorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/support/RefundQuotaSyncServiceTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/tx/RefundContextTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/tx/RefundTxEventFactoryTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/tx/RefundTxEventListenerTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/application/refund/tx/RefundTxFailureHandlerTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/domain/discount/FixedQuantityDiscountCalculatorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/domain/discount/QuantityPercentageDiscountCalculatorTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/AtomicOperatorAutoRegistrarTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/QuartzAutoRegisterConfigTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/QuerydslConfigTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/RetryConfigTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/S3ConfigTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/SwaggerConfigTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/config/TossPaymentConfigTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/cron/job/ArchivingOrchestratorJobTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/cron/job/LogCleanupJobTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/cron/support/AutowiringSpringBeanJobFactoryTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/kmc/KmcDataMapperTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/kmc/KmcServiceTest.java (0 hunks)
  • src/test/java/life/mosu/mosuserver/infra/notify/MailNotifierTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/ApplicationFailureLogJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/ApplicationJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/EventQueryRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/InquiryJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/PaymentFailureLogJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/PaymentJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/RefundFailureLogJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/RefundJpaRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/persistence/jpa/StudentQueryRepositoryImplTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/toss/TossPaymentClientTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/toss/TossPaymentErrorHandlerTest.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/toss/stub/BaseFakeRestOperationsStub.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/toss/stub/CancelFakeRestOperationsStub.java (1 hunks)
  • src/test/java/life/mosu/mosuserver/infra/toss/stub/ConfirmFakeRestOperationsStub.java (1 hunks)
  • src/test/resources/META-INF/spring.factories (1 hunks)
  • src/test/resources/application-base.yml (2 hunks)
  • src/test/resources/application-local.yml (1 hunks)
  • src/test/resources/application-prod.yml (1 hunks)
  • src/test/resources/application-test.yml (1 hunks)
  • src/test/resources/application.yml (1 hunks)
  • src/test/resources/db/migration/V1__init.sql (1 hunks)
  • src/test/resources/db/migration/V2__insert_data.sql (1 hunks)
  • src/test/resources/db/migration/V3__alter_deposit_status.sql (1 hunks)
  • src/test/resources/logback-spring.xml (1 hunks)
  • src/test/resources/messages_ko.properties (1 hunks)
  • src/test/resources/scripts/exam/decrement_quota.lua (1 hunks)
  • src/test/resources/scripts/exam/increment_quota.lua (1 hunks)
  • src/test/resources/security-config.yml (2 hunks)
  • src/test/resources/swagger-config.yml (1 hunks)
  • src/test/resources/templates/mail/deposit-complete.html (1 hunks)

Walkthrough

Renamed CI job and split build/test steps with artifact upload. Added ApplicationContext.of factory method and fixed a validator package/import. Deleted EventAttachmentService. Removed a few trivial tests and added extensive new unit tests across application, inquiry, notice, payment, refund, infra, and repository layers. Introduced comprehensive test resources, Flyway migrations, and Redis Lua scripts.

Changes

Cohort / File(s) Summary
CI workflow
.github/workflows/docker-pr-build.yaml
Job key renamed to build-and-test; separated build without tests and test steps; added artifact upload of build/libs/*.jar.
Application module tweaks
src/main/java/life/mosu/mosuserver/application/application/ApplicationContext.java, .../ApplicationService.java, .../application/validator/ApplicationValidator.java
Added public static factory ApplicationContext.of(...); formatting only otherwise. Fixed ApplicationValidator import and package name typos.
Event attachment service removal
src/main/java/life/mosu/mosuserver/application/event/EventAttachmentService.java
Removed EventAttachmentService class and its attachment management methods.
Removed legacy tests
src/test/java/life/mosu/mosuserver/FaqServiceTest.java, .../MosuServerApplicationTests.java, .../infra/kmc/KmcServiceTest.java
Deleted trivial/legacy tests.
Application domain tests
src/test/java/life/mosu/mosuserver/application/application/*
Added tests for ApplicationContext, ApplicationService, ApplicationEventService, processing context and processors, cron executors, factory, validator, stream.
Inquiry tests
src/test/java/life/mosu/mosuserver/application/inquiry/*
Added tests for InquiryService, InquiryAttachmentService, InquiryAnswerService.
Notice tests
src/test/java/life/mosu/mosuserver/application/notice/*
Added tests for NoticeService and NoticeAttachmentService.
Payment and refund tests
src/test/java/life/mosu/mosuserver/application/payment/*, .../refund/*
Added tests for payment prepare/confirm, quota sync, verifier; refund services, processors, quota sync, tx flow (factory, listener, failure handler, context), and cron executors.
Infra/config and cron tests
src/test/java/life/mosu/mosuserver/infra/config/*, .../infra/cron/*
Added tests for config beans (Quartz, Querydsl, Retry, S3, Swagger, TossPayment, AtomicOperator registrar) and cron jobs (archiving/log cleanup, job factory wiring).
Repository impl structure tests
src/test/java/life/mosu/mosuserver/infra/persistence/jpa/*RepositoryImplTest.java
Added basic wiring tests for multiple JPA repository implementations.
Toss client tests and stubs refactor
src/test/java/life/mosu/mosuserver/infra/toss/*, .../infra/toss/stub/*
Moved Toss tests/stubs to infra.toss packages; added TossPaymentErrorHandlerTest; adjusted imports.
Domain test refactors
src/test/java/life/mosu/mosuserver/domain/discount/*, .../application/application/stream/IdStreamTest.java
Updated discount test packages; added IdStream test.
Test resources – configs
src/test/resources/application*.yml, security-config.yml, swagger-config.yml, logback-spring.xml, META-INF/spring.factories, messages_ko.properties
Introduced test-time Spring configs, Swagger, security, logging, localization; enabled Flyway; adjusted profiles and externalized secrets.
Test DB migrations
src/test/resources/db/migration/V1__init.sql, V2__insert_data.sql, V3__alter_deposit_status.sql
Added schema initialization and seed data migrations for tests; minor column alteration script.
Redis Lua scripts (tests)
src/test/resources/scripts/exam/*
Added increment/decrement quota Lua scripts for Redis.
Mail template (tests)
src/test/resources/templates/mail/deposit-complete.html
Added Thymeleaf email template for deposit completion.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Client as Caller
  participant ACtx as ApplicationContext
  participant Repos as Repositories

  Note over Client,ACtx: Assemble application responses
  Client->>ACtx: of(applications, examApplications)
  activate ACtx
  ACtx->>Repos: fetchExams(examIds)
  Repos-->>ACtx: exams
  ACtx->>Repos: fetchSubjects(examAppIds)
  Repos-->>ACtx: subjects
  ACtx->>Repos: fetchPayments(examAppIds)
  Repos-->>ACtx: payments
  ACtx->>Repos: fetchRefunds(examAppIds)
  Repos-->>ACtx: refunds
  ACtx-->>Client: assemble() -> List<ApplicationResponse>
  deactivate ACtx

  note right of ACtx: New factory method ACtx.of(...)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

우선순위 중

Suggested reviewers

  • jbh010204

Poem

In burrows of code I hop and test,
CI now builds, then runs the rest.
Contexts assemble, refunds align,
Lua scripts whisper, “quota’s fine.”
Attachments gone, the path is clear—
Carrots compiled, ship without fear! 🥕✨

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/test

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@polyglot-k
Copy link
Contributor

/gemini review

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @jbh010204, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 CI/CD 워크플로우를 개선하고, 문의 관련 기능에 대한 테스트 커버리지를 대폭 확장하는 것을 목표로 합니다. 빌드 및 테스트 프로세스를 분리하여 효율성을 높이고, 문의 답변 및 첨부 파일 서비스, 그리고 문의 컨트롤러에 대한 광범위한 테스트를 추가하여 시스템의 신뢰성과 유지보수성을 향상시킵니다. 또한, 전반적인 테스트 코드 정리와 함께 새로운 환경별 설정 및 데이터베이스 마이그레이션 스크립트를 도입하여 개발 및 배포 환경을 더욱 견고하게 만듭니다.

Highlights

  • CI 워크플로우 개선: CI 워크플로우를 리팩토링하여 빌드 및 테스트 프로세스를 분리하고, 아티팩트 처리 효율성을 높였습니다. 이는 파이프라인의 명확성과 효율성을 크게 향상시킵니다.
  • 문의 답변 서비스 테스트 강화: 문의 답변 서비스에 대한 포괄적인 단위 및 컨트롤러 테스트가 추가되어, 생성, 업데이트, 삭제, 조회 기능의 신뢰성과 오류 처리 능력이 강화되었습니다.
  • 문의 첨부 파일 서비스 테스트 추가: 문의 첨부 파일 서비스에 대한 테스트가 추가되어, 파일 생성, 삭제, 업데이트 및 응답 변환 로직이 올바르게 작동하는지 검증합니다.
  • 문의 컨트롤러 테스트 도입: 문의 컨트롤러에 대한 테스트가 추가되어, 문의 생성, 업데이트, 삭제, 상세 조회 및 사용자 문의 목록 엔드포인트의 동작이 검증됩니다.
  • 테스트 코드 정리: 기존의 불필요하거나 중복되는 테스트 파일들이 제거되어 프로젝트의 테스트 코드베이스가 정리되었습니다.
  • 광범위한 테스트 커버리지 확장: 애플리케이션 및 인프라 전반에 걸쳐 다양한 새로운 단위 및 통합 테스트 파일이 추가되어 전반적인 코드 품질과 안정성이 향상되었습니다.
  • 환경별 설정 및 프로필 도입: Spring 프로필을 활용한 새로운 환경별 설정 파일들이 추가되었고, 기존 application.yml이 프로필 기반으로 변경되어 환경 관리가 더욱 유연해졌습니다.
  • 데이터베이스 마이그레이션 도입: 데이터베이스 초기화 및 데이터 삽입을 위한 Flyway 마이그레이션 스크립트가 추가되어 데이터베이스 버전 관리가 용이해졌습니다.
  • Redis 할당량 관리 로직 추가: Redis 기반의 시험 할당량 관리를 위한 Lua 스크립트가 추가되어 동시성 제어 및 성능이 개선되었습니다.
  • 보안 설정 강화: 카카오 OAuth 스코프가 확장되고 PBKDF2 암호화, 로그인 시도 제한, Rate Limit 등 보안 관련 설정이 강화되었습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 CI 워크플로우 개선과 함께 문의 관련 기능에 대한 단위 테스트 및 컨트롤러 테스트를 대거 추가하여 코드의 신뢰성과 유지보수성을 크게 향상시켰습니다. 전반적으로 테스트 커버리지를 높이는 좋은 변경이라고 생각합니다. 몇 가지 테스트 코드의 유지보수성을 개선할 수 있는 점을 제안했습니다. backup 디렉토리에 추가된 테스트 파일들은 의도된 변경인지 확인이 필요해 보입니다.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 CI 워크플로우 개선과 테스트 커버리지 향상에 큰 기여를 했습니다. 특히 다양한 서비스와 인프라에 대한 단위 테스트를 추가하여 코드의 신뢰성과 유지보수성을 높인 점이 인상적입니다.

다만, 몇 가지 개선점을 제안합니다.

  • backup 디렉토리가 실수로 추가된 것으로 보입니다. 이 디렉토리에는 중복되거나 오래된 테스트 파일이 포함되어 있어 혼란을 줄 수 있으므로 제거하는 것이 좋겠습니다. 특히 InquiryControllerTest2.java 파일은 올바른 테스트 소스 경로로 이동해야 할 것 같습니다.
  • 일부 테스트에서 Mockito.mockConstruction을 사용하는 부분이 있는데, 이는 테스트를 복잡하게 만들 수 있습니다. 팩토리 패턴을 도입하여 의존성을 주입하면 테스트가 더 간결해질 것입니다.
  • 테스트 파일명에 오타가 있고, 여러 테스트에서 예외 처리를 e.printStackTrace()로 하고 있어 디버깅을 어렵게 할 수 있는 부분이 있습니다.

자세한 내용은 각 파일에 남긴 리뷰 코멘트를 참고해 주세요. 전반적으로 훌륭한 기여에 감사드립니다.

@polyglot-k polyglot-k merged commit 929e98f into develop Aug 23, 2025
2 checks passed
@polyglot-k polyglot-k deleted the feat/test branch August 23, 2025 17:02
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.

3 participants