aboutsummaryrefslogtreecommitdiff
path: root/internal/game/casino_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/casino_test.go')
-rw-r--r--internal/game/casino_test.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/internal/game/casino_test.go b/internal/game/casino_test.go
index b3bfb9b..3a1fc41 100644
--- a/internal/game/casino_test.go
+++ b/internal/game/casino_test.go
@@ -26,6 +26,33 @@ func (c *casinoTestConn) SetWriteDeadline(time.Time) error { return nil }
func (c *casinoTestConn) Close() error { return nil }
func (c *casinoTestConn) SetEcho(bool) error { return nil }
+func TestCasinoDisplayDefaultsToDetailedAndDoesNotOverrideCardSize(t *testing.T) {
+ snapshot := &casino.BlackjackSnapshot{
+ Dealer: []casino.CardView{{Rank: "K", Suit: "hearts"}},
+ Players: []casino.BlackjackPlayerView{{Name: "alice", Score: "10", Cards: []casino.CardView{{Rank: "10", Suit: "clubs"}}}},
+ }
+ if got := player.New("alice").OptionString("casino_display"); got != "detailed" {
+ t.Fatalf("casino_display default=%q, want detailed", got)
+ }
+ for _, display := range []string{"", "detailed", "compact"} {
+ p := player.New("alice")
+ p.Options = map[string]any{"color": "none"}
+ if display != "" {
+ p.Options["casino_display"] = display
+ }
+ sess := &net.Session{Player: p}
+ g := &Game{}
+ got := g.renderCasinoSnapshot(sess, snapshot)
+ want := renderBlackjackSnapshotFor(snapshot, g.colorMode(sess), p.OptionBool("unicode"), p.OptionInt("card_size"), p.OptionString("card_style"), nil, p.Name)
+ if got != want {
+ t.Fatalf("display=%q: card_size ignored\n got %q\nwant %q", display, got, want)
+ }
+ if !strings.Contains(got, "┌") {
+ t.Fatalf("display=%q: expected card art, got %q", display, got)
+ }
+ }
+}
+
func TestExecuteBetRejectsInvalidMachineArgs(t *testing.T) {
g := &Game{Casino: casino.NewManager(1)}
cfg := casino.MachineConfig{ID: "slots", Game: casino.GameSlots}