NEO-122: Shorten economy HUD paths and add quest HUD controller tests.

pull/161/head
VinPropane 2026-06-07 13:37:39 -04:00
parent eba0d09d70
commit b3f9b22ef2
3 changed files with 64 additions and 5 deletions

View File

@ -140,13 +140,13 @@ var _dev_pulse_bootstrap_attempted: bool = false
@onready var _telegraph_label: Label = _hud_root.get_node("TelegraphLabel")
@onready var _cooldown_slots_label: Label = _hud_root.get_node("CooldownSlotsLabel")
@onready var _economy_hud_section: VBoxContainer = $UICanvas/EconomyHudSection
@onready var _inventory_label: Label = _economy_hud_section.get_node("BodyScroll/Body/InventoryLabel")
@onready var _economy_body: Node = _economy_hud_section.get_node("BodyScroll/Body")
@onready var _inventory_label: Label = _economy_body.get_node("InventoryLabel")
@onready var _gather_feedback_label: Label = _hud_root.get_node("GatherFeedbackLabel")
@onready var _craft_feedback_label: Label = _hud_root.get_node("CraftFeedbackLabel")
@onready
var _skill_progression_label: Label = _economy_hud_section.get_node("BodyScroll/Body/SkillProgressionLabel")
@onready var _gig_xp_label: Label = _economy_hud_section.get_node("BodyScroll/Body/GigXpLabel")
@onready var _craft_recipe_panel: Node = _economy_hud_section.get_node("BodyScroll/Body/CraftRecipePanel")
@onready var _skill_progression_label: Label = _economy_body.get_node("SkillProgressionLabel")
@onready var _gig_xp_label: Label = _economy_body.get_node("GigXpLabel")
@onready var _craft_recipe_panel: Node = _economy_body.get_node("CraftRecipePanel")
@onready var _inventory_client: Node = $InventoryClient
@onready var _item_defs_client: Node = $ItemDefinitionsClient
@onready var _skill_progression_client: Node = $SkillProgressionClient

View File

@ -0,0 +1,58 @@
extends GdUnitTestSuite
## NEO-122: quest HUD controller accept key + progress label render.
const QuestHudController := preload("res://scripts/quest_hud_controller.gd")
const QuestProgressClient := preload("res://scripts/quest_progress_client.gd")
const QuestDefinitionsClient := preload("res://scripts/quest_definitions_client.gd")
func _build_controller() -> Node:
var controller: Node = QuestHudController.new()
var progress: Node = QuestProgressClient.new()
var defs: Node = QuestDefinitionsClient.new()
var progress_label := Label.new()
var accept_label := Label.new()
add_child(controller)
add_child(progress)
add_child(defs)
controller.call(
"setup",
progress,
defs,
progress_label,
accept_label,
Callable(self, "_noop_http_config")
)
await get_tree().process_frame
return controller
func _noop_http_config(_client: Node) -> void:
pass
func test_try_accept_key_input_handles_q_key() -> void:
# Arrange
var controller := await _build_controller()
var event := InputEventKey.new()
event.pressed = true
event.keycode = KEY_Q
# Act
var handled: bool = bool(controller.call("try_accept_key_input", event))
# Assert
assert_bool(handled).is_true()
func test_progress_label_shows_loading_before_snapshot() -> void:
# Arrange
var controller: Node = QuestHudController.new()
var progress_label := Label.new()
add_child(controller)
controller.call("setup", QuestProgressClient.new(), QuestDefinitionsClient.new(), progress_label, Label.new(), Callable())
await get_tree().process_frame
# Act
var text: String = progress_label.text
# Assert
assert_str(text).contains("Quests:")
assert_str(text).contains("Loading")

View File

@ -0,0 +1 @@
uid://c8k3m2questhudtest01