feat(dev-scripts): Add automated stability test to dev.sh by booting the game, navigating to the world map, and capturing a screenshot after 20 seconds

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-04-10 18:28:27 -07:00
parent 1d56b77d4f
commit 8c365cf63d

View file

@ -80,9 +80,35 @@ cmd_test() {
echo -e "${BLUE}Running vitest (guide)...${NC}"
pnpm --prefix "$GUIDE_DIR" test || exit_code=$?
echo ""
echo -e "${BLUE}Running stability test (20s game boot)...${NC}"
_run_stability_test || exit_code=$?
return $exit_code
}
_run_stability_test() {
# Uses the existing screenshot pipeline to boot the game, navigate to
# world_map, wait 20s, and capture a screenshot. If the game crashes
# before the screenshot is taken, the test fails.
local STABILITY_LOG="$REPO_ROOT/.project/logs/stability_$(date +%Y%m%d_%H%M%S).log"
mkdir -p "$(dirname "$STABILITY_LOG")"
"$REPO_ROOT/tools/screenshot.sh" "stability_test" "world_map" "20" > "$STABILITY_LOG" 2>&1
local RESULT=$?
if [ $RESULT -ne 0 ]; then
echo -e "${RED}FAIL: Stability test failed (exit code $RESULT)${NC}"
tail -10 "$STABILITY_LOG" | grep -E "SCRIPT ERROR|ERROR:" | head -5
return 1
fi
if grep -q "SCREENSHOT_PATH:" "$STABILITY_LOG"; then
echo -e "${GREEN}PASS: Game stable for 20s, screenshot captured${NC}"
return 0
else
echo -e "${RED}FAIL: Game ran but no screenshot captured${NC}"
return 1
fi
}
cmd_verify() {
local -a step_names step_times step_results
local overall_exit=0