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-12-17 14:59:07 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-12-17 14:59:07 +0300
commit8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch)
tree544930fb309b30317ae9797a9683768705d664c4 /spec/views
parent4b1de649d0168371549608993deac953eb692019 (diff)
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'spec/views')
-rw-r--r--spec/views/admin/application_settings/general.html.haml_spec.rb28
-rw-r--r--spec/views/admin/dashboard/index.html.haml_spec.rb1
-rw-r--r--spec/views/layouts/_head.html.haml_spec.rb14
-rw-r--r--spec/views/projects/artifacts/_artifact.html.haml_spec.rb17
-rw-r--r--spec/views/projects/commits/_commit.html.haml_spec.rb2
-rw-r--r--spec/views/projects/empty.html.haml_spec.rb82
-rw-r--r--spec/views/projects/merge_requests/show.html.haml_spec.rb39
-rw-r--r--spec/views/search/_filter.html.haml_spec.rb2
-rw-r--r--spec/views/search/_results.html.haml_spec.rb46
-rw-r--r--spec/views/shared/wikis/_sidebar.html.haml_spec.rb83
10 files changed, 252 insertions, 62 deletions
diff --git a/spec/views/admin/application_settings/general.html.haml_spec.rb b/spec/views/admin/application_settings/general.html.haml_spec.rb
index 5343847d755..434ca8bf0e7 100644
--- a/spec/views/admin/application_settings/general.html.haml_spec.rb
+++ b/spec/views/admin/application_settings/general.html.haml_spec.rb
@@ -33,32 +33,4 @@ RSpec.describe 'admin/application_settings/general.html.haml' do
end
end
end
-
- describe 'Maintenance mode' do
- let(:maintenance_mode_flag) { true }
-
- before do
- assign(:application_setting, app_settings)
- stub_feature_flags(maintenance_mode: maintenance_mode_flag)
- allow(view).to receive(:current_user).and_return(user)
- end
-
- context 'when maintenance_mode feature is enabled' do
- it 'show the Maintenance mode section' do
- render
-
- expect(rendered).to have_css('#js-maintenance-mode-toggle')
- end
- end
-
- context 'when maintenance_mode feature is disabled' do
- let(:maintenance_mode_flag) { false }
-
- it 'hide the Maintenance mode section' do
- render
-
- expect(rendered).not_to have_css('#js-maintenance-mode-toggle')
- end
- end
- end
end
diff --git a/spec/views/admin/dashboard/index.html.haml_spec.rb b/spec/views/admin/dashboard/index.html.haml_spec.rb
index e9223c84674..5494b908705 100644
--- a/spec/views/admin/dashboard/index.html.haml_spec.rb
+++ b/spec/views/admin/dashboard/index.html.haml_spec.rb
@@ -17,7 +17,6 @@ RSpec.describe 'admin/dashboard/index.html.haml' do
allow(view).to receive(:admin?).and_return(true)
allow(view).to receive(:current_application_settings).and_return(Gitlab::CurrentSettings.current_application_settings)
- allow(view).to receive(:show_license_breakdown?).and_return(false)
end
it "shows version of GitLab Workhorse" do
diff --git a/spec/views/layouts/_head.html.haml_spec.rb b/spec/views/layouts/_head.html.haml_spec.rb
index 25fcbeb61df..d8748873f64 100644
--- a/spec/views/layouts/_head.html.haml_spec.rb
+++ b/spec/views/layouts/_head.html.haml_spec.rb
@@ -86,21 +86,21 @@ RSpec.describe 'layouts/_head' do
end
end
- context 'when a Piwik config is set' do
- let(:piwik_host) { 'piwik.example.com' }
+ context 'when a Matomo config is set' do
+ let(:matomo_host) { 'matomo.example.com' }
before do
stub_config(extra: {
- piwik_url: piwik_host,
- piwik_site_id: 12345
+ matomo_url: matomo_host,
+ matomo_site_id: 12345
})
end
- it 'add a Piwik Javascript' do
+ it 'add a Matomo Javascript' do
render
- expect(rendered).to match(/<script.*>.*var u="\/\/#{piwik_host}\/".*<\/script>/m)
- expect(rendered).to match(%r(<noscript>.*<img src="//#{piwik_host}/piwik.php.*</noscript>))
+ expect(rendered).to match(/<script.*>.*var u="\/\/#{matomo_host}\/".*<\/script>/m)
+ expect(rendered).to match(%r(<noscript>.*<img src="//#{matomo_host}/matomo.php.*</noscript>))
end
end
diff --git a/spec/views/projects/artifacts/_artifact.html.haml_spec.rb b/spec/views/projects/artifacts/_artifact.html.haml_spec.rb
index b3bf54e143a..5d930d6b0f2 100644
--- a/spec/views/projects/artifacts/_artifact.html.haml_spec.rb
+++ b/spec/views/projects/artifacts/_artifact.html.haml_spec.rb
@@ -16,10 +16,21 @@ RSpec.describe "projects/artifacts/_artifact.html.haml" do
context 'with admin' do
let(:user) { build(:admin) }
- it 'has a delete button' do
- render_partial
+ context 'when admin mode is enabled', :enable_admin_mode do
+ it 'has a delete button' do
+ render_partial
- expect(rendered).to have_link('Delete artifacts', href: project_artifact_path(project, project.job_artifacts.first))
+ expect(rendered).to have_link('Delete artifacts', href: project_artifact_path(project, project.job_artifacts.first))
+ end
+ end
+
+ context 'when admin mode is disabled' do
+ it 'has no delete button' do
+ project.add_reporter(user)
+ render_partial
+
+ expect(rendered).not_to have_link('Delete artifacts')
+ end
end
end
diff --git a/spec/views/projects/commits/_commit.html.haml_spec.rb b/spec/views/projects/commits/_commit.html.haml_spec.rb
index 898d3baae19..abbb3a168c3 100644
--- a/spec/views/projects/commits/_commit.html.haml_spec.rb
+++ b/spec/views/projects/commits/_commit.html.haml_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe 'projects/commits/_commit.html.haml' do
}
within '.gpg-status-box' do
- expect(page).not_to have_css('i.fa.fa-spinner.fa-spin')
+ expect(page).not_to have_css('.gl-spinner')
end
end
end
diff --git a/spec/views/projects/empty.html.haml_spec.rb b/spec/views/projects/empty.html.haml_spec.rb
new file mode 100644
index 00000000000..de83722160e
--- /dev/null
+++ b/spec/views/projects/empty.html.haml_spec.rb
@@ -0,0 +1,82 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'projects/empty' do
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project) { ProjectPresenter.new(create(:project, :empty_repo), current_user: user) }
+
+ before do
+ allow(view).to receive(:experiment_enabled?).and_return(true)
+ allow(view).to receive(:current_user).and_return(user)
+ assign(:project, project)
+ end
+
+ context 'when user can push code on the project' do
+ before do
+ allow(view).to receive(:can?).with(user, :push_code, project).and_return(true)
+ end
+
+ it 'displays "git clone" instructions' do
+ render
+
+ expect(rendered).to have_content("git clone")
+ end
+ end
+
+ context 'when user can not push code on the project' do
+ before do
+ allow(view).to receive(:can?).with(user, :push_code, project).and_return(false)
+ end
+
+ it 'does not display "git clone" instructions' do
+ render
+
+ expect(rendered).not_to have_content("git clone")
+ end
+ end
+
+ describe 'invite_members_empty_project_version_a experiment' 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
+
+ expect(rendered).not_to have_content('Invite your team')
+ end
+ 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 }
+
+ it_behaves_like 'no invite member info'
+ end
+ end
+
+ 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)
+ end
+
+ it_behaves_like 'no invite member info'
+ 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 9b4f2774c5b..db41c9b5374 100644
--- a/spec/views/projects/merge_requests/show.html.haml_spec.rb
+++ b/spec/views/projects/merge_requests/show.html.haml_spec.rb
@@ -3,30 +3,45 @@
require 'spec_helper'
RSpec.describe 'projects/merge_requests/show.html.haml' do
+ include Spec::Support::Helpers::Features::MergeRequestHelpers
+
before do
allow(view).to receive(:experiment_enabled?).and_return(false)
end
- include_context 'merge request show action'
-
- describe 'merge request assignee sidebar' do
- context 'when assignee is allowed to merge' do
- it 'does not show a warning icon' do
- closed_merge_request.update!(assignee_id: user.id)
- project.add_maintainer(user)
- assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request))
+ context 'when the merge request is open' do
+ include_context 'open merge request show action'
- render
+ it 'shows the "Mark as draft" button' do
+ render
- expect(rendered).not_to have_css('.merge-icon')
- end
+ expect(rendered).to have_css('a', visible: true, text: 'Mark as draft')
+ expect(rendered).to have_css('a', visible: false, text: 'Reopen')
+ expect(rendered).to have_css('a', visible: true, text: 'Close')
end
end
context 'when the merge request is closed' do
+ include_context 'closed merge request show action'
+
+ describe 'merge request assignee sidebar' do
+ context 'when assignee is allowed to merge' do
+ it 'does not show a warning icon' do
+ closed_merge_request.update!(assignee_id: user.id)
+ project.add_maintainer(user)
+ assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request))
+
+ render
+
+ expect(rendered).not_to have_css('.merge-icon')
+ end
+ end
+ end
+
it 'shows the "Reopen" button' do
render
+ expect(rendered).not_to have_css('a', visible: true, text: 'Mark as draft')
expect(rendered).to have_css('a', visible: true, text: 'Reopen')
expect(rendered).to have_css('a', visible: false, text: 'Close')
end
@@ -34,7 +49,7 @@ RSpec.describe 'projects/merge_requests/show.html.haml' do
it 'does not show the "Reopen" button when the source project does not exist' do
unlink_project.execute
closed_merge_request.reload
- preload_view_requirements
+ preload_view_requirements(closed_merge_request, note)
render
diff --git a/spec/views/search/_filter.html.haml_spec.rb b/spec/views/search/_filter.html.haml_spec.rb
index 9a5ff2e4518..868408f7beb 100644
--- a/spec/views/search/_filter.html.haml_spec.rb
+++ b/spec/views/search/_filter.html.haml_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe 'search/_filter' do
expect(rendered).to have_selector('input#js-search-group-dropdown')
expect(rendered).to have_selector('label[for="dashboard_search_project"]')
- expect(rendered).to have_selector('button#dashboard_search_project')
+ expect(rendered).to have_selector('input#js-search-project-dropdown')
end
end
end
diff --git a/spec/views/search/_results.html.haml_spec.rb b/spec/views/search/_results.html.haml_spec.rb
index 6299fd0cf36..8960d096143 100644
--- a/spec/views/search/_results.html.haml_spec.rb
+++ b/spec/views/search/_results.html.haml_spec.rb
@@ -3,17 +3,23 @@
require 'spec_helper'
RSpec.describe 'search/_results' do
+ let(:user) { create(:user) }
let(:search_objects) { Issue.page(1).per(2) }
let(:scope) { 'issues' }
+ let(:term) { 'foo' }
before do
controller.params[:action] = 'show'
+ controller.params[:search] = term
create_list(:issue, 3)
@search_objects = search_objects
@scope = scope
- @search_term = 'foo'
+ @search_term = term
+ @search_service = SearchServicePresenter.new(SearchService.new(user, search: term, scope: scope))
+
+ allow(@search_service).to receive(:search_objects).and_return(search_objects)
end
it 'displays the page size' do
@@ -48,11 +54,22 @@ RSpec.describe 'search/_results' do
let(:scope) { search_scope }
let(:search_objects) { Gitlab::ProjectSearchResults.new(user, '*', project: project).objects(scope) }
- it 'renders the click text event tracking attributes' do
- render
+ context 'when admin mode is enabled', :enable_admin_mode do
+ it 'renders the click text event tracking attributes' do
+ render
+
+ expect(rendered).to have_selector('[data-track-event=click_text]')
+ expect(rendered).to have_selector('[data-track-property=search_result]')
+ end
+ end
+
+ context 'when admin mode is disabled' do
+ it 'does not render the click text event tracking attributes' do
+ render
- expect(rendered).to have_selector('[data-track-event=click_text]')
- expect(rendered).to have_selector('[data-track-property=search_result]')
+ expect(rendered).not_to have_selector('[data-track-event=click_text]')
+ expect(rendered).not_to have_selector('[data-track-property=search_result]')
+ end
end
it 'does render the sidebar' do
@@ -68,11 +85,22 @@ RSpec.describe 'search/_results' do
let(:scope) { search_scope }
let(:search_objects) { Gitlab::ProjectSearchResults.new(user, '*', project: project).objects(scope) }
- it 'renders the click text event tracking attributes' do
- render
+ context 'when admin mode is enabled', :enable_admin_mode do
+ it 'renders the click text event tracking attributes' do
+ render
+
+ expect(rendered).to have_selector('[data-track-event=click_text]')
+ expect(rendered).to have_selector('[data-track-property=search_result]')
+ end
+ end
+
+ context 'when admin mode is disabled' do
+ it 'does not render the click text event tracking attributes' do
+ render
- expect(rendered).to have_selector('[data-track-event=click_text]')
- expect(rendered).to have_selector('[data-track-property=search_result]')
+ expect(rendered).not_to have_selector('[data-track-event=click_text]')
+ expect(rendered).not_to have_selector('[data-track-property=search_result]')
+ end
end
it 'does not render the sidebar' do
diff --git a/spec/views/shared/wikis/_sidebar.html.haml_spec.rb b/spec/views/shared/wikis/_sidebar.html.haml_spec.rb
new file mode 100644
index 00000000000..3e691862937
--- /dev/null
+++ b/spec/views/shared/wikis/_sidebar.html.haml_spec.rb
@@ -0,0 +1,83 @@
+# frozen_string_literal: true
+require 'spec_helper'
+
+RSpec.describe 'shared/wikis/_sidebar.html.haml' do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:wiki) { Wiki.for_container(project, project.default_owner) }
+
+ before do
+ assign(:wiki, wiki)
+ assign(:project, project)
+ end
+
+ it 'includes a link to clone the repository' do
+ render
+
+ expect(rendered).to have_link('Clone repository')
+ end
+
+ context 'the sidebar failed to load' do
+ before do
+ assign(:sidebar_error, Object.new)
+ end
+
+ it 'reports this to the user' do
+ render
+
+ expect(rendered).to include('The sidebar failed to load')
+ expect(rendered).to have_css('.gl-alert.gl-alert-info')
+ end
+ end
+
+ context 'The sidebar comes from a custom page' do
+ before do
+ assign(:sidebar_page, double('WikiPage', path: 'sidebar.md', slug: 'sidebar', content: 'Some sidebar content'))
+ end
+
+ it 'does not show an alert' do
+ render
+
+ expect(rendered).not_to include('The sidebar failed to load')
+ expect(rendered).not_to have_css('.gl-alert.gl-alert-info')
+ end
+
+ it 'renders the wiki content' do
+ render
+
+ expect(rendered).to include('Some sidebar content')
+ end
+ end
+
+ context 'The sidebar comes a list of wiki pages' do
+ before do
+ assign(:sidebar_wiki_entries, create_list(:wiki_page, 3, wiki: wiki))
+ assign(:sidebar_limited, true)
+ stub_template "../shared/wikis/_wiki_pages.html.erb" => "Entries: <%= @sidebar_wiki_entries.size %>"
+ stub_template "../shared/wikis/_wiki_page.html.erb" => 'A WIKI PAGE'
+ end
+
+ it 'does not show an alert' do
+ render
+
+ expect(rendered).not_to include('The sidebar failed to load')
+ expect(rendered).not_to have_css('.gl-alert.gl-alert-info')
+ end
+
+ it 'renders the wiki content' do
+ render
+
+ expect(rendered).to include('A WIKI PAGE' * 3)
+ expect(rendered).to have_link('View All Pages')
+ end
+
+ context 'there is no more to see' do
+ it 'does not invite the user to view more' do
+ assign(:sidebar_limited, false)
+
+ render
+
+ expect(rendered).not_to have_link('View All Pages')
+ end
+ end
+ end
+end