40 lines
1.7 KiB
Markdown
40 lines
1.7 KiB
Markdown
# Module 1 scenarios: Handles and order of play
|
|
|
|
Each heading is a test name. The Rust test lives in `tests/rust/test_01.rs` and the TypeScript test in `tests/ts/test_01.test.ts`; both state exactly what is written here. Every test starts from `newGame()` with no decks (`new_game(GameOpts::default())` in Rust). All cards are `Test Filler`, a fictional test minion with no text. Player 0 is the first player, player 1 the second.
|
|
|
|
### test_01_ids_stable_and_order_increases
|
|
|
|
- Setup: an empty game.
|
|
- Action: summon `Test Filler` for player 0 and call its id A. Record `orderOfPlay(A)`. Then summon another `Test Filler` for player 0 and call its id B.
|
|
- Assertions:
|
|
- A and B are different ids.
|
|
- `orderOfPlay(A) < orderOfPlay(B)`.
|
|
- `orderOfPlay(A)` is the same value it had before B was summoned.
|
|
- A still names the same entity: `nameOf(A)` is `"Test Filler"` and `zoneOf(A)` is board.
|
|
- `board(0)` is `[A, B]`, left to right.
|
|
|
|
### test_01_zones
|
|
|
|
- Setup: an empty game.
|
|
- Action: for player 0, add a `Test Filler` to the deck (id D), add a `Test Filler` to the hand (id H), and summon a `Test Filler` (id S).
|
|
- Assertions:
|
|
- `zoneOf(D)` is deck, `zoneOf(H)` is hand, `zoneOf(S)` is board.
|
|
- `hand(0)` is `[H]`.
|
|
- `board(0)` is `[S]`.
|
|
|
|
### test_01_board_query_per_player
|
|
|
|
- Setup: an empty game.
|
|
- Action: summon `Test Filler` for player 0 (id A0), then for player 1 (id A1), then for player 0 again (id B0).
|
|
- Assertions:
|
|
- `board(0)` is `[A0, B0]`.
|
|
- `board(1)` is `[A1]`.
|
|
|
|
### test_01_names
|
|
|
|
- Setup: an empty game.
|
|
- Action: summon `Test Filler` for player 0 (id A) and add a `Test Filler` to player 1's hand (id H).
|
|
- Assertions:
|
|
- `nameOf(A)` is `"Test Filler"`.
|
|
- `nameOf(H)` is `"Test Filler"`.
|