mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-15 02:12:38 +00:00
fix(multiplayer): terminate proposal offenders atomically
This commit is contained in:
@@ -94,3 +94,17 @@ func TestRankedProposalAndCooldownEscalation(t *testing.T) {
|
||||
t.Fatalf("ranked escalation cooldown = %v", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCooldownIgnoresFutureForeignAndInvalidEvents(t *testing.T) {
|
||||
now := time.Unix(10_000, 0)
|
||||
events := []CooldownEvent{
|
||||
{At: now.Add(-time.Minute), Playlist: Casual, Kind: DeclinedResponse},
|
||||
{At: now.Add(time.Hour), Playlist: Ranked, Kind: TimedOutResponse},
|
||||
{At: now, Playlist: Casual, Kind: TimedOutResponse},
|
||||
{At: now, Playlist: Ranked, Kind: AcceptedResponse},
|
||||
{At: now.Add(-31 * time.Minute), Playlist: Ranked, Kind: DeclinedResponse},
|
||||
}
|
||||
if got := CooldownUntil(events, Ranked, now); !got.IsZero() {
|
||||
t.Fatalf("untrusted cooldown events produced %v, want zero", got)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user