From b3f9b22ef2ba0d6c3bd50dbe1b7641bc32a279df Mon Sep 17 00:00:00 2001 From: VinPropane Date: Sun, 7 Jun 2026 13:37:39 -0400 Subject: [PATCH] NEO-122: Shorten economy HUD paths and add quest HUD controller tests. --- client/scripts/main.gd | 10 ++-- client/test/quest_hud_controller_test.gd | 58 ++++++++++++++++++++ client/test/quest_hud_controller_test.gd.uid | 1 + 3 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 client/test/quest_hud_controller_test.gd create mode 100644 client/test/quest_hud_controller_test.gd.uid diff --git a/client/scripts/main.gd b/client/scripts/main.gd index 993c50f..f9d38a0 100644 --- a/client/scripts/main.gd +++ b/client/scripts/main.gd @@ -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 diff --git a/client/test/quest_hud_controller_test.gd b/client/test/quest_hud_controller_test.gd new file mode 100644 index 0000000..96ef7eb --- /dev/null +++ b/client/test/quest_hud_controller_test.gd @@ -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") diff --git a/client/test/quest_hud_controller_test.gd.uid b/client/test/quest_hud_controller_test.gd.uid new file mode 100644 index 0000000..b9c15e5 --- /dev/null +++ b/client/test/quest_hud_controller_test.gd.uid @@ -0,0 +1 @@ +uid://c8k3m2questhudtest01