85 lines
2.5 KiB
GDScript
85 lines
2.5 KiB
GDScript
extends SceneTree
|
|
## Headless smoke test for SellingPayoutUI scene and script.
|
|
|
|
func _initialize() -> void:
|
|
_run()
|
|
|
|
func _run() -> void:
|
|
await process_frame
|
|
print("[SMOKE] Starting SellingPayoutUI smoke test...")
|
|
|
|
var scene = load("res://scenes/selling_payout_ui.tscn")
|
|
if not scene:
|
|
printerr("[FAIL] Could not load scenes/selling_payout_ui.tscn")
|
|
quit(1)
|
|
return
|
|
|
|
var ui: Control = scene.instantiate()
|
|
root.add_child(ui)
|
|
await process_frame
|
|
|
|
# Verify onready nodes
|
|
assert(ui.back_button != null, "Missing back_button")
|
|
assert(ui.refresh_button != null, "Missing refresh_button")
|
|
assert(ui.status_label != null, "Missing status_label")
|
|
assert(ui.tab_container != null, "Missing tab_container")
|
|
|
|
# Selling nodes
|
|
assert(ui.item_name_input != null, "Missing item_name_input")
|
|
assert(ui.item_type_option != null, "Missing item_type_option")
|
|
assert(ui.item_desc_input != null, "Missing item_desc_input")
|
|
assert(ui.price_input != null, "Missing price_input")
|
|
assert(ui.create_listing_btn != null, "Missing create_listing_btn")
|
|
assert(ui.my_listings_container != null, "Missing my_listings_container")
|
|
|
|
# Payout nodes
|
|
assert(ui.available_lbl != null, "Missing available_lbl")
|
|
assert(ui.pending_lbl != null, "Missing pending_lbl")
|
|
assert(ui.lifetime_lbl != null, "Missing lifetime_lbl")
|
|
assert(ui.payout_amount_input != null, "Missing payout_amount_input")
|
|
assert(ui.payout_dest_input != null, "Missing payout_dest_input")
|
|
assert(ui.request_payout_btn != null, "Missing request_payout_btn")
|
|
assert(ui.payouts_container != null, "Missing payouts_container")
|
|
|
|
# Test rendering sample listings
|
|
var sample_listings = [
|
|
{
|
|
"id": 101,
|
|
"price": 300,
|
|
"status": "active",
|
|
"catalog_item": {
|
|
"name": "Knight Helmet",
|
|
"item_type": "avatar_item"
|
|
}
|
|
}
|
|
]
|
|
ui.render_my_listings(sample_listings)
|
|
assert(ui.my_listings_container.get_child_count() == 1, "Should render 1 listing row")
|
|
|
|
# Test rendering sample payouts
|
|
var sample_payouts = [
|
|
{
|
|
"id": 5,
|
|
"amount": 250,
|
|
"status": "paid",
|
|
"created_at": "2026-09-15T15:00:00Z",
|
|
"provider_ref": "stripe_123"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"amount": 100,
|
|
"status": "pending",
|
|
"created_at": "2026-09-15T16:00:00Z",
|
|
"external_ref": "paypal@creator.com"
|
|
}
|
|
]
|
|
ui.render_payouts(sample_payouts)
|
|
assert(ui.payouts_container.get_child_count() == 2, "Should render 2 payout rows")
|
|
|
|
# Verify signals
|
|
assert(ui.has_signal("back_requested"), "Missing back_requested signal")
|
|
|
|
ui.queue_free()
|
|
print("[SMOKE] SellingPayoutUI smoke test PASSED")
|
|
quit(0)
|