40 lines
1.7 KiB
GDScript
40 lines
1.7 KiB
GDScript
extends GutTest
|
|
## Pillage flow smoke test — authored but PENDING headless GUT run (p2-53e).
|
|
##
|
|
## Tests:
|
|
## 1. Worker on an improved tile: pillage action removes the improvement.
|
|
## 2. After pillage, a partial production refund is emitted via EventBus.tile_pillaged.
|
|
## 3. Pillage action is not available on an unimproved tile (legal_actions gate).
|
|
##
|
|
## Blocked on:
|
|
## - GdGameState::pillage_improvement bridge method (guarded by `has_method` in
|
|
## world_map.gd _confirm_pillage — wired but not exposed by combat-actions yet).
|
|
## - Headless GUT run requires apricot + weston; schedule for next CI cycle.
|
|
##
|
|
## When unblocking: remove the pending() call and wire real GameState + unit setup
|
|
## following the pattern in test_worker_improvement_tech_gate.gd.
|
|
|
|
|
|
func test_pillage_removes_improvement_pending() -> void:
|
|
pending(
|
|
"GdGameState::pillage_improvement bridge not yet exposed by combat-actions."
|
|
+ " Wire the bridge method, then author the real assertion against a"
|
|
+ " GameState with an improved tile + worker unit at the same hex."
|
|
+ " See world_map.gd::_confirm_pillage (has_method guard) and"
|
|
+ " mc-turn/src/action_handlers.rs::handle_pillage_friendly. (p2-53e)"
|
|
)
|
|
|
|
|
|
func test_pillage_emits_refund_pending() -> void:
|
|
pending(
|
|
"Depends on EventBus.tile_pillaged signal: need GdGameState bridge."
|
|
+ " See test_pillage_removes_improvement_pending above. (p2-53e)"
|
|
)
|
|
|
|
|
|
func test_pillage_not_legal_on_empty_tile_pending() -> void:
|
|
pending(
|
|
"legal_actions gate for PillageFriendly requires adjacent improvement"
|
|
+ " flag on UnitCapability. Verify mc-core::legal_actions returns the"
|
|
+ " correct disabled reason when no improvement is present. (p2-53e)"
|
|
)
|