chore(client): add gdUnit4 test framework addon
Vendor gdUnit4 for Godot 4 client testing (D-030). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
@tool
|
||||
extends Node
|
||||
|
||||
var _client_id: int
|
||||
|
||||
@onready var _server: GdUnitTcpServer = $TcpServer
|
||||
|
||||
|
||||
@warning_ignore("return_value_discarded")
|
||||
func _ready() -> void:
|
||||
var result := _server.start()
|
||||
if result.is_error():
|
||||
push_error(result.error_message())
|
||||
return
|
||||
var server_port :int = result.value()
|
||||
Engine.set_meta("gdunit_server_port", server_port)
|
||||
_server.client_connected.connect(_on_client_connected)
|
||||
_server.client_disconnected.connect(_on_client_disconnected)
|
||||
_server.rpc_data.connect(_receive_rpc_data)
|
||||
|
||||
|
||||
func _on_client_connected(client_id: int) -> void:
|
||||
_client_id = client_id
|
||||
GdUnitSignals.instance().gdunit_client_connected.emit(client_id)
|
||||
|
||||
|
||||
func _on_client_disconnected(client_id: int) -> void:
|
||||
GdUnitSignals.instance().gdunit_client_disconnected.emit(client_id)
|
||||
|
||||
|
||||
func _receive_rpc_data(p_rpc: RPC) -> void:
|
||||
if p_rpc is RPCMessage:
|
||||
var rpc_message: RPCMessage = p_rpc
|
||||
GdUnitSignals.instance().gdunit_message.emit(rpc_message.message())
|
||||
return
|
||||
if p_rpc is RPCGdUnitEvent:
|
||||
var rpc_event: RPCGdUnitEvent = p_rpc
|
||||
var event := rpc_event.event()
|
||||
GdUnitSignals.instance().gdunit_event.emit(event)
|
||||
if event.type() == GdUnitEvent.SESSION_CLOSE and _server != null:
|
||||
_server.disconnect_client(_client_id)
|
||||
Reference in New Issue
Block a user