start server executor specs

This commit is contained in:
Anton Chuchkalov 2015-12-21 19:23:17 +04:00
parent ba25c41082
commit fe81076887
2 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,50 @@
require 'lib/executors/server_executor'
RSpec.describe Devops::Executor::ServerExecutor, type: :executor, stubbed_connector: true do
let(:project) { build(:project) }
let(:deploy_env) { project.deploy_env('foo') }
let(:server) { build(:server, project: project.id, deploy_env: 'foo') }
let(:executor) { described_class.new(server, '') }
before do
allow(stubbed_connector).to receive(:project) { project }
end
describe '#initialize' do
it 'sets server, project, deploy_env, out instance variables' do
expect(executor).to have_instance_variable_value(:server, server)
expect(executor).to have_instance_variable_value(:project, project)
expect(executor).to have_instance_variable_value(:deploy_env, deploy_env)
expect(executor).to have_instance_variable_value(:out, '')
end
it 'set knife_instance instance variable' do
allow(KnifeFactory).to receive(:instance)
expect(executor).to be_instance_variable_defined(:@knife_instance)
end
it 'defines :flush method on @out if it is absent' do
out = Class.new.new
expect(out).not_to respond_to(:flush)
described_class.new(server, out)
expect(out).to respond_to(:flush)
end
it 'sets current_user from options' do
user = double
executor = described_class.new(server, '', {current_user: user})
expect(executor).to have_instance_variable_value(:current_user, user)
end
end
describe '#create_server_object' do
it 'builds Server object' do
server = executor.create_server_object('created_by' => 'me')
expect(server).to be_a(Devops::Model::Server)
expect(server.project).to eq 'my_project'
expect(server.deploy_env).to eq 'foo'
expect(server.created_by).to eq 'me'
end
end
end

View File

@ -0,0 +1,6 @@
RSpec::Matchers.define :have_instance_variable_value do |name, value|
match do |actual|
actual.instance_variable_defined?("@#{name}") &&
actual.instance_variable_get("@#{name}") == value
end
end