spec/attempt_spec.rb in attempt_this-0.9.1 vs spec/attempt_spec.rb in attempt_this-1.0.0
- old
+ new
@@ -291,6 +291,60 @@
count = 0
->{attempt(3.times).with_filter(Exception){ count += 1; raise(StandardError, 'Test')}}.should raise_error(StandardError)
count.should eql(3)
end
end
-end
\ No newline at end of file
+
+ context 'enabled' do
+ class TestAttempt
+ include AttemptThis
+ end
+
+ subject{TestAttempt.new}
+
+ it 'should be true initially' do
+ subject.enabled?.should be_true
+ end
+
+ it 'should accept true' do
+ subject.enabled = true
+ subject.enabled?.should be_true
+ end
+
+ it 'should accept false' do
+ subject.enabled = false
+ subject.enabled?.should be_false
+ end
+
+ it 'should change from true to false' do
+ subject.enabled = true
+ subject.enabled = false
+ subject.enabled?.should be_false
+ end
+
+ it 'should change from false to true' do
+ subject.enabled = false
+ subject.enabled = true
+ subject.enabled?.should be_true
+ end
+
+ context 'when disabled' do
+ before(:each) do
+ AttemptThis.stub(:enabled?).and_return(false)
+ end
+
+ it 'should yield in the simplest case' do
+ expect{|b| attempt(3.times, &b)}.to yield_control
+ end
+
+ it 'should yield with chained calls' do
+ expect{|b| attempt(3.times).with_delay(100, &b)}.to yield_control
+ end
+
+ it 'should not retry' do
+ count = 0
+ expect{attempt(3.times) {count += 1; raise 'Test'}}.to raise_error('Test')
+ count.should eql(1)
+ end
+ end
+ end
+end