diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-12-20 16:37:47 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-12-20 16:37:47 +0300 |
commit | aee0a117a889461ce8ced6fcf73207fe017f1d99 (patch) | |
tree | 891d9ef189227a8445d83f35c1b0fc99573f4380 /spec/views | |
parent | 8d46af3258650d305f53b819eabf7ab18d22f59e (diff) |
Add latest changes from gitlab-org/gitlab@14-6-stable-eev14.6.0-rc42
Diffstat (limited to 'spec/views')
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 |