extends VestTest func get_suite_name() -> String: return "NetworkSynchronizationServer" var servers: TestingServers func before_case(__): # Makes sure local peer is 1, otherwise identifiers get random local IDs Vest.get_tree().root.multiplayer.multiplayer_peer = OfflineMultiplayerPeer.new() servers = await TestingServers.create() servers.synchronization_server()._rb_enable_input_broadcast = true # Force input broadcast func after_case(__): servers.queue_free() func suite() -> void: define("synchronize_input()", func(): test("should submit owned", func(): var owned_node := await get_node() var other_node := await get_node() other_node.set_multiplayer_authority(2) servers.history_server().register_rollback_input(owned_node, "position") servers.history_server().register_rollback_input(other_node, "position") servers.synchronization_server().register_rollback_input(owned_node, "position") servers.synchronization_server().register_rollback_input(other_node, "position") servers.history_server()._record_rollback_input(0) servers.synchronization_server()._synchronize_input(0) skip() # Somehow setup a live client-server connection ) ) define("synchronize_state()", func(): test("should submit owned", func(): skip() ) ) define("synchronize_sync_state()", func(): test("should submit owned", func(): skip() ) ) func get_node(name: String = "") -> Node3D: var node := Node3D.new() Vest.get_tree().root.add_child.call_deferred(node) await node.ready if name: node.name = name return node