summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorThong Kuah <tkuah@gitlab.com>2018-11-26 22:01:18 +1300
committerThong Kuah <tkuah@gitlab.com>2018-12-05 10:16:44 +1300
commit8419b7dd2b85fbe9216a31ce84d5ecb234a8b90a (patch)
tree2d0ae5162d844dc9cf37005007e7e9a998e433a9 /spec/models
parent9c5977c821c1958709227a7a5976e1faedc53923 (diff)
downloadgitlab-ce-8419b7dd2b85fbe9216a31ce84d5ecb234a8b90a.tar.gz
Teach Cluster about #all_projects
For project level, it's the project directly associated. For group level, it's the projects under that group.
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/clusters/cluster_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/models/clusters/cluster_spec.rb b/spec/models/clusters/cluster_spec.rb
index c24c796f0ad..244cd125967 100644
--- a/spec/models/clusters/cluster_spec.rb
+++ b/spec/models/clusters/cluster_spec.rb
@@ -312,6 +312,31 @@ describe Clusters::Cluster do
end
end
+ describe '#all_projects' do
+ let(:project) { create(:project) }
+ let(:cluster) { create(:cluster, projects: [project]) }
+
+ subject { cluster.all_projects }
+
+ context 'project cluster' do
+ it 'returns project' do
+ is_expected.to eq([project])
+ end
+ end
+
+ context 'group cluster' do
+ let(:cluster) { create(:cluster, :group) }
+ let(:group) { cluster.group }
+ let(:project) { create(:project, group: group) }
+ let(:subgroup) { create(:group, parent: group) }
+ let(:subproject) { create(:project, group: subgroup) }
+
+ it 'returns all projects for group' do
+ is_expected.to contain_exactly(project, subproject)
+ end
+ end
+ end
+
describe '#first_project' do
subject { cluster.first_project }