Sha256: c7b665bfee105bc87af972f03d0071391f37f386bf42c6eec89e3cc5ab3cbc65

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

require 'spec_helper'

describe BigbluebuttonRecordingsForRoomWorker do

  it "uses the queue :bigbluebutton_rails" do
    BigbluebuttonRecordingsForRoomWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
  end

  describe "#perform" do
    let!(:room) { FactoryGirl.create(:bigbluebutton_room) }

    context "calls #fetch_recordings on the room" do
      before {
        BigbluebuttonRoom.stub(:find).and_return(room)
        expect(room).to receive(:fetch_recordings).once
      }
      it { BigbluebuttonRecordingsForRoomWorker.perform(room.id) }
    end

    context "if there are still tries left" do
      before {
        BigbluebuttonRoom.stub(:find).and_return(room)
        room.stub(:fetch_recordings)
        expect(Resque).to receive(:enqueue_in)
                           .with(5.minutes, ::BigbluebuttonRecordingsForRoomWorker, room.id, 0)
                           .once
      }
      it { BigbluebuttonRecordingsForRoomWorker.perform(room.id, 1) }
    end

    context "if there are no more tries left" do
      before {
        BigbluebuttonRoom.stub(:find).and_return(room)
        room.stub(:fetch_recordings)
        expect(Resque).not_to receive(:enqueue_in)
      }
      it { BigbluebuttonRecordingsForRoomWorker.perform(room.id, 0) }
    end

    context "if the room id is not found" do
      before {
        BigbluebuttonRoom.stub(:find).and_return(nil)
        expect(room).not_to receive(:fetch_recordings)
        expect(Resque).not_to receive(:enqueue_in)
      }
      it { BigbluebuttonRecordingsForRoomWorker.perform(room.id) }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bigbluebutton_rails-3.0.0 spec/workers/bigbluebutton_recordings_for_room_worker_spec.rb
bigbluebutton_rails-2.3.0 spec/workers/bigbluebutton_recordings_for_room_worker_spec.rb