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 |