61 lines
1.7 KiB
GDScript
61 lines
1.7 KiB
GDScript
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")
|