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-06-18 14:18:50 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-06-18 14:18:50 +0300
commit8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch)
treea77e7fe7a93de11213032ed4ab1f33a3db51b738 /spec/features/projects/issues
parent00b35af3db1abfe813a778f643dad221aad51fca (diff)
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'spec/features/projects/issues')
-rw-r--r--spec/features/projects/issues/design_management/user_links_to_designs_in_issue_spec.rb123
-rw-r--r--spec/features/projects/issues/design_management/user_paginates_designs_spec.rb2
-rw-r--r--spec/features/projects/issues/design_management/user_permissions_upload_spec.rb2
-rw-r--r--spec/features/projects/issues/design_management/user_uploads_designs_spec.rb2
-rw-r--r--spec/features/projects/issues/design_management/user_views_design_images_spec.rb2
-rw-r--r--spec/features/projects/issues/design_management/user_views_design_spec.rb2
-rw-r--r--spec/features/projects/issues/design_management/user_views_designs_spec.rb2
-rw-r--r--spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb2
-rw-r--r--spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb2
9 files changed, 131 insertions, 8 deletions
diff --git a/spec/features/projects/issues/design_management/user_links_to_designs_in_issue_spec.rb b/spec/features/projects/issues/design_management/user_links_to_designs_in_issue_spec.rb
new file mode 100644
index 00000000000..8d5e99d7e2b
--- /dev/null
+++ b/spec/features/projects/issues/design_management/user_links_to_designs_in_issue_spec.rb
@@ -0,0 +1,123 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'viewing issues with design references' do
+ include DesignManagementTestHelpers
+
+ let_it_be(:public_project) { create(:project_empty_repo, :public) }
+ let_it_be(:private_project) { create(:project_empty_repo) }
+
+ let(:user) { create(:user) }
+ let(:design_issue) { create(:issue, project: project) }
+ let(:design_a) { create(:design, :with_file, issue: design_issue) }
+ let(:design_b) { create(:design, :with_file, issue: design_issue) }
+ let(:issue_ref) { design_issue.to_reference(public_project) }
+ let(:design_ref_a) { design_a.to_reference(public_project) }
+ let(:design_ref_b) { design_b.to_reference(public_project) }
+ let(:design_tab_ref) { "#{issue_ref} (designs)" }
+
+ let(:description) do
+ <<~MD
+ The designs I mentioned:
+
+ * #{url_for_designs(design_issue)}
+ * #{url_for_design(design_a)}
+ * #{url_for_design(design_b)}
+ MD
+ end
+
+ def visit_page_with_design_references
+ public_issue = create(:issue, project: public_project, description: description)
+ visit project_issue_path(public_issue.project, public_issue)
+ end
+
+ shared_examples 'successful use of design link references' do
+ before do
+ enable_design_management
+ end
+
+ it 'shows the issue description and design references', :aggregate_failures do
+ visit_page_with_design_references
+
+ expect(page).to have_text('The designs I mentioned')
+ expect(page).to have_link(design_tab_ref)
+ expect(page).to have_link(design_ref_a)
+ expect(page).to have_link(design_ref_b)
+ end
+ end
+
+ context 'the user has access to a public project' do
+ let(:project) { public_project }
+
+ it_behaves_like 'successful use of design link references'
+ end
+
+ context 'the user does not have access to a private project' do
+ let(:project) { private_project }
+
+ it 'redacts inaccessible design references', :aggregate_failures do
+ visit_page_with_design_references
+
+ expect(page).to have_text('The designs I mentioned')
+ expect(page).not_to have_link(issue_ref)
+ expect(page).not_to have_link(design_tab_ref)
+ expect(page).not_to have_link(design_ref_a)
+ expect(page).not_to have_link(design_ref_b)
+ end
+ end
+
+ context 'the user has access to a private project' do
+ let(:project) { private_project }
+
+ before do
+ project.add_developer(user)
+ sign_in(user)
+ end
+
+ it_behaves_like 'successful use of design link references'
+
+ context 'design management is entirely disabled' do
+ it 'processes design links as issue references', :aggregate_failures do
+ enable_design_management(false)
+
+ visit_page_with_design_references
+
+ expect(page).to have_text('The designs I mentioned')
+ expect(page).to have_link(issue_ref)
+ expect(page).not_to have_link(design_tab_ref)
+ expect(page).not_to have_link(design_ref_a)
+ expect(page).not_to have_link(design_ref_b)
+ end
+ end
+
+ context 'design management is enabled, but the filter is disabled globally' do
+ before do
+ enable_design_management
+ stub_feature_flags(
+ Banzai::Filter::DesignReferenceFilter::FEATURE_FLAG => false
+ )
+ end
+
+ it 'processes design tab links successfully, and design references as issue references', :aggregate_failures do
+ visit_page_with_design_references
+
+ expect(page).to have_text('The designs I mentioned')
+ expect(page).to have_link(design_tab_ref)
+ expect(page).to have_link(issue_ref)
+ expect(page).not_to have_link(design_ref_a)
+ expect(page).not_to have_link(design_ref_b)
+ end
+ end
+
+ context 'design management is enabled, and the filter is enabled for the current project' do
+ before do
+ stub_feature_flags(
+ Banzai::Filter::DesignReferenceFilter::FEATURE_FLAG => public_project
+ )
+ end
+
+ it_behaves_like 'successful use of design link references'
+ end
+ end
+end
diff --git a/spec/features/projects/issues/design_management/user_paginates_designs_spec.rb b/spec/features/projects/issues/design_management/user_paginates_designs_spec.rb
index d9a72f2d5c5..f871ca60596 100644
--- a/spec/features/projects/issues/design_management/user_paginates_designs_spec.rb
+++ b/spec/features/projects/issues/design_management/user_paginates_designs_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'User paginates issue designs', :js do
+RSpec.describe 'User paginates issue designs', :js do
include DesignManagementTestHelpers
let(:project) { create(:project_empty_repo, :public) }
diff --git a/spec/features/projects/issues/design_management/user_permissions_upload_spec.rb b/spec/features/projects/issues/design_management/user_permissions_upload_spec.rb
index 2238e86a47f..902a84afc83 100644
--- a/spec/features/projects/issues/design_management/user_permissions_upload_spec.rb
+++ b/spec/features/projects/issues/design_management/user_permissions_upload_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'User design permissions', :js do
+RSpec.describe 'User design permissions', :js do
include DesignManagementTestHelpers
let(:project) { create(:project_empty_repo, :public) }
diff --git a/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb b/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb
index d160ab95a65..66b449a9de5 100644
--- a/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb
+++ b/spec/features/projects/issues/design_management/user_uploads_designs_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'User uploads new design', :js do
+RSpec.describe 'User uploads new design', :js do
include DesignManagementTestHelpers
let_it_be(:project) { create(:project_empty_repo, :public) }
diff --git a/spec/features/projects/issues/design_management/user_views_design_images_spec.rb b/spec/features/projects/issues/design_management/user_views_design_images_spec.rb
index 3d0f4df55c4..4a4c33cb881 100644
--- a/spec/features/projects/issues/design_management/user_views_design_images_spec.rb
+++ b/spec/features/projects/issues/design_management/user_views_design_images_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'Users views raw design image files' do
+RSpec.describe 'Users views raw design image files' do
include DesignManagementTestHelpers
let_it_be(:project) { create(:project, :public) }
diff --git a/spec/features/projects/issues/design_management/user_views_design_spec.rb b/spec/features/projects/issues/design_management/user_views_design_spec.rb
index 707049b0068..527442d5339 100644
--- a/spec/features/projects/issues/design_management/user_views_design_spec.rb
+++ b/spec/features/projects/issues/design_management/user_views_design_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'User views issue designs', :js do
+RSpec.describe 'User views issue designs', :js do
include DesignManagementTestHelpers
let_it_be(:project) { create(:project_empty_repo, :public) }
diff --git a/spec/features/projects/issues/design_management/user_views_designs_spec.rb b/spec/features/projects/issues/design_management/user_views_designs_spec.rb
index a4fb7456922..d371ae1aad7 100644
--- a/spec/features/projects/issues/design_management/user_views_designs_spec.rb
+++ b/spec/features/projects/issues/design_management/user_views_designs_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'User views issue designs', :js do
+RSpec.describe 'User views issue designs', :js do
include DesignManagementTestHelpers
let_it_be(:project) { create(:project_empty_repo, :public) }
diff --git a/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb b/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb
index a9e4aa899a7..5bc1271309c 100644
--- a/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb
+++ b/spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'User views an SVG design that contains XSS', :js do
+RSpec.describe 'User views an SVG design that contains XSS', :js do
include DesignManagementTestHelpers
let(:project) { create(:project_empty_repo, :public) }
diff --git a/spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb b/spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb
index 6c8f4b51ea0..6feefff9207 100644
--- a/spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb
+++ b/spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe 'viewing an issue with cross project references' do
+RSpec.describe 'viewing an issue with cross project references' do
include ExternalAuthorizationServiceHelpers
include Gitlab::Routing.url_helpers