34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'workers/create_server_worker'
 | |
| 
 | |
| RSpec.describe CreateServerWorker, type: :worker do
 | |
|   let(:worker) { described_class.new }
 | |
|   let(:server_attrs) { {'environment' => 'foo'} }
 | |
|   let(:category) { build(:category) }
 | |
|   let(:env) { build(:environment) }
 | |
|   let(:project) { build(:project) }
 | |
| 
 | |
|   before do
 | |
|     allow(worker).to receive(:set_task_data)
 | |
|     allow(project).to receive(:environment) { env }
 | |
|     allow(env).to receive(:get_category) { category }
 | |
|     allow_any_instance_of(Devops::Executor::ServerExecutor).to receive(:create_server)
 | |
|     allow(Devops::Model::Project).to receive_message_chain(:find_with_environment) { project }
 | |
|     allow(Sidekiq.logger).to receive(:info)
 | |
|   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 task' do
 | |
|     expect(worker).to receive(:set_task_data)
 | |
|     worker.perform('owner' => 'user', 'server_attrs' => server_attrs)
 | |
|   end
 | |
| 
 | |
|   it 'calls #create_server on executor' do
 | |
|     expect_any_instance_of(Devops::Executor::ServerExecutor).to receive(:create_server)
 | |
|     worker.perform('owner' => 'user', 'server_attrs' => server_attrs)
 | |
|   end
 | |
| end
 | 
