From 8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 17 Dec 2020 11:59:07 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-7-stable-ee --- .../group_projects_finder_shared_contexts.rb | 14 +++---- .../merge_requests_finder_shared_contexts.rb | 6 +-- .../issuable/merge_request_shared_context.rb | 44 ++++++++++++++-------- ...with_a_mocked_gitlab_instance_shared_context.rb | 2 +- .../shared_contexts/navbar_structure_context.rb | 26 +++++++++++-- .../policies/group_policy_shared_context.rb | 1 + .../shared_contexts/services_shared_context.rb | 5 ++- 7 files changed, 66 insertions(+), 32 deletions(-) (limited to 'spec/support/shared_contexts') diff --git a/spec/support/shared_contexts/finders/group_projects_finder_shared_contexts.rb b/spec/support/shared_contexts/finders/group_projects_finder_shared_contexts.rb index 68ff16922d8..6b15eadc1c1 100644 --- a/spec/support/shared_contexts/finders/group_projects_finder_shared_contexts.rb +++ b/spec/support/shared_contexts/finders/group_projects_finder_shared_contexts.rb @@ -9,13 +9,13 @@ RSpec.shared_context 'GroupProjectsFinder context' do let(:finder) { described_class.new(group: group, current_user: current_user, params: params, options: options) } - let_it_be(:public_project) { create(:project, :public, group: group, path: '1') } - let_it_be(:private_project) { create(:project, :private, group: group, path: '2') } - let_it_be(:shared_project_1) { create(:project, :public, path: '3') } - let_it_be(:shared_project_2) { create(:project, :private, path: '4') } - let_it_be(:shared_project_3) { create(:project, :internal, path: '5') } - let_it_be(:subgroup_project) { create(:project, :public, path: '6', group: subgroup) } - let_it_be(:subgroup_private_project) { create(:project, :private, path: '7', group: subgroup) } + let_it_be(:public_project) { create(:project, :public, group: group, path: '1', name: 'g') } + let_it_be(:private_project) { create(:project, :private, group: group, path: '2', name: 'f') } + let_it_be(:shared_project_1) { create(:project, :public, path: '3', name: 'e') } + let_it_be(:shared_project_2) { create(:project, :private, path: '4', name: 'd') } + let_it_be(:shared_project_3) { create(:project, :internal, path: '5', name: 'c') } + let_it_be(:subgroup_project) { create(:project, :public, path: '6', group: subgroup, name: 'b') } + let_it_be(:subgroup_private_project) { create(:project, :private, path: '7', group: subgroup, name: 'a') } before do shared_project_1.project_group_links.create!(group_access: Gitlab::Access::MAINTAINER, group: group) diff --git a/spec/support/shared_contexts/finders/merge_requests_finder_shared_contexts.rb b/spec/support/shared_contexts/finders/merge_requests_finder_shared_contexts.rb index 88c31bf9cfd..4c003dff947 100644 --- a/spec/support/shared_contexts/finders/merge_requests_finder_shared_contexts.rb +++ b/spec/support/shared_contexts/finders/merge_requests_finder_shared_contexts.rb @@ -54,19 +54,19 @@ RSpec.shared_context 'MergeRequestsFinder multiple projects with merge requests let!(:label2) { create(:label, project: project1) } let!(:merge_request1) do - create(:merge_request, assignees: [user], author: user, + create(:merge_request, assignees: [user], author: user, reviewers: [user2], source_project: project2, target_project: project1, target_branch: 'merged-target') end let!(:merge_request2) do - create(:merge_request, :conflict, assignees: [user], author: user, + create(:merge_request, :conflict, assignees: [user], author: user, reviewers: [user2], source_project: project2, target_project: project1, state: 'closed') end let!(:merge_request3) do - create(:merge_request, :simple, author: user, assignees: [user2], + create(:merge_request, :simple, author: user, assignees: [user2], reviewers: [user], source_project: project2, target_project: project2, state: 'locked', title: 'thing WIP thing') diff --git a/spec/support/shared_contexts/issuable/merge_request_shared_context.rb b/spec/support/shared_contexts/issuable/merge_request_shared_context.rb index 79fc42e73c7..0fee170a35d 100644 --- a/spec/support/shared_contexts/issuable/merge_request_shared_context.rb +++ b/spec/support/shared_contexts/issuable/merge_request_shared_context.rb @@ -1,8 +1,35 @@ # frozen_string_literal: true -RSpec.shared_context 'merge request show action' do +RSpec.shared_context 'open merge request show action' do + include Spec::Support::Helpers::Features::MergeRequestHelpers + + let(:user) { create(:user) } + let(:project) { create(:project, :public, :repository) } + let(:note) { create(:note_on_merge_request, project: project, noteable: open_merge_request) } + + let(:open_merge_request) do + create(:merge_request, :opened, source_project: project, author: user) + end + + before do + assign(:project, project) + assign(:merge_request, open_merge_request) + assign(:note, note) + assign(:noteable, open_merge_request) + assign(:notes, []) + assign(:pipelines, Ci::Pipeline.none) + assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, open_merge_request)) + + preload_view_requirements(open_merge_request, note) + + sign_in(user) + end +end + +RSpec.shared_context 'closed merge request show action' do include Devise::Test::ControllerHelpers include ProjectForksHelper + include Spec::Support::Helpers::Features::MergeRequestHelpers let(:user) { create(:user) } let(:project) { create(:project, :public, :repository) } @@ -17,13 +44,6 @@ RSpec.shared_context 'merge request show action' do author: user) end - def preload_view_requirements - # This will load the status fields of the author of the note and merge request - # to avoid queries in when rendering the view being tested. - closed_merge_request.author.status - note.author.status - end - before do assign(:project, project) assign(:merge_request, closed_merge_request) @@ -34,16 +54,10 @@ RSpec.shared_context 'merge request show action' do assign(:pipelines, Ci::Pipeline.none) assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request)) - preload_view_requirements + preload_view_requirements(closed_merge_request, note) allow(view).to receive_messages(current_user: user, can?: true, current_application_settings: Gitlab::CurrentSettings.current_application_settings) end - - def serialize_issuable_sidebar(user, project, merge_request) - MergeRequestSerializer - .new(current_user: user, project: project) - .represent(closed_merge_request, serializer: 'sidebar') - end end diff --git a/spec/support/shared_contexts/lib/gitlab/middleware/with_a_mocked_gitlab_instance_shared_context.rb b/spec/support/shared_contexts/lib/gitlab/middleware/with_a_mocked_gitlab_instance_shared_context.rb index 3830b89f1ff..5d65c168d8d 100644 --- a/spec/support/shared_contexts/lib/gitlab/middleware/with_a_mocked_gitlab_instance_shared_context.rb +++ b/spec/support/shared_contexts/lib/gitlab/middleware/with_a_mocked_gitlab_instance_shared_context.rb @@ -25,7 +25,7 @@ RSpec.shared_context 'with a mocked GitLab instance' do let(:request) { Rack::MockRequest.new(rack_stack) } subject do - described_class.new(fake_app).tap do |app| + Gitlab::Middleware::ReadOnly.new(fake_app).tap do |app| app.extend(observe_env) end end diff --git a/spec/support/shared_contexts/navbar_structure_context.rb b/spec/support/shared_contexts/navbar_structure_context.rb index ed74c3f179f..549dc1cff1d 100644 --- a/spec/support/shared_contexts/navbar_structure_context.rb +++ b/spec/support/shared_contexts/navbar_structure_context.rb @@ -14,6 +14,15 @@ RSpec.shared_context 'project navbar structure' do } end + let(:security_and_compliance_nav_item) do + { + nav_item: _('Security & Compliance'), + nav_sub_items: [ + _('Audit Events') + ] + } + end + let(:structure) do [ { @@ -62,6 +71,7 @@ RSpec.shared_context 'project navbar structure' do _('Schedules') ] }, + (security_and_compliance_nav_item if Gitlab.ee?), { nav_item: _('Operations'), nav_sub_items: [ @@ -101,8 +111,7 @@ RSpec.shared_context 'project navbar structure' do _('Access Tokens'), _('Repository'), _('CI / CD'), - _('Operations'), - (_('Audit Events') if Gitlab.ee?) + _('Operations') ].compact } ].compact @@ -128,8 +137,7 @@ RSpec.shared_context 'group navbar structure' do _('Projects'), _('Repository'), _('CI / CD'), - _('Webhooks'), - _('Audit Events') + _('Webhooks') ] } end @@ -143,6 +151,15 @@ RSpec.shared_context 'group navbar structure' do } end + let(:security_and_compliance_nav_item) do + { + nav_item: _('Security & Compliance'), + nav_sub_items: [ + _('Audit Events') + ] + } + end + let(:push_rules_nav_item) do { nav_item: _('Push Rules'), @@ -172,6 +189,7 @@ RSpec.shared_context 'group navbar structure' do nav_item: _('Merge Requests'), nav_sub_items: [] }, + (security_and_compliance_nav_item if Gitlab.ee?), (push_rules_nav_item if Gitlab.ee?), { nav_item: _('Kubernetes'), diff --git a/spec/support/shared_contexts/policies/group_policy_shared_context.rb b/spec/support/shared_contexts/policies/group_policy_shared_context.rb index af46e5474b0..e0e2a18cdd2 100644 --- a/spec/support/shared_contexts/policies/group_policy_shared_context.rb +++ b/spec/support/shared_contexts/policies/group_policy_shared_context.rb @@ -30,6 +30,7 @@ RSpec.shared_context 'GroupPolicy context' do let(:owner_permissions) do [ + :owner_access, :admin_group, :admin_namespace, :admin_group_member, diff --git a/spec/support/shared_contexts/services_shared_context.rb b/spec/support/shared_contexts/services_shared_context.rb index 2bd516a2339..320f7564cf9 100644 --- a/spec/support/shared_contexts/services_shared_context.rb +++ b/spec/support/shared_contexts/services_shared_context.rb @@ -16,6 +16,8 @@ Service.available_services_names.each do |service| hash.merge!(k => 'secrettoken') elsif service == 'confluence' && k == :confluence_url hash.merge!(k => 'https://example.atlassian.net/wiki') + elsif service == 'datadog' && k == :datadog_site + hash.merge!(k => 'datadoghq.com') elsif k =~ /^(.*_url|url|webhook)/ hash.merge!(k => "http://example.com") elsif service_klass.method_defined?("#{k}?") @@ -34,8 +36,7 @@ Service.available_services_names.each do |service| let(:licensed_features) do { - 'github' => :github_project_service_integration, - 'jenkins' => :jenkins_integration + 'github' => :github_project_service_integration } end -- cgit v1.2.3