diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-10 07:53:40 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-10 07:53:40 +0000 |
commit | cfc792b9ca064990e6540cb742e80529ea669a81 (patch) | |
tree | 147cd4256319990cebbc02fe8e4fbbbe06f5720a /spec/models/clusters | |
parent | 93c6764dacd4c605027ef1cd367d3aebe420b223 (diff) | |
download | gitlab-ce-cfc792b9ca064990e6540cb742e80529ea669a81.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models/clusters')
-rw-r--r-- | spec/models/clusters/applications/prometheus_spec.rb | 34 | ||||
-rw-r--r-- | spec/models/clusters/cluster_spec.rb | 31 |
2 files changed, 45 insertions, 20 deletions
diff --git a/spec/models/clusters/applications/prometheus_spec.rb b/spec/models/clusters/applications/prometheus_spec.rb index cf6e3fff744..ce4d817b1d7 100644 --- a/spec/models/clusters/applications/prometheus_spec.rb +++ b/spec/models/clusters/applications/prometheus_spec.rb @@ -12,35 +12,29 @@ describe Clusters::Applications::Prometheus do include_examples 'cluster application initial status specs' describe 'after_destroy' do - let(:project) { create(:project) } - let(:cluster) { create(:cluster, :with_installed_helm, projects: [project]) } - let!(:application) { create(:clusters_applications_prometheus, :installed, cluster: cluster) } - let!(:prometheus_service) { project.create_prometheus_service(active: true) } + context 'cluster type is project' do + let(:cluster) { create(:cluster, :with_installed_helm) } + let(:application) { create(:clusters_applications_prometheus, :installed, cluster: cluster) } - it 'deactivates prometheus_service after destroy' do - expect do - application.destroy! + it 'deactivates prometheus_service after destroy' do + expect(Clusters::Applications::DeactivateServiceWorker) + .to receive(:perform_async).with(cluster.id, 'prometheus') - prometheus_service.reload - end.to change(prometheus_service, :active).from(true).to(false) + application.destroy! + end end end describe 'transition to installed' do let(:project) { create(:project) } - let(:cluster) { create(:cluster, :with_installed_helm, projects: [project]) } - let(:prometheus_service) { double('prometheus_service') } - - subject { create(:clusters_applications_prometheus, :installing, cluster: cluster) } - - before do - allow(project).to receive(:find_or_initialize_service).with('prometheus').and_return prometheus_service - end + let(:cluster) { create(:cluster, :with_installed_helm) } + let(:application) { create(:clusters_applications_prometheus, :installing, cluster: cluster) } - it 'ensures Prometheus service is activated' do - expect(prometheus_service).to receive(:update!).with(active: true) + it 'schedules post installation job' do + expect(Clusters::Applications::ActivateServiceWorker) + .to receive(:perform_async).with(cluster.id, 'prometheus') - subject.make_installed + application.make_installed end end diff --git a/spec/models/clusters/cluster_spec.rb b/spec/models/clusters/cluster_spec.rb index 807214dcc14..6aa643b122e 100644 --- a/spec/models/clusters/cluster_spec.rb +++ b/spec/models/clusters/cluster_spec.rb @@ -16,6 +16,7 @@ describe Clusters::Cluster, :use_clean_rails_memory_store_caching do it { is_expected.to have_many(:projects) } it { is_expected.to have_many(:cluster_groups) } it { is_expected.to have_many(:groups) } + it { is_expected.to have_many(:groups_projects) } it { is_expected.to have_one(:provider_gcp) } it { is_expected.to have_one(:provider_aws) } it { is_expected.to have_one(:platform_kubernetes) } @@ -616,6 +617,36 @@ describe Clusters::Cluster, :use_clean_rails_memory_store_caching do end end + describe '#all_projects' do + context 'cluster_type is project_type' do + let(:project) { create(:project) } + let(:cluster) { create(:cluster, :with_installed_helm, projects: [project]) } + + it 'returns projects' do + expect(cluster.all_projects).to match_array [project] + end + end + + context 'cluster_type is group_type' do + let(:group) { create(:group) } + let!(:project) { create(:project, group: group) } + let(:cluster) { create(:cluster_for_group, :with_installed_helm, groups: [group]) } + + it 'returns group projects' do + expect(cluster.all_projects.ids).to match_array [project.id] + end + end + + context 'cluster_type is instance_type' do + let!(:project) { create(:project) } + let(:cluster) { create(:cluster, :instance) } + + it "returns all instance's projects" do + expect(cluster.all_projects.ids).to match_array [project.id] + end + end + end + describe '#kube_ingress_domain' do let(:cluster) { create(:cluster, :provided_by_gcp) } |