Sha256: 2b7009050ebf2402c1cff86c89726e85a7c1f6bbdda1aa9821ab2c391a02c7ce

Contents?: true

Size: 1.53 KB

Versions: 105

Compression:

Stored size: 1.53 KB

Contents

require 'spec_helper'

RSpec.describe CanvasSync::JobBatches::ContextHash do

  class ContextedJob < BatchTestJobBase
    def perform
      was_performed(batch_context.flatten)
    end

    def was_performed(*args); end

    def self.callback_perform(*args)
      perform_later
    end
  end

  it "works with first-level jobs" do
    ActiveJob::Base.queue_adapter = :sidekiq
    b = CanvasSync::JobBatches::Batch.new
    b.context = { hello: 'world' }
    expect_any_instance_of(ContextedJob).to receive(:was_performed).with({ 'hello' => 'world' })
    b.jobs do
      ContextedJob.perform_later
    end
    Sidekiq::Worker.drain_all
  end

  it "works with nested-batch jobs" do
    ActiveJob::Base.queue_adapter = :sidekiq
    b = CanvasSync::JobBatches::Batch.new
    b.context = { hello: 'world', foo: 'bar' }
    expect_any_instance_of(ContextedJob).to receive(:was_performed).with({ 'hello' => 'world', 'foo' => 'baz', 'some' => 'other' })
    b.jobs do
      b2 = CanvasSync::JobBatches::Batch.new
      b2.context = { some: 'other', foo: 'baz' }
      b2.jobs do
        ContextedJob.perform_later
      end
    end
    Sidekiq::Worker.drain_all
  end

  it 'works with a callback batch' do
    ActiveJob::Base.queue_adapter = :sidekiq
    b = CanvasSync::JobBatches::Batch.new
    b.context = { hello: 'world' }
    b.on(:success, "ContextedJob.callback_perform")
    expect_any_instance_of(ContextedJob).to receive(:was_performed).with({ 'hello' => 'world' })
    b.jobs do
      BatchTestJobBase.perform_later
    end
    Sidekiq::Worker.drain_all
  end
end

Version data entries

105 entries across 105 versions & 1 rubygems

Version Path
canvas_sync-0.22.9 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.8 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.6 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.5 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.4 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.3 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.2 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.1 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta8 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta7 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta6 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta5 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta4 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta3 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta2 spec/job_batching/context_hash_spec.rb
canvas_sync-0.22.0.beta1 spec/job_batching/context_hash_spec.rb
canvas_sync-0.21.1 spec/job_batching/context_hash_spec.rb
canvas_sync-0.21.1.beta1 spec/job_batching/context_hash_spec.rb
canvas_sync-0.21.0 spec/job_batching/context_hash_spec.rb