diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-14 18:09:05 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-07-14 18:09:05 +0300 |
commit | 66bd1f0fdcaf84fa3412c70d7962b49eb8a48fde (patch) | |
tree | 23f451b4e60a6e28bcc15043d7756bb27dcc2970 /spec/presenters/clusters | |
parent | 49089d4fb1f5c17328ac61c955d95a68c6d4d545 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/presenters/clusters')
-rw-r--r-- | spec/presenters/clusters/cluster_presenter_spec.rb | 70 |
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 |