fluke/devops-service/spec/workers/create_server_worker_spec.rb
2016-03-17 12:54:42 +02:00

30 lines
1.1 KiB
Ruby

require 'workers/create_server_worker'
RSpec.describe CreateServerWorker, type: :worker, stubbed_connector: true do
let(:worker) { described_class.new }
let(:perform) { worker.perform('owner' => 'user', 'server_attrs' => @server_attrs) }
before do
allow(worker).to receive(:update_report)
allow_any_instance_of(Devops::Executor::ServerExecutor).to receive(:create_server)
@server_attrs = {'deploy_env' => 'foo'}
allow(stubbed_connector).to receive(:project) { build(:project) }
end
it 'requires server attrs and owner' do
expect{ worker.perform('owner' => 'user') }.to raise_error KeyError
expect{ worker.perform('server_attrs' => {}) }.to raise_error KeyError
end
it 'updates report' do
expect(worker).to receive(:update_report)
perform
end
it 'calls #create_server with server attrs merged with "created_by" on executor' do
expect_any_instance_of(Devops::Executor::ServerExecutor).to receive(:create_server) do |caller, param|
expect(param).to eq @server_attrs.merge('created_by' => 'user')
end
perform
end
end