feat(engine): live server visual tests and gauntlet snapshot replay
Add live server lifecycle to tests/run-visual (start/stop server per
scenario, parse LISTENING:{port}). Add MessagePack snapshot replay to
visual_capture.gd via Protocol.decode_snapshot() — exercises the full
client pipeline from wire bytes to rendered fog. Three replay scenarios
(hub_spawn, fog_theater, hub_after_movement) plus one live scenario
(fog_live_hub). Add gen_gauntlet_fixtures.rs to produce .msgpack fixtures
from the Gauntlet test world. Add max_diff_pct threshold to visual-diff.
Makefile: add fixtures-gauntlet target, fix build-client double-import,
preserve .godot cache in clean.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
"resolution": [960, 540],
|
||||
"settle_frames": 30,
|
||||
"tolerance": 5,
|
||||
"max_diff_pct": 0.5,
|
||||
"golden_dir": "client/tests/golden/visual",
|
||||
"scenarios": {
|
||||
"fog_3state": {
|
||||
@@ -47,6 +48,26 @@
|
||||
"cursor_menu": {
|
||||
"ticks": 3,
|
||||
"description": "Cursor rendering over dialogue option"
|
||||
},
|
||||
"fog_live_replay": {
|
||||
"ticks": 1,
|
||||
"description": "Replay real server hub snapshot — full pipeline fog test",
|
||||
"replay_snapshot": "tests/fixtures/gauntlet/hub_spawn.msgpack"
|
||||
},
|
||||
"fog_theater_replay": {
|
||||
"ticks": 1,
|
||||
"description": "Replay Fog Theater — large room with NPCs at varying distances",
|
||||
"replay_snapshot": "tests/fixtures/gauntlet/fog_theater.msgpack"
|
||||
},
|
||||
"fog_boundary_replay": {
|
||||
"ticks": 1,
|
||||
"description": "Replay hub after movement — explored/visible tile boundary",
|
||||
"replay_snapshot": "tests/fixtures/gauntlet/hub_after_movement.msgpack"
|
||||
},
|
||||
"fog_live_hub": {
|
||||
"ticks": 10,
|
||||
"live": true,
|
||||
"description": "Live server: Hub spawn fog — real pipeline regression test"
|
||||
}
|
||||
},
|
||||
"flows": {
|
||||
|
||||
Reference in New Issue
Block a user