From 9a716a7d2ce514f452b425caedc1a9a15cde09f0 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 7 Aug 2026 05:02:39 -0400 Subject: feat: disconnect forfeits bet and frees up seat --- internal/casino/manager_test.go | 52 +++++------------------------------------ 1 file changed, 6 insertions(+), 46 deletions(-) (limited to 'internal/casino/manager_test.go') diff --git a/internal/casino/manager_test.go b/internal/casino/manager_test.go index 818f397..134798a 100644 --- a/internal/casino/manager_test.go +++ b/internal/casino/manager_test.go @@ -32,54 +32,14 @@ func TestMixedWagerUsesChipsFirst(t *testing.T) { } } -func TestSoloBetResolvesImmediately(t *testing.T) { +func TestJoinUnknownTableGameRejected(t *testing.T) { m := NewManager(1) - cfg := TableConfig{ID: "slots", Game: GameSlots} - m.Join(1, cfg, "alice") - w := &testWallet{credits: 100} - events := m.Bet(1, "slots", "alice", "", 10, w) - found := false - for _, event := range events { - if event.Type == EventRoundStarted { - found = true - } - } - if !found { - t.Fatal("solo bet did not resolve immediately") - } -} - -func TestMultiplePlayersWaitForBets(t *testing.T) { - m := NewManager(1) - cfg := TableConfig{ID: "slots", Game: GameSlots, BettingTicks: 2} - m.Join(1, cfg, "alice") - m.Join(1, cfg, "bob") - wa, wb := &testWallet{credits: 100}, &testWallet{credits: 100} - events := m.Bet(1, "slots", "alice", "", 10, wa) - for _, event := range events { - if event.Type == EventRoundStarted { - t.Fatal("round started before all players bet or timeout") - } - } - m.Bet(1, "slots", "bob", "", 10, wb) -} - -func TestTableBettingIgnoresDisconnected(t *testing.T) { - m := NewManager(1) - cfg := TableConfig{ID: "slots", Game: GameSlots, BettingTicks: 20} - m.Join(1, cfg, "alice") - m.Join(1, cfg, "bob") - m.MarkDisconnected("bob") - w := &testWallet{credits: 100} - events := m.Bet(1, "slots", "alice", "", 10, w) - found := false - for _, event := range events { - if event.Type == EventRoundStarted { - found = true - } + events := m.Join(1, TableConfig{ID: "slots", Game: GameSlots}, "alice") + if len(events) != 1 || !contains(events[0].Message, "not available") { + t.Fatalf("joining an unsupported table game: %+v", events) } - if !found { - t.Fatal("disconnected player stalled the table's round") + if m.Table(1, "slots") != nil { + t.Fatal("unsupported game was cached as a table") } } -- cgit v1.2.3