aboutsummaryrefslogtreecommitdiff
path: root/internal/casino/minbet_regression_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/casino/minbet_regression_test.go')
-rw-r--r--internal/casino/minbet_regression_test.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/casino/minbet_regression_test.go b/internal/casino/minbet_regression_test.go
new file mode 100644
index 0000000..578c251
--- /dev/null
+++ b/internal/casino/minbet_regression_test.go
@@ -0,0 +1,25 @@
+package casino
+
+import "testing"
+
+// TestMinBetAboveDefaultMaxRejected guards the config/validate + Normalize
+// interaction: an unset max_bet defaults to DefaultMaxBet, so a larger min_bet
+// must be rejected (and Normalize must never leave MaxBet below MinBet), or the
+// game would accept a table every wager is rejected from.
+func TestMinBetAboveDefaultMaxRejected(t *testing.T) {
+ if err := (TableConfig{ID: "bj", Game: GameBlackjack, MinBet: DefaultMaxBet + 1}).Validate(); err == nil {
+ t.Fatal("table accepted min_bet above the default max")
+ }
+ if err := (MachineConfig{ID: "slots", Game: GameSlots, MinBet: DefaultMaxBet + 1}).Validate(); err == nil {
+ t.Fatal("machine accepted min_bet above the default max")
+ }
+
+ m := MachineConfig{ID: "slots", Game: GameSlots, MinBet: DefaultMaxBet + 5}.Normalize()
+ if m.MaxBet < m.MinBet {
+ t.Fatalf("normalized machine left max %d below min %d", m.MaxBet, m.MinBet)
+ }
+ tc := TableConfig{ID: "bj", Game: GameBlackjack, MinBet: DefaultMaxBet + 5}.Normalize()
+ if tc.MaxBet < tc.MinBet {
+ t.Fatalf("normalized table left max %d below min %d", tc.MaxBet, tc.MinBet)
+ }
+}