summaryrefslogtreecommitdiff
path: root/test/lib/dice_test.rb
blob: 1f36f3071be6c488e2fee5373e9a581c1f2e4732 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require "test_helper"

class DiceTest < ActiveSupport::TestCase
  test "rolls fomula" do
    result = Dice.roll_formula("4d6+2")

    assert_equal 4, result.rolls.count
    assert_equal 6, result.rolls.first&.sides
  end

  test "rolls single die" do
    result = Dice.roll(10)

    assert_equal 1, result.rolls.count
    assert_equal 10, result.rolls.first&.sides
  end

  test "increases sides below max" do
    original_result = Dice::Result.new
    original_result.add_roll Dice::Roll.new(6, 5)
    original_result.add_roll Dice::Roll.new(6, 6)
    original_result.add_roll Dice::Roll.new(6, 2)

    new_result = original_result.dup

    assert_equal 13, new_result.total
    new_result.increase_sides_below_max(6, 1)
    assert_equal 15, new_result.total

    new_result.rolls.each_with_index do |roll, index|
      assert_equal roll, original_result.rolls[index]
    end
  end
end