summaryrefslogtreecommitdiff
path: root/spec/views
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 15:40:28 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-20 15:40:28 +0000
commitb595cb0c1dec83de5bdee18284abe86614bed33b (patch)
tree8c3d4540f193c5ff98019352f554e921b3a41a72 /spec/views
parent2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff)
downloadgitlab-ce-b595cb0c1dec83de5bdee18284abe86614bed33b.tar.gz
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'spec/views')
-rw-r--r--spec/views/admin/application_settings/general.html.haml_spec.rb31
-rw-r--r--spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb17
-rw-r--r--spec/views/devise/sessions/new.html.haml_spec.rb38
-rw-r--r--spec/views/errors/omniauth_error.html.haml_spec.rb22
-rw-r--r--spec/views/groups/edit.html.haml_spec.rb2
-rw-r--r--spec/views/groups/group_members/index.html.haml_spec.rb12
-rw-r--r--spec/views/layouts/_flash.html.haml_spec.rb14
-rw-r--r--spec/views/layouts/application.html.haml_spec.rb2
-rw-r--r--spec/views/layouts/devise.html.haml_spec.rb7
-rw-r--r--spec/views/layouts/devise_empty.html.haml_spec.rb7
-rw-r--r--spec/views/layouts/fullscreen.html.haml_spec.rb13
-rw-r--r--spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb60
-rw-r--r--spec/views/layouts/signup_onboarding.html.haml_spec.rb7
-rw-r--r--spec/views/layouts/simple_registration.html.haml_spec.rb7
-rw-r--r--spec/views/layouts/terms.html.haml_spec.rb13
-rw-r--r--spec/views/projects/commits/_commit.html.haml_spec.rb2
-rw-r--r--spec/views/projects/issues/_issue.html.haml_spec.rb44
-rw-r--r--spec/views/projects/jobs/show.html.haml_spec.rb15
-rw-r--r--spec/views/projects/project_members/index.html.haml_spec.rb6
-rw-r--r--spec/views/projects/settings/operations/show.html.haml_spec.rb16
-rw-r--r--spec/views/projects/tracing/show.html.haml_spec.rb59
-rw-r--r--spec/views/shared/deploy_tokens/_form.html.haml_spec.rb2
22 files changed, 251 insertions, 145 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 3614090d3cb..c7d156cde39 100644
--- a/spec/views/admin/application_settings/general.html.haml_spec.rb
+++ b/spec/views/admin/application_settings/general.html.haml_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'admin/application_settings/general.html.haml' do
- let(:app_settings) { build(:application_setting) }
+ let(:app_settings) { Gitlab::CurrentSettings.current_application_settings }
let(:user) { create(:admin) }
before do
@@ -97,4 +97,33 @@ RSpec.describe 'admin/application_settings/general.html.haml' do
expect(rendered).to match ' data-minimum-password-length='
end
end
+
+ describe 'error tracking integration' do
+ context 'with error tracking feature flag enabled' do
+ before do
+ stub_feature_flags(gitlab_error_tracking: true)
+
+ render
+ end
+
+ it 'expects error tracking settings to be available' do
+ expect(rendered).to have_field('application_setting_error_tracking_api_url')
+ end
+
+ it 'expects display token and reset token to be available' do
+ expect(rendered).to have_content(app_settings.error_tracking_access_token)
+ expect(rendered).to have_button('Reset error tracking access token')
+ end
+ end
+
+ context 'with error tracking feature flag disabled' do
+ it 'expects error tracking settings to not be avaiable' do
+ stub_feature_flags(gitlab_error_tracking: false)
+
+ render
+
+ expect(rendered).not_to have_field('application_setting_error_tracking_api_url')
+ end
+ end
+ end
end
diff --git a/spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb b/spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb
new file mode 100644
index 00000000000..edec46ad0a3
--- /dev/null
+++ b/spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'dashboard/projects/_blank_state_welcome.html.haml' do
+ let_it_be(:user) { create(:user) }
+
+ before do
+ allow(view).to receive(:current_user).and_return(user)
+ end
+
+ it 'has a doc_url' do
+ render
+
+ expect(rendered).to have_link(href: Gitlab::Saas.doc_url)
+ end
+end
diff --git a/spec/views/devise/sessions/new.html.haml_spec.rb b/spec/views/devise/sessions/new.html.haml_spec.rb
index e8232a2c067..b3cd1493149 100644
--- a/spec/views/devise/sessions/new.html.haml_spec.rb
+++ b/spec/views/devise/sessions/new.html.haml_spec.rb
@@ -63,6 +63,36 @@ RSpec.describe 'devise/sessions/new' do
end
end
+ describe 'Google Tag Manager' do
+ let!(:gtm_id) { 'GTM-WWKMTWS'}
+
+ subject { rendered }
+
+ before do
+ stub_devise
+ disable_captcha
+ stub_config(extra: { google_tag_manager_id: gtm_id, google_tag_manager_nonce_id: gtm_id })
+ end
+
+ describe 'when Google Tag Manager is enabled' do
+ before do
+ enable_gtm
+ render
+ end
+
+ it { is_expected.to match /www.googletagmanager.com/ }
+ end
+
+ describe 'when Google Tag Manager is disabled' do
+ before do
+ disable_gtm
+ render
+ end
+
+ it { is_expected.not_to match /www.googletagmanager.com/ }
+ end
+ end
+
def disable_other_signin_methods
allow(view).to receive(:password_authentication_enabled_for_web?).and_return(false)
allow(view).to receive(:omniauth_enabled?).and_return(false)
@@ -94,4 +124,12 @@ RSpec.describe 'devise/sessions/new' do
allow(view).to receive(:captcha_enabled?).and_return(false)
allow(view).to receive(:captcha_on_login_required?).and_return(false)
end
+
+ def disable_gtm
+ allow(view).to receive(:google_tag_manager_enabled?).and_return(false)
+ end
+
+ def enable_gtm
+ allow(view).to receive(:google_tag_manager_enabled?).and_return(true)
+ end
end
diff --git a/spec/views/errors/omniauth_error.html.haml_spec.rb b/spec/views/errors/omniauth_error.html.haml_spec.rb
new file mode 100644
index 00000000000..e99cb536bd8
--- /dev/null
+++ b/spec/views/errors/omniauth_error.html.haml_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'errors/omniauth_error' do
+ let(:provider) { FFaker::Product.brand }
+ let(:error) { FFaker::Lorem.sentence }
+
+ before do
+ assign(:provider, provider)
+ assign(:error, error)
+ end
+
+ it 'renders template' do
+ render
+
+ expect(rendered).to have_content(provider)
+ expect(rendered).to have_content(_('Sign-in failed because %{error}.') % { error: error })
+ expect(rendered).to have_link('Sign in')
+ expect(rendered).to have_content(_('If none of the options work, try contacting a GitLab administrator.'))
+ end
+end
diff --git a/spec/views/groups/edit.html.haml_spec.rb b/spec/views/groups/edit.html.haml_spec.rb
index eaa909a5da0..ddcfea0ab10 100644
--- a/spec/views/groups/edit.html.haml_spec.rb
+++ b/spec/views/groups/edit.html.haml_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe 'groups/edit.html.haml' do
render
- expect(rendered).to have_content("Prevent sharing a project within #{test_group.name} with other groups")
+ expect(rendered).to have_content("Projects in #{test_group.name} cannot be shared with other groups")
expect(rendered).to have_content('help text here')
expect(rendered).to have_field('group_share_with_group_lock', **checkbox_options)
end
diff --git a/spec/views/groups/group_members/index.html.haml_spec.rb b/spec/views/groups/group_members/index.html.haml_spec.rb
index 40d4c9d33c9..2d7d50555d6 100644
--- a/spec/views/groups/group_members/index.html.haml_spec.rb
+++ b/spec/views/groups/group_members/index.html.haml_spec.rb
@@ -37,4 +37,16 @@ RSpec.describe 'groups/group_members/index', :aggregate_failures do
expect(rendered).not_to have_content('You can invite a new member')
end
end
+
+ context 'when @banned is nil' do
+ before do
+ assign(:banned, nil)
+ end
+
+ it 'calls group_members_app_data with { banned: [] }' do
+ expect(view).to receive(:group_members_app_data).with(group, a_hash_including(banned: []))
+
+ render
+ end
+ end
end
diff --git a/spec/views/layouts/_flash.html.haml_spec.rb b/spec/views/layouts/_flash.html.haml_spec.rb
index 82c06feb4fb..a4bed09368f 100644
--- a/spec/views/layouts/_flash.html.haml_spec.rb
+++ b/spec/views/layouts/_flash.html.haml_spec.rb
@@ -9,7 +9,11 @@ RSpec.describe 'layouts/_flash' do
end
describe 'closable flash messages' do
- %w(alert notice success).each do |flash_type|
+ where(:flash_type) do
+ %w[alert notice success]
+ end
+
+ with_them do
let(:flash) { { flash_type => 'This is a closable flash message' } }
it 'shows a close button' do
@@ -19,10 +23,14 @@ RSpec.describe 'layouts/_flash' do
end
describe 'non closable flash messages' do
- %w(error message toast warning).each do |flash_type|
+ where(:flash_type) do
+ %w[error message toast warning]
+ end
+
+ with_them do
let(:flash) { { flash_type => 'This is a non closable flash message' } }
- it 'shows a close button' do
+ it 'does not show a close button' do
expect(rendered).not_to include('js-close-icon')
end
end
diff --git a/spec/views/layouts/application.html.haml_spec.rb b/spec/views/layouts/application.html.haml_spec.rb
index 0f359219718..30c27078ad8 100644
--- a/spec/views/layouts/application.html.haml_spec.rb
+++ b/spec/views/layouts/application.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'layouts/application' do
+RSpec.describe 'layouts/application', :themed_layout do
let(:user) { create(:user) }
before do
diff --git a/spec/views/layouts/devise.html.haml_spec.rb b/spec/views/layouts/devise.html.haml_spec.rb
new file mode 100644
index 00000000000..e69cf93cfb4
--- /dev/null
+++ b/spec/views/layouts/devise.html.haml_spec.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'layouts/devise' do
+ it_behaves_like 'a layout which reflects the application theme setting'
+end
diff --git a/spec/views/layouts/devise_empty.html.haml_spec.rb b/spec/views/layouts/devise_empty.html.haml_spec.rb
new file mode 100644
index 00000000000..06d742e74dd
--- /dev/null
+++ b/spec/views/layouts/devise_empty.html.haml_spec.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'layouts/devise_empty' do
+ it_behaves_like 'a layout which reflects the application theme setting'
+end
diff --git a/spec/views/layouts/fullscreen.html.haml_spec.rb b/spec/views/layouts/fullscreen.html.haml_spec.rb
new file mode 100644
index 00000000000..0ae2c76ebcb
--- /dev/null
+++ b/spec/views/layouts/fullscreen.html.haml_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'layouts/fullscreen' do
+ let_it_be(:user) { create(:user) }
+
+ before do
+ allow(view).to receive(:current_user_mode).and_return(Gitlab::Auth::CurrentUserMode.new(user))
+ end
+
+ it_behaves_like 'a layout which reflects the application theme setting'
+end
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 3943355bffd..9ae3f814679 100644
--- a/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
+++ b/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
@@ -419,50 +419,6 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
end
- describe 'Logs' do
- it 'has a link to the pod logs page' do
- render
-
- expect(rendered).to have_link('Logs', href: project_logs_path(project))
- end
-
- describe 'when the user does not have access' do
- let(:user) { nil }
-
- it 'does not have a link to the pod logs page' do
- render
-
- expect(rendered).not_to have_link('Logs')
- end
- end
- end
-
- describe 'Tracing' do
- it 'has a link to the tracing page' do
- render
-
- expect(rendered).to have_link('Tracing', href: project_tracing_path(project))
- end
-
- context 'without project.tracing_external_url' do
- it 'has a link to the tracing page' do
- render
-
- expect(rendered).to have_link('Tracing', href: project_tracing_path(project))
- end
- end
-
- describe 'when the user does not have access' do
- let(:user) { nil }
-
- it 'does not have a link to the tracing page' do
- render
-
- expect(rendered).not_to have_text 'Tracing'
- end
- end
- end
-
describe 'Error Tracking' do
it 'has a link to the error tracking page' do
render
@@ -576,7 +532,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
describe 'Google Cloud' do
it 'has a link to the google cloud page' do
render
- expect(rendered).to have_link('Google Cloud', href: project_google_cloud_index_path(project))
+ expect(rendered).to have_link('Google Cloud', href: project_google_cloud_configuration_path(project))
end
describe 'when the user does not have access' do
@@ -953,8 +909,11 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
describe 'Packages & Registries' do
+ let(:packages_enabled) { false }
+
before do
stub_container_registry_config(enabled: registry_enabled)
+ stub_config(packages: { enabled: packages_enabled })
end
context 'when registry is enabled' do
@@ -976,6 +935,17 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
expect(rendered).not_to have_link('Packages & Registries', href: project_settings_packages_and_registries_path(project))
end
end
+
+ context 'when packages config is enabled' do
+ let(:registry_enabled) { false }
+ let(:packages_enabled) { true }
+
+ it 'has a link to the Packages & Registries settings' do
+ render
+
+ expect(rendered).to have_link('Packages & Registries', href: project_settings_packages_and_registries_path(project))
+ end
+ end
end
describe 'Usage Quotas' do
diff --git a/spec/views/layouts/signup_onboarding.html.haml_spec.rb b/spec/views/layouts/signup_onboarding.html.haml_spec.rb
new file mode 100644
index 00000000000..8748c673616
--- /dev/null
+++ b/spec/views/layouts/signup_onboarding.html.haml_spec.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'layouts/signup_onboarding' do
+ it_behaves_like 'a layout which reflects the application theme setting'
+end
diff --git a/spec/views/layouts/simple_registration.html.haml_spec.rb b/spec/views/layouts/simple_registration.html.haml_spec.rb
new file mode 100644
index 00000000000..98553a12ad8
--- /dev/null
+++ b/spec/views/layouts/simple_registration.html.haml_spec.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'layouts/simple_registration' do
+ it_behaves_like 'a layout which reflects the application theme setting'
+end
diff --git a/spec/views/layouts/terms.html.haml_spec.rb b/spec/views/layouts/terms.html.haml_spec.rb
new file mode 100644
index 00000000000..520882449c5
--- /dev/null
+++ b/spec/views/layouts/terms.html.haml_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'layouts/terms' do
+ let_it_be(:user) { create(:user) }
+
+ before do
+ allow(view).to receive(:current_user_mode).and_return(Gitlab::Auth::CurrentUserMode.new(user))
+ end
+
+ it_behaves_like 'a layout which reflects the application theme setting'
+end
diff --git a/spec/views/projects/commits/_commit.html.haml_spec.rb b/spec/views/projects/commits/_commit.html.haml_spec.rb
index da93871e0e4..2ca23d4cb2d 100644
--- a/spec/views/projects/commits/_commit.html.haml_spec.rb
+++ b/spec/views/projects/commits/_commit.html.haml_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'projects/commits/_commit.html.haml' do
- let(:template) { 'projects/commits/commit.html.haml' }
+ let(:template) { 'projects/commits/commit' }
let(:project) { create(:project, :repository) }
let(:commit) { project.repository.commit(ref) }
diff --git a/spec/views/projects/issues/_issue.html.haml_spec.rb b/spec/views/projects/issues/_issue.html.haml_spec.rb
new file mode 100644
index 00000000000..29bef557304
--- /dev/null
+++ b/spec/views/projects/issues/_issue.html.haml_spec.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'projects/issues/_issue.html.haml' do
+ before do
+ assign(:project, issue.project)
+ assign(:issuable_meta_data, {
+ issue.id => Gitlab::IssuableMetadata::IssuableMeta.new(1, 1, 1, 1)
+ })
+
+ render partial: 'projects/issues/issue', locals: { issue: issue }
+ end
+
+ describe 'timestamp', :freeze_time do
+ context 'when issue is open' do
+ let(:issue) { create(:issue, updated_at: 1.day.ago) }
+
+ it 'shows last updated date' do
+ expect(rendered).to have_content("updated #{format_timestamp(1.day.ago)}")
+ end
+ end
+
+ context 'when issue is closed' do
+ let(:issue) { create(:issue, :closed, closed_at: 2.days.ago, updated_at: 1.day.ago) }
+
+ it 'shows closed date' do
+ expect(rendered).to have_content("closed #{format_timestamp(2.days.ago)}")
+ end
+ end
+
+ context 'when issue is closed but closed_at is empty' do
+ let(:issue) { create(:issue, :closed, closed_at: nil, updated_at: 1.day.ago) }
+
+ it 'shows last updated date' do
+ expect(rendered).to have_content("updated #{format_timestamp(1.day.ago)}")
+ end
+ end
+
+ def format_timestamp(time)
+ l(time, format: "%b %d, %Y")
+ 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 8242d20a9e7..2ea3dc9f76a 100644
--- a/spec/views/projects/jobs/show.html.haml_spec.rb
+++ b/spec/views/projects/jobs/show.html.haml_spec.rb
@@ -27,7 +27,6 @@ RSpec.describe 'projects/jobs/show' do
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
@@ -42,18 +41,4 @@ RSpec.describe 'projects/jobs/show' do
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 '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/projects/project_members/index.html.haml_spec.rb b/spec/views/projects/project_members/index.html.haml_spec.rb
index 0446e1a7fc8..382d400b961 100644
--- a/spec/views/projects/project_members/index.html.haml_spec.rb
+++ b/spec/views/projects/project_members/index.html.haml_spec.rb
@@ -23,7 +23,8 @@ RSpec.describe 'projects/project_members/index', :aggregate_failures do
expect(rendered).to have_content('Project members')
expect(rendered).to have_content('You can invite a new member')
- expect(rendered).to have_selector('.js-import-a-project-modal')
+ expect(rendered).to have_selector('.js-import-project-members-trigger')
+ expect(rendered).to have_selector('.js-import-project-members-modal')
expect(rendered).to have_selector('.js-invite-group-trigger')
expect(rendered).to have_selector('.js-invite-members-trigger')
expect(rendered).not_to have_content('Members can be added by project')
@@ -51,7 +52,8 @@ RSpec.describe 'projects/project_members/index', :aggregate_failures do
expect(rendered).to have_content('Project members')
expect(rendered).not_to have_content('You can invite a new member')
- expect(rendered).not_to have_selector('.js-import-a-project-modal')
+ expect(rendered).not_to have_selector('.js-import-project-members-trigger')
+ expect(rendered).not_to have_selector('.js-import-project-members-modal')
expect(rendered).not_to have_selector('.js-invite-group-trigger')
expect(rendered).not_to have_selector('.js-invite-members-trigger')
expect(rendered).to have_content('Members can be added by project')
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 8853b34074a..664c8b7432e 100644
--- a/spec/views/projects/settings/operations/show.html.haml_spec.rb
+++ b/spec/views/projects/settings/operations/show.html.haml_spec.rb
@@ -10,10 +10,6 @@ RSpec.describe 'projects/settings/operations/show' do
create(:project_error_tracking_setting, project: project)
end
- let_it_be_with_reload(:tracing_setting) do
- create(:project_tracing_setting, project: project)
- end
-
let_it_be(:prometheus_integration) { create(:prometheus_integration, project: project) }
before_all do
@@ -25,8 +21,6 @@ RSpec.describe 'projects/settings/operations/show' do
allow(view).to receive(:error_tracking_setting)
.and_return(error_tracking_setting)
- allow(view).to receive(:tracing_setting)
- .and_return(tracing_setting)
allow(view).to receive(:prometheus_integration)
.and_return(prometheus_integration)
allow(view).to receive(:current_user).and_return(user)
@@ -51,14 +45,4 @@ RSpec.describe 'projects/settings/operations/show' do
end
end
end
-
- describe 'Operations > Tracing' do
- context 'Settings page ' do
- it 'renders the Tracing Settings page' do
- render
-
- expect(rendered).to have_content _('Embed an image of your existing Jaeger server in GitLab.')
- end
- end
- end
end
diff --git a/spec/views/projects/tracing/show.html.haml_spec.rb b/spec/views/projects/tracing/show.html.haml_spec.rb
deleted file mode 100644
index 96dc6a18fc7..00000000000
--- a/spec/views/projects/tracing/show.html.haml_spec.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'projects/tracings/show' do
- let_it_be_with_reload(:project) { create(:project) }
- let_it_be(:error_tracking_setting) { create(:project_error_tracking_setting, project: project) }
-
- before do
- assign(:project, project)
- allow(view).to receive(:error_tracking_setting)
- .and_return(error_tracking_setting)
- end
-
- context 'with project.tracing_external_url' do
- let_it_be(:tracing_url) { 'https://tracing.url' }
- let_it_be(:tracing_setting) { create(:project_tracing_setting, project: project, external_url: tracing_url) }
-
- before do
- allow(view).to receive(:can?).and_return(true)
- allow(view).to receive(:tracing_setting).and_return(tracing_setting)
- end
-
- it 'renders iframe' do
- render
-
- expect(rendered).to match(/iframe/)
- 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/'&gt;" }
-
- 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_xpath("//iframe[@src=\"#{cleaned_url}\"]")
- end
- end
- end
-
- context 'without project.tracing_external_url' do
- before do
- allow(view).to receive(:can?).and_return(true)
- end
-
- it 'renders empty state' do
- render
-
- expect(rendered).to have_link('Add Jaeger URL')
- expect(rendered).not_to match(/iframe/)
- end
- end
-end
diff --git a/spec/views/shared/deploy_tokens/_form.html.haml_spec.rb b/spec/views/shared/deploy_tokens/_form.html.haml_spec.rb
index 5ac42952f78..74ad0ccb77a 100644
--- a/spec/views/shared/deploy_tokens/_form.html.haml_spec.rb
+++ b/spec/views/shared/deploy_tokens/_form.html.haml_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe 'shared/deploy_tokens/_form.html.haml' do
RSpec.shared_examples "display deploy token settings" do |role, shows_package_registry_permissions|
before do
- subject.add_user(user, role)
+ subject.add_member(user, role)
allow(view).to receive(:current_user).and_return(user)
stub_config(packages: { enabled: packages_enabled })
end