Vendor gdUnit4 for Godot 4 client testing (D-030). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
47 lines
1.3 KiB
GDScript
47 lines
1.3 KiB
GDScript
# GdUnit generated TestSuite
|
|
#warning-ignore-all:unused_argument
|
|
#warning-ignore-all:return_value_discarded
|
|
class_name GdUnitSignalAwaiterTest
|
|
extends GdUnitTestSuite
|
|
|
|
# TestSuite generated from
|
|
const __source = 'res://addons/gdUnit4/src/core/GdUnitSignalAwaiter.gd'
|
|
|
|
|
|
class Monster extends Node:
|
|
|
|
signal move(value :float)
|
|
signal slide(value :float, x :int, z :int)
|
|
|
|
var _pos :float = 0.0
|
|
|
|
func _process(_delta :float) -> void:
|
|
_pos += 0.2
|
|
emit_signal(move.get_name(), _pos)
|
|
emit_signal(slide.get_name(), _pos, 1 , 2)
|
|
|
|
|
|
func test_on_signal_with_single_arg() -> void:
|
|
var monster :Monster = auto_free(Monster.new())
|
|
add_child(monster)
|
|
var signal_arg :Variant = await await_signal_on(monster, "move", [1.0])
|
|
assert_float(signal_arg).is_equal(1.0)
|
|
remove_child(monster)
|
|
|
|
|
|
func test_on_signal_with_many_args() -> void:
|
|
var monster :Monster = auto_free(Monster.new())
|
|
add_child(monster)
|
|
var signal_args :Variant = await await_signal_on(monster, "slide", [1.0, 1, 2])
|
|
assert_array(signal_args).is_equal([1.0, 1, 2])
|
|
remove_child(monster)
|
|
|
|
|
|
func test_on_signal_fail() -> void:
|
|
var monster :Monster = auto_free(Monster.new())
|
|
add_child(monster)
|
|
(
|
|
await assert_failure_await( func x() -> void: await await_signal_on(monster, "move", [4.0]))
|
|
).has_message("await_signal_on(move, [$v0]) timed out after 2000ms".replace("$v0", str(4.0)))
|
|
remove_child(monster)
|