61 lines
1.8 KiB
Ruby
61 lines
1.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Ci::FinalizeClusterCreationService do
|
|
describe '#execute' do
|
|
let(:cluster) { create(:gcp_cluster) }
|
|
let(:result) { described_class.new.execute(cluster) }
|
|
|
|
context 'when suceeded to get cluster from api' do
|
|
let(:gke_cluster) { double }
|
|
|
|
before do
|
|
allow(gke_cluster).to receive(:endpoint).and_return('111.111.111.111')
|
|
allow(gke_cluster).to receive(:master_auth).and_return(spy)
|
|
allow_any_instance_of(GoogleApi::CloudPlatform::Client)
|
|
.to receive(:projects_zones_clusters_get).and_return(gke_cluster)
|
|
end
|
|
|
|
context 'when suceeded to get kubernetes token' do
|
|
let(:kubernetes_token) { 'abc' }
|
|
|
|
before do
|
|
allow_any_instance_of(Ci::FetchKubernetesTokenService)
|
|
.to receive(:execute).and_return(kubernetes_token)
|
|
end
|
|
|
|
it 'executes integration cluster' do
|
|
expect_any_instance_of(Ci::IntegrateClusterService).to receive(:execute)
|
|
described_class.new.execute(cluster)
|
|
end
|
|
end
|
|
|
|
context 'when failed to get kubernetes token' do
|
|
before do
|
|
allow_any_instance_of(Ci::FetchKubernetesTokenService)
|
|
.to receive(:execute).and_return(nil)
|
|
end
|
|
|
|
it 'sets an error to cluster object' do
|
|
described_class.new.execute(cluster)
|
|
|
|
expect(cluster.reload).to be_errored
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'when failed to get cluster from api' do
|
|
let(:error) { Google::Apis::ServerError.new('a') }
|
|
|
|
before do
|
|
allow_any_instance_of(GoogleApi::CloudPlatform::Client)
|
|
.to receive(:projects_zones_clusters_get).and_raise(error)
|
|
end
|
|
|
|
it 'sets an error to cluster object' do
|
|
described_class.new.execute(cluster)
|
|
|
|
expect(cluster.reload).to be_errored
|
|
end
|
|
end
|
|
end
|
|
end
|