Перейти к содержанию

dice_board — Acceptance Tests (Gherkin)

Feature: dice_board basic placement
  Scenario: Place token on empty cell
    Given a game "dice_board" with 2 players
    And it is player 1 turn in phase "RollDice"
    When player 1 rolls dice and gets 3 and 5
    And player 1 chooses cell (3, 5)
    Then cell (3, 5) contains player 1 token
    And it is player 2 turn

Feature: dice_board capture
  Scenario: Capture opponent token
    Given cell (2, 4) is occupied by player 2
    And dice show 2 and 4
    When player 1 chooses cell (2, 4)
    Then cell (2, 4) contains player 1 token
    And cell (2, 4) does not contain player 2 token

Feature: dice_board own cell rule
  Scenario: Must choose free candidate if own cell occupied
    Given cell (3, 3) is occupied by player 1
    And cell (5, 1) is empty
    And dice show 3 and 5
    When player 1 attempts to choose cell (3, 5)
    Then the action is rejected with error "OWN_CELL_BLOCKED"
    When player 1 chooses cell (5, 3)
    Then the action succeeds

Feature: dice_board doubles reroll
  Scenario: Doubles trigger reroll in same turn
    Given dice show 3 and 3
    And cell (3, 3) is empty
    When player 1 chooses cell (3, 3)
    Then phase is "RollDice"
    And reroll_count is 1
    When player 1 rolls again and gets 1 and 6
    And player 1 chooses cell (1, 6)
    Then it is player 2 turn

Feature: dice_board no reroll without doubles
  Scenario: Center cell without doubles does not reroll
    Given dice show 3 and 4
    When player 1 chooses cell (3, 4)
    Then it is player 2 turn

Feature: dice_board win
  Scenario: Three in a row wins
    Given player 1 has tokens at (1,1) and (1,2)
    And dice allow placing at (1, 3)
    When player 1 chooses cell (1, 3)
    Then game status is "finished"
    And winner is player 1

Feature: cross-client sync
  Scenario: Move from Telegram appears on web
    Given player 1 is connected via Telegram
    And player 2 is connected via web
    When player 1 chooses a valid cell
    Then web client receives state update within 1 second
    And board on web shows the new token

Test IDs (traceability)

Scenario FR TC
Place token FR-013 TC-011
Capture FR-014 TC-012
Own cell rule FR-016 TC-016
Doubles reroll FR-015 TC-013
No reroll without doubles FR-015 TC-013b
Win FR-017 TC-014
Cross-client FR-026, NFR-002 TC-008