summaryrefslogtreecommitdiff
path: root/spec/presenters/clusterable_presenter_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/presenters/clusterable_presenter_spec.rb')
-rw-r--r--spec/presenters/clusterable_presenter_spec.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/presenters/clusterable_presenter_spec.rb b/spec/presenters/clusterable_presenter_spec.rb
index d19abd4e4d8..7c2e19728d5 100644
--- a/spec/presenters/clusterable_presenter_spec.rb
+++ b/spec/presenters/clusterable_presenter_spec.rb
@@ -79,6 +79,30 @@ RSpec.describe ClusterablePresenter do
end
end
+ describe '#can_admin_cluster?' do
+ let(:user) { create(:user) }
+
+ subject { described_class.new(clusterable).can_admin_cluster? }
+
+ before do
+ clusterable.add_maintainer(user)
+
+ allow(clusterable).to receive(:current_user).and_return(user)
+ end
+
+ context 'when clusterable is a group' do
+ let(:clusterable) { create(:group) }
+
+ it_behaves_like 'appropriate member permissions'
+ end
+
+ context 'when clusterable is a project' do
+ let(:clusterable) { create(:project, :repository) }
+
+ it_behaves_like 'appropriate member permissions'
+ end
+ end
+
describe '#environments_cluster_path' do
subject { described_class.new(clusterable).environments_cluster_path(cluster) }