rspec unit pg13 1/28
Passed Started
by
@ntepluhina

Natalia Tepluhina
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G, system ID: s_673deea48c2a3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:73740c557807c4bc5d692f263c0e35454270600da4b22bbe952331411426c8b5 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:3174001f839c42e299ac06a42f8ded446edfcb33b0eb820874749a3f53eb799c ...11Starting service redis:6.2-alpine ...12Pulling docker image redis:6.2-alpine ...13Using docker image sha256:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...14Waiting for services to be up and running (timeout 30 seconds)...15Authenticating with credentials from job payload (GitLab Registry)16Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...17Using docker image sha256:e2241823d5bdc5e6df7c49ebc7b24c52db10bbb41407a5256c7f2d24ff464f7f for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:f20112d766000374a74ca341735b93b35180b88d806027d821aa8800d0522906 ...19Running on runner-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1684473931-cea2eb1f...21$ eval "$CI_PRE_CLONE_SCRIPT"22Fetching changes with git depth set to 20...23Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/24Created fresh repository.25remote: Enumerating objects: 144008, done. 26remote: Counting objects: 100% (144008/144008), done. 27remote: Compressing objects: 100% (102076/102076), done. 28remote: Total 144008 (delta 64383), reused 89305 (delta 36415), pack-reused 0 29Receiving objects: 100% (144008/144008), 126.62 MiB | 34.35 MiB/s, done.30Resolving deltas: 100% (64383/64383), done.32 * [new ref] refs/pipelines/872240128 -> refs/pipelines/87224012833Checking out 4e5a698c as detached HEAD (ref is refs/merge-requests/120843/merge)...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...38Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 39Successfully extracted cache41Downloading artifacts for compile-test-assets (4313143404)...42Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143404 responseStatus=200 OK token=64_is57B43Downloading artifacts for detect-tests (4313143415)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143415 responseStatus=200 OK token=64_is57B45Downloading artifacts for retrieve-tests-metadata (4313143420)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143420 responseStatus=200 OK token=64_is57B47Downloading artifacts for setup-test-env (4313143408)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143408 responseStatus=200 OK token=64_is57B50Using docker image sha256:e2241823d5bdc5e6df7c49ebc7b24c52db10bbb41407a5256c7f2d24ff464f7f for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:f20112d766000374a74ca341735b93b35180b88d806027d821aa8800d0522906 ...51$ echo $FOSS_ONLY52$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb53$ export GOPATH=$CI_PROJECT_DIR/.go54$ mkdir -p $GOPATH55$ source scripts/utils.sh56$ source scripts/prepare_build.sh711Using decomposed database config (config/database.yml.decomposed-postgresql)712Geo DB won't be set up.713Embedding DB won't be set up.729$ source ./scripts/rspec_helpers.sh730$ run_timed_command "gem install knapsack --no-document"731$ gem install knapsack --no-document732Successfully installed knapsack-4.0.07331 gem installed734==> 'gem install knapsack --no-document' succeeded in 0 seconds.735$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"737$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"742$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"743$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"744SKIP_FLAKY_TESTS_AUTOMATICALLY: 745RETRY_FAILED_TESTS_IN_NEW_PROCESS: true746KNAPSACK_GENERATE_REPORT: true747FLAKY_RSPEC_GENERATE_REPORT: true748KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb749KNAPSACK_LOG_LEVEL: debug750KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_1_28_report.json751FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json752FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_1_28_report.json753NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_1_28_report.json754SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13_1_28.txt755CRYSTALBALL: 756RSPEC_TESTS_MAPPING_ENABLED: 757RSPEC_TESTS_FILTER_FILE: 758Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration -- spec/services/notification_service_spec.rb spec/lib/gitlab/background_migration/encrypt_integration_properties_spec.rb spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb spec/services/groups/update_service_spec.rb spec/services/ci/reset_skipped_jobs_service_spec.rb spec/helpers/visibility_level_helper_spec.rb spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb spec/lib/gitlab/kubernetes/kube_client_spec.rb spec/services/search_service_spec.rb spec/finders/todos_finder_spec.rb spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb spec/lib/gitlab/project_template_spec.rb spec/lib/gitlab/ci/config/entry/job_spec.rb spec/finders/metrics/dashboards/annotations_finder_spec.rb spec/models/commit_range_spec.rb spec/services/users/destroy_service_spec.rb spec/lib/container_registry/client_spec.rb spec/lib/gitlab/counters/buffered_counter_spec.rb spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb spec/lib/gitlab/search/abuse_detection_spec.rb spec/services/projects/git_deduplication_service_spec.rb spec/initializers/load_balancing_spec.rb spec/services/merge_requests/retarget_chain_service_spec.rb spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb spec/lib/gitlab/pagination/keyset/order_spec.rb spec/policies/user_policy_spec.rb spec/workers/merge_request_cleanup_refs_worker_spec.rb spec/services/discussions/update_diff_position_service_spec.rb spec/policies/ci/runner_policy_spec.rb spec/services/metrics/dashboard/custom_dashboard_service_spec.rb spec/lib/gitlab/ci/config/external/mapper_spec.rb spec/models/external_pull_request_spec.rb spec/lib/gitlab/user_access_snippet_spec.rb spec/finders/concerns/finder_with_cross_project_access_spec.rb spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb spec/services/namespaces/package_settings/update_service_spec.rb spec/views/notify/pipeline_failed_email.html.haml_spec.rb spec/lib/gitlab/diff/suggestions_parser_spec.rb spec/lib/gitlab/middleware/multipart_spec.rb spec/finders/context_commits_finder_spec.rb spec/models/customer_relations/contact_spec.rb spec/models/personal_snippet_spec.rb spec/helpers/ci/runners_helper_spec.rb spec/graphql/types/issue_type_spec.rb spec/models/members/last_group_owner_assigner_spec.rb spec/workers/pipeline_metrics_worker_spec.rb spec/models/ci/unit_test_spec.rb spec/lib/gitlab/http_io_spec.rb spec/lib/gitlab/ci/build/auto_retry_spec.rb spec/services/todos/destroy/project_private_service_spec.rb spec/workers/packages/nuget/extraction_worker_spec.rb spec/models/deploy_key_spec.rb spec/models/ci/job_token/allowlist_spec.rb spec/policies/protected_branch_policy_spec.rb spec/services/system_notes/alert_management_service_spec.rb spec/lib/gitlab/email/service_desk_email_spec.rb spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb spec/workers/environments/auto_stop_worker_spec.rb spec/models/uploads/fog_spec.rb spec/services/milestones/issues_count_service_spec.rb spec/serializers/merge_request_metrics_helper_spec.rb spec/lib/gitlab/ci/jwt_v2_spec.rb spec/models/packages/debian/project_component_spec.rb spec/serializers/fork_namespace_entity_spec.rb spec/lib/gitlab/database/postgres_index_spec.rb spec/lib/gitlab/jira_import_spec.rb spec/models/packages/debian/file_entry_spec.rb spec/lib/banzai/filter/custom_emoji_filter_spec.rb spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb spec/services/issuable/destroy_label_links_service_spec.rb spec/models/custom_emoji_spec.rb spec/validators/public_url_validator_spec.rb spec/models/concerns/has_environment_scope_spec.rb spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb spec/lib/gitlab/ci/reports/security/identifier_spec.rb spec/lib/gitlab/kubernetes_spec.rb spec/lib/gitlab/patch/redis_cache_store_spec.rb spec/models/ci/build_pending_state_spec.rb spec/graphql/resolvers/groups_resolver_spec.rb spec/finders/user_group_notification_settings_finder_spec.rb spec/workers/integrations/slack_event_worker_spec.rb spec/lib/gitlab/email/failure_handler_spec.rb spec/workers/container_expiration_policy_worker_spec.rb spec/tasks/gitlab/packages/migrate_rake_spec.rb spec/lib/gitlab/import_export/lfs_saver_spec.rb spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb spec/models/projects/import_export/relation_export_spec.rb spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb spec/models/metrics/users_starred_dashboard_spec.rb spec/rubocop/formatter/graceful_formatter_spec.rb spec/lib/gitlab/sql/except_spec.rb spec/lib/sidebars/admin/menus/admin_settings_menu_spec.rb spec/workers/object_pool/join_worker_spec.rb spec/lib/sidebars/admin/menus/abuse_reports_menu_spec.rb spec/lib/api/helpers/merge_requests_helpers_spec.rb spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb spec/services/projects/lfs_pointers/lfs_link_service_spec.rb spec/finders/boards/boards_finder_spec.rb spec/lib/gitlab/cache_spec.rb spec/lib/gitlab/jira_import/issue_serializer_spec.rb spec/models/ci/pipeline_message_spec.rb spec/rubocop/cop/safe_params_spec.rb spec/workers/delete_merged_branches_worker_spec.rb spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb spec/finders/groups/accepting_project_imports_finder_spec.rb spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb spec/lib/gitlab/dependency_linker_spec.rb spec/lib/api/entities/merge_request_approvals_spec.rb spec/lib/gitlab/ci/input/inputs_spec.rb spec/helpers/hooks_helper_spec.rb spec/lib/gitlab/sample_data_template_spec.rb spec/lib/atlassian/jira_connect/serializers/build_entity_spec.rb spec/tasks/admin_mode_spec.rb spec/helpers/nav/new_dropdown_helper_spec.rb spec/models/approval_spec.rb spec/lib/gitlab/background_migration/populate_operation_visibility_permissions_from_operations_spec.rb spec/models/application_setting/term_spec.rb spec/lib/gitlab/ci/config/entry/imageable_spec.rb spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb spec/graphql/resolvers/release_milestones_resolver_spec.rb spec/workers/releases/create_evidence_worker_spec.rb spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb spec/graphql/types/packages/package_type_spec.rb spec/tooling/lib/tooling/mappings/view_to_js_mappings_spec.rb spec/helpers/environment_helper_spec.rb spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb spec/services/award_emojis/collect_user_emoji_service_spec.rb spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb spec/rubocop/cop/database/disable_referential_integrity_spec.rb spec/graphql/types/release_assets_input_type_spec.rb spec/workers/packages/cleanup_package_file_worker_spec.rb spec/serializers/trigger_variable_entity_spec.rb spec/components/pajamas/component_spec.rb spec/config/mail_room_spec.rb spec/helpers/plan_limits_helper_spec.rb spec/services/dependency_proxy/auth_token_service_spec.rb spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb spec/lib/gitlab/namespaced_session_store_spec.rb spec/workers/purge_dependency_proxy_cache_worker_spec.rb spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb spec/workers/ci/parse_secure_file_metadata_worker_spec.rb spec/services/incident_management/timeline_event_tags/create_service_spec.rb spec/initializers/forbid_sidekiq_in_transactions_spec.rb spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb spec/services/alert_management/metric_images/upload_service_spec.rb spec/services/bulk_imports/export_service_spec.rb spec/lib/gitlab/slash_commands/presenters/access_spec.rb spec/services/achievements/revoke_service_spec.rb spec/lib/gitlab/database/schema_validation/runner_spec.rb spec/models/concerns/usage_statistics_spec.rb spec/services/boards/visits/create_service_spec.rb spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb spec/lib/gitlab/auth/ldap/auth_hash_spec.rb spec/lib/gitlab/ci/trace/remote_checksum_spec.rb spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb spec/lib/gitlab/template/finders/repo_template_finders_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/work_items_activity_aggregated_metric_spec.rb spec/models/concerns/integrations/reset_secret_fields_spec.rb spec/lib/gitlab/cross_project_access_spec.rb spec/lib/gitlab/ci/trace/section_parser_spec.rb spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb spec/graphql/resolvers/crm/organization_state_counts_resolver_spec.rb spec/helpers/numbers_helper_spec.rb spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb spec/workers/bulk_imports/relation_batch_export_worker_spec.rb spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb spec/serializers/merge_request_sidebar_extras_entity_spec.rb spec/lib/gitlab/request_forgery_protection_spec.rb spec/services/users/respond_to_terms_service_spec.rb spec/models/gpg_key_subkey_spec.rb spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb spec/models/concerns/case_sensitivity_spec.rb spec/services/users/saved_replies/create_service_spec.rb spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb spec/lib/sidebars/projects/menus/wiki_menu_spec.rb spec/models/integrations/pivotaltracker_spec.rb spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb spec/helpers/calendar_helper_spec.rb spec/workers/gitlab/github_import/import_note_worker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb spec/lib/gitlab/conan_token_spec.rb spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb spec/graphql/types/permission_types/base_permission_type_spec.rb spec/lib/gitlab/empty_search_results_spec.rb spec/lib/gitlab/config/entry/unspecified_spec.rb spec/graphql/types/customer_relations/organization_type_spec.rb spec/helpers/groups/settings_helper_spec.rb spec/uploaders/content_type_whitelist_spec.rb spec/graphql/types/packages/cleanup/policy_type_spec.rb spec/rubocop/cop/qa/selector_usage_spec.rb spec/lib/gitlab/audit/null_target_spec.rb spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb spec/serializers/import/fogbugz_provider_repo_entity_spec.rb spec/lib/gitlab/import_export/log_util_spec.rb spec/lib/gitlab/import/errors_spec.rb spec/lib/gitlab/doorkeeper_secret_storing/token/pbkdf2_sha512_spec.rb spec/policies/instance_metadata_policy_spec.rb spec/lib/gitlab/metrics/memory_spec.rb spec/lib/gitlab/git/bundle_file_spec.rb spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb spec/graphql/types/ci/catalog/resource_type_spec.rb spec/services/metrics/sample_metrics_service_spec.rb spec/graphql/types/design_management/design_collection_type_spec.rb spec/lib/gitlab/metrics/subscribers/action_view_spec.rb spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_table_columns_spec.rb spec/graphql/types/packages/tag_type_spec.rb spec/scripts/generate_failed_package_and_test_mr_message_spec.rb spec/lib/api/helpers/common_helpers_spec.rb spec/views/errors/access_denied.html.haml_spec.rb spec/graphql/types/projects/base_service_type_spec.rb spec/lib/serializers/unsafe_json_spec.rb spec/lib/csv_builders/stream_spec.rb spec/serializers/admin/user_serializer_spec.rb spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb spec/lib/api/entities/nuget/dependency_group_spec.rb spec/lib/gitlab/webpack/graphql_known_operations_spec.rb spec/routing/projects/security/configuration_controller_routing_spec.rb spec/graphql/types/merge_request_connection_type_spec.rb spec/scripts/api/create_merge_request_discussion_spec.rb spec/lib/api/entities/projects/repository_storage_move_spec.rb spec/graphql/types/security/report_types_enum_spec.rb spec/dependencies/omniauth_saml_spec.rb spec/models/concerns/runners_token_prefixable_spec.rb spec/lib/gitlab/database/pg_depend_spec.rbKnapsack report generator started!759warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.761/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN762/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here763/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION764/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here765/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE766/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here767/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS768/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here769Run options: exclude {:quarantine=>true, :level=>"background_migration"}770Test environment set up in 0.676630506 seconds771NotificationService772 .permitted_actions773 includes public methods774 excludes EXCLUDED_ACTIONS775 excludes protected and private methods776 #async777 returns an Async object with the correct parent778 when receiving a public method779 schedules a MailScheduler::NotificationServiceWorker780 when receiving a private method781 raises NoMethodError782 when receiving a non-existent method783 raises NoMethodError784 Keys785 #new_key786 sends email to key owner787 never emails the ghost user788 does not send email to key owner789 GpgKeys790 #new_gpg_key791 sends email to key owner792 never emails the ghost user793 does not send email to key owner794 AccessToken795 #access_token_created796 sends email to the token owner797 when user is not allowed to receive notifications798 does not send email to the token owner799 #access_token_about_to_expire800 sends email to the token owner801 #access_token_expired802 sends email to the token owner803 when user is not allowed to receive notifications804 does not send email to the token owner805 #access_token_revoked806 sends email to the token owner without source807 sends email to the token owner with source808 when user is not allowed to receive notifications809 does not send email to the token owner810 SSH Keys811 #ssh_key_expired812 sends email to the token owner813 when user is not allowed to receive notifications814 does not send email to the token owner815 #ssh_key_expiring_soon816 sends email to the token owner817 when user is not allowed to receive notifications818 does not send email to the token owner819 #unknown_sign_in820 sends email to the user821 #disabled_two_factor822 sends email to the user823 #new_email_address_added824 sends email to the user825 Notes826 issue note827 issue_email_participants828 behaves like no participants are notified829 does not send the email830 behaves like notification with exact metric events831 adds metric event832 do exist and note not confidential833 sends the email834 behaves like notification with exact metric events835 adds metric event836 do exist and note is confidential837 behaves like no participants are notified838 does not send the email839 behaves like notification with exact metric events840 adds metric event841 #new_note842 filters out "mentioned in" notes843 with users844 sends emails to recipients845 emails the note author if they've opted into notifications about their activity846 behaves like project emails are disabled847 sends no emails with project emails disabled848 sends emails to someone849 participating850 by note851 is expected not to have enqueued job852 in project that belongs to a group853 which is a top-level group854 behaves like new note notifications855 sends notifications856 behaves like project emails are disabled857 sends no emails with project emails disabled858 sends emails to someone859 which is a subgroup860 overrides child objects with global level861 behaves like new note notifications862 sends notifications863 confidential issue note864 filters out users that can not read the issue865 on project that belongs to subgroup866 when user is group guest member867 does not email guest user868 issue note mention869 #new_note870 notifies the team members871 notifies parent group members with mention level872 filters out "mentioned in" notes873 behaves like project emails are disabled874 sends no emails with project emails disabled875 sends emails to someone876 when note is confidential877 does not notify users that cannot read note878 project snippet note879 #new_note880 notifies the team members881 personal snippet note882 #new_note883 notifies the participants884 commit note885 #new_note, #perform_enqueued_jobs886 is expected to eq 0887 is expected to eq 0888 is expected to eq 0889 behaves like project emails are disabled890 sends no emails with project emails disabled891 sends emails to someone892 merge request diff note893 #new_note894 records sent notifications895 behaves like project emails are disabled896 sends no emails with project emails disabled897 sends emails to someone898 design diff note899 design management is enabled900 sends new note notifications901 design management is disabled902 does not notify anyone903 #send_new_release_notifications904 when release author is blocked905 does not send any notification906 when release author is a ghost907 does not send any notification908 when recipients for a new release exist909 notifies the expected users910 Participating project notification settings have priority over group and global settings if available911 custom on group912 does not send an email to user1 when a new issue is created and new_issue is set to nil913 does not send an email to user1 when a new issue is created and new_issue is set to true914 watch on group915 does not send an email916 custom on global, global on group917 does not send an email918 watch on global, global on group919 does not send an email920 Issues921 #new_issue922 notifies the expected users923 properly prioritizes notification reason924 adds "assigned" reason for assignees if any925 emails any mentioned users with the mention level926 emails the author if they've opted into notifications about their activity927 doesn't email the author if they haven't opted into notifications about their activity928 emails subscribers of the issue's labels and adds `subscribed` reason929 when user has an only mention notification setting930 does not send assignee notifications931 behaves like project emails are disabled932 sends no emails with project emails disabled933 sends emails to someone934 confidential issues935 emails subscribers of the issue's labels that can read the issue936 when the author is not allowed to trigger notifications937 because they are blocked938 does not send any notification939 because they are a ghost940 does not send any notification941 #new_mentions_in_issue942 sends no emails when no new mentions are present943 emails new mentions with a watch level higher than mention944 does not email new mentions with a watch level equal to or less than mention945 emails new mentions despite being unsubscribed946 sends the proper notification reason header947 behaves like project emails are disabled948 sends no emails with project emails disabled949 sends emails to someone950 where current_user is blocked951 does not send any notification952 where current_user is a ghost953 does not send any notification954 #reassigned_issue955 emails new assignee956 adds "assigned" reason for new assignee957 emails previous assignee even if they have the "on mention" notif level958 emails new assignee even if they have the "on mention" notif level959 does not email new assignee if they are the current user960 behaves like participating notifications961 behaves like participating by note notification962 emails the participant963 for subgroups964 emails the participant965 behaves like participating by author notification966 emails the participant967 behaves like participating by assignee notification968 emails the participant969 behaves like participating by confidential note notification970 when user is mentioned on confidential note971 only emails authorized users972 behaves like project emails are disabled973 sends no emails with project emails disabled974 sends emails to someone975 #relabeled_issue976 emails the current user if they've opted into notifications about their activity977 doesn't email the current user if they haven't opted into notifications about their activity978 doesn't send email to anyone but subscribers of the given labels979 doesn't send multiple email when a user is subscribed to multiple given labels980 behaves like project emails are disabled981 sends no emails with project emails disabled982 sends emails to someone983 confidential issues984 emails subscribers of the issue's labels that can read the issue985 #removed_milestone on Issue987 behaves like altered milestone notification on issue988 sends the email to the correct people989 behaves like project emails are disabled990 sends no emails with project emails disabled991 sends emails to someone992 behaves like participating by confidential note notification993 when user is mentioned on confidential note994 only emails authorized users995 confidential issues996 emails subscribers of the issue's milestone that can read the issue997 #changed_milestone on Issue999 behaves like altered milestone notification on issue1000 sends the email to the correct people1001 behaves like project emails are disabled1002 sends no emails with project emails disabled1003 sends emails to someone1004 confidential issues1005 emails subscribers of the issue's milestone that can read the issue1006 #close_issue1007 sends email to issue assignee and issue author1008 adds "subscribed" reason to subscriber emails1009 behaves like participating notifications1010 behaves like participating by note notification1011 emails the participant1012 for subgroups1013 emails the participant1014 behaves like participating by author notification1015 emails the participant1016 behaves like participating by assignee notification1017 emails the participant1018 behaves like project emails are disabled1019 sends no emails with project emails disabled1020 sends emails to someone1021 behaves like participating by confidential note notification1022 when user is mentioned on confidential note1023 only emails authorized users1024 #reopen_issue1025 sends email to issue notification recipients1026 behaves like participating notifications1027 behaves like participating by note notification1028 emails the participant1029 for subgroups1030 emails the participant1031 behaves like participating by author notification1032 emails the participant1033 behaves like participating by assignee notification1034 emails the participant1035 behaves like participating by confidential note notification1036 when user is mentioned on confidential note1037 only emails authorized users1038 behaves like project emails are disabled1039 sends no emails with project emails disabled1040 sends emails to someone1041 #issue_moved1042 sends email to issue notification recipients1043 behaves like participating notifications1044 behaves like participating by note notification1045 emails the participant1046 for subgroups1047 emails the participant1048 behaves like participating by author notification1049 emails the participant1050 behaves like participating by assignee notification1051 emails the participant1052 behaves like participating by confidential note notification1053 when user is mentioned on confidential note1054 only emails authorized users1055 behaves like project emails are disabled1056 sends no emails with project emails disabled1057 sends emails to someone1058 #issue_cloned1059 sends email to issue notification recipients1060 behaves like participating notifications1061 behaves like participating by note notification1062 emails the participant1063 for subgroups1064 emails the participant1065 behaves like participating by author notification1066 emails the participant1067 behaves like participating by assignee notification1068 emails the participant1069 behaves like participating by confidential note notification1070 when user is mentioned on confidential note1071 only emails authorized users1072 behaves like project emails are disabled1073 sends no emails with project emails disabled1074 sends emails to someone1075 #issue_due1076 sends email to issue notification recipients, excluding watchers1077 sends the email from the author1078 behaves like participating notifications1079 behaves like participating by note notification1080 emails the participant1081 for subgroups1082 emails the participant1083 behaves like participating by author notification1084 emails the participant1085 behaves like participating by assignee notification1086 emails the participant1087 behaves like participating by confidential note notification1088 when user is mentioned on confidential note1089 only emails authorized users1090 behaves like project emails are disabled1091 sends no emails with project emails disabled1092 sends emails to someone1093 Merge Requests1094 #new_merge_request1095 is expected to eq 01096 adds "assigned" reason for assignee, if any1097 emails any mentioned users with the mention level1098 emails the author if they've opted into notifications about their activity1099 doesn't email the author if they haven't opted into notifications about their activity1100 emails subscribers of the merge request's labels1101 behaves like project emails are disabled1102 sends no emails with project emails disabled1103 sends emails to someone1104 Approvals1105 #approve_mr1106 will notify the author, subscribers, and assigned users1107 #unapprove_mr1108 will notify the author, subscribers, and assigned users1109 participating1110 behaves like participating by assignee notification1111 emails the participant1112 behaves like participating by note notification1113 emails the participant1114 for subgroups1115 emails the participant1116 by author1117 is expected to eq 01118 when the author is not allowed to trigger notifications1119 because they are blocked1120 behaves like is not able to send notifications1121 does not send any notification1122 because they are a ghost1123 behaves like is not able to send notifications1124 does not send any notification1125 #new_mentions_in_merge_request1126 sends no emails when no new mentions are present1127 emails new mentions with a watch level higher than mention1128 does not email new mentions with a watch level equal to or less than mention1129 emails new mentions despite being unsubscribed1130 sends the proper notification reason header1131 behaves like project emails are disabled1132 sends no emails with project emails disabled1133 sends emails to someone1134 where current_user is blocked1135 does not send any notification1136 where current_user is a ghost1137 does not send any notification1138 #reassigned_merge_request1139 is expected to eq 01140 adds "assigned" reason for new assignee1141 behaves like participating notifications1142 behaves like participating by note notification1143 emails the participant1144 for subgroups1145 emails the participant1146 behaves like participating by author notification1147 emails the participant1148 behaves like participating by assignee notification1149 emails the participant1150 behaves like project emails are disabled1151 sends no emails with project emails disabled1152 sends emails to someone1153 #changed_reviewer_of_merge_request1154 sends emails to relevant users only1155 adds "review requested" reason for new reviewer1156 participating notifications with reviewers1157 behaves like participating notifications1158 behaves like participating by note notification1159 emails the participant1160 for subgroups1161 emails the participant1162 behaves like participating by author notification1163 emails the participant1164 behaves like participating by assignee notification1165 emails the participant1166 behaves like participating by reviewer notification1167 emails the participant1168 behaves like project emails are disabled1169 sends no emails with project emails disabled1170 sends emails to someone1171 #change_in_merge_request_draft_status1172 sends emails to relevant users only1173 behaves like participating notifications1174 behaves like participating by note notification1175 emails the participant1176 for subgroups1177 emails the participant1178 behaves like participating by author notification1179 emails the participant1180 behaves like participating by assignee notification1181 emails the participant1182 behaves like project emails are disabled1183 sends no emails with project emails disabled1184 sends emails to someone1185 #push_to_merge_request1186 is expected to eq 01187 triggers push_to_merge_request_email with corresponding email1188 number_of_new_commits: 0, number_of_new_commits_displayed: 01189 triggers the corresponding mailer method with list of stripped commits1190 number_of_new_commits: 18, number_of_new_commits_displayed: 181191 triggers the corresponding mailer method with list of stripped commits1192 number_of_new_commits: 19, number_of_new_commits_displayed: 191193 triggers the corresponding mailer method with list of stripped commits1194 number_of_new_commits: 20, number_of_new_commits_displayed: 201195 triggers the corresponding mailer method with list of stripped commits1196 number_of_new_commits: 21, number_of_new_commits_displayed: 201197 triggers the corresponding mailer method with list of stripped commits1198 number_of_new_commits: 22, number_of_new_commits_displayed: 201199 triggers the corresponding mailer method with list of stripped commits1200 there is only one existing commit1201 triggers corresponding mailer method with only one existing commit1202 behaves like participating notifications1203 behaves like participating by note notification1204 emails the participant1205 for subgroups1206 emails the participant1207 behaves like participating by author notification1208 emails the participant1209 behaves like participating by assignee notification1210 emails the participant1211 behaves like project emails are disabled1212 sends no emails with project emails disabled1213 sends emails to someone1214 #relabel_merge_request1215 doesn't send email to anyone but subscribers of the given labels1216 behaves like project emails are disabled1217 sends no emails with project emails disabled1218 sends emails to someone1219 #removed_milestone on MergeRequest1220 behaves like altered milestone notification on merge request1221 sends the email to the correct people1222 behaves like project emails are disabled1223 sends no emails with project emails disabled1224 sends emails to someone1225 #changed_milestone on MergeRequest1226 behaves like altered milestone notification on merge request1227 sends the email to the correct people1228 behaves like project emails are disabled1229 sends no emails with project emails disabled1230 sends emails to someone1231 #merge_request_unmergeable1232 sends email to merge request author1233 behaves like project emails are disabled1234 sends no emails with project emails disabled1235 sends emails to someone1236 when merge_when_pipeline_succeeds is true1237 sends email to merge request author and merge_user1238 #closed_merge_request1239 is expected to eq 01240 behaves like participating notifications1241 behaves like participating by note notification1242 emails the participant1243 for subgroups1244 emails the participant1245 behaves like participating by author notification1246 emails the participant1247 behaves like participating by assignee notification1248 emails the participant1249 behaves like project emails are disabled1250 sends no emails with project emails disabled1251 sends emails to someone1252 #merged_merge_request1253 is expected to eq 01254 notifies the merger when the pipeline succeeds is true1255 does not notify the merger when the pipeline succeeds is false1256 notifies the merger when the pipeline succeeds is false but they've opted into notifications about their activity1257 behaves like participating notifications1258 behaves like participating by note notification1259 emails the participant1260 for subgroups1261 emails the participant1262 behaves like participating by author notification1263 emails the participant1264 behaves like participating by assignee notification1265 emails the participant1266 behaves like project emails are disabled1267 sends no emails with project emails disabled1268 sends emails to someone1269 #reopen_merge_request1270 is expected to eq 01271 behaves like participating notifications1272 behaves like participating by note notification1273 emails the participant1274 for subgroups1275 emails the participant1276 behaves like participating by author notification1277 emails the participant1278 behaves like participating by assignee notification1279 emails the participant1280 behaves like project emails are disabled1281 sends no emails with project emails disabled1282 sends emails to someone1283 #resolve_all_discussions1284 is expected to eq 01285 behaves like participating notifications1286 behaves like participating by note notification1287 emails the participant1288 for subgroups1289 emails the participant1290 behaves like participating by author notification1291 emails the participant1292 behaves like participating by assignee notification1293 emails the participant1294 behaves like project emails are disabled1295 sends no emails with project emails disabled1296 sends emails to someone1297 #merge_when_pipeline_succeeds1298 send notification that merge will happen when pipeline succeeds1299 does not send notification if the custom event is disabled1300 sends notification to participants even if the custom event is disabled1301 behaves like participating notifications1302 behaves like participating by note notification1303 emails the participant1304 for subgroups1305 emails the participant1306 behaves like participating by author notification1307 emails the participant1308 behaves like participating by assignee notification1309 emails the participant1310 behaves like project emails are disabled1311 sends no emails with project emails disabled1312 sends emails to someone1313 #review_requested_of_merge_request1314 sends email to reviewer1315 adds "review requested" reason for new reviewer1316 behaves like project emails are disabled1317 sends no emails with project emails disabled1318 sends emails to someone1319 Projects1320 #project_was_moved1321 when notifications are disabled1322 does not send a notification1323 with users at both project and group level1324 notifies the expected users1325 behaves like project emails are disabled1326 sends no emails with project emails disabled1327 sends emails to someone1328 users not having access to the new location1329 does not send email1330 user with notifications disabled1331 #project_exported1332 is expected to be empty1333 #project_not_exported1334 is expected to be empty1335 user with notifications enabled1336 #project_exported1337 is expected to eq 11338 behaves like project emails are disabled1339 sends no emails with project emails disabled1340 sends emails to someone1341 #project_not_exported1342 is expected to eq 11343 behaves like project emails are disabled1344 sends no emails with project emails disabled1345 sends emails to someone1346 #invite_member_reminder1347 calls the Notify.invite_member_reminder method with the right params1348 sends exactly one email1349 #new_instance_access_request1350 sends notification only to a maximum of ten most recently active instance admins1351 #user_admin_rejection1352 sends the user a rejection email1353 #user_deactivated1354 sends the user an email1355 GroupMember1356 #new_access_request1357 recipients1358 sends notification only to group owners1359 behaves like group emails are disabled1360 sends no emails with group emails disabled1361 sends emails to someone1362 behaves like sends notification only to a maximum of ten, most recently active group owners1363 limit notification emails1364 sends notification only to a maximum of ten, most recently active group owners1365 #decline_invite1366 behaves like declines the invite1367 is expected to change `ActionMailer::Base.deliveries.size` by 11368 #new_group_member1369 sends a notification1370 when notifications are disabled1371 does not send a notification1372 behaves like group emails are disabled1373 sends no emails with group emails disabled1374 sends emails to someone1375 #updated_group_member_expiration1376 emails the user that their group membership expiry has changed1377 ProjectMember1378 #new_access_request1379 for a project in a user namespace1380 recipients1381 sends notification only to project maintainers1382 behaves like project emails are disabled1383 sends no emails with project emails disabled1384 sends emails to someone1385 behaves like sends notification only to a maximum of ten, most recently active project maintainers1386 limit notification emails1387 sends notification only to a maximum of ten, most recently active project maintainers1388 for a project in a group1389 when the project has no maintainers1390 when the group has at least one owner1391 recipients1392 sends notifications to the group owners1393 behaves like sends notification only to a maximum of ten, most recently active group owners1394 limit notification emails1395 sends notification only to a maximum of ten, most recently active group owners1396 when the group does not have any owners1397 recipients1398 does not send any notifications1399 when the project has maintainers1400 recipients1401 sends notifications only to project maintainers1402 behaves like sends notification only to a maximum of ten, most recently active project maintainers1403 limit notification emails1404 sends notification only to a maximum of ten, most recently active project maintainers1405 #decline_invite1406 behaves like declines the invite1407 is expected to change `ActionMailer::Base.deliveries.size` by 11408 #new_project_member1409 is expected to eq 11410 behaves like project emails are disabled1411 sends no emails with project emails disabled1412 sends emails to someone1413 when notifications are disabled1414 is expected to be empty1415 guest user in private project1416 filters out guests when new note is created1417 filters out guests when new merge request is created1418 filters out guests when merge request is closed1419 filters out guests when merge request is reopened1420 filters out guests when merge request is merged1421 Pipelines1422 #pipeline_finished1423 with a successful pipeline1424 when the creator has default settings1425 notifies nobody1426 when the creator has watch set1427 notifies nobody1428 when the creator has custom notifications, but without any set1429 notifies nobody1430 when the creator has custom notifications disabled1431 notifies nobody1432 when the creator has custom notifications enabled1433 emails only the creator1434 behaves like project emails are disabled1435 sends no emails with project emails disabled1436 sends emails to someone1437 when the creator has group notification email set1438 sends to group notification email1439 with a failed pipeline1440 when the creator has no custom notification set1441 emails only the creator1442 behaves like project emails are disabled1443 sends no emails with project emails disabled1444 sends emails to someone1445 when the creator has group notification email set1446 sends to group notification email1447 when the creator has watch set1448 emails only the creator1449 when the creator has custom notifications, but without any set1450 emails only the creator1451 when the creator has custom notifications disabled1452 notifies nobody1453 when the creator has custom notifications set1454 emails only the creator1455 when the creator has no read_build access1456 does not send emails1457 with a fixed pipeline1458 when the creator has no custom notification set1459 emails only the creator1460 behaves like project emails are disabled1461 sends no emails with project emails disabled1462 sends emails to someone1463 when the creator has group notification email set1464 sends to group notification email1465 when the creator has watch set1466 emails only the creator1467 when the creator has custom notifications, but without any set1468 emails only the creator1469 when the creator has custom notifications disabled1470 notifies nobody1471 when the creator has custom notifications set1472 emails only the creator1473 Pages domains1474 #pages_domain_enabled1475 emails current watching maintainers and owners1476 emails nobody if the project is missing1477 behaves like project emails are disabled1478 sends no emails with project emails disabled1479 sends emails to someone1480 #pages_domain_disabled1481 emails current watching maintainers and owners1482 emails nobody if the project is missing1483 behaves like project emails are disabled1484 sends no emails with project emails disabled1485 sends emails to someone1486 #pages_domain_verification_succeeded1487 emails current watching maintainers and owners1488 emails nobody if the project is missing1489 behaves like project emails are disabled1490 sends no emails with project emails disabled1491 sends emails to someone1492 #pages_domain_verification_failed1493 emails current watching maintainers and owners1494 emails nobody if the project is missing1495 behaves like project emails are disabled1496 sends no emails with project emails disabled1497 sends emails to someone1498 #pages_domain_auto_ssl_failed1499 emails current watching maintainers and owners1500 emails nobody if the project is missing1501 behaves like project emails are disabled1502 sends no emails with project emails disabled1503 sends emails to someone1504 Auto DevOps notifications1505 #autodevops_disabled1506 emails project owner and user that triggered the pipeline1507 behaves like project emails are disabled1508 sends no emails with project emails disabled1509 sends emails to someone1510 Repository cleanup1511 #repository_cleanup_success1512 emails the specified user only1513 behaves like project emails are disabled1514 sends no emails with project emails disabled1515 sends emails to someone1516 #repository_cleanup_failure1517 emails the specified user only1518 behaves like project emails are disabled1519 sends no emails with project emails disabled1520 sends emails to someone1521 Remote mirror notifications1522 #remote_mirror_update_failed1523 emails current watching maintainers and owners1524 behaves like project emails are disabled1525 sends no emails with project emails disabled1526 sends emails to someone1527 with external authorization service1528 sends email when the service is not enabled1529 when the service is enabled1530 does not send an email1531 with admin user1532 when admin mode is enabled1533 still delivers email to admins1534 when admin mode is disabled1535 does not send an email1536 #prometheus_alerts_fired1537 sends the email to owners and masters1538 behaves like project emails are disabled1539 sends no emails with project emails disabled1540 sends emails to someone1541 #new_review1542 sends emails1543 behaves like project emails are disabled1544 sends no emails with project emails disabled1545 sends emails to someone1546 #inactive_project_deletion_warning1547 sends email to project owners and maintainers1548layouts/nav/sidebar/_project1549 behaves like has nav sidebar1550 has collapsed nav sidebar on mobile1551 Project context1552 has a link to the project path1553 Project information1554 has a link to the project activity path1555 Activity1556 has a link to the project activity path1557 Labels1558 has a link to the labels path1559 Members1560 has a link to the members page1561 Repository1562 has a link to the project tree path1563 Files1564 has a link to the project tree path1565 Commits1566 has a link to the fully qualified project commits path1567 Branches1568 has a link to the project branches path1569 Tags1570 has a link to the project tags path1571 Contributor statistics1572 has a link to the project contributors path1573 Graph1574 has a link to the project graph path1575 Compare revisions1576 has a link to the project compare path1577 Issues1578 has a link to the issue list path1579 shows pill with the number of open issues1580 Issue List1581 has a link to the issue list path1582 Issue Boards1583 has a link to the issue boards path1584 Service Desk1585 has a link to the service desk path1586 Milestones1587 has a link to the milestones path1588 External Issue Tracker1589 with custom external issue tracker1590 when external issue tracker is configured and active1591 has a link to the external issue tracker1592 when external issue tracker is not configured and active1593 does not have a link to the external issue tracker1594 with Jira issue tracker1595 has a link to the Jira issue tracker1596 Merge Requests1597 has a link to the merge request list path1598 shows pill with the number of merge requests1599 CI/CD1600 has a link to pipelines page1601 Artifacts1602 has a link to the artifacts page1603 Jobs1604 has a link to the jobs page1605 Pipeline Schedules1606 has a link to the pipeline schedules page1607 Pipelines1608 has a link to the pipelines page1609 Pipeline Editor1610 with a current_ref1611 has a link to the pipeline editor1612 with the default_branch1613 has a link to the pipeline editor1614 when user cannot access pipeline editor1615 does not has a link to the pipeline editor1616 Security and Compliance1617 when user does not have permissions1618 top level navigation link is not visible1619 when user has permissions1620 top level navigation link is visible1621 security configuration link is visible1622 Deployments1623 Feature flags1624 has a link to the feature flags page1625 when the user does not have access1626 does not have a link to the feature flags page1627 Environments1628 has a link to the environments page1629 when the user does not have access1630 does not have a link to the environments page1631 Releases1632 has a link to the project releases path1633 Monitor1634 top level navigation link is visible for user with permissions1635 Metrics Dashboard1636 has a link to the metrics dashboard page1637 when the user does not have access1638 does not have a link to the metrics page1639 Error Tracking1640 has a link to the error tracking page1641 when the user does not have access1642 does not have a link to the error tracking page1643 Alert Management1644 has a link to the alert management page1645 when the user does not have access1646 does not have a link to the alert management page1647 Incidents1648 has a link to the incidents page1649 when the user does not have access1650 does not have a link to the incidents page1651 Infrastructure1652 Terraform1653 has a link to the terraform page1654 when the user does not have access1655 does not have a link to the terraform page1656 Kubernetes clusters1657 has a link to the kubernetes page1658 when the user does not have access1659 does not have a link to the kubernetes page1660 Google Cloud1661 has a link to the google cloud page1662 when the user does not have access1663 does not have a link to the google cloud page1664 Packages and Registries1665 top level navigation link is visible and points to package registry page1666 Packages Registry1667 shows link to package registry page1668 when packages config setting is not enabled1669 does not show link to package registry page1670 Container Registry1671 shows link to container registry page1672 when container config setting is not enabled1673 does not show link to package registry page1674 Terraform modules1675 shows link to terraform modules page1676 when package registry config is disabled1677 does not show link to package registry page1678 Analytics1679 top level navigation link is visible points to the value stream page1680 CI/CD1681 has a link to the CI/CD analytics page1682 when user does not have access1683 does not have a link to the CI/CD analytics page1684 Repository1685 has a link to the repository analytics page1686 when user does not have access1687 does not have a link to the repository analytics page1688 Value stream1689 has a link to the value stream page1690 when user does not have access1691 does not have a link to the value stream page1692 Confluence1693 when the Confluence integration is active1694 shows the Confluence link1695 does not show the GitLab wiki link1696 when it is disabled1697 does not show the Confluence link1698 shows the GitLab wiki link1699 Wiki1700 when wiki is enabled1701 shows the wiki tab with the wiki internal link1702 when wiki is disabled1703 does not show the wiki link1704 External Wiki1705 when it is active1706 shows the external wiki tab with the external wiki service link1707 when it is disabled1708 does not show the external wiki link1709 Snippets1710 when user can access snippets1711 shows Snippets link1712 when user cannot access snippets1713 does not show Snippets link1714 Settings1715 General1716 has a link to the General settings1717 Integrations1718 has a link to the Integrations settings1719 WebHooks1720 has a link to the WebHooks settings1721 Access Tokens1722 self-managed instance1723 has a link to the Access Tokens settings1724 gitlab.com1725 has a link to the Access Tokens settings1726 Repository1727 has a link to the Repository settings1728 CI/CD1729 when project is archived1730 does not have a link to the CI/CD settings1731 when project is not archived1732 has a link to the CI/CD settings1733 Monitor1734 when project is archived1735 does not have a link to the Monitor settings1736 when project is not archived active1737 has a link to the Monitor settings1738 Pages1739 when pages are enabled1740 has a link to the Pages settings1741 when pages are not enabled1742 does not have a link to the Pages settings1743 Packages and registries1744 when registry is enabled1745 has a link to the Package and registry settings1746 when registry is not enabled1747 does not have a link to the Package and registry settings1748 when packages config is enabled1749 has a link to the Package and registry settings1750 Usage Quotas1751 has a link to Usage Quotas1752 Hidden menus1753 has a link to the Activity page1754 has a link to the Graph page1755 has a link to the New Issue page1756 has a link to the Jobs page1757 has a link to the Commits page1758 has a link to the Issue Boards page1759 behaves like sidebar includes snowplow attributes1760 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"1761 Collapsed menu items1762 does not render the collapsed top menu as a link1763Groups::UpdateService1764 #execute1765 with project1766 behaves like with packages1767 with npm packages1768 does not allow a path update1769 allows name update1770 located in a subgroup1771 does allow a path update if there is not a root namespace change1772 behaves like with packages1773 with npm packages1774 does not allow a path update1775 allows name update1776 project visibility_level validation1777 public group with public projects1778 does not change permission level1779 returns false if save failed1780 when a project has container images1781 within group1782 with path updates1783 does not allow the update1784 with name updates1785 allows the update1786 when the path does not change1787 allows the update1788 within subgroup1789 does not allow path updates1790 internal group with internal project1791 does not change permission level1792 internal group with private project1793 changes permission level to private1794 with parent_id user doesn't have permissions for1795 does not update parent_id1796 crm_enabled param1797 when no existing crm_settings1798 when param not present, leave crm disabled1799 when param set true, enables crm1800 with existing crm_settings1801 when param set true, enables crm1802 when param set false, disables crm1803 when param not present, crm remains disabled1804 when param not present, crm remains enabled1805 unauthorized visibility_level validation1806 does not change permission level1807 when user is not group owner1808 when group is private1809 does not update the group to public1810 does not update the group to public with tricky value1811 when group is public1812 does not update the group to private1813 does not update the group to private with invalid string value1814 does not update the group to private with valid string value1815 does not update the group to private because of Active Record typecasting1816 when updating #emails_disabled1817 updates the attribute1818 does not update when not group owner1819 updating default_branch_protection1820 for users who have the ability to update default_branch_protection1821 updates the attribute1822 for users who do not have the ability to update default_branch_protection1823 does not update the attribute1824 EventStore1825 when changing a group path1826 publishes a GroupPathChangedEvent1827 when not changing a group path1828 does not publish a GroupPathChangedEvent1829 rename group1830 returns true1831 error moving group1832 does not raise an error1833 returns false1834 has the right error1835 hasn't changed the path1836 for a subgroup1837 when the parent group share_with_group_lock is enabled1838 for the parent group owner1839 allows disabling share_with_group_lock1840 for a subgroup owner (who does not own the parent)1841 does not allow disabling share_with_group_lock1842 change shared Runners config1843 calls the shared runners update service1844 handles errors in the shared runners update service1845 changes allowing subgroups to establish own 2FA1846 changes settings1847 enqueues update subgroups and its members1848Ci::ResetSkippedJobsService1849 # order random1850 when FF is `ci_support_reset_skipped_jobs_for_multiple_jobs` disabled1851 with a stage-dag mixed pipeline1852 marks subsequent skipped jobs as processable1853 when executed by a different user than the original owner1854 reassigns jobs with updated statuses to the retryer1855 with stage-dag mixed pipeline with some same-stage needs1856 marks subsequent skipped jobs as processable1857 with same-stage needs1858 marks subsequent skipped jobs as processable1859 with same-stage needs where the parent jobs do not share the same descendants1860 marks subsequent skipped jobs as processable1861 when multiple processables are inputted1862 marks subsequent skipped jobs as processable1863 when a single processable is inputted1864 behaves like with a stage-dag mixed pipeline1865 marks subsequent skipped jobs as processable1866 when executed by a different user than the original owner1867 reassigns jobs with updated statuses to the retryer1868 behaves like with stage-dag mixed pipeline with some same-stage needs1869 marks subsequent skipped jobs as processable1870 behaves like with same-stage needs1871 marks subsequent skipped jobs as processable1872 when multiple processables are inputted1873 behaves like with a stage-dag mixed pipeline1874 marks subsequent skipped jobs as processable1875 when executed by a different user than the original owner1876 reassigns jobs with updated statuses to the retryer1877 behaves like with stage-dag mixed pipeline with some same-stage needs1878 marks subsequent skipped jobs as processable1879 behaves like with same-stage needs1880 marks subsequent skipped jobs as processable1881VisibilityLevelHelper1882 visibility_icon_description1883 used with a Project1884 delegates projects to #project_visibility_icon_description1885 used with a ProjectPresenter1886 delegates projects to #project_visibility_icon_description1887 used with a Group1888 delegates groups to #group_visibility_icon_description1889 visibility_level_label1890 level_value: 0, level_name: "Private"1891 returns the name of the visibility level1892 level_value: 10, level_name: "Internal"1893 returns the name of the visibility level1894 level_value: 20, level_name: "Public"1895 returns the name of the visibility level1896 visibility_level_description1897 used with a Project1898 returns different project related descriptions depending on visibility level1899 used with a Group1900 returns different group related descriptions depending on visibility level1901 returns default description for public group1902 when application setting `should_check_namespace_plan` is true1903 returns updated description for public visibility option in group general settings1904 disallowed_visibility_level?1905 forks1906 disallows levels1907 non-forked project1908 disallows levels1909 group1910 disallows levels1911 sub-group1912 disallows levels1913 snippet1914 disallows levels1915 selected_visibility_level1916 requested_level: 20, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 201917 provides correct visibility level for forked project1918 provides correct visibility level for project in group1919 requested_level: 20, max_allowed: 20, global_default_level: 20, restricted_levels: [20], expected: 101920 provides correct visibility level for forked project1921 provides correct visibility level for project in group1922 requested_level: 10, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 101923 provides correct visibility level for forked project1924 provides correct visibility level for project in group1925 requested_level: 10, max_allowed: 0, global_default_level: 0, restricted_levels: [], expected: 01926 provides correct visibility level for forked project1927 provides correct visibility level for project in group1928 requested_level: 0, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 01929 provides correct visibility level for forked project1930 provides correct visibility level for project in group1931 requested_level: 20, max_allowed: 0, global_default_level: 10, restricted_levels: [], expected: 01932 provides correct visibility level for forked project1933 provides correct visibility level for project in group1934 requested_level: 20, max_allowed: 10, global_default_level: 20, restricted_levels: [], expected: 101935 provides correct visibility level for forked project1936 provides correct visibility level for project in group1937 requested_level: 20, max_allowed: 0, global_default_level: 20, restricted_levels: [], expected: 01938 provides correct visibility level for forked project1939 provides correct visibility level for project in group1940 requested_level: 20, max_allowed: 10, global_default_level: 10, restricted_levels: [], expected: 101941 provides correct visibility level for forked project1942 provides correct visibility level for project in group1943 requested_level: 20, max_allowed: 20, global_default_level: 10, restricted_levels: [], expected: 201944 provides correct visibility level for forked project1945 provides correct visibility level for project in group1946 #available_visibility_levels1947 behaves like available visibility level1948 excludes disallowed visibility levels1949 restricted_visibility_levels: [], expected: [0, 10, 20]1950 is expected to eq [0, 10, 20]1951 restricted_visibility_levels: [0], expected: [10, 20]1952 is expected to eq [10, 20]1953 restricted_visibility_levels: [0, 10], expected: [20]1954 is expected to eq [20]1955 restricted_visibility_levels: [0, 20], expected: [10]1956 is expected to eq [10]1957 restricted_visibility_levels: [10], expected: [0, 20]1958 is expected to eq [0, 20]1959 restricted_visibility_levels: [10, 0], expected: [20]1960 is expected to eq [20]1961 restricted_visibility_levels: [10, 20], expected: [0]1962 is expected to eq [0]1963 restricted_visibility_levels: [20], expected: [0, 10]1964 is expected to eq [0, 10]1965 restricted_visibility_levels: [20, 0], expected: [10]1966 is expected to eq [10]1967 restricted_visibility_levels: [20, 10], expected: [0]1968 is expected to eq [0]1969 behaves like available visibility level1970 excludes disallowed visibility levels1971 restricted_visibility_levels: [], expected: [0, 10, 20]1972 is expected to eq [0, 10, 20]1973 restricted_visibility_levels: [0], expected: [10, 20]1974 is expected to eq [10, 20]1975 restricted_visibility_levels: [0, 10], expected: [20]1976 is expected to eq [20]1977 restricted_visibility_levels: [0, 20], expected: [10]1978 is expected to eq [10]1979 restricted_visibility_levels: [10], expected: [0, 20]1980 is expected to eq [0, 20]1981 restricted_visibility_levels: [10, 0], expected: [20]1982 is expected to eq [20]1983 restricted_visibility_levels: [10, 20], expected: [0]1984 is expected to eq [0]1985 restricted_visibility_levels: [20], expected: [0, 10]1986 is expected to eq [0, 10]1987 restricted_visibility_levels: [20, 0], expected: [10]1988 is expected to eq [10]1989 restricted_visibility_levels: [20, 10], expected: [0]1990 is expected to eq [0]1991 behaves like available visibility level1992 excludes disallowed visibility levels1993 restricted_visibility_levels: [], expected: [0, 10, 20]1994 is expected to eq [0, 10, 20]1995 restricted_visibility_levels: [0], expected: [10, 20]1996 is expected to eq [10, 20]1997 restricted_visibility_levels: [0, 10], expected: [20]1998 is expected to eq [20]1999 restricted_visibility_levels: [0, 20], expected: [10]2000 is expected to eq [10]2001 restricted_visibility_levels: [10], expected: [0, 20]2002 is expected to eq [0, 20]2003 restricted_visibility_levels: [10, 0], expected: [20]2004 is expected to eq [20]2005 restricted_visibility_levels: [10, 20], expected: [0]2006 is expected to eq [0]2007 restricted_visibility_levels: [20], expected: [0, 10]2008 is expected to eq [0, 10]2009 restricted_visibility_levels: [20, 0], expected: [10]2010 is expected to eq [10]2011 restricted_visibility_levels: [20, 10], expected: [0]2012 is expected to eq [0]2013 behaves like available visibility level2014 excludes disallowed visibility levels2015 restricted_visibility_levels: [], expected: [0, 10, 20]2016 is expected to eq [0, 10, 20]2017 restricted_visibility_levels: [0], expected: [10, 20]2018 is expected to eq [10, 20]2019 restricted_visibility_levels: [0, 10], expected: [20]2020 is expected to eq [20]2021 restricted_visibility_levels: [0, 20], expected: [10]2022 is expected to eq [10]2023 restricted_visibility_levels: [10], expected: [0, 20]2024 is expected to eq [0, 20]2025 restricted_visibility_levels: [10, 0], expected: [20]2026 is expected to eq [20]2027 restricted_visibility_levels: [10, 20], expected: [0]2028 is expected to eq [0]2029 restricted_visibility_levels: [20], expected: [0, 10]2030 is expected to eq [0, 10]2031 restricted_visibility_levels: [20, 0], expected: [10]2032 is expected to eq [10]2033 restricted_visibility_levels: [20, 10], expected: [0]2034 is expected to eq [0]2035 #snippets_selected_visibility_level2036 returns the selected visibility level2037 fallbacks using the lowest available visibility level when selected level isn't available2038 multiple_visibility_levels_restricted?2039 restricted_visibility_levels: [20], expected: false2040 is expected to eq false2041 restricted_visibility_levels: [20, 10], expected: true2042 is expected to eq true2043 restricted_visibility_levels: [20, 10, 0], expected: true2044 is expected to eq true2045 all_visibility_levels_restricted?2046 restricted_visibility_levels: [20], expected: false2047 is expected to eq false2048 restricted_visibility_levels: [20, 10], expected: false2049 is expected to eq false2050 restricted_visibility_levels: [0, 10, 20], expected: true2051 is expected to eq true2052 #visibility_level_options2053 returns the desired mapping2054Banzai::Filter::References::CommitRangeReferenceFilter2055 requires project context2056 ignores valid references contained inside 'pre' element2057 ignores valid references contained inside 'code' element2058 ignores valid references contained inside 'a' element2059 ignores valid references contained inside 'style' element2060 internal reference2061 links to a valid two-dot reference2062 links to a valid three-dot reference2063 links to a valid short ID2064 links with adjacent text2065 ignores invalid commit IDs2066 includes no title attribute2067 includes default classes2068 includes a data-project attribute2069 includes a data-commit-range attribute2070 supports an :only_path option2071 cross-project / cross-namespace complete reference2072 links to a valid reference2073 link has valid text2074 has valid text2075 ignores invalid commit IDs on the referenced project2076 cross-project / same-namespace complete reference2077 links to a valid reference2078 link has valid text2079 has valid text2080 ignores invalid commit IDs on the referenced project2081 cross-project shorthand reference2082 links to a valid reference2083 link has valid text2084 has valid text2085 ignores invalid commit IDs on the referenced project2086 cross-project URL reference2087 links to a valid reference2088 links with adjacent text2089 ignores invalid commit IDs on the referenced project2090 group context2091 ignores internal references2092 links to a full-path reference2093Gitlab::Kubernetes::KubeClient2094 .graceful_request2095 successful2096 returns connected status and foo response2097 errored2098 error: SocketError, connection_status: :unreachable, error_status: :connection_error2099 returns error status2100 error: OpenSSL::X509::CertificateError, connection_status: :authentication_failure, error_status: :authentication_error2101 returns error status2102 error: StandardError, connection_status: :unknown_failure, error_status: :unknown_error2103 returns error status2104 error: #<Kubeclient::HttpError: HTTP status code 408, timed out>, connection_status: :unreachable, error_status: :http_error2105 returns error status2106 error: #<Kubeclient::HttpError: HTTP status code 408, timeout>, connection_status: :unreachable, error_status: :http_error2107 returns error status2108 error: #<Kubeclient::HttpError: HTTP status code 408, >, connection_status: :authentication_failure, error_status: :http_error2109 returns error status2110 #initialize2111 falls back to default options, but allows overriding2112 localhost address2113 behaves like local address2114 blocks local addresses2115 when local requests are allowed2116 allows local addresses2117 private network address2118 behaves like local address2119 blocks local addresses2120 when local requests are allowed2121 allows local addresses2122 when a non HTTP/HTTPS URL is provided2123 raises an error2124 #core_client2125 has the core API endpoint2126 has the api_version2127 behaves like a Kubeclient2128 is a Kubeclient::Client2129 has the kubeclient options2130 #rbac_client2131 has the RBAC API group endpoint2132 has the api_version2133 behaves like a Kubeclient2134 is a Kubeclient::Client2135 has the kubeclient options2136 #istio_client2137 has the Istio API group endpoint2138 has the api_version2139 behaves like a Kubeclient2140 is a Kubeclient::Client2141 has the kubeclient options2142 #knative_client2143 has the extensions API group endpoint2144 has the api_version2145 behaves like a Kubeclient2146 is a Kubeclient::Client2147 has the kubeclient options2148 #networking_client2149 has the networking API group endpoint2150 has the api_version2151 behaves like a Kubeclient2152 is a Kubeclient::Client2153 has the kubeclient options2154 #metrics_client2155 has the metrics API group endpoint2156 has the api_version2157 behaves like a Kubeclient2158 is a Kubeclient::Client2159 has the kubeclient options2160 core API2161 #get_nodes2162 does not allow DNS rebinding2163 delegates to the core client2164 responds to the method2165 api_url is redirected2166 does not follow redirects2167 #get_pods2168 does not allow DNS rebinding2169 delegates to the core client2170 responds to the method2171 api_url is redirected2172 does not follow redirects2173 #get_secrets2174 does not allow DNS rebinding2175 delegates to the core client2176 responds to the method2177 api_url is redirected2178 does not follow redirects2179 #get_config_map2180 does not allow DNS rebinding2181 delegates to the core client2182 responds to the method2183 api_url is redirected2184 does not follow redirects2185 #get_pod2186 does not allow DNS rebinding2187 delegates to the core client2188 responds to the method2189 api_url is redirected2190 does not follow redirects2191 #get_namespace2192 does not allow DNS rebinding2193 delegates to the core client2194 responds to the method2195 api_url is redirected2196 does not follow redirects2197 #get_secret2198 does not allow DNS rebinding2199 delegates to the core client2200 responds to the method2201 api_url is redirected2202 does not follow redirects2203 #get_service2204 does not allow DNS rebinding2205 delegates to the core client2206 responds to the method2207 api_url is redirected2208 does not follow redirects2209 #get_service_account2210 does not allow DNS rebinding2211 delegates to the core client2212 responds to the method2213 api_url is redirected2214 does not follow redirects2215 #delete_namespace2216 does not allow DNS rebinding2217 delegates to the core client2218 responds to the method2219 api_url is redirected2220 does not follow redirects2221 #delete_pod2222 does not allow DNS rebinding2223 delegates to the core client2224 responds to the method2225 api_url is redirected2226 does not follow redirects2227 #delete_service_account2228 does not allow DNS rebinding2229 delegates to the core client2230 responds to the method2231 api_url is redirected2232 does not follow redirects2233 #create_config_map2234 does not allow DNS rebinding2235 delegates to the core client2236 responds to the method2237 api_url is redirected2238 does not follow redirects2239 #create_namespace2240 does not allow DNS rebinding2241 delegates to the core client2242 responds to the method2243 api_url is redirected2244 does not follow redirects2245 #create_pod2246 does not allow DNS rebinding2247 delegates to the core client2248 responds to the method2249 api_url is redirected2250 does not follow redirects2251 #create_secret2252 does not allow DNS rebinding2253 delegates to the core client2254 responds to the method2255 api_url is redirected2256 does not follow redirects2257 #create_service_account2258 does not allow DNS rebinding2259 delegates to the core client2260 responds to the method2261 api_url is redirected2262 does not follow redirects2263 #update_config_map2264 does not allow DNS rebinding2265 delegates to the core client2266 responds to the method2267 api_url is redirected2268 does not follow redirects2269 #update_secret2270 does not allow DNS rebinding2271 delegates to the core client2272 responds to the method2273 api_url is redirected2274 does not follow redirects2275 #update_service_account2276 does not allow DNS rebinding2277 delegates to the core client2278 responds to the method2279 api_url is redirected2280 does not follow redirects2281 rbac API group2282 #create_role2283 does not allow DNS rebinding2284 delegates to the rbac client2285 responds to the method2286 api_url is redirected2287 does not follow redirects2288 #get_role2289 does not allow DNS rebinding2290 delegates to the rbac client2291 responds to the method2292 api_url is redirected2293 does not follow redirects2294 #update_role2295 does not allow DNS rebinding2296 delegates to the rbac client2297 responds to the method2298 api_url is redirected2299 does not follow redirects2300 #delete_role_binding2301 does not allow DNS rebinding2302 delegates to the rbac client2303 responds to the method2304 api_url is redirected2305 does not follow redirects2306 #update_role_binding2307 does not allow DNS rebinding2308 delegates to the rbac client2309 responds to the method2310 api_url is redirected2311 does not follow redirects2312 #update_cluster_role_binding2313 does not allow DNS rebinding2314 delegates to the rbac client2315 responds to the method2316 api_url is redirected2317 does not follow redirects2318 apps/v1 API group2319 get_deployments2320 does not allow DNS rebinding2321 delegates to the apps client2322 responds to the method2323 api_url is redirected2324 does not follow redirects2325 networking.k8s.io/v1 API group2326 #get_ingresses2327 does not allow DNS rebinding2328 delegates to the networking client2329 responds to the method2330 api_url is redirected2331 does not follow redirects2332 #patch_ingress2333 does not allow DNS rebinding2334 delegates to the networking client2335 responds to the method2336 api_url is redirected2337 does not follow redirects2338 istio API group2339 #create_gateway2340 does not allow DNS rebinding2341 delegates to the istio client2342 responds to the method2343 api_url is redirected2344 does not follow redirects2345 #get_gateway2346 does not allow DNS rebinding2347 delegates to the istio client2348 responds to the method2349 api_url is redirected2350 does not follow redirects2351 #update_gateway2352 does not allow DNS rebinding2353 delegates to the istio client2354 responds to the method2355 api_url is redirected2356 does not follow redirects2357 non-entity methods2358 does not proxy for non-entity methods2359 throws an error2360 #get_pod_log2361 is delegated to the core client2362 #watch_pod_log2363 is delegated to the core client2364 #create_or_update_cluster_role_binding2365 behaves like create_or_update method using put2366 calls the update method2367 #create_or_update_role_binding2368 behaves like create_or_update method using put2369 calls the update method2370 #create_or_update_service_account2371 behaves like create_or_update method2372 resource exists2373 calls the update method2374 resource does not exist2375 calls the create method2376 #create_or_update_secret2377 behaves like create_or_update method2378 resource exists2379 calls the update method2380 resource does not exist2381 calls the create method2382 methods that do not exist on any client2383 throws an error2384 returns false for respond_to2385SearchService2386 #project2387 when the project is accessible2388 returns the project2389 returns the project for guests2390 when the project is not accessible2391 returns nil2392 when there is no project_id2393 returns nil2394 #group2395 when the group is accessible2396 returns the group2397 when the group is not accessible2398 returns nil2399 when there is no group_id2400 returns nil2401 #show_snippets?2402 when :snippets is 'true'2403 returns true2404 when :snippets is not 'true'2405 returns false2406 when :snippets is missing2407 returns false2408 #scope2409 with accessible project_id2410 and allowed scope2411 returns the specified scope2412 and disallowed scope2413 returns the default scope2414 and no scope2415 returns the default scope2416 with 'true' snippets2417 and allowed scope2418 returns the specified scope2419 and disallowed scope2420 returns the default scope2421 and no scope2422 returns the default scope2423 with no project_id, no snippets2424 and allowed scope2425 returns the specified scope2426 and disallowed scope2427 returns the default scope2428 and no scope2429 returns the default scope2430 #search_results2431 with accessible project_id2432 returns an instance of Gitlab::ProjectSearchResults2433 with accessible project_id and 'true' snippets2434 returns an instance of Gitlab::ProjectSearchResults2435 with 'true' snippets2436 returns an instance of Gitlab::SnippetSearchResults2437 with no project_id and no snippets2438 returns an instance of Gitlab::SearchResults2439 #search_objects2440 per_page: parameter2441 when nil2442 defaults to 202443 when empty string2444 defaults to 202445 when negative2446 defaults to 202447 when present2448 converts to integer and passes to search results2449 when greater than 2002450 passes 2002451 page: parameter2452 when < 12453 defaults to 12454 when nil2455 defaults to 12456 with accessible project_id2457 returns objects in the project2458 with accessible project_id and 'true' snippets2459 returns objects in the project2460 with 'true' snippets2461 returns objects in snippets2462 with accessible group_id2463 returns objects in the group2464 with no project_id, group_id or snippets2465 returns objects in global2466 behaves like a redacted search results2467 for issues2468 redacts the inaccessible issue2469 for notes2470 redacts the inaccessible notes2471 for merge_requests2472 redacts the inaccessible merge request2473 with :with_api_entity_associations2474 behaves like redaction limits N+1 queries2475 does not exceed the query limit2476 for blobs2477 redacts the inaccessible blob2478 for wiki blobs2479 redacts the inaccessible blob2480 for project snippets2481 redacts the inaccessible snippet2482 with :with_api_entity_associations2483 behaves like redaction limits N+1 queries2484 does not exceed the query limit2485 for personal snippets2486 redacts the inaccessible snippet2487 with :with_api_entity_associations2488 behaves like redaction limits N+1 queries2489 does not exceed the query limit2490 for commits2491 redacts the inaccessible commit2492 for users2493 passes the users through2494 #valid_request?2495 is the return value of params.valid?2496 #abuse_messages2497 returns an empty array when not abusive2498 calls on abuse_detection.errors.full_messages when abusive2499 abusive search handling2500 a search is abusive2501 does NOT execute search service2502 a search is NOT abusive2503 executes search service2504 .global_search_enabled_for_scope?2505 scope: "blobs", feature_flag: :global_search_code_tab, enabled: false, expected: false2506 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2507 scope: "blobs", feature_flag: :global_search_code_tab, enabled: true, expected: true2508 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2509 scope: "commits", feature_flag: :global_search_commits_tab, enabled: false, expected: false2510 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2511 scope: "commits", feature_flag: :global_search_commits_tab, enabled: true, expected: true2512 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2513 scope: "issues", feature_flag: :global_search_issues_tab, enabled: false, expected: false2514 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2515 scope: "issues", feature_flag: :global_search_issues_tab, enabled: true, expected: true2516 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2517 scope: "merge_requests", feature_flag: :global_search_merge_requests_tab, enabled: false, expected: false2518 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2519 scope: "merge_requests", feature_flag: :global_search_merge_requests_tab, enabled: true, expected: true2520 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2521 scope: "wiki_blobs", feature_flag: :global_search_wiki_tab, enabled: false, expected: false2522 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2523 scope: "wiki_blobs", feature_flag: :global_search_wiki_tab, enabled: true, expected: true2524 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2525 scope: "users", feature_flag: :global_search_users_tab, enabled: false, expected: false2526 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2527 scope: "users", feature_flag: :global_search_users_tab, enabled: true, expected: true2528 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2529 scope: "random", feature_flag: :random, enabled: nil, expected: true2530DEPRECATION WARNING: Invalid Feature Flag random stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2531 returns false when feature_flag is not enabled and returns true when feature_flag is enabled2532TodosFinder2533 #execute2534 #execute2535 returns no todos if user is nil2536 filtering2537 returns correct todos when filtered by a project2538 returns correct todos when filtered by a group2539 when filtering by type2540 returns todos by type when filtered by a single type2541 returns todos by type when filtered by multiple types2542 returns all todos when type is nil2543 returns all todos when type is an empty collection2544 returns all todos when type is blank2545 returns todos by type when blank type is in type collection2546 returns todos of all types when only blanks are in a collection2547 returns all todos when no type param2548 raises an argument error when invalid type is passed2549 when filtering for actions2550 by action ids2551 returns the expected todos2552 returns the expected todos when filtering for multiple action ids2553 by action names2554 returns the expected todos2555 returns the expected todos when filtering for multiple action names2556 when filtering by author2557 returns correct todos when filtering by an author2558 querying for multiple authors2559 returns the correct todo items2560 by groups2561 with subgroups2562 returns todos from subgroups when filtered by a group2563 filtering for multiple groups2564 returns the expected groups2565 by state2566 returns the expected items when no state is provided2567 returns the expected items when a state is provided2568 returns the expected items when multiple states are provided2569 by project2570 returns the expected todos for one project2571 returns the expected todos for many projects2572 when filtering by target id2573 returns the expected todos for the target2574 returns the expected todos for multiple target ids2575 returns the expected todos for empty target id collection2576 external authorization2577 behaves like a finder with external authorization service2578 finds the subject2579 with an external authorization service2580 does not include the subject when no project was given2581 includes the subject when a project id was given2582 #sort2583 sorts by priority2584 by date2585 sorts with oldest created first2586 sorts with newest created first2587 .todo_types2588 returns the expected types2589 #any_for_target?2590 returns true if there are any todos for the given target2591 returns false if there are no todos for the given target2592Gitlab::ImportExport::FastHashSerializer2593 saves the correct hash2594 has approvals_before_merge set2595 has milestones2596 has merge requests2597 has merge request's milestones2598 has merge request's source branch SHA2599 has merge request's target branch SHA2600 has events2601 has snippets2602 has snippet notes2603 has releases2604 has no author on releases2605 has the author ID on releases2606 has issues2607 has issue comments2608 has issue assignees2609 has author on issue comments2610 has project members2611 has merge requests diffs2612 has merge request diff files2613 has merge request diff commits2614 has merge requests comments2615 has author on merge requests comments2616 has pipeline stages2617 has pipeline builds2618 has pipeline builds2619 has pipeline commits2620 has commit notes2621 has labels with no associations2622 has labels associated to records2623 has project and group labels2624 has priorities associated to labels2625 has issue resource label events2626 has merge request resource label events2627 has project feature2628 has custom attributes2629 has badges2630 does not complain about non UTF-8 characters in MR diff files2631 has a board and a list2632 project attributes2633 does not contain the runners token2634 relation ordering2635 orders exported pipelines by primary key2636Gitlab::ProjectTemplate2637 .all2638 returns all templates2639 #project_host2640 when `preview` is valid2641 is expected to eq "https://gitlab.com"2642 when `preview` is `nil`2643 is expected to eq nil2644 #project_path2645 is expected to eq "some/project/path"2646 #uri_encoded_project_path2647 is expected to eq "some%2Fproject%2Fpath"2648 .find2649 when there is a match2650 is expected to be a kind of Gitlab::ProjectTemplate2651 when there is no match2652 is expected to equal nil2653 .archive_directory2654 is expected to be a kind of Pathname2655 instance methods2656 is expected to respond to [:logo, :file, :archive_path]2657 validate all templates2658 rails has a valid archive2659 spring has a valid archive2660 express has a valid archive2661 iosswift has a valid archive2662 dotnetcore has a valid archive2663 android has a valid archive2664 gomicro has a valid archive2665 bridgetown has a valid archive2666 gatsby has a valid archive2667 hugo has a valid archive2668 pelican has a valid archive2669 jekyll has a valid archive2670 plainhtml has a valid archive2671 hexo has a valid archive2672 middleman has a valid archive2673 gitpod_spring_petclinic has a valid archive2674 nfhugo has a valid archive2675 nfjekyll has a valid archive2676 nfplainhtml has a valid archive2677 nfgitbook has a valid archive2678 nfhexo has a valid archive2679 salesforcedx has a valid archive2680 serverless_framework has a valid archive2681 tencent_serverless_framework has a valid archive2682 jsonnet has a valid archive2683 cluster_management has a valid archive2684 kotlin_native_linux has a valid archive2685 typo3_distribution has a valid archive2686 laravel has a valid archive2687 with valid parameters2688DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2689deprecated without replacement. If the `throw` came from2690`Timeout.timeout(duration)`, pass an exception class as a second2691argument so it doesn't use `throw` to abort its block. This results2692in the transaction being committed, but in the next release of Rails2693it will rollback.2694 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2695 can be imported2696 with valid parameters2697DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2698deprecated without replacement. If the `throw` came from2699`Timeout.timeout(duration)`, pass an exception class as a second2700argument so it doesn't use `throw` to abort its block. This results2701in the transaction being committed, but in the next release of Rails2702it will rollback.2703 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2704 can be imported2705 with valid parameters2706DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2707deprecated without replacement. If the `throw` came from2708`Timeout.timeout(duration)`, pass an exception class as a second2709argument so it doesn't use `throw` to abort its block. This results2710in the transaction being committed, but in the next release of Rails2711it will rollback.2712 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2713 can be imported2714 with valid parameters2715DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2716deprecated without replacement. If the `throw` came from2717`Timeout.timeout(duration)`, pass an exception class as a second2718argument so it doesn't use `throw` to abort its block. This results2719in the transaction being committed, but in the next release of Rails2720it will rollback.2721 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2722 can be imported2723 with valid parameters2724DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2725deprecated without replacement. If the `throw` came from2726`Timeout.timeout(duration)`, pass an exception class as a second2727argument so it doesn't use `throw` to abort its block. This results2728in the transaction being committed, but in the next release of Rails2729it will rollback.2730 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2731 can be imported2732 with valid parameters2733DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2734deprecated without replacement. If the `throw` came from2735`Timeout.timeout(duration)`, pass an exception class as a second2736argument so it doesn't use `throw` to abort its block. This results2737in the transaction being committed, but in the next release of Rails2738it will rollback.2739 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2740 can be imported2741 with valid parameters2742DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2743deprecated without replacement. If the `throw` came from2744`Timeout.timeout(duration)`, pass an exception class as a second2745argument so it doesn't use `throw` to abort its block. This results2746in the transaction being committed, but in the next release of Rails2747it will rollback.2748 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2749 can be imported2750 with valid parameters2751DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2752deprecated without replacement. If the `throw` came from2753`Timeout.timeout(duration)`, pass an exception class as a second2754argument so it doesn't use `throw` to abort its block. This results2755in the transaction being committed, but in the next release of Rails2756it will rollback.2757 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2758 can be imported2759 with valid parameters2760DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2761deprecated without replacement. If the `throw` came from2762`Timeout.timeout(duration)`, pass an exception class as a second2763argument so it doesn't use `throw` to abort its block. This results2764in the transaction being committed, but in the next release of Rails2765it will rollback.2766 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2767 can be imported2768 with valid parameters2769DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2770deprecated without replacement. If the `throw` came from2771`Timeout.timeout(duration)`, pass an exception class as a second2772argument so it doesn't use `throw` to abort its block. This results2773in the transaction being committed, but in the next release of Rails2774it will rollback.2775 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2776 can be imported2777 with valid parameters2778DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2779deprecated without replacement. If the `throw` came from2780`Timeout.timeout(duration)`, pass an exception class as a second2781argument so it doesn't use `throw` to abort its block. This results2782in the transaction being committed, but in the next release of Rails2783it will rollback.2784 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2785 can be imported2786 with valid parameters2787DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2788deprecated without replacement. If the `throw` came from2789`Timeout.timeout(duration)`, pass an exception class as a second2790argument so it doesn't use `throw` to abort its block. This results2791in the transaction being committed, but in the next release of Rails2792it will rollback.2793 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2794 can be imported2795 with valid parameters2796DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2797deprecated without replacement. If the `throw` came from2798`Timeout.timeout(duration)`, pass an exception class as a second2799argument so it doesn't use `throw` to abort its block. This results2800in the transaction being committed, but in the next release of Rails2801it will rollback.2802 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2803 can be imported2804 with valid parameters2805DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2806deprecated without replacement. If the `throw` came from2807`Timeout.timeout(duration)`, pass an exception class as a second2808argument so it doesn't use `throw` to abort its block. This results2809in the transaction being committed, but in the next release of Rails2810it will rollback.2811 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2812 can be imported2813 with valid parameters2814DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2815deprecated without replacement. If the `throw` came from2816`Timeout.timeout(duration)`, pass an exception class as a second2817argument so it doesn't use `throw` to abort its block. This results2818in the transaction being committed, but in the next release of Rails2819it will rollback.2820 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2821 can be imported2822 with valid parameters2823DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2824deprecated without replacement. If the `throw` came from2825`Timeout.timeout(duration)`, pass an exception class as a second2826argument so it doesn't use `throw` to abort its block. This results2827in the transaction being committed, but in the next release of Rails2828it will rollback.2829 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2830 can be imported2831 with valid parameters2832DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2833deprecated without replacement. If the `throw` came from2834`Timeout.timeout(duration)`, pass an exception class as a second2835argument so it doesn't use `throw` to abort its block. This results2836in the transaction being committed, but in the next release of Rails2837it will rollback.2838 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2839 can be imported2840 with valid parameters2841DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2842deprecated without replacement. If the `throw` came from2843`Timeout.timeout(duration)`, pass an exception class as a second2844argument so it doesn't use `throw` to abort its block. This results2845in the transaction being committed, but in the next release of Rails2846it will rollback.2847 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2848 can be imported2849 with valid parameters2850DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2851deprecated without replacement. If the `throw` came from2852`Timeout.timeout(duration)`, pass an exception class as a second2853argument so it doesn't use `throw` to abort its block. This results2854in the transaction being committed, but in the next release of Rails2855it will rollback.2856 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2857 can be imported2858 with valid parameters2859DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2860deprecated without replacement. If the `throw` came from2861`Timeout.timeout(duration)`, pass an exception class as a second2862argument so it doesn't use `throw` to abort its block. This results2863in the transaction being committed, but in the next release of Rails2864it will rollback.2865 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2866 can be imported2867 with valid parameters2868DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2869deprecated without replacement. If the `throw` came from2870`Timeout.timeout(duration)`, pass an exception class as a second2871argument so it doesn't use `throw` to abort its block. This results2872in the transaction being committed, but in the next release of Rails2873it will rollback.2874 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2875 can be imported2876 with valid parameters2877DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2878deprecated without replacement. If the `throw` came from2879`Timeout.timeout(duration)`, pass an exception class as a second2880argument so it doesn't use `throw` to abort its block. This results2881in the transaction being committed, but in the next release of Rails2882it will rollback.2883 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2884 can be imported2885 with valid parameters2886DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2887deprecated without replacement. If the `throw` came from2888`Timeout.timeout(duration)`, pass an exception class as a second2889argument so it doesn't use `throw` to abort its block. This results2890in the transaction being committed, but in the next release of Rails2891it will rollback.2892 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2893 can be imported2894 with valid parameters2895DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2896deprecated without replacement. If the `throw` came from2897`Timeout.timeout(duration)`, pass an exception class as a second2898argument so it doesn't use `throw` to abort its block. This results2899in the transaction being committed, but in the next release of Rails2900it will rollback.2901 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2902 can be imported2903 with valid parameters2904DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2905deprecated without replacement. If the `throw` came from2906`Timeout.timeout(duration)`, pass an exception class as a second2907argument so it doesn't use `throw` to abort its block. This results2908in the transaction being committed, but in the next release of Rails2909it will rollback.2910 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2911 can be imported2912 with valid parameters2913DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2914deprecated without replacement. If the `throw` came from2915`Timeout.timeout(duration)`, pass an exception class as a second2916argument so it doesn't use `throw` to abort its block. This results2917in the transaction being committed, but in the next release of Rails2918it will rollback.2919 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2920 can be imported2921 with valid parameters2922DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2923deprecated without replacement. If the `throw` came from2924`Timeout.timeout(duration)`, pass an exception class as a second2925argument so it doesn't use `throw` to abort its block. This results2926in the transaction being committed, but in the next release of Rails2927it will rollback.2928 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2929 can be imported2930 with valid parameters2931DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2932deprecated without replacement. If the `throw` came from2933`Timeout.timeout(duration)`, pass an exception class as a second2934argument so it doesn't use `throw` to abort its block. This results2935in the transaction being committed, but in the next release of Rails2936it will rollback.2937 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2938 can be imported2939 with valid parameters2940DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is2941deprecated without replacement. If the `throw` came from2942`Timeout.timeout(duration)`, pass an exception class as a second2943argument so it doesn't use `throw` to abort its block. This results2944in the transaction being committed, but in the next release of Rails2945it will rollback.2946 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)2947 can be imported2948Gitlab::Ci::Config::Entry::Job2949 behaves like with inheritable CI config2950 does prepend an Inheritable mixin2951 all inheritable entries are covered2952 all entries do have inherit flag2953 for non-inheritable entries2954 entry_key: :stage2955 inheritable_class does not define entry2956 entry_key: :only2957 inheritable_class does not define entry2958 entry_key: :except2959 inheritable_class does not define entry2960 entry_key: :rules2961 inheritable_class does not define entry2962 entry_key: :variables2963 inheritable_class does not define entry2964 entry_key: :inherit2965 inheritable_class does not define entry2966 entry_key: :script2967 inheritable_class does not define entry2968 entry_key: :needs2969 inheritable_class does not define entry2970 entry_key: :environment2971 inheritable_class does not define entry2972 entry_key: :coverage2973 inheritable_class does not define entry2974 entry_key: :release2975 inheritable_class does not define entry2976 entry_key: :parallel2977 inheritable_class does not define entry2978 entry_key: :allow_failure2979 inheritable_class does not define entry2980 entry_key: :id_tokens2981 inheritable_class does not define entry2982 entry_key: :publish2983 inheritable_class does not define entry2984 entry_key: :dast_configuration2985 inheritable_class does not define entry2986 entry_key: :secrets2987 inheritable_class does not define entry2988 for inheritable entries2989 entry_key: :before_script, entry_class: Gitlab::Ci::Config::Entry::Commands2990 inheritable_class does define entry2991 when is specified2992 does inherit value2993 when entry is specified2994 does not inherit value2995 when inheritable does not specify2996 does not inherit value2997 entry_key: :after_script, entry_class: Gitlab::Ci::Config::Entry::Commands2998 inheritable_class does define entry2999 when is specified3000 does inherit value3001 when entry is specified3002 does not inherit value3003 when inheritable does not specify3004 does not inherit value3005 entry_key: :hooks, entry_class: Gitlab::Ci::Config::Entry::Hooks3006 inheritable_class does define entry3007 when is specified3008 does inherit value3009 when entry is specified3010 does not inherit value3011 when inheritable does not specify3012 does not inherit value3013 entry_key: :cache, entry_class: Gitlab::Ci::Config::Entry::Caches3014 inheritable_class does define entry3015 when is specified3016 does inherit value3017 when entry is specified3018 does not inherit value3019 when inheritable does not specify3020 does not inherit value3021 entry_key: :image, entry_class: Gitlab::Ci::Config::Entry::Image3022 inheritable_class does define entry3023 when is specified3024 does inherit value3025 when entry is specified3026 does not inherit value3027 when inheritable does not specify3028 does not inherit value3029 entry_key: :services, entry_class: Gitlab::Ci::Config::Entry::Services3030 inheritable_class does define entry3031 when is specified3032 does inherit value3033 when entry is specified3034 does not inherit value3035 when inheritable does not specify3036 does not inherit value3037 entry_key: :interruptible, entry_class: Gitlab::Config::Entry::Boolean3038 inheritable_class does define entry3039 when is specified3040 does inherit value3041 when entry is specified3042 does not inherit value3043 when inheritable does not specify3044 does not inherit value3045 entry_key: :timeout, entry_class: Gitlab::Ci::Config::Entry::Timeout3046 inheritable_class does define entry3047 when is specified3048 does inherit value3049 when entry is specified3050 does not inherit value3051 when inheritable does not specify3052 does not inherit value3053 entry_key: :retry, entry_class: Gitlab::Ci::Config::Entry::Retry3054 inheritable_class does define entry3055 when is specified3056 does inherit value3057 when entry is specified3058 does not inherit value3059 when inheritable does not specify3060 does not inherit value3061 entry_key: :tags, entry_class: Gitlab::Ci::Config::Entry::Tags3062 inheritable_class does define entry3063 when is specified3064 does inherit value3065 when entry is specified3066 does not inherit value3067 when inheritable does not specify3068 does not inherit value3069 entry_key: :artifacts, entry_class: Gitlab::Ci::Config::Entry::Artifacts3070 inheritable_class does define entry3071 when is specified3072 does inherit value3073 when entry is specified3074 does not inherit value3075 when inheritable does not specify3076 does not inherit value3077 .nodes3078 when filtering all the entry/node names3079 is expected to include :before_script, :script, :after_script, :hooks, :stage, :cache, :image, :services, :only, :except, :rules, :needs, :variables, :artifacts, :environment, :coverage, :retry, :interruptible, :timeout, :release, :tags, :inherit, and :parallel3080 .matching?3081 when config is not a hash3082 is expected to be falsey3083 when config is a regular job3084 is expected to be truthy3085 when config is a bridge job3086 is expected to be falsey3087 when config is a hidden job3088 is expected to be falsey3089 when using the default job without script3090 is expected to be falsey3091 when using the default job with script3092 is expected to be truthy3093 validations3094 when entry config value is correct3095 #valid?3096 is valid3097 when job name is empty3098 reports error3099 when config uses both "when:" and "rules:"3100 is valid3101 when delayed job3102 when start_in is specified3103 is expected to be valid3104 when has needs3105 is expected to be valid3106 returns scheduling_type as :dag3107 when has dependencies3108 is expected to be valid3109 when it is a release3110 is expected to be valid3111 when rules are used3112 is expected to be valid3113 when entry value is not correct3114 incorrect config value type3115 #errors3116 reports error about a config type3117 when config is empty3118 #valid3119 is invalid3120 when unknown keys detected3121 #valid3122 is not valid3123 when script is not provided3124 returns error about missing script entry3125 when extends key is not a string3126 returns error about wrong value type3127 when parallel value is not correct3128 when it is not a numeric value3129 returns error about invalid type3130 when it is lower than one3131 returns error about value too low3132 when it is an empty hash3133 returns error about missing matrix3134 when delayed job3135 when start_in is specified3136 is expected to be valid3137 when start_in is empty3138 returns error about invalid type3139 when start_in is not formatted as a duration3140 returns error about invalid type3141 when start_in is longer than one week3142 returns error about exceeding the limit3143 when the `when` keyword is not a string3144 when it is an array3145 returns error3146 when it is a boolean3147 returns error3148 when start_in specified without delayed specification3149 returns error about invalid type3150 when it has dependencies3151 that are not a array of strings3152 returns error about invalid type3153 when the job has needs3154 and there are dependencies that are not included in needs3155 returns error about invalid data3156 and they are only cross pipeline needs3157 adds an error for dependency keyword usage3158 when timeout value is not correct3159 when it is higher than instance wide timeout3160 returns error about value too high3161 when it is not a duration3162 returns error about wrong value3163 when timeout value is correct3164 returns correct timeout3165 when it is a release3166 when `release:description` is missing3167 returns error3168 when invalid rules are used3169 with rules nested more than max allowed levels3170 is expected not to be valid3171 with rules with invalid keys3172 is expected not to be valid3173 when only: is used with rules:3174 returns error about mixing only: with rules:3175 and only: is blank3176 is valid:3177 and rules: is blank3178 is valid3179 when except: is used with rules:3180 returns error about mixing except: with rules:3181 and except: is blank3182 is valid3183 and rules: is blank3184 is valid3185 when only: and except: are both used with rules:3186 returns errors about mixing both only: and except: with rules:3187 when only: and except: as both blank3188 is valid3189 when rules: is blank3190 is valid3191 when job is not a pages job3192 if the config contains a publish entry3193 is invalid3194 when job is a pages job3195 when it does not have a publish entry3196 is valid3197 when it has a publish entry3198 is valid3199 #relevant?3200 is a relevant entry3201 #compose!3202 when job config overrides default config3203 overrides default config3204 when job config does not override default config3205 uses config from default entry3206 with workflow rules3207 name: "uses default only", has_workflow_rules?: false, only: nil, rules: nil, result: {:refs=>["branches", "tags"]}3208 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesDefaultOnlyHasWorkflowRulesFalseOnlyNilRulesNilResultRefsBranchesTags3209 name: "uses user only", has_workflow_rules?: false, only: ["branches"], rules: nil, result: {:refs=>["branches"]}3210 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesFalseOnlyBranchesRulesNilResultRefsBranches3211 name: "does not define only", has_workflow_rules?: false, only: nil, rules: [], result: nil3212 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesFalseOnlyNilRulesResultNil3213 name: "does not define only", has_workflow_rules?: true, only: nil, rules: nil, result: nil3214 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesNilResultNil3215 name: "uses user only", has_workflow_rules?: true, only: ["branches"], rules: nil, result: {:refs=>["branches"]}3216 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesTrueOnlyBranchesRulesNilResultRefsBranches3217 name: "does not define only", has_workflow_rules?: true, only: nil, rules: [], result: nil3218 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesResultNil3219 when workflow rules is used3220 when rules are used3221 does not define only3222 when rules are not used3223 does not define only3224 when composed3225 #value3226 when entry is correct3227 returns correct value3228 when job is using tags3229 when limit is reached3230 returns error3231 when limit is not reached3232 returns a valid entry3233 #manual_action?3234 when job is a manual action3235 is a manual action3236 when job is not a manual action3237 is not a manual action3238 #delayed?3239 when job is a delayed3240 is a delayed3241 when job is not a delayed3242 is not a delayed3243 #ignored?3244 when job is a manual action3245 when it is not specified if job is allowed to fail3246 is an ignored job3247 when job is allowed to fail3248 is an ignored job3249 when job is not allowed to fail3250 is not an ignored job3251 when job is dynamically allowed to fail3252 is not an ignored job3253 when job is not a manual action3254 when it is not specified if job is allowed to fail3255 is not an ignored job3256 does not return allow_failure3257 when job is allowed to fail3258 is an ignored job3259 does not return allow_failure_criteria3260 when job is not allowed to fail3261 is not an ignored job3262 does not return allow_failure_criteria3263 when job is dynamically allowed to fail3264 is not an ignored job3265 returns allow_failure_criteria3266Metrics::Dashboards::AnnotationsFinder3267 #execute3268 there are no annotations records3269 returns empty array3270 with annotation records3271 loads annotations3272 when the from filter is present3273 loads only younger annotations3274 when the to filter is present3275 loads only older annotations3276 when from and to filters are present3277 and to is bigger than from3278 loads only annotations assigned to this interval3279 and from is bigger than to3280 ignores to parameter and returns annotations starting at from filter3281 when from or to filters are empty strings3282 ignores this parameters3283 dashboard environment is missing3284 returns empty relation3285CommitRange3286 raises ArgumentError when given an invalid range string3287 modules3288 is expected to includes the Referable module3289 #initialize3290 does not modify strings in-place3291 #to_s3292 is correct for three-dot syntax3293 is correct for two-dot syntax3294 #to_reference3295 returns a String reference to the object3296 returns a String reference to the object3297 supports a cross-project reference3298 #reference_link_text3299 returns a String reference to the object3300 returns a String reference to the object3301 supports a cross-project reference3302 #to_param3303 includes the correct keys3304 includes the correct values for a three-dot range3305 includes the correct values for a two-dot range3306 #exclude_start?3307 is false for three-dot ranges3308 is true for two-dot ranges3309 #valid_commits?3310 with a valid repo3311 is false when `sha_from` is invalid3312 is false when `sha_to` is invalid3313 is true when both `sha_from` and `sha_to` are valid3314 without a valid repo3315 returns false3316Users::DestroyService3317 Initiates user deletion and deletes all their personal projects3318 no options are given3319 creates GhostUserMigration record to handle migration in a worker3320 will delete the personal project3321 personal projects in pending_delete3322 destroys a personal project in pending_delete3323 solo owned groups present3324 returns the user with attached errors3325 does not delete the user, nor the group3326 deletions with solo owned groups3327 deletes solo owned groups3328 deletions with inherited group owners3329 does not delete the group3330 user personal's repository removal3331 storages3332 legacy storage3333 removes repository3334 hashed storage3335 removes repository3336 repository removal status is taken into account3337 raises exception3338 calls the before/after callbacks3339 of project_members3340 of group_members3341 prometheus metrics3342 scheduled records3343 with a single record3344 updates the scheduled records gauge3345 with approximate count due to large number of records3346 updates the scheduled records gauge3347 lag3348 update the lag gauge3349 Deletion permission checks3350 does not delete the user when user is not an admin3351 allows users to delete their own account3352 allows user to be deleted if skip_authorization: true3353 when admin mode is enabled3354 allows admins to delete anyone3355 when admin mode is disabled3356 disallows admins to delete anyone3357ContainerRegistry::Client3358 #repository_manifest3359 behaves like handling repository manifest3360 GET /v2/:name/manifests/mytag3361 behaves like handling timeouts3362 handles network timeouts3363 logs the error3364 behaves like handling repository manifest3365 GET /v2/:name/manifests/mytag3366 behaves like handling timeouts3367 handles network timeouts3368 logs the error3369 #blob3370 GET /v2/:name/blobs/:digest3371 with a 307 redirect3372 behaves like handling redirects3373 follows the redirect3374 with a redirect location with params ending with =3375 behaves like handling redirects3376 follows the redirect3377 with a redirect location with params ending with %3D3378 behaves like handling redirects3379 follows the redirect3380 behaves like handling timeouts3381 handles network timeouts3382 logs the error3383 #upload_blob3384 with successful uploads3385 starts the upload and posts the blob3386 with a failed upload3387 returns a failure3388 #generate_empty_manifest3389 uploads a random image and returns the manifest3390 when upload fails3391 is expected to equal nil3392 #put_tag3393 uploads the manifest and returns the digest3394 #delete_repository_tag_by_name3395 when the tag exists3396 is expected to be truthy3397 when the tag does not exist3398 is expected to be truthy3399 when an error occurs3400 is expected to be falsey3401 #supports_tag_delete?3402 registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true3403 returns the expected result3404 registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: true3405 returns the expected result3406 registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true3407 returns the expected result3408 registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true3409 returns the expected result3410 registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true3411 returns the expected result3412 registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: false3413 returns the expected result3414 registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false3415 returns the expected result3416 registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false3417 returns the expected result3418 #registry_info3419 behaves like handling repository info3420 when the check is successful3421 when using the GitLab container registry3422 identifies the vendor as "gitlab"3423 identifies version and features3424 when using a third-party container registry3425 identifies the vendor as "other"3426 does not identify version or features3427 when the check is not successful3428 does not identify vendor, version or features3429 .supports_tag_delete?3430 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true3431 returns the expected result3432 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: true3433 returns the expected result3434 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true3435 returns the expected result3436 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: false3437 returns the expected result3438 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3439 returns the expected result3440 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3441 returns the expected result3442 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3443 returns the expected result3444 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3445 returns the expected result3446 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true3447 returns the expected result3448 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true3449 returns the expected result3450 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false3451 returns the expected result3452 registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false3453 returns the expected result3454 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3455 returns the expected result3456 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3457 returns the expected result3458 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3459 returns the expected result3460 registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3461 returns the expected result3462 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3463 returns the expected result3464 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3465 returns the expected result3466 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3467 returns the expected result3468 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3469 returns the expected result3470 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3471 returns the expected result3472 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3473 returns the expected result3474 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3475 returns the expected result3476 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false3477 returns the expected result3478 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3479 returns the expected result3480 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3481 returns the expected result3482 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3483 returns the expected result3484 registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3485 returns the expected result3486 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3487 returns the expected result3488 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3489 returns the expected result3490 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3491 returns the expected result3492 registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false3493 returns the expected result3494 #repository_tags3495 returns a successful response3496 .registry_info3497 behaves like handling repository info3498 when the check is successful3499 when using the GitLab container registry3500 identifies the vendor as "gitlab"3501 identifies version and features3502 when using a third-party container registry3503 identifies the vendor as "other"3504 does not identify version or features3505 when the check is not successful3506 does not identify vendor, version or features3507Gitlab::Counters::BufferedCounter3508 # order random3509 #amount_to_be_flushed3510 increment: nil, flushed: nil, result: 0, flushed_key_present: false3511 returns the current value to be flushed3512 drops the increment key and creates the flushed key if it does not exist3513 increment: nil, flushed: 0, result: 0, flushed_key_present: false3514 returns the current value to be flushed3515 drops the increment key and creates the flushed key if it does not exist3516 increment: 0, flushed: 0, result: 0, flushed_key_present: false3517 returns the current value to be flushed3518 drops the increment key and creates the flushed key if it does not exist3519 increment: 1, flushed: 0, result: 1, flushed_key_present: true3520 returns the current value to be flushed3521 drops the increment key and creates the flushed key if it does not exist3522 increment: 1, flushed: nil, result: 1, flushed_key_present: true3523 returns the current value to be flushed3524 drops the increment key and creates the flushed key if it does not exist3525 increment: 1, flushed: 1, result: 2, flushed_key_present: true3526 returns the current value to be flushed3527 drops the increment key and creates the flushed key if it does not exist3528 increment: 1, flushed: -2, result: -1, flushed_key_present: true3529 returns the current value to be flushed3530 drops the increment key and creates the flushed key if it does not exist3531 increment: -1, flushed: 1, result: 0, flushed_key_present: false3532 returns the current value to be flushed3533 drops the increment key and creates the flushed key if it does not exist3534 #increment3535 when the counter is not undergoing refresh3536 sets a new key by the given value3537 increments an existing key by the given value3538 returns the value of the key after the increment3539 schedules a worker to commit the counter key into database3540 when the counter is undergoing refresh3541 does not increment the counter key3542 increments the amount in the refresh key3543 schedules a worker to commit the counter key into database3544 when it is an increment (positive amount)3545 when it is the first increment on the ref3546 behaves like changing the counter refresh key by the given amount3547 changes the refresh counter key by the given value3548 returns the value of the key after the increment3549 when it follows an existing increment on the same ref3550 behaves like not changing the counter refresh key3551 does not change the counter3552 returns the unchanged value of the key3553 when it follows an existing decrement on the same ref3554 behaves like not changing the counter refresh key3555 does not change the counter3556 returns the unchanged value of the key3557 when there has been an existing increment on another ref3558 behaves like changing the counter refresh key by the given amount3559 changes the refresh counter key by the given value3560 returns the value of the key after the increment3561 when there has been an existing decrement on another ref3562 behaves like changing the counter refresh key by the given amount3563 changes the refresh counter key by the given value3564 returns the value of the key after the increment3565 when it is a decrement (negative amount)3566 when it is the first decrement on the same ref3567 behaves like not changing the counter refresh key3568 does not change the counter3569 returns the unchanged value of the key3570 when it follows an existing decrement on the ref3571 behaves like not changing the counter refresh key3572 does not change the counter3573 returns the unchanged value of the key3574 when it follows an existing increment on the ref3575 behaves like changing the counter refresh key by the given amount3576 changes the refresh counter key by the given value3577 returns the value of the key after the increment3578 when there has been an existing increment on another ref3579 behaves like not changing the counter refresh key3580 does not change the counter3581 returns the unchanged value of the key3582 when there has been an existing decrement on another ref3583 behaves like not changing the counter refresh key3584 does not change the counter3585 returns the unchanged value of the key3586 when the amount is 03587 when it is the first increment on the ref3588 behaves like not changing the counter refresh key3589 does not change the counter3590 returns the unchanged value of the key3591 when it follows the another increment on the ref3592 behaves like not changing the counter refresh key3593 does not change the counter3594 returns the unchanged value of the key3595 when the ref is greater than 67108863 (8MB)3596 deduplicates increments correctly3597 when feature flag is disabled3598 when the counter is not undergoing refresh3599 sets a new key by the given value3600 increments an existing key by the given value3601 when the counter is undergoing refresh3602 when it is a decrement (negative amount)3603 immediately decrements the counter key to negative3604 #commit_increment!3605 obtains an exclusive lease during processing3606 when there is an amount to commit3607 commits the increment into the database3608 removes the increment entry from Redis3609 when there are no counters to flush3610 when there are no counters in the relative :flushed key3611 does not change the record3612 when there are counters in the relative :flushed key3613 updates the record3614 deletes the relative :flushed key3615 when deleting :flushed key fails3616 does a rollback of the counter update3617 when the counter record has after_commit callbacks3618 has registered callbacks3619 when there are increments to flush3620 executes the callbacks3621 when there are no increments to flush3622 does not execute the callbacks3623 #initiate_refresh!3624 removes the key from Redis3625 resets the counter to 03626 resets the record to 03627 sets a refresh indicator with a long expiry3628 #cleanup_refresh3629 removes all tracking keys3630 #bulk_increment3631 when the counter is not undergoing refresh3632 increments the key by the given values3633 returns the value of the key after the increment3634 schedules a worker to commit the counter into database3635 when the counter is undergoing refresh3636 when there are 2 increments on different ref3637 behaves like changing the counter refresh key by the expected amount3638 changes the counter refresh key by the net change3639 returns the value of the key after the increment3640 when there has been previous decrements3641 behaves like changing the counter refresh key by the expected amount3642 changes the counter refresh key by the net change3643 returns the value of the key after the increment3644 when one of the increment is repeated3645 behaves like changing the counter refresh key by the expected amount3646 changes the counter refresh key by the net change3647 returns the value of the key after the increment3648 when there are 2 decrements on different ref3649 behaves like changing the counter refresh key by the expected amount3650 changes the counter refresh key by the net change3651 returns the value of the key after the increment3652 when there has been previous increments3653 behaves like changing the counter refresh key by the expected amount3654 changes the counter refresh key by the net change3655 returns the value of the key after the increment3656 when there is a mixture of increment and decrement on different refs3657 behaves like changing the counter refresh key by the expected amount3658 changes the counter refresh key by the net change3659 returns the value of the key after the increment3660 when the increment ref has been decremented3661 behaves like changing the counter refresh key by the expected amount3662 changes the counter refresh key by the net change3663 returns the value of the key after the increment3664 when the decrement ref has been incremented3665 behaves like changing the counter refresh key by the expected amount3666 changes the counter refresh key by the net change3667 returns the value of the key after the increment3668 when feature flag is disabled3669 when the counter is not undergoing refresh3670 sets a new key by the given value3671 increments an existing key by the given value3672 when the counter is undergoing refresh3673 when it is a decrement (negative amount)3674 immediately decrements the counter key to negative3675 #get3676 returns the value when there is an existing value stored in the counter3677 returns 0 when there is no existing value3678 #finalize_refresh3679 with existing amount in refresh key3680 moves the deduplicated amount in the refresh key into the counter key3681 removes the refresh counter key and the refresh indicator3682 schedules a worker to clean up the refresh tracking keys3683 without existing amount in refresh key3684 does not change the counter key3685 removes the refresh indicator key3686 schedules a worker to commit the counter key into database3687Gitlab::Metrics::RequestsRackMiddleware3688 #call3689 @app.call succeeds with 2003690 tracks request count and duration3691 guarantees SLI metrics are incremented with all the required labels3692 request is a health check endpoint3693 when path is /-/liveness3694 increments health endpoint counter rather than overall counter and does not record duration3695 when path is /-/liveness/3696 increments health endpoint counter rather than overall counter and does not record duration3697 when path is /-/%6D%65%74%72%69%63%733698 increments health endpoint counter rather than overall counter and does not record duration3699 request is not a health check endpoint3700 when path is /-/ordinary-requests3701 increments regular counters and tracks duration3702 when path is /-/3703 increments regular counters and tracks duration3704 when path is /-/health/subpath3705 increments regular counters and tracks duration3706 @app.call returns an error code3707 tracks count and error rate but not duration and apdex3708 @app.call throws exception3709 tracks the correct metrics3710 application context3711 when a context is present3712 adds the feature category to the labels for required metrics3713 does not record a feature category for health check endpoints3714 when application raises an exception when the feature category context is present3715 adds the feature category to the labels for http_requests_total3716 when the context is not available3717 sets the required labels to unknown3718 SLI satisfactory3719 request_urgency_name: :high, duration: 0.1, success: true3720 Grape API handler having expected duration setup3721 captures SLI metrics3722 Rails controller having expected duration setup3723 captures SLI metrics3724 request_urgency_name: :high, duration: 0.25, success: false3725 Grape API handler having expected duration setup3726 captures SLI metrics3727 Rails controller having expected duration setup3728 captures SLI metrics3729 request_urgency_name: :high, duration: 0.3, success: false3730 Grape API handler having expected duration setup3731 captures SLI metrics3732 Rails controller having expected duration setup3733 captures SLI metrics3734 request_urgency_name: :medium, duration: 0.3, success: true3735 Grape API handler having expected duration setup3736 captures SLI metrics3737 Rails controller having expected duration setup3738 captures SLI metrics3739 request_urgency_name: :medium, duration: 0.5, success: false3740 Grape API handler having expected duration setup3741 captures SLI metrics3742 Rails controller having expected duration setup3743 captures SLI metrics3744 request_urgency_name: :medium, duration: 0.6, success: false3745 Grape API handler having expected duration setup3746 captures SLI metrics3747 Rails controller having expected duration setup3748 captures SLI metrics3749 request_urgency_name: :default, duration: 0.6, success: true3750 Grape API handler having expected duration setup3751 captures SLI metrics3752 Rails controller having expected duration setup3753 captures SLI metrics3754 request_urgency_name: :default, duration: 1.0, success: false3755 Grape API handler having expected duration setup3756 captures SLI metrics3757 Rails controller having expected duration setup3758 captures SLI metrics3759 request_urgency_name: :default, duration: 1.2, success: false3760 Grape API handler having expected duration setup3761 captures SLI metrics3762 Rails controller having expected duration setup3763 captures SLI metrics3764 request_urgency_name: :low, duration: 4.5, success: true3765 Grape API handler having expected duration setup3766 captures SLI metrics3767 Rails controller having expected duration setup3768 captures SLI metrics3769 request_urgency_name: :low, duration: 5.0, success: false3770 Grape API handler having expected duration setup3771 captures SLI metrics3772 Rails controller having expected duration setup3773 captures SLI metrics3774 request_urgency_name: :low, duration: 6, success: false3775 Grape API handler having expected duration setup3776 captures SLI metrics3777 Rails controller having expected duration setup3778 captures SLI metrics3779 Grape API without expected duration3780 falls back request's expectation to default (1 second)3781 Rails controller without expected duration3782 falls back request's expectation to default (1 second)3783 A request with urgency set on the env (from ETag-caching)3784 records the request with the correct urgency3785 An unknown request3786 falls back request's expectation to default (1 second)3787 .initialize_metrics3788 sets labels for http_requests_total3789 sets labels for http_request_duration_seconds3790 has every label in config/feature_categories.yml3791AuthorizedProjectUpdate::FindRecordsDueForRefreshService3792 #execute3793 callbacks3794 incorrect_auth_found_callback callback3795 is called3796 missing_auth_found_callback callback3797 is called3798 finding project authorizations due for refresh3799 when there are changes to be made3800 finds projects authorizations that needs to be refreshed3801 finds entries with wrong access levels3802 when there are no changes to be made3803 returns empty arrays3804 #needs_refresh?3805 when there are records due for either removal or addition3806 when there are both removals and additions to be made3807 is expected to eq true3808 when there are no removals, but there are additions to be made3809 is expected to eq true3810 when there are no additions, but there are removals to be made3811 is expected to eq true3812 when there are no additions or removals to be made3813 is expected to eq false3814 #fresh_access_levels_per_project3815 returns a Hash3816 sets the keys to the project IDs3817 sets the values to the access levels3818 personal projects3819 includes the project with the right access level3820 projects the user is a member of3821 includes the project with the right access level3822 projects of groups the user is a member of3823 includes the project with the right access level3824 projects of subgroups of groups the user is a member of3825 includes the project with the right access level3826 projects shared with groups the user is a member of3827 includes the project with the right access level3828 projects shared with subgroups of groups the user is a member of3829 includes the project with the right access level3830 #current_authorizations_per_project3831 returns a Hash3832 sets the keys to the project IDs3833 sets the values to the project authorization rows3834 #current_authorizations3835 without authorizations3836 returns an empty list3837 with an authorization3838 returns the currently authorized projects3839 includes the project ID for every row3840 includes the access level for every row3841 #fresh_authorizations3842 returns the new authorized projects3843 returns the highest access level3844 every returned row3845 includes the project ID3846 includes the access level3847Gitlab::Search::AbuseDetection3848 abusive scopes validation3849 allows only approved scopes3850 disallows anything not approved3851 abusive character matching3852 does match refs permitted by git refname: main3853 does NOT match refs with special characters: main3854 does match refs permitted by git refname: тест3855 does NOT match refs with special characters: тест3856 does match refs permitted by git refname: maiñ3857 does NOT match refs with special characters: maiñ3858 does match refs permitted by git refname: main1233859 does NOT match refs with special characters: main1233860 does match refs permitted by git refname: main-v1233861 does NOT match refs with special characters: main-v1233862 does match refs permitted by git refname: main-v12.33863 does NOT match refs with special characters: main-v12.33864 does match refs permitted by git refname: feature/it_works3865 does NOT match refs with special characters: feature/it_works3866 does match refs permitted by git refname: really_important!3867 does NOT match refs with special characters: really_important!3868 does match refs permitted by git refname: 测试3869 does NOT match refs with special characters: 测试3870 numericality validation3871 considers non Integers to be invalid3872 considers Integers to be valid3873 query_string validation3874 search: "a", errors: {:query_string=>["stopword only abusive search detected"]}3875 validates query string for pointless search3876 search: "an", errors: {:query_string=>["stopword only abusive search detected"]}3877 validates query string for pointless search3878 search: "and", errors: {:query_string=>["stopword only abusive search detected"]}3879 validates query string for pointless search3880 search: "are", errors: {:query_string=>["stopword only abusive search detected"]}3881 validates query string for pointless search3882 search: "as", errors: {:query_string=>["stopword only abusive search detected"]}3883 validates query string for pointless search3884 search: "at", errors: {:query_string=>["stopword only abusive search detected"]}3885 validates query string for pointless search3886 search: "be", errors: {:query_string=>["stopword only abusive search detected"]}3887 validates query string for pointless search3888 search: "but", errors: {:query_string=>["stopword only abusive search detected"]}3889 validates query string for pointless search3890 search: "by", errors: {:query_string=>["stopword only abusive search detected"]}3891 validates query string for pointless search3892 search: "for", errors: {:query_string=>["stopword only abusive search detected"]}3893 validates query string for pointless search3894 search: "if", errors: {:query_string=>["stopword only abusive search detected"]}3895 validates query string for pointless search3896 search: "in", errors: {:query_string=>["stopword only abusive search detected"]}3897 validates query string for pointless search3898 search: "into", errors: {:query_string=>["stopword only abusive search detected"]}3899 validates query string for pointless search3900 search: "is", errors: {:query_string=>["stopword only abusive search detected"]}3901 validates query string for pointless search3902 search: "it", errors: {:query_string=>["stopword only abusive search detected"]}3903 validates query string for pointless search3904 search: "no", errors: {:query_string=>["stopword only abusive search detected"]}3905 validates query string for pointless search3906 search: "not", errors: {:query_string=>["stopword only abusive search detected"]}3907 validates query string for pointless search3908 search: "of", errors: {:query_string=>["stopword only abusive search detected"]}3909 validates query string for pointless search3910 search: "on", errors: {:query_string=>["stopword only abusive search detected"]}3911 validates query string for pointless search3912 search: "or", errors: {:query_string=>["stopword only abusive search detected"]}3913 validates query string for pointless search3914 search: "such", errors: {:query_string=>["stopword only abusive search detected"]}3915 validates query string for pointless search3916 search: "that", errors: {:query_string=>["stopword only abusive search detected"]}3917 validates query string for pointless search3918 search: "the", errors: {:query_string=>["stopword only abusive search detected"]}3919 validates query string for pointless search3920 search: "their", errors: {:query_string=>["stopword only abusive search detected"]}3921 validates query string for pointless search3922 search: "then", errors: {:query_string=>["stopword only abusive search detected"]}3923 validates query string for pointless search3924 search: "there", errors: {:query_string=>["stopword only abusive search detected"]}3925 validates query string for pointless search3926 search: "these", errors: {:query_string=>["stopword only abusive search detected"]}3927 validates query string for pointless search3928 search: "they", errors: {:query_string=>["stopword only abusive search detected"]}3929 validates query string for pointless search3930 search: "this", errors: {:query_string=>["stopword only abusive search detected"]}3931 validates query string for pointless search3932 search: "to", errors: {:query_string=>["stopword only abusive search detected"]}3933 validates query string for pointless search3934 search: "was", errors: {:query_string=>["stopword only abusive search detected"]}3935 validates query string for pointless search3936 search: "will", errors: {:query_string=>["stopword only abusive search detected"]}3937 validates query string for pointless search3938 search: "with", errors: {:query_string=>["stopword only abusive search detected"]}3939 validates query string for pointless search3940 search: "x", errors: {:query_string=>["abusive tiny search detected"]}3941 validates query string for pointless search3942 search: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", errors: {:query_string=>["abusive term length detected"]}3943 validates query string for pointless search3944 search: "", errors: {}3945 validates query string for pointless search3946 search: "*", errors: {}3947 validates query string for pointless search3948 search: "ruby", errors: {}3949 validates query string for pointless search3950 abusive type coercion from string validation3951 considers anything not a String invalid3952 considers Strings to be valid3953Projects::GitDeduplicationService3954 #execute3955 when there is not already a lease3956 when the project does not have a pool repository3957 calls disconnect_git_alternates3958 when the project has a pool repository3959 links the repository to the object pool3960 does not link the repository to the object pool if they are not on the same storage3961 when the project is a source project3962 calls fetch3963 does not call fetch if git objects are not poolable3964 does not call fetch if pool and project are not on the same storage3965 when visibility level of the project3966 is private3967 does not call fetch3968 is public3969 calls fetch3970 is internal3971 calls fetch3972 when the repository access level3973 is private3974 does not call fetch3975 is greater than private3976 calls fetch3977 when a lease is already out3978 fails when a lease is already out3979load_balancing3980 # order random3981 with replica hosts configured3982 configures load balancer with two replica hosts3983 for a clustered puma worker3984 configures load balancer to have two replica hosts3985 makes a read query successfully3986 makes a write query successfully3987MergeRequests::RetargetChainService3988 #execute3989 when there is another MR3990 in the same project3991 and current is merged3992 behaves like retargets merge request3993 another merge request is retargeted3994 and current is closed3995 behaves like does not retarget merge request3996 another merge request is unchanged3997 and another is closed3998 behaves like does not retarget merge request3999 another merge request is unchanged4000 and another is merged4001 behaves like does not retarget merge request4002 another merge request is unchanged4003 in forked project4004 when user has access to source project4005 behaves like retargets merge request4006 another merge request is retargeted4007 when user does not have access to source project4008 behaves like does not retarget merge request4009 another merge request is unchanged4010 and current and another MR is from a fork4011 behaves like does not retarget merge request4012 another merge request is unchanged4013 when many merge requests are to be retargeted4014 retargets only 4 of them4015Projects::HashedStorage::MigrateAttachmentsService4016 #execute4017 works even when project validation fails4018 when succeeds4019 moves attachments to hashed storage layout4020 returns true4021 sets skipped to false4022 when original folder does not exist anymore4023 skips moving folders and go to next4024 returns true4025 sets skipped to true4026 when target folder already exists4027 succeed when target is empty4028 succeed when target include only discardable items4029 raises AttachmentCannotMoveError when there are non discardable items on target path4030 #old_disk_path4031 returns old disk_path for project4032 #new_disk_path4033 returns new disk_path for project4034 #target_path_discardable?4035 returns true when it include only items on the discardable list4036Gitlab::Pagination::Keyset::Order4037 paginate over items correctly4038 when ordering by a distinct column4039 behaves like order examples4040 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]4041 when paginating forwards4042 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]4043 with different page size4044 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]4045 when using the conditions in an UNION query4046 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]4047 when the cursor attributes are SQL literals4048 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]4049 when using the conditions in an UNION query4050 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]4051 when paginating backwards4052 is expected to eq [{"id"=>2, "month"=>0, "year"=>0}, {"id"=>3, "month"=>0, "year"=>0}, {"id"=>4, "month"=>0, "year"=>0}..."id"=>7, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>9, "month"=>0, "year"=>0}]4053 when ordering by two non-nullable columns and a distinct column4054 uses the row comparison method4055 behaves like order examples4056 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]4057 when paginating forwards4058 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]4059 with different page size4060 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]4061 when using the conditions in an UNION query4062 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]4063 when the cursor attributes are SQL literals4064 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]4065 when using the conditions in an UNION query4066 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]4067 when paginating backwards4068 is expected to eq [{"id"=>8, "month"=>4, "year"=>2012}, {"id"=>5, "month"=>1, "year"=>2011}, {"id"=>4, "month"=>1, "yea..."month"=>2, "year"=>2010}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>3, "month"=>2, "year"=>2009}]4069 when ordering by nullable columns and a distinct column4070 behaves like order examples4071 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]4072 when paginating forwards4073 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]4074 with different page size4075 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]4076 when using the conditions in an UNION query4077 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]4078 when the cursor attributes are SQL literals4079 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]4080 when using the conditions in an UNION query4081 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]4082 when paginating backwards4083 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>4, "month"=>5, "year"=>nil}, {"id"=>9, "month"=>2, "yea...nth"=>nil, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>7, "month"=>2, "year"=>2010}]4084 when ordering by nullable columns with nulls first ordering and a distinct column4085 behaves like order examples4086 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]4087 when paginating forwards4088 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]4089 with different page size4090 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]4091 when using the conditions in an UNION query4092 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]4093 when the cursor attributes are SQL literals4094 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]4095 when using the conditions in an UNION query4096 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]4097 when paginating backwards4098 is expected to eq [{"id"=>6, "month"=>2, "year"=>2011}, {"id"=>2, "month"=>2, "year"=>2011}, {"id"=>11, "month"=>2, "ye...onth"=>2, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}]4099 when ordering by non-nullable columns with mixed directions and a distinct column4100 takes out a slice between two cursors4101 when ordering by the named function LOWER4102 uses downcased value for encoding and decoding a cursor4103 when the passed cursor values do not match with the order definition4104 when values are missing4105 raises error4106 when extra values are present4107 raises error4108 when values are missing and extra values are present4109 raises error4110 when no values are passed4111 returns empty array4112 extract and apply cursor attributes4113 when string attribute name is given4114 behaves like cursor attribute examples4115 #cursor_attributes_for_node4116 is expected to eq {"id"=>"100"}4117 #apply_cursor_conditions4118 when params with string keys are passed4119 is expected to include "\"projects\".\"id\" < 100)"4120 when params with symbol keys are passed4121 is expected to include "\"projects\".\"id\" < 100)"4122 when symbol attribute name is given4123 behaves like cursor attribute examples4124 #cursor_attributes_for_node4125 is expected to eq {"id"=>"100"}4126 #apply_cursor_conditions4127 when params with string keys are passed4128 is expected to include "\"projects\".\"id\" < 100)"4129 when params with symbol keys are passed4130 is expected to include "\"projects\".\"id\" < 100)"4131 with projections4132 when additional_projections is empty4133 has correct projections4134 when there are additional_projections4135 has correct projections4136 UNION optimization4137 when UNION optimization is off4138 returns items in the correct order4139 when UNION optimization is on4140 returns items in the correct order4141 calls Gitlab::SQL::Union4142 builds UNION query4143 #attribute_names4144 is expected to contain exactly "id" and "name"4145UserPolicy4146 reading a user's information4147 is expected to be allowed :read_user4148 reading a different user's Personal Access Tokens4149 when user is admin4150 when admin mode is enabled4151 is expected to be allowed :read_user_personal_access_tokens4152 when admin mode is disabled4153 is expected not to be allowed :read_user_personal_access_tokens4154 when user is not an admin4155 requesting their own personal access tokens4156 is expected to be allowed :read_user_personal_access_tokens4157 requesting a different user's personal access tokens4158 is expected not to be allowed :read_user_personal_access_tokens4159 creating a different user's Personal Access Tokens4160 when current_user is admin4161 when admin mode is enabled and current_user is not blocked4162 is expected to be allowed :create_user_personal_access_token4163 when admin mode is enabled and current_user is blocked4164 is expected not to be allowed :create_user_personal_access_token4165 when admin mode is disabled4166 is expected not to be allowed :create_user_personal_access_token4167 when current_user is not an admin4168 creating their own personal access tokens4169 when current_user is not blocked4170 is expected to be allowed :create_user_personal_access_token4171 when current_user is blocked4172 is expected not to be allowed :create_user_personal_access_token4173 creating a different user's personal access tokens4174 is expected not to be allowed :create_user_personal_access_token4175 reading a user's associations count4176 when current_user is not an admin4177 fetching their own data4178 when current_user is not blocked4179 is expected to be allowed :get_user_associations_count4180 when current_user is blocked4181 is expected not to be allowed :get_user_associations_count4182 fetching a different user's data4183 is expected not to be allowed :get_user_associations_count4184 when current_user is an admin4185 fetching their own data4186 when current_user is not blocked4187 is expected to be allowed :get_user_associations_count4188 when current_user is blocked4189 is expected not to be allowed :get_user_associations_count4190 fetching a different user's data4191 is expected to be allowed :get_user_associations_count4192 updating a user's status4193 behaves like changing a user4194 when a regular user tries to destroy another regular user4195 is expected not to be allowed :update_user_status4196 when a regular user tries to destroy themselves4197 is expected to be allowed :update_user_status4198 when an admin user tries to destroy a regular user4199 when admin mode is enabled4200 is expected to be allowed :update_user_status4201 when admin mode is disabled4202 is expected to be disallowed :update_user_status4203 when an admin user tries to destroy a ghost user4204 is expected not to be allowed :update_user_status4205 destroying a user4206 behaves like changing a user4207 when a regular user tries to destroy another regular user4208 is expected not to be allowed :destroy_user4209 when a regular user tries to destroy themselves4210 is expected to be allowed :destroy_user4211 when an admin user tries to destroy a regular user4212 when admin mode is enabled4213 is expected to be allowed :destroy_user4214 when admin mode is disabled4215 is expected to be disallowed :destroy_user4216 when an admin user tries to destroy a ghost user4217 is expected not to be allowed :destroy_user4218 updating a user4219 behaves like changing a user4220 when a regular user tries to destroy another regular user4221 is expected not to be allowed :update_user4222 when a regular user tries to destroy themselves4223 is expected to be allowed :update_user4224 when an admin user tries to destroy a regular user4225 when admin mode is enabled4226 is expected to be allowed :update_user4227 when admin mode is disabled4228 is expected to be disallowed :update_user4229 when an admin user tries to destroy a ghost user4230 is expected not to be allowed :update_user4231 disabling two-factor authentication4232 disabling their own two-factor authentication4233 is expected to be allowed :disable_two_factor4234 disabling the two-factor authentication of another user4235 when the executor is an admin4236 is expected to be allowed :disable_two_factor4237 when the executor is not an admin4238 is expected not to be allowed :disable_two_factor4239 reading a user's group count4240 when current_user is an admin4241 is expected to be allowed :read_group_count4242 for self users4243 is expected to be allowed :read_group_count4244 when accessing a different user's group count4245 is expected not to be allowed :read_group_count4246 :read_user_profile4247 when the user is unconfirmed4248 is expected not to be allowed :read_user_profile4249 when the user is confirmed4250 is expected to be allowed :read_user_profile4251 :read_user_groups4252 when user is admin4253 when admin mode is enabled4254 is expected to be allowed :read_user_groups4255 when admin mode is disabled4256 is expected not to be allowed :read_user_groups4257 when user is not an admin4258 requesting their own manageable groups4259 is expected to be allowed :read_user_groups4260 requesting a different user's manageable groups4261 is expected not to be allowed :read_user_groups4262 :read_user_email_address4263 when user is admin4264 when admin mode is enabled4265 is expected to be allowed :read_user_email_address4266 when admin mode is disabled4267 is expected not to be allowed :read_user_email_address4268 when user is not an admin4269 requesting their own4270 is expected to be allowed :read_user_email_address4271 requesting a different user's4272 is expected not to be allowed :read_user_email_address4273MergeRequestCleanupRefsWorker4274 #perform_work4275 when next cleanup schedule is found4276 marks the cleanup schedule as completed on success4277 when service fails4278 marks the cleanup schedule as unstarted and track the failure4279 and cleanup schedule has already failed 3 times4280 marks the cleanup schedule as failed and track the failure4281 when merge_request_refs_cleanup flag is disabled4282 does nothing4283 when there is no next cleanup schedule found4284 does nothing4285 #remaining_work_count4286 returns number of scheduled and unstarted cleanup schedule records4287 when count exceeds max_running_jobs4288 gets capped at max_running_jobs4289 #max_running_jobs4290 returns the value of MAX_RUNNING_JOBS4291Discussions::UpdateDiffPositionService4292 #execute4293 when the diff line is the same4294 updates the position4295 when the resolve_outdated_diff_discussions setting is set4296 does not resolve the discussion4297 when the diff line has changed4298 doesn't update the position4299 sets the change position4300 creates a system discussion4301 when the resolve_outdated_diff_discussions setting is set4302 sets resolves the discussion and sets resolved_by_push4303 doesn't update the position4304 sets the change position4305 creates a system discussion4306Ci::RunnerPolicy4307 # order random4308 ability :read_ephemeral_token4309 with request made by creator4310 is expected to be allowed :read_ephemeral_token4311 with request made by another user4312 is expected not to be allowed :read_ephemeral_token4313 ability :read_runner4314 without access4315 behaves like does not allow reading runners on any scope4316 with instance runner4317 is expected not to be allowed :read_runner4318 with shared runners disabled for groups and projects4319 is expected not to be allowed :read_runner4320 with group runner4321 is expected not to be allowed :read_runner4322 with sharing of group runners disabled4323 is expected not to be allowed :read_runner4324 with project runner4325 is expected not to be allowed :read_runner4326 with guest access4327 behaves like does not allow reading runners on any scope4328 with instance runner4329 is expected not to be allowed :read_runner4330 with shared runners disabled for groups and projects4331 is expected not to be allowed :read_runner4332 with group runner4333 is expected not to be allowed :read_runner4334 with sharing of group runners disabled4335 is expected not to be allowed :read_runner4336 with project runner4337 is expected not to be allowed :read_runner4338 with developer access4339 behaves like a policy allowing reading instance runner depending on runner sharing4340 with instance runner4341 is expected to be allowed :read_runner4342 with shared runners disabled on projects4343 is expected to be allowed :read_runner4344 with shared runners disabled for groups and projects4345 is expected not to be allowed :read_runner4346 behaves like a policy allowing reading group runner depending on runner sharing4347 with group runner4348 is expected to be allowed :read_runner4349 with sharing of group runners disabled4350 is expected not to be allowed :read_runner4351 with project runner4352 is expected not to be allowed :read_runner4353 with maintainer access4354 behaves like a policy allowing reading instance runner depending on runner sharing4355 with instance runner4356 is expected to be allowed :read_runner4357 with shared runners disabled on projects4358 is expected to be allowed :read_runner4359 with shared runners disabled for groups and projects4360 is expected not to be allowed :read_runner4361 behaves like a policy allowing reading group runner depending on runner sharing4362 with group runner4363 is expected to be allowed :read_runner4364 with sharing of group runners disabled4365 is expected not to be allowed :read_runner4366 with project runner4367 is expected to be allowed :read_runner4368 with owner access4369 behaves like a policy allowing reading instance runner depending on runner sharing4370 with instance runner4371 is expected to be allowed :read_runner4372 with shared runners disabled on projects4373 is expected to be allowed :read_runner4374 with shared runners disabled for groups and projects4375 is expected not to be allowed :read_runner4376 with group runner4377 is expected to be allowed :read_runner4378 with sharing of group runners disabled4379 is expected to be allowed :read_runner4380 with project runner4381 is expected to be allowed :read_runner4382Metrics::Dashboard::CustomDashboardService4383 #raw_dashboard4384 behaves like #raw_dashboard raises error if dashboard loading fails4385 when yaml is too large4386 raises error4387 when yaml loader returns error4388 raises error4389 when yaml is not a hash4390 returns nil4391 #get_dashboard4392 when the dashboard does not exist4393 does not update gitlab_metrics_dashboard_processing_time_ms metric4394 behaves like misconfigured dashboard service response4395 returns an appropriate message and status code4396 behaves like raises error for users with insufficient permissions4397 when the user does not have sufficient access4398 behaves like misconfigured dashboard service response4399 returns an appropriate message and status code4400 when the user is anonymous4401 behaves like misconfigured dashboard service response4402 returns an appropriate message and status code4403 when the dashboard exists4404 caches the unprocessed dashboard for subsequent calls4405 tracks panel type4406 behaves like valid dashboard service response4407 behaves like valid dashboard service response for schema4408 returns a json representation of the dashboard4409 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric4410 prometheus4411 with metric in database4412 includes metric_id4413 and the dashboard is then deleted4414 does not return the previously cached dashboard4415 when the dashboard is configured incorrectly4416 behaves like misconfigured dashboard service response4417 returns an appropriate message and status code4418 .all_dashboard_paths4419 when there are no project dashboards4420 returns an empty array4421 when there are project dashboards available4422 returns the dashboard attributes4423 caches repo file list4424 .valid_params?4425 is expected to be truthy4426 missing dashboard_path4427 is expected to be falsey4428 empty dashboard_path4429 is expected to be falsey4430Gitlab::Ci::Config::External::Mapper4431 #process4432 when single 'include' keyword is defined4433 when the string is a local file4434 returns File instances4435 behaves like logging config file fetch4436 propagates the pipeline logger4437 when the key is a local file hash4438 returns File instances4439 when the string is a remote file4440 returns File instances4441 behaves like logging config file fetch4442 propagates the pipeline logger4443 when the key is a remote file hash4444 returns File instances4445 when the key is a template file hash4446 returns File instances4447 behaves like logging config file fetch4448 propagates the pipeline logger4449 when the key is not valid4450 returns ambigious specification error4451 when the key is a hash of local and remote4452 returns ambigious specification error4453 when the key is a project's file4454 returns File instances4455 behaves like logging config file fetch4456 propagates the pipeline logger4457 when the key is project's files4458 returns two File instances4459 behaves like logging config file fetch4460 propagates the pipeline logger4461 when 'include' is defined as an array4462 returns Files instances4463 when 'include' is defined as an array of hashes4464 returns Files instances4465 when it has ambigious match4466 returns ambigious specification error4467 when 'include' is not defined4468 returns an empty array4469 when duplicate 'include's are defined4470 does not raise an exception4471 has expanset with two4472 when passing max number of files4473 does not raise an exception4474 when too many 'includes' are defined4475 raises an exception4476 when including multiple files from a project4477 raises an exception4478 when 'include' section uses project variable4479 when local file is included as a single string4480 expands the variable4481 when remote file is included as a single string4482 expands the variable4483 defined as an array4484 expands the variable4485 defined as an array of hashes4486 expands the variable4487 local file hash4488 expands the variable4489 project name4490 expands the variable4491 with multiple files4492 expands the variable4493 when include variable has an unsupported type for variable expansion4494 does not invoke expansion for the variable4495 when local file path has wildcard4496 includes the matched local files4497 when 'include' has rules4498 when the rules matches4499 includes the file4500 when the rules does not match4501 does not include the file4502 when locations are same after masking variables4503 has expanset with two4504ExternalPullRequest4505 is expected to belong to project required: false4506 validations4507 when source branch not present4508 behaves like has errors on4509 has errors for source_branch4510 when status not present4511 behaves like has errors on4512 has errors for status4513 when pull request is from a fork4514 behaves like has errors on4515 has errors for base4516 create_or_update_from_params4517 when pull request does not exist4518 when params are correct4519 saves the model successfully and returns it4520 yields the model4521 when params are not correct4522 returns an invalid model4523 when pull request exists4524 when params are correct4525 updates the model successfully and returns it4526 when params are not correct4527 returns an invalid model4528 #open?4529 returns true if status is open4530 returns false if status is not open4531 #closed?4532 returns true if status is closed4533 returns false if status is not closed4534 #actual_branch_head?4535 when source sha matches the head of the branch4536 returns true4537 when source sha does not match the head of the branch4538 returns true4539 #from_fork?4540 returns true if source_repository differs from target_repository4541 returns false if source_repository is the same as target_repository4542 #modified_paths4543 returns modified paths4544 loose foreign key on external_pull_requests.project_id4545 behaves like cleanup by a loose foreign key4546 cleans up (delete or nullify) the model4547Gitlab::UserAccessSnippet4548 #can_do_action?4549 when can access_git4550 calls Ability#allowed? and returns its result4551 when can not access_git4552 disallows access4553 when user is nil4554 disallows access4555 when user is migration bot4556 allows access4557 #can_push_to_branch?4558 anonymous4559 when can access_git4560 respects accessibility4561 when can not access_git4562 disallows access4563 non_member4564 when can access_git4565 respects accessibility4566 when can not access_git4567 disallows access4568 guest4569 when can access_git4570 respects accessibility4571 when can not access_git4572 disallows access4573 reporter4574 when can access_git4575 respects accessibility4576 when can not access_git4577 disallows access4578 maintainer4579 when can access_git4580 respects accessibility4581 when can not access_git4582 disallows access4583 admin4584 when can access_git4585 respects accessibility4586 when can not access_git4587 disallows access4588 author4589 when can access_git4590 respects accessibility4591 when can not access_git4592 disallows access4593 when user is migration bot4594 allows access4595 when snippet is nil4596 disallows access4597 when user is migration bot4598 disallows access4599 #can_create_tag?4600 returns false4601 when user is migration bot4602 returns false4603 #can_delete_branch?4604 returns false4605 when user is migration bot4606 returns false4607 #can_merge_to_branch?4608 returns false4609 when user is migration bot4610 returns false4611FinderWithCrossProjectAccess4612 when the user cannot read cross project4613 #execute4614 returns a issue if the check is disabled4615 returns an empty relation when the check is enabled4616 only queries once when check is enabled4617 only queries once when check is disabled4618 #find4619 checks the accessibility of the subject directly4620 returns the issue4621 #find_by4622 checks the accessibility of the subject directly4623 #find_by!4624 checks the accessibility of the subject directly4625 re-enables the check after the find failed4626 when the user can read cross project4627 returns the result4628 when specifying a model4629 .finder_model4630 is set correctly4631Gitlab::Cleanup::OrphanLfsFileReferences4632 dry run4633 prints messages and does not delete references4634 regular run4635 prints messages and deletes invalid reference4636 does nothing if the project has no LFS objects4637 LFS object is in design repository4638 is not removed4639 LFS object is in wiki repository4640 is not removed4641 LFS for project snippets4642 is disabled4643Namespaces::PackageSettings::UpdateService4644 #execute4645 with existing namespace package setting4646 user_role: :maintainer, shared_examples_name: "updating the namespace package setting"4647 behaves like updating the namespace package setting4648 behaves like updating the namespace package setting attributes4649 updates the namespace package setting4650 behaves like not creating the namespace package setting4651 doesn't create the namespace package setting4652 behaves like returning a success4653 returns a success4654 with invalid params4655 doesn't update the maven_duplicates_allowed4656 behaves like not creating the namespace package setting4657 doesn't create the namespace package setting4658 behaves like returning an error4659 returns an error4660 user_role: :developer, shared_examples_name: "denying access to namespace package setting"4661 behaves like denying access to namespace package setting4662 with existing namespace package setting4663 behaves like not creating the namespace package setting4664 doesn't create the namespace package setting4665 behaves like returning an error4666 returns an error4667 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"4668 behaves like denying access to namespace package setting4669 with existing namespace package setting4670 behaves like not creating the namespace package setting4671 doesn't create the namespace package setting4672 behaves like returning an error4673 returns an error4674 user_role: :guest, shared_examples_name: "denying access to namespace package setting"4675 behaves like denying access to namespace package setting4676 with existing namespace package setting4677 behaves like not creating the namespace package setting4678 doesn't create the namespace package setting4679 behaves like returning an error4680 returns an error4681 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"4682 behaves like denying access to namespace package setting4683 with existing namespace package setting4684 behaves like not creating the namespace package setting4685 doesn't create the namespace package setting4686 behaves like returning an error4687 returns an error4688 without existing namespace package setting4689 user_role: :maintainer, shared_examples_name: "creating the namespace package setting"4690 behaves like creating the namespace package setting4691 creates a new package setting4692 saves the settings4693 behaves like returning a success4694 returns a success4695 user_role: :developer, shared_examples_name: "denying access to namespace package setting"4696 behaves like denying access to namespace package setting4697 with existing namespace package setting4698 behaves like not creating the namespace package setting4699 doesn't create the namespace package setting4700 behaves like returning an error4701 returns an error4702 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"4703 behaves like denying access to namespace package setting4704 with existing namespace package setting4705 behaves like not creating the namespace package setting4706 doesn't create the namespace package setting4707 behaves like returning an error4708 returns an error4709 user_role: :guest, shared_examples_name: "denying access to namespace package setting"4710 behaves like denying access to namespace package setting4711 with existing namespace package setting4712 behaves like not creating the namespace package setting4713 doesn't create the namespace package setting4714 behaves like returning an error4715 returns an error4716 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"4717 behaves like denying access to namespace package setting4718 with existing namespace package setting4719 behaves like not creating the namespace package setting4720 doesn't create the namespace package setting4721 behaves like returning an error4722 returns an error4723notify/pipeline_failed_email.html.haml4724 behaves like pipeline status changes email4725 when the pipeline contains a failed job4726 behaves like renders the pipeline status changes email correctly4727 pipeline with user4728 renders the email correctly4729 behaves like correct pipeline information for pipelines for merge requests4730 when pipeline for merge request4731 renders a source ref of the pipeline4732 pipeline without user4733 renders the email correctly4734 when the latest failed job is a bridge job4735 behaves like renders the pipeline status changes email correctly4736 pipeline with user4737 renders the email correctly4738 behaves like correct pipeline information for pipelines for merge requests4739 when pipeline for merge request4740 renders a source ref of the pipeline4741 pipeline without user4742 renders the email correctly4743Gitlab::Diff::SuggestionsParser4744 .parse4745 single-line suggestions4746 returns a list of Gitlab::Diff::Suggestion4747 parsed suggestion has correct data4748 multi-line suggestions4749 returns a list of Gitlab::Diff::Suggestion4750 suggestion with above and below param has correct data4751 suggestion with above param has correct data4752 suggestion with below param has correct data4753Gitlab::Middleware::Multipart4754 #call4755 remote file mode4756 behaves like handling all upload parameters conditions4757 one root parameter4758 builds an UploadedFile4759 two root parameters4760 builds UploadedFiles4761 one nested parameter4762 builds an UploadedFile4763 two nested parameters4764 builds UploadedFiles4765 one deeply nested parameter4766 builds an UploadedFile4767 two deeply nested parameters4768 builds UploadedFiles4769 three parameters nested at different levels4770 builds UploadedFiles4771 and a path set4772 builds an UploadedFile4773 local file mode4774 behaves like handling all upload parameters conditions4775 one root parameter4776 builds an UploadedFile4777 two root parameters4778 builds UploadedFiles4779 one nested parameter4780 builds an UploadedFile4781 two nested parameters4782 builds UploadedFiles4783 one deeply nested parameter4784 builds an UploadedFile4785 two deeply nested parameters4786 builds UploadedFiles4787 three parameters nested at different levels4788 builds UploadedFiles4789 when file is4790 in allowed paths4791 builds an UploadedFile4792 not in allowed paths4793 returns an error4794 with dummy params in remote mode4795 with an invalid secret4796 is expected to raise JWT::VerificationError4797 with an invalid issuer4798 is expected to raise JWT::InvalidIssuerError4799 with invalid rewritten field key4800 [file]4801 is expected to raise RuntimeError with "invalid field: \"[file]\""4802 ;file4803 is expected to raise RuntimeError with "invalid field: \";file\""4804 file]4805 is expected to raise RuntimeError with "invalid field: \"file]\""4806 ;file]4807 is expected to raise RuntimeError with "invalid field: \";file]\""4808 file]]4809 is expected to raise RuntimeError with "invalid field: \"file]]\""4810 file;;4811 is expected to raise RuntimeError with "invalid field: \"file;;\""4812 with an invalid upload key4813 behaves like rejecting the invalid key4814 raises an error4815 behaves like rejecting the invalid key4816 raises an error4817 behaves like rejecting the invalid key4818 raises an error4819 behaves like rejecting the invalid key4820 raises an error4821 behaves like rejecting the invalid key4822 raises an error4823 behaves like rejecting the invalid key4824 raises an error4825 behaves like rejecting the invalid key4826 raises an error4827 with a modified JWT payload4828 raises an error4829 with a modified JWT sig4830 raises an error4831ContextCommitsFinder4832 #execute4833 filters commits by valid sha/commit message4834 returns nothing when searched by invalid sha/commit message4835 returns commits based in author filter4836 returns commits based in committed before and after filter4837 returns commits from target branch if no filter is applied4838CustomerRelations::Contact4839 associations4840 is expected to belong to group required: false4841 is expected to belong to organization optional: true4842 is expected to have many issue_contacts4843 is expected to have many issues4844 validations4845 is expected to validate that :group cannot be empty/falsy4846 is expected to validate that :first_name cannot be empty/falsy4847 is expected to validate that :last_name cannot be empty/falsy4848 is expected to validate that the length of :phone is at most 324849 is expected to validate that the length of :first_name is at most 2554850 is expected to validate that the length of :last_name is at most 2554851 is expected to validate that the length of :email is at most 2554852 is expected to validate that the length of :description is at most 10244853 is expected to validate that :email is case-insensitively unique within the scope of :group_id4854 behaves like an object with RFC3696 compliant email-formatted attributes4855 specifically its :email attribute4856 with a value of 'info@example.com'4857 is valid4858 with a value of 'info+test@example.com'4859 is valid4860 with a value of 'o'reilly@example.com'4861 is valid4862 with a value of 'foobar'4863 is invalid4864 with a value of 'test@test@example.com'4865 is invalid4866 with a value of 'test.test.@example.com'4867 is invalid4868 with a value of '.test.test@example.com'4869 is invalid4870 with a value of 'mailto:test@example.com'4871 is invalid4872 with a value of 'lol!'+=?><#$%^&*()@gmail.com'4873 is invalid4874 .reference_prefix4875 is expected to eq "[contact:"4876 .reference_prefix_quoted4877 is expected to eq "[\"contact:"4878 .reference_postfix4879 is expected to eq "]"4880 #root_group4881 when root group4882 is expected to be valid4883 when subgroup4884 is expected to be invalid4885 #before_validation4886 strips leading and trailing whitespace4887 #self.find_ids_by_emails4888 returns ids of contacts from group4889 does not return ids of contacts from other groups4890 raises ArgumentError when called with too many emails4891 finds contacts regardless of email casing4892 #self.exists_for_group?4893 with no contacts in group4894 returns false4895 with contacts in group4896 returns true4897 #self.move_to_root_group4898 moves contacts with unique emails and deletes the rest4899 updates issue_contact.contact_id for dupes and leaves the rest untouched4900 .search4901 when search term is empty4902 returns all group contacts4903 when search term is not empty4904 when searching for first name ignoring casing4905 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 2303, organization_id: nil, created_at: "2023-05-19 05...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]>4906 when searching for last name ignoring casing4907 is expected to contain exactly #<CustomerRelations::Contact id: 21, group_id: 2303, organization_id: nil, created_at: "2023-05-19 05...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>4908 when searching for email4909 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 2303, organization_id: nil, created_at: "2023-05-19 05...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]>4910 when searching description ignoring casing4911 is expected to contain exactly #<CustomerRelations::Contact id: 21, group_id: 2303, organization_id: nil, created_at: "2023-05-19 05...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>4912 when fuzzy searching for email and last name4913 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 2303, organization_id: nil, created_at: "2023-05-19 05...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]> and #<CustomerRelations::Contact id: 21, group_id: 2303, organization_id: nil, created_at: "2023-05-19 05...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>4914 .search_by_state4915 when searching for contacts state4916 returns only inactive contacts4917 returns only active contacts4918 .counts_by_state4919 returns correct contact counts4920 sorting4921 .sort_by_name4922 sorts them by last name then first name in ascending order4923 .sort_by_organization4924 sorts them by organization in descending order4925 .sort_by_field4926 sorts them by phone in ascending order4927PersonalSnippet4928 #embeddable?4929 returns true when snippet is public4930 returns true when snippet is public4931 returns true when snippet is public4932 behaves like model with repository4933 container class includes HasRepository4934 #commits_by4935 retrieves several commits from the repository by oid4936 #web_url4937 when given the only_path option4938 when only_path is false4939 returns the full web URL for this repo4940 when only_path is true4941 returns the relative web URL for this repo4942 when only_path is nil4943 returns the full web URL for this repo4944 when not given the only_path option4945 returns the full web URL for this repo4946 #url_to_repo4947 returns the SSH URL to the repository4948 #ssh_url_to_repo4949 returns the SSH URL to the repository4950 #http_url_to_repo4951 returns the HTTP URL to the repository4952 #repository4953 returns valid repo4954 uses the same container4955 #storage4956 returns valid storage4957 #full_path4958 returns valid full_path4959 #lfs_enabled?4960 returns the expected value4961 #empty_repo?4962 when the repo does not exist4963 returns true4964 when the repo exists4965 returns the empty state of the repository4966 #valid_repo?4967 is expected to equal false4968 is expected to equal true4969 #repository_exists?4970 is expected to equal false4971 is expected to equal true4972 #repo_exists?4973 is expected to equal false4974 is expected to equal true4975 #root_ref4976 is expected to equal true4977 is expected to equal false4978 is expected to equal false4979 Respond to4980 is expected to respond to #base_dir4981 is expected to respond to #disk_path4982 is expected to respond to #gitlab_shell4983 #change_head4984 delegates #change_head to repository4985 #after_repository_change_head4986 calls #reload_default_branch4987 #parent_user4988 returns the snippet author4989Ci::RunnersHelper4990 # order random4991 #admin_runners_data_attributes4992 returns the data in format4993 #group_runners_data_attributes4994 when user can register group runners4995 returns group data to render a runner list4996 when user cannot register group runners4997 returns empty registration token4998 #runner_contacted_at4999 without sorting5000 returns cached value5001 with sorting set to created_date5002 returns cached value5003 with sorting set to contacted_asc5004 returns stored value5005 #runner_short_name5006 shows runner short name5007 #runner_status_icon5008 returns online text5009 returns never contacted5010 returns offline text5011 returns stale text5012 returns stale text, when runner never contacted5013 #toggle_shared_runners_settings_data5014 when project has runners5015 returns the correct value for is_enabled5016 when project does not have runners5017 returns the correct value for is_enabled5018 for all projects5019 returns the update path for toggling the shared runners setting5020 returns false for is_disabled_and_unoverridable when project has no group5021 shared_runners_setting: :shared_runners_enabled, is_disabled_and_unoverridable: "false"5022 returns the override runner status for project with group5023 shared_runners_setting: :disabled_and_overridable, is_disabled_and_unoverridable: "false"5024 returns the override runner status for project with group5025 shared_runners_setting: :disabled_and_unoverridable, is_disabled_and_unoverridable: "true"5026 returns the override runner status for project with group5027 #group_shared_runners_settings_data5028 returns group data for top level group5029 returns group data for child group5030 returns group data for child group with project5031Types::IssueType5032 is expected to expose permissions using Types::PermissionTypes::Issue5033 is expected to eq "Issue"5034 is expected to require graphql authorizations :read_issue5035 is expected to include Types::Notes::NoteableInterface5036 is expected to include Types::CurrentUserTodos5037 has specific fields5038 pagination and count5039 when user does not have the permission5040 does not return an error5041 returns no data5042 count5043 returns total count5044 total count does not change between pages5045 pagination5046 returns new ids during pagination5047 issue notes5048 query issue notes5049 when user signed in5050 behaves like does not include private notes5051 does not return private notes5052 when user member of the project5053 behaves like includes private notes5054 returns all notes5055 when user is anonymous5056 behaves like does not include private notes5057 does not return private notes5058 hidden5059 when issue is hidden5060 returns `true`5061 when issue is visible5062 returns `false`5063 escalation_status5064 is expected to be nil5065 for an incident5066 is expected to be nil5067 with an escalation status record5068 is expected to eq "TRIGGERED"5069LastGroupOwnerAssigner5070 #execute5071 avoids extra database queries utilizing memoization5072 when there are unblocked owners5073 with one unblocked owner5074 is expected to change `GroupMember#last_owner` from nil to true and change `GroupMember#last_blocked_owner` from nil to false5075 with multiple unblocked owners5076 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5077 has many members passed5078 with owners from a parent5079 when top-level group5080 with group sharing5081 is expected to change `GroupMember#last_owner` from nil to true and change `GroupMember#last_blocked_owner` from nil to false5082 when subgroup5083 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5084 when there are blocked owners5085 with one blocked owner5086 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to true5087 with multiple unblocked owners5088 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5089 with multiple blocked owners5090 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5091 with owners from a parent5092 when top-level group5093 with group sharing5094 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to true5095 when subgroup5096 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to true5097 with two owners5098 is expected to change `GroupMember#last_owner` from nil to false and change `GroupMember#last_blocked_owner` from nil to false5099 when there are bot members5100 with a bot owner5101 is expected to change `GroupMember#last_owner` from nil to true and change `GroupMember#last_blocked_owner` from nil to false5102PipelineMetricsWorker5103 #perform5104 when pipeline is running5105 records the build start time5106 clears the build end time5107 records the pipeline5108 when pipeline succeeded5109 records the build end time5110 records the pipeline5111Ci::UnitTest5112 behaves like cleanup by a loose foreign key5113 cleans up (delete or nullify) the model5114 relationships5115 is expected to belong to project required: false5116 is expected to have many unit_test_failures5117 validations5118 is expected to validate that :project cannot be empty/falsy5119 is expected to validate that :key_hash cannot be empty/falsy5120 is expected to validate that :name cannot be empty/falsy5121 is expected to validate that :suite_name cannot be empty/falsy5122 .find_or_create_by_batch5123 finds or creates records for the given unit test keys5124 when a given name or suite_name exceeds the string size limit5125 truncates the values before storing the information5126Gitlab::HttpIO5127 #close5128 is expected to be nil5129 #binmode5130 is expected to be nil5131 #binmode?5132 is expected to be truthy5133 #path5134 is expected to be nil5135 #url5136 is expected to eq "http://object-storage/trace"5137 #seek5138 when moves pos to end of the file5139 is expected to eq 1924415140 when moves pos to middle of the file5141 is expected to eq 962205142 when moves pos around5143 matches the result5144 #eof?5145 when current pos is at end of the file5146 is expected to be truthy5147 when current pos is not at end of the file5148 is expected to be falsey5149 #each_line5150 yields lines5151 when buckets on GCS5152 when BUFFER_SIZE is larger than file size5153 calls get_chunk only once5154 #read5155 when there are no network issue5156 when read whole size5157 when BUFFER_SIZE is smaller than file size5158 reads a trace5159 when BUFFER_SIZE is larger than file size5160 reads a trace5161 when read only first 100 bytes5162 when BUFFER_SIZE is smaller than file size5163 reads a trace5164 when BUFFER_SIZE is larger than file size5165 reads a trace5166 when tries to read oversize5167 when BUFFER_SIZE is smaller than file size5168 reads a trace5169 when BUFFER_SIZE is larger than file size5170 reads a trace5171 when tries to read 0 bytes5172 when BUFFER_SIZE is smaller than file size5173 reads a trace5174 when BUFFER_SIZE is larger than file size5175 reads a trace5176 when there is anetwork issue5177 reads a trace5178 #readline5179 when there is anetwork issue5180 reads a trace5181 when BUFFER_SIZE is smaller than file size5182 behaves like all line matching5183 reads a line5184 when BUFFER_SIZE is larger than file size5185 behaves like all line matching5186 reads a line5187 when pos is at middle of the file5188 reads from pos5189 #write5190 is expected to raise NotImplementedError5191 #truncate5192 is expected to raise NotImplementedError5193 #flush5194 is expected to raise NotImplementedError5195 #present?5196 is expected to be truthy5197 #send5198 does not set the "accept-encoding" header5199Gitlab::Ci::Build::AutoRetry5200 #allowed?5201 description: "retries are disabled", retry_count: 0, options: {:max=>0}, failure_reason: nil, result: false5202 is expected to eq false5203 description: "max equals count", retry_count: 2, options: {:max=>2}, failure_reason: nil, result: false5204 is expected to eq false5205 description: "max is higher than count", retry_count: 1, options: {:max=>2}, failure_reason: nil, result: true5206 is expected to eq true5207 description: "max is a string", retry_count: 1, options: {:max=>"2"}, failure_reason: nil, result: true5208 is expected to eq true5209 description: "matching failure reason", retry_count: 0, options: {:when=>["api_failure"], :max=>2}, failure_reason: :api_failure, result: true5210 is expected to eq true5211 description: "not matching with always", retry_count: 0, options: {:when=>["always"], :max=>2}, failure_reason: :api_failure, result: true5212 is expected to eq true5213 description: "not matching reason", retry_count: 0, options: {:when=>["script_error"], :max=>2}, failure_reason: :api_failure, result: false5214 is expected to eq false5215 description: "scheduler failure override", retry_count: 1, options: {:when=>["scheduler_failure"], :max=>1}, failure_reason: :scheduler_failure, result: false5216 is expected to eq false5217 description: "default for scheduler failure", retry_count: 1, options: {}, failure_reason: :scheduler_failure, result: true5218 is expected to eq true5219 description: "quota is exceeded", retry_count: 0, options: {:max=>2}, failure_reason: :ci_quota_exceeded, result: false5220 is expected to eq false5221 description: "no matching runner", retry_count: 0, options: {:max=>2}, failure_reason: :no_matching_runner, result: false5222 is expected to eq false5223 description: "missing dependencies", retry_count: 0, options: {:max=>2}, failure_reason: :missing_dependency_failure, result: false5224 is expected to eq false5225 description: "forward deployment failure", retry_count: 0, options: {:max=>2}, failure_reason: :forward_deployment_failure, result: false5226 is expected to eq false5227 description: "environment creation failure", retry_count: 0, options: {:max=>2}, failure_reason: :environment_creation_failure, result: false5228 is expected to eq false5229 when build is not retryable5230 is expected to eq false5231 #options_retry_max5232 with retries max config option5233 returns the number of configured max retries5234 without retries max config option5235 returns nil5236 when build is degenerated5237 returns nil5238 with integer only config option5239 returns the number of configured max retries5240 #options_retry_when5241 with retries when config option5242 returns the configured when5243 without retries when config option5244 returns always array5245 with integer only config option5246 returns always array5247 with retry[:when] set to nil5248 returns always array5249Todos::Destroy::ProjectPrivateService5250 #execute5251 when a project set to private5252 removes issue todos for a user who is not a member5253 when project is not private5254 does not remove any todos5255Packages::Nuget::ExtractionWorker5256 #perform5257 with valid package file5258 updates package and package file5259 with exisiting package5260 reuses existing package and updates package file5261 with invalid package file id5262 doesn't update package and package file5263 with package file not containing a nuspec file5264 behaves like handling the metadata error5265 updates package status to error5266 with package with an invalid package name5267 with5268 behaves like handling the metadata error5269 updates package status to error5270 with My/package5271 behaves like handling the metadata error5272 updates package status to error5273 with ../../../my_package5274 behaves like handling the metadata error5275 updates package status to error5276 with %2e%2e%2fmy_package5277 behaves like handling the metadata error5278 updates package status to error5279 with package with an invalid package version5280 with5281 behaves like handling the metadata error5282 updates package status to error5283 with 5555284 behaves like handling the metadata error5285 updates package status to error5286 with 1./2.35287 behaves like handling the metadata error5288 updates package status to error5289 with ../../../../../1.2.35290 behaves like handling the metadata error5291 updates package status to error5292 with %2e%2e%2f1.2.35293 behaves like handling the metadata error5294 updates package status to error5295 handles a processing an unaccounted for error5296 behaves like handling the metadata error5297 updates package status to error5298DeployKey5299 Associations5300 is expected to have many deploy_keys_projects5301 is expected to have many deploy_keys_projects_with_write_access class_name => DeployKeysProject inverse_of => deploy_key5302 is expected to have many projects_with_write_access class_name => Project through deploy_keys_projects_with_write_access source => project5303 is expected to have many projects5304 is expected to have many protected_branch_push_access_levels inverse_of => deploy_key5305 is expected to have many protected_tag_create_access_levels inverse_of => deploy_key5306 notification5307 does not send a notification5308 #user5309 when user is set5310 returns the user5311 when user is not set5312 returns the ghost user5313 .with_write_access_for_project5314 when no project is passed in5315 is expected to be empty5316 when a project is passed in5317 only returns deploy keys with write access5318 returns deploy keys only for this project5319 and a specific deploy key is passed in5320 and this deploy key is not linked to the project5321 is expected to be empty5322 and this deploy key has not write access to the project5323 is expected to be empty5324 and this deploy key has write access to the project5325 is expected to contain exactly #<DeployKey id: 12, user_id: nil, created_at: "2023-05-19 05:53:42.791290636 +0000", updated_at: "202...ion_delivered_at: nil, before_expiry_notification_delivered_at: nil, usage_type: "auth_and_signing">5326 PolicyActor methods5327 responds to all PolicyActor methods5328 #can?5329 is expected to equal true5330 when a read deploy key is enabled in the project5331 is expected to equal false5332 is expected to equal true5333 is expected to equal false5334 when a write deploy key is enabled in the project5335 is expected to equal false5336 is expected to equal true5337 is expected to equal true5338 when the deploy key is not enabled in the project5339 is expected to equal false5340 is expected to equal false5341 is expected to equal false5342 #audit_details5343 equals to the key's title5344Ci::JobToken::Allowlist5345 # order random5346 add!5347 with inbound5348 adds the project5349 with outbound5350 adds the project5351 #includes?5352 without scoped projects5353 includes_project: source_project, direction: :outbound, result: false5354 is expected to equal false5355 includes_project: source_project, direction: :inbound, result: false5356 is expected to equal false5357 includes_project: unscoped_project, direction: :outbound, result: false5358 is expected to equal false5359 includes_project: unscoped_project, direction: :inbound, result: false5360 is expected to equal false5361 with a project in each allowlist5362 includes_project: source_project, direction: :outbound, result: false5363 is expected to equal false5364 includes_project: source_project, direction: :inbound, result: false5365 is expected to equal false5366 includes_project: inbound_allowlist_project, direction: :outbound, result: false5367 is expected to equal false5368 includes_project: inbound_allowlist_project, direction: :inbound, result: true5369 is expected to equal true5370 includes_project: outbound_allowlist_project, direction: :outbound, result: true5371 is expected to equal true5372 includes_project: outbound_allowlist_project, direction: :inbound, result: false5373 is expected to equal false5374 includes_project: unscoped_project1, direction: :outbound, result: false5375 is expected to equal false5376 includes_project: unscoped_project1, direction: :inbound, result: false5377 is expected to equal false5378 includes_project: unscoped_project2, direction: :outbound, result: false5379 is expected to equal false5380 includes_project: unscoped_project2, direction: :inbound, result: false5381 is expected to equal false5382 #projects5383 when no projects are added to the scope5384 with inbound5385 returns the project defining the scope5386 with outbound5387 returns the project defining the scope5388 when projects are added to the scope5389 direction: :outbound, additional_project: outbound_allowlist_project5390 returns all projects that can be accessed from a given scope5391 direction: :inbound, additional_project: inbound_allowlist_project5392 returns all projects that can be accessed from a given scope5393ProtectedBranchPolicy5394 as maintainers5395 can be read5396 can be created5397 can be updated5398 can be destroyed5399 as guests5400 can be read5401 can be created5402 can be updated5403 cannot be destroyed5404SystemNotes::AlertManagementService5405 #create_new_alert5406 has the appropriate message5407 behaves like a system note5408 has the correct attributes5409 #change_alert_status5410 with no specified reason5411 has the appropriate message5412 behaves like a system note5413 has the correct attributes5414 with reason provided5415 has the appropriate message5416 #new_alert_issue5417 has the appropriate message5418 behaves like a system note5419 has the correct attributes5420 #log_resolving_alert5421 has the appropriate message5422 behaves like a system note5423 has the correct attributes5424Gitlab::Email::ServiceDeskEmail5425 # order random5426 .address_for_key5427 when service desk address is set5428 returns address5429 when service desk address is not set5430 returns nil5431 behaves like common email methods5432 behaves like enabled? method for email5433 value: false, address: nil, result: false5434 is expected to eq false5435 value: false, address: "replies+%{key}@example.com", result: false5436 is expected to eq false5437 value: true, address: nil, result: false5438 is expected to eq false5439 value: true, address: "replies+%{key}@example.com", result: true5440 is expected to eq true5441 behaves like supports_wildcard? method for email5442 when address contains the wildcard placeholder5443 confirms that wildcard is supported5444 when address doesn't contain the wildcard placeholder5445 returns that wildcard is not supported5446 when address is nil5447 returns that wildcard is not supported5448 behaves like key_from_fallback_message_id method for email5449 returns reply key5450 behaves like supports_issue_creation? method for email5451 enabled_value: false, supports_wildcard_value: false, result: false5452 is expected to eq false5453 enabled_value: false, supports_wildcard_value: true, result: false5454 is expected to eq false5455 enabled_value: true, supports_wildcard_value: false, result: false5456 is expected to eq false5457 enabled_value: true, supports_wildcard_value: true, result: true5458 is expected to eq true5459 behaves like reply_address method for email5460 returns the address with an interpolated reply key5461 behaves like unsubscribe_address method for email5462 returns the address with interpolated reply key and unsubscribe suffix5463 behaves like scan_fallback_references method for email5464 returns reply key5465 .key_from_address5466 when service desk address is set5467 returns key5468 when service desk address is not set5469 returns nil5470gitlab:db:truncate_legacy_tables5471 # order random5472 when truncating ci tables on the main database5473 behaves like truncating legacy tables5474 when tables are not locked for writes5475 raises an error when trying to truncate the tables5476 when tables are locked for writes5477 calls TablesTruncate with the correct parameters and default minimum batch size5478 truncates the legacy table5479 does not truncate the table that belongs to the connection schema5480 when running in dry_run mode5481 does not truncate any tables5482 prints the truncation sql statement to the output5483 when passing until_table parameter via environment variable5484 sends the table name to TablesTruncate5485 when truncating main tables on the ci database5486 behaves like truncating legacy tables5487 when tables are not locked for writes5488 raises an error when trying to truncate the tables5489 when tables are locked for writes5490 calls TablesTruncate with the correct parameters and default minimum batch size5491 truncates the legacy table5492 does not truncate the table that belongs to the connection schema5493 when running in dry_run mode5494 does not truncate any tables5495 prints the truncation sql statement to the output5496 when passing until_table parameter via environment variable5497 sends the table name to TablesTruncate5498Environments::AutoStopWorker5499 stops the environment5500 executes the stop action5501 when user does not have a permission to play the stop action5502 raises an error5503 when the environment has already been stopped5504 does not execute the stop action5505 when there are no deployments and associted stop actions5506 stops the environment5507 when there are no corresponding environment record5508 ignores the invalid record5509Uploads::Fog5510 #available?5511 when object storage is enabled5512 is expected to be truthy5513 when object storage is disabled5514[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5515 is expected to be falsy5516 model with uploads5517 Fog provider acceptance tests5518 with AWS provider5519 behaves like Fog provider5520 #get_object5521[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5522 returns a Hash with a body5523 #delete_object5524[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5525 returns true5526 with Google provider5527 behaves like Fog provider5528 #get_object5529 returns a Hash with a body5530 #delete_object5531 returns true5532 with AzureRM provider5533 behaves like Fog provider5534 #get_object5535 returns a Hash with a body5536 #delete_object5537 returns true5538 #keys5539[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5540 returns keys5541 #delete_keys5542[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5543 deletes multiple data5544 with bucket prefix5545[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5546 deletes multiple data5547 when one of keys is missing5548[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5549 deletes only existing keys5550Milestones::IssuesCountService5551 counts all issues including confidential5552 behaves like a counter caching service5553 #count5554 caches the count5555 #refresh_cache5556 refreshes the cache5557 #delete_cache5558 removes the cache5559 #uncached_count5560 does not cache the count5561MergeRequestMetricsHelper5562 #build_metrics5563 when closed and metrics exists5564 does not call the merge request metrics class5565 returns the metrics for the given merge request5566 when merged and metrics exists5567 does not call the merge request metrics class5568 returns the metrics for the given merge request5569 when merged and metrics do not exists5570 rebuilds the merge request metrics5571Gitlab::Ci::JwtV25572 is expected to be a kind of Gitlab::Ci::Jwt5573 #payload5574 has correct values for the standard JWT attributes5575 includes user identities when enabled5576 does not include user identities when disabled5577 when given an aud5578 uses that aud in the payload5579 custom claims5580 runner_id5581 is the ID of the runner executing the job5582 when build is not associated with a runner5583 is nil5584 runner_environment5585 when runner is gitlab-hosted5586 is gitlab-hosted5587 when runner is self-hosted5588 is self-hosted5589 when build is not associated with a runner5590 is nil5591 sha5592 is the commit revision the project is built for5593 pipeline_ref5594 delegates to ProjectConfig#url5595 when project config is nil5596 is nil5597 when ProjectConfig#url raises an error5598 raises the same error5599 in production5600 is nil5601 pipeline_sha5602 when pipeline config_source is repository5603 is the pipeline's sha5604 when pipeline config_source is not repository5605 is nil5606Packages::Debian::ProjectComponent5607 behaves like Debian Distribution Component5608 relationships5609 is expected to belong to distribution class_name => Packages::Debian::ProjectDistribution required: false inverse_of => components5610 is expected to have many files class_name => Packages::Debian::ProjectComponentFile inverse_of => component5611 validations5612 #distribution5613 is expected to validate that :distribution cannot be empty/falsy5614 #name5615 is expected to validate that :name cannot be empty/falsy5616 is expected to allow :name to be ‹"main"›5617 is expected to allow :name to be ‹"non-free"›5618 is expected to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›5619 is expected not to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›5620 is expected not to allow :name to be ‹"non/free"›5621 is expected not to allow :name to be ‹"hé"›5622 scopes5623 .ordered_by_name5624 sorts by name5625 .with_distribution5626 does not return other distributions5627 .with_name5628 does not return other distributions5629ForkNamespaceEntity5630 renders json5631 includes id5632 includes name5633 includes description5634 includes markdown_description5635 includes visibility5636 includes full_name5637 includes created_at5638 includes updated_at5639 includes avatar_url5640 exposes path for forking project to the namespace5641 exposes forked_project_path when fork exists in namespace5642 exposes relative path to the namespace5643 exposes human readable permission level5644Gitlab::Database::PostgresIndex5645 is expected to be a kind of Gitlab::Database::SharedModel(abstract)5646 behaves like a postgres model5647 .by_identifier5648 finds the Gitlab::Database::PostgresIndex5649 raises an error if not found5650 raises ArgumentError if given a non-fully qualified identifier5651 #to_s5652 returns the name5653 #schema5654 returns the schema5655 #name5656 returns the name5657 .reindexing_support5658 only non partitioned indexes5659 only indexes that dont serve an exclusion constraint5660 only non-expression indexes5661 only btree and gist indexes5662 with leftover indexes5663 excludes temporary indexes from reindexing5664 .reindexing_leftovers5665 retrieves leftover indexes matching the /_ccnew[0-9]*$/ pattern5666 .not_match5667 excludes indexes matching the given regex5668 matches indexes without this prefix regex5669 #bloat_size5670 returns the bloat size from the estimate5671 without a bloat estimate available5672 returns 05673 #relative_bloat_level5674 calculates the relative bloat level5675 #reset5676 calls #reload5677 resets the bloat estimation5678 #unique?5679 returns true for a unique index5680 returns false for a regular, non-unique index5681 returns true for a primary key index5682 #valid_index?5683 returns true if the index is invalid5684 returns false if the index is marked as invalid5685 #definition5686 returns the index definition5687Gitlab::JiraImport5688 .validate_project_settings!5689 without user param5690 behaves like jira configuration base checks5691 with configuration_check set to false5692 does not raise Jira integration error5693 when Jira integration was not setup5694 behaves like raise Jira import error5695 returns error5696 when Jira integration exists5697 when Jira connection is not valid5698 behaves like raise Jira import error5699 returns error5700 when jira connection is valid5701 does not return any error5702 with user param provided5703 when user has permission to run import5704 behaves like jira configuration base checks5705 with configuration_check set to false5706 does not raise Jira integration error5707 when Jira integration was not setup5708 behaves like raise Jira import error5709 returns error5710 when Jira integration exists5711 when Jira connection is not valid5712 behaves like raise Jira import error5713 returns error5714 when jira integration is configured5715 when issues feature is disabled5716 behaves like raise Jira import error5717 returns error5718 when everything is ok5719 does not return any error5720 when user does not have permissions to run the import5721 behaves like raise Jira import error5722 returns error5723 .already_imported_cache_key5724 returns cache key for already imported items5725 .jira_issues_next_page_cache_key5726 returns cache key for next issues5727 .get_issues_next_start_at5728 returns zero when not defined5729 returns negative value for next issues to be imported starting point5730 returns cached value for next issues to be imported starting point5731 .cache_users_mapping5732 stores the data correctly5733 .get_user_mapping5734 reads the data correctly5735 returns nil if value not found5736 .store_issues_next_started_at5737 stores nil value5738 stores positive value5739 stores negative value5740Packages::Debian::FileEntry5741 validations5742 is expected to be valid5743 #filename5744 is expected to validate that :filename cannot be empty/falsy5745 is expected not to allow :filename to be ‹"Hé"›5746 #size5747 is expected to validate that :size cannot be empty/falsy5748 #md5sum5749 is expected to validate that :md5sum cannot be empty/falsy5750 is expected not to allow :md5sum to be ‹"12345678901234567890123456789012"›, producing a custom validation error on failure5751 #section5752 is expected to validate that :section cannot be empty/falsy5753 #priority5754 is expected to validate that :priority cannot be empty/falsy5755 #sha1sum5756 is expected to validate that :sha1sum cannot be empty/falsy5757 is expected not to allow :sha1sum to be ‹"1234567890123456789012345678901234567890"›, producing a custom validation error on failure5758 #sha256sum5759 is expected to validate that :sha256sum cannot be empty/falsy5760 is expected not to allow :sha256sum to be ‹"1234567890123456789012345678901234567890123456789012345678901234"›, producing a custom validation error on failure5761 #package_file5762 is expected to validate that :package_file cannot be empty/falsy5763 #component5764 without section5765 is expected to eq "main"5766 with empty section5767 is expected to eq "main"5768 with ruby section5769 is expected to eq "main"5770 with contrib/ruby section5771 is expected to eq "contrib"5772Banzai::Filter::CustomEmojiFilter5773 replaces supported name custom emoji5774 correctly uses the custom emoji URL5775 matches multiple same custom emoji5776 matches multiple custom emoji5777 does not match enclosed colons5778 does not do N+1 query5779 behaves like emoji filter5780 keeps whitespace intact5781 does not match emoji in a string5782 ignores non existent/unsupported emoji5783 matches with adjacent text5784 does not match emoji in a pre tag5785 does not match emoji in code tag5786 does not match emoji in tt tag5787Gitlab::Ci::Config::Entry::Rules::Rule::Changes5788 .new5789 when using a string array5790 is expected to be valid5791 when using an integer array5792 is expected not to be valid5793 returns errors5794 when using a string5795 is expected not to be valid5796 reports an error about invalid policy5797 when using a long array5798 is expected not to be valid5799 returns errors5800 when clause is empty5801 is expected to be valid5802 when policy strategy does not match5803 is expected not to be valid5804 returns information about errors5805 with paths5806 when paths is an array of strings5807 is expected to be valid5808 when paths is not an array5809 is expected not to be valid5810 returns information about errors5811 when paths is an array of integers5812 is expected not to be valid5813 returns information about errors5814 when paths is an array of long strings5815 is expected not to be valid5816 returns information about errors5817 when paths is nil5818 is expected not to be valid5819 returns information about errors5820 with paths and compare_to5821 is expected to be valid5822 when compare_to is not a string5823 is expected not to be valid5824 returns information about errors5825 #value5826 when using a string array5827 is expected to eq {:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}5828 with paths5829 is expected to eq {:paths=>["app/", "lib/"]}5830 with paths and compare_to5831 is expected to eq {:compare_to=>"branch1", :paths=>["app/", "lib/"]}5832Issuable::DestroyLabelLinksService5833 #execute5834 when target is an Issue5835 behaves like service deleting label links of an issuable5836 deletes label links for specified target ID and type5837 when target is a MergeRequest5838 behaves like service deleting label links of an issuable5839 deletes label links for specified target ID and type5840CustomEmoji5841 Associations5842 is expected to belong to namespace required: false inverse_of => custom_emoji5843 is expected to belong to creator required: false inverse_of => created_custom_emoji5844 is expected to have db column named file5845 is expected to validate that :creator cannot be empty/falsy5846 is expected to validate that the length of :name is at most 365847 is expected to validate that :name cannot be empty/falsy5848 is expected to have db column named external5849 exclusion of duplicated emoji5850 disallows emoji names of built-in emoji5851 disallows very long invalid emoji name without regular expression backtracking issues5852 disallows duplicate custom emoji names within namespace5853 disallows non http and https file value5854PublicUrlValidator5855 #validate5856 with no options5857 allows http,https schemes by default5858 checks that the url structure is valid5859 with schemes5860 allows urls with the defined schemes5861 add error if the url scheme does not match the selected ones5862 by default5863 blocks urls pointing to localhost5864 blocks urls pointing to the local network5865 when local requests are allowed5866 does not block urls pointing to localhost5867 does not block urls pointing to the local network5868HasEnvironmentScope5869 is expected to allow :environment_scope to be ‹"*"›5870 is expected to allow :environment_scope to be ‹"review/*"›5871 is expected not to allow :environment_scope to be ‹""›5872 is expected not to allow :environment_scope to be ‹"!!()()"›5873 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure5874 .on_environment5875 returns scoped objects5876 returns only the most relevant object if relevant_only is true5877 returns scopes ordered by lowest precedence first5878 #environment_scope=5879 when the new environment_scope is nil5880 strips leading and trailing whitespaces5881 when the new environment_scope has leadind and trailing whitespaces5882 strips leading and trailing whitespaces5883 .for_environment5884 when the environment is present5885 is expected to eq [#<Ci::Variable id: 11, key: [FILTERED], value: nil, encrypted_value: "IaHoHdgpcitpDbPdzxkgSw==\n", e...ted: false, environment_scope: "production/*", masked: false, variable_type: "env_var", raw: false>]5886 when the environment is nil5887 is expected to eq [#<Ci::Variable id: 11, key: [FILTERED], value: nil, encrypted_value: "IaHoHdgpcitpDbPdzxkgSw==\n", e...653, protected: false, environment_scope: "*", masked: false, variable_type: "env_var", raw: false>]5888Mutations::AlertManagement::PrometheusIntegration::Create5889 is expected to require graphql authorizations :admin_project5890 #resolve5891 user has access to project5892 when Prometheus Integration already exists5893 returns errors5894 when UpdateService responds with success5895 returns the integration with no errors5896 creates a corresponding token5897 when UpdateService responds with an error5898 returns errors5899 when resource is not accessible to the user5900 raises an error if the resource is not accessible to the user5901Gitlab::Ci::Reports::Security::Identifier5902 #initialize5903 when all params are given5904 initializes an instance5905 when attribute external_type is missing5906 raises an error5907 when attribute external_id is missing5908 raises an error5909 when attribute name is missing5910 raises an error5911 #key5912 returns fingerprint5913 #type_identifier?5914 external_type: "cve", expected_result: false5915 is expected to equal false5916 external_type: "foo", expected_result: false5917 is expected to equal false5918 external_type: "cwe", expected_result: true5919 is expected to equal true5920 external_type: "wasc", expected_result: true5921 is expected to equal true5922 external type check methods5923 external_type: "Foo", is_cve?: false, is_cwe?: false, is_wasc?: false5924 returns correct result for the type check method5925 external_type: "Cve", is_cve?: true, is_cwe?: false, is_wasc?: false5926 returns correct result for the type check method5927 external_type: "Cwe", is_cve?: false, is_cwe?: true, is_wasc?: false5928 returns correct result for the type check method5929 external_type: "Wasc", is_cve?: false, is_cwe?: false, is_wasc?: true5930 returns correct result for the type check method5931 #to_hash5932 returns expected hash5933 #==5934 when external_type and external_id are equal5935 returns true5936 when external_type is different5937 returns false5938 when external_id is different5939 returns false5940Gitlab::Kubernetes5941 #container_exec_url5942 is expected to eq "wss"5943 is expected to eq "example.com"5944 is expected to eq "/api/v1/namespaces/default/pods/pod1/exec"5945 is expected to eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"5946 with a HTTP API URL5947 is expected to eq "ws"5948 with a path prefix in the API URL5949 is expected to eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"5950 with arguments that need urlencoding5951 is expected to eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"5952 is expected to match /\Acontainer=container\+1&/5953 #filter_by_label5954 returns matching labels5955 #filter_by_annotation5956 returns matching labels5957 #filter_by_project_environment5958 returns matching env label5959 #filter_by_legacy_label5960 returns matching labels5961 #to_kubeconfig5962 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}5963 when CA PEM is not provided5964 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}5965 when token is not provided5966 is expected to be nil5967 #add_terminal_auth5968 adds authentication parameters to a hash5969Gitlab::Patch::RedisCacheStore5970 # order random5971 #read_multi_mget5972 runs multi-key command if no cross-slot command is expected5973 skips patch if input is above 1005974 when reading from non redis-cache stores5975 behaves like reading using non redis cache stores5976 does not affect non Redis::Cache cache stores5977 behaves like reading using non redis cache stores5978 does not affect non Redis::Cache cache stores5979 behaves like reading using non redis cache stores5980 does not affect non Redis::Cache cache stores5981 when feature flag is disabled5982 behaves like fetches multiple keys5983 reads multiple keys5984 behaves like fetches multiple keys5985 reads multiple keys5986 #delete_multi_entries5987 runs multi-key command if no cross-slot command is expected5988 when deleting from non redis-cache stores5989 behaves like deleting using non redis cache stores5990 does not affect non Redis::Cache cache stores5991 behaves like deleting using non redis cache stores5992 does not affect non Redis::Cache cache stores5993 behaves like deleting using non redis cache stores5994 does not affect non Redis::Cache cache stores5995 when deleting large amount of keys5996 calls pipeline multiple times5997 when feature flag is disabled5998 behaves like deletes multiple keys5999 deletes multiple keys6000 behaves like deletes multiple keys6001 deletes multiple keys6002Ci::BuildPendingState6003 associations6004 is expected to belong to build class_name => Ci::Build required: false inverse_of => pending_state6005 validations6006 is expected to validate that :build cannot be empty/falsy6007 #crc326008 when checksum does not exist6009 returns nil6010 when checksum is in hexadecimal6011 returns decimal representation of the checksum6012 partitioning6013 with build6014 sets partition_id to the current partition value6015 when it is already set6016 does not change the partition_id value6017 without build6018 is expected to validate that :partition_id cannot be empty/falsy6019 does not change the partition_id value6020Resolvers::GroupsResolver6021 #resolve6022 includes public groups6023 includes accessible private groups6024 ordering6025 orders by name ascending6026 with `search` argument6027 filters groups by name6028UserGroupNotificationSettingsFinder6029 when the groups have no existing notification settings6030 when the groups have no ancestors6031 will be a default Global notification setting6032 when the groups have ancestors6033 does not cause an N+16034 when an ancestor has a level other than Global6035 has the same level set6036 has the same email set6037 only returns the two queried groups6038 when an ancestor has a Global level but has an email set6039 has the same email and level set6040 when the group has parent_id set but that does not belong to any group6041 returns a default Global notification setting6042 when the group has a private parent6043 still inherits the notification settings6044 preloading `emails_disabled`6045 preloads the `group.emails_disabled` method6046 preloads the `group.emails_disabled` method correctly6047Integrations::SlackEventWorker6048 # order random6049 #perform6050 executes the correct service6051 ensures idempotency when called twice by only executing service once6052 executes service twice if service returned an error6053 executes service twice if service raised an error6054 executes service twice when event_id is different6055 behaves like logs extra metadata on done6056 is expected to receive log_extra_metadata_on_done(:slack_workspace_id, "T0123A456BC") 1 time6057 behaves like an idempotent worker6058 is labeled as idempotent6059 performs multiple times sequentially without raising an exception6060 when event is not known6061 does not execute the service class6062 logs an error6063 behaves like logs extra metadata on done6064 is expected to receive log_extra_metadata_on_done(:slack_workspace_id, "T0123A456BC") 1 time6065 .event?6066 when event is known6067 is expected to eq true6068 when event is not known6069 is expected to eq false6070Gitlab::Email::FailureHandler6071 email processing errors6072 error: Gitlab::Email::UnknownIncomingEmail, message: "We couldn't figure out what the email is for", can_retry: false6073 sends out a rejection email for Gitlab::Email::UnknownIncomingEmail6074 strips out the body before passing to EmailRejectionMailer6075 error: Gitlab::Email::SentNotificationNotFoundError, message: "We couldn't figure out what the email is in reply to", can_retry: false6076 sends out a rejection email for Gitlab::Email::SentNotificationNotFoundError6077 strips out the body before passing to EmailRejectionMailer6078 error: Gitlab::Email::ProjectNotFound, message: "We couldn't find the project", can_retry: false6079 sends out a rejection email for Gitlab::Email::ProjectNotFound6080 strips out the body before passing to EmailRejectionMailer6081 error: Gitlab::Email::EmptyEmailError, message: "It appears that the email is blank", can_retry: true6082 sends out a rejection email for Gitlab::Email::EmptyEmailError6083 strips out the body before passing to EmailRejectionMailer6084 error: Gitlab::Email::UserNotFoundError, message: "We couldn't figure out what user corresponds to the email", can_retry: false6085 sends out a rejection email for Gitlab::Email::UserNotFoundError6086 strips out the body before passing to EmailRejectionMailer6087 error: Gitlab::Email::UserBlockedError, message: "Your account has been blocked", can_retry: false6088 sends out a rejection email for Gitlab::Email::UserBlockedError6089 strips out the body before passing to EmailRejectionMailer6090 error: Gitlab::Email::UserNotAuthorizedError, message: "You are not allowed to perform this action", can_retry: false6091 sends out a rejection email for Gitlab::Email::UserNotAuthorizedError6092 strips out the body before passing to EmailRejectionMailer6093 error: Gitlab::Email::NoteableNotFoundError, message: "The thread you are replying to no longer exists", can_retry: false6094 sends out a rejection email for Gitlab::Email::NoteableNotFoundError6095 strips out the body before passing to EmailRejectionMailer6096 error: Gitlab::Email::InvalidAttachment, message: "Could not deal with that", can_retry: false6097 sends out a rejection email for Gitlab::Email::InvalidAttachment6098 strips out the body before passing to EmailRejectionMailer6099 error: Gitlab::Email::InvalidRecordError, message: "The note could not be created for the following reasons", can_retry: true6100 sends out a rejection email for Gitlab::Email::InvalidRecordError6101 strips out the body before passing to EmailRejectionMailer6102 error: Gitlab::Email::EmailTooLarge, message: "it is too large", can_retry: false6103 sends out a rejection email for Gitlab::Email::EmailTooLarge6104 strips out the body before passing to EmailRejectionMailer6105 non-processing errors6106 error: Gitlab::Email::AutoGeneratedEmailError6107 does not send a rejection email for6108 error: #<ActiveRecord::StatementTimeout: StatementTimeout>6109 does not send a rejection email for StatementTimeout6110 error: #<RateLimitedService::RateLimitedError: RateLimitedService::RateLimitedError>6111 does not send a rejection email for RateLimitedService::RateLimitedError6112ContainerExpirationPolicyWorker6113 #perform6114 process cleanups6115 calls the limited capacity worker6116 with exclusive lease taken6117 does not do anything6118 process stale ongoing cleanups6119 set them as unfinished6120 policies without container repositories6121 disables them6122 counts logging6123 logs all the counts6124 with load balancing enabled6125 reads the counts from the replica6126gitlab:packages namespace rake task6127 migrate6128 object storage disabled6129 doesn't migrate files6130 object storage enabled6131 migrates local file to object storage6132Gitlab::ImportExport::LfsSaver6133 #save6134 when the project has LFS objects locally stored6135 does not cause errors6136 copies the file in the correct location when there is an lfs object6137 when lfs object has file on disk missing6138 does not attempt to copy non-existent file6139 saving a json file6140 saves a json file correctly6141 when the LFS objects are stored in object storage6142 downloads the file to include in an archive6143Atlassian::JiraConnect::Serializers::PullRequestEntity6144 exposes commentCount6145 with user_notes_count option6146 avoids N+1 database queries6147 uses counts from user_notes_count6148 when count is missing for some MRs6149 uses 0 as default when count for the MR is not available6150Projects::ImportExport::RelationExport6151 associations6152 is expected to belong to project_export_job required: false6153 is expected to have one upload6154 validations6155 is expected to validate that :project_export_job cannot be empty/falsy6156 is expected to validate that :relation cannot be empty/falsy6157 is expected to validate that :status cannot be empty/falsy6158 is expected to validate that :status looks like an integer6159 is expected to validate that the length of :relation is at most 2556160 is expected to validate that the length of :jid is at most 2556161 is expected to validate that the length of :export_error is at most 3006162 validates uniquness of the relation attribute6163 .by_relation6164 returns export relations filtered by relation name6165 .relation_names_list6166 includes extra relations list6167 includes root tree relation name project6168 includes project tree top level relation nodes6169 includes project tree nested relation nodes6170 #mark_as_failed6171 sets status to failed and sets the export error6172Sidebars::UserSettings::Menus::EmailsMenu6173 # order random6174 behaves like User settings menu #render? method6175 #render?6176 when user is logged in6177 renders6178 when user is not logged in6179 does not render6180 behaves like User settings menu6181 does not contain any sub menu6182 renders the correct link6183 renders the correct title6184 renders the correct icon6185 defines correct active route6186Metrics::UsersStarredDashboard6187 associations6188 is expected to belong to project required: false inverse_of => metrics_users_starred_dashboards6189 is expected to belong to user required: false inverse_of => metrics_users_starred_dashboards6190 validation6191 is expected to validate that :user_id cannot be empty/falsy6192 is expected to validate that :project_id cannot be empty/falsy6193 is expected to validate that :dashboard_path cannot be empty/falsy6194 is expected to validate that the length of :dashboard_path is at most 2556195 is expected to validate that :dashboard_path is case-sensitively unique within the scope of :user_id and :project_id6196 scopes6197 #for_project6198 selects only starred dashboards belonging to project6199 #for_project_dashboard6200 selects only starred dashboards belonging to project with given dashboard path6201RuboCop::Formatter::GracefulFormatter6202 # order random6203 .grace_period_key_value6204 is expected to eq "Details: grace period"6205 without files to inspect6206 behaves like summary reporting6207 reports summary with 0 inspected, 0 offenses, 0 silenced6208 .adjusted_exit_status6209 active_offenses: 0, status: 0, adjusted_status: 06210 is expected to eq 06211 active_offenses: 0, status: 1, adjusted_status: 06212 is expected to eq 06213 active_offenses: 1, status: 1, adjusted_status: 16214 is expected to eq 16215 active_offenses: 0, status: 2, adjusted_status: 26216 is expected to eq 26217 active_offenses: 1, status: 2, adjusted_status: 26218 is expected to eq 26219 active_offenses: 1, status: 0, adjusted_status: 06220 is expected to eq 06221 .grace_period?6222 with Details in config6223 is expected to eq true6224 with unknown value for Details in config6225 is expected to output /Cop\/Name: Unhandled value "unknown" for `Details` key./ to stderr6226 with empty config6227 is expected to eq false6228 without Details in config6229 is expected to eq false6230 without offenses6231 behaves like summary reporting6232 reports summary with 2 inspected, 0 offenses, 0 silenced6233 with offenses6234 with active only6235 behaves like summary reporting6236 reports summary with 2 inspected, 2 offenses, 0 silenced6237 with silenced only6238 behaves like summary reporting6239 reports summary with 2 inspected, 0 offenses, 2 silenced6240 with active and silenced6241 behaves like summary reporting6242 reports summary with 2 inspected, 2 offenses, 3 silenced6243 with missing @total_offense_count6244 raises an error6245Gitlab::SQL::Except6246 behaves like SQL set operator6247 .operator_keyword6248 is expected to eq "EXCEPT"6249 #to_sql6250 returns a String joining relations together using a EXCEPT6251 skips Model.none segments6252 uses EXCEPT ALL when removing duplicates is disabled6253 returns `NULL` if all relations are empty6254 when uneven select values are used6255 raises error6256 remove_order parameter6257 when remove_order: true6258 removes the ORDER BY from the query6259 when remove_order: false6260 does not remove the ORDER BY from the query6261Sidebars::Admin::Menus::AdminSettingsMenu6262 # order random6263 behaves like Admin menu with sub menus6264 contains submemus6265 behaves like Admin menu6266 renders the correct link6267 renders the correct title6268 renders the correct icon6269 renders the separator if needed6270 #render?6271 when user is admin6272 renders6273 when user is not admin6274 does not render6275 when user is not logged in6276 does not render6277ObjectPool::JoinWorker6278 #perform6279 when the pool is not joinable6280 doesn't raise an error6281 when the pool has been joined before6282 succeeds in joining6283Sidebars::Admin::Menus::AbuseReportsMenu6284 # order random6285 behaves like Admin menu6286 renders the correct link6287 renders the correct title6288 renders the correct icon6289 renders the separator if needed6290 #render?6291 when user is admin6292 renders6293 when user is not admin6294 does not render6295 when user is not logged in6296 does not render6297 behaves like Admin menu without sub menus6298 does not contain any sub menu(s)6299 defines correct active route6300 #pill_count6301 returns zero when there are no abuse reports6302 memoizes the query6303 when there are abuse reports6304 returns the number of abuse reports6305API::Helpers::MergeRequestsHelpers6306 #handle_merge_request_errors!6307 when merge request is valid6308 returns nil6309 when merge request is invalid6310 responds to a project_access error with unprocessable_entity6311 responds to a branch_conflict error with unprocessable_entity6312 responds to a validate_fork error with unprocessable_entity6313 responds to a base error with unprocessable_entity6314 responds to a validate_branches error with conflict6315 responds with bad request6316Gitlab::Cleanup::OrphanJobArtifactFilesBatch6317 no dry run6318 deletes only orphan job artifacts from disk6319 does not mix up job ID and artifact ID6320 with dry run6321 does not remove files6322projects/generic_commit_statuses/_generic_commit_status.html.haml6323 won't include a column with a link to its pipeline by default6324 can include a column with a link to its pipeline6325Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildFinished6326 behaves like value stream analytics event6327 is expected to be a kind of String6328 is expected to be a kind of Symbol6329 is expected to include ApplicationRecord(abstract)6330 is expected to respond to #timestamp_projection6331 is expected to respond to #html_description6332 is expected to be a kind of Array6333 #apply_query_customization6334 expects an ActiveRecord::Relation object as argument and returns a modified version of it6335 #hash_code6336 returns a hash that uniquely identifies an event6337 does not differ when the same object is built with the same params6338 behaves like LEFT JOIN-able value stream analytics event6339 can use the event as LEFT JOIN6340 when looking at the record with data6341 contains the timestamp expression6342 when looking at the record without data6343 returns nil for the timestamp expression6344Projects::LfsPointers::LfsLinkService6345 #execute6346 raises an error when trying to link too many objects at once6347 executes a block after validation and before execution6348 links existing lfs objects to the project6349 returns linked oids6350 links in batches6351 only queries for the batch that will be processed6352 only queries 3 times6353Boards::BoardsFinder6354 #execute6355 when board parent is a project6356 behaves like boards list service6357 does not create a new board6358 returns parent boards6359 behaves like multiple boards list service6360 #execute6361 returns all issue boards6362 returns boards ordered by name6363 when wanting a specific board6364 returns board specified by id6365 raises exception when board is not found6366 when board parent is a group6367 behaves like boards list service6368 does not create a new board6369 returns parent boards6370Gitlab::Cache6371 #fetch_once6372 fetches from the cache once6373 always returns from the request store6374 .delete6375 calls Rails.cache.delete6376Gitlab::JiraImport::IssueSerializer6377 #execute6378 attributes setting6379 sets the basic attributes6380 creates a hash for valid issue6381 labels6382 creates all missing labels (on project level)6383 when there are no new labels6384 assigns the labels to the Issue hash6385 does not create new labels6386 author6387 when reporter maps to a valid GitLab user6388 sets the issue author to the mapped user6389 when reporter does not map to a valid Gitlab user6390 defaults the issue author to project creator6391 when reporter field is empty6392 defaults the issue author to project creator6393 when reporter field is missing accountId6394 defaults the issue author to project creator6395 assignee6396 when assignee maps to a valid GitLab user6397 sets the issue assignees to the mapped user6398 when assignee does not map to a valid GitLab user6399 leaves the assignee empty6400 when assginee field is empty6401 leaves the assignee empty6402 when assginee field is missing accountId6403 leaves the assignee empty6404 with jira server response6405 when assignee maps to a valid GitLab user6406 sets the issue assignees to the mapped user6407 with done status6408 maps the status to closed6409 without the iid6410 does not set the iid6411Ci::PipelineMessage6412 validations6413 when message content is longer than the limit6414 is truncated with ellipsis6415 when message is not present6416 returns an error6417 when message content is valid6418 is saved with default error severity6419 is persist the defined severity6420RuboCop::Cop::SafeParams6421 # order random6422 flags the params as an argument of url_for6423 flags the merged params arg as an argument of url_for6424 flags the merged params as an argument of url_for6425 does not flag other argument of url_for6426DeleteMergedBranchesWorker6427 #perform6428 delegates to Branches::DeleteMergedService6429 returns false when project was not found6430Gitlab::JiraImport::StuckJiraImportJobsWorker6431 with scheduled Jira import6432 behaves like stuck import job detection6433 when the job has completed6434 when the import status was already updated6435 does not mark the import as failed6436 when the import status was not updated6437 marks the import as failed6438 when the job is still in Sidekiq6439 does not mark the import as failed6440 with started jira import6441 behaves like stuck import job detection6442 when the job has completed6443 when the import status was already updated6444 does not mark the import as failed6445 when the import status was not updated6446 marks the import as failed6447 when the job is still in Sidekiq6448 does not mark the import as failed6449 with failed jira import6450 detects no stuck jobs6451Groups::AcceptingProjectImportsFinder6452 # order random6453 #execute6454 only returns groups where the user has access to import projects6455Resolvers::Ci::JobTokenScopeResolver6456 is expected to have nullable GraphQL type CiJobTokenScopeType6457 #resolve6458 with access to scope6459 returns the same project in the allow list of projects for the Ci Job Token when scope is not enabled6460 returns the same project in the allow list of projects for the Ci Job Token6461 when another projects gets added to the allow list6462 returns both projects6463 when job token scope is disabled6464 resolves projects6465 without access to scope6466 generates an error6467Gitlab::DependencyLinker6468 .link6469 links using GemfileLinker6470 links using GemspecLinker6471 links using PackageJsonLinker6472 links using ComposerJsonLinker6473 links using PodfileLinker6474 links using PodspecLinker6475 links using PodspecJsonLinker6476 links using CartfileLinker6477 links using GodepsJsonLinker6478 links using RequirementsTxtLinker6479 links using CargoTomlLinker6480 links using GoModLinker6481 links using GoSumLinker6482API::Entities::MergeRequestApprovals6483 serializes an approved merge request6484 serializes a merge request that is not approved6485Gitlab::Ci::Input::Inputs6486 # order random6487 #valid?6488 describes user-provided inputs6489 when proper specification has been provided6490 fabricates desired input arguments6491 when unknown arguments are being passed by a user6492 returns an error with a list of unknown arguments6493 when composite specification is being used6494 returns an error describing an unknown specification6495 when unknown specification argument has been used6496 fabricates an unknown argument entry and returns an error6497 when there are arguments recoincilation errors present6498 when required argument is missing6499 returns an error6500 when argument is not present but configured as allowlist6501 returns an error6502 when inputs and args are empty6503 is a valid use-case6504HooksHelper6505 #webhook_form_data6506 when there are no URL variables6507 returns proper data6508 when there are URL variables6509 returns proper data6510 #webhook_test_items6511 returns test items for disclosure6512 #test_hook_path6513 returns project namespaced link6514 returns admin namespaced link6515 #hook_log_path6516 with a project hook6517 returns project-namespaced link6518 with a service hook6519 returns project-namespaced link6520 with a system hook6521 returns admin-namespaced link6522Gitlab::SampleDataTemplate6523 .all6524 returns all templates6525 .find6526 when there is a match6527 is expected to be a kind of Gitlab::SampleDataTemplate6528 when there is no match6529 is expected to equal nil6530 .archive_directory6531 is expected to be a kind of Pathname6532 validate all templates6533 sample has a valid archive6534 with valid parameters6535DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is6536deprecated without replacement. If the `throw` came from6537`Timeout.timeout(duration)`, pass an exception class as a second6538argument so it doesn't use `throw` to abort its block. This results6539in the transaction being committed, but in the next release of Rails6540it will rollback.6541 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127)6542 can be imported6543Atlassian::JiraConnect::Serializers::BuildEntity6544 when the pipeline does not belong to any Jira issue6545 #issue_keys6546 is empty6547 #to_json6548 can encode the object6549 is invalid, since it has no issue keys6550 when the pipeline does belong to a Jira issue6551 because it belongs to an MR with a jira_branch6552 #issue_keys6553 is not empty6554 #to_json6555 is valid according to the build info schema6556 because it belongs to an MR with a jira_title6557 #issue_keys6558 is not empty6559 #to_json6560 is valid according to the build info schema6561 because it belongs to an MR with a jira_description6562 #issue_keys6563 is not empty6564 #to_json6565 is valid according to the build info schema6566 in the pipeline's commit message6567 #issue_keys6568 is expected to contain exactly "PROJ-1234"6569 #to_json6570 is expected to be valid json and match schema {"additionalProperties"=>false, "properties"=>{"buildNumber"=>{"type"=>"integer"}, "displayName"=>{"t...splayName", "url", "state", "issueKeys", "testInfo", "references", "lastUpdated"], "type"=>"object"}6571admin mode on tasks6572 with a regular user6573 matches the expected admin mode6574 with an admin6575 matches the expected admin mode6576Nav::NewDropdownHelper6577 #new_dropdown_view_model6578 has title6579 when current_user is nil (anonymous)6580 is expected to be nil6581 when group and project are nil6582 has base results6583 when can create project6584 has project menu item6585 when can create group6586 has group menu item6587 when can create snippet6588 has new snippet menu item6589 with persisted group6590 has base results6591 when can create projects in group6592 has new project menu item6593 when can create subgroup6594 has new subgroup menu item6595 when can invite members6596 behaves like invite member item6597 shows invite member link with emoji6598 with persisted project6599 has base results6600 with show_new_issue_link?6601 shows new issue menu item6602 with merge project6603 shows merge project6604 when can create snippet6605 shows new snippet6606 when invite members experiment6607 behaves like invite member item6608 shows invite member link with emoji6609 with persisted group and project6610 gives precedence to project over group6611Approval6612 presence validation6613 is expected to validate that :merge_request_id cannot be empty/falsy6614 is expected to validate that :user_id cannot be empty/falsy6615 uniqueness validation6616 is expected to validate that :user_id is case-sensitively unique within the scope of :merge_request_id6617ApplicationSetting::Term6618 is expected to validate that :terms cannot be empty/falsy6619 .latest6620 finds the latest terms6621 #accepted_by_user?6622 is true when the user accepted the terms6623 is true when user is a bot6624 is false when the user declined the terms6625 does not cause a query when the user accepted the current terms6626 returns false if the currently accepted terms are different6627Gitlab::Ci::Config::Entry::Imageable6628 when entry value is correct6629 #valid?6630 is valid6631 when entry value is not correct6632 #errors6633 saves errors6634 #valid?6635 is not valid6636 when unexpected key is specified6637 #errors6638 saves errors6639 #valid?6640 is not valid6641Ci::PipelineArtifacts::CodeCoveragePresenter6642 #for_files6643 when code coverage has data6644 when filenames is empty6645 returns hash without coverage6646 when filenames do not match code coverage data6647 returns hash without coverage6648 when filenames matches code coverage data6649 when asking for one filename6650 returns coverage for the given filename6651 when asking for multiple filenames6652 returns coverage for a the given filenames6653Ci::Runners::ReconcileExistingRunnerVersionsService#execute6654 with RunnerUpgradeCheck recommending 14.0.26655 with runner with new version6656 creates and updates expected ci_runner_versions entries6657 with orphan ci_runner_version6658 deletes orphan ci_runner_versions entry6659 with no runner version changes6660 does not modify ci_runner_versions entries6661 with failing version check6662 makes no changes to ci_runner_versions6663 integration testing with Gitlab::Ci::RunnerUpgradeCheck6664 does not modify ci_runner_versions entries6665Tooling::Mappings::JsToSystemSpecsMappings6666 # order random6667 #filter_files6668 when no files were changed6669 returns an empty array6670 when JS files were changed6671 returns the path to the JS files6672 when JS files are deleted6673 returns an empty array6674 #construct_js_keywords6675 returns a singularized keyword based on the first folder the file is in6676 when the files are under the pages folder6677 captures the second folder6678 #execute6679 when no JS files were changed6680 does not change the output file6681 when some JS files were changed6682 when the JS files are not present on disk6683 does not change the output file6684 when the JS files are present on disk6685 when no system specs match the JS keyword6686 does not change the output file6687 when a system spec matches the JS keyword6688 adds the new specs to the output file6689 #system_specs_for_edition6690 when a file is not a ruby spec6691 does not return that file6692 when a file is a ruby spec6693 returns that file6694 when FOSS6695 checks the correct folder6696 when EE6697 checks the correct folder6698 when JiHu6699 checks the correct folder6700Resolvers::ReleaseMilestonesResolver6701 #resolve6702 uses offset-pagination6703 includes the release's milestones in the returned OffsetActiveRecordRelationConnection6704Releases::CreateEvidenceWorker6705 creates a new Evidence record6706 creates a new Evidence record with pipeline6707Analytics::UsageTrends::CountJobTriggerWorker6708 behaves like an idempotent worker6709 is labeled as idempotent6710 performs multiple times sequentially without raising an exception6711 triggers a job for each measurement identifiers6712 triggers CounterJobWorker jobs6713Gitlab::Ci::Pipeline::Chain::Skip6714 when pipeline has been skipped by a user6715 breaks the chain6716 skips the pipeline6717 calls ensure_project_iid explicitly6718 when pipeline has not been skipped6719 does not break the chain6720 does not skip a pipeline chain6721 when [ci skip] should be ignored6722 does not break the chain6723 when pipeline should be skipped but not persisted6724 breaks the chain6725 does not skip pipeline6726Types::Packages::PackageType6727 is expected to eq "Represents a package with pipelines in the Package Registry"6728 is expected to require graphql authorizations :read_package6729 includes all the package fields and pipelines6730Tooling::Mappings::ViewToJsMappings6731 # order random6732 #filter_files6733 when no files were changed6734 returns an empty array6735 when no view files were changed6736 returns an empty array6737 when view files were changed6738 returns the path to the view files6739 when view files are deleted6740 returns an empty array6741 #find_pattern_in_file6742 when the file contains the pattern6743 returns the pattern once6744 when the file does not contain the pattern6745 returns an empty array6746 #execute6747 when no view files have been changed6748 does not change the output file6749 when some view files have been changed6750 when they do not contain the HTML attribute value we search for6751 does not change the output file6752 when they contain the HTML attribute value we search for6753 when no matching JS files are found6754 does not change the output file6755 when some matching JS files are found6756 adds the matching JS files to the output6757 when rails partials are included in the file6758 scans those partials for the HTML attribute value6759 #find_partials6760 when the file includes a partial6761 when the partial is in the same folder as the view file6762 returns the partial file path6763 when the partial is in a subfolder6764 returns the partials file path6765 when the file does not include a partial6766 returns an empty array6767EnvironmentHelper6768 #render_deployment_status6769 when using a manual deployment6770 renders a span tag6771 when using a deployment from a build6772 renders a link tag6773 for a blocked deployment6774 indicates the status6775 #environments_detail_data_json6776 returns the correct data6777 when metrics dashboard feature is available6778 includes metrics path6779Gitlab::Config::Entry::Validators::NestedArrayHelpers6780 #validate_nested_array6781 with valid values6782 with arrays of integers6783 is expected to be empty6784 with nested arrays of integers6785 is expected to be empty6786 with invalid values6787 with single integers6788 is expected to eq {:value=>["is invalid"]}6789 when it is nested over the limit6790 is expected to eq {:value=>["is invalid"]}6791 when a value in the array is not valid6792 is expected to eq {:value=>["is invalid"]}6793 when a value in the nested array is not valid6794 is expected to eq {:value=>["is invalid"]}6795AwardEmojis::CollectUserEmojiService6796 #execute6797 returns an Array containing the awarded emoji names6798 returns an empty Array when no user is given6799DependencyProxy::ImageTtlGroupPolicyWorker6800 #perform6801 when there are images to expire6802 updates the old images to pending_destruction6803 counts logging6804 logs all the counts6805 with load balancing enabled6806 reads the counts from the replica6807RuboCop::Cop::Database::DisableReferentialIntegrity6808 # order random6809 does not flag the use of disable_referential_integrity with a send receiver6810 flags the use of disable_referential_integrity with a nil receiver6811 flags the use of disable_referential_integrity with a full definition6812 flags the use of disable_referential_integrity when passing a block6813Types::ReleaseAssetsInputType6814 is expected to eq "ReleaseAssetsInput"6815 has the correct arguments6816 sets the type of links argument to ReleaseAssetLinkInputType6817Packages::CleanupPackageFileWorker6818 #perform_work6819 with no work to do6820 is expected to be nil6821 with work to do6822 deletes the oldest package file pending destruction based on id6823 with a duplicated PyPI package file6824 deletes one of the duplicates6825 with a package file to destroy6826 with an error during the destroy6827 handles the error6828 when trying to destroy a destroyed record6829 handles the error6830 removing the last package file6831 deletes the package file and the package6832 #max_running_jobs6833 is expected to eq 56834 #remaining_work_count6835 is expected to eq 26836TriggerVariableEntity6837 exposes the variable key6838 when user has access to the value6839 when user is maintainer6840 exposes the variable value6841 when user is owner6842 exposes the variable value6843 when user does not have access to the value6844 does not expose the variable value6845Pajamas::Component6846 #filter_attribute6847 returns default value when no value is given6848 returns default value when invalid value is given6849 returns given value when it is part of allowed list6850 #format_options6851 merges CSS classes and additional options6852mail_room.yml6853 when incoming email is disabled6854 contains no configuration6855 when both incoming email and service desk email are enabled6856 contains the intended configuration6857 when both incoming email and service desk email are enabled for Microsoft Graph6858 contains the intended configuration6859PlanLimitsHelper6860 # order random6861 #plan_limit_setting_description6862 describes known limits6863 raises an ArgumentError on invalid arguments6864DependencyProxy::AuthTokenService6865 .user_or_deploy_token_from_jwt6866 with a user6867 is expected to eq #<User id:1769 @user938>6868 with an invalid user id6869 raises an not found error6870 behaves like handling token errors6871 with a decoding error6872 is expected to eq nil6873 with an immature signature error6874 is expected to eq nil6875 with an expired signature error6876 returns nil6877 with a deploy token6878 is expected to eq #<DeployToken id: 7, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-05...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>6879 with an invalid token6880 is expected to eq nil6881 behaves like handling token errors6882 with a decoding error6883 is expected to eq nil6884 with an immature signature error6885 is expected to eq nil6886 with an expired signature error6887 returns nil6888 with an empty token payload6889 is expected to eq nil6890Gitlab::ImportExport::AfterExportStrategyBuilder6891 .build!6892 initializes strategy with attributes param6893 when klass param is6894 null it returns the default strategy6895 not a valid class it raises StrategyNotFoundError exception6896 not a descendant of AfterExportStrategy6897Gitlab::NamespacedSessionStore6898 current session6899 stores data under the specified key6900 retrieves data from the given key6901 passed in session6902 retrieves data from the given key6903PurgeDependencyProxyCacheWorker6904 #perform6905 an admin user6906 when admin mode is enabled6907 is labeled as idempotent6908 performs multiple times sequentially without raising an exception6909 marks the blobs as pending_destruction and returns ok6910 when admin mode is disabled6911 behaves like not expiring blobs and manifests6912 does not expire blobs and manifests6913 a non-admin user6914 behaves like not expiring blobs and manifests6915 does not expire blobs and manifests6916 an invalid user id6917 behaves like not expiring blobs and manifests6918 does not expire blobs and manifests6919 an invalid group6920 behaves like not expiring blobs and manifests6921 does not expire blobs and manifests6922Gitlab::Ci::Reports::TestReportsComparer6923 #suite_comparers6924 when head and base reports include two test suites6925 returns test suite comparers with specified values6926 #total_status6927 when all tests cases are success in head suites6928 returns the total status6929 when there is a failed test case in head suites6930 returns the total status in head suite6931 when there is an error test case in head suites6932 returns the total status in head suite6933 #total_count6934 returns the total test counts in head suites6935 #resolved_count6936 when there is a resolved failure test case in head suites6937 returns the correct count6938 when there is a resolved error test case in head suites6939 returns the correct count6940 when there are no resolved test cases in head suites6941 returns the correct count6942 #failed_count6943 when there is a failed test case in head suites6944 returns the correct count6945 when there are no failed test cases in head suites6946 returns the correct count6947 #error_count6948 when there is an error test case in head suites6949 returns the correct count6950 when there are no error test cases in head suites6951 returns the correct count6952Ci::ParseSecureFileMetadataWorker6953 # order random6954 #perform6955 is labeled as idempotent6956 performs multiple times sequentially without raising an exception6957 when the file is found6958 calls update_metadata!6959 when file is not found6960WARNING: An expectation of `:update_metadata!` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/workers/ci/parse_secure_file_metadata_worker_spec.rb:25:in `block (4 levels) in <top (required)>'.6961 does not call update_metadata!6962IncidentManagement::TimelineEventTags::CreateService6963 # order random6964 #execute6965 when current user is nil6966 behaves like error response6967 has an informative message6968 when user does not have permissions to create tags6969 behaves like error response6970 has an informative message6971 when error occurs during creation6972 behaves like error response6973 has an informative message6974 when user has permissions6975 creates database record6976 behaves like success response6977 has timeline event tag6978Sidekiq::Worker6979 for sidekiq workers6980 behaves like a forbiddable operation within a transaction6981 allows the operation outside of a transaction6982 forbids the operation within a transaction6983 allows the oepration within a transaction if skipped6984 forbids the operation if it is within a Ci::ApplicationRecord transaction6985 for mailers6986 behaves like a forbiddable operation within a transaction6987 allows the operation outside of a transaction6988 forbids the operation within a transaction6989 allows the oepration within a transaction if skipped6990 forbids the operation if it is within a Ci::ApplicationRecord transaction6991Gitlab::Ci::Pipeline::Quota::Deployments6992 #enabled?6993 when limit is enabled in plan6994 is enabled6995 when limit is not enabled6996 is not enabled6997 when limit does not exist6998 is enabled by default6999 #exceeded?7000 when limit is exceeded7001 is exceeded7002 when limit is not exceeded7003 is not exceeded7004 #message7005 when limit is exceeded7006 returns info about pipeline deployment limit exceeded7007AlertManagement::MetricImages::UploadService7008 #execute7009 user does not have permissions7010 behaves like no metric saved, an error given7011 returns an error and does not upload7012 user has permissions7013 behaves like uploads the metric7014 uploads the metric and returns a success7015 no url given7016 behaves like uploads the metric7017 uploads the metric and returns a success7018 record invalid7019 behaves like no metric saved, an error given7020 returns an error and does not upload7021 user is guest7022 behaves like no metric saved, an error given7023 returns an error and does not upload7024BulkImports::ExportService7025 #execute7026 when export is not batched7027 schedules RelationExportWorker for each top level relation7028 when export is batched7029 schedules RelationExportWorker with a `batched: true` flag7030 when exception occurs7031 does not schedule RelationExportWorker7032 when user is not allowed to perform export7033 does not schedule RelationExportWorker7034Gitlab::SlashCommands::Presenters::Access7035 #access_denied7036 is expected to be a kind of Hash7037 behaves like displays an error message7038 is expected to equal :ephemeral7039 #generic_access_denied7040 is expected to be a kind of Hash7041 behaves like displays an error message7042 is expected to equal :ephemeral7043 #deactivated7044 is expected to be a kind of Hash7045 behaves like displays an error message7046 is expected to equal :ephemeral7047 #not_found7048 is expected to be a kind of Hash7049 tells the user the resource was not found7050 #authorize7051 with an authorization URL7052 is expected to be a kind of Hash7053 tells the user to authorize7054 without authorization url7055 is expected to be a kind of Hash7056 tells the user to authorize7057Achievements::RevokeService7058 # order random7059 #execute7060 when user does not have permission7061 returns an error7062 when user has permission7063 revokes an achievement7064 when the achievement has already been revoked7065 returns the correct error7066 when the user achievement fails to save7067 returns the correct error7068Gitlab::Database::SchemaValidation::Runner7069 # order random7070 #execute7071 returns inconsistencies7072 execute all validators7073 when validators are passed7074 only execute the validators passed7075UsageStatistics7076 .distinct_count_by7077 two records created by the same issue7078 returns a count of 17079 when given no column to count7080 counts by :id and returns a count of 27081 one record created by each issue7082 returns a count of 27083 the count query times out7084 does not raise an error7085 returns -17086Boards::Visits::CreateService7087 #execute7088 when a project board7089 behaves like boards recent visit create service7090 returns nil when there is no user7091 returns nil when database is read only7092 records the visit7093 when a group board7094 behaves like boards recent visit create service7095 returns nil when there is no user7096 returns nil when database is read only7097 records the visit7098Gitlab::GitalyClient::PraefectInfoService7099 #repository_replicas7100 sends an RPC request7101Gitlab::Auth::Ldap::AuthHash7102 without overridden attributes7103 has the correct username7104 has the correct name7105 with overridden attributes7106 has the correct username7107 has the correct name7108 #uid7109 when there is extraneous (but valid) whitespace7110 removes the extraneous whitespace7111 when there are upper case characters7112 downcases7113 #username7114 if lowercase_usernames setting is7115 enabled the username attribute is lower cased7116 disabled the username attribute is not lower cased7117Gitlab::Ci::Trace::RemoteChecksum7118 #md5_checksum7119 when the file is stored locally7120 is expected to be nil7121 when object store is enabled7122 with local files7123 is expected to be nil7124 with remote files7125 with AWS as provider7126 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"7127 with Google as provider7128 when the response does not include :content_md57129 raises an exception7130 when the response include :content_md57131 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"7132 with unsupported providers7133 is expected to be nil7134IncidentManagement::IssuableEscalationStatuses::CreateService7135 # order random7136 creates an escalation status for the incident with no policy set7137 existing escalation status7138 exits without changing anything7139Gitlab::Template::Finders::RepoTemplateFinder7140 #read7141 returns the content of the given path7142 raises an error if the path does not exist7143 #find7144 returns the full path of the found template7145 does not permit path traversal requests7146 #list_files_for7147 returns the full path of the found files7148Gitlab::Usage::Metrics::Instrumentations::WorkItemsActivityAggregatedMetric7149 # order random7150 time_frame: "7d"7151 #available?7152 returns false without track_work_items_activity feature7153 returns true with track_work_items_activity feature7154 #value7155 has correct value after events are tracked7156 time_frame: "28d"7157 #available?7158 returns false without track_work_items_activity feature7159 returns true with track_work_items_activity feature7160 #value7161 has correct value after events are tracked7162Integrations::ResetSecretFields7163 behaves like Integrations::ResetSecretFields7164 #exposing_secrets_fields7165 returns an array of strings7166 #reset_secret_fields?7167 returns false if no exposing field has changed7168 returns true if any exposing field has changed7169 validation callback7170 when an exposing field has changed7171 clears all secret fields7172 when a secret field has been updated7173 does not clear this secret field7174 when a secret field has been updated with the same value7175 does not clear this secret field7176 when no exposing field has changed7177 does not clear any secret fields7178Gitlab::CrossProjectAccess7179 #add_check7180 keeps track of the properties to check7181 builds the check correctly7182 merges the checks of a parent class into existing checks of a subclass7183 merges the existing checks of a superclass into the checks of a subclass7184 #find_check7185 returns a check when it was defined for a superclass7186 caches the result for a subclass7187 returns the checks for the closest class if there are more checks available7188Gitlab::Ci::Trace::SectionParser7189 #sections7190 empty trace7191 is expected to be empty7192 with a sectionless trace7193 is expected to be empty7194 with trace markers7195 is expected to eq 27196 is expected to eq "b"7197 is expected to eq 2017-10-05 00:00:00.000000000 +00007198 is expected to eq 2017-10-05 00:00:01.000000000 +00007199 #parse!7200 multiple "section_" but no complete markers7201 must find 3 possible section start but no complete sections7202 trace with UTF-8 chars7203 must handle correctly byte positioning7204Gitlab::Kubernetes::Kubeconfig::Template7205 #valid?7206 is expected to be falsey7207 with configuration added7208 is expected to be truthy7209 #to_h7210 is expected to eq {:apiVersion=>"v1", :clusters=>[], :contexts=>[], :kind=>"Config", :users=>[]}7211 #to_yaml7212 is expected to eq "---\napiVersion: v1\nkind: Config\nclusters: []\nusers: []\ncontexts: []\n"7213 #merge_yaml7214 appends to the configuration and overwrites the current context7215 adding entries7216 #add_cluster7217 is expected to include {:clusters => [{:name => "name", :other => "other"}]}7218 #add_user7219 is expected to include {:users => [{:name => "name", :other => "other"}]}7220 #add_context7221 is expected to include {:contexts => [{:name => "name", :other => "other"}]}7222Resolvers::Crm::OrganizationStateCountsResolver7223 #resolve7224 with unauthorized user7225 does not raise an error and returns nil7226 with authorized user7227 without parent7228 returns nil7229 with a group7230 when no filter is provided7231 returns the count of all crm_organizations7232 when search term is provided7233 returns the correct counts7234NumbersHelper7235 #limited_counter_with_delimiter7236 count: 9, options: {:limit=>10}, expected_result: "9"7237 is expected to eq "9"7238 count: 10, options: {:limit=>10}, expected_result: "10"7239 is expected to eq "10"7240 count: 11, options: {:limit=>10}, expected_result: "10+"7241 is expected to eq "10+"7242 count: 12, options: {:limit=>10}, expected_result: "10+"7243 is expected to eq "10+"7244 count: 999, options: {}, expected_result: "999"7245 is expected to eq "999"7246 count: 1000, options: {}, expected_result: "1,000"7247 is expected to eq "1,000"7248 count: 1001, options: {}, expected_result: "1,000+"7249 is expected to eq "1,000+"7250 count: 1002, options: {}, expected_result: "1,000+"7251 is expected to eq "1,000+"7252Projects::ScheduleBulkRepositoryShardMovesWorker7253 behaves like schedules bulk repository shard moves7254 #perform7255 is labeled as idempotent7256 performs multiple times sequentially without raising an exception7257 schedules container repository storage moves7258BulkImports::RelationBatchExportWorker7259 # order random7260 #perform7261 is labeled as idempotent7262 performs multiple times sequentially without raising an exception7263 executes RelationBatchExportService7264Gitlab::QuickActions::SpendTimeAndDateSeparator7265 #execute7266 invalid paramenter in arg line7267 empty arg line7268 behaves like arg line with invalid parameters7269 return nil7270 future date in arg line7271 behaves like arg line with invalid parameters7272 return nil7273 unparseable date(invalid mixes of delimiters)7274 behaves like arg line with invalid parameters7275 return nil7276 trash in arg line7277 return nil as time value7278 only time present in arg line7279 behaves like arg line with valid parameters7280 return time and date array7281 simple time with date in arg line7282 behaves like arg line with valid parameters7283 return time and date array7284 composite time with date in arg line7285 behaves like arg line with valid parameters7286 return time and date array7287MergeRequestSidebarExtrasEntity7288 #assignees7289 contains assignees attributes7290 #reviewers7291 contains reviewers attributes7292Gitlab::RequestForgeryProtection7293 logs to /dev/null7294 .call7295 when the request method is GET7296 does not raise an exception7297 when the request method is POST7298 when the CSRF token is valid7299 does not raise an exception7300 when the CSRF token is invalid7301 raises an ActionController::InvalidAuthenticityToken exception7302 .verified?7303 does not modify the env7304 when the request method is GET7305 returns true7306 when the request method is POST7307 when the CSRF token is valid7308 returns true7309 when the CSRF token is invalid7310 returns false7311Users::RespondToTermsService7312 #execute7313 creates a new agreement if it did not exist7314 updates an agreement if it existed7315 adds the accepted terms to the user7316 removes accepted terms when declining7317GpgKeySubkey7318 associations7319 is expected to belong to gpg_key required: false7320 validations7321 is expected to validate that :gpg_key_id cannot be empty/falsy7322 is expected to validate that :fingerprint cannot be empty/falsy7323 is expected to validate that :keyid cannot be empty/falsy7324Mutations::Security::CiConfiguration::BaseSecurityAnalyzer7325 raises a NotImplementedError error if the resolve method is called on the base class7326CaseSensitivity7327 .iwhere7328 finds a single instance by a single attribute regardless of case7329 finds multiple instances by a single attribute regardless of case7330 finds instances by multiple attributes7331 finds instances by custom Arel attributes7332 builds a query using LOWER7333Users::SavedReplies::CreateService7334 #execute7335 when create fails7336 is expected not to be success7337 does not create new Saved Reply in database7338 returns error messages7339 when create succeeds7340 is expected to be success7341 creates new Saved Reply in database7342 returns new saved reply7343MergeRequests::Mergeability::CheckDraftStatusService7344 #execute7345 when the merge request is a draft7346 returns a check result with status failed7347 when the merge request is not a draft7348 returns a check result with status success7349 #skip?7350 returns false7351 #cacheable?7352 returns false7353Sidebars::Projects::Menus::WikiMenu7354 does not contain any sub menu7355 #render?7356 when user can access project wiki7357 returns true7358 when user cannot access project wiki7359 returns false7360 behaves like serializable as super_sidebar_menu_args7361 returns hash with provided attributes7362 returns hash with an item_id7363Integrations::Pivotaltracker7364 Validations7365 when integration is active7366 is expected to validate that :token cannot be empty/falsy7367 when integration is inactive7368 is expected not to validate that :token cannot be empty/falsy7369 Execute7370 posts correct message7371 when allowed branches is specified7372 posts message if branch is in the list7373 does not post message if branch is not in the list7374Gitlab::GithubImport::Stage::ImportRepositoryWorker7375 #import7376 when the import succeeds7377 with issues7378 schedules the importing of the base data7379 without issues7380 schedules the importing of the base data7381 when retrying7382 does not allocate internal ids7383 when the import fails7384 does not schedule the importing of the base data7385CalendarHelper7386 #calendar_url_options7387 when signed in7388 includes the current_user's feed_token7389 when signed out7390 does not have a feed_token7391 when feed token disabled7392 does not have a feed_token7393Gitlab::GithubImport::ImportNoteWorker7394 #import7395 imports a note7396Gitlab::Analytics::CycleAnalytics::Sorting7397 when invalid sorting params are given7398 falls back to end_event DESC sorting7399 sorting end_event7400 direction desc7401 is expected to eq [#<Arel::Nodes::Descending:0x00007fc2362d06b8 @expr=#<struct Arel::Attributes::Attribute relation=#<A...ject_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]7402 direction asc7403 is expected to eq [#<Arel::Nodes::Ascending:0x00007fc236ac4720 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar...ject_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]7404 sorting duration7405 direction desc7406 is expected to eq [#<Arel::Nodes::Descending:0x00007fc237046d88 @expr=#<Arel::Nodes::Subtraction:0x00007fc237046db0 @le...olean, prepared_at: datetime_with_timezone)>, @table_alias=nil>, name="created_at">, @operator=:->>]7407 direction asc7408 is expected to eq [#<Arel::Nodes::Ascending:0x00007fc239aad720 @expr=#<Arel::Nodes::Subtraction:0x00007fc239aad748 @lef...olean, prepared_at: datetime_with_timezone)>, @table_alias=nil>, name="created_at">, @operator=:->>]7409Gitlab::ConanToken7410 .from_personal_access_token7411 sets access token and user id and does not use the token id7412 .from_job7413 sets access token id and user id7414 .from_deploy_token7415 sets access token id and user id7416 .decode7417 sets access token id and user id7418 returns nil for invalid JWT7419 returns nil for expired JWT7420 #to_jwt7421 returns the encoded JWT7422Gitlab::Graphql::Loaders::BatchProjectStatisticsLoader7423 #find7424 only queries once for project statistics7425Types::PermissionTypes::BasePermissionType7426 .permission_field7427 adds a field for the required permission7428 .ability_field7429 adds a field for the required permission7430 does not add a resolver block if another resolving param is passed7431 .abilities7432 adds a field for the passed permissions7433 extensions7434 has the extension7435Gitlab::EmptySearchResults7436 #objects7437 returns an empty array7438 #formatted_count7439 returns a zero7440 #highlight_map7441 returns an empty hash7442 #aggregations7443 returns an empty array7444Gitlab::Config::Entry::Unspecified7445 #valid?7446 delegates method to entry7447 #errors7448 delegates method to entry7449 #value7450 delegates method to entry7451 #specified?7452 is always false7453Types::CustomerRelations::OrganizationType7454 is expected to eq "CustomerRelationsOrganization"7455 is expected to have graphql fields :id, :name, :default_rate, :description, :active, :created_at, and :updated_at7456 is expected to require graphql authorizations :read_crm_organization7457Groups::SettingsHelper7458 #group_settings_confirm_modal_data7459 prevent_delete_response: true, is_button_disabled: "true", form_value_id: nil7460 returns expected parameters7461 prevent_delete_response: true, is_button_disabled: "true", form_value_id: "fake_form_id"7462 returns expected parameters7463 prevent_delete_response: false, is_button_disabled: "false", form_value_id: nil7464 returns expected parameters7465 prevent_delete_response: false, is_button_disabled: "false", form_value_id: "fake_form_id"7466 returns expected parameters7467ContentTypeWhitelist7468 upload whitelisted file content type7469 behaves like accepted carrierwave upload7470 will accept upload7471 will cache uploaded file7472 behaves like upload with content type7473 will not change upload file content type7474 upload non-whitelisted file content type7475 behaves like denied carrierwave upload7476 will deny upload7477 upload misnamed non-whitelisted file content type7478 behaves like denied carrierwave upload7479 will deny upload7480Types::Packages::Cleanup::PolicyType7481 is expected to eq "PackagesCleanupPolicy"7482 is expected to eq "A packages cleanup policy designed to keep only packages and packages assets that matter most"7483 is expected to require graphql authorizations :admin_package7484 keep_n_duplicated_package_files7485 is expected to have non-null GraphQL type PackagesCleanupKeepDuplicatedPackageFilesEnum7486 next_run_at7487 is expected to have nullable GraphQL type Time7488RuboCop::Cop::QA::SelectorUsage7489 # order random7490 in a QA file7491 has no error7492 outside of QA7493 data-qa-selector7494 behaves like non-qa file usage7495 reports an offense7496 qa class7497 behaves like non-qa file usage7498 reports an offense7499Gitlab::Audit::NullTarget7500 #id7501 returns nil7502 #type7503 returns nil7504 #details7505 returns nil7506Resolvers::Ci::RunnerGroupsResolver7507 # order random7508 #resolve7509 with authorized user7510 returns a lazy value with all groups7511 with unauthorized user7512 is expected to be nil7513Import::FogbugzProviderRepoEntity7514 behaves like exposes required fields for import entity7515 exposes required fields7516 correctly exposes id7517 correctly exposes full name7518 correctly exposes sanitized name7519 correctly exposes provider link7520Gitlab::ImportExport::LogUtil7521 .exportable_to_log_payload7522 when exportable is a group7523 returns hash with group keys7524 when exportable is a project7525 returns hash with project keys7526 when exportable is a new record7527 returns empty hash7528 when exportable is an unexpected type7529 returns empty hash7530Gitlab::Import::Errors7531 # order random7532 .merge_nested_errors7533 merges nested collection errors7534Gitlab::DoorkeeperSecretStoring::Token::Pbkdf2Sha5127535 # order random7536 STRETCHES7537 is 20_0007538 .transform_secret7539 generates a PBKDF2+SHA512 hashed value in the correct format7540 SALT7541 is empty7542InstanceMetadataPolicy7543 for any logged-in user7544 is expected to be allowed :read_instance_metadata7545 for anonymous users7546 is expected not to be allowed :read_instance_metadata7547Gitlab::Metrics::Memory7548 .gc_heap_fragmentation7549 when the Ruby heap is perfectly utilized7550 is expected to eq 07551 when the Ruby heap is greatly fragmented7552 is expected to be > 0.997553 when the Ruby heap is semi-fragmented7554 is expected to eq 0.57555Gitlab::Git::BundleFile7556 .check!7557 returns nil for a valid bundle7558 raises an exception for an invalid bundle7559Gitlab::SidekiqVersioning::Middleware7560 #call7561 sets worker.job_version7562 yields7563 when worker is not ApplicationWorker7564 does not err7565Types::Ci::Catalog::ResourceType7566 # order random7567 is expected to eq "CiCatalogResource"7568 exposes the expected fields7569Metrics::SampleMetricsService7570 query7571 when the file is not found7572 is expected to be nil7573 when the file is found7574 loads data from the sample file correctly7575 when the identifier is for a path outside of sample_metrics7576 is expected to be nil7577Types::DesignManagement::DesignCollectionType7578 is expected to require graphql authorizations :read_design7579 has the expected fields7580Gitlab::Metrics::Subscribers::ActionView7581 #render_template7582 tracks rendering of a template7583 observes view rendering time7584Gitlab::Database::Migrations::Observers::TotalDatabaseSizeChange7585 records the size change7586 out of order calls7587 does not record anything if before size is unknown7588 does not record anything if after size is unknown7589Types::Admin::Analytics::UsageTrends::MeasurementIdentifierEnum7590 is expected to eq "MeasurementIdentifier"7591 exposes all the existing identifier values7592Gitlab::MergeRequests::Mergeability::ResultsStore7593 #read7594 calls #retrieve_check on the interface7595 when #retrieve_check returns nil7596 returns nil7597 #write7598 calls #save_check on the interface7599Gitlab::Database::SchemaValidation::Validators::MissingTableColumns7600 # order random7601 returns table inconsistencies7602Types::Packages::PackageTagType7603 is expected to eq "PackageTag"7604 includes all the package tag fields7605GenerateFailedPackageAndTestMrMessage7606 # order random7607 #execute7608 when package-and-test fails7609 successfully creates a discussion7610 when package-and-test is did not fail7611 does not add a discussion7612API::Helpers::CommonHelpers7613 .coerce_nil_params_to_array!7614 converts all nil parameters to empty arrays7615 leaves non-nil parameters alone7616errors/access_denied7617 does not fail to render when there is no message provided7618Types::Projects::Services::BaseServiceType7619 is expected to eq "BaseService"7620 has basic expected fields7621 is expected to require graphql authorizations :admin_project7622Serializers::UnsafeJson7623 .dump7624 calls object#to_json with unsafe: true and returns the result7625 .load7626 calls JSON.load and returns the result7627CsvBuilders::Stream7628 #render7629 returns a lazy enumerator7630 returns all rows up to default max value7631 truncates to max rows7632Admin::UserSerializer7633 when there is a single object provided7634 contains important elements for the admin user table7635Types::WorkItems::Widgets::StartAndDueDateUpdateInputType7636 is expected to eq "WorkItemWidgetStartAndDueDateUpdateInput"7637 is expected to contain exactly "startDate" and "dueDate"7638API::Entities::Nuget::DependencyGroup7639 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup", :@type=>"PackageDependencyGroup", ...y", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}], :targetFramework=>"fwk test"}7640 dependency group without target framework7641 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup", :@type=>"PackageDependencyGroup", ...ndbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}]}7642Gitlab::Webpack::GraphqlKnownOperations7643 .load7644 when file loader returns7645 returns memoized value7646 when file loader errors7647 returns empty array7648Projects::Security::ConfigurationController routing7649 routes to #show7650#<Class:0x00007fc278a3b230>7651 has the expected fields7652CreateMergeRequestDiscussion7653 # order random7654 #execute7655 requests commit_merge_requests from the gitlab client7656API::Entities::Projects::RepositoryStorageMove7657 #as_json7658 includes basic fields7659Types::Security::ReportTypeEnum7660 exposes all security report types7661processing of SAMLResponse in dependencies7662 can extract AuthnContextClassRef from SAMLResponse param7663RunnersTokenPrefixable7664 runners token prefix7665 has the correct value7666Knapsack report was generated. Preview:7667{7668 "spec/services/notification_service_spec.rb": 731.749071687,7669 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 60.06890118199999,7670 "spec/services/groups/update_service_spec.rb": 35.880280185999936,7671 "spec/services/ci/reset_skipped_jobs_service_spec.rb": 45.24966720900011,7672 "spec/helpers/visibility_level_helper_spec.rb": 38.499060523000026,7673 "spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb": 34.52841217800005,7674 "spec/lib/gitlab/kubernetes/kube_client_spec.rb": 17.308333524999853,7675 "spec/services/search_service_spec.rb": 17.364697887000148,7676 "spec/finders/todos_finder_spec.rb": 27.456922480999992,7677 "spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb": 17.938257164000106,7678 "spec/lib/gitlab/project_template_spec.rb": 13.422968529999935,7679 "spec/lib/gitlab/ci/config/entry/job_spec.rb": 7.264488630999949,7680 "spec/finders/metrics/dashboards/annotations_finder_spec.rb": 15.957369392999908,7681 "spec/models/commit_range_spec.rb": 17.763493044999905,7682 "spec/services/users/destroy_service_spec.rb": 17.587032932000056,7683 "spec/lib/container_registry/client_spec.rb": 5.0946453439999,7684 "spec/lib/gitlab/counters/buffered_counter_spec.rb": 5.415910967000173,7685 "spec/lib/gitlab/metrics/requests_rack_middleware_spec.rb": 7.1016515849999,7686 "spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb": 15.439909311000065,7687 "spec/lib/gitlab/search/abuse_detection_spec.rb": 3.880311440000014,7688 "spec/services/projects/git_deduplication_service_spec.rb": 11.285174750999886,7689 "spec/initializers/load_balancing_spec.rb": 10.37420753399988,7690 "spec/services/merge_requests/retarget_chain_service_spec.rb": 9.609640759000058,7691 "spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb": 10.787823337999953,7692 "spec/lib/gitlab/pagination/keyset/order_spec.rb": 3.4924970990000475,7693 "spec/policies/user_policy_spec.rb": 3.437228686000026,7694 "spec/workers/merge_request_cleanup_refs_worker_spec.rb": 13.905160432999992,7695 "spec/services/discussions/update_diff_position_service_spec.rb": 11.71778733400015,7696 "spec/policies/ci/runner_policy_spec.rb": 5.697705196000015,7697 "spec/services/metrics/dashboard/custom_dashboard_service_spec.rb": 9.387829821999958,7698 "spec/lib/gitlab/ci/config/external/mapper_spec.rb": 5.165619185999958,7699 "spec/models/external_pull_request_spec.rb": 6.088518325999985,7700 "spec/lib/gitlab/user_access_snippet_spec.rb": 4.2957461020000665,7701 "spec/finders/concerns/finder_with_cross_project_access_spec.rb": 7.406983624000077,7702 "spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb": 6.265556506999928,7703 "spec/services/namespaces/package_settings/update_service_spec.rb": 5.0856104249999134,7704 "spec/views/notify/pipeline_failed_email.html.haml_spec.rb": 8.618083943999864,7705 "spec/lib/gitlab/diff/suggestions_parser_spec.rb": 6.623595752000028,7706 "spec/lib/gitlab/middleware/multipart_spec.rb": 2.077526333999913,7707 "spec/finders/context_commits_finder_spec.rb": 9.469948739000074,7708 "spec/models/customer_relations/contact_spec.rb": 5.118085184999927,7709 "spec/models/personal_snippet_spec.rb": 2.693090426000026,7710 "spec/helpers/ci/runners_helper_spec.rb": 5.604958449999913,7711 "spec/graphql/types/issue_type_spec.rb": 5.334314917000029,7712 "spec/models/members/last_group_owner_assigner_spec.rb": 6.005829692999896,7713 "spec/workers/pipeline_metrics_worker_spec.rb": 5.590716790999977,7714 "spec/models/ci/unit_test_spec.rb": 3.227233682000133,7715 "spec/lib/gitlab/http_io_spec.rb": 1.717363948999946,7716 "spec/lib/gitlab/ci/build/auto_retry_spec.rb": 4.781103153000004,7717 "spec/services/todos/destroy/project_private_service_spec.rb": 6.192457550999961,7718 "spec/workers/packages/nuget/extraction_worker_spec.rb": 6.402843576999885,7719 "spec/models/deploy_key_spec.rb": 3.182646685000009,7720 "spec/models/ci/job_token/allowlist_spec.rb": 4.889423484999952,7721 "spec/policies/protected_branch_policy_spec.rb": 5.0648475339999095,7722 "spec/services/system_notes/alert_management_service_spec.rb": 2.5441555950001202,7723 "spec/lib/gitlab/email/service_desk_email_spec.rb": 1.2007009040000867,7724 "spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb": 4.345210567000095,7725 "spec/workers/environments/auto_stop_worker_spec.rb": 4.150500976999865,7726 "spec/models/uploads/fog_spec.rb": 4.962154061999854,7727 "spec/services/milestones/issues_count_service_spec.rb": 4.122227809999913,7728 "spec/serializers/merge_request_metrics_helper_spec.rb": 5.823842701999865,7729 "spec/lib/gitlab/ci/jwt_v2_spec.rb": 2.2893235609999465,7730 "spec/models/packages/debian/project_component_spec.rb": 1.7572504869999648,7731 "spec/serializers/fork_namespace_entity_spec.rb": 4.551518035000072,7732 "spec/lib/gitlab/database/postgres_index_spec.rb": 3.062546581000106,7733 "spec/lib/gitlab/jira_import_spec.rb": 3.1623738400001002,7734 "spec/models/packages/debian/file_entry_spec.rb": 1.4802000849999786,7735 "spec/lib/banzai/filter/custom_emoji_filter_spec.rb": 1.8212832300000628,7736 "spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb": 1.3527236689999427,7737 "spec/services/issuable/destroy_label_links_service_spec.rb": 3.522351372000003,7738 "spec/models/custom_emoji_spec.rb": 1.4727478770000744,7739 "spec/validators/public_url_validator_spec.rb": 1.7322129679998852,7740 "spec/models/concerns/has_environment_scope_spec.rb": 1.783176573999981,7741 "spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb": 1.9518720659998507,7742 "spec/lib/gitlab/ci/reports/security/identifier_spec.rb": 1.2247073219998583,7743 "spec/lib/gitlab/kubernetes_spec.rb": 0.8588817899999412,7744 "spec/lib/gitlab/patch/redis_cache_store_spec.rb": 1.218205983000189,7745 "spec/models/ci/build_pending_state_spec.rb": 1.8452922179999405,7746 "spec/graphql/resolvers/groups_resolver_spec.rb": 1.091051546000017,7747 "spec/finders/user_group_notification_settings_finder_spec.rb": 3.178624129000127,7748 "spec/workers/integrations/slack_event_worker_spec.rb": 1.029678591999982,7749 "spec/lib/gitlab/email/failure_handler_spec.rb": 1.8243035499999678,7750 "spec/workers/container_expiration_policy_worker_spec.rb": 3.1794663790001323,7751 "spec/tasks/gitlab/packages/migrate_rake_spec.rb": 3.001062006999973,7752 "spec/lib/gitlab/import_export/lfs_saver_spec.rb": 2.404490988999896,7753 "spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb": 2.3682590920000166,7754 "spec/models/projects/import_export/relation_export_spec.rb": 2.6860279100001208,7755 "spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb": 0.6811867989999882,7756 "spec/models/metrics/users_starred_dashboard_spec.rb": 1.8332979290000821,7757 "spec/rubocop/formatter/graceful_formatter_spec.rb": 1.2397775809999985,7758 "spec/lib/gitlab/sql/except_spec.rb": 0.6921355269998912,7759 "spec/lib/sidebars/admin/menus/admin_settings_menu_spec.rb": 0.7630861299999196,7760 "spec/workers/object_pool/join_worker_spec.rb": 2.2080668989999594,7761 "spec/lib/sidebars/admin/menus/abuse_reports_menu_spec.rb": 1.7037809630000993,7762 "spec/lib/api/helpers/merge_requests_helpers_spec.rb": 0.6231901660000858,7763 "spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb": 2.9075848459999634,7764 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 2.5441264549999687,7765 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb": 3.1042769760001647,7766 "spec/services/projects/lfs_pointers/lfs_link_service_spec.rb": 1.0719123279998257,7767 "spec/finders/boards/boards_finder_spec.rb": 3.3826563469999655,7768 "spec/lib/gitlab/cache_spec.rb": 0.42137867700012066,7769 "spec/lib/gitlab/jira_import/issue_serializer_spec.rb": 1.9351968789999319,7770 "spec/models/ci/pipeline_message_spec.rb": 2.0567253459998938,7771 "spec/rubocop/cop/safe_params_spec.rb": 0.5950295970001207,7772 "spec/workers/delete_merged_branches_worker_spec.rb": 1.858988416000102,7773 "spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb": 3.300111146000063,7774 "spec/finders/groups/accepting_project_imports_finder_spec.rb": 1.7968320019999737,7775 "spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb": 1.794014283000024,7776 "spec/lib/gitlab/dependency_linker_spec.rb": 0.7924821770000108,7777 "spec/lib/api/entities/merge_request_approvals_spec.rb": 2.8828662089999852,7778 "spec/lib/gitlab/ci/input/inputs_spec.rb": 0.7852867470001001,7779 "spec/helpers/hooks_helper_spec.rb": 0.9131490749998648,7780 "spec/lib/gitlab/sample_data_template_spec.rb": 0.9397787319999225,7781 "spec/lib/atlassian/jira_connect/serializers/build_entity_spec.rb": 2.31546107500003,7782 "spec/tasks/admin_mode_spec.rb": 2.6300985989998935,7783 "spec/helpers/nav/new_dropdown_helper_spec.rb": 1.6470694240001649,7784 "spec/models/approval_spec.rb": 1.6154824870000084,7785 "spec/models/application_setting/term_spec.rb": 1.244646406999891,7786 "spec/lib/gitlab/ci/config/entry/imageable_spec.rb": 0.6255662130001838,7787 "spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb": 2.0080576459999975,7788 "spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb": 0.8254237919998104,7789 "spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb": 0.9729791460001707,7790 "spec/graphql/resolvers/release_milestones_resolver_spec.rb": 0.9975369429998864,7791 "spec/workers/releases/create_evidence_worker_spec.rb": 2.5576751870000862,7792 "spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb": 0.6936050459999024,7793 "spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb": 1.5889229800000066,7794 "spec/graphql/types/packages/package_type_spec.rb": 0.49651171699997576,7795 "spec/tooling/lib/tooling/mappings/view_to_js_mappings_spec.rb": 1.0260624000000007,7796 "spec/helpers/environment_helper_spec.rb": 1.8876594480000222,7797 "spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb": 0.8788562059999094,7798 "spec/services/award_emojis/collect_user_emoji_service_spec.rb": 1.9786859189998722,7799 "spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb": 1.056344498000044,7800 "spec/rubocop/cop/database/disable_referential_integrity_spec.rb": 0.6302054919999591,7801 "spec/graphql/types/release_assets_input_type_spec.rb": 0.5055196660000547,7802 "spec/workers/packages/cleanup_package_file_worker_spec.rb": 1.4955939009998929,7803 "spec/serializers/trigger_variable_entity_spec.rb": 2.2273413119999077,7804 "spec/components/pajamas/component_spec.rb": 0.5924423070000557,7805 "spec/config/mail_room_spec.rb": 0.723011501999963,7806 "spec/helpers/plan_limits_helper_spec.rb": 0.7401319499999772,7807 "spec/services/dependency_proxy/auth_token_service_spec.rb": 1.096544602999984,7808 "spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb": 0.4267306639999333,7809 "spec/lib/gitlab/namespaced_session_store_spec.rb": 0.42228665499987983,7810 "spec/workers/purge_dependency_proxy_cache_worker_spec.rb": 1.0879408040000271,7811 "spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 0.9061183829999209,7812 "spec/workers/ci/parse_secure_file_metadata_worker_spec.rb": 1.138921087999961,7813 "spec/services/incident_management/timeline_event_tags/create_service_spec.rb": 2.1966034050001326,7814 "spec/initializers/forbid_sidekiq_in_transactions_spec.rb": 0.6360570020001433,7815 "spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb": 1.4852471609999611,7816 "spec/services/alert_management/metric_images/upload_service_spec.rb": 1.278835453000056,7817 "spec/services/bulk_imports/export_service_spec.rb": 1.698071518000006,7818 "spec/lib/gitlab/slash_commands/presenters/access_spec.rb": 0.9502573289998963,7819 "spec/services/achievements/revoke_service_spec.rb": 1.3720803440000964,7820 "spec/lib/gitlab/database/schema_validation/runner_spec.rb": 1.6416722040000877,7821 "spec/models/concerns/usage_statistics_spec.rb": 1.2377167080001072,7822 "spec/services/boards/visits/create_service_spec.rb": 0.9346845400000348,7823 "spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb": 1.006570432999979,7824 "spec/lib/gitlab/auth/ldap/auth_hash_spec.rb": 0.8058411330000581,7825 "spec/lib/gitlab/ci/trace/remote_checksum_spec.rb": 1.1723939850000988,7826 "spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb": 1.1779108939999787,7827 "spec/lib/gitlab/template/finders/repo_template_finders_spec.rb": 1.3150230989999727,7828 "spec/lib/gitlab/usage/metrics/instrumentations/work_items_activity_aggregated_metric_spec.rb": 0.973235405999958,7829 "spec/models/concerns/integrations/reset_secret_fields_spec.rb": 0.6615976989999126,7830 "spec/lib/gitlab/cross_project_access_spec.rb": 0.6396075919999475,7831 "spec/lib/gitlab/ci/trace/section_parser_spec.rb": 0.7780214869999327,7832 "spec/lib/gitlab/kubernetes/kubeconfig/template_spec.rb": 0.800123694000149,7833 "spec/graphql/resolvers/crm/organization_state_counts_resolver_spec.rb": 1.3974970009999197,7834 "spec/helpers/numbers_helper_spec.rb": 0.6972619850000683,7835 "spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.283028682999884,7836 "spec/workers/bulk_imports/relation_batch_export_worker_spec.rb": 0.9011219940000501,7837 "spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb": 0.7895616050000172,7838 "spec/serializers/merge_request_sidebar_extras_entity_spec.rb": 1.4714997030000632,7839 "spec/lib/gitlab/request_forgery_protection_spec.rb": 0.675460418000057,7840 "spec/services/users/respond_to_terms_service_spec.rb": 1.4604330739998659,7841 "spec/models/gpg_key_subkey_spec.rb": 0.6799400380000407,7842 "spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb": 1.3407749569998941,7843 "spec/models/concerns/case_sensitivity_spec.rb": 0.6190492739999627,7844 "spec/services/users/saved_replies/create_service_spec.rb": 0.6391857920000348,7845 "spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb": 0.8212158919998274,7846 "spec/lib/sidebars/projects/menus/wiki_menu_spec.rb": 0.6401178319999872,7847 "spec/models/integrations/pivotaltracker_spec.rb": 0.7744794469999761,7848 "spec/workers/gitlab/github_import/stage/import_repository_worker_spec.rb": 0.9103406829999585,7849 "spec/helpers/calendar_helper_spec.rb": 0.6195534139999381,7850 "spec/workers/gitlab/github_import/import_note_worker_spec.rb": 0.6735765580001498,7851 "spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb": 0.5390475619999506,7852 "spec/lib/gitlab/conan_token_spec.rb": 0.5822270279998065,7853 "spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb": 1.2652354550000382,7854 "spec/graphql/types/permission_types/base_permission_type_spec.rb": 0.4946626170001309,7855 "spec/lib/gitlab/empty_search_results_spec.rb": 0.9088570030000938,7856 "spec/lib/gitlab/config/entry/unspecified_spec.rb": 0.5602234899999985,7857 "spec/graphql/types/customer_relations/organization_type_spec.rb": 0.40668393700002525,7858 "spec/helpers/groups/settings_helper_spec.rb": 0.6240259129999686,7859 "spec/uploaders/content_type_whitelist_spec.rb": 0.6766836469998907,7860 "spec/graphql/types/packages/cleanup/policy_type_spec.rb": 0.612813714999902,7861 "spec/rubocop/cop/qa/selector_usage_spec.rb": 0.46653590100004294,7862 "spec/lib/gitlab/audit/null_target_spec.rb": 0.34881988200004344,7863 "spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb": 0.7206582539999999,7864 "spec/serializers/import/fogbugz_provider_repo_entity_spec.rb": 0.4771427789999052,7865 "spec/lib/gitlab/import_export/log_util_spec.rb": 0.48446219800007384,7866 "spec/lib/gitlab/import/errors_spec.rb": 0.7908403359999738,7867 "spec/lib/gitlab/doorkeeper_secret_storing/token/pbkdf2_sha512_spec.rb": 0.569332409000026,7868 "spec/policies/instance_metadata_policy_spec.rb": 0.7545478600000024,7869 "spec/lib/gitlab/metrics/memory_spec.rb": 0.5013740169999892,7870 "spec/lib/gitlab/git/bundle_file_spec.rb": 0.4614268599998468,7871 "spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb": 0.5227013250000709,7872 "spec/graphql/types/ci/catalog/resource_type_spec.rb": 0.5129542150000361,7873 "spec/services/metrics/sample_metrics_service_spec.rb": 0.406519426000159,7874 "spec/graphql/types/design_management/design_collection_type_spec.rb": 0.5005666769998243,7875 "spec/lib/gitlab/metrics/subscribers/action_view_spec.rb": 0.38799135799990836,7876 "spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb": 0.4832021090001035,7877 "spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb": 0.628717781999967,7878 "spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb": 0.5175007049999749,7879 "spec/lib/gitlab/database/schema_validation/validators/missing_table_columns_spec.rb": 0.3636328009999943,7880 "spec/graphql/types/packages/tag_type_spec.rb": 0.5238294040000255,7881 "spec/scripts/generate_failed_package_and_test_mr_message_spec.rb": 0.4662161900000683,7882 "spec/lib/api/helpers/common_helpers_spec.rb": 0.5369683829999303,7883 "spec/views/errors/access_denied.html.haml_spec.rb": 0.4278249250000954,7884 "spec/graphql/types/projects/base_service_type_spec.rb": 0.44655121200003123,7885 "spec/lib/serializers/unsafe_json_spec.rb": 0.48176129900002707,7886 "spec/lib/csv_builders/stream_spec.rb": 0.45709270199995444,7887 "spec/serializers/admin/user_serializer_spec.rb": 0.426343063999866,7888 "spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb": 0.38056197000014436,7889 "spec/lib/api/entities/nuget/dependency_group_spec.rb": 0.5049212559999887,7890 "spec/lib/gitlab/webpack/graphql_known_operations_spec.rb": 0.45894453100004284,7891 "spec/routing/projects/security/configuration_controller_routing_spec.rb": 0.41717032499991547,7892 "spec/graphql/types/merge_request_connection_type_spec.rb": 0.434633273000145,7893 "spec/scripts/api/create_merge_request_discussion_spec.rb": 0.40282876700007364,7894 "spec/lib/api/entities/projects/repository_storage_move_spec.rb": 0.43967179300011594,7895 "spec/graphql/types/security/report_types_enum_spec.rb": 0.4062484170001426,7896 "spec/dependencies/omniauth_saml_spec.rb": 0.3071593270001358,7897 "spec/models/concerns/runners_token_prefixable_spec.rb": 0.37836830899982497898}7899Knapsack global time execution for tests: 26m 20s7900Finished in 26 minutes 23 seconds (files took 46.34 seconds to load)79013286 examples, 0 failures7902Randomized with seed 14677903[TEST PROF INFO] Time spent in factories: 09:13.349 (34.83% of total time)7904RSpec exited with 0.7905No examples to retry, congrats!7907Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7909Uploading artifacts...7910coverage/: found 5 matching artifact files and directories 7911crystalball/: found 2 matching artifact files and directories 7912deprecations/: found 7 matching artifact files and directories 7913knapsack/: found 4 matching artifact files and directories 7914WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7915rspec/: found 15 matching artifact files and directories 7916WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7917log/*.log: found 20 matching artifact files and directories 7918WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4313143496/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7919WARNING: Retrying... context=artifacts-uploader error=request redirected7920Uploading artifacts as "archive" to coordinator... 201 Created id=4313143496 responseStatus=201 Created token=64_is57B7921Uploading artifacts...7922rspec/junit_rspec.xml: found 1 matching artifact files and directories 7923WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4313143496/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7924WARNING: Retrying... context=artifacts-uploader error=request redirected7925Uploading artifacts as "junit" to coordinator... 201 Created id=4313143496 responseStatus=201 Created token=64_is57B7927Job succeeded