summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/finders/clusters_finder.rb30
-rw-r--r--spec/finders/clusters_finder_spec.rb10
2 files changed, 25 insertions, 15 deletions
diff --git a/app/finders/clusters_finder.rb b/app/finders/clusters_finder.rb
index 2b29c7bdf12..26bae3193da 100644
--- a/app/finders/clusters_finder.rb
+++ b/app/finders/clusters_finder.rb
@@ -1,19 +1,29 @@
class ClustersFinder
+ attr_reader :project, :user, :scope
+
def initialize(project, user, scope)
@project = project
@user = user
- @scope = scope
+ @scope = scope || :active
end
def execute
- clusters = case @scope
- when :all
- @project.clusters
- when :enabled
- @project.clusters.enabled
- when :disabled
- @project.clusters.disabled
- end
- clusters.map { |cluster| cluster.present(current_user: @user) }
+ clusters = project.clusters
+ filter_by_scope(clusters)
+ end
+
+ private
+
+ def filter_by_scope(clusters)
+ case @scope.to_sym
+ when :all
+ clusters
+ when :inactive
+ clusters.disabled
+ when :active
+ clusters.enabled
+ else
+ raise "Invalid scope #{@scope}"
+ end
end
end
diff --git a/spec/finders/clusters_finder_spec.rb b/spec/finders/clusters_finder_spec.rb
index 29fb3846d03..3e7bbbe39c4 100644
--- a/spec/finders/clusters_finder_spec.rb
+++ b/spec/finders/clusters_finder_spec.rb
@@ -15,19 +15,19 @@ describe ClustersFinder do
context 'when scope is all' do
let(:scope) { :all }
- it { is_expected.to eq(project.clusters.to_a) }
+ it { is_expected.to eq(project.clusters) }
end
context 'when scope is enabled' do
- let(:scope) { :enabled }
+ let(:scope) { :active }
- it { is_expected.to eq(project.clusters.enabled.to_a) }
+ it { is_expected.to eq(project.clusters.enabled) }
end
context 'when scope is disabled' do
- let(:scope) { :disabled }
+ let(:scope) { :inactive }
- it { is_expected.to eq(project.clusters.disabled.to_a) }
+ it { is_expected.to eq(project.clusters.disabled) }
end
end
end