spec/fear/some_spec.rb in fear-0.10.0 vs spec/fear/some_spec.rb in fear-0.11.0
- old
+ new
@@ -47,6 +47,43 @@
describe '#empty?' do
subject { some.empty? }
it { is_expected.to eq(false) }
end
+
+ describe '#match' do
+ context 'matched' do
+ subject do
+ some.match do |m|
+ m.some(->(x) { x > 2 }) { |x| x * 2 }
+ m.none { 'noop' }
+ end
+ end
+
+ it { is_expected.to eq(84) }
+ end
+
+ context 'nothing matched and no else given' do
+ subject do
+ proc do
+ some.match do |m|
+ m.some(->(x) { x < 2 }) { |x| x * 2 }
+ m.none { 'noop' }
+ end
+ end
+ end
+
+ it { is_expected.to raise_error(Fear::MatchError) }
+ end
+
+ context 'nothing matched and else given' do
+ subject do
+ some.match do |m|
+ m.none { |x| x * 2 }
+ m.else { :default }
+ end
+ end
+
+ it { is_expected.to eq(:default) }
+ end
+ end
end