summaryrefslogtreecommitdiff
path: root/spec/spec_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/spec_helper.rb')
-rw-r--r--spec/spec_helper.rb120
1 files changed, 16 insertions, 104 deletions
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 4e8f990fc10..f8bbad393e6 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -7,9 +7,7 @@ if $LOADED_FEATURES.include?(File.expand_path('fast_spec_helper.rb', __dir__))
abort 'Aborting...'
end
-# Enable deprecation warnings by default and make them more visible
-# to developers to ease upgrading to newer Ruby versions.
-Warning[:deprecated] = true unless ENV.key?('SILENCE_DEPRECATIONS')
+require './spec/deprecation_warnings'
require './spec/deprecation_toolkit_env'
DeprecationToolkitEnv.configure!
@@ -38,6 +36,7 @@ require 'test_prof/recipes/rspec/let_it_be'
require 'test_prof/factory_default'
require 'test_prof/factory_prof/nate_heckler'
require 'parslet/rig/rspec'
+require 'axe-rspec'
rspec_profiling_is_configured =
ENV['RSPEC_PROFILING_POSTGRES_URL'].present? ||
@@ -173,11 +172,15 @@ RSpec.configure do |config|
config.include RailsHelpers
config.include SidekiqMiddleware
config.include StubActionCableConnection, type: :channel
+ config.include StubMemberAccessLevel
config.include StubSpamServices
config.include SnowplowHelpers
config.include RenderedHelpers
config.include RSpec::Benchmark::Matchers, type: :benchmark
config.include DetailedErrorHelpers
+ config.include RequestUrgencyMatcher, type: :controller
+ config.include RequestUrgencyMatcher, type: :request
+ config.include Capybara::RSpecMatchers, type: :request
config.include_context 'when rendered has no HTML escapes', type: :view
@@ -266,6 +269,10 @@ RSpec.configure do |config|
stub_feature_flags(ci_queueing_disaster_recovery_disable_fair_scheduling: false)
stub_feature_flags(ci_queueing_disaster_recovery_disable_quota: false)
+ # Only a few percent of users will be "enrolled" into the new nav with this flag.
+ # Having it enabled globally would make it impossible to test the current nav.
+ stub_feature_flags(super_sidebar_nav_enrolled: false)
+
# It's disabled in specs because we don't support certain features which
# cause spec failures.
stub_feature_flags(use_click_house_database_for_error_tracking: false)
@@ -304,14 +311,6 @@ RSpec.configure do |config|
# most cases. We do test the email verification flow in the appropriate specs.
stub_feature_flags(require_email_verification: false)
- # This feature flag is for selectively disabling by actor, therefore we don't enable it by default.
- # See https://docs.gitlab.com/ee/development/feature_flags/#selectively-disable-by-actor
- stub_feature_flags(legacy_merge_request_state_check_for_merged_result_pipelines: false)
-
- # Disable the `vue_issues_dashboard` feature flag in specs as we migrate the issues
- # dashboard page to Vue. https://gitlab.com/gitlab-org/gitlab/-/issues/379025
- stub_feature_flags(vue_issues_dashboard: false)
-
allow(Gitlab::GitalyClient).to receive(:can_use_disk?).and_return(enable_rugged)
else
unstub_all_feature_flags
@@ -355,92 +354,7 @@ RSpec.configure do |config|
# The ongoing implementation of Admin Mode for API is behind the :admin_mode_for_api feature flag.
# All API specs will be adapted continuously. The following list contains the specs that have not yet been adapted.
# The feature flag is disabled for these specs as long as they are not yet adapted.
- admin_mode_for_api_feature_flag_paths = %w[
- ./spec/frontend/fixtures/api_deploy_keys.rb
- ./spec/requests/api/admin/batched_background_migrations_spec.rb
- ./spec/requests/api/admin/ci/variables_spec.rb
- ./spec/requests/api/admin/instance_clusters_spec.rb
- ./spec/requests/api/admin/plan_limits_spec.rb
- ./spec/requests/api/admin/sidekiq_spec.rb
- ./spec/requests/api/broadcast_messages_spec.rb
- ./spec/requests/api/ci/pipelines_spec.rb
- ./spec/requests/api/ci/runners_reset_registration_token_spec.rb
- ./spec/requests/api/ci/runners_spec.rb
- ./spec/requests/api/deploy_keys_spec.rb
- ./spec/requests/api/deploy_tokens_spec.rb
- ./spec/requests/api/freeze_periods_spec.rb
- ./spec/requests/api/graphql/user/starred_projects_query_spec.rb
- ./spec/requests/api/groups_spec.rb
- ./spec/requests/api/issues/get_group_issues_spec.rb
- ./spec/requests/api/issues/get_project_issues_spec.rb
- ./spec/requests/api/issues/issues_spec.rb
- ./spec/requests/api/issues/post_projects_issues_spec.rb
- ./spec/requests/api/issues/put_projects_issues_spec.rb
- ./spec/requests/api/keys_spec.rb
- ./spec/requests/api/merge_requests_spec.rb
- ./spec/requests/api/namespaces_spec.rb
- ./spec/requests/api/notes_spec.rb
- ./spec/requests/api/pages/internal_access_spec.rb
- ./spec/requests/api/pages/pages_spec.rb
- ./spec/requests/api/pages/private_access_spec.rb
- ./spec/requests/api/pages/public_access_spec.rb
- ./spec/requests/api/pages_domains_spec.rb
- ./spec/requests/api/personal_access_tokens/self_information_spec.rb
- ./spec/requests/api/personal_access_tokens_spec.rb
- ./spec/requests/api/project_export_spec.rb
- ./spec/requests/api/project_repository_storage_moves_spec.rb
- ./spec/requests/api/project_snapshots_spec.rb
- ./spec/requests/api/project_snippets_spec.rb
- ./spec/requests/api/projects_spec.rb
- ./spec/requests/api/releases_spec.rb
- ./spec/requests/api/sidekiq_metrics_spec.rb
- ./spec/requests/api/snippet_repository_storage_moves_spec.rb
- ./spec/requests/api/snippets_spec.rb
- ./spec/requests/api/statistics_spec.rb
- ./spec/requests/api/system_hooks_spec.rb
- ./spec/requests/api/topics_spec.rb
- ./spec/requests/api/usage_data_non_sql_metrics_spec.rb
- ./spec/requests/api/usage_data_queries_spec.rb
- ./spec/requests/api/users_spec.rb
- ./spec/requests/api/v3/github_spec.rb
- ./spec/support/shared_examples/requests/api/custom_attributes_shared_examples.rb
- ./spec/support/shared_examples/requests/api/hooks_shared_examples.rb
- ./spec/support/shared_examples/requests/api/notes_shared_examples.rb
- ./spec/support/shared_examples/requests/api/pipelines/visibility_table_shared_examples.rb
- ./spec/support/shared_examples/requests/api/repository_storage_moves_shared_examples.rb
- ./spec/support/shared_examples/requests/api/snippets_shared_examples.rb
- ./spec/support/shared_examples/requests/api/status_shared_examples.rb
- ./spec/support/shared_examples/requests/clusters/certificate_based_clusters_feature_flag_shared_examples.rb
- ./spec/support/shared_examples/requests/snippet_shared_examples.rb
- ./ee/spec/requests/api/audit_events_spec.rb
- ./ee/spec/requests/api/ci/minutes_spec.rb
- ./ee/spec/requests/api/elasticsearch_indexed_namespaces_spec.rb
- ./ee/spec/requests/api/epics_spec.rb
- ./ee/spec/requests/api/geo_nodes_spec.rb
- ./ee/spec/requests/api/geo_replication_spec.rb
- ./ee/spec/requests/api/geo_spec.rb
- ./ee/spec/requests/api/group_push_rule_spec.rb
- ./ee/spec/requests/api/group_repository_storage_moves_spec.rb
- ./ee/spec/requests/api/groups_spec.rb
- ./ee/spec/requests/api/internal/upcoming_reconciliations_spec.rb
- ./ee/spec/requests/api/invitations_spec.rb
- ./ee/spec/requests/api/license_spec.rb
- ./ee/spec/requests/api/merge_request_approvals_spec.rb
- ./ee/spec/requests/api/namespaces_spec.rb
- ./ee/spec/requests/api/notes_spec.rb
- ./ee/spec/requests/api/project_aliases_spec.rb
- ./ee/spec/requests/api/project_approval_rules_spec.rb
- ./ee/spec/requests/api/project_approval_settings_spec.rb
- ./ee/spec/requests/api/project_approvals_spec.rb
- ./ee/spec/requests/api/projects_spec.rb
- ./ee/spec/requests/api/settings_spec.rb
- ./ee/spec/requests/api/users_spec.rb
- ./ee/spec/requests/api/vulnerabilities_spec.rb
- ./ee/spec/requests/api/vulnerability_exports_spec.rb
- ./ee/spec/requests/api/vulnerability_findings_spec.rb
- ./ee/spec/requests/api/vulnerability_issue_links_spec.rb
- ./ee/spec/support/shared_examples/requests/api/project_approval_rules_api_shared_examples.rb
- ]
+ admin_mode_for_api_feature_flag_paths = %w[]
if example.metadata[:file_path].start_with?(*admin_mode_for_api_feature_flag_paths)
stub_feature_flags(admin_mode_for_api: false)
@@ -544,19 +458,17 @@ RSpec.configure do |config|
end
end
- # Makes diffs show entire non-truncated values.
- config.before(:each, unlimited_max_formatted_output_length: true) do |_example|
- config.expect_with :rspec do |c|
- c.max_formatted_output_length = nil
- end
- end
-
# Ensures that any Javascript script that tries to make the external VersionCheck API call skips it and returns a response
config.before(:each, :js) do
allow_any_instance_of(VersionCheck).to receive(:response).and_return({ "severity" => "success" })
end
end
+# Disabled because it's causing N+1 queries.
+# See https://gitlab.com/gitlab-org/gitlab/-/issues/396352.
+# Support::AbilityCheck.inject(Ability.singleton_class)
+Support::PermissionsCheck.inject(Ability.singleton_class)
+
ActiveRecord::Migration.maintain_test_schema!
Shoulda::Matchers.configure do |config|