Context
현재 api-server 테스트 커버리지가 10%로 설정되어 있음. 80%까지 단계적으로 올리기 위한 첫 번째 단계로, 테스트 인프라를 구축한다.
현재 상태
- 테스트 401개 존재하나 대부분 DTO 직렬화/역직렬화 검증
src/tests/helpers.rs에 health check 라우터 하나만 존재
- SeaORM
mock feature 미활성화 → MockDatabase 사용 불가
- 외부 서비스 trait 추상화 완료 (
SearchClient, StorageClient, EmbeddingClient, AffiliateClient)
작업 목록
1. SeaORM mock feature 활성화
2. src/tests/helpers.rs 확장
3. src/tests/fixtures.rs (신규)
4. src/tests/mod.rs 업데이트
검증
cargo test --lib tests::
cargo check
참고 파일
packages/api-server/Cargo.toml
packages/api-server/src/tests/helpers.rs
packages/api-server/src/tests/mod.rs
packages/api-server/src/app_state.rs (AppState 구조 참고)
예상 산출물
- 신규 테스트: ~5개 (인프라 스모크 테스트)
- 커버리지 변화: 없음 (인프라만 구축)
- 후속: Phase 1~4의 전제조건
Context
현재 api-server 테스트 커버리지가 10%로 설정되어 있음. 80%까지 단계적으로 올리기 위한 첫 번째 단계로, 테스트 인프라를 구축한다.
현재 상태
src/tests/helpers.rs에 health check 라우터 하나만 존재mockfeature 미활성화 →MockDatabase사용 불가SearchClient,StorageClient,EmbeddingClient,AffiliateClient)작업 목록
1. SeaORM mock feature 활성화
Cargo.tomldev-dependencies에 추가:2.
src/tests/helpers.rs확장create_mock_db(results)—MockDatabase빌더 래퍼create_test_app_state(db, mocks)— mock DB + mock trait 클라이언트로AppState생성mock_user()/mock_admin_user()— 테스트용User객체 팩토리authenticated_request(method, uri, user)— JWT Extension이 주입된 Axum 테스트 요청 빌더3.
src/tests/fixtures.rs(신규)post_model(),user_model(),solution_model(),spot_model(),comment_model(),vote_model(),badge_model()등MockDatabase에 넣을 결과 셋 생성 헬퍼4.
src/tests/mod.rs업데이트fixtures모듈 등록검증
cargo test --lib tests:: cargo check참고 파일
packages/api-server/Cargo.tomlpackages/api-server/src/tests/helpers.rspackages/api-server/src/tests/mod.rspackages/api-server/src/app_state.rs(AppState 구조 참고)예상 산출물