From 5b364ea41b2c104a9d945da1e9681eee47738ffe Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Tue, 19 Jan 2016 17:44:10 +0300 Subject: [PATCH] add specs for ServerExecutor#report=, project= and expiration scheduling --- .../lib/executors/server_executor.rb | 10 +------- .../spec/executors/server_executor_spec.rb | 24 ++++++++++++++++++- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 79f78dc..ef0b9c9 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -40,7 +40,7 @@ module Devops before_deploy :add_run_list_to_deploy_info - attr_accessor :server, :deploy_env + attr_accessor :server, :deploy_env, :report, :project def initialize server, out, options={} if server @@ -65,14 +65,6 @@ module Devops self.class.error_code(symbolic_code) end - def report= r - @report = r - end - - def project= p - @project = p - end - def create_server_object options Devops::Model::Server.new({ "project" => @project.id, diff --git a/devops-service/spec/executors/server_executor_spec.rb b/devops-service/spec/executors/server_executor_spec.rb index 2b7dbed..f3e8ff1 100644 --- a/devops-service/spec/executors/server_executor_spec.rb +++ b/devops-service/spec/executors/server_executor_spec.rb @@ -38,6 +38,20 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec end + describe '#report=' do + it 'sets report instance variable' do + executor.report= 'foo' + expect(executor).to have_instance_variable_value(:report, 'foo') + end + end + + describe '#project=' do + it 'sets project instance variable' do + executor.project= 'foo' + expect(executor).to have_instance_variable_value(:project, 'foo') + end + end + describe '.symbolic_error_code' do it 'returns symbol given an integer' do @@ -125,7 +139,15 @@ RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connec end it 'schedules expiration for server' do - expect(executor).to receive(:schedule_expiration).with(an_instance_of(Devops::Model::Server)) + deploy_env.expires = '2m' + allow(DeleteServerWorker).to receive(:perform_in) + expect(DeleteServerWorker).to receive(:perform_in).with(120, {server_chef_node_name: 'node_name'}) + subject + end + + it "doesn't schedule expiration if deploy_env.expires is nil" do + deploy_env.expires = nil + expect(DeleteServerWorker).not_to receive(:perform_in) subject end