Add tests for weather and time of day system
This commit is contained in:
@@ -61,6 +61,35 @@ jobs:
|
|||||||
set -e
|
set -e
|
||||||
[[ $r -eq 0 || $r -eq 255 ]]
|
[[ $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)
|
- name: Smoke - persistence (reconnect)
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
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
|
- [ ] Negative status effects cleared on player death/respawn
|
||||||
- [ ] Status effects on offline players resolve by wall-clock time on next login
|
- [ ] 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
|
## Guilds
|
||||||
- [ ] `guild list` shows all available guilds with descriptions
|
- [ ] `guild list` shows all available guilds with descriptions
|
||||||
- [ ] `guild info <name>` shows guild details, growth stats, and spell list
|
- [ ] `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
|
quit
|
||||||
EOF
|
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'
|
ssh_mud smoketest@localhost <<'EOF'
|
||||||
look
|
look
|
||||||
stats
|
stats
|
||||||
|
|||||||
Reference in New Issue
Block a user