Sha256: 464d2aa45d28a22b66a32ab06038adb44db314a203c71b967a35fc3a42ea919b

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require 'spec_helper'

require 'active_support/core_ext/hash/keys' # Hash.symbolize_keys
require 'active_support/core_ext/numeric/time' # Numeric.hours

require 'active_record'

DB_FILE = 'tmp/test_db'
FileUtils.mkdir_p File.dirname(DB_FILE)
FileUtils.rm_f DB_FILE

ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => DB_FILE

load('spec/schema.rb')

describe BackgroundWorker::Base do
  let(:cache) { double(write: nil, read: nil, reconnect: nil, store: nil) }
  let(:model_class) { Model = Class.new(ActiveRecord::Base) }
  let(:worker_class) {
    Class.new(BackgroundWorker::Base) do
      def perform(opts)
        Rails.cache.store(opts[:value])
      end
    end
  }

  before do
    stub_const 'Model', model_class
    stub_const 'Rails', double(cache: cache, env: 'production')
    BackgroundWorker.configure(backgrounded: false)
  end

  it 'should perform action and handle transactions/connections appropriately' do
    Model.transaction do
      worker_class.perform_later(value: 42)
    end
    expect(cache).to have_received(:store).with(42)
  end

  context '#queue_as' do
    it 'should value queue correctly' do
      worker_class.queue_as('low')
      expect(worker_class.queue).to be :low
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
background_worker-0.8.1 spec/base_spec.rb