From 82e571d227feeafd0af4011e701ce26b99c5e3d9 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Sat, 3 Oct 2026 00:51:41 -0400 Subject: fix: craps felt and wager description cleanup --- internal/game/casino_edge_list_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'internal/game/casino_edge_list_test.go') diff --git a/internal/game/casino_edge_list_test.go b/internal/game/casino_edge_list_test.go index ff0b965..902d178 100644 --- a/internal/game/casino_edge_list_test.go +++ b/internal/game/casino_edge_list_test.go @@ -34,6 +34,26 @@ func TestEdgeListAllTableGames(t *testing.T) { } } +// TestCrapsListEveryBetHasRTP: once a reference item is carried, every +// craps wager the list can name must resolve to a real percentage. An +// unknown target would render the dash, which is the bug this guards. +func TestCrapsListEveryBetHasRTP(t *testing.T) { + for _, variant := range []string{"bank", "crapless", "new_york"} { + t.Run(variant, func(t *testing.T) { + room := "name: CR\ncasino_tables:\n - id: cr\n game: craps\n craps:\n variant: " + variant + "\n" + g, sess, conn := houseEdgeGame(t, room) + writeHouseEdgeManual(t, g, sess, 2) + g.executePlay(sess, []string{"craps"}, "play craps") + g.executeBet(sess, []string{"10", "pass"}, "bet 10 pass") + conn.data = nil + g.executeList(sess, nil, "list") + if text := stripANSI(string(conn.data)); strings.Contains(text, "—") { + t.Fatalf("%s come-out list left a bet without RTP:\n%s", variant, text) + } + }) + } +} + func TestEdgeListBlackjackActionsOmitRTP(t *testing.T) { g, sess, conn := houseEdgeGame(t, "name: BJ\ncasino_tables:\n - id: bj\n game: blackjack\n") writeHouseEdgeManual(t, g, sess, 2) -- cgit v1.2.3