Sha256: 69a6162ab8cd91ae106833420d3ac97d52817d93296e24c027d2145ad9070b8d
Contents?: true
Size: 1.28 KB
Versions: 17
Compression:
Stored size: 1.28 KB
Contents
require 'job_uniqueness/spec_helper' RSpec.describe CanvasSync::JobUniqueness::Strategy::UntilAndWhileExecuting do include_context 'lock strategy specs', strategy: :until_and_while_executing include_examples "a lock implementation" describe "#on_enqueue" do it "locks the queue" do process_one.on_enqueue {} expect(process_one).to be_locked end it "does not lock the runtime lock" do process_one.on_enqueue {} expect(process_one.send(:runtime_lock)).to_not be_locked end end describe "#on_perform" do it "unlocks the queue" do process_one.on_perform do expect(process_one).to_not be_locked end end it "locks the runtime lock" do process_one.on_perform do expect(process_one.send(:runtime_lock)).to be_locked end end it "unlocks the runtime lock after processing" do process_one.on_perform do process_one.send(:runtime_lock).batch_callback(:success, nil) expect(process_one.send(:runtime_lock)).to_not be_locked end end it "prevents other processes from executing" do process_one.on_perform do expect do process_two.on_perform { } end.to raise_error(CanvasSync::JobUniqueness::CouldNotLockError) end end end end
Version data entries
17 entries across 17 versions & 1 rubygems