fix(multiplayer): fence roster topology at persistence

This commit is contained in:
Josh Creek
2026-09-01 16:20:01 +01:00
parent 80d6ee8cf5
commit a439a1059b
3 changed files with 23 additions and 1 deletions
+10
View File
@@ -57,4 +57,14 @@ func TestSignedRosterRequiresCryptographicVerification(t *testing.T) {
}); err != nil {
t.Fatalf("valid signature rejected: %v", err)
}
wrongTeam := signed
wrongTeam.Authorisation.Slot = 3
wrongTeam.Authorisation.Team = 0
if err := validateSignedRosterEntry(assignment, wrongTeam, func([]byte, []byte) bool { return true }); err == nil {
t.Fatal("team/slot mismatch accepted")
}
duplicate := signed
if err := SaveVerifiedAssignmentRoster(nil, nil, assignment, []domain.SignedJoinAuthorisation{signed, duplicate}, func([]byte, []byte) bool { return true }); err == nil {
t.Fatal("duplicate roster player accepted")
}
}