diff --git a/lib/resque_spec.rb b/lib/resque_spec.rb index 7af346b..d24118d 100644 --- a/lib/resque_spec.rb +++ b/lib/resque_spec.rb @@ -5,9 +5,14 @@ module ResqueSpec extend self - attr_accessor :inline + attr_reader :inline attr_accessor :disable_ext + def inline=(value) + Resque.inline = value + @inline = value + end + def dequeue(queue_name, klass, *args) queue_by_name(queue_name).delete_if do |job| job[:class] == klass.to_s && args.empty? || job[:args] == args @@ -80,7 +85,10 @@ def new_job(queue_name, payload) end def perform(queue_name, payload) + original = Resque.inline + Resque.inline = true new_job(queue_name, payload).perform + Resque.inline = original end def perform_or_store(queue_name, payload) diff --git a/spec/resque_spec/helpers_spec.rb b/spec/resque_spec/helpers_spec.rb index 191e623..536a856 100644 --- a/spec/resque_spec/helpers_spec.rb +++ b/spec/resque_spec/helpers_spec.rb @@ -89,6 +89,14 @@ end ResqueSpec.inline.should eq status end + + it "sets Resque.inline as #{status} when inside the block" do + ResqueSpec.inline = status + with_resque do + Resque.inline.should eq true + end + Resque.inline.should eq status + end end end end diff --git a/spec/resque_spec_spec.rb b/spec/resque_spec_spec.rb index d32eb0d..642338c 100644 --- a/spec/resque_spec_spec.rb +++ b/spec/resque_spec_spec.rb @@ -77,6 +77,10 @@ }.not_to change(NameFromClassMethod, :invocations) end + it "sets Resque.inline to false" do + expect(Resque.inline).to be_false + end + it "does not change the behavior of enqueue" do ResqueSpec.enqueue(:queue_name, NameFromClassMethod, 1) ResqueSpec.queue_by_name(:queue_name).should include({ class: NameFromClassMethod.to_s, args: [1] }) @@ -92,6 +96,10 @@ }.to change(NameFromClassMethod, :invocations).by(1) end + it "sets Resque.inline to true" do + expect(Resque.inline).to be_true + end + it "does not enqueue" do ResqueSpec.enqueue(:queue_name, NameFromClassMethod, 1) ResqueSpec.queue_by_name(:queue_name).should be_empty @@ -279,6 +287,7 @@ ResqueSpec.inline = true ResqueSpec.reset! ResqueSpec.inline.should be_false + Resque.inline.should be_false end end end