summaryrefslogtreecommitdiff
path: root/spec/views
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-05-20 14:34:42 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-05-20 14:34:42 +0000
commit9f46488805e86b1bc341ea1620b866016c2ce5ed (patch)
treef9748c7e287041e37d6da49e0a29c9511dc34768 /spec/views
parentdfc92d081ea0332d69c8aca2f0e745cb48ae5e6d (diff)
downloadgitlab-ce-9f46488805e86b1bc341ea1620b866016c2ce5ed.tar.gz
Add latest changes from gitlab-org/gitlab@13-0-stable-ee
Diffstat (limited to 'spec/views')
-rw-r--r--spec/views/admin/sessions/new.html.haml_spec.rb59
-rw-r--r--spec/views/admin/users/_user.html.haml_spec.rb12
-rw-r--r--spec/views/devise/sessions/new.html.haml_spec.rb4
-rw-r--r--spec/views/devise/shared/_signin_box.html.haml_spec.rb2
-rw-r--r--spec/views/help/index.html.haml_spec.rb12
-rw-r--r--spec/views/help/show.html.haml_spec.rb18
-rw-r--r--spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb9
-rw-r--r--spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb62
-rw-r--r--spec/views/profiles/show.html.haml_spec.rb44
-rw-r--r--spec/views/projects/issues/_related_branches.html.haml_spec.rb24
-rw-r--r--spec/views/projects/issues/show.html.haml_spec.rb27
-rw-r--r--spec/views/projects/merge_requests/show.html.haml_spec.rb60
-rw-r--r--spec/views/projects/services/_form.haml_spec.rb17
-rw-r--r--spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb2
14 files changed, 166 insertions, 186 deletions
diff --git a/spec/views/admin/sessions/new.html.haml_spec.rb b/spec/views/admin/sessions/new.html.haml_spec.rb
index 05601e5471e..b52ad0f9505 100644
--- a/spec/views/admin/sessions/new.html.haml_spec.rb
+++ b/spec/views/admin/sessions/new.html.haml_spec.rb
@@ -6,20 +6,26 @@ describe 'admin/sessions/new.html.haml' do
let(:user) { create(:admin) }
before do
+ disable_all_signin_methods
+
allow(view).to receive(:current_user).and_return(user)
- allow(view).to receive(:omniauth_enabled?).and_return(false)
end
context 'internal admin user' do
+ before do
+ allow(view).to receive(:allow_admin_mode_password_authentication_for_web?).and_return(true)
+ end
+
it 'shows enter password form' do
render
+ expect(rendered).to have_selector('[data-qa-selector="sign_in_tab"]')
expect(rendered).to have_css('#login-pane.active')
- expect(rendered).to have_selector('input[name="user[password]"]')
+ expect(rendered).to have_selector('[data-qa-selector="password_field"]')
end
it 'warns authentication not possible if password not set' do
- allow(user).to receive(:require_password_creation_for_web?).and_return(true)
+ allow(view).to receive(:allow_admin_mode_password_authentication_for_web?).and_return(false)
render
@@ -39,8 +45,53 @@ describe 'admin/sessions/new.html.haml' do
expect(rendered).to have_css('.omniauth-container')
expect(rendered).to have_content _('Sign in with')
-
expect(rendered).not_to have_content _('No authentication methods configured.')
end
end
+
+ context 'ldap authentication' do
+ let(:user) { create(:omniauth_user, :admin, extern_uid: 'my-uid', provider: 'ldapmain') }
+ let(:server) { { provider_name: 'ldapmain', label: 'LDAP' }.with_indifferent_access }
+
+ before do
+ enable_ldap
+ end
+
+ it 'is shown when enabled' do
+ render
+
+ expect(rendered).to have_selector('[data-qa-selector="ldap_tab"]')
+ expect(rendered).to have_css('.login-box#ldapmain')
+ expect(rendered).to have_field('LDAP Username')
+ expect(rendered).not_to have_content('No authentication methods configured')
+ end
+
+ it 'is not shown when LDAP sign in is disabled' do
+ disable_ldap_sign_in
+
+ render
+
+ expect(rendered).not_to have_selector('[data-qa-selector="ldap_tab"]')
+ expect(rendered).not_to have_field('LDAP Username')
+ expect(rendered).to have_content('No authentication methods configured')
+ end
+
+ def enable_ldap
+ allow(view).to receive(:ldap_servers).and_return([server])
+ allow(view).to receive(:form_based_providers).and_return([:ldapmain])
+ allow(view).to receive(:omniauth_callback_path).with(:user, 'ldapmain').and_return('/ldapmain')
+ allow(view).to receive(:ldap_sign_in_enabled?).and_return(true)
+ end
+
+ def disable_ldap_sign_in
+ allow(view).to receive(:ldap_sign_in_enabled?).and_return(false)
+ allow(view).to receive(:ldap_servers).and_return([])
+ end
+ end
+
+ def disable_all_signin_methods
+ allow(view).to receive(:password_authentication_enabled_for_web?).and_return(false)
+ allow(view).to receive(:omniauth_enabled?).and_return(false)
+ allow(view).to receive(:ldap_sign_in_enabled?).and_return(false)
+ end
end
diff --git a/spec/views/admin/users/_user.html.haml_spec.rb b/spec/views/admin/users/_user.html.haml_spec.rb
index 96d84229d94..de5a291a6f8 100644
--- a/spec/views/admin/users/_user.html.haml_spec.rb
+++ b/spec/views/admin/users/_user.html.haml_spec.rb
@@ -9,7 +9,7 @@ describe 'admin/users/_user.html.haml' do
context 'internal users' do
context 'when showing a `Ghost User`' do
- let(:user) { create(:user, ghost: true) }
+ let(:user) { create(:user, :ghost) }
it 'does not render action buttons' do
render
@@ -27,6 +27,16 @@ describe 'admin/users/_user.html.haml' do
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
diff --git a/spec/views/devise/sessions/new.html.haml_spec.rb b/spec/views/devise/sessions/new.html.haml_spec.rb
index 66afc2af7ce..27bd683bbf0 100644
--- a/spec/views/devise/sessions/new.html.haml_spec.rb
+++ b/spec/views/devise/sessions/new.html.haml_spec.rb
@@ -54,14 +54,14 @@ describe 'devise/sessions/new' do
def enable_ldap
stub_ldap_setting(enabled: true)
- assign(:ldap_servers, [server])
+ allow(view).to receive(:ldap_servers).and_return([server])
allow(view).to receive(:form_based_providers).and_return([:ldapmain])
allow(view).to receive(:omniauth_callback_path).with(:user, 'ldapmain').and_return('/ldapmain')
end
def disable_ldap_sign_in
allow(view).to receive(:ldap_sign_in_enabled?).and_return(false)
- assign(:ldap_servers, [])
+ allow(view).to receive(:ldap_servers).and_return([])
end
def disable_captcha
diff --git a/spec/views/devise/shared/_signin_box.html.haml_spec.rb b/spec/views/devise/shared/_signin_box.html.haml_spec.rb
index f8867477603..dfd8c315e50 100644
--- a/spec/views/devise/shared/_signin_box.html.haml_spec.rb
+++ b/spec/views/devise/shared/_signin_box.html.haml_spec.rb
@@ -6,7 +6,7 @@ describe 'devise/shared/_signin_box' do
describe 'Crowd form' do
before do
stub_devise
- assign(:ldap_servers, [])
+ allow(view).to receive(:ldap_servers).and_return([])
allow(view).to receive(:current_application_settings).and_return(Gitlab::CurrentSettings.current_application_settings)
allow(view).to receive(:captcha_enabled?).and_return(false)
allow(view).to receive(:captcha_on_login_required?).and_return(false)
diff --git a/spec/views/help/index.html.haml_spec.rb b/spec/views/help/index.html.haml_spec.rb
index 98040da9d2c..3831ddacb72 100644
--- a/spec/views/help/index.html.haml_spec.rb
+++ b/spec/views/help/index.html.haml_spec.rb
@@ -53,6 +53,18 @@ describe 'help/index' do
end
end
+ describe 'Markdown rendering' do
+ before do
+ assign(:help_index, 'Welcome to [GitLab](https://about.gitlab.com/) Documentation.')
+ end
+
+ it 'renders Markdown' do
+ render
+
+ expect(rendered).to have_link('GitLab', href: 'https://about.gitlab.com/')
+ end
+ end
+
def stub_user(user = double)
allow(view).to receive(:user_signed_in?).and_return(user)
end
diff --git a/spec/views/help/show.html.haml_spec.rb b/spec/views/help/show.html.haml_spec.rb
new file mode 100644
index 00000000000..539c647c1d3
--- /dev/null
+++ b/spec/views/help/show.html.haml_spec.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe 'help/show' do
+ describe 'Markdown rendering' do
+ before do
+ assign(:path, 'ssh/README')
+ assign(:markdown, 'Welcome to [GitLab](https://about.gitlab.com/) Documentation.')
+ end
+
+ it 'renders Markdown' do
+ render
+
+ expect(rendered).to have_link('GitLab', href: 'https://about.gitlab.com/')
+ end
+ end
+end
diff --git a/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb
index aee2b0baf92..2f8a75a81c8 100644
--- a/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb
@@ -58,15 +58,6 @@ describe 'layouts/nav/sidebar/_admin' do
it_behaves_like 'page has active sub tab', 'Users'
end
- context 'on logs' do
- before do
- allow(controller).to receive(:controller_name).and_return('logs')
- end
-
- it_behaves_like 'page has active tab', 'Monitoring'
- it_behaves_like 'page has active sub tab', 'Logs'
- end
-
context 'on messages' do
before do
allow(controller).to receive(:controller_name).and_return('broadcast_messages')
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 cd622807c09..3d5c34ae1e0 100644
--- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
@@ -136,27 +136,37 @@ describe 'layouts/nav/sidebar/_project' do
end
describe 'operations settings tab' do
- before do
- project.update!(archived: project_archived)
- end
+ describe 'archive projects' do
+ before do
+ project.update!(archived: project_archived)
+ end
- context 'when project is archived' do
- let(:project_archived) { true }
+ context 'when project is archived' do
+ let(:project_archived) { true }
- it 'does not show the operations settings tab' do
- render
+ it 'does not show the operations settings tab' do
+ render
- expect(rendered).not_to have_link('Operations', href: project_settings_operations_path(project))
+ expect(rendered).not_to have_link('Operations', href: project_settings_operations_path(project))
+ end
end
- end
- context 'when project is active' do
- let(:project_archived) { false }
+ context 'when project is active' do
+ let(:project_archived) { false }
- it 'shows the operations settings tab' do
+ it 'shows the operations settings tab' do
+ render
+
+ expect(rendered).to have_link('Operations', href: project_settings_operations_path(project))
+ end
+ end
+ end
+
+ describe 'Alert Management' do
+ it 'shows the Alerts sidebar entry' do
render
- expect(rendered).to have_link('Operations', href: project_settings_operations_path(project))
+ expect(rendered).to have_css('a[title="Alerts"]')
end
end
end
@@ -186,4 +196,30 @@ describe 'layouts/nav/sidebar/_project' do
end
end
end
+
+ describe 'project access tokens' do
+ context 'self-managed instance' do
+ before do
+ allow(Gitlab).to receive(:com?).and_return(false)
+ end
+
+ it 'displays "Access Tokens" nav item' do
+ render
+
+ expect(rendered).to have_link('Access Tokens', href: project_settings_access_tokens_path(project))
+ end
+ end
+
+ context 'gitlab.com' do
+ before do
+ allow(Gitlab).to receive(:com?).and_return(true)
+ end
+
+ it 'does not display "Access Tokens" nav item' do
+ render
+
+ expect(rendered).not_to have_link('Access Tokens', href: project_settings_access_tokens_path(project))
+ end
+ end
+ end
end
diff --git a/spec/views/profiles/show.html.haml_spec.rb b/spec/views/profiles/show.html.haml_spec.rb
index e1c21f87780..14e6feed3ab 100644
--- a/spec/views/profiles/show.html.haml_spec.rb
+++ b/spec/views/profiles/show.html.haml_spec.rb
@@ -19,48 +19,4 @@ describe 'profiles/show' do
expect(rendered).to have_field('user_id', with: user.id)
end
end
-
- context 'gitlab.com organization field' do
- before do
- allow(Gitlab).to receive(:com?).and_return(true)
- end
-
- context 'when `:gitlab_employee_badge` feature flag is enabled' do
- context 'and when user has an `@gitlab.com` email address' do
- let(:user) { create(:user, email: 'test@gitlab.com') }
-
- it 'displays the organization field as `readonly` with a `value` of `GitLab`' do
- render
-
- expect(rendered).to have_selector('#user_organization[readonly][value="GitLab"]')
- end
- end
-
- context 'and when a user does not have an `@gitlab.com` email' do
- let(:user) { create(:user, email: 'test@example.com') }
-
- it 'displays an editable organization field' do
- render
-
- expect(rendered).to have_selector('#user_organization:not([readonly]):not([value="GitLab"])')
- end
- end
- end
-
- context 'when `:gitlab_employee_badge` feature flag is disabled' do
- before do
- stub_feature_flags(gitlab_employee_badge: false)
- end
-
- context 'and when a user has an `@gitlab.com` email' do
- let(:user) { create(:user, email: 'test@gitlab.com') }
-
- it 'displays an editable organization field' do
- render
-
- expect(rendered).to have_selector('#user_organization:not([readonly]):not([value="GitLab"])')
- end
- end
- end
- end
end
diff --git a/spec/views/projects/issues/_related_branches.html.haml_spec.rb b/spec/views/projects/issues/_related_branches.html.haml_spec.rb
index a6817e3fdbf..6c9bbaea38c 100644
--- a/spec/views/projects/issues/_related_branches.html.haml_spec.rb
+++ b/spec/views/projects/issues/_related_branches.html.haml_spec.rb
@@ -5,23 +5,25 @@ require 'spec_helper'
describe 'projects/issues/_related_branches' do
include Devise::Test::ControllerHelpers
- let(:user) { create(:user) }
- let(:project) { create(:project, :repository) }
- let(:branch) { project.repository.find_branch('feature') }
- let!(:pipeline) { create(:ci_pipeline, project: project, sha: branch.dereferenced_target.id, ref: 'feature') }
+ let(:pipeline) { build(:ci_pipeline, :success) }
+ let(:status) { pipeline.detailed_status(build(:user)) }
before do
- assign(:project, project)
- assign(:related_branches, ['feature'])
-
- project.add_developer(user)
- allow(view).to receive(:current_user).and_return(user)
+ assign(:related_branches, [
+ { name: 'other', link: 'link-to-other', pipeline_status: nil },
+ { name: 'feature', link: 'link-to-feature', pipeline_status: status }
+ ])
render
end
- it 'shows the related branches with their build status' do
- expect(rendered).to match('feature')
+ it 'shows the related branches with their build status', :aggregate_failures do
+ expect(rendered).to have_text('feature')
+ expect(rendered).to have_text('other')
+ expect(rendered).to have_link(href: 'link-to-feature')
+ expect(rendered).to have_link(href: 'link-to-other')
expect(rendered).to have_css('.related-branch-ci-status')
+ expect(rendered).to have_css('.ci-status-icon')
+ expect(rendered).to have_css('.related-branch-info')
end
end
diff --git a/spec/views/projects/issues/show.html.haml_spec.rb b/spec/views/projects/issues/show.html.haml_spec.rb
index fb09840c8f4..60a541916e9 100644
--- a/spec/views/projects/issues/show.html.haml_spec.rb
+++ b/spec/views/projects/issues/show.html.haml_spec.rb
@@ -3,18 +3,7 @@
require 'spec_helper'
describe 'projects/issues/show' do
- let(:project) { create(:project, :repository) }
- let(:issue) { create(:issue, project: project, author: user) }
- let(:user) { create(:user) }
-
- before do
- assign(:project, project)
- assign(:issue, issue)
- assign(:noteable, issue)
- stub_template 'shared/issuable/_sidebar' => ''
- stub_template 'projects/issues/_discussion' => ''
- allow(view).to receive(:user_status).and_return('')
- end
+ include_context 'project show action'
context 'when the issue is closed' do
before do
@@ -152,18 +141,4 @@ describe 'projects/issues/show' do
expect(rendered).not_to have_selector('#js-sentry-error-stack-trace')
end
end
-
- context 'when issue is created by a GitLab team member' do
- let(:user) { create(:user, email: 'test@gitlab.com') }
-
- before do
- allow(Gitlab).to receive(:com?).and_return(true)
- end
-
- it 'renders an employee badge next to their name' do
- render
-
- expect(rendered).to have_selector('[aria-label="GitLab Team Member"]')
- end
- end
end
diff --git a/spec/views/projects/merge_requests/show.html.haml_spec.rb b/spec/views/projects/merge_requests/show.html.haml_spec.rb
index 67e7c3cf2fb..665003d137a 100644
--- a/spec/views/projects/merge_requests/show.html.haml_spec.rb
+++ b/spec/views/projects/merge_requests/show.html.haml_spec.rb
@@ -3,45 +3,7 @@
require 'spec_helper'
describe 'projects/merge_requests/show.html.haml' do
- include Devise::Test::ControllerHelpers
- include ProjectForksHelper
-
- let(:user) { create(:user) }
- let(:project) { create(:project, :public, :repository) }
- let(:forked_project) { fork_project(project, user, repository: true) }
- let(:unlink_project) { Projects::UnlinkForkService.new(forked_project, user) }
- let(:note) { create(:note_on_merge_request, project: project, noteable: closed_merge_request) }
-
- let(:closed_merge_request) do
- create(:closed_merge_request,
- source_project: forked_project,
- target_project: project,
- 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)
- assign(:commits_count, 0)
- assign(:note, note)
- assign(:noteable, closed_merge_request)
- assign(:notes, [])
- assign(:pipelines, Ci::Pipeline.none)
- assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request))
-
- preload_view_requirements
-
- allow(view).to receive_messages(current_user: user,
- can?: true,
- current_application_settings: Gitlab::CurrentSettings.current_application_settings)
- end
+ include_context 'merge request show action'
describe 'merge request assignee sidebar' do
context 'when assignee is allowed to merge' do
@@ -92,24 +54,4 @@ describe 'projects/merge_requests/show.html.haml' do
expect(rendered).to have_css('a', visible: false, text: 'Close')
end
end
-
- context 'when merge request is created by a GitLab team member' do
- let(:user) { create(:user, email: 'test@gitlab.com') }
-
- before do
- allow(Gitlab).to receive(:com?).and_return(true)
- end
-
- it 'renders an employee badge next to their name' do
- render
-
- expect(rendered).to have_selector('[aria-label="GitLab Team Member"]')
- end
- 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/views/projects/services/_form.haml_spec.rb b/spec/views/projects/services/_form.haml_spec.rb
index 272ac97604a..a3faa92b50e 100644
--- a/spec/views/projects/services/_form.haml_spec.rb
+++ b/spec/views/projects/services/_form.haml_spec.rb
@@ -7,6 +7,8 @@ describe 'projects/services/_form' do
let(:user) { create(:admin) }
before do
+ stub_feature_flags(integration_form_refactor: false)
+
assign(:project, project)
allow(controller).to receive(:current_user).and_return(user)
@@ -29,20 +31,5 @@ describe 'projects/services/_form' do
expect(rendered).to have_content('Event will be triggered when a commit is created/updated')
expect(rendered).to have_content('Event will be triggered when a merge request is created/updated/merged')
end
-
- context 'when service is Jira' do
- let(:project) { create(:jira_project) }
-
- before do
- assign(:service, project.jira_service)
- end
-
- it 'display merge_request_events and commit_events descriptions' do
- render
-
- expect(rendered).to have_content('Jira comments will be created when an issue gets referenced in a commit.')
- expect(rendered).to have_content('Jira comments will be created when an issue gets referenced in a merge request.')
- end
- end
end
end
diff --git a/spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb b/spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb
index 94a85486cfa..d25860ab301 100644
--- a/spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb
+++ b/spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb
@@ -13,7 +13,7 @@ describe 'projects/settings/ci_cd/_autodevops_form' do
it 'shows a warning message about Kubernetes cluster' do
render
- expect(rendered).to have_text('You must add a Kubernetes cluster integration to this project with a domain in order for your deployment strategy to work correctly.')
+ expect(rendered).to have_text('Add a Kubernetes cluster integration with a domain or create an AUTO_DEVOPS_PLATFORM_TARGET CI variable')
end
context 'when the project has an available kubernetes cluster' do