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>2021-12-20 16:37:47 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-12-20 16:37:47 +0300
commitaee0a117a889461ce8ced6fcf73207fe017f1d99 (patch)
tree891d9ef189227a8445d83f35c1b0fc99573f4380 /spec/views
parent8d46af3258650d305f53b819eabf7ab18d22f59e (diff)
Add latest changes from gitlab-org/gitlab@14-6-stable-eev14.6.0-rc42
Diffstat (limited to 'spec/views')
-rw-r--r--spec/views/admin/application_settings/_package_registry.html.haml_spec.rb3
-rw-r--r--spec/views/groups/new.html.haml_spec.rb28
-rw-r--r--spec/views/groups/runners/_group_runners.html.haml_spec.rb5
-rw-r--r--spec/views/jira_connect/subscriptions/index.html.haml_spec.rb30
-rw-r--r--spec/views/layouts/_head.html.haml_spec.rb2
-rw-r--r--spec/views/layouts/header/_new_dropdown.haml_spec.rb31
-rw-r--r--spec/views/profiles/keys/_form.html.haml_spec.rb4
-rw-r--r--spec/views/projects/buttons/_dropdown.html.haml_spec.rb42
-rw-r--r--spec/views/projects/edit.html.haml_spec.rb16
-rw-r--r--spec/views/projects/hooks/edit.html.haml_spec.rb58
-rw-r--r--spec/views/projects/hooks/index.html.haml_spec.rb62
-rw-r--r--spec/views/projects/jobs/show.html.haml_spec.rb37
-rw-r--r--spec/views/shared/runners/_runner_details.html.haml_spec.rb4
-rw-r--r--spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb4
14 files changed, 210 insertions, 116 deletions
diff --git a/spec/views/admin/application_settings/_package_registry.html.haml_spec.rb b/spec/views/admin/application_settings/_package_registry.html.haml_spec.rb
index 72e32643a49..18a2e29adab 100644
--- a/spec/views/admin/application_settings/_package_registry.html.haml_spec.rb
+++ b/spec/views/admin/application_settings/_package_registry.html.haml_spec.rb
@@ -28,6 +28,9 @@ RSpec.describe 'admin/application_settings/_package_registry' do
expect(rendered).to have_field('Maximum Conan package file size in bytes', type: 'number')
expect(page.find_field('Maximum Conan package file size in bytes').value).to eq(default_plan_limits.conan_max_file_size.to_s)
+ expect(rendered).to have_field('Maximum Helm chart file size in bytes', type: 'number')
+ expect(page.find_field('Maximum Helm chart file size in bytes').value).to eq(default_plan_limits.helm_max_file_size.to_s)
+
expect(rendered).to have_field('Maximum Maven package file size in bytes', type: 'number')
expect(page.find_field('Maximum Maven package file size in bytes').value).to eq(default_plan_limits.maven_max_file_size.to_s)
diff --git a/spec/views/groups/new.html.haml_spec.rb b/spec/views/groups/new.html.haml_spec.rb
new file mode 100644
index 00000000000..8b12cc42a88
--- /dev/null
+++ b/spec/views/groups/new.html.haml_spec.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'groups/new.html.haml' do
+ let_it_be(:user) { create(:user) }
+ let_it_be(:group) { build(:group, namespace_settings: build(:namespace_settings)) }
+
+ before do
+ assign(:group, group)
+ assign(:current_user, user)
+
+ allow(view).to receive(:current_user).and_return(user)
+ allow(view).to receive(:captcha_required?).and_return(false)
+ allow(view).to receive(:import_sources_enabled?).and_return(false)
+
+ render
+ end
+
+ describe 'setup_for_company field' do
+ it 'does not have a default selection', :aggregate_failures do
+ expect(rendered).to have_field('My company or team')
+ expect(rendered).not_to have_checked_field('My company or team')
+ expect(rendered).to have_field('Just me')
+ expect(rendered).not_to have_checked_field('Just me')
+ end
+ end
+end
diff --git a/spec/views/groups/runners/_group_runners.html.haml_spec.rb b/spec/views/groups/runners/_group_runners.html.haml_spec.rb
index 0d47409c658..3a8686ab046 100644
--- a/spec/views/groups/runners/_group_runners.html.haml_spec.rb
+++ b/spec/views/groups/runners/_group_runners.html.haml_spec.rb
@@ -11,12 +11,11 @@ RSpec.describe 'groups/runners/group_runners.html.haml' do
@group = group
allow(view).to receive(:current_user).and_return(user)
allow(view).to receive(:reset_registration_token_group_settings_ci_cd_path).and_return('banana_url')
- allow(view).to receive(:can?).with(user, :admin_pipeline, group).and_return(true)
end
context 'when group runner registration is allowed' do
before do
- stub_application_setting(valid_runner_registrars: ['group'])
+ allow(view).to receive(:can?).with(user, :register_group_runners, group).and_return(true)
end
it 'enables the Remove group button for a group' do
@@ -29,7 +28,7 @@ RSpec.describe 'groups/runners/group_runners.html.haml' do
context 'when group runner registration is not allowed' do
before do
- stub_application_setting(valid_runner_registrars: ['project'])
+ allow(view).to receive(:can?).with(user, :register_group_runners, group).and_return(false)
end
it 'does not enable the the Remove group button for a group' do
diff --git a/spec/views/jira_connect/subscriptions/index.html.haml_spec.rb b/spec/views/jira_connect/subscriptions/index.html.haml_spec.rb
deleted file mode 100644
index 0a4d283a983..00000000000
--- a/spec/views/jira_connect/subscriptions/index.html.haml_spec.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'jira_connect/subscriptions/index.html.haml' do
- let(:user) { build_stubbed(:user) }
-
- before do
- allow(view).to receive(:current_user).and_return(user)
- assign(:subscriptions, create_list(:jira_connect_subscription, 1))
- end
-
- context 'when the user is signed in' do
- it 'shows link to user profile' do
- render
-
- expect(rendered).to have_link(user.to_reference)
- end
- end
-
- context 'when the user is not signed in' do
- let(:user) { nil }
-
- it 'shows "Sign in" link' do
- render
-
- expect(rendered).to have_link('Sign in to GitLab')
- end
- end
-end
diff --git a/spec/views/layouts/_head.html.haml_spec.rb b/spec/views/layouts/_head.html.haml_spec.rb
index 2c7289deaef..f9725c73d05 100644
--- a/spec/views/layouts/_head.html.haml_spec.rb
+++ b/spec/views/layouts/_head.html.haml_spec.rb
@@ -62,7 +62,7 @@ RSpec.describe 'layouts/_head' do
expect(rendered).to match('<link rel="stylesheet" media="print" href="/stylesheets/highlight/themes/solarised-light.css" />')
end
- context 'when an asset_host is set and snowplow url is set' do
+ context 'when an asset_host is set and snowplow url is set', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/346542' do
let(:asset_host) { 'http://test.host' }
let(:snowplow_collector_hostname) { 'www.snow.plow' }
diff --git a/spec/views/layouts/header/_new_dropdown.haml_spec.rb b/spec/views/layouts/header/_new_dropdown.haml_spec.rb
index 47abfff87bb..208da345e7f 100644
--- a/spec/views/layouts/header/_new_dropdown.haml_spec.rb
+++ b/spec/views/layouts/header/_new_dropdown.haml_spec.rb
@@ -6,33 +6,13 @@ RSpec.describe 'layouts/header/_new_dropdown' do
let_it_be(:user) { create(:user) }
shared_examples_for 'invite member quick link' do
- context 'when an experiment is active' do
- before do
- allow(Gitlab::Experimentation).to receive(:active?).and_return(true)
- allow(view).to receive(:experiment_tracking_category_and_group)
- allow(view).to receive(:tracking_label)
- end
-
- context 'with ability to invite members' do
- it { is_expected.to have_link('Invite members', href: href) }
-
- it 'records the experiment' do
- subject
-
- expect(view).to have_received(:experiment_tracking_category_and_group)
- .with(:invite_members_new_dropdown)
- expect(view).to have_received(:tracking_label)
- end
- end
-
- context 'without ability to invite members' do
- let(:invite_member) { false }
-
- it { is_expected.not_to have_link('Invite members') }
- end
+ context 'with ability to invite members' do
+ it { is_expected.to have_link('Invite members', href: href) }
end
- context 'when experiment is not active' do
+ context 'without ability to invite members' do
+ let(:invite_member) { false }
+
it { is_expected.not_to have_link('Invite members') }
end
end
@@ -72,7 +52,6 @@ RSpec.describe 'layouts/header/_new_dropdown' do
allow(view).to receive(:can?).with(user, :create_projects, group).and_return(true)
allow(view).to receive(:can?).with(user, :admin_group_member, group).and_return(invite_member)
allow(view).to receive(:can_admin_project_member?).and_return(invite_member)
- allow(view).to receive(:experiment_enabled?)
end
subject do
diff --git a/spec/views/profiles/keys/_form.html.haml_spec.rb b/spec/views/profiles/keys/_form.html.haml_spec.rb
index 0f4d7ecc699..d5a605958dc 100644
--- a/spec/views/profiles/keys/_form.html.haml_spec.rb
+++ b/spec/views/profiles/keys/_form.html.haml_spec.rb
@@ -33,8 +33,8 @@ RSpec.describe 'profiles/keys/_form.html.haml' do
end
it 'has the expires at field', :aggregate_failures do
- expect(rendered).to have_field('Expires at', type: 'date')
- expect(page.find_field('Expires at')['min']).to eq(l(1.day.from_now, format: "%Y-%m-%d"))
+ expect(rendered).to have_field('Expiration date', type: 'date')
+ expect(page.find_field('Expiration date')['min']).to eq(l(1.day.from_now, format: "%Y-%m-%d"))
expect(rendered).to have_text('Key can still be used after expiration.')
end
diff --git a/spec/views/projects/buttons/_dropdown.html.haml_spec.rb b/spec/views/projects/buttons/_dropdown.html.haml_spec.rb
deleted file mode 100644
index fc9d7c3ea91..00000000000
--- a/spec/views/projects/buttons/_dropdown.html.haml_spec.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'projects/buttons/_dropdown' do
- let(:user) { create(:user) }
-
- context 'user with all abilities' do
- before do
- assign(:project, project)
-
- allow(view).to receive(:current_user).and_return(user)
- allow(view).to receive(:can?).with(user, :push_code, project).and_return(true)
- allow(view).to receive(:can_collaborate_with_project?).and_return(true)
- end
-
- context 'empty repository' do
- let(:project) { create(:project, :empty_repo) }
-
- it 'has a link to create a new file' do
- render
-
- expect(view).to render_template('projects/buttons/_dropdown')
- expect(rendered).to have_link('New file')
- end
-
- it 'does not have a link to create a new branch' do
- render
-
- expect(view).to render_template('projects/buttons/_dropdown')
- expect(rendered).not_to have_link('New branch')
- end
-
- it 'does not have a link to create a new tag' do
- render
-
- expect(view).to render_template('projects/buttons/_dropdown')
- expect(rendered).not_to have_link('New tag')
- end
- end
- end
-end
diff --git a/spec/views/projects/edit.html.haml_spec.rb b/spec/views/projects/edit.html.haml_spec.rb
index 60f4c1664f7..8c96f286c79 100644
--- a/spec/views/projects/edit.html.haml_spec.rb
+++ b/spec/views/projects/edit.html.haml_spec.rb
@@ -92,6 +92,22 @@ RSpec.describe 'projects/edit' do
end
end
+ context 'squash template' do
+ it 'displays a placeholder if none is set' do
+ render
+
+ expect(rendered).to have_field('project[squash_commit_template]', placeholder: '%{title}')
+ end
+
+ it 'displays the user entered value' do
+ project.update!(squash_commit_template: '%{first_multiline_commit}')
+
+ render
+
+ expect(rendered).to have_field('project[squash_commit_template]', with: '%{first_multiline_commit}')
+ end
+ end
+
context 'forking' do
before do
assign(:project, project)
diff --git a/spec/views/projects/hooks/edit.html.haml_spec.rb b/spec/views/projects/hooks/edit.html.haml_spec.rb
new file mode 100644
index 00000000000..c4ec2149794
--- /dev/null
+++ b/spec/views/projects/hooks/edit.html.haml_spec.rb
@@ -0,0 +1,58 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'projects/hooks/edit' do
+ let(:hook) { create(:project_hook, project: project) }
+
+ let_it_be_with_refind(:project) { create(:project) }
+
+ before do
+ assign :project, project
+ assign :hook, hook
+ end
+
+ it 'renders webhook page with "Recent events"' do
+ render
+
+ expect(rendered).to have_css('h4', text: _('Webhook'))
+ expect(rendered).to have_text(_('Recent events'))
+ end
+
+ context 'webhook is rate limited' do
+ before do
+ allow(hook).to receive(:rate_limited?).and_return(true)
+ end
+
+ it 'renders alert' do
+ render
+
+ expect(rendered).to have_text(s_('Webhooks|Webhook was automatically disabled'))
+ end
+ end
+
+ context 'webhook is permanently disabled' do
+ before do
+ allow(hook).to receive(:permanently_disabled?).and_return(true)
+ end
+
+ it 'renders alert' do
+ render
+
+ expect(rendered).to have_text(s_('Webhooks|Webhook failed to connect'))
+ end
+ end
+
+ context 'webhook is temporarily disabled' do
+ before do
+ allow(hook).to receive(:temporarily_disabled?).and_return(true)
+ allow(hook).to receive(:disabled_until).and_return(Time.now + 10.minutes)
+ end
+
+ it 'renders alert' do
+ render
+
+ expect(rendered).to have_text(s_('Webhooks|Webhook fails to connect'))
+ end
+ end
+end
diff --git a/spec/views/projects/hooks/index.html.haml_spec.rb b/spec/views/projects/hooks/index.html.haml_spec.rb
new file mode 100644
index 00000000000..0cdc3bcecb2
--- /dev/null
+++ b/spec/views/projects/hooks/index.html.haml_spec.rb
@@ -0,0 +1,62 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'projects/hooks/index' do
+ let(:existing_hook) { create(:project_hook, project: project) }
+ let(:new_hook) { ProjectHook.new }
+
+ let_it_be_with_refind(:project) { create(:project) }
+
+ before do
+ assign :project, project
+ assign :hooks, [existing_hook]
+ assign :hook, new_hook
+ end
+
+ it 'renders webhooks page with "Project Hooks"' do
+ render
+
+ expect(rendered).to have_css('h4', text: _('Webhooks'))
+ expect(rendered).to have_text('Project Hooks')
+ expect(rendered).not_to have_css('.gl-badge', text: _('Disabled'))
+ expect(rendered).not_to have_css('.gl-badge', text: s_('Webhooks|Failed to connect'))
+ expect(rendered).not_to have_css('.gl-badge', text: s_('Webhooks|Fails to connect'))
+ end
+
+ context 'webhook is rate limited' do
+ before do
+ allow(existing_hook).to receive(:rate_limited?).and_return(true)
+ end
+
+ it 'renders "Disabled" badge' do
+ render
+
+ expect(rendered).to have_css('.gl-badge', text: _('Disabled'))
+ end
+ end
+
+ context 'webhook is permanently disabled' do
+ before do
+ allow(existing_hook).to receive(:permanently_disabled?).and_return(true)
+ end
+
+ it 'renders "Failed to connect" badge' do
+ render
+
+ expect(rendered).to have_css('.gl-badge', text: s_('Webhooks|Failed to connect'))
+ end
+ end
+
+ context 'webhook is temporarily disabled' do
+ before do
+ allow(existing_hook).to receive(:temporarily_disabled?).and_return(true)
+ end
+
+ it 'renders "Fails to connect" badge' do
+ render
+
+ expect(rendered).to have_css('.gl-badge', text: s_('Webhooks|Fails to connect'))
+ end
+ end
+end
diff --git a/spec/views/projects/jobs/show.html.haml_spec.rb b/spec/views/projects/jobs/show.html.haml_spec.rb
index 83a00135629..8242d20a9e7 100644
--- a/spec/views/projects/jobs/show.html.haml_spec.rb
+++ b/spec/views/projects/jobs/show.html.haml_spec.rb
@@ -13,26 +13,47 @@ RSpec.describe 'projects/jobs/show' do
end
before do
- assign(:build, build.present)
assign(:project, project)
assign(:builds, builds)
allow(view).to receive(:can?).and_return(true)
end
- context 'when job is running' do
- let(:build) { create(:ci_build, :trace_live, :running, pipeline: pipeline) }
-
+ context 'when showing a CI build' do
before do
+ assign(:build, build.present)
render
end
- it 'does not show retry button' do
- expect(rendered).not_to have_link('Retry')
+ it 'shows job vue app' do
+ expect(rendered).to have_css('#js-job-page')
+ expect(rendered).not_to have_css('#js-bridge-page')
+ end
+
+ context 'when job is running' do
+ let(:build) { create(:ci_build, :trace_live, :running, pipeline: pipeline) }
+
+ it 'does not show retry button' do
+ expect(rendered).not_to have_link('Retry')
+ end
+
+ it 'does not show New issue button' do
+ expect(rendered).not_to have_link('New issue')
+ end
+ end
+ end
+
+ context 'when showing a bridge job' do
+ let(:bridge) { create(:ci_bridge, status: :pending) }
+
+ before do
+ assign(:build, bridge)
+ render
end
- it 'does not show New issue button' do
- expect(rendered).not_to have_link('New issue')
+ it 'shows bridge vue app' do
+ expect(rendered).to have_css('#js-bridge-page')
+ expect(rendered).not_to have_css('#js-job-page')
end
end
end
diff --git a/spec/views/shared/runners/_runner_details.html.haml_spec.rb b/spec/views/shared/runners/_runner_details.html.haml_spec.rb
index f9f93c8160b..cdf5ec563d0 100644
--- a/spec/views/shared/runners/_runner_details.html.haml_spec.rb
+++ b/spec/views/shared/runners/_runner_details.html.haml_spec.rb
@@ -113,14 +113,14 @@ RSpec.describe 'shared/runners/_runner_details.html.haml' do
describe 'Tags value' do
context 'when runner does not have tags' do
it { is_expected.to have_content('Tags') }
- it { is_expected.not_to have_selector('span.badge.badge-primary')}
+ it { is_expected.not_to have_selector('span.gl-badge.badge.badge-info')}
end
context 'when runner have tags' do
let(:runner) { create(:ci_runner, tag_list: %w(tag2 tag3 tag1)) }
it { is_expected.to have_content('Tags tag1 tag2 tag3') }
- it { is_expected.to have_selector('span.badge.badge-primary')}
+ it { is_expected.to have_selector('span.gl-badge.badge.badge-info')}
end
end
diff --git a/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb b/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb
index 400319a42b7..1bee9f7463f 100644
--- a/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb
+++ b/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe 'shared/ssh_keys/_key_delete.html.haml' do
context 'when the text parameter is used' do
it 'has text' do
- render 'shared/ssh_keys/key_delete.html.haml', text: 'Button', html_class: '', button_data: ''
+ render partial: 'shared/ssh_keys/key_delete', formats: :html, locals: { text: 'Button', html_class: '', button_data: '' }
expect(rendered).to have_button('Button')
end
@@ -12,7 +12,7 @@ RSpec.describe 'shared/ssh_keys/_key_delete.html.haml' do
context 'when the text parameter is not used' do
it 'does not have text' do
- render 'shared/ssh_keys/key_delete.html.haml', html_class: '', button_data: ''
+ render partial: 'shared/ssh_keys/key_delete', formats: :html, locals: { html_class: '', button_data: '' }
expect(rendered).to have_button('Delete')
end