Sha256: a5fa3cc1f6cdc6ec79f55bb8c68062d6a15c08134666d5e2c00af94639b9e002

Contents?: true

Size: 1.32 KB

Versions: 41

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'

RSpec.describe CanvasSync::Jobs::CanvasProcessWaiter do
  let!(:worker) { CanvasSync::Jobs::CanvasProcessWaiter.new }

  describe 'perform' do
    it 'queues a InvokeCallbackWorker when complete' do
      job = {
        args: [1, 2],
        kwargs: { progress: anything },
      }
      allow_any_instance_of(Bearcat::Client).to receive(:get).and_return('workflow_state' => 'completed')
      expect(CanvasSync::Jobs::CanvasProcessWaiter::InvokeCallbackWorker).to receive(:perform_later).with(job)
      worker.perform('/blah/', job)
    end

    it 'invokes the on_failure callback if failed' do
      job = {
        args: [1, 2],
        kwargs: { progress: anything },
      }
      allow_any_instance_of(Bearcat::Client).to receive(:get).and_return('workflow_state' => 'failed')
      expect(CanvasSync::Jobs::CanvasProcessWaiter::InvokeCallbackWorker).to receive(:perform_later).with(job)
      worker.perform('/blah/', nil, on_failure: job)
    end

    it 're-enqueues if incomplete' do
      ActiveJob::Base.queue_adapter = :test
      allow_any_instance_of(Bearcat::Client).to receive(:get).and_return('workflow_state' => 'pending')
      worker.perform('/blah/', nil, interval: 13)
      expect(CanvasSync::Jobs::CanvasProcessWaiter).to have_been_enqueued.once.with('/blah/', nil, interval: 13)
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

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