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) var progress := QuestProgressClient.new() var defs := QuestDefinitionsClient.new() controller.call("setup", progress, defs, 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")