extends SceneTree ## Headless smoke test for EconomyApiClient. func _init() -> void: print("[SMOKE] Starting EconomyApiClient smoke test...") var api_script = load("res://scripts/api_client.gd") if not api_script: printerr("[FAIL] Could not load api_client.gd") quit(1) return var api: Node = api_script.new() root.add_child(api) # Verify idempotency key generation var key1: String = EconomyApiClient.generate_idempotency_key() var key2: String = EconomyApiClient.generate_idempotency_key() assert(key1 != "", "Key should not be empty") assert(key1 != key2, "Keys should be unique") print("[PASS] Idempotency key generation: ", key1) # Verify method existence on EconomyApiClient var client = EconomyApiClient.new() assert(client.has_method("get_wallet"), "Missing get_wallet") assert(client.has_method("get_wallet_transactions"), "Missing get_wallet_transactions") assert(client.has_method("purchase_credits"), "Missing purchase_credits") assert(client.has_method("get_catalog_items"), "Missing get_catalog_items") assert(client.has_method("create_catalog_item"), "Missing create_catalog_item") assert(client.has_method("create_listing"), "Missing create_listing") assert(client.has_method("search_listings"), "Missing search_listings") assert(client.has_method("get_listing"), "Missing get_listing") assert(client.has_method("update_listing"), "Missing update_listing") assert(client.has_method("delist_listing"), "Missing delist_listing") assert(client.has_method("purchase_listing"), "Missing purchase_listing") assert(client.has_method("get_purchases"), "Missing get_purchases") assert(client.has_method("get_creator_balance"), "Missing get_creator_balance") assert(client.has_method("request_payout"), "Missing request_payout") assert(client.has_method("get_payouts"), "Missing get_payouts") print("[PASS] All EconomyApiClient methods verified") api.queue_free() print("[SMOKE] EconomyApiClient smoke test PASSED") quit(0)