Merge branch 'specs' of git.stu.neva.ru:cloudtechlab/devops-service into specs
This commit is contained in:
commit
799961b361
50
devops-service/spec/executors/server_executor_spec.rb
Normal file
50
devops-service/spec/executors/server_executor_spec.rb
Normal 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
|
||||||
6
devops-service/spec/support/instance_variable_matcher.rb
Normal file
6
devops-service/spec/support/instance_variable_matcher.rb
Normal 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
|
||||||
Loading…
Reference in New Issue
Block a user