30 lines
1.1 KiB
Ruby
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
|