Employing the new args refactoring on all shapes
This commit is contained in:
@@ -70,6 +70,15 @@ describe Squib::Args::Box do
|
||||
y: [0, 0], # Box default
|
||||
)
|
||||
end
|
||||
|
||||
it 'handles symbols' do
|
||||
args = { layout: :attack }
|
||||
box.load!(args, expand_by: 2, layout: layout)
|
||||
expect(box).to have_attributes(
|
||||
x: [50, 50], # set by layout
|
||||
y: [0, 0], # Box default
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'unit conversion' do
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
require 'spec_helper'
|
||||
require 'squib/args/card_range'
|
||||
|
||||
describe Squib::Args::CardRange do
|
||||
|
||||
it 'must be within the card size range' do
|
||||
expect {Squib::Args::CardRange.new(2..3, deck_size: 2)}
|
||||
.to raise_error(ArgumentError, '2..3 is outside of deck range of 0..1')
|
||||
end
|
||||
|
||||
it 'defaults to range of all cards if :all' do
|
||||
range = Squib::Args::CardRange.new(:all, deck_size: 5)
|
||||
expect(range.to_a).to eq([0, 1, 2, 3, 4])
|
||||
end
|
||||
|
||||
it 'creates a range of cards for singleton' do
|
||||
range = Squib::Args::CardRange.new(3, deck_size: 5)
|
||||
expect(range.to_a).to eq([3])
|
||||
end
|
||||
|
||||
it 'lets arrays pass through unchanged' do
|
||||
range = Squib::Args::CardRange.new([0, 2], deck_size: 5)
|
||||
expect(range.to_a).to eq([0, 2])
|
||||
end
|
||||
|
||||
it 'raises an error on everything else' do
|
||||
expect { Squib::Args::CardRange.new(:foo, deck_size: 5) }
|
||||
.to raise_error(ArgumentError, 'foo must be Enumerable (i.e. respond_to :each).')
|
||||
end
|
||||
|
||||
it 'allows anything with :to_i' do
|
||||
range = Squib::Args::CardRange.new(0.9, deck_size: 5)
|
||||
expect(range.to_a).to eq([0])
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user