summaryrefslogtreecommitdiff
path: root/spec/views
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-06-16 18:25:58 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-06-16 18:25:58 +0000
commita5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 (patch)
treefb69158581673816a8cd895f9d352dcb3c678b1e /spec/views
parentd16b2e8639e99961de6ddc93909f3bb5c1445ba1 (diff)
downloadgitlab-ce-a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4.tar.gz
Add latest changes from gitlab-org/gitlab@14-0-stable-eev14.0.0-rc42
Diffstat (limited to 'spec/views')
-rw-r--r--spec/views/admin/users/_user.html.haml_spec.rb51
-rw-r--r--spec/views/devise/shared/_signup_box.html.haml_spec.rb2
-rw-r--r--spec/views/layouts/header/_new_dropdown.haml_spec.rb12
-rw-r--r--spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb12
-rw-r--r--spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb45
-rw-r--r--spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb12
-rw-r--r--spec/views/projects/empty.html.haml_spec.rb47
-rw-r--r--spec/views/projects/services/_form.haml_spec.rb17
-rw-r--r--spec/views/projects/services/edit.html.haml_spec.rb6
-rw-r--r--spec/views/projects/settings/operations/show.html.haml_spec.rb40
-rw-r--r--spec/views/shared/nav/_sidebar.html.haml_spec.rb2
11 files changed, 87 insertions, 159 deletions
diff --git a/spec/views/admin/users/_user.html.haml_spec.rb b/spec/views/admin/users/_user.html.haml_spec.rb
deleted file mode 100644
index aed05e4ea9b..00000000000
--- a/spec/views/admin/users/_user.html.haml_spec.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'admin/users/_user.html.haml' do
- before do
- allow(view).to receive(:user).and_return(user)
- end
-
- context 'internal users' do
- context 'when showing a `Ghost User`' do
- let(:user) { create(:user, :ghost) }
-
- it 'does not render action buttons' do
- render
-
- expect(rendered).not_to have_selector('.table-action-buttons')
- end
- end
-
- context 'when showing a `Bot User`' do
- let(:user) { create(:user, user_type: :alert_bot) }
-
- it 'does not render action buttons' do
- render
-
- expect(rendered).not_to have_selector('.table-action-buttons')
- end
- end
-
- context 'when showing a `Migration User`' do
- let(:user) { create(:user, user_type: :migration_bot) }
-
- it 'does not render action buttons' do
- render
-
- expect(rendered).not_to have_selector('.table-action-buttons')
- end
- end
- end
-
- context 'when showing an external user' do
- let(:user) { create(:user) }
-
- it 'renders action buttons' do
- render
-
- expect(rendered).to have_selector('.table-action-buttons')
- end
- end
-end
diff --git a/spec/views/devise/shared/_signup_box.html.haml_spec.rb b/spec/views/devise/shared/_signup_box.html.haml_spec.rb
index b73e32fa765..6efb2730964 100644
--- a/spec/views/devise/shared/_signup_box.html.haml_spec.rb
+++ b/spec/views/devise/shared/_signup_box.html.haml_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe 'devise/shared/_signup_box' do
allow(view).to receive(:url).and_return('_url_')
allow(view).to receive(:terms_path).and_return('_terms_path_')
allow(view).to receive(:button_text).and_return('_button_text_')
- allow(view).to receive(:suggestion_path).and_return('_suggestion_path_')
+ allow(view).to receive(:signup_username_data_attributes).and_return({})
stub_template 'devise/shared/_error_messages.html.haml' => ''
end
diff --git a/spec/views/layouts/header/_new_dropdown.haml_spec.rb b/spec/views/layouts/header/_new_dropdown.haml_spec.rb
index bf81ab577f7..319e7b55fc3 100644
--- a/spec/views/layouts/header/_new_dropdown.haml_spec.rb
+++ b/spec/views/layouts/header/_new_dropdown.haml_spec.rb
@@ -52,7 +52,6 @@ RSpec.describe 'layouts/header/_new_dropdown' do
end
it 'has a "New project" link' do
- render('layouts/header/new_repo_experiment')
render
expect(rendered).to have_link('New project', href: new_project_path(namespace_id: group.id))
@@ -164,7 +163,6 @@ RSpec.describe 'layouts/header/_new_dropdown' do
end
it 'has a "New project" link' do
- render('layouts/header/new_repo_experiment')
render
expect(rendered).to have_link('New project', href: new_project_path)
@@ -182,13 +180,13 @@ RSpec.describe 'layouts/header/_new_dropdown' do
expect(rendered).to have_link('New snippet', href: new_snippet_path)
end
- context 'when the user is not allowed to create snippets' do
+ context 'when the user is not allowed to do anything' do
let(:user) { create(:user, :external) }
- it 'has no "New snippet" link' do
- render
-
- expect(rendered).not_to have_link('New snippet', href: new_snippet_path)
+ it 'is nil' do
+ # We have to us `view.render` because `render` causes issues
+ # https://github.com/rails/rails/issues/41320
+ expect(view.render("layouts/header/new_dropdown")).to be_nil
end
end
end
diff --git a/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb
index d96052d4c03..50390964e1b 100644
--- a/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb
@@ -12,11 +12,19 @@ RSpec.describe 'layouts/nav/sidebar/_group' do
it_behaves_like 'has nav sidebar'
it_behaves_like 'sidebar includes snowplow attributes', 'render', 'groups_side_navigation', 'groups_side_navigation'
- describe 'Group information' do
+ describe 'Group context menu' do
it 'has a link to the group path' do
render
- expect(rendered).to have_link('Group information', href: group_path(group))
+ expect(rendered).to have_link(group.name, href: group_path(group))
+ end
+ end
+
+ describe 'Group information' do
+ it 'has a link to the group activity path' do
+ render
+
+ expect(rendered).to have_link('Group information', href: activity_group_path(group))
end
it 'does not have a link to the details menu item' do
diff --git a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
index 7cb49f635af..c775574091e 100644
--- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
@@ -19,21 +19,32 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
it_behaves_like 'has nav sidebar'
- describe 'Project information' do
+ describe 'Project context' do
it 'has a link to the project path' do
render
- expect(rendered).to have_link('Project information', href: project_path(project), class: %w(shortcuts-project rspec-project-link))
+ expect(rendered).to have_link(project.name, href: project_path(project), class: %w(shortcuts-project rspec-project-link))
+ expect(rendered).to have_selector("[aria-label=\"#{project.name}\"]")
+ end
+ end
+
+ describe 'Project information' do
+ it 'has a link to the project activity path' do
+ render
+
+ expect(rendered).to have_link('Project information', href: activity_project_path(project), class: %w(shortcuts-project-information))
expect(rendered).to have_selector('[aria-label="Project information"]')
end
context 'when feature flag :sidebar_refactor is disabled' do
- it 'has a link to the project path' do
+ before do
stub_feature_flags(sidebar_refactor: false)
+ end
+ it 'has a link to the project path' do
render
- expect(rendered).to have_link('Project overview', href: project_path(project), class: %w(shortcuts-project rspec-project-link))
+ expect(rendered).to have_link('Project overview', href: project_path(project), class: %w(shortcuts-project))
expect(rendered).to have_selector('[aria-label="Project overview"]')
end
end
@@ -89,7 +100,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
it 'has a link to the labels path' do
render
- expect(page.at_css('.shortcuts-project').parent.css('[aria-label="Labels"]')).not_to be_empty
+ expect(page.at_css('.shortcuts-project-information').parent.css('[aria-label="Labels"]')).not_to be_empty
expect(rendered).to have_link('Labels', href: project_labels_path(project))
end
@@ -110,7 +121,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
it 'has a link to the members page' do
render
- expect(page.at_css('.shortcuts-project').parent.css('[aria-label="Members"]')).not_to be_empty
+ expect(page.at_css('.shortcuts-project-information').parent.css('[aria-label="Members"]')).not_to be_empty
expect(rendered).to have_link('Members', href: project_project_members_path(project))
end
@@ -277,7 +288,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
let(:external_issue_tracker_url) { 'http://test.com' }
let!(:external_issue_tracker) do
- create(:custom_issue_tracker_service, active: external_issue_tracker_active, project: project, project_url: external_issue_tracker_url)
+ create(:custom_issue_tracker_integration, active: external_issue_tracker_active, project: project, project_url: external_issue_tracker_url)
end
context 'when external issue tracker is configured and active' do
@@ -994,7 +1005,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
describe 'Confluence' do
- let!(:service) { create(:confluence_service, project: project, active: active) }
+ let!(:service) { create(:confluence_integration, project: project, active: active) }
before do
render
@@ -1327,4 +1338,22 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
it_behaves_like 'sidebar includes snowplow attributes', 'render', 'projects_side_navigation', 'projects_side_navigation'
+
+ describe 'Collapsed menu items' do
+ it 'does not render the collapsed top menu as a link' do
+ render
+
+ expect(rendered).not_to have_selector('.sidebar-sub-level-items > li.fly-out-top-item > a')
+ end
+
+ context 'when feature flag :sidebar_refactor is disabled' do
+ it 'renders the collapsed top menu as a link' do
+ stub_feature_flags(sidebar_refactor: false)
+
+ render
+
+ expect(rendered).to have_selector('.sidebar-sub-level-items > li.fly-out-top-item > a')
+ end
+ end
+ end
end
diff --git a/spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb b/spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb
index bf5cb6fb25d..5120998ded6 100644
--- a/spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb
+++ b/spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb
@@ -23,16 +23,4 @@ RSpec.describe 'clusters/clusters/gcp/_form' do
expect(rendered).to have_selector("input[id='cluster_provider_gcp_attributes_cloud_run']")
end
end
-
- context 'with cloud run feature flag disabled' do
- before do
- stub_feature_flags(create_cloud_run_clusters: false)
- end
-
- it 'does not have a cloud run checkbox' do
- render
-
- expect(rendered).not_to have_selector("input[id='cluster_provider_gcp_attributes_cloud_run']")
- end
- end
end
diff --git a/spec/views/projects/empty.html.haml_spec.rb b/spec/views/projects/empty.html.haml_spec.rb
index dd7b1bd94a9..7fa95507f75 100644
--- a/spec/views/projects/empty.html.haml_spec.rb
+++ b/spec/views/projects/empty.html.haml_spec.rb
@@ -46,47 +46,36 @@ RSpec.describe 'projects/empty' do
end
end
- describe 'invite_members_empty_project_version_a experiment' do
+ context 'with invite button on empty projects' do
let(:can_import_members) { true }
before do
allow(view).to receive(:can_import_members?).and_return(can_import_members)
end
- shared_examples_for 'no invite member info' do
- it 'does not show invite member info' do
- render
+ it 'shows invite members info', :aggregate_failures do
+ render
- expect(rendered).not_to have_content('Invite your team')
- end
+ expect(rendered).to have_selector('[data-track-event=render]')
+ expect(rendered).to have_selector('[data-track-label=invite_members_empty_project]')
+ expect(rendered).to have_content('Invite your team')
+ expect(rendered).to have_content('Add members to this project and start collaborating with your team.')
+ expect(rendered).to have_selector('.js-invite-members-trigger')
+ expect(rendered).to have_selector('.js-invite-members-modal')
+ expect(rendered).to have_selector('[data-label=invite_members_empty_project]')
+ expect(rendered).to have_selector('[data-event=click_button]')
end
- context 'when experiment is enabled' do
- it 'shows invite members info', :aggregate_failures do
- render
-
- expect(rendered).to have_selector('[data-track-event=render]')
- expect(rendered).to have_selector('[data-track-label=invite_members_empty_project]', count: 2)
- expect(rendered).to have_content('Invite your team')
- expect(rendered).to have_content('Add members to this project and start collaborating with your team.')
- expect(rendered).to have_link('Invite members', href: project_project_members_path(project, sort: :access_level_desc))
- expect(rendered).to have_selector('[data-track-event=click_button]')
- end
+ context 'when user does not have permissions to invite members' do
+ let(:can_import_members) { false }
- context 'when user does not have permissions to invite members' do
- let(:can_import_members) { false }
-
- it_behaves_like 'no invite member info'
- end
- end
+ it 'does not show invite member info', :aggregate_failures do
+ render
- context 'when experiment is not enabled' do
- before do
- allow(view).to receive(:experiment_enabled?)
- .with(:invite_members_empty_project_version_a).and_return(false)
+ expect(rendered).not_to have_content('Invite your team')
+ expect(rendered).not_to have_selector('.js-invite-members-trigger')
+ expect(rendered).not_to have_selector('.js-invite-members-modal')
end
-
- it_behaves_like 'no invite member info'
end
end
end
diff --git a/spec/views/projects/services/_form.haml_spec.rb b/spec/views/projects/services/_form.haml_spec.rb
index 4ca64eb3129..f063e73dae4 100644
--- a/spec/views/projects/services/_form.haml_spec.rb
+++ b/spec/views/projects/services/_form.haml_spec.rb
@@ -11,19 +11,18 @@ RSpec.describe 'projects/services/_form' do
allow(controller).to receive(:current_user).and_return(user)
- allow(view).to receive_messages(current_user: user,
- can?: true,
- current_application_settings: Gitlab::CurrentSettings.current_application_settings,
- request: double(referrer: '/services'))
+ allow(view).to receive_messages(
+ current_user: user,
+ can?: true,
+ current_application_settings: Gitlab::CurrentSettings.current_application_settings,
+ integration: project.redmine_service,
+ request: double(referer: '/services')
+ )
end
context 'commit_events and merge_request_events' do
- before do
- assign(:service, project.redmine_service)
- end
-
it 'display merge_request_events and commit_events descriptions' do
- allow(RedmineService).to receive(:supported_events).and_return(%w(commit merge_request))
+ allow(Integrations::Redmine).to receive(:supported_events).and_return(%w(commit merge_request))
render
diff --git a/spec/views/projects/services/edit.html.haml_spec.rb b/spec/views/projects/services/edit.html.haml_spec.rb
index 785af6a5344..a5460adbd2c 100644
--- a/spec/views/projects/services/edit.html.haml_spec.rb
+++ b/spec/views/projects/services/edit.html.haml_spec.rb
@@ -3,12 +3,12 @@
require 'spec_helper'
RSpec.describe 'projects/services/edit' do
- let(:service) { create(:drone_ci_service, project: project) }
+ let(:integration) { create(:drone_ci_integration, project: project) }
let(:project) { create(:project) }
before do
assign :project, project
- assign :service, service
+ assign :integration, integration
end
it do
@@ -17,7 +17,7 @@ RSpec.describe 'projects/services/edit' do
expect(rendered).not_to have_text('Recent Deliveries')
end
- context 'service using WebHooks' do
+ context 'integration using WebHooks' do
before do
assign(:web_hook_logs, [])
end
diff --git a/spec/views/projects/settings/operations/show.html.haml_spec.rb b/spec/views/projects/settings/operations/show.html.haml_spec.rb
index ab868eb78b8..43c064e1a2b 100644
--- a/spec/views/projects/settings/operations/show.html.haml_spec.rb
+++ b/spec/views/projects/settings/operations/show.html.haml_spec.rb
@@ -36,7 +36,7 @@ RSpec.describe 'projects/settings/operations/show' do
it 'renders the Operations Settings page' do
render
- expect(rendered).to have_content _('Alert integrations')
+ expect(rendered).to have_content _('Alerts')
expect(rendered).to have_content _('Display alerts from all configured monitoring tools.')
end
end
@@ -59,7 +59,7 @@ RSpec.describe 'projects/settings/operations/show' do
expect(rendered).to have_content _('Prometheus')
expect(rendered).to have_content _('Link Prometheus monitoring to GitLab.')
- expect(rendered).to have_content _('To enable the installation of Prometheus on your clusters, deactivate the manual configuration.')
+ expect(rendered).to have_content _('To use a Prometheus installed on a cluster, deactivate the manual configuration.')
end
end
@@ -77,41 +77,11 @@ RSpec.describe 'projects/settings/operations/show' do
end
describe 'Operations > Tracing' do
- context 'with project.tracing_external_url' do
- it 'links to project.tracing_external_url' do
- render
-
- expect(rendered).to have_link('Tracing', href: tracing_setting.external_url)
- end
-
- context 'with malicious external_url' do
- let(:malicious_tracing_url) { "https://replaceme.com/'><script>alert(document.cookie)</script>" }
- let(:cleaned_url) { "https://replaceme.com/'>" }
-
- before do
- tracing_setting.update_column(:external_url, malicious_tracing_url)
- end
-
- it 'sanitizes external_url' do
- render
-
- expect(tracing_setting.external_url).to eq(malicious_tracing_url)
- expect(rendered).to have_link('Tracing', href: cleaned_url)
- end
- end
- end
-
- context 'without project.tracing_external_url' do
- let(:tracing_setting) { build(:project_tracing_setting, project: project) }
-
- before do
- tracing_setting.external_url = nil
- end
-
- it 'links to Tracing page' do
+ context 'Settings page ' do
+ it 'renders the Tracing Settings page' do
render
- expect(rendered).to have_link('Tracing', href: project_tracing_path(project))
+ expect(rendered).to have_content _('Embed an image of your existing Jaeger server in GitLab.')
end
end
end
diff --git a/spec/views/shared/nav/_sidebar.html.haml_spec.rb b/spec/views/shared/nav/_sidebar.html.haml_spec.rb
index cf9452ba68c..2eeebdff7a8 100644
--- a/spec/views/shared/nav/_sidebar.html.haml_spec.rb
+++ b/spec/views/shared/nav/_sidebar.html.haml_spec.rb
@@ -25,13 +25,11 @@ RSpec.describe 'shared/nav/_sidebar.html.haml' do
context 'when sidebar does not have a scope menu' do
let(:scope_menu_view_path) { 'shared/nav/' }
let(:scope_menu_view_name) { 'scope_menu.html.haml' }
- let(:scope_menu_view) { "#{scope_menu_view_path}#{scope_menu_view_name}" }
let(:scope_menu_partial) { "#{scope_menu_view_path}_#{scope_menu_view_name}" }
let(:content) { 'Custom test content' }
context 'when sidebar has a custom scope menu partial defined' do
it 'renders the custom partial' do
- allow(sidebar).to receive(:render_raw_scope_menu_partial).and_return(scope_menu_view)
allow(view).to receive(:scope_menu).and_return(nil)
stub_template(scope_menu_partial => content)