Add tests for weather and time of day system
Some checks failed
Smoke tests / Build and smoke test (push) Has been cancelled
Smoke tests / Build and smoke test (pull_request) Successful in 1m23s

This commit is contained in:
AI Agent
2026-03-19 17:01:31 -06:00
parent 1f4955db82
commit 2689f9e29e
3 changed files with 55 additions and 0 deletions

View File

@@ -61,6 +61,35 @@ jobs:
set -e
[[ $r -eq 0 || $r -eq 255 ]]
- name: Smoke - weather and time
run: |
set -euo pipefail
RUST_LOG=info ./target/debug/mudserver -d "$TEST_DB" &
MUD_PID=$!
trap 'kill $MUD_PID 2>/dev/null || true' EXIT
bash scripts/ci/wait-for-tcp.sh 127.0.0.1 2222
set +e
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 smoketest@localhost <<'EOF' > weather_test.out
go south
go down
look
quit
EOF
r=$?
set -e
[[ $r -eq 0 || $r -eq 255 ]]
if ! grep -q "The sky is\|raining\|storm\|snow\|fog" weather_test.out; then
echo "Error: Weather info not found in look output"
cat weather_test.out
exit 1
fi
if ! grep -q "\[Night\]\|\[Morning\]\|\[Afternoon\]\|\[Evening\]" weather_test.out; then
echo "Error: Time of day info not found in look output"
cat weather_test.out
exit 1
fi
rm weather_test.out
- name: Smoke - persistence (reconnect)
run: |
set -euo pipefail

View File

@@ -113,6 +113,13 @@ Run through the checks below before every commit to ensure consistent feature co
- [ ] Negative status effects cleared on player death/respawn
- [ ] Status effects on offline players resolve by wall-clock time on next login
## Weather & Time
- [ ] Outdoor rooms display time of day (e.g., `[Night]`, `[Morning]`).
- [ ] Outdoor rooms display current weather (e.g., `The sky is clear`, `It is raining`).
- [ ] Indoor rooms do not show weather or time of day.
- [ ] Rain or storm applies the `wet` status effect to players in outdoor rooms.
- [ ] Weather changes periodically and broadcasts messages to players in outdoor rooms.
## Guilds
- [ ] `guild list` shows all available guilds with descriptions
- [ ] `guild info <name>` shows guild details, growth stats, and spell list

View File

@@ -44,6 +44,25 @@ flee
quit
EOF
ssh_mud smoketest@localhost <<'EOF' > weather_test.out
go south
go down
look
quit
EOF
if ! grep -q "The sky is\|raining\|storm\|snow\|fog" weather_test.out; then
echo "Error: Weather info not found in look output"
cat weather_test.out
exit 1
fi
if ! grep -q "\[Night\]\|\[Morning\]\|\[Afternoon\]\|\[Evening\]" weather_test.out; then
echo "Error: Time of day info not found in look output"
cat weather_test.out
exit 1
fi
rm weather_test.out
ssh_mud smoketest@localhost <<'EOF'
look
stats