summaryrefslogtreecommitdiffstats
path: root/docs/TESTING.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-29 22:55:49 +0100
committersalmonik <salmonik@tuta.io>2026-10-29 22:55:49 +0100
commit49df948de25d28601469e9ca993f33530989ebd0 (patch)
tree291aae0f57d0d7d12a27eb28038e43f942d6b991 /docs/TESTING.md
parentv2.4.0: key stored credentials by certificate fingerprint (diff)
downloadzagan-bet-49df948de25d28601469e9ca993f33530989ebd0.tar.gz
zagan-bet-49df948de25d28601469e9ca993f33530989ebd0.zip
v3.0.0: cursor-driven roulette felt with splits and corners; drop schema migrations; require 80x24
Diffstat (limited to '')
-rw-r--r--docs/TESTING.md37
1 files changed, 25 insertions, 12 deletions
diff --git a/docs/TESTING.md b/docs/TESTING.md
index fe302a9..7ec5b60 100644
--- a/docs/TESTING.md
+++ b/docs/TESTING.md
@@ -16,7 +16,7 @@ shared global database. Each test owns its state.
16| `tests/blackjack.rs` | Card totals, naturals, hit/stand/double, dealer bust, S17, state parsing. | 16| `tests/blackjack.rs` | Card totals, naturals, hit/stand/double, dealer bust, S17, state parsing. |
17| `tests/crash.rs` | Multiplier curve, payout floor, crash-point distribution, house edge, cap. | 17| `tests/crash.rs` | Multiplier curve, payout floor, crash-point distribution, house edge, cap. |
18| `tests/protocol.rs` | Newline buffering and timeout/error classification. | 18| `tests/protocol.rs` | Newline buffering and timeout/error classification. |
19| `tests/roulette.rs` | European wheel, split-bet payouts, zero handling, result parser. | 19| `tests/roulette.rs` | Wheel, every bet type and payout, zero handling, cursor lattice, result parser. |
20| `tests/server_core.rs` | Handler, bcrypt migration, SQL injection, transaction rollback, `plays` audit, sessions. | 20| `tests/server_core.rs` | Handler, bcrypt migration, SQL injection, transaction rollback, `plays` audit, sessions. |
21| `tests/server_setup.rs` | `--init` identity generation, PKCS#12 loadability, overwrite refusal. | 21| `tests/server_setup.rs` | `--init` identity generation, PKCS#12 loadability, overwrite refusal. |
22| `tests/slots.rs` | Server slots payout rules and overflow handling. | 22| `tests/slots.rs` | Server slots payout rules and overflow handling. |
@@ -71,18 +71,31 @@ Use an 80-column terminal because several output lines are width-sensitive.
71 71
72## Manual roulette checklist 72## Manual roulette checklist
73 73
741. `play roulette` shows the balance, chip size, empty bets, and controls. 741. `play roulette` draws the full felt: 0, the 3x12 numbers, dozens, columns,
752. `R`/`B`/`E`/`O` add one chip; digits + Enter add a number; `C` clears; 75 and the six outside cells, with the cursor on number 1.
76 `+`/`=`/`-` change the chip size. 762. Arrows move the cursor. On the numbers the highlighted cells show the bet:
773. Space scrolls the wheel under a fixed ball marker and ends on the winning 77 one number (straight), two (split), four (corner). Down leaves the felt into
78 the dozens, then columns, then outside; Up walks back.
793. ENTER places the chip where the cursor is; `C` clears; `+`/`=`/`-` change the
80 chip size. The bets line lists every chip and the total.
814. Space scrolls the wheel under a fixed ball marker and ends on the winning
78 number. 82 number.
794. Check a split result: 835. Check the payouts:
80 - `17 black odd`: black+odd pay, red+even lose, straight 17 pays 36x. 84 - a straight pays 36x, a split 18x, a corner 9x;
81 - `0`: all outside bets lose; a straight 0 pays 36x. 85 - a dozen or column pays 3x;
825. Numbers are color-coded: red numbers red, 0 green, black default. Check the 86 - an outside bet pays 2x;
83 bets line, the rolling strip, and the winning number. 87 - `0` loses every outside bet, both dozens and every column, and pays a
846. The result board shows the winning number/color/parity, the payout, and the 88 straight 0.
85 new balance. The next spin reuses the placed bets. 896. The result line names the number, color and parity, the total returned and
90 the profit. The next spin reuses the placed chips.
91
92## Manual terminal size check
93
941. Start the client in a terminal smaller than 80x24: it must print
95 `zagan.bet needs a terminal of at least 80x24 cells` and exit without
96 switching to the alternate screen or raw mode.
972. At 80x24 every game board (slots 10 lines, roulette 12, blackjack 6, crash 6)
98 must fit without wrapping.
86 99
87## Manual blackjack checklist 100## Manual blackjack checklist
88 101