Skip to content

Commit

Permalink
fix: dont register client scene handlers while host (#296)
Browse files Browse the repository at this point in the history
* test fails due to clients registering msg handlers as host

* fix: dont register msg handlers when host client

* also fixes flakey test

* code smell
  • Loading branch information
uweeby committed Jul 16, 2020
1 parent a1d0a42 commit 37c8ddd
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
4 changes: 3 additions & 1 deletion Assets/Mirror/Runtime/NetworkSceneManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,9 @@ void FinishLoadSceneServerOnly()
// called after successful authentication
void OnClientAuthenticated(INetworkConnection conn)
{
RegisterClientMessages(conn);
//Dont register msg handlers in host mode
if (!client.IsLocalClient)
RegisterClientMessages(conn);

logger.Log("NetworkSceneManager.OnClientAuthenticated");
}
Expand Down
21 changes: 13 additions & 8 deletions Assets/Mirror/Tests/Runtime/NetworkSceneManagerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,16 +161,21 @@ public void ClientNotReadyTest()
func1.Received(1).Invoke(Arg.Any<INetworkConnection>());
}

//Flakey Test
//[UnityTest]
//public IEnumerator ChangeSceneAdditiveLoadTest() => RunAsync(async () =>
//{
// server.sceneManager.ChangeServerScene("testScene", SceneOperation.LoadAdditive);
[UnityTest]
public IEnumerator ChangeSceneAdditiveLoadTest() => RunAsync(async () =>
{
server.sceneManager.ChangeServerScene("testScene", SceneOperation.LoadAdditive);
// await WaitFor(() => SceneManager.GetSceneByName("testScene") != null);
await WaitFor(() => SceneManager.GetSceneByName("testScene") != null);
Assert.That(SceneManager.GetSceneByName("testScene"), Is.Not.Null);
});

// Assert.That(SceneManager.GetSceneByName("testScene"), Is.Not.Null);
//});
[Test]
public void ClientNoHandlersInHostMode()
{
Assert.DoesNotThrow(() => { server.SendToAll(new SceneMessage()); });
}
}

public class NetworkSceneManagerNonHostTests : ClientServerSetup<MockComponent>
Expand Down

0 comments on commit 37c8ddd

Please sign in to comment.