| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  | require 'workers/create_server_worker' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | RSpec.describe CreateServerWorker, type: :worker do | 
					
						
							| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  |   let(:worker) { described_class.new } | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   let(:server_attrs) { {'environment' => 'foo'} } | 
					
						
							|  |  |  |   let(:category) { build(:category) } | 
					
						
							|  |  |  |   let(:env) { build(:environment) } | 
					
						
							|  |  |  |   let(:project) { build(:project) } | 
					
						
							| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |   before do | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |     allow(worker).to receive(:set_task_data) | 
					
						
							|  |  |  |     allow(project).to receive(:environment) { env } | 
					
						
							|  |  |  |     allow(env).to receive(:get_category) { category } | 
					
						
							| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  |     allow_any_instance_of(Devops::Executor::ServerExecutor).to receive(:create_server) | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |     allow(Devops::Model::Project).to receive_message_chain(:find_with_environment) { project } | 
					
						
							|  |  |  |     allow(Sidekiq.logger).to receive(:info) | 
					
						
							| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  |   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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   it 'updates task' do | 
					
						
							|  |  |  |     expect(worker).to receive(:set_task_data) | 
					
						
							|  |  |  |     worker.perform('owner' => 'user', 'server_attrs' => server_attrs) | 
					
						
							| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   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) | 
					
						
							| 
									
										
										
										
											2016-03-17 13:49:35 +03:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | end |