Implement Godot friends & presence UI (task af249a67f693)
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
extends SceneTree
|
||||
## Headless smoke test for FriendsPresenceUI scene and script.
|
||||
|
||||
func _initialize() -> void:
|
||||
_run()
|
||||
|
||||
func _run() -> void:
|
||||
await process_frame
|
||||
|
||||
print("SMOKE: Starting Friends & Presence UI verification...")
|
||||
var scene_res := load("res://scenes/friends_presence_ui.tscn")
|
||||
if scene_res == null:
|
||||
printerr("FAIL: Could not load res://scenes/friends_presence_ui.tscn")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
var ui: Control = scene_res.instantiate()
|
||||
if ui == null:
|
||||
printerr("FAIL: Could not instantiate FriendsPresenceUI")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
root.add_child(ui)
|
||||
await process_frame
|
||||
|
||||
# Verify essential nodes
|
||||
if ui.friends_container == null:
|
||||
printerr("FAIL: friends_container is null")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
if ui.requests_container == null:
|
||||
printerr("FAIL: requests_container is null")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
if ui.following_container == null:
|
||||
printerr("FAIL: following_container is null")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
if ui.blocked_container == null:
|
||||
printerr("FAIL: blocked_container is null")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
# Verify signal declaration
|
||||
if not ui.has_signal("back_requested"):
|
||||
printerr("FAIL: back_requested signal missing")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
# Test mock row building
|
||||
ui._friend_presence_map[42] = {
|
||||
"status": "online",
|
||||
"custom_status": "Building cool stuff",
|
||||
"last_seen": "2026-09-15T12:00:00Z"
|
||||
}
|
||||
ui._build_friend_row(42, "TesterFriend")
|
||||
|
||||
if not ui.friends_container.has_node("FriendRow_42"):
|
||||
printerr("FAIL: FriendRow_42 was not added to friends_container")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
print("PASS: Friend row built successfully with presence indicator.")
|
||||
|
||||
# Test message display
|
||||
ui.show_message("Test message", false)
|
||||
if ui.status_label.text != "Test message":
|
||||
printerr("FAIL: status_label text not updated")
|
||||
quit(1)
|
||||
return
|
||||
|
||||
ui.queue_free()
|
||||
print("SMOKE RESULT: PASS")
|
||||
quit(0)
|
||||
Reference in New Issue
Block a user