Sha256: 30d943d45e176671035da1e5df3f7b9b4504f095427a7e41f39613689e670568
Contents?: true
Size: 1.74 KB
Versions: 124
Compression:
Stored size: 1.74 KB
Contents
require 'spec_helper' RSpec.describe CanvasSync::Jobs::ReportChecker do let(:client_double) { double('client') } let(:report_id) { 1 } let(:report_name) { 'provisioning_csv' } let(:processor) { 'FakeProcessor' } describe '#perform' do def start_job CanvasSync::Jobs::ReportChecker.perform_now( 'provisioning_csv', report_id, processor, {} ) end context 'the report has finished' do it 'enqueues the report processor job' do expect_any_instance_of(Bearcat::Client).to receive(:report_status) .with('self', report_name, report_id) .and_return({ 'status' => 'complete', 'attachment' => { 'url' => 'blah' } }) expect(CanvasSync::Jobs::ReportProcessorJob).to receive(:perform_later) .with(report_name, 'blah', processor, {}, report_id) start_job end end context 'the report is still running' do it 're-enqueues the report checker' do expect_any_instance_of(Bearcat::Client).to receive(:report_status) .with('self', report_name, report_id) .and_return({ 'status' => 'running' }) expect(CanvasSync::Jobs::ReportChecker).to receive(:set).and_call_original start_job end end context 'the report has errored' do it 'does not re-enqueue the job or enqueue the processor' do expect_any_instance_of(Bearcat::Client).to receive(:report_status) .with('self', report_name, report_id) .and_return({ 'status' => 'error' }) expect(CanvasSync::Jobs::ReportChecker).to_not receive(:set) expect(CanvasSync::Jobs::ReportProcessorJob).to_not receive(:perform_later) expect { start_job }.to raise_error end end end end
Version data entries
124 entries across 124 versions & 1 rubygems