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

Version Path
canvas_sync-0.22.9 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.8 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.6 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.5 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.4 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.3 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.2 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.1 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta8 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta7 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta6 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta5 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta4 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta3 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta2 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb
canvas_sync-0.22.0.beta1 spec/job_uniqueness/strategy/until_and_while_executing_spec.rb