Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-14 18:09:05 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-14 18:09:05 +0300
commit66bd1f0fdcaf84fa3412c70d7962b49eb8a48fde (patch)
tree23f451b4e60a6e28bcc15043d7756bb27dcc2970 /spec/presenters/clusters
parent49089d4fb1f5c17328ac61c955d95a68c6d4d545 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/presenters/clusters')
-rw-r--r--spec/presenters/clusters/cluster_presenter_spec.rb70
1 files changed, 70 insertions, 0 deletions
diff --git a/spec/presenters/clusters/cluster_presenter_spec.rb b/spec/presenters/clusters/cluster_presenter_spec.rb
index d998660a3f9..541e96f5f07 100644
--- a/spec/presenters/clusters/cluster_presenter_spec.rb
+++ b/spec/presenters/clusters/cluster_presenter_spec.rb
@@ -289,4 +289,74 @@ RSpec.describe Clusters::ClusterPresenter do
it_behaves_like 'cluster health data'
end
end
+
+ describe '#gitlab_managed_apps_logs_path' do
+ context 'user can read logs' do
+ let(:project) { cluster.project }
+
+ before do
+ project.add_maintainer(user)
+ end
+
+ it 'returns path to logs' do
+ expect(presenter.gitlab_managed_apps_logs_path).to eq project_logs_path(project, cluster_id: cluster.id)
+ end
+ end
+
+ context 'group cluster' do
+ let(:cluster) { create(:cluster, cluster_type: :group_type, groups: [group]) }
+ let(:group) { create(:group, name: 'Foo') }
+
+ context 'user can read logs' do
+ before do
+ group.add_maintainer(user)
+ end
+
+ context 'there are projects within group' do
+ let!(:project) { create(:project, namespace: group) }
+
+ it 'returns path to logs' do
+ expect(presenter.gitlab_managed_apps_logs_path).to eq project_logs_path(project, cluster_id: cluster.id)
+ end
+ end
+
+ context 'there are no projects within group' do
+ it 'returns nil' do
+ expect(presenter.gitlab_managed_apps_logs_path).to be_nil
+ end
+ end
+ end
+ end
+
+ context 'instance cluster' do
+ let(:cluster) { create(:cluster, cluster_type: :instance_type) }
+ let!(:project) { create(:project) }
+ let(:user) { create(:admin) }
+
+ before do
+ project.add_maintainer(user)
+ stub_feature_flags(user_mode_in_session: false)
+ end
+
+ context 'user can read logs' do
+ it 'returns path to logs' do
+ expect(presenter.gitlab_managed_apps_logs_path).to eq project_logs_path(project, cluster_id: cluster.id)
+ end
+ end
+ end
+
+ context 'user can NOT read logs' do
+ let(:cluster) { create(:cluster, cluster_type: :instance_type) }
+ let!(:project) { create(:project) }
+
+ before do
+ project.add_developer(user)
+ stub_feature_flags(user_mode_in_session: false)
+ end
+
+ it 'returns nil' do
+ expect(presenter.gitlab_managed_apps_logs_path).to be_nil
+ end
+ end
+ end
end