Add tests for weather and time of day system
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
19
run-tests.sh
19
run-tests.sh
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user