61 lines
1.4 KiB
Ruby
61 lines
1.4 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'fast_spec_helper'
|
||
|
|
||
|
describe Clusters::Gcp::Kubernetes::FetchKubernetesTokenService do
|
||
|
describe '#execute' do
|
||
|
let(:api_url) { 'http://111.111.111.111' }
|
||
|
let(:username) { 'admin' }
|
||
|
let(:password) { 'xxx' }
|
||
|
|
||
|
let(:kubeclient) do
|
||
|
Gitlab::Kubernetes::KubeClient.new(
|
||
|
api_url,
|
||
|
['api', 'apis/rbac.authorization.k8s.io'],
|
||
|
auth_options: { username: username, password: password }
|
||
|
)
|
||
|
end
|
||
|
|
||
|
subject { described_class.new(kubeclient).execute }
|
||
|
|
||
|
context 'when params correct' do
|
||
|
let(:decoded_token) { 'xxx.token.xxx' }
|
||
|
let(:token) { Base64.encode64(decoded_token) }
|
||
|
|
||
|
let(:secret_json) do
|
||
|
{
|
||
|
'metadata': {
|
||
|
name: 'gitlab-token'
|
||
|
},
|
||
|
'data': {
|
||
|
'token': token
|
||
|
}
|
||
|
}
|
||
|
end
|
||
|
|
||
|
before do
|
||
|
allow_any_instance_of(Kubeclient::Client)
|
||
|
.to receive(:get_secret).and_return(secret_json)
|
||
|
end
|
||
|
|
||
|
context 'when gitlab-token exists' do
|
||
|
let(:metadata_name) { 'gitlab-token' }
|
||
|
|
||
|
it { is_expected.to eq(decoded_token) }
|
||
|
end
|
||
|
|
||
|
context 'when gitlab-token does not exist' do
|
||
|
let(:secret_json) { {} }
|
||
|
|
||
|
it { is_expected.to be_nil }
|
||
|
end
|
||
|
|
||
|
context 'when token is nil' do
|
||
|
let(:token) { nil }
|
||
|
|
||
|
it { is_expected.to be_nil }
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|