Repository navigation
test: production-equivalent 조립과 상태 머신 회귀 테스트 보강 - #152
Merged
Merged
Conversation
7 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 필요한가요?
테스트 간편 생성자가 운영 Spring bean graph와 다른 Jackson 의존성을 조립하고, 턴 고유 제약 충돌을 문자열로 판정하여 잘못된 409 분류가 발생할 수 있습니다.
무엇이 바뀌나요?
책임 경계
어떻게 검증했나요?
./gradlew clean test./gradlew postgresIntegrationTest./gradlew buildcd frontend && npm ci && npm test && npm run lint && npm run build비판적 검토에서 드라이버가 runtimeOnly인 상태로 PSQLException을 production source에서 참조하면 컴파일되지 않는 문제를 발견하여 implementation으로 전환했습니다. 또한 메시지에 constraint 문자열만 있는 경우 false-positive를 방지하는 테스트를 추가했고, 동일 key 재시도 로직을 함수로 분리해 검증했습니다. CI #40373193169에서 backend unit, PostgreSQL integration, build와 frontend test/lint/build의 성공 step을 확인했습니다. PostgreSQL 테스트는 실제 unique 충돌을 만들고, frontend는 실제 App이 사용하는 요청 게이트와 key 유지 규칙을 단위 테스트합니다. 실제 브라우저 환경의 UI 상호작용 테스트는 별도로 수행하지 않았습니다. 이전 CI 실패 원인인 누락 생성자, 잘못된 null 기반 fixture, Mockito 중첩 stubbing도 수정했습니다. 수동 브라우저 smoke는 수행하지 않았습니다.
게임 상태·AI 안전성
Schema와 canonical state 계산·LLM 호출 경로는 변경하지 않았습니다. Snapshot codec과 감사 로그 codec을 실제 Spring bean으로 검증합니다. 이전 저장 데이터는 변환하지 않습니다.
보안·비용
새로운 외부 호출, credential 전달 또는 공개 endpoint는 없습니다.
API·DB·운영 영향
API와 DB schema 및 환경변수 변경 없음. Deploy 후 회귀 확인은 저장 세션 재개 및 중복 진행·재시도 시나리오입니다.
화면 / 응답 예시
UI 텍스트 및 API 응답 계약 변경 없음.
CI 증거
./gradlew clean test,./gradlew postgresIntegrationTest,./gradlew build,npm ci,npm test,npm run lint,npm run build모두 성공. 실제 브라우저 smoke 미실시.