diff options
Diffstat (limited to 'spec/spec_helper.rb')
-rw-r--r-- | spec/spec_helper.rb | 120 |
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| |