diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-20 09:07:57 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-20 09:07:57 +0000 |
commit | 7881eb30eaa8b01dbcfe87faa09927c75c7d6e45 (patch) | |
tree | 298bc8d2c62b2f2c29cb8ecbcf3de3eaaa6466d9 /spec/services/clusters/cleanup/service_account_service_spec.rb | |
parent | 64b66e0cb6d1bfd27abf24e06653f00bddb60597 (diff) | |
download | gitlab-ce-7881eb30eaa8b01dbcfe87faa09927c75c7d6e45.tar.gz |
Add latest changes from gitlab-org/gitlab@12-6-stable-ee
Diffstat (limited to 'spec/services/clusters/cleanup/service_account_service_spec.rb')
-rw-r--r-- | spec/services/clusters/cleanup/service_account_service_spec.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/services/clusters/cleanup/service_account_service_spec.rb b/spec/services/clusters/cleanup/service_account_service_spec.rb new file mode 100644 index 00000000000..ecaf0da9fa3 --- /dev/null +++ b/spec/services/clusters/cleanup/service_account_service_spec.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Clusters::Cleanup::ServiceAccountService do + describe '#execute' do + subject { service.execute } + + let!(:service) { described_class.new(cluster) } + let!(:cluster) { create(:cluster, :cleanup_removing_service_account) } + let!(:logger) { service.send(:logger) } + let(:log_meta) do + { + service: described_class.name, + cluster_id: cluster.id, + execution_count: 0 + } + end + let(:kubeclient_instance_double) do + instance_double(Gitlab::Kubernetes::KubeClient, delete_namespace: nil, delete_service_account: nil) + end + + before do + allow_any_instance_of(Clusters::Cluster).to receive(:kubeclient).and_return(kubeclient_instance_double) + end + + it 'deletes gitlab service account' do + expect(kubeclient_instance_double).to receive(:delete_service_account) + .with( + ::Clusters::Kubernetes::GITLAB_SERVICE_ACCOUNT_NAME, + ::Clusters::Kubernetes::GITLAB_SERVICE_ACCOUNT_NAMESPACE) + + subject + end + + it 'logs all events' do + expect(logger).to receive(:info).with(log_meta.merge(event: :deleting_gitlab_service_account)) + expect(logger).to receive(:info).with(log_meta.merge(event: :destroying_cluster)) + + subject + end + + it 'deletes cluster' do + expect { subject }.to change { Clusters::Cluster.where(id: cluster.id).exists? }.from(true).to(false) + end + end +end |