spec/args/scale_box_spec.rb in squib-0.8.0 vs spec/args/scale_box_spec.rb in squib-0.9.0
- old
+ new
@@ -1,71 +1,71 @@
-require 'spec_helper'
-require 'squib/args/scale_box'
-
-describe Squib::Args::ScaleBox do
- subject(:box) { Squib::Args::ScaleBox.new({}) }
-
- context 'unit conversion' do
- it 'converts units on all args' do
- args = {x: ['1in', '2in'], y: 300, width: '1in', height: '1in'}
- box.load!(args, expand_by: 2)
- expect(box).to have_attributes(
- x: [300, 600],
- y: [300, 300],
- width: [300, 300],
- height: [300, 300],
- )
- end
- end
-
- context 'validation' do
- it 'replaces with deck width and height' do
- args = {width: :deck, height: :deck}
- deck = OpenStruct.new(width: 123, height: 456)
- box = Squib::Args::Box.new(deck)
- box.load!(args, expand_by: 1)
- expect(box).to have_attributes(width: [123], height: [456])
- end
-
- it 'allows :native' do
- args = {width: :native, height: :native}
- box.load!(args, expand_by: 1)
- expect(box).to have_attributes(width: [:native], height: [:native])
- end
-
- it 'allows native to be a string' do
- args = {width: 'native'}
- box.load!(args, expand_by: 1)
- expect(box).to have_attributes(width: [:native], height: [:native])
- end
-
- it 'allows :scale on width if height has to_f' do
- args = {width: :scale, height: 75}
- box.load!(args, expand_by: 1)
- expect(box).to have_attributes(width: [:scale], height: [75])
- end
-
- it 'allows :scale on width if height has to_f' do
- args = {width: 75, height: :scale}
- box.load!(args, expand_by: 1)
- expect(box).to have_attributes(width: [75], height: [:scale])
- end
-
- it 'disallows both :scale' do
- args = {width: :scale, height: :scale}
- expect { box.load!(args, expand_by: 1) }.to raise_error('if width is :scale, height must be a number')
- end
-
- it 'disallows non-to_f on width' do
- args = {width: :foo}
- expect { box.load!(args, expand_by: 1) }.to raise_error('width must be a number, :scale, :native, or :deck')
- end
-
- it 'disallows non-to_f on height' do
- args = {height: :foo}
- expect { box.load!(args, expand_by: 1) }.to raise_error('height must be a number, :scale, :native, or :deck')
- end
-
- end
-
-
-end
+require 'spec_helper'
+require 'squib/args/scale_box'
+
+describe Squib::Args::ScaleBox do
+ subject(:box) { Squib::Args::ScaleBox.new({}) }
+
+ context 'unit conversion' do
+ it 'converts units on all args' do
+ args = {x: ['1in', '2in'], y: 300, width: '1in', height: '1in'}
+ box.load!(args, expand_by: 2)
+ expect(box).to have_attributes(
+ x: [300, 600],
+ y: [300, 300],
+ width: [300, 300],
+ height: [300, 300],
+ )
+ end
+ end
+
+ context 'validation' do
+ it 'replaces with deck width and height' do
+ args = {width: :deck, height: :deck}
+ deck = OpenStruct.new(width: 123, height: 456)
+ box = Squib::Args::Box.new(deck)
+ box.load!(args, expand_by: 1)
+ expect(box).to have_attributes(width: [123], height: [456])
+ end
+
+ it 'allows :native' do
+ args = {width: :native, height: :native}
+ box.load!(args, expand_by: 1)
+ expect(box).to have_attributes(width: [:native], height: [:native])
+ end
+
+ it 'allows native to be a string' do
+ args = {width: 'native'}
+ box.load!(args, expand_by: 1)
+ expect(box).to have_attributes(width: [:native], height: [:native])
+ end
+
+ it 'allows :scale on width if height has to_f' do
+ args = {width: :scale, height: 75}
+ box.load!(args, expand_by: 1)
+ expect(box).to have_attributes(width: [:scale], height: [75])
+ end
+
+ it 'allows :scale on width if height has to_f' do
+ args = {width: 75, height: :scale}
+ box.load!(args, expand_by: 1)
+ expect(box).to have_attributes(width: [75], height: [:scale])
+ end
+
+ it 'disallows both :scale' do
+ args = {width: :scale, height: :scale}
+ expect { box.load!(args, expand_by: 1) }.to raise_error('if width is :scale, height must be a number')
+ end
+
+ it 'disallows non-to_f on width' do
+ args = {width: :foo}
+ expect { box.load!(args, expand_by: 1) }.to raise_error('width must be a number, :scale, :native, or :deck')
+ end
+
+ it 'disallows non-to_f on height' do
+ args = {height: :foo}
+ expect { box.load!(args, expand_by: 1) }.to raise_error('height must be a number, :scale, :native, or :deck')
+ end
+
+ end
+
+
+end