fetch_kubernetes_token_service_spec. Fix static analysys.

This commit is contained in:
Shinya Maeda 2017-10-05 20:26:07 +09:00
parent 31c8925882
commit b229637b08
4 changed files with 58 additions and 8 deletions

View file

@ -22,6 +22,8 @@ module Ci
return Base64.decode64(token_base64) if token_base64 return Base64.decode64(token_base64) if token_base64
end end
end end
nil
end end
private private

View file

@ -60,6 +60,7 @@ describe Gitlab::UsageData do
deploy_keys deploy_keys
deployments deployments
environments environments
gcp_clusters
in_review_folder in_review_folder
groups groups
issues issues

View file

@ -122,12 +122,12 @@ describe Gcp::Cluster do
let(:cluster) { create(:gcp_cluster) } let(:cluster) { create(:gcp_cluster) }
before do before do
cluster.creating! cluster.make_creating!
end end
context 'when created' do context 'when created' do
before do before do
cluster.created! cluster.make_created!
end end
it { is_expected.to be_truthy } it { is_expected.to be_truthy }

View file

@ -2,16 +2,63 @@ require 'spec_helper'
describe Ci::FetchKubernetesTokenService do describe Ci::FetchKubernetesTokenService do
describe '#execute' do describe '#execute' do
context 'when correct params' do subject { described_class.new(api_url, ca_pem, username, password).execute }
it 'fetch the kubernetes token' do
let(:api_url) { 'http://111.111.111.111' }
let(:ca_pem) { '' }
let(:username) { 'admin' }
let(:password) { 'xxx' }
context 'when params correct' do
let(:token) { 'xxx.token.xxx' }
let(:secrets_json) do
[
{
'metadata': {
name: metadata_name
},
'data': {
'token': Base64.encode64(token)
}
}
]
end
before do
allow_any_instance_of(Kubeclient::Client)
.to receive(:get_secrets).and_return(secrets_json)
end
context 'when default-token exists' do
let(:metadata_name) { 'default-token-123' }
it { is_expected.to eq(token) }
end
context 'when default-token does not exist' do
let(:metadata_name) { 'another-token-123' }
it { is_expected.to be_nil }
end end
end end
context 'when invalid params' do context 'when api_url is nil' do
it 'returns nil' do let(:api_url) { nil }
end it { expect { subject }.to raise_error("Incomplete settings") }
end
context 'when username is nil' do
let(:username) { nil }
it { expect { subject }.to raise_error("Incomplete settings") }
end
context 'when password is nil' do
let(:password) { nil }
it { expect { subject }.to raise_error("Incomplete settings") }
end end
end end
end end