summaryrefslogtreecommitdiff
path: root/spec/models/clusters
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-10 07:53:40 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-10 07:53:40 +0000
commitcfc792b9ca064990e6540cb742e80529ea669a81 (patch)
tree147cd4256319990cebbc02fe8e4fbbbe06f5720a /spec/models/clusters
parent93c6764dacd4c605027ef1cd367d3aebe420b223 (diff)
downloadgitlab-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.rb34
-rw-r--r--spec/models/clusters/cluster_spec.rb31
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) }