extends Node var passed: int = 0 var failed: int = 0 var _game_root: Node = null func _ready(): await run() if failed == 0: get_tree().quit(0) else: get_tree().quit(1) func run(): print("\n=== TEST: Gold Mine Click ===\n") TestUtils.set_test_name("gold_mine_click") # Load tiny_sword scene var scene = load("res://docs/gyms/tiny_sword/tiny_sword.tscn") _game_root = scene.instantiate() add_child(_game_root) await _wait() var game_state: LevelGameState = _game_root.find_child("LevelGameState") var gold_mine = _game_root.find_child("GoldMine") as CurrencyGenerator if game_state == null: print("[ERROR] LevelGameState not found") _print_summary() return if gold_mine == null: print("[ERROR] GoldMine node not found") _print_summary() return # Record initial gold var initial_gold: BigNumber = game_state.get_currency_amount_by_id(&"gold") print("[TARGET] initial_gold: %s" % initial_gold.to_string_suffix(2)) # Simulate clicking the generator gold_mine._on_pressed() await _wait() # Validate gold increased var final_gold: BigNumber = game_state.get_currency_amount_by_id(&"gold") print("[TARGET] final_gold: %s" % final_gold.to_string_suffix(2)) TestUtils.assert_greater_than( final_gold.mantissa, initial_gold.mantissa, "Gold increased after generator click" ) # Check specific value (adjust based on click_mantissa in data) var expected_min: float = initial_gold.mantissa + 1.0 TestUtils.assert_true( final_gold.mantissa >= expected_min, "Gold increased by at least 1.0" ) _print_summary() func _wait() -> void: await get_tree().create_timer(0.5).timeout func _print_summary(): TestUtils.print_result() passed = TestUtils.get_passed() failed = TestUtils.get_failed() func get_passed() -> int: return passed func get_failed() -> int: return failed