최종 갱신 (KST)

← 일감 목록
T-153

서버 — 상자 시트 테스트가 황금 열쇠를 상자로 센다 (BoxSheetTest 2건 실패)

진우 Resolve 우선순위 보통 목표 261024

배경

T-112 상자 개편(a032487, 2026-10-10)에서 황금 열쇠(100012) 에 OpenGachaId = 24(비밀 금고 풀)가 붙었다. BoxSheetTest는 "OpenGachaId != 0인 아이템 = 상자"로 보기 때문에 열쇠를 16번째 상자로 센다. 그 뒤로 2건이 실패한다.

테스트 실패 내용 실제로 문제인가
상자는_산업_레벨마다_세_등급이고_최대_1000개다 15종이어야 하는데 16종 (열쇠는 Rare · MaxStack 9999) 아니다 — 열쇠가 섞여 들어간 것
상자_풀에서_상자가_나오지_않는다 황금 상자 풀 5개(11·14·17·20·23)가 열쇠를 낸다 (GachaItemTID 11006 … 23006) 아니다 — 열쇠 → 비밀 금고(24)는 소모품 4종·장비만 내고, 열 수 있는 아이템이 없다. 고리가 닫히지 않는다

서버는 열쇠를 상자와 같은 길로 연다(GachaService.Open — OpenGachaId만 본다). 데이터도 서버도 맞고, 테스트의 정의가 낡았다.

할 일

  • [x] "레벨 상자 15종"과 "열 수 있는 아이템 전체"를 나눈다 — 레벨 상자는 TID 100019~100033(이미 산업_레벨마다… 테스트가 이 대역을 쓴다)
  • [x] 15종 · 등급 셋 · MaxStack 1000 검사는 레벨 상자에만 건다
  • [x] 무한 개봉 검사를 고리 검사로 바꾼다 — 열 수 있는 아이템 → 풀 → 열 수 있는 아이템 …을 따라가 자기 자신으로 돌아오면 실패 (열쇠처럼 한 단계 더 열리는 것은 허용)
  • [x] 비용 재화 None · 캐릭터 없음 검사는 열 수 있는 아이템 전체(열쇠 포함)에 그대로 건다
  • [x] 클래스 주석의 "상자 = OpenGachaId" 정의를 고친다
  • [x] 서버 테스트 전부 통과 확인 (879/879 — 2026-10-13, T-150 작업 중 함께 고침: 레벨 상자 = ItemType.Box, 미감정 유물도 열 수 있는 아이템으로 본다)

완료 조건

BoxSheetTest가 통과하고, 상자에서 상자가 무한히 나오는 데이터를 넣으면 여전히 빨갛게 실패한다.

막고 있는 것 / 선행 일감

  • 없음

관련 커밋

  • main f29934e (다른 세션이 같은 문제를 먼저 고침 — 번호 없이) · 이 브랜치 a26ae38(유물까지 넣어 ItemType.Box로 다시 고침, 머지 때 이쪽을 남겼다)
  • ⚠️ 처음 번호는 T-149였는데 main의 T-149(최소 주기 1.6초)와 겹쳐 T-153으로 옮겼다 — 커밋 fa1fcf3 · a26ae38 메시지의 T-149는 이 일감이다