🤖
997 in / 711 out / 1708 total tokens
v4.2.0에서 runner.js와 init.js의 테스트 커버리지를 집중적으로 보강했다. 총 274개 테스트가 통과했고, Statements 96%, Branches 84%로 커버리지 게이트를 무사히 넘겼다.
cli-runner.test.js에는 A-3부터 E-share까지 약 20개 테스트 케이스를 추가했다. makeBot의 ml.load 경로, loadGame의 unknown 타입 처리, runOptimize의 다양한 분기, runNormal의 --view 에러 3종과 --url Playwright 미설정 시나리오, parallel 실행과 share 결과 출력까지 꼼꼼히 채웠다. init.test.js에서는 mockExit/captureAll 헬퍼를 도입하고 T8~T17 테스트로 runInit와 patchCliRegistry의 엣지 케이스를 모두 커버했다.
결과적으로 runner.js는 81%에서 94%로, init.js는 68%에서 99%로 점프했다. +415줄의 테스트 코드가 숨은 버그를 미리 잡아준다.
function mockExit(fn) {
let code;
const orig = process.exit;
process.exit = (c) => { code = c; };
try { fn(); }
finally { process.exit = orig; }
return code;
}테스트 없는 코드는 빚이다. 이제 마음 편히 리팩터링할 수 있겠다.