rspec unit pg13 24/28
Passed Started
by
@fabiopitino
Fabio Pitino
1Running with gitlab-runner 16.1.0~beta.5.gf131a6a2 (f131a6a2)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv, system ID: s_e6befde69e263 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-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...25Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1685669487-4efc5018...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 139970, done. 31remote: Counting objects: 100% (139970/139970), done. 32remote: Compressing objects: 100% (94736/94736), done. 33remote: Total 139970 (delta 61223), reused 92025 (delta 39894), pack-reused 0 34Receiving objects: 100% (139970/139970), 123.36 MiB | 29.44 MiB/s, done.35Resolving deltas: 100% (61223/61223), done.37 * [new ref] refs/pipelines/887306308 -> refs/pipelines/88730630838Checking out 95754c79 as detached HEAD (ref is refs/merge-requests/122015/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets (4400964016)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964016 responseStatus=200 OK token=64_udSqx48Downloading artifacts for detect-tests (4400964025)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964025 responseStatus=200 OK token=64_udSqx50Downloading artifacts for retrieve-tests-metadata (4400964028)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964028 responseStatus=200 OK token=64_udSqx52Downloading artifacts for setup-test-env (4400964019)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964019 responseStatus=200 OK token=64_udSqx55Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh716Using decomposed database config (config/database.yml.decomposed-postgresql)717Geo DB won't be set up.718Embedding DB won't be set up.734$ source ./scripts/rspec_helpers.sh735$ run_timed_command "gem install knapsack --no-document"736$ gem install knapsack --no-document737Successfully installed knapsack-4.0.07381 gem installed739==> 'gem install knapsack --no-document' succeeded in 1 seconds.740$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"742$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"747$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"748$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"749SKIP_FLAKY_TESTS_AUTOMATICALLY: 750RETRY_FAILED_TESTS_IN_NEW_PROCESS: true751KNAPSACK_GENERATE_REPORT: true752FLAKY_RSPEC_GENERATE_REPORT: true753KNAPSACK_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.rb754KNAPSACK_LOG_LEVEL: debug755KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_24_28_report.json756FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json757FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_24_28_report.json758NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_24_28_report.json759SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13_24_28.txt760CRYSTALBALL: 761RSPEC_TESTS_MAPPING_ENABLED: 762RSPEC_TESTS_FILTER_FILE: 763Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-4400964251.json --format RspecJunitFormatter --out rspec/rspec-4400964251.xml --tag ~quarantine --tag ~level:background_migration -- spec/services/merge_requests/refresh_service_spec.rb spec/models/note_spec.rb spec/services/todos/destroy/entity_leave_service_spec.rb spec/services/projects/import_service_spec.rb spec/models/event_spec.rb spec/models/concerns/deployment_platform_spec.rb spec/services/auto_merge/base_service_spec.rb spec/lib/object_storage/direct_upload_spec.rb spec/lib/gitlab/background_migration/backfill_issue_search_data_spec.rb spec/services/git/wiki_push_service_spec.rb spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb spec/models/protected_branch_spec.rb spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb spec/graphql/mutations/merge_requests/set_locked_spec.rb spec/lib/gitlab/cleanup/project_uploads_spec.rb spec/models/concerns/counter_attribute_spec.rb spec/models/draft_note_spec.rb spec/models/integrations/bamboo_spec.rb spec/services/work_items/create_service_spec.rb spec/lib/gitlab/database/postgres_foreign_key_spec.rb spec/services/work_items/parent_links/create_service_spec.rb spec/services/projects/hashed_storage/rollback_repository_service_spec.rb spec/helpers/emails_helper_spec.rb spec/lib/gitlab/utils/markdown_spec.rb spec/services/clusters/update_service_spec.rb spec/services/projects/autocomplete_service_spec.rb spec/lib/gitlab/redis/repository_cache_spec.rb spec/finders/cluster_ancestors_finder_spec.rb spec/lib/extracts_path_spec.rb spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb spec/lib/bulk_imports/clients/http_spec.rb spec/lib/gitlab/prometheus_client_spec.rb spec/services/admin/set_feature_flag_service_spec.rb spec/models/integrations/pipelines_email_spec.rb spec/scripts/trigger-build_spec.rb spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb spec/lib/gitlab/background_migration/backfill_code_suggestions_namespace_settings_spec.rb spec/services/projects/update_remote_mirror_service_spec.rb spec/finders/fork_projects_finder_spec.rb spec/lib/banzai/filter/references/design_reference_filter_spec.rb spec/lib/gitlab/gitaly_client/blob_service_spec.rb spec/workers/new_merge_request_worker_spec.rb spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb spec/lib/gitlab/popen_spec.rb spec/lib/gitlab/database/transaction/context_spec.rb spec/workers/ci/initial_pipeline_process_worker_spec.rb spec/workers/pipeline_metrics_worker_spec.rb spec/lib/gitlab/legacy_github_import/project_creator_spec.rb spec/rubocop/cop/rspec/misspelled_aggregate_failures_spec.rb spec/lib/gitlab/object_hierarchy_spec.rb spec/models/ci/resource_group_spec.rb spec/lib/gitlab/ci/config/entry/policy_spec.rb spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb spec/services/quick_actions/target_service_spec.rb spec/lib/gitlab/ci/project_config_spec.rb spec/helpers/wiki_helper_spec.rb spec/services/ci/create_pipeline_service/cache_spec.rb spec/lib/gitlab/mail_room/mail_room_spec.rb spec/lib/gitlab/background_migration/set_correct_vulnerability_state_spec.rb spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb spec/graphql/mutations/issues/set_due_date_spec.rb spec/lib/gitlab/visibility_level_spec.rb spec/lib/gitlab/git/cross_repo_spec.rb spec/tasks/gitlab/pages_rake_spec.rb spec/lib/gitlab/performance_bar_spec.rb spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb spec/tasks/dev_rake_spec.rb spec/services/clusters/agent_tokens/revoke_service_spec.rb spec/lib/sidebars/projects/super_sidebar_panel_spec.rb spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb spec/services/error_tracking/collect_error_service_spec.rb spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb spec/services/spam/akismet_service_spec.rb spec/tasks/gitlab/update_templates_rake_spec.rb spec/graphql/resolvers/design_management/version/designs_at_version_resolver_spec.rb spec/services/web_hooks/destroy_service_spec.rb spec/graphql/types/base_object_spec.rb spec/lib/grafana/time_window_spec.rb spec/models/performance_monitoring/prometheus_dashboard_spec.rb spec/components/diffs/stats_component_spec.rb spec/workers/ssh_keys/expired_notification_worker_spec.rb spec/workers/deployments/hooks_worker_spec.rb spec/helpers/namespaces_helper_spec.rb spec/services/suggestions/outdate_service_spec.rb spec/lib/gitlab/i18n/translation_entry_spec.rb spec/services/users/create_service_spec.rb spec/lib/gitlab/ci/badge/pipeline/template_spec.rb spec/presenters/label_presenter_spec.rb spec/finders/namespaces/projects_finder_spec.rb spec/lib/bitbucket_server/representation/activity_spec.rb spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb spec/lib/gitlab/ci/pipeline/seed/processable/resource_group_spec.rb spec/models/work_items/widgets/award_emoji_spec.rb spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb spec/tasks/gitlab/db/migration_fix_15_11_rake_spec.rb spec/policies/incident_management/timeline_event_policy_spec.rb spec/models/diff_note_position_spec.rb spec/models/concerns/stepable_spec.rb spec/models/ci/unit_test_spec.rb spec/workers/ci/test_failure_history_worker_spec.rb spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb spec/finders/merge_requests/by_approvals_finder_spec.rb spec/services/bulk_imports/batched_relation_export_service_spec.rb spec/lib/gitlab/config/entry/composable_hash_spec.rb spec/services/ci/create_pipeline_service/custom_config_content_spec.rb spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb spec/models/concerns/encrypted_user_password_spec.rb spec/finders/prometheus_metrics_finder_spec.rb spec/services/packages/generic/create_package_file_service_spec.rb spec/lib/gitlab/markup_helper_spec.rb spec/rubocop/cop/graphql/authorize_types_spec.rb spec/graphql/mutations/customer_relations/contacts/update_spec.rb spec/lib/gitlab/ci/templates/Jobs/sast_iac_gitlab_ci_yaml_spec.rb spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb spec/graphql/types/container_repository_type_spec.rb spec/graphql/resolvers/merge_request_pipelines_resolver_spec.rb spec/lib/gitlab/ci/runner/metrics_spec.rb spec/lib/banzai/pipeline/post_process_pipeline_spec.rb spec/lib/bulk_imports/pipeline/context_spec.rb spec/services/clusters/agents/delete_service_spec.rb spec/models/work_items/widget_definition_spec.rb spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb spec/serializers/import/provider_repo_serializer_spec.rb spec/policies/deploy_token_policy_spec.rb spec/models/preloaders/project_policy_preloader_spec.rb spec/models/wiki_directory_spec.rb spec/services/boards/visits/create_service_spec.rb spec/policies/system_hook_policy_spec.rb spec/lib/release_highlights/validator/entry_spec.rb spec/lib/gitlab/github_import/bulk_importing_spec.rb spec/services/google_cloud/service_accounts_service_spec.rb spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb spec/services/pages/delete_service_spec.rb spec/lib/gitlab/import/merge_request_creator_spec.rb spec/services/groups/update_statistics_service_spec.rb spec/lib/gitlab/git_post_receive_spec.rb spec/initializers/1_acts_as_taggable_spec.rb spec/lib/api/entities/ci/job_request/image_spec.rb spec/validators/color_validator_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb spec/serializers/test_report_entity_spec.rb spec/models/concerns/file_store_mounter_spec.rb spec/helpers/container_expiration_policies_helper_spec.rb spec/models/concerns/clusters/agents/authorizations/user_access/scopes_spec.rb spec/graphql/resolvers/terraform/states_resolver_spec.rb spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb spec/helpers/admin/abuse_reports_helper_spec.rb spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb spec/finders/ci/auth_job_finder_spec.rb spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb spec/workers/jira_connect/sync_merge_request_worker_spec.rb spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb spec/models/aws/role_spec.rb spec/services/ci/pipeline_schedules/take_ownership_service_spec.rb spec/lib/gitlab/polling_interval_spec.rb spec/workers/gitlab_service_ping_worker_spec.rb spec/lib/api/helpers/common_helpers_spec.rb spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb spec/rubocop/cop/rspec/missing_feature_category_spec.rb spec/views/projects/hooks/edit.html.haml_spec.rb spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb spec/workers/ssh_keys/expiring_soon_notification_worker_spec.rb spec/serializers/ci/codequality_mr_diff_entity_spec.rb spec/lib/gitlab/ci/config/entry/inherit/variables_spec.rb spec/services/notes/render_service_spec.rb spec/services/jira_connect/create_asymmetric_jwt_service_spec.rb spec/services/work_items/widgets/labels_service/update_service_spec.rb spec/models/users/group_callout_spec.rb spec/workers/ci/daily_build_group_report_results_worker_spec.rb spec/lib/gitlab/ci/trace/section_parser_spec.rb spec/workers/gitlab_shell_worker_spec.rb spec/lib/gitlab/sidekiq_middleware_spec.rb spec/serializers/evidences/milestone_entity_spec.rb spec/workers/update_merge_requests_worker_spec.rb spec/lib/gitlab/conan_token_spec.rb spec/lib/system_check/app/authorized_keys_permission_check_spec.rb spec/graphql/mutations/saved_replies/create_spec.rb spec/lib/gitlab/seeders/ci/variables_instance_seeder_spec.rb spec/services/google_cloud/get_cloudsql_instances_service_spec.rb spec/rubocop/cop/performance/ar_count_each_spec.rb spec/services/clusters/agents/create_activity_event_service_spec.rb spec/models/packages/helm/file_metadatum_spec.rb spec/lib/gitlab/email/service_desk_receiver_spec.rb spec/finders/packages/composer/packages_finder_spec.rb spec/lib/api/entities/application_setting_spec.rb spec/lib/gitlab/throttle_spec.rb spec/lib/bulk_imports/groups/pipelines/group_attributes_pipeline_spec.rb spec/workers/upload_checksum_worker_spec.rb spec/services/integrations/slack_option_service_spec.rb spec/models/ci/pipeline_metadata_spec.rb spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb spec/lib/gitlab/metrics/loose_foreign_keys_slis_spec.rb spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb spec/graphql/types/group_invitation_type_spec.rb spec/models/work_items/widgets/base_spec.rb spec/models/projects/import_export/relation_export_upload_spec.rb spec/models/ml/experiment_metadata_spec.rb spec/services/emails/destroy_service_spec.rb spec/models/concerns/web_hooks/has_web_hooks_spec.rb spec/helpers/ci/triggers_helper_spec.rb spec/serializers/integrations/project_entity_spec.rb spec/lib/microsoft_teams/notifier_spec.rb spec/lib/gitlab/metrics/dashboard/validator/client_spec.rb spec/graphql/types/ci/freeze_period_type_spec.rb spec/workers/ci/stuck_builds/drop_scheduled_worker_spec.rb spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb spec/lib/api/entities/clusters/agent_spec.rb spec/lib/gitlab/logging/cloudflare_helper_spec.rb spec/lib/gitlab/checks/timed_logger_spec.rb spec/lib/api/validations/validators/absence_spec.rb spec/workers/packages/composer/cache_cleanup_worker_spec.rb spec/lib/serializers/unsafe_json_spec.rb spec/serializers/import/github_realtime_repo_entity_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/cert_based_clusters_ff_metric_spec.rb spec/lib/gitlab/git/patches/patch_spec.rb spec/graphql/types/detployment_tag_type_spec.rb spec/graphql/types/visibility_pipeline_id_type_enum_spec.rb spec/rubocop/cop/gitlab/bulk_insert_spec.rb spec/lib/gitlab/ci/interpolation/context_spec.rb spec/validators/rsa_key_validator_spec.rb spec/graphql/types/projects/branch_rule_type_spec.rb spec/workers/todos_destroyer/confidential_issue_worker_spec.rb spec/initializers/session_store_spec.rb spec/workers/partition_creation_worker_spec.rb spec/lib/bitbucket/collection_spec.rb spec/lib/gitlab/api_authentication/token_type_builder_spec.rb spec/graphql/types/dependency_proxy/blob_type_spec.rb spec/serializers/ci/variable_entity_spec.rb spec/graphql/types/ci/variable_input_type_spec.rb spec/lib/gitlab/puma_logging/json_formatter_spec.rb spec/views/help/drawers.html.haml_spec.rb spec/lib/bitbucket/representation/user_spec.rbKnapsack report generator started!764warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.766/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN767/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here768/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION769/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here770/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE771/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here772/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS773/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here774Run options: exclude {:quarantine=>true, :level=>"background_migration"}775Test environment set up in 1.192924008 seconds776MergeRequests::RefreshService777 #execute778 push to origin repo source branch779 executes hooks with update action780 triggers mergeRequestMergeStatusUpdated GraphQL subscription conditionally781 reloads source branch MRs memoization782 outdates MR suggestions783 calls the merge request activity counter784 query count785 does not execute a lot of queries786 when a merge error exists787 clears merge errors when pushing to the source branch788 does not clear merge errors when pushing to the target branch789 when source branch ref does not exists790 closes MRs without source branch ref791 does not change the merge request diff792 when pipeline exists for the source branch793 updates the head_pipeline_id for @merge_request794 does not update the head_pipeline_id for @fork_merge_request795 Pipelines for merge requests796 when .gitlab-ci.yml has merge_requests keywords797 create detached merge request pipeline with commits798 does not create detached merge request pipeline for forked project799 create detached merge request pipeline for non-fork merge request800 when "push_options: nil" is passed801 creates a detached merge request pipeline with commits802 when ci.skip push_options are passed803 creates a skipped detached merge request pipeline with commits804 when service is hooked by target branch805 does not create detached merge request pipeline806 when service runs on forked project807 creates detached merge request pipeline for fork merge request808 when branch pipeline was created before a detaced merge request pipeline has been created809 sets the latest detached merge request pipeline as a head pipeline810 returns pipelines in correct order811 when MergeRequestUpdateWorker is retried by an exception812 does not re-create a duplicate detached merge request pipeline813 when the pipeline should be skipped814 saves a skipped detached merge request pipeline815 when .gitlab-ci.yml does not have merge_requests keywords816 does not create a detached merge request pipeline817 when .gitlab-ci.yml is invalid818 persists a pipeline with config error819 when .gitlab-ci.yml file is valid but has a logical error820 persists a pipeline with config error821 push to origin repo source branch822 executes hooks with update action823 push to origin repo target branch824 when all MRs to the target branch had diffs825 updates the merge state826 when an MR to be closed was empty already827 only updates the non-empty MRs828 manual merge of source branch829 updates the merge state830 push to fork repo source branch831 open fork merge request832 calls MergeRequests::LinkLfsObjectsService#execute833 executes hooks with update action834 outdates opened forked MR suggestions835 closed fork merge request836 do not execute hooks with update action837 updates merge request to closed state838 push to fork repo target branch839 changes to merge requests840 updates the merge request state841 merge request diff842 does not reload the diff of the merge request made from fork843 forked projects with the same source branch name as target branch844 reloads a new diff for a push to the forked project845 reloads a new diff for a force push to the source branch846 reloads a new diff for a force push to the target branch847 reloads a new diff for a push to the target project that contains a commit in the MR848 does not increase the diff count for a new push to target branch849 push to origin repo target branch after fork project was removed850 updates the merge request state851 push new branch that exists in a merge request852 refreshes the merge request853 merge request metrics854 when the merge request is sourced from the same project855 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit856 when the merge request is sourced from a different project857 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit858 marking the merge request as draft859 marks the merge request as draft from fixup commits860 references the commit that caused the draft status861 does not mark as draft based on commits that do not belong to an MR862 updating merge_commit863 feature enabled864 updates merge requests' merge_commits865 #abort_ff_merge_requests_with_when_pipeline_succeeds866 when Project#merge_method is set to FF867 behaves like aborted merge requests for MWPS868 aborts auto_merge869 removes merge_user870 does not add todos for merge user871 adds todos for merge author872 with forked project873 behaves like aborted merge requests for MWPS874 aborts auto_merge875 removes merge_user876 does not add todos for merge user877 adds todos for merge author878 with bogus auto merge strategy879 behaves like maintained merge requests for MWPS880 does not cancel auto merge881 does not change merge_user882 does not add todos883 when Project#merge_method is set to rebase_merge884 behaves like aborted merge requests for MWPS885 aborts auto_merge886 removes merge_user887 does not add todos for merge user888 adds todos for merge author889 with forked project890 behaves like aborted merge requests for MWPS891 aborts auto_merge892 removes merge_user893 does not add todos for merge user894 adds todos for merge author895 when Project#merge_method is set to merge896 behaves like maintained merge requests for MWPS897 does not cancel auto merge898 does not change merge_user899 does not add todos900 with forked project901 behaves like maintained merge requests for MWPS902 does not cancel auto merge903 does not change merge_user904 does not add todos905Note906 associations907 is expected to belong to project required: false908 is expected to belong to noteable required: false909 is expected to belong to author class_name => User required: false910 is expected to have many todos911 is expected to have one note_metadata class_name => Notes::NoteMetadata inverse_of => note912 is expected to belong to review required: false inverse_of => notes913 modules914 is expected to includes the Participable module915 is expected to includes the Mentionable module916 is expected to includes the Awardable module917 is expected to includes the Sortable module918 default values919 is expected not to be system920 validation921 is expected to validate that the length of :note is at most 1000000922 is expected to validate that :note cannot be empty/falsy923 is expected to validate that :project cannot be empty/falsy924 when note is on commit925 is expected to validate that :commit_id cannot be empty/falsy926 is expected not to validate that :noteable_id cannot be empty/falsy927 when note is not on commit928 is expected not to validate that :commit_id cannot be empty/falsy929 is expected to validate that :noteable_id cannot be empty/falsy930 when noteable and note project differ931 is expected to be invalid932 when noteable and note project are the same933 is expected to be valid934 when project is missing for a project related note935 is expected to be invalid936 when noteable is a personal snippet937 is valid without project938 max notes limit939 when creating a system note940 is expected to be valid941 when creating a user note942 is expected not to be valid943 when updating an existing note on a noteable that already exceeds the limit944 is expected to be valid945 created_at in the past946 when creating a note not too much in the past947 is expected to be valid948 when creating a note too much in the past949 is expected not to be valid950 confidentiality951 for existing public note952 is not possible to change the note to confidential953 is possible to change confidentiality from nil to false954 for existing confidential note955 is not possible to change the note to public956 for a new note957 allows to create a confidential note for an issue958 when noteable is not allowed to have confidential notes959 can not be set confidential960 when note type is not allowed to be confidential961 can not be set confidential962 when the note is a discussion note963 is expected to be valid964 when replying to a note965 when the note is reply to a confidential note966 is expected to be valid967 when the note is reply to a public note968 can not be set confidential969 when reply note is public but discussion is confidential970 can not be set confidential971 callbacks972 #keep_around_commit973 calls #keep_around_commit normally974 skips #keep_around_commit if 'skip_keep_around_commits' is true975 skips #keep_around_commit if 'importing' is true976 #notify_after_create977 calls #after_note_created on the noteable978 #notify_after_destroy979 calls #after_note_destroyed on the noteable980 does not error if noteable is nil981 sets internal flag982 when confidential is `true`983 is expected to equal true984 when confidential is `false`985 is expected to equal false986 when confidential is `nil`987 is expected to equal false988 Commit notes989 is accessible through #noteable990 saves a valid note991 is recognized by #for_commit?992 keeps the commit around993 does not generate N+1 queries for participants994 authorization995 read996 is expected to be falsey997 is expected to be truthy998 is expected to be falsey999 write1000 is expected to be falsey1001 is expected to be truthy1002 is expected to be falsey1003 admin1004 is expected to be falsey1005 is expected to be truthy1006 is expected to be falsey1007 behaves like an editable mentionable1008 creates new cross-reference notes when the mentionable text is edited1009 behaves like a mentionable1010 generates a descriptive back-reference1011 extracts references from its reference property1012 creates cross-reference notes1013 when there are cached markdown fields1014 sends in cached markdown fields when appropriate1015 when there are cached markdown fields1016 refreshes markdown cache if necessary1017 when the markdown cache is stale1018 persists the refreshed cache so that it does not have to be refreshed every time1019 #all_references1020 reads the rendered note body from the cache1021 editable?1022 returns true1023 returns false1024 noteable_author?1025 when note is on commit1026 if user is the noteable author1027 returns true1028 if user is not the noteable author1029 returns false1030 when note is on issue1031 if user is the noteable author1032 returns true1033 if user is not the noteable author1034 returns false1035 last_edited_at1036 with last_edited_at1037 returns last_edited_at1038 without last_edited_at1039 returns updated_at1040 edited?1041 with updated_by1042 returns true1043 without updated_by1044 returns false1045 #confidential?1046 when note is not confidential1047 is false when a noteable is not confidential1048 is false when noteable can't be confidential1049 when include_noteable is set to true1050 is true when a noteable is confidential1051 when include_noteable is not set to true1052 is false when a noteable is confidential1053 when note is confidential1054 is true even when a noteable is not confidential1055 #system_note_visible_for?1056 when project is public1057 behaves like users with note access1058 returns true1059 when group is private1060 returns visible but not readable for non-member user1061 returns visible but not readable for a nil user1062 behaves like users with note access1063 returns true1064 #system_note_viewable_by?(user)1065 when system_note_metadata is not present1066 returns true1067 system_note_metadata isn't of type 'branch' or 'contact'1068 returns true1069 system_note_metadata is of type 'branch'1070 user doesn't have :download_code ability1071 returns false1072 user has the :download_code ability1073 returns true1074 system_note_metadata is of type 'contact'1075 user doesn't have :read_crm_contact ability1076 returns false1077 user has the :read_crm_contact ability1078 returns true1079 system_note_visible_for?1080 when there is one reference in note1081 behaves like checks references1082 returns false1083 returns true1084 returns true if user visible reference count set1085 returns false if user visible reference count set but does not match total reference count1086 returns false if ref count is 01087 when there is a reference to a label1088 behaves like checks references1089 returns false1090 returns true1091 returns true if user visible reference count set1092 returns false if user visible reference count set but does not match total reference count1093 returns false if ref count is 01094 when there are two references in note1095 behaves like checks references1096 returns false1097 returns true1098 returns true if user visible reference count set1099 returns false if user visible reference count set but does not match total reference count1100 returns false if ref count is 01101 when there is a private issue and user reference1102 behaves like checks references1103 returns false1104 returns true1105 returns true if user visible reference count set1106 returns false if user visible reference count set but does not match total reference count1107 returns false if ref count is 01108 when there is a publicly visible user reference1109 returns true for other users1110 returns true for anonymous users1111 #system_note_with_references?1112 falsey for user-generated notes1113 when the note might contain cross references1114 with commit1115 delegates to the cross-reference regex1116 with cross_reference1117 delegates to the cross-reference regex1118 with closed1119 delegates to the cross-reference regex1120 with duplicate1121 delegates to the cross-reference regex1122 with moved1123 delegates to the cross-reference regex1124 with merge1125 delegates to the cross-reference regex1126 with label1127 delegates to the cross-reference regex1128 with milestone1129 delegates to the cross-reference regex1130 with relate1131 delegates to the cross-reference regex1132 with unrelate1133 delegates to the cross-reference regex1134 with cloned1135 delegates to the cross-reference regex1136 with epic_issue_added1137 delegates to the cross-reference regex1138 with issue_added_to_epic1139 delegates to the cross-reference regex1140 with epic_issue_removed1141 delegates to the cross-reference regex1142 with issue_removed_from_epic1143 delegates to the cross-reference regex1144 with epic_issue_moved1145 delegates to the cross-reference regex1146 with issue_changed_epic1147 delegates to the cross-reference regex1148 with relate_epic1149 delegates to the cross-reference regex1150 with unrelate_epic1151 delegates to the cross-reference regex1152 with iteration1153 delegates to the cross-reference regex1154 when the note cannot contain cross references1155 scan for a `mentioned in` prefix1156 when system note metadata is not present1157 delegates to the system note service1158 with a system note1159 with :label action1160 is expected to be falsy1161 behaves like system_note_metadata includes note action1162 delegates to the cross-reference regex1163 with cross reference label note1164 is expected to be truthy1165 with :milestone action1166 is expected to be falsy1167 behaves like system_note_metadata includes note action1168 delegates to the cross-reference regex1169 with cross reference milestone note1170 is expected to be truthy1171 clear_blank_line_code!1172 clears a blank line code before validation1173 #participants1174 includes the note author1175 #start_of_discussion?1176 returns true when note is the start of a discussion1177 returns false when note is a reply1178 .find_discussion1179 returns a discussion with multiple notes1180 .grouped_diff_discussions1181 active diff discussions1182 includes active discussions1183 doesn't include outdated discussions1184 groups the discussions by line code1185 with image discussions1186 groups image discussions by file identifier1187 groups text discussions by line code1188 diff discussions for older diff refs1189 for diff refs a discussion was created at1190 includes discussions that were created then1191 groups the discussions by original line code1192 for diff refs a discussion was last active at1193 includes discussions that were last active1194 groups the discussions by line code1195 .simple_sorts1196 does not contain name sorts1197 .cherry_picked_merge_requests1198 returns merge requests that match the given merge commit1199 #for_work_item?1200 returns true for a work item1201 returns false for an issue1202 #for_project_snippet?1203 returns true for a project snippet note1204 returns false for a personal snippet note1205 #for_personal_snippet?1206 returns false for a project snippet note1207 returns true for a personal snippet note1208 #for_design1209 is true when the noteable is a design1210 #to_ability_name1211 returns note1212 #noteable_ability_name1213 returns snippet for a project snippet note1214 returns snippet for a personal snippet note1215 returns merge_request for an MR note1216 returns issue for an issue note1217 returns commit for a commit note1218 returns alert_management_alert for an alert note1219 #cache_markdown_field1220 note for a project snippet1221 skips project check1222 note for a personal snippet1223 does not skip project check1224 #can_be_discussion_note?1225 for a note on a merge request1226 returns true1227 for a note on an issue1228 returns true1229 for a note on a commit1230 returns true1231 for a note on a snippet1232 returns true1233 for a diff note on merge request1234 returns false1235 for a diff note on commit1236 returns false1237 for a discussion note1238 returns false1239 #discussion_class1240 when the note is displayed out of context1241 returns OutOfContextDiscussion1242 when the note is displayed in the original context1243 returns IndividualNoteDiscussion1244 #discussion_id1245 when it is newly created1246 has a discussion id1247 when it didn't store a discussion id before1248 has a discussion id1249 when the note is displayed out of context1250 overrides the discussion id1251 #to_discussion1252 returns a discussion with just this note1253 #discussion1254 when the note is part of a discussion1255 returns the discussion this note is in1256 when the note is not part of a discussion1257 returns a discussion with just this note1258 #part_of_discussion?1259 for a regular note1260 returns false1261 for a diff note1262 returns true1263 for a discussion note1264 returns true1265 #in_reply_to?1266 for a note1267 when part of a discussion1268 checks if the note is in reply to the other discussion1269 when not part of a discussion1270 checks if the note is in reply to the other noteable1271 for a discussion1272 when part of the same discussion1273 returns true1274 when not part of the same discussion1275 returns false1276 for a noteable1277 when a comment on the same noteable1278 returns true1279 when not a comment on the same noteable1280 returns false1281 #references1282 when part of a discussion1283 references all earlier notes in the discussion1284 when not part of a discussion1285 returns the noteable1286 expiring ETag cache1287 expires cache for note's issue when note is saved1288 expires cache for note's issue when note is destroyed1289 when issuable etag caching is disabled1290 does not store cache key1291 for merge requests1292 when adding a note to the MR1293 expires the MR note etag cache1294 when adding a note to a commit on the MR1295 expires the MR note etag cache1296 #with_notes_filter1297 when notes filter is nil1298 is expected to include #<Note id: 313, note: [FILTERED], noteable_type: "Issue", author_id: 283, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 314, note: [FILTERED], noteable_type: "Issue", author_id: 284, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1299 when notes filter is set to all notes1300 is expected to include #<Note id: 315, note: [FILTERED], noteable_type: "Issue", author_id: 285, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 316, note: [FILTERED], noteable_type: "Issue", author_id: 286, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1301 when notes filter is set to only comments1302 is expected to include #<Note id: 317, note: [FILTERED], noteable_type: "Issue", author_id: 287, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1303 is expected not to include #<Note id: 320, note: [FILTERED], noteable_type: "Issue", author_id: 290, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1304 #parent1305 returns project for project notes1306 returns nil for personal snippet note1307 scopes1308 .for_note_or_capitalized_note1309 returns the expected matching note1310 returns the expected capitalized note1311 does not support pattern matching1312 .like_note_or_capitalized_note1313 returns the expected matching note1314 returns the expected capitalized note1315 supports pattern matching1316 .with_suggestions1317 returns the correct note1318 .inc_relations_for_view1319 when noteable can not have diffs1320 does not include additional associations1321 when noteable is not set1322 includes additional diff associations1323 when noteable can have diffs1324 includes additional diff associations1325 .without_hidden1326 when a note with a banned author exists1327 when the :hidden_notes feature is disabled1328 is expected to include #<Note id: 330, note: [FILTERED], noteable_type: "Issue", author_id: 301, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 323, note: [FILTERED], noteable_type: "Issue", author_id: 294, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1329 when the :hidden_notes feature is enabled1330 is expected not to include #<Note id: 330, note: [FILTERED], noteable_type: "Issue", author_id: 301, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1331 is expected to include #<Note id: 323, note: [FILTERED], noteable_type: "Issue", author_id: 294, created_at: "2023-06-02 06:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1332 banzai_render_context1333 when noteable is a merge request1334 sets the label_url_method in the context1335 when noteable is an issue1336 sets the label_url_method in the context1337 when noteable is a personal snippet1338 sets the parent user in the context1339 #parent_user1340 returns the author of a personal snippet1341 returns nil for project snippet1342 returns nil when noteable is not a snippet1343 #skip_notification?1344 when there is no review1345 is expected to be falsey1346 when the review exists1347 is expected to be truthy1348 #attachment1349 is cleaned up correctly when project is destroyed1350 #post_processed_cache_key1351 returns cache key and author cache key by default1352 when note has no author1353 returns cache key only1354 when note has redacted_note_html1355 returns cache key with redacted_note_html sha1356 #commands_changes1357 only returns allowed keys1358 #bump_updated_at1359 sets updated_at to the current timestamp1360 with legacy edited note1361 copies updated_at to last_edited_at before bumping the timestamp1362 #note1363 behaves like note that replaces task for checklist item in body text1364 when note is not a system note1365 is expected to eq "marked the task **task 1** as completed"1366 when note is a system note1367 when note noteable_type is not Issue1368 is expected to eq "marked the task **task 1** as completed"1369 when note noteable_type is Issue1370 is expected to eq "marked the checklist item **task 1** as completed"1371 context when note and cache are null (happens in bulk insert)1372 is expected to be in [nil, ""]1373 behaves like note that replaces task for checklist item in body text1374 when note is not a system note1375 is expected to eq "marked the task **task 1** as incomplete"1376 when note is a system note1377 when note noteable_type is not Issue1378 is expected to eq "marked the task **task 1** as incomplete"1379 when note noteable_type is Issue1380 is expected to eq "marked the checklist item **task 1** as incomplete"1381 context when note and cache are null (happens in bulk insert)1382 is expected to be in [nil, ""]1383 #note_html1384 behaves like note that replaces task for checklist item in body text1385 when note is not a system note1386 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"1387 when note is a system note1388 when note noteable_type is not Issue1389 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"1390 when note noteable_type is Issue1391 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as completed</p>"1392 context when note and cache are null (happens in bulk insert)1393 is expected to be in [nil, ""]1394 behaves like note that replaces task for checklist item in body text1395 when note is not a system note1396 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"1397 when note is a system note1398 when note noteable_type is not Issue1399 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"1400 when note noteable_type is Issue1401 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as incomplete</p>"1402 context when note and cache are null (happens in bulk insert)1403 is expected to be in [nil, ""]1404 #issuable_ability_name1405 when not confidential note1406 is expected to eq :read_note1407 when confidential note1408 is expected to eq :read_internal_note1409 #exportable_record?1410 when not a system note1411 is expected to be truthy1412 with system note1413 returns `false` when the user cannot read the note1414 when user can read the note1415 is expected to be truthy1416Todos::Destroy::EntityLeaveService1417 #execute1418 updating a Project1419 when project is private1420 when user is not a member of the project1421 removes project todos for the provided user1422 access permissions1423 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1424 behaves like using different access permissions1425 is expected not to change `Todo.count`1426 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1427 behaves like using different access permissions1428 is expected to contain exactly #<Todo id: 132, user_id: 325, project_id: 271, target_id: 122, target_type: "Issue", author_id: 328, ...-02 06:32:29.117294228 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 129, user_id: 325, project_id: 280, target_id: 120, target_type: "Issue", author_id: 337, ...-02 06:32:27.988885718 +0000", commit_id: nil, group_id: 698, resolved_by_action: nil, note_id: nil>1429 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1430 behaves like using different access permissions1431 is expected not to change `Todo.count`1432 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1433 behaves like using different access permissions1434 is expected to contain exactly #<Todo id: 146, user_id: 325, project_id: 271, target_id: 130, target_type: "Issue", author_id: 328, ...-02 06:32:34.029257845 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 143, user_id: 325, project_id: 288, target_id: 128, target_type: "Issue", author_id: 345, ...-02 06:32:32.936066518 +0000", commit_id: nil, group_id: 698, resolved_by_action: nil, note_id: nil>1435 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1436 behaves like using different access permissions1437 is expected not to change `Todo.count`1438 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1439 behaves like using different access permissions1440 is expected to contain exactly #<Todo id: 160, user_id: 325, project_id: 271, target_id: 138, target_type: "Issue", author_id: 328, ...-02 06:32:39.078312346 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 157, user_id: 325, project_id: 296, target_id: 136, target_type: "Issue", author_id: 353, ...-02 06:32:37.885284448 +0000", commit_id: nil, group_id: 698, resolved_by_action: nil, note_id: nil>1441 when project is private in an internal/public group1442 when user is not a member of the project1443 removes project todos for the provided user1444 access permissions1445 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1446 behaves like using different access permissions1447 is expected not to change `Todo.count`1448 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1449 behaves like using different access permissions1450 is expected to contain exactly #<Todo id: 181, user_id: 325, project_id: 300, target_id: 150, target_type: "Issue", author_id: 358, ...-02 06:32:47.346491468 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 178, user_id: 325, project_id: 309, target_id: 148, target_type: "Issue", author_id: 367, ...-02 06:32:46.124414015 +0000", commit_id: nil, group_id: 758, resolved_by_action: nil, note_id: nil>1451 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1452 behaves like using different access permissions1453 is expected not to change `Todo.count`1454 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1455 behaves like using different access permissions1456 is expected to contain exactly #<Todo id: 195, user_id: 325, project_id: 300, target_id: 158, target_type: "Issue", author_id: 358, ...-02 06:32:52.330835961 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 192, user_id: 325, project_id: 317, target_id: 156, target_type: "Issue", author_id: 375, ...-02 06:32:51.181874215 +0000", commit_id: nil, group_id: 758, resolved_by_action: nil, note_id: nil>1457 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1458 behaves like using different access permissions1459 is expected not to change `Todo.count`1460 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1461 behaves like using different access permissions1462 is expected to contain exactly #<Todo id: 209, user_id: 325, project_id: 300, target_id: 166, target_type: "Issue", author_id: 358, ...-02 06:32:57.412176836 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 206, user_id: 325, project_id: 325, target_id: 164, target_type: "Issue", author_id: 383, ...-02 06:32:56.162090419 +0000", commit_id: nil, group_id: 758, resolved_by_action: nil, note_id: nil>1463 when project is not private1464 enqueues the PrivateFeaturesWorker1465 confidential issues1466 when a user is not an author of confidential issue1467 behaves like removes confidential issues and internal notes todos1468 is expected to change `Todo.count` from 7 to 51469 when a user is an author of confidential issue1470 behaves like removes only internal notes todos1471 is expected to change `Todo.count` from 7 to 61472 when a user is an assignee of confidential issue1473 behaves like removes only internal notes todos1474 is expected to change `Todo.count` from 7 to 61475 access permissions1476 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1477 behaves like using different access permissions1478 is expected not to change `Todo.count`1479 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1480 behaves like using different access permissions1481 is expected to change `Todo.count` from 7 to 51482 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1483 behaves like using different access permissions1484 is expected not to change `Todo.count`1485 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1486 behaves like using different access permissions1487 is expected to change `Todo.count` from 7 to 51488 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1489 behaves like using different access permissions1490 is expected not to change `Todo.count`1491 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1492 behaves like using different access permissions1493 is expected to change `Todo.count` from 7 to 51494 feature visibility check1495 when issues are visible only to project members1496 removes only users issue todos1497 updating a Group1498 when group is private1499 when a user leaves a group1500 removes group and subproject todos for the user1501 access permissions1502 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1503 behaves like using different access permissions1504 is expected not to change `Todo.count`1505 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1506 behaves like using different access permissions1507 is expected to contain exactly #<Todo id: 307, user_id: 325, project_id: 271, target_id: 222, target_type: "Issue", author_id: 328, ...-02 06:33:40.687944057 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 304, user_id: 325, project_id: 392, target_id: 220, target_type: "Issue", author_id: 461, ...-02 06:33:39.052410571 +0000", commit_id: nil, group_id: 698, resolved_by_action: nil, note_id: nil>1508 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1509 behaves like using different access permissions1510 is expected not to change `Todo.count`1511 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1512 behaves like using different access permissions1513 is expected to contain exactly #<Todo id: 321, user_id: 325, project_id: 271, target_id: 230, target_type: "Issue", author_id: 328, ...-02 06:33:45.614317941 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 318, user_id: 325, project_id: 400, target_id: 228, target_type: "Issue", author_id: 469, ...-02 06:33:44.464994495 +0000", commit_id: nil, group_id: 698, resolved_by_action: nil, note_id: nil>1514 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1515 behaves like using different access permissions1516 is expected not to change `Todo.count`1517 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1518 behaves like using different access permissions1519 is expected to contain exactly #<Todo id: 335, user_id: 325, project_id: 271, target_id: 238, target_type: "Issue", author_id: 328, ...-02 06:33:51.059448508 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 332, user_id: 325, project_id: 408, target_id: 236, target_type: "Issue", author_id: 477, ...-02 06:33:49.908071082 +0000", commit_id: nil, group_id: 698, resolved_by_action: nil, note_id: nil>1520 with nested groups1521 when the user is not a member of any groups/projects1522 removes todos for the user including subprojects todos1523 when the user is member of a parent group1524 behaves like does not remove any todos1525 is expected not to change `Todo.count`1526 when the user is member of a subgroup1527 does not remove group and subproject todos1528 when the user is member of a child project1529 does not remove subproject and group todos1530 when group is not private1531 enqueues the PrivateFeaturesWorker1532 access permissions1533 group_access: nil, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1534 behaves like using different access permissions1535 is expected to change `Todo.count` from 7 to 51536 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1537 behaves like using different access permissions1538 is expected not to change `Todo.count`1539 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1540 behaves like using different access permissions1541 is expected to change `Todo.count` from 7 to 51542 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1543 behaves like using different access permissions1544 is expected not to change `Todo.count`1545 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1546 behaves like using different access permissions1547 is expected to change `Todo.count` from 7 to 51548 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1549 behaves like using different access permissions1550 is expected not to change `Todo.count`1551 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1552 behaves like using different access permissions1553 is expected to change `Todo.count` from 7 to 51554 when entity type is not valid1555 raises an exception1556 when entity was not found1557 does not remove any todos1558Projects::ImportService1559 #async?1560 returns true for an asynchronous importer1561 returns false for a regular importer1562 returns false when the importer does not define #async?1563 returns false when the importer does not exist1564 #execute1565 with unknown url1566 succeeds if repository is created successfully1567 fails if repository creation fails1568 when repository creation succeeds1569 does not download lfs files1570 with known url1571 with a Github repository1572 tracks the start of import1573 succeeds if repository import was scheduled1574 fails if repository import was not scheduled1575 when repository import scheduled1576 does not download lfs objects1577 with a non Github repository1578 when importer supports refmap1579 succeeds if repository fetch as mirror is successful1580 fails if repository fetch as mirror fails1581 when importer does not support refmap1582 succeeds if repository import is successful1583 fails if repository import fails1584 when lfs import fails1585 logs the error1586 when repository import scheduled1587 downloads lfs objects if lfs_enabled is enabled for project1588 does not download lfs objects if lfs_enabled is not enabled for project1589 with valid importer1590 succeeds if importer succeeds1591 fails if importer fails1592 when importer1593 has a custom repository importer it does not download lfs objects1594 does not have a custom repository importer downloads lfs objects1595 when lfs import fails1596 logs the error1597 with blocked import_URL1598 fails with localhost1599 fails with port 251600 fails with file scheme1601 when DNS rebind protection is disabled1602 imports repository with url without additional resolved address1603 when DNS rebind protection is enabled1604 when https url is provided1605 imports repository with url and additional resolved address1606 when host resolves to an IPv6 address1607 imports repository with url and additional resolved bare IPv6 address1608 when http url is provided1609 imports repository with url and additional resolved address1610 when git address is provided1611 imports repository with url and without resolved address1612Event1613 Associations1614 is expected to belong to project required: false1615 is expected to belong to target required: false1616 Respond to1617 is expected to respond to #author_name1618 is expected to respond to #author_email1619 is expected to respond to #issue_title1620 is expected to respond to #merge_request_title1621 is expected to respond to #design_title1622 Callbacks1623 after_create :reset_project_activity1624 calls the reset_project_activity method1625 after_create :set_last_repository_updated_at1626 with a push event1627 updates the project last_repository_updated_at and updated_at1628 without a push event1629 does not update the project last_repository_updated_at1630 #set_last_repository_updated_at1631 only updates once every Event::REPOSITORY_UPDATED_AT_INTERVAL minutes1632 after_create UserInteractedProject.track1633 passes event to UserInteractedProject.track1634 validations1635 action1636 for a design1637 action: "created", valid: true1638 is expected to eq true1639 action: "updated", valid: true1640 is expected to eq true1641 action: "closed", valid: false1642 is expected to eq false1643 action: "reopened", valid: false1644 is expected to eq false1645 action: "pushed", valid: false1646 is expected to eq false1647 action: "commented", valid: false1648 is expected to eq false1649 action: "merged", valid: false1650 is expected to eq false1651 action: "joined", valid: false1652 is expected to eq false1653 action: "left", valid: false1654 is expected to eq false1655 action: "destroyed", valid: true1656 is expected to eq true1657 action: "expired", valid: false1658 is expected to eq false1659 action: "approved", valid: false1660 is expected to eq false1661 scopes1662 .for_issue1663 returns events for Issue and WorkItem target_type1664 .created_at1665 can find the right event1666 .for_fingerprint1667 returns none if there is no fingerprint1668 returns none if there is no match1669 can find a given event1670 .contributions1671 returns events for MergeRequest, Issue and WorkItem1672 #fingerprint1673 is unique scoped to target1674 Push event1675 is expected to eq #<User id:657 @namespace544>1676 #target_title1677 for an issue1678 delegates to issue title1679 for a wiki page1680 delegates to wiki page title1681 #membership_changed?1682 created1683 is expected to be falsey1684 updated1685 is expected to be falsey1686 expired1687 is expected to be truthy1688 left1689 is expected to be truthy1690 joined1691 is expected to be truthy1692 #note?1693 issue note event1694 is expected to be note1695 merge request diff note event1696 is expected to be note1697 #visible_to_user?1698 commit note event1699 has the correct visibility1700 private project1701 when admin mode enabled1702 has the correct visibility1703 when admin mode disabled1704 has the correct visibility1705 issue event1706 for non confidential issues1707 has the correct visibility1708 is expected to eq true1709 is expected to eq true1710 for confidential issues1711 has the correct visibility1712 is expected to eq true1713 is expected to eq true1714 work item event1715 for non confidential work item1716 has the correct visibility1717 is expected to eq true1718 is expected to eq true1719 for confidential work item1720 has the correct visibility1721 is expected to eq true1722 issue note event1723 on non confidential issues1724 has the correct visibility1725 is expected to eq true1726 is expected to eq true1727 on confidential issues1728 has the correct visibility1729 is expected to eq true1730 is expected to eq true1731 confidential note1732 has the correct visibility1733 private project1734 is expected to eq false1735 is expected to eq false1736 when admin mode enabled1737 has the correct visibility1738 when admin mode disabled1739 has the correct visibility1740 merge request diff note event1741 public project1742 has the correct visibility1743 is expected to eq true1744 private project1745 is expected to eq false1746 when admin mode enabled1747 has the correct visibility1748 when admin mode disabled1749 has the correct visibility1750 milestone event1751 has the correct visibility1752 on public project with private issue tracker and merge requests1753 when admin mode enabled1754 has the correct visibility1755 when admin mode disabled1756 has the correct visibility1757 on private project1758 when admin mode enabled1759 has the correct visibility1760 when admin mode disabled1761 has the correct visibility1762 wiki-page event1763 on private project1764 when admin mode enabled1765 has the correct visibility1766 when admin mode disabled1767 has the correct visibility1768 wiki-page event on public project1769 has the correct visibility1770 project snippet note event1771 has the correct visibility1772 on public project with private snippets1773 is expected to eq false1774 when admin mode enabled1775 has the correct visibility1776 when admin mode disabled1777 has the correct visibility1778 on private project1779 is expected to eq false1780 when admin mode enabled1781 has the correct visibility1782 when admin mode disabled1783 has the correct visibility1784 personal snippet note event1785 has the correct visibility1786 is expected to eq true1787 on internal snippet1788 has the correct visibility1789 on private snippet1790 is expected to eq true1791 when admin mode enabled1792 has the correct visibility1793 when admin mode disabled1794 has the correct visibility1795 design note event1796 has the correct visibility1797 is expected to eq true1798 is expected to eq true1799 the event refers to a design on a confidential issue1800 has the correct visibility1801 is expected to eq true1802 is expected to eq true1803 design event1804 has the correct visibility1805 is expected to eq true1806 is expected to eq true1807 the event refers to a design on a confidential issue1808 has the correct visibility1809 is expected to eq true1810 is expected to eq true1811 wiki_page predicate scopes1812 .for_design1813 only includes design events1814 .for_wiki_page1815 only contains the wiki page events1816 .for_wiki_meta1817 finds events for a given wiki page metadata object1818 categorization1819 passes a sanity check1820 #wiki_page and #wiki_page?1821 for a wiki page event1822 is expected to have attributes {:wiki_page => #<WikiPage:0x00007f648e3135e0 @wiki=#<ProjectWiki id:589 >, @page=#<Gitlab::Git::WikiPag...295a30a6b5 f41bcc7d2ffe558c96ce939efccba5295a30a6b5>, @format=:markdown>>, :wiki_page? => (be truthy)}1823 title is empty1824 is expected to have attributes {:wiki_page => nil, :wiki_page? => (be truthy)}1825 for any other event1826 has no wiki_page and is not a wiki_page1827 #design and #design?1828 for a design event1829 is expected to have attributes {:design => #<DesignManagement::Design id: namespace580/project-681#/designs[homescreen-32.jpg]>, :design? => (be truthy)}1830 for any other event1831 has no design and is not a design1832 .limit_recent1833 without an explicit limit1834 is expected to eq [#<Event project_id: 591, author_id: 710, target_id: 373, created_at: "2023-06-02 06:37:25.969109978 ...419615780 +0000", action: "closed", target_type: "Issue", group_id: nil, fingerprint: nil, id: 235>]1835 with an explicit limit1836 is expected to eq [#<Event project_id: 593, author_id: 714, target_id: 375, created_at: "2023-06-02 06:37:27.273301815 ...273301815 +0000", action: "closed", target_type: "Issue", group_id: nil, fingerprint: nil, id: 238>]1837 #reset_project_activity1838 when a project was updated less than 1 hour ago1839 does not update the project1840 when a project was updated more than 1 hour ago1841 updates the project1842 deletes the redis key for if the project was inactive1843 #authored_by?1844 returns true when the event author and user are the same1845 returns false when passing nil as an argument1846 returns false when the given user is not the author of the event1847 #body?1848 returns true for a push event with commits1849 returns false for a push event without a valid commit range1850 returns true for a Note event1851 returns true if the target responds to #title1852 returns false for a regular event without a target1853 #target1854 eager loads the author of an event target1855 with snippet note1856 #snippet_note?1857 returns true for a project snippet event1858 returns true for a personal snippet event1859 returns false for a other kinds of event1860 #personal_snippet_note?1861 returns false for a project snippet event1862 returns true for a personal snippet event1863 returns false for a other kinds of event1864 #project_snippet_note?1865 returns true for a project snippet event1866 returns false for a personal snippet event1867 returns false for a other kinds of event1868 #action_name1869 handles all valid design events1870 handles correct push_action1871 handles correct base actions1872 trait: :created, action_name: "created"1873 with correct name and method1874 trait: :updated, action_name: "opened"1875 with correct name and method1876 trait: :closed, action_name: "closed"1877 with correct name and method1878 trait: :reopened, action_name: "opened"1879 with correct name and method1880 trait: :commented, action_name: "commented on"1881 with correct name and method1882 trait: :merged, action_name: "accepted"1883 with correct name and method1884 trait: :joined, action_name: "joined"1885 with correct name and method1886 trait: :left, action_name: "left"1887 with correct name and method1888 trait: :destroyed, action_name: "destroyed"1889 with correct name and method1890 trait: :expired, action_name: "removed due to membership expiration from"1891 with correct name and method1892 trait: :approved, action_name: "approved"1893 with correct name and method1894 for created_project_action?1895 returns created for created event1896 returns imported for imported event1897 #has_no_project_and_group1898 with project event1899 returns false when the event has project1900 returns true when the event has no project1901 with group event1902 returns false when the event has group1903 returns true when the event has no group1904DeploymentPlatform1905 #deployment_platform1906 multiple clusters1907 multiple clusters use the same management project1908 behaves like matching environment scope1909 returns environment specific cluster1910 behaves like certificate_based_clusters is disabled1911 is expected to be nil1912 when project does not have a cluster but has group clusters1913 when environment scope is exactly matched1914 behaves like matching environment scope1915 returns environment specific cluster1916 behaves like certificate_based_clusters is disabled1917 is expected to be nil1918 when environment scope is matched by wildcard1919 behaves like matching environment scope1920 returns environment specific cluster1921 behaves like certificate_based_clusters is disabled1922 is expected to be nil1923 when environment scope does not match1924 behaves like not matching environment scope1925 returns default cluster1926 behaves like certificate_based_clusters is disabled1927 is expected to be nil1928 when group belongs to a parent group1929 when parent_group has a cluster with default scope1930 behaves like matching environment scope1931 returns environment specific cluster1932 behaves like certificate_based_clusters is disabled1933 is expected to be nil1934 when parent_group has a cluster that is an exact match1935 behaves like matching environment scope1936 returns environment specific cluster1937 behaves like certificate_based_clusters is disabled1938 is expected to be nil1939 with instance clusters1940 when environment scope is exactly matched1941 behaves like matching environment scope1942 returns environment specific cluster1943 behaves like certificate_based_clusters is disabled1944 is expected to be nil1945 when environment scope is matched by wildcard1946 behaves like matching environment scope1947 returns environment specific cluster1948 behaves like certificate_based_clusters is disabled1949 is expected to be nil1950 when environment scope does not match1951 behaves like not matching environment scope1952 returns default cluster1953 behaves like certificate_based_clusters is disabled1954 is expected to be nil1955 when environment is specified1956 when environment scope is exactly matched1957 behaves like matching environment scope1958 returns environment specific cluster1959 behaves like certificate_based_clusters is disabled1960 is expected to be nil1961 when environment scope is matched by wildcard1962 behaves like matching environment scope1963 returns environment specific cluster1964 behaves like certificate_based_clusters is disabled1965 is expected to be nil1966 when environment scope does not match1967 behaves like not matching environment scope1968 returns default cluster1969 behaves like certificate_based_clusters is disabled1970 is expected to be nil1971 when environment scope has _1972 does not treat it as wildcard1973 when environment name contains an underscore1974 matches literally for _1975 when environment scope has %1976 does not treat it as wildcard1977 when environment name contains a percent char1978 matches literally for %1979 when perfectly matched cluster exists1980 returns perfectly matched cluster as highest precedence1981 with multiple clusters and multiple environments1982 returns the appropriate cluster1983 with no Kubernetes configuration on CI/CD, no Kubernetes Service1984 is expected to be nil1985 when project is the cluster's management project1986 returns the cluster with management project1987 when project has configured kubernetes from CI/CD > Clusters1988 returns the Kubernetes platform1989 with a group level kubernetes cluster1990 returns the Kubernetes platform from the project cluster1991 when group has configured kubernetes cluster1992 returns the Kubernetes platform1993 when project is the cluster's management project1994 returns the cluster with management project1995 when project is not the cluster's management project1996 returns the group cluster1997 when child group has configured kubernetes cluster1998 returns the Kubernetes platform for the child group1999 deeply nested group2000 returns most nested group cluster Kubernetes platform2001 cluster in the middle of hierarchy is disabled2002 returns closest enabled Kubenetes platform2003 when instance has configured kubernetes cluster2004 returns the Kubernetes platform2005AutoMerge::BaseService2006 #execute2007 sets properies to the merge request2008 yields block2009 returns activated strategy name2010 when merge parameters are given2011 sets merge parameters2012 when strategy is merge when pipeline succeeds2013 sets the auto merge strategy2014 returns activated strategy name2015 calls AutoMergeProcessWorker2016 when failed to save merge request2017 does not yield block2018 returns failed2019 tracks the exception2020 when exception happens in yield block2021 returns failed status2022 rollback the transaction2023 tracks the exception2024 #update2025 when merge params are specified2026 updates merge params2027 #cancel2028 behaves like Canceled or Dropped2029 removes properies from the merge request2030 yields block2031 returns success status2032 when merge params are set2033 removes merge parameters2034 when failed to save2035 does not yield block2036 when failed to save merge request2037 returns error status2038 when exception happens in yield block2039 returns error2040 rollback the transaction2041 tracks the exception2042 #abort2043 behaves like Canceled or Dropped2044 removes properies from the merge request2045 yields block2046 returns success status2047 when merge params are set2048 removes merge parameters2049 when failed to save2050 does not yield block2051 when failed to save2052 returns error status2053 when exception happens in yield block2054 returns error2055 rollback the transaction2056 tracks the exception2057ObjectStorage::DirectUpload2058 #has_length2059 is known2060 maximum size is not required2061 is unknown2062 and maximum size is specified2063 does not raise an error2064 and maximum size is not specified2065 raises an error2066 #get_url2067 when AWS is used2068 calls the proper method2069 when Google is used2070 calls the proper method2071 #to_hash2072 when AWS is used2073 when length is known2074 behaves like a valid S3 upload without multipart data2075 behaves like a valid S3 upload2076 sets Workhorse client data2077 behaves like a valid upload2078 returns valid structure2079 with an object with UTF-8 characters2080 returns an escaped path2081 when no region is specified2082 defaults to us-east-12083 when V2 signatures are used2084 does not enable Workhorse client2085 when V4 signatures are used2086 enables the Workhorse client for instance profiles2087 when consolidated settings are used2088 enables the Workhorse client2089 when only server side encryption is used2090 sends server side encryption settings2091 when SSE-KMS is used2092 sends server side encryption settings2093 behaves like a valid upload without multipart data2094 returns valid structure2095 behaves like a valid upload2096 returns valid structure2097 with an object with UTF-8 characters2098 returns an escaped path2099 when path style is true2100 behaves like a valid S3 upload without multipart data2101 behaves like a valid S3 upload2102 sets Workhorse client data2103 behaves like a valid upload2104 returns valid structure2105 with an object with UTF-8 characters2106 returns an escaped path2107 when no region is specified2108 defaults to us-east-12109 when V2 signatures are used2110 does not enable Workhorse client2111 when V4 signatures are used2112 enables the Workhorse client for instance profiles2113 when consolidated settings are used2114 enables the Workhorse client2115 when only server side encryption is used2116 sends server side encryption settings2117 when SSE-KMS is used2118 sends server side encryption settings2119 behaves like a valid upload without multipart data2120 returns valid structure2121 behaves like a valid upload2122 returns valid structure2123 with an object with UTF-8 characters2124 returns an escaped path2125 when IAM profile is true2126 behaves like a valid S3 upload without multipart data2127 behaves like a valid S3 upload2128 sets Workhorse client data2129 behaves like a valid upload2130 returns valid structure2131 with an object with UTF-8 characters2132 returns an escaped path2133 when no region is specified2134 defaults to us-east-12135 when V2 signatures are used2136 does not enable Workhorse client2137 when V4 signatures are used2138 enables the Workhorse client for instance profiles2139 when consolidated settings are used2140 enables the Workhorse client2141 when only server side encryption is used2142 sends server side encryption settings2143 when SSE-KMS is used2144 sends server side encryption settings2145 behaves like a valid upload without multipart data2146 returns valid structure2147 behaves like a valid upload2148 returns valid structure2149 with an object with UTF-8 characters2150 returns an escaped path2151 when IMSDv2 is available2152 behaves like a valid S3 upload without multipart data2153 behaves like a valid S3 upload2154 sets Workhorse client data2155 behaves like a valid upload2156 returns valid structure2157 with an object with UTF-8 characters2158 returns an escaped path2159 when no region is specified2160 defaults to us-east-12161 when V2 signatures are used2162 does not enable Workhorse client2163 when V4 signatures are used2164 enables the Workhorse client for instance profiles2165 when consolidated settings are used2166 enables the Workhorse client2167 when only server side encryption is used2168 sends server side encryption settings2169 when SSE-KMS is used2170 sends server side encryption settings2171 behaves like a valid upload without multipart data2172 returns valid structure2173 behaves like a valid upload2174 returns valid structure2175 with an object with UTF-8 characters2176 returns an escaped path2177 when length is unknown2178 behaves like a valid S3 upload with multipart data2179 behaves like a valid S3 upload2180 sets Workhorse client data2181 behaves like a valid upload2182 returns valid structure2183 with an object with UTF-8 characters2184 returns an escaped path2185 when no region is specified2186 defaults to us-east-12187 when V2 signatures are used2188 does not enable Workhorse client2189 when V4 signatures are used2190 enables the Workhorse client for instance profiles2191 when consolidated settings are used2192 enables the Workhorse client2193 when only server side encryption is used2194 sends server side encryption settings2195 when SSE-KMS is used2196 sends server side encryption settings2197 behaves like a valid upload with multipart data2198 returns valid structure2199 uses only strings in query parameters2200 behaves like a valid upload2201 returns valid structure2202 with an object with UTF-8 characters2203 returns an escaped path2204 when maximum upload size is 02205 returns maximum number of parts2206 part size is minimum, 5MB2207 when maximum upload size is < 5 MB2208 returns only 1 part2209 part size is minimum, 5MB2210 when maximum upload size is 10MB2211 returns only 2 parts2212 part size is minimum, 5MB2213 when maximum upload size is 12MB2214 returns only 3 parts2215 part size is rounded-up to 5MB2216 when maximum upload size is 49GB2217 returns maximum, 100 parts2218 part size is rounded-up to 5MB2219 when Google is used2220 with google_application_default2221 when length is known2222 behaves like a valid Google upload2223 enables the Workhorse client2224 behaves like a valid upload2225 returns valid structure2226 with an object with UTF-8 characters2227 returns an escaped path2228 with workhorse_google_client disabled2229 does not set Workhorse client data2230 behaves like a valid upload without multipart data2231 returns valid structure2232 behaves like a valid upload2233 returns valid structure2234 with an object with UTF-8 characters2235 returns an escaped path2236 when length is unknown2237 behaves like a valid Google upload2238 enables the Workhorse client2239 behaves like a valid upload2240 returns valid structure2241 with an object with UTF-8 characters2242 returns an escaped path2243 with workhorse_google_client disabled2244 does not set Workhorse client data2245 behaves like a valid upload without multipart data2246 returns valid structure2247 behaves like a valid upload2248 returns valid structure2249 with an object with UTF-8 characters2250 returns an escaped path2251 with google_json_key_location2252 when length is known2253 behaves like a valid Google upload2254 enables the Workhorse client2255 behaves like a valid upload2256 returns valid structure2257 with an object with UTF-8 characters2258 returns an escaped path2259 with workhorse_google_client disabled2260 does not set Workhorse client data2261 behaves like a valid upload without multipart data2262 returns valid structure2263 behaves like a valid upload2264 returns valid structure2265 with an object with UTF-8 characters2266 returns an escaped path2267 when length is unknown2268 behaves like a valid Google upload2269 enables the Workhorse client2270 behaves like a valid upload2271 returns valid structure2272 with an object with UTF-8 characters2273 returns an escaped path2274 with workhorse_google_client disabled2275 does not set Workhorse client data2276 behaves like a valid upload without multipart data2277 returns valid structure2278 behaves like a valid upload2279 returns valid structure2280 with an object with UTF-8 characters2281 returns an escaped path2282 with google_json_key_string2283 when length is known2284 behaves like a valid Google upload2285 enables the Workhorse client2286 behaves like a valid upload2287 returns valid structure2288 with an object with UTF-8 characters2289 returns an escaped path2290 with workhorse_google_client disabled2291 does not set Workhorse client data2292 behaves like a valid upload without multipart data2293 returns valid structure2294 behaves like a valid upload2295 returns valid structure2296 with an object with UTF-8 characters2297 returns an escaped path2298 when length is unknown2299 behaves like a valid Google upload2300 enables the Workhorse client2301 behaves like a valid upload2302 returns valid structure2303 with an object with UTF-8 characters2304 returns an escaped path2305 with workhorse_google_client disabled2306 does not set Workhorse client data2307 behaves like a valid upload without multipart data2308 returns valid structure2309 behaves like a valid upload2310 returns valid structure2311 with an object with UTF-8 characters2312 returns an escaped path2313 when AzureRM is used2314 behaves like a valid AzureRM upload2315 enables the Workhorse client2316 behaves like a valid upload2317 returns valid structure2318 with an object with UTF-8 characters2319 returns an escaped path2320 behaves like a valid upload without multipart data2321 returns valid structure2322 behaves like a valid upload2323 returns valid structure2324 with an object with UTF-8 characters2325 returns an escaped path2326 when a custom storage domain is used2327 behaves like a valid AzureRM upload2328 enables the Workhorse client2329 behaves like a valid upload2330 returns valid structure2331 with an object with UTF-8 characters2332 returns an escaped path2333 #use_workhorse_google_client?2334 with consolidated_settings2335 with google_application_default2336 is expected to be truthy2337 with google_json_key_string2338 is expected to be truthy2339 with google_json_key_location2340 is expected to be truthy2341 without any google setting2342 is expected to be falsey2343 without consolidated_settings2344 is expected to be falsey2345Git::WikiPushService2346 #execute2347 executes model-specific callbacks2348 #process_changes2349 calls log_error for every event we cannot create2350 the push contains more than the permitted number of changes2351 creates only MAX_CHANGES events2352 default_branch collides with a tag2353 creates only one event2354 successfully creating events2355 creates one event for every wiki action2356 handles all known actions2357 when wiki_page slug is not UTF-82358 does not raise an error2359 two pages have been created2360 creates two events2361 creates two metadata records2362 creates appropriate events2363 a non-page file as been added2364 does not create events, or WikiPage metadata2365 one page, and one non-page have been created2366 creates a wiki page creation event2367 creates one metadata record2368 one page has been added, and then updated2369 creates just a single event2370 creates just one metadata record2371 creates a new wiki page creation event2372 when a page we already know about has been updated2373 does not create a new meta-data record2374 creates a new event2375 adds an update event2376 when a page we do not know about has been updated2377 creates a new meta-data record2378 creates a new event2379 adds an update event2380 when a page we do not know about has been deleted2381 create a new meta-data record2382 creates a new event2383 adds an update event2384 #perform_housekeeping2385 does not perform housekeeping when not needed2386 increments the push counter2387 when housekeeping is needed2388 performs housekeeping2389 does not raise an exception2390ProtectedBranch2391 Associations2392 is expected to belong to project required: false2393 is expected to belong to group required: false2394 Validation2395 is expected to validate that :name cannot be empty/falsy2396 uniqueness2397 is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id2398 when the protected_branch was saved previously2399 is expected not to validate that :name is case-sensitively unique2400 and name is changed2401 is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id2402 #validate_either_project_or_top_group2403 when protected branch does not have project or group association2404 validate failed2405 when protected branch is associated with both project and group2406 validate failed2407 when protected branch is associated with a subgroup2408 validate failed2409 set a group2410 when associated with group2411 create successfully2412 when associated with other namespace2413 create failed with `ActiveRecord::AssociationTypeMismatch`2414 #matches?2415 when the protected branch setting is not a wildcard2416 returns true for branch names that are an exact match2417 returns false for branch names that are not an exact match2418 when the protected branch name contains wildcard(s)2419 when there is a single '*'2420 returns true for branch names matching the wildcard2421 returns false for branch names not matching the wildcard2422 when the wildcard contains regex symbols other than a '*'2423 returns true for branch names matching the wildcard2424 returns false for branch names not matching the wildcard2425 when there are '*'s at either end2426 returns true for branch names matching the wildcard2427 returns false for branch names not matching the wildcard2428 when there are arbitrarily placed '*'s2429 returns true for branch names matching the wildcard2430 returns false for branch names not matching the wildcard2431 #matching2432 for direct matches2433 returns a list of protected branches matching the given branch name2434 accepts a list of protected branches to search from, so as to avoid a DB call2435 for wildcard matches2436 returns a list of protected branches matching the given branch name2437 accepts a list of protected branches to search from, so as to avoid a DB call2438 #protected?2439 existing project2440 returns true when the branch matches a protected branch via direct match2441 returns true when the branch matches a protected branch via wildcard match2442 returns false when the branch does not match a protected branch via direct match2443 returns false when the branch does not match a protected branch via wildcard match2444 returns false when branch name is nil2445 with caching2446 correctly invalidates a cache2447 correctly uses the cached version2448 when project is updated2449 does not invalidate a cache2450 when other project protected branch is updated2451 does not invalidate the current project cache2452 new project2453 when the group has set their own default_branch_protection level2454 default_branch_protection_level: 0, result: false2455 protects the default branch based on the default branch protection setting of the group2456 default_branch_protection_level: 1, result: false2457 protects the default branch based on the default branch protection setting of the group2458 default_branch_protection_level: 3, result: true2459 protects the default branch based on the default branch protection setting of the group2460 default_branch_protection_level: 2, result: true2461 protects the default branch based on the default branch protection setting of the group2462 when the group has not set their own default_branch_protection level2463 default_branch_protection_level: 0, result: false2464 protects the default branch based on the instance level default branch protection setting2465 default_branch_protection_level: 1, result: false2466 protects the default branch based on the instance level default branch protection setting2467 default_branch_protection_level: 3, result: true2468 protects the default branch based on the instance level default branch protection setting2469 default_branch_protection_level: 2, result: true2470 protects the default branch based on the instance level default branch protection setting2471 #allow_force_push?2472 when feature flag disabled2473 when the attr allow_force_push is true2474 returns true2475 when the attr allow_force_push is false2476 returns false2477 when feature flag enabled2478 group_level_value: true, project_level_value: false, result: true2479 returns result2480 group_level_value: false, project_level_value: true, result: false2481 returns result2482 group_level_value: true, project_level_value: nil, result: true2483 returns result2484 group_level_value: false, project_level_value: nil, result: false2485 returns result2486 group_level_value: nil, project_level_value: nil, result: false2487 returns result2488 #any_protected?2489 existing project2490 returns true when any of the branch names match a protected branch via direct match2491 returns true when any of the branch matches a protected branch via wildcard match2492 returns false when none of branches does not match a protected branch via direct match2493 returns false when none of the branches does not match a protected branch via wildcard match2494 .protected_refs2495 when feature flag enabled2496 call `all_protected_branches`2497 when feature flag disabled2498 call `protected_branches`2499 .protected_ref_accessible_to?2500 with guest2501 is expected to eq false2502 with reporter2503 is expected to eq false2504 with developer2505 is expected to eq false2506 with maintainer2507 is expected to eq true2508 with owner2509 is expected to eq true2510 with admin2511 is expected to eq true2512 when project is an empty repository2513 when user is an admin2514 is expected to eq true2515 when user is maintainer2516 is expected to eq true2517 when user is developer and initial push is allowed2518 is expected to eq true2519 when user is developer and initial push is not allowed2520 is expected to eq false2521 .by_name2522 returns protected branches with a matching name2523 returns protected branches with a partially matching name2524 returns protected branches with a matching name regardless of the casing2525 returns nothing when nothing matches2526 return nothing when query is blank2527 .get_ids_by_name2528 returns the id for each protected branch matching name2529 .downcase_humanized_name2530 returns downcase humanized name2531 .default_branch?2532 when the name matches the default branch2533 is expected to be default branch2534 when the name does not match the default branch2535 is expected not to be default branch2536 when a wildcard name matches the default branch2537 is expected not to be default branch2538 #group_level?2539 when entity is a Group2540 is expected to be group level2541 when entity is a Project2542 is expected not to be group level2543RuboCop::Cop::Migration::CreateTableWithForeignKeys2544 # order random2545 outside of a migration2546 does not register any offenses2547 when in a migration2548 without foreign key2549 does not register any offenses2550 with foreign key2551 with just one foreign key2552 when the foreign_key targets a high traffic table2553 when the foreign_key has to_table option set2554 does not register any offenses2555 when the foreign_key does not have to_table option set2556 does not register any offenses2557 when the foreign_key does not target a high traffic table2558 does not register any offenses2559 with more than one foreign keys2560 when the foreign keys are defined as options2561 when there is no target to a high traffic table2562 does not register any offenses2563 with audit_events2564 behaves like target to high traffic table2565 when the target is defined as option2566 registers an offense2567 when the target has implicit definition2568 registers an offense2569 with ci_builds2570 behaves like target to high traffic table2571 when the target is defined as option2572 registers an offense2573 when the target has implicit definition2574 registers an offense2575 with ci_builds_metadata2576 behaves like target to high traffic table2577 when the target is defined as option2578 registers an offense2579 when the target has implicit definition2580 registers an offense2581 with ci_job_artifacts2582 behaves like target to high traffic table2583 when the target is defined as option2584 registers an offense2585 when the target has implicit definition2586 registers an offense2587 with ci_pipeline_variables2588 behaves like target to high traffic table2589 when the target is defined as option2590 registers an offense2591 when the target has implicit definition2592 registers an offense2593 with ci_pipelines2594 behaves like target to high traffic table2595 when the target is defined as option2596 registers an offense2597 when the target has implicit definition2598 registers an offense2599 with ci_stages2600 behaves like target to high traffic table2601 when the target is defined as option2602 registers an offense2603 when the target has implicit definition2604 registers an offense2605 with deployments2606 behaves like target to high traffic table2607 when the target is defined as option2608 registers an offense2609 when the target has implicit definition2610 registers an offense2611 with events2612 behaves like target to high traffic table2613 when the target is defined as option2614 registers an offense2615 when the target has implicit definition2616 registers an offense2617 with gitlab_subscriptions2618 behaves like target to high traffic table2619 when the target is defined as option2620 registers an offense2621 when the target has implicit definition2622 registers an offense2623 with issues2624 behaves like target to high traffic table2625 when the target is defined as option2626 registers an offense2627 when the target has implicit definition2628 registers an offense2629 with merge_request_diff_commits2630 behaves like target to high traffic table2631 when the target is defined as option2632 registers an offense2633 when the target has implicit definition2634 registers an offense2635 with merge_request_diff_files2636 behaves like target to high traffic table2637 when the target is defined as option2638 registers an offense2639 when the target has implicit definition2640 registers an offense2641 with merge_request_diffs2642 behaves like target to high traffic table2643 when the target is defined as option2644 registers an offense2645 when the target has implicit definition2646 registers an offense2647 with merge_request_metrics2648 behaves like target to high traffic table2649 when the target is defined as option2650 registers an offense2651 when the target has implicit definition2652 registers an offense2653 with merge_requests2654 behaves like target to high traffic table2655 when the target is defined as option2656 registers an offense2657 when the target has implicit definition2658 registers an offense2659 with namespaces2660 behaves like target to high traffic table2661 when the target is defined as option2662 registers an offense2663 when the target has implicit definition2664 registers an offense2665 with note_diff_files2666 behaves like target to high traffic table2667 when the target is defined as option2668 registers an offense2669 when the target has implicit definition2670 registers an offense2671 with notes2672 behaves like target to high traffic table2673 when the target is defined as option2674 registers an offense2675 when the target has implicit definition2676 registers an offense2677 with project_authorizations2678 behaves like target to high traffic table2679 when the target is defined as option2680 registers an offense2681 when the target has implicit definition2682 registers an offense2683 with projects2684 behaves like target to high traffic table2685 when the target is defined as option2686 registers an offense2687 when the target has implicit definition2688 registers an offense2689 with project_ci_cd_settings2690 behaves like target to high traffic table2691 when the target is defined as option2692 registers an offense2693 when the target has implicit definition2694 registers an offense2695 with project_features2696 behaves like target to high traffic table2697 when the target is defined as option2698 registers an offense2699 when the target has implicit definition2700 registers an offense2701 with push_event_payloads2702 behaves like target to high traffic table2703 when the target is defined as option2704 registers an offense2705 when the target has implicit definition2706 registers an offense2707 with resource_label_events2708 behaves like target to high traffic table2709 when the target is defined as option2710 registers an offense2711 when the target has implicit definition2712 registers an offense2713 with routes2714 behaves like target to high traffic table2715 when the target is defined as option2716 registers an offense2717 when the target has implicit definition2718 registers an offense2719 with sent_notifications2720 behaves like target to high traffic table2721 when the target is defined as option2722 registers an offense2723 when the target has implicit definition2724 registers an offense2725 with system_note_metadata2726 behaves like target to high traffic table2727 when the target is defined as option2728 registers an offense2729 when the target has implicit definition2730 registers an offense2731 with taggings2732 behaves like target to high traffic table2733 when the target is defined as option2734 registers an offense2735 when the target has implicit definition2736 registers an offense2737 with todos2738 behaves like target to high traffic table2739 when the target is defined as option2740 registers an offense2741 when the target has implicit definition2742 registers an offense2743 with users2744 behaves like target to high traffic table2745 when the target is defined as option2746 registers an offense2747 when the target has implicit definition2748 registers an offense2749 with web_hook_logs2750 behaves like target to high traffic table2751 when the target is defined as option2752 registers an offense2753 when the target has implicit definition2754 registers an offense2755 when the foreign keys are defined by standlone migration helper2756 when there is no target to a high traffic table2757 does not register any offenses2758 with audit_events2759 behaves like target to high traffic table2760 when the target is defined as option2761 registers an offense2762 when the target has implicit definition2763 registers an offense2764 with ci_builds2765 behaves like target to high traffic table2766 when the target is defined as option2767 registers an offense2768 when the target has implicit definition2769 registers an offense2770 with ci_builds_metadata2771 behaves like target to high traffic table2772 when the target is defined as option2773 registers an offense2774 when the target has implicit definition2775 registers an offense2776 with ci_job_artifacts2777 behaves like target to high traffic table2778 when the target is defined as option2779 registers an offense2780 when the target has implicit definition2781 registers an offense2782 with ci_pipeline_variables2783 behaves like target to high traffic table2784 when the target is defined as option2785 registers an offense2786 when the target has implicit definition2787 registers an offense2788 with ci_pipelines2789 behaves like target to high traffic table2790 when the target is defined as option2791 registers an offense2792 when the target has implicit definition2793 registers an offense2794 with ci_stages2795 behaves like target to high traffic table2796 when the target is defined as option2797 registers an offense2798 when the target has implicit definition2799 registers an offense2800 with deployments2801 behaves like target to high traffic table2802 when the target is defined as option2803 registers an offense2804 when the target has implicit definition2805 registers an offense2806 with events2807 behaves like target to high traffic table2808 when the target is defined as option2809 registers an offense2810 when the target has implicit definition2811 registers an offense2812 with gitlab_subscriptions2813 behaves like target to high traffic table2814 when the target is defined as option2815 registers an offense2816 when the target has implicit definition2817 registers an offense2818 with issues2819 behaves like target to high traffic table2820 when the target is defined as option2821 registers an offense2822 when the target has implicit definition2823 registers an offense2824 with merge_request_diff_commits2825 behaves like target to high traffic table2826 when the target is defined as option2827 registers an offense2828 when the target has implicit definition2829 registers an offense2830 with merge_request_diff_files2831 behaves like target to high traffic table2832 when the target is defined as option2833 registers an offense2834 when the target has implicit definition2835 registers an offense2836 with merge_request_diffs2837 behaves like target to high traffic table2838 when the target is defined as option2839 registers an offense2840 when the target has implicit definition2841 registers an offense2842 with merge_request_metrics2843 behaves like target to high traffic table2844 when the target is defined as option2845 registers an offense2846 when the target has implicit definition2847 registers an offense2848 with merge_requests2849 behaves like target to high traffic table2850 when the target is defined as option2851 registers an offense2852 when the target has implicit definition2853 registers an offense2854 with namespaces2855 behaves like target to high traffic table2856 when the target is defined as option2857 registers an offense2858 when the target has implicit definition2859 registers an offense2860 with note_diff_files2861 behaves like target to high traffic table2862 when the target is defined as option2863 registers an offense2864 when the target has implicit definition2865 registers an offense2866 with notes2867 behaves like target to high traffic table2868 when the target is defined as option2869 registers an offense2870 when the target has implicit definition2871 registers an offense2872 with project_authorizations2873 behaves like target to high traffic table2874 when the target is defined as option2875 registers an offense2876 when the target has implicit definition2877 registers an offense2878 with projects2879 behaves like target to high traffic table2880 when the target is defined as option2881 registers an offense2882 when the target has implicit definition2883 registers an offense2884 with project_ci_cd_settings2885 behaves like target to high traffic table2886 when the target is defined as option2887 registers an offense2888 when the target has implicit definition2889 registers an offense2890 with project_features2891 behaves like target to high traffic table2892 when the target is defined as option2893 registers an offense2894 when the target has implicit definition2895 registers an offense2896 with push_event_payloads2897 behaves like target to high traffic table2898 when the target is defined as option2899 registers an offense2900 when the target has implicit definition2901 registers an offense2902 with resource_label_events2903 behaves like target to high traffic table2904 when the target is defined as option2905 registers an offense2906 when the target has implicit definition2907 registers an offense2908 with routes2909 behaves like target to high traffic table2910 when the target is defined as option2911 registers an offense2912 when the target has implicit definition2913 registers an offense2914 with sent_notifications2915 behaves like target to high traffic table2916 when the target is defined as option2917 registers an offense2918 when the target has implicit definition2919 registers an offense2920 with system_note_metadata2921 behaves like target to high traffic table2922 when the target is defined as option2923 registers an offense2924 when the target has implicit definition2925 registers an offense2926 with taggings2927 behaves like target to high traffic table2928 when the target is defined as option2929 registers an offense2930 when the target has implicit definition2931 registers an offense2932 with todos2933 behaves like target to high traffic table2934 when the target is defined as option2935 registers an offense2936 when the target has implicit definition2937 registers an offense2938 with users2939 behaves like target to high traffic table2940 when the target is defined as option2941 registers an offense2942 when the target has implicit definition2943 registers an offense2944 with web_hook_logs2945 behaves like target to high traffic table2946 when the target is defined as option2947 registers an offense2948 when the target has implicit definition2949 registers an offense2950Mutations::MergeRequests::SetLocked2951 is expected to require graphql authorizations :update_merge_request2952 #resolve2953 behaves like permission level for merge request mutation is correctly verified2954 when the user is not a project member2955 behaves like when the user does not have access to the resource2956 raises an error2957 even if assigned to the merge request2958 does not modify merge request2959 even if reviewer of the merge request2960 raises an error2961 even if author of the merge request2962 raises an error2963 when the user is a project member2964 with guest role2965 behaves like when the user does not have access to the resource2966 raises an error2967 even if assigned to the merge request2968 does not modify merge request2969 even if reviewer of the merge request2970 raises an error2971 even if author of the merge request2972 raises an error2973 with reporter role2974 behaves like when the user does not have access to the resource2975 raises an error2976 even if assigned to the merge request2977 does not modify merge request2978 even if reviewer of the merge request2979 raises an error2980 even if author of the merge request2981 raises an error2982 when the user can update the merge request2983 returns the merge request as discussion locked2984 returns errors merge request could not be updated2985 when passing locked as false2986 unlocks the discussion2987Gitlab::Cleanup::ProjectUploads2988 #run!2989 orphaned project upload file2990 when an upload record matching the secret and filename is found2991 when the project is still in legacy storage2992 behaves like fixes the file2993 behaves like moves the file2994 when dry_run is false2995 behaves like a real run2996 moves the file to its proper location2997 logs action as done2998 when dry_run is nil2999 behaves like a real run3000 moves the file to its proper location3001 logs action as done3002 when dry_run is true3003 behaves like a dry run3004 does not move the file3005 logs action as able to be done3006 with dry_run not specified3007 behaves like a dry run3008 does not move the file3009 logs action as able to be done3010 when the project was moved to hashed storage3011 behaves like fixes the file3012 behaves like moves the file3013 when dry_run is false3014 behaves like a real run3015 moves the file to its proper location3016 logs action as done3017 when dry_run is nil3018 behaves like a real run3019 moves the file to its proper location3020 logs action as done3021 when dry_run is true3022 behaves like a dry run3023 does not move the file3024 logs action as able to be done3025 with dry_run not specified3026 behaves like a dry run3027 does not move the file3028 logs action as able to be done3029 when the project is missing (the upload *record* is an orphan)3030 behaves like moves the file to lost and found3031 behaves like moves the file3032 when dry_run is false3033 behaves like a real run3034 moves the file to its proper location3035 logs action as done3036 when dry_run is nil3037 behaves like a real run3038 moves the file to its proper location3039 logs action as done3040 when dry_run is true3041 behaves like a dry run3042 does not move the file3043 logs action as able to be done3044 with dry_run not specified3045 behaves like a dry run3046 does not move the file3047 logs action as able to be done3048 when the file should be in object storage3049 when the file otherwise has the correct local path3050 does not move the file3051 when the file has the wrong local path3052 behaves like moves the file to lost and found3053 behaves like moves the file3054 when dry_run is false3055 behaves like a real run3056 moves the file to its proper location3057 logs action as done3058 when dry_run is nil3059 behaves like a real run3060 moves the file to its proper location3061 logs action as done3062 when dry_run is true3063 behaves like a dry run3064 does not move the file3065 logs action as able to be done3066 with dry_run not specified3067 behaves like a dry run3068 does not move the file3069 logs action as able to be done3070 when a matching upload record can not be found3071 when the file path fits the known pattern3072 behaves like moves the file to lost and found3073 behaves like moves the file3074 when dry_run is false3075 behaves like a real run3076 moves the file to its proper location3077 logs action as done3078 when dry_run is nil3079 behaves like a real run3080 moves the file to its proper location3081 logs action as done3082 when dry_run is true3083 behaves like a dry run3084 does not move the file3085 logs action as able to be done3086 with dry_run not specified3087 behaves like a dry run3088 does not move the file3089 logs action as able to be done3090 when the file path does not fit the known pattern3091 behaves like moves the file to lost and found3092 behaves like moves the file3093 when dry_run is false3094 behaves like a real run3095 moves the file to its proper location3096 logs action as done3097 when dry_run is nil3098 behaves like a real run3099 moves the file to its proper location3100 logs action as done3101 when dry_run is true3102 behaves like a dry run3103 does not move the file3104 logs action as able to be done3105 with dry_run not specified3106 behaves like a dry run3107 does not move the file3108 logs action as able to be done3109 non-orphaned project upload file3110 does not move the file3111 ignorable cases3112 does not move any non-project (FileUploader) uploads3113 does not move any uploads in tmp (which would interfere with ongoing upload activity)3114 when the file is already in hashed storage3115 does not move even an orphan file3116CounterAttribute3117 behaves like CounterAttribute3118 defines a method to store counters3119 build_artifacts_size3120 #increment_counter3121 when attribute is a counter attribute3122 amount: 103123 increments the counter in Redis and logs it3124 does not increment the counter for the record3125 schedules a worker to flush counter increments asynchronously3126 amount: -33127 increments the counter in Redis and logs it3128 does not increment the counter for the record3129 schedules a worker to flush counter increments asynchronously3130 #increment_amount3131 increases the egress in cache3132 #current_counter3133 increases the amount in cache3134 when increment amount is 03135 does nothing3136 #bulk_increment_counter3137 when attribute is a counter attribute3138 increments the counter in Redis and logs each increment3139 does not increment the counter for the record3140 schedules a worker to flush counter increments asynchronously3141 when feature flag split_log_bulk_increment_counter is disabled3142 logs a single total increment3143 commit_count3144 #increment_counter3145 when attribute is a counter attribute3146 amount: 103147 increments the counter in Redis and logs it3148 does not increment the counter for the record3149 schedules a worker to flush counter increments asynchronously3150 amount: -33151 increments the counter in Redis and logs it3152 does not increment the counter for the record3153 schedules a worker to flush counter increments asynchronously3154 #increment_amount3155 increases the egress in cache3156 #current_counter3157 increases the amount in cache3158 when increment amount is 03159 does nothing3160 #bulk_increment_counter3161 when attribute is a counter attribute3162 increments the counter in Redis and logs each increment3163 does not increment the counter for the record3164 schedules a worker to flush counter increments asynchronously3165 when feature flag split_log_bulk_increment_counter is disabled3166 logs a single total increment3167 packages_size3168 #increment_counter3169 when attribute is a counter attribute3170 amount: 103171 increments the counter in Redis and logs it3172 does not increment the counter for the record3173 schedules a worker to flush counter increments asynchronously3174 amount: -33175 increments the counter in Redis and logs it3176 does not increment the counter for the record3177 schedules a worker to flush counter increments asynchronously3178 #increment_amount3179 increases the egress in cache3180 #current_counter3181 increases the amount in cache3182 when increment amount is 03183 does nothing3184 #bulk_increment_counter3185 when attribute is a counter attribute3186 increments the counter in Redis and logs each increment3187 does not increment the counter for the record3188 schedules a worker to flush counter increments asynchronously3189 when feature flag split_log_bulk_increment_counter is disabled3190 logs a single total increment3191 #update_counters_with_lease3192 updates counters of the record3193 behaves like obtaining lease to update database3194 when it is unable to obtain lock3195 logs a warning3196 when the execution raises error3197 reraises error3198 #counter_attribute_enabled?3199 is true when counter attribute is defined3200 is false when counter attribute is not defined3201 with a conditional counter attribute3202 where the condition evaluates to true3203 is expected to eq true3204 where the condition evaluates to false3205 is expected to eq false3206 #initiate_refresh!3207 when counter attribute is enabled3208 initiates refresh on the BufferedCounter3209 when counter attribute is not enabled3210 raises error3211 #finalize_refresh3212 when counter attribute is enabled3213 initiates refresh on the BufferedCounter3214 when counter attribute is not enabled3215 raises error3216 #counter3217 returns the counter for the respective attribute3218 returns the appropriate counter for the attribute3219 raises error for unknown attribute3220 with a conditional counter attribute3221 enabled: true, expected_counter_class: Gitlab::Counters::BufferedCounter3222 returns the appropriate counter based on the condition3223 enabled: false, expected_counter_class: Gitlab::Counters::LegacyCounter3224 returns the appropriate counter based on the condition3225DraftNote3226 validations3227 behaves like a valid diff positionable note3228 for commit3229 position diff refs matches commit diff refs3230 is valid3231 position diff refs does not match commit diff refs3232 is invalid3233 commit does not exist3234 is invalid3235 original_position=3236 doesn't accept non-hash JSON passed as a string3237 does accept a position hash as a string3238 doesn't accept an array3239 does accept a hash3240 position=3241 doesn't accept non-hash JSON passed as a string3242 does accept a position hash as a string3243 doesn't accept an array3244 does accept a hash3245 change_position=3246 doesn't accept non-hash JSON passed as a string3247 does accept a position hash as a string3248 doesn't accept an array3249 does accept a hash3250 schema validation3251 position_attrs: {:old_path=>"IVlBK4FUkYuqintFA6FpJuwX9d53nmZDBWMiYPTJnD8BLFHoaBoYf10eNpkO4WDcfTcnf84IXDATGrw27SSiRlTZlrn6NKZ9Y7avn6lips4Y6THCqr3ajQmFdm152KsD3LyQxPym6M6lJCxHU5iZ2AJacGYftVpGSK2nTQ9mjSpVnzfgscbRcvePmNT6usq0UFFAl4W1hQElvHMiVBLFNhlk1pPdWEEmCkpoXsLEN5Fy2KJEzHVdQySC2XveyRYBwlwHqq5kl50SP4IizaGL50VWfea14NFQ44ru10zDxG0gzKt3pSjj7cEIF5GIhUBSWQRwSbGemCTeFc0vUG6I3mcv1ihO362zFzIfZoJ5jJMat20gL2LzRdICwrjjxdzTAtjWCYQ4Ts6XMySw83N8Tmtj4bCJ8EKuYNMktEQOG6L6DN4XtelMownXW1cC54CcGGCrLt5F0lExMzMx0bn1VCB6PPXPGByXQ8d6EqAze4CIp1MtW9roTXADpaSo8CUgwbm4nRGttCVlp3hydgtatqEMr6C06800RD4CyFOvdFiUE3Q1HL96qfFLsSi9mt82k6i6nJ2FA5Z9MQDNFzmZPkpUbQAmT62jnDyJJLRdi3u6bZctNf8CqV9oNDmmRrcZq0hrBdPTM4KXbbbuXjtxPADeNn3LmNRjKCBZVWqtvQdX7mPxoju7gqpxHoMegCbKgigl15GBYIJaeVfYrMDZ8onREh1zGbF34vutL5uTui9NNzExR0ZxTkvbTNPFqeuEsEz1jHjIqYMI5YZd6h3LB1WdBevYfE6UkZlw75RNwVvNOhrCjMFibU6WZLC3WqRundmxi3OevlIz69CM10Qk4J9mD9YXBsKk6hguvuRmpfpPiBfcXP7Mrk9BOolI9DvdjAUywGxSQbtBfrslYn9Ro82DmJsXQa9s4N7l7posgAJSQWuyKOdU9zws6bMsXEa0KNBra0kfrsNNJ2YGbuHZvYwYHzd4KWkGZdMvd1AZN"}3252 is expected to be invalid3253 position_attrs: {:new_path=>"qCns3PEueSq2yIqUFEoCCirPuzO1y6yBIGUd1x3CJrsPzCAmONISkatTWuoEqSr5H9jQQT2iOMALZ9788l6wgv2BVqIbzKVOYQpq9cbWi2Cx3XP49Ph6e4xUkatcqa3dLABUX81KbHGt1Hwl48Cb0K83rSyWVLIhYnRfK510qUzhbCMm3f5m7pfekYFRY8LQ3274V3ZnwmL4sxmVKPqakZgA0febVFAqzLZKk2qAhc3eEK9ylg9g3OiLQlJRTpVrK8K8F1YfQ5bBt2kWIwp0yzx7x1yRv1uEF9IeAik2vlQoNQ0vmyUYMcj9Db3rhpy5MFPxLbm9mJPUW8sOvLzJ2cSdlPqsQGBikVNSmiTbchutHMPnP8rekdYd0CloasbAhuYVl345dw1T3fDj4xciQr3Uzrhisb2h3BwPd6Y5IYaMaNPUi5zzVt51L98tfoc2levNMn49KXMD8qrjjxdCB2g6FfhR5A5BwummPQTztnxbn2NaC7mSP22nUwBkpNhyK28Vw6svfU6RZUYWOg7H4rHSwOnnAo56sdW9yhGllDCmXKEMekE6xodEv4zaStPyXa0kte4GfVQUjLL5Gfe2J6QpRCHMGeBOW9LfNejx9DofwnflXmLX17sVw0vU5AbvlKXdAwmS2NfipifPQzDdeL7yOVSO5EY4gM6XFGucmqaMedpmLaIb3L5NlSUEqeRojRbc1oUpUnblwaLYiCx2CLb0JfHveisEodEO4nv5SkuW1ym1lLbsfsOLWFMRWV5oY6QK7pkoFrv4izE0YoKG6fUnmcTe7m38ps1GpuZfvPkYX129DC4enAVfc2OQfRD9vMiRrPkDHwVhyv2fK9gRZyApJ9m8BgrS72VF3Xa7HYA2Wsgp7qlh0e4Gpw8kxzv8Dbror7Upx3lmlrJpKkdErV1SIeOv5MtrWeMI9jxGCodd0YWKnftkRjUul9DWGjnoOCKjQkQFDhhXysk3iNl2W5X3Ggm0Sq9h9wDm1VGxs"}3254 is expected to be invalid3255 position_attrs: {:old_line=>"foo"}3256 is expected to be invalid3257 position_attrs: {:new_line=>"foo"}3258 is expected to be invalid3259 position_attrs: {:line_range=>{:foo=>"bar"}}3260 is expected to be invalid3261 position_attrs: {:line_range=>{:line_code=>"78lskzDNMRHmRen7zAuHMcBxy1JLM7VEEwomq6cW6zNAK4f4VVzgPEPgo90EzR0PwNP7gILnUxnTlB5OTblVw1xKEwxvCI2U3Yn2t"}}3262 is expected to be invalid3263 position_attrs: {:line_range=>{:type=>"Wscig5QsDhIOa92PcsuW9R527NQlxp5FIdivBlarddNvenbupFE78T9fQYtSmYAnla0l4AxRXFROh4POjNm7ZIWLwAy1gb0QMnWlN"}}3264 is expected to be invalid3265 position_attrs: {:line_range=>{:old_line=>"foo"}}3266 is expected to be invalid3267 position_attrs: {:line_range=>{:new_line=>"foo"}}3268 is expected to be invalid3269 delegations3270 is expected to delegate #file_path to the #diff_file object, allowing #diff_file to return nil3271 is expected to delegate #file_hash to the #diff_file object, allowing #diff_file to return nil3272 is expected to delegate #file_identifier_hash to the #diff_file object, allowing #diff_file to return nil3273 #line_code3274 stored line_code3275 returns stored line_code3276 none stored line_code3277 returns found line_code3278 #diff_file3279 when diff_file exists3280 returns an unfolded diff_file3281 when diff_file does not exist3282 returns nil3283Integrations::Bamboo3284 behaves like Integrations::BaseCi3285 default values3286 is expected to eq :ci3287 behaves like Integrations::ResetSecretFields3288 #exposing_secrets_fields3289 returns an array of strings3290 #reset_secret_fields?3291 returns false if no exposing field has changed3292 returns true if any exposing field has changed3293 validation callback3294 when an exposing field has changed3295 clears all secret fields3296 when a secret field has been updated3297 does not clear this secret field3298 when a secret field has been updated with the same value3299 does not clear this secret field3300 when no exposing field has changed3301 does not clear any secret fields3302 accessors3303 is expected to respond to #enable_ssl_verification3304 is expected to respond to #enable_ssl_verification?3305 #initialize_properties3306 enables the setting by default3307 does not enable the setting if the record is already persisted3308 does not enable the setting if a custom value was set3309 #fields3310 inserts the checkbox field after the first URL field, or at the end3311 does not insert the field repeatedly3312 Validations3313 when active3314 is expected to validate that :build_key cannot be empty/falsy3315 is expected to validate that :bamboo_url cannot be empty/falsy3316 behaves like issue tracker integration URL attribute3317 is expected to allow :bamboo_url to be ‹"https://example.com"›3318 is expected not to allow :bamboo_url to be ‹"example.com"›3319 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›3320 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›3321 #username3322 does not validate the presence of username if password is nil3323 validates the presence of username if password is present3324 #password3325 does not validate the presence of password if username is nil3326 validates the presence of password if username is present3327 when inactive3328 is expected not to validate that :build_key cannot be empty/falsy3329 is expected not to validate that :bamboo_url cannot be empty/falsy3330 is expected not to validate that :username cannot be empty/falsy3331 is expected not to validate that :password cannot be empty/falsy3332 #execute3333 runs update and build action3334 #build_page3335 returns the contents of the reactive cache3336 #commit_status3337 returns the contents of the reactive cache3338 #calculate_reactive_cache3339 when Bamboo API returns single result3340 behaves like reactive cache calculation3341 #build_page3342 returns a specific URL when status is 5003343 returns a specific URL when response has no results3344 returns a build URL when bamboo_url has no trailing slash3345 bamboo_url has trailing slash3346 returns a build URL3347 #commit_status3348 sets commit status to :error when status is 5003349 sets commit status to "pending" when status is 4043350 sets commit status to "pending" when response has no results3351 sets commit status to "success" when build state contains Success3352 sets commit status to "failed" when build state contains Failed3353 sets commit status to "pending" when build state contains Pending3354 sets commit status to :error when build state is unknown3355 sets commit status to :error with a Net::OpenTimeout error3356 sets commit status to :error with a Net::ReadTimeout error3357 sets commit status to :error with a Net::WriteTimeout error3358 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3359 sets commit status to :error with a EOFError error3360 sets commit status to :error with a SocketError error3361 sets commit status to :error with a OpenSSL::SSL::SSLError error3362 sets commit status to :error with a OpenSSL::OpenSSLError error3363 sets commit status to :error with a Errno::ECONNRESET error3364 sets commit status to :error with a Errno::ECONNREFUSED error3365 sets commit status to :error with a Errno::EHOSTUNREACH error3366 sets commit status to :error with a Errno::ENETUNREACH error3367 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3368 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3369 sets commit status to :error with a Net::HTTPBadResponse error3370 when Bamboo API returns an array of results and we only consider the last one3371 behaves like reactive cache calculation3372 #build_page3373 returns a specific URL when status is 5003374 returns a specific URL when response has no results3375 returns a build URL when bamboo_url has no trailing slash3376 bamboo_url has trailing slash3377 returns a build URL3378 #commit_status3379 sets commit status to :error when status is 5003380 sets commit status to "pending" when status is 4043381 sets commit status to "pending" when response has no results3382 sets commit status to "success" when build state contains Success3383 sets commit status to "failed" when build state contains Failed3384 sets commit status to "pending" when build state contains Pending3385 sets commit status to :error when build state is unknown3386 sets commit status to :error with a Net::OpenTimeout error3387 sets commit status to :error with a Net::ReadTimeout error3388 sets commit status to :error with a Net::WriteTimeout error3389 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3390 sets commit status to :error with a EOFError error3391 sets commit status to :error with a SocketError error3392 sets commit status to :error with a OpenSSL::SSL::SSLError error3393 sets commit status to :error with a OpenSSL::OpenSSLError error3394 sets commit status to :error with a Errno::ECONNRESET error3395 sets commit status to :error with a Errno::ECONNREFUSED error3396 sets commit status to :error with a Errno::EHOSTUNREACH error3397 sets commit status to :error with a Errno::ENETUNREACH error3398 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3399 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3400 sets commit status to :error with a Net::HTTPBadResponse error3401WorkItems::CreateService3402 behaves like creates work item in container3403 #execute3404 when user is not allowed to create a work item in the container3405 is expected to be error3406 returns an access error3407 when applying quick actions3408 when work item type is not the default Issue3409 saves the work item without applying the quick action3410 when work item type is the default Issue3411 saves the work item and applies the quick action3412 when params are valid3413 created instance is a WorkItem3414 calls NewIssueWorker with correct arguments3415 when params are invalid3416 is expected to be error3417 returns validation errors3418 does not execute after-create transaction widgets3419 checking spam3420 executes SpamActionService3421 behaves like work item widgetable service3422 executes callbacks for expected widgets3423 hierarchy widget3424 when user can admin parent link3425 when parent is valid work item3426 creates new work item and sets parent reference3427 when parent type is invalid3428 behaves like fails creating work item and returns errors3429 does not create new work item if parent can not be set3430 when user cannot admin parent link3431 behaves like fails creating work item and returns errors3432 does not create new work item if parent can not be set3433 behaves like creates work item in container3434 #execute3435 when user is not allowed to create a work item in the container3436 is expected to be error3437 returns an access error3438 when applying quick actions3439 when work item type is not the default Issue3440 saves the work item without applying the quick action3441 when work item type is the default Issue3442 saves the work item and applies the quick action3443 when params are valid3444 created instance is a WorkItem3445 calls NewIssueWorker with correct arguments3446 when params are invalid3447 is expected to be error3448 returns validation errors3449 does not execute after-create transaction widgets3450 checking spam3451 executes SpamActionService3452 behaves like work item widgetable service3453 executes callbacks for expected widgets3454 hierarchy widget3455 when user can admin parent link3456 when parent is valid work item3457 creates new work item and sets parent reference3458 when parent type is invalid3459 behaves like fails creating work item and returns errors3460 does not create new work item if parent can not be set3461 when user cannot admin parent link3462 behaves like fails creating work item and returns errors3463 does not create new work item if parent can not be set3464 behaves like creates work item in container3465 #execute3466 when user is not allowed to create a work item in the container3467 is expected to be error3468 returns an access error3469 when applying quick actions3470 when work item type is not the default Issue3471 saves the work item without applying the quick action3472 when work item type is the default Issue3473 saves the work item and applies the quick action3474 when params are valid3475 created instance is a WorkItem3476 calls NewIssueWorker with correct arguments3477 when params are invalid3478 is expected to be error3479 returns validation errors3480 does not execute after-create transaction widgets3481 checking spam3482 executes SpamActionService3483 behaves like work item widgetable service3484 executes callbacks for expected widgets3485 hierarchy widget3486 when user can admin parent link3487 when parent is valid work item3488 creates new work item and sets parent reference3489 when parent type is invalid3490 behaves like fails creating work item and returns errors3491 does not create new work item if parent can not be set3492 when user cannot admin parent link3493 behaves like fails creating work item and returns errors3494 does not create new work item if parent can not be set3495Gitlab::Database::PostgresForeignKey3496 #by_referenced_table_identifier3497 throws an error when the identifier name is not fully qualified3498 finds the foreign keys for the referenced table3499 #by_referenced_table_name3500 finds the foreign keys for the referenced table3501 #by_constrained_table_identifier3502 throws an error when the identifier name is not fully qualified3503 finds the foreign keys for the constrained table3504 #by_constrained_table_name3505 finds the foreign keys for the constrained table3506 #by_constrained_table_name_or_identifier3507 when using table name3508 finds the foreign keys for the constrained table3509 when using identifier3510 finds the foreign keys for the constrained table3511 #by_name3512 finds foreign keys by name3513 when finding columns for foreign keys3514 fk: lazy { described_class.find_by(name: 'fk_constrained_to_referenced') }, expected_constrained: ["referenced_table_id", "referenced_table_id_b"], expected_referenced: ["id", "id_b"]3515 finds the correct constrained column names3516 finds the correct referenced column names3517 #by_constrained_columns3518 finds the correct foreign key3519 #by_referenced_columns3520 finds the correct foreign key3521 fk: lazy { described_class.find_by(name: 'fk_constrained_to_other_referenced') }, expected_constrained: ["other_referenced_table_id"], expected_referenced: ["id"]3522 finds the correct constrained column names3523 finds the correct referenced column names3524 #by_constrained_columns3525 finds the correct foreign key3526 #by_referenced_columns3527 finds the correct foreign key3528 #on_delete_action and #on_update_action3529 with an invalid on_delete_action3530 raises an error3531 fk_name: "fk_no_action", expected_action: "no_action"3532 has the appropriate on delete action3533 has the appropriate on update action3534 #by_on_delete_action3535 finds the key by on delete action3536 #by_on_update_action3537 finds the key by on update action3538 fk_name: "fk_restrict", expected_action: "restrict"3539 has the appropriate on delete action3540 has the appropriate on update action3541 #by_on_delete_action3542 finds the key by on delete action3543 #by_on_update_action3544 finds the key by on update action3545 fk_name: "fk_nullify", expected_action: "nullify"3546 has the appropriate on delete action3547 has the appropriate on update action3548 #by_on_delete_action3549 finds the key by on delete action3550 #by_on_update_action3551 finds the key by on update action3552 fk_name: "fk_cascade", expected_action: "cascade"3553 has the appropriate on delete action3554 has the appropriate on update action3555 #by_on_delete_action3556 finds the key by on delete action3557 #by_on_update_action3558 finds the key by on update action3559 fk_name: "fk_set_default", expected_action: "set_default"3560 has the appropriate on delete action3561 has the appropriate on update action3562 #by_on_delete_action3563 finds the key by on delete action3564 #by_on_update_action3565 finds the key by on update action3566 when supporting foreign keys on partitioned tables3567 #is_inherited3568 fk: lazy { described_class.find_by(name: 'fk_inherited') }, inherited: false3569 has the appropriate inheritance value3570 fk: lazy { described_class.by_referenced_table_identifier(schema_table_name('child')).first! }, inherited: true3571 has the appropriate inheritance value3572 fk: lazy { described_class.find_by(name: 'fk_constrained_to_referenced') }, inherited: false3573 has the appropriate inheritance value3574 #not_inherited3575 lists all non-inherited foreign keys3576 with two tables both partitioned3577 #child_foreign_keys3578 is the child foreign keys of the partitioned parent fk3579WorkItems::ParentLinks::CreateService3580 #execute3581 when the reference list is empty3582 behaves like returns not found error3583 returns error3584 no relationship is created3585 when work item not found3586 behaves like returns not found error3587 returns error3588 no relationship is created3589 when user has no permission to link work items3590 behaves like returns not found error3591 returns error3592 no relationship is created3593 child and parent are the same work item3594 no relationship is created3595 when adjacent is already in place3596 adjacent_position: -100, expected_order: lazy { [adjacent, current_item] }3597 sets relative positions3598 adjacent_position: 0, expected_order: lazy { [adjacent, current_item] }3599 sets relative positions3600 adjacent_position: 100, expected_order: lazy { [adjacent, current_item] }3601 sets relative positions3602 when there are tasks to relate3603 creates relationships3604 returns success status and created links3605 creates notes and records the events3606 when note creation fails for some reason3607 still records the link event3608 still records the link event3609 when task is already assigned3610 creates links only for non related tasks3611 when there are invalid children3612 creates links only for valid children3613 returns error status3614 creates notes for valid links3615 when parent type is invalid3616 returns error status3617 when max depth is reached3618 returns error status3619 when params include invalid ids3620 creates links only for valid IDs3621 when user is a guest3622 behaves like returns not found error3623 returns error3624 no relationship is created3625 when user is a guest assigned to the work item3626 behaves like returns not found error3627 returns error3628 no relationship is created3629Projects::HashedStorage::RollbackRepositoryService3630 #execute3631 works even when project validation fails3632 repository lock3633 tries to lock the repository3634 fails when a git operation is in progress3635 when repository doesnt exist on disk3636 skips the disk change but decrease the version3637 when succeeds3638 renames project, wiki and design repositories3639 updates project to be legacy and not read-only3640 move operation is called for both repositories3641 writes project full path to gitaly3642 when exception happens3643 handles OpenSSL::Cipher::CipherError3644 ensures rollback when OpenSSL::Cipher::CipherError3645 handles Gitlab::Git::CommandError3646 ensures rollback when Gitlab::Git::CommandError3647 when one move fails3648 rolls repositories back to original name3649 when rollback fails3650 does not try to move nil repository over existing3651EmailsHelper3652 closure_reason_text3653 when given a MergeRequest3654 when user can read merge request3655 and format is text3656 returns plain text3657 and format is HTML3658 returns HTML3659 and format is unknown3660 returns plain text3661 when user cannot read merge request3662 does not have link to merge request3663 when given a String3664 when user can read commits3665 returns plain text3666 when user cannot read commits3667 returns plain text3668 when not given anything3669 returns empty string3670 notification_reason_text3671 reason_code: "own_activity", reason_text: " of your activity "3672 is expected to start with "You're receiving this email because"3673 is expected to include " of your activity "3674 is expected to end with "on localhost."3675 reason_code: "assigned", reason_text: " you have been assigned an item "3676 is expected to start with "You're receiving this email because"3677 is expected to include " you have been assigned an item "3678 is expected to end with "on localhost."3679 reason_code: "mentioned", reason_text: " you have been mentioned "3680 is expected to start with "You're receiving this email because"3681 is expected to include " you have been mentioned "3682 is expected to end with "on localhost."3683 reason_code: "", reason_text: " of your account "3684 is expected to start with "You're receiving this email because"3685 is expected to include " of your account "3686 is expected to end with "on localhost."3687 reason_code: nil, reason_text: " of your account "3688 is expected to start with "You're receiving this email because"3689 is expected to include " of your account "3690 is expected to end with "on localhost."3691 sanitize_name3692 when name contains a valid URL string3693 returns name with `.` replaced with `_` to prevent mail clients from auto-linking URLs3694 returns name as it is when it does not contain a URL3695 #say_hi3696 returns the greeting message for the given user3697 #say_hello3698 returns the greeting message for the given user3699 #two_factor_authentication_disabled_text3700 returns the message that 2FA is disabled3701 #re_enable_two_factor_authentication_text3702 format is html3703 returns HTML3704 format is not specified3705 returns text3706 #admin_changed_password_text3707 format is html3708 returns HTML3709 format is not specified3710 returns text3711 #contact_your_administrator_text3712 returns the message to contact the administrator3713 password_reset_token_valid_time3714 when time limit is less than 2 hours3715 displays the time in hours using a singular unit3716 when time limit is 2 or more hours3717 displays the time in hours using a plural unit3718 when time limit contains fractions of an hour3719 rounds down to the nearest hour3720 when time limit is 24 or more hours3721 displays the time in days using a singular unit3722 when time limit is 2 or more days3723 displays the time in days using a plural unit3724 when time limit contains fractions of a day3725 rounds down to the nearest day3726 #header_logo3727 there is a brand item with a logo3728 returns the brand header logo3729 that is a SVG file3730 returns the default header logo3731 there is a brand item without a logo3732 returns the default header logo3733 there is no brand item3734 returns the default header logo3735 #create_list_id_string3736 full_path: "01234", list_id_path: "01234"3737 ellipcizes different variants3738 full_path: "5/0123", list_id_path: "012.."3739 ellipcizes different variants3740 full_path: "45/012", list_id_path: "012.."3741 ellipcizes different variants3742 full_path: "012", list_id_path: "012"3743 ellipcizes different variants3744 full_path: "23/01", list_id_path: "01.23"3745 ellipcizes different variants3746 full_path: "2/01", list_id_path: "01.2"3747 ellipcizes different variants3748 full_path: "234/01", list_id_path: "01.."3749 ellipcizes different variants3750 full_path: "4/2/0", list_id_path: "0.2.4"3751 ellipcizes different variants3752 full_path: "45/2/0", list_id_path: "0.2.."3753 ellipcizes different variants3754 full_path: "5/23/0", list_id_path: "0.."3755 ellipcizes different variants3756 full_path: "0-2/5", list_id_path: "5.0-2"3757 ellipcizes different variants3758 full_path: "0_2/5", list_id_path: "5.0-2"3759 ellipcizes different variants3760 full_path: "0.2/5", list_id_path: "5.0-2"3761 ellipcizes different variants3762 Create realistic List-Id identifier3763 full_path: "gitlab-org/gitlab-ce", list_id_path: "gitlab-ce.gitlab-org"3764 produces the right List-Id3765 full_path: "project-name/subproject_name/my.project", list_id_path: "my-project.subproject-name.project-name"3766 produces the right List-Id3767 header and footer messages3768 when email_header_and_footer_enabled is enabled3769 returns header and footer messages3770 when header and footer messages are empty3771 returns nil3772 when header and footer messages are nil3773 returns nil3774 when email_header_and_footer_enabled is disabled3775 returns header and footer messages3776 #change_reviewer_notification_text3777 to new reviewers only3778 with no html tag3779 returns the expected output3780 with <strong> tag3781 returns the expected output3782 from previous reviewers to new reviewers3783 with no html tag3784 returns the expected output3785 with <strong> tag3786 returns the expected output3787 from previous reviewers to no reviewers3788 with no html tag3789 returns the expected output3790 with <strong> tag3791 returns the expected output3792 with a <script> tag in user's name3793 escapes the html tag3794 with url in user's name3795 sanitizes user's name3796Gitlab::Utils::Markdown3797 # order random3798 #string_to_anchor3799 converts string to anchor3800 when string has punctuation3801 removes punctuation3802 when string starts and ends with spaces3803 removes extra spaces3804 when string has multiple spaces and dashes in the middle3805 removes consecutive dashes3806 when string contains only digits3807 adds anchor prefix3808 when string has a product suffix3809 CORE3810 ignores a product suffix3811 with "*" around a product suffix3812 ignores a product suffix3813 CORE ONLY3814 ignores a product suffix3815 with "*" around a product suffix3816 ignores a product suffix3817 CORE SELF3818 ignores a product suffix3819 with "*" around a product suffix3820 ignores a product suffix3821 CORE SASS3822 ignores a product suffix3823 with "*" around a product suffix3824 ignores a product suffix3825 STARTER3826 ignores a product suffix3827 with "*" around a product suffix3828 ignores a product suffix3829 STARTER ONLY3830 ignores a product suffix3831 with "*" around a product suffix3832 ignores a product suffix3833 STARTER SELF3834 ignores a product suffix3835 with "*" around a product suffix3836 ignores a product suffix3837 STARTER SASS3838 ignores a product suffix3839 with "*" around a product suffix3840 ignores a product suffix3841 PREMIUM3842 ignores a product suffix3843 with "*" around a product suffix3844 ignores a product suffix3845 PREMIUM ONLY3846 ignores a product suffix3847 with "*" around a product suffix3848 ignores a product suffix3849 PREMIUM SELF3850 ignores a product suffix3851 with "*" around a product suffix3852 ignores a product suffix3853 PREMIUM SASS3854 ignores a product suffix3855 with "*" around a product suffix3856 ignores a product suffix3857 ULTIMATE3858 ignores a product suffix3859 with "*" around a product suffix3860 ignores a product suffix3861 ULTIMATE ONLY3862 ignores a product suffix3863 with "*" around a product suffix3864 ignores a product suffix3865 ULTIMATE SELF3866 ignores a product suffix3867 with "*" around a product suffix3868 ignores a product suffix3869 ULTIMATE SASS3870 ignores a product suffix3871 with "*" around a product suffix3872 ignores a product suffix3873 FREE3874 ignores a product suffix3875 with "*" around a product suffix3876 ignores a product suffix3877 FREE ONLY3878 ignores a product suffix3879 with "*" around a product suffix3880 ignores a product suffix3881 FREE SELF3882 ignores a product suffix3883 with "*" around a product suffix3884 ignores a product suffix3885 FREE SASS3886 ignores a product suffix3887 with "*" around a product suffix3888 ignores a product suffix3889 BRONZE3890 ignores a product suffix3891 with "*" around a product suffix3892 ignores a product suffix3893 BRONZE ONLY3894 ignores a product suffix3895 with "*" around a product suffix3896 ignores a product suffix3897 BRONZE SELF3898 ignores a product suffix3899 with "*" around a product suffix3900 ignores a product suffix3901 BRONZE SASS3902 ignores a product suffix3903 with "*" around a product suffix3904 ignores a product suffix3905 SILVER3906 ignores a product suffix3907 with "*" around a product suffix3908 ignores a product suffix3909 SILVER ONLY3910 ignores a product suffix3911 with "*" around a product suffix3912 ignores a product suffix3913 SILVER SELF3914 ignores a product suffix3915 with "*" around a product suffix3916 ignores a product suffix3917 SILVER SASS3918 ignores a product suffix3919 with "*" around a product suffix3920 ignores a product suffix3921 GOLD3922 ignores a product suffix3923 with "*" around a product suffix3924 ignores a product suffix3925 GOLD ONLY3926 ignores a product suffix3927 with "*" around a product suffix3928 ignores a product suffix3929 GOLD SELF3930 ignores a product suffix3931 with "*" around a product suffix3932 ignores a product suffix3933 GOLD SASS3934 ignores a product suffix3935 with "*" around a product suffix3936 ignores a product suffix3937 when string is empty3938 returns an empty string3939Clusters::UpdateService3940 #execute3941 when correct params3942 when enabled is true3943 enables cluster3944 when enabled is false3945 disables cluster3946 when namespace is specified3947 updates namespace3948 when service token is empty3949 does not update the token3950 when service token is not empty3951 updates the token3952 when invalid params3953 returns false3954 when cluster is provided by GCP3955 does not change cluster name3956 when cluster is being created3957 rejects changes3958 when params includes :management_project_id3959 management_project is non-existent3960 does not update management_project_id3961 project cluster3962 user is authorized to adminster manangement_project3963 updates management_project_id3964 user is not authorized to adminster manangement_project3965 does not update management_project_id3966 cluster already has a management project set3967 unsets management_project_id3968 manangement_project is outside of the namespace scope3969 does not update management_project_id3970 group cluster3971 user is authorized to adminster manangement_project3972 updates management_project_id3973 user is not authorized to adminster manangement_project3974 does not update management_project_id3975 cluster already has a management project set3976 unsets management_project_id3977 manangement_project is outside of the namespace scope3978 does not update management_project_id3979 instance cluster3980 user is authorized to adminster manangement_project3981 updates management_project_id3982 user is not authorized to adminster manangement_project3983 does not update management_project_id3984 cluster already has a management project set3985 unsets management_project_id3986Projects::AutocompleteService3987 #issues3988 confidential issues3989 does not list project confidential issues for guests3990 does not list project confidential issues for non project members3991 does not list project confidential issues for project members with guest role3992 lists project confidential issues for author3993 lists project confidential issues for assignee3994 lists project confidential issues for project members3995 when admin mode is enabled3996 lists all project issues for admin3997 when admin mode is disabled3998 does not list project confidential issues for admin3999 #milestones4000 includes project and group milestones and sorts them correctly4001 does not include closed milestones4002 does not include milestones from other projects in the group4003 with nested groups4004 includes project milestones and all acestors milestones4005 #contacts4006 returns CRM contacts from group4007 some contacts are already assigned to the issue4008 marks already assigned contacts as set4009 #labels_as_hash4010 returns labels from project and ancestor groups4011 some labels are already assigned4012 marks already assigned as set4013Gitlab::Redis::RepositoryCache4014 # order random4015 .cache_store4016 has a default ttl of 8 hours4017 #fetch_config4018 when redis.yml exists4019 when the fallback has a redis.yml entry4020 is expected to eq {"fallback redis.yml"=>123}4021 and an instance config file exists4022 is expected to eq {"instance specific file"=>456}4023 and the instance has a redis.yml entry4024 is expected to eq {"instance redis.yml"=>789}4025 when no redis config file exsits4026 returns nil4027 when resque.yml exists4028 returns the config from resque.yml4029 behaves like redis_shared_examples4030 .config_file_name4031 when there is no config file anywhere4032 is expected to be nil4033 .store4034 with old format4035 behaves like redis store4036 instantiates Redis::Store4037 with the namespace4038 uses specified namespace4039 with new format4040 behaves like redis store4041 instantiates Redis::Store4042 with the namespace4043 uses specified namespace4044 .params4045 withstands mutation4046 when url contains unix socket reference4047 with old format4048 returns path key instead4049 with new format4050 returns path key instead4051 when url is host based4052 with old format4053 returns hash with host, port, db, and password4054 with new format4055 rails_env: "development", host: "development-host"4056 returns hash with host, port, db, and password4057 rails_env: "test", host: "test-host"4058 returns hash with host, port, db, and password4059 rails_env: "production", host: "production-host"4060 returns hash with host, port, db, and password4061 with redis cluster format4062 rails_env: "development", host: "development-master"4063 returns hash with cluster and password4064 rails_env: "test", host: "test-master"4065 returns hash with cluster and password4066 rails_env: "production", host: "production-master"4067 returns hash with cluster and password4068 .url4069 withstands mutation4070 when yml file with env variable4071 reads redis url from env variable4072 .version4073 returns a version4074 .with4075 when running on single-threaded runtime4076 instantiates a connection pool with size 54077 when running on multi-threaded runtime4078 instantiates a connection pool with a size based on the concurrency of the worker4079 when there is no config at all4080 can run an empty block4081 #db4082 with old format4083 returns the correct db4084 with new format4085 returns the correct db4086 with cluster-mode4087 returns the correct db4088 #sentinels4089 when sentinels are defined4090 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4091 returns an array of hashes with host and port keys4092 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4093 returns an array of hashes with host and port keys4094 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4095 returns an array of hashes with host and port keys4096 when sentinels are not defined4097 returns nil4098 when cluster is defined4099 returns nil4100 #sentinels?4101 when sentinels are defined4102 returns true4103 when sentinels are not defined4104 is expected to eq nil4105 when cluster is defined4106 returns false4107 #raw_config_hash4108 returns old-style single url config in a hash4109 returns cluster config without url key in a hash4110 #fetch_config4111 raises an exception when the config file contains invalid yaml4112 when redis.yml exists4113 uses config/redis.yml4114 when no config file exsits4115 returns nil4116 when resque.yml exists4117 returns the config from resque.yml4118ClusterAncestorsFinder#execute4119 for a project4120 returns the project clusters followed by group clusters4121 nested groups4122 returns the project clusters followed by group clusters ordered ascending the hierarchy4123 user cannot read clusters for clusterable4124 returns nothing4125 for a group4126 returns the list of group clusters4127 nested groups4128 returns the list of group clusters ordered ascending the hierarchy4129 for an instance4130 when admin mode is enabled4131 returns the list of instance clusters4132 when admin mode is disabled4133 returns nothing4134ExtractsPath4135 #assign_ref_vars4136 log tree path has no escape sequences4137 behaves like assigns ref vars4138 assigns the repository var4139 ref contains %204140 is not converted to a space in @id4141 ref contains trailing space4142 strips surrounding space4143 ref contains leading space4144 strips surrounding space4145 path contains space4146 is not converted to %20 in @path4147 subclass overrides get_id4148 uses ref returned by get_id4149 ref contains space in the middle4150 returns 4044151 ref only exists without .atom suffix4152 with a path4153 renders a 4044154 without a path4155 sets the un-suffixed version as @ref4156 sets the request format to Atom4157 ref exists with .atom suffix4158 with a path4159 sets the suffixed version as @ref4160 does not change the request format4161 without a path4162 sets the suffixed version as @ref4163 does not change the request format4164 ref and path are nil4165 does not set commit4166 ref points to a previous default branch4167 redirects to the new default branch for a GET request4168 redirects to the new default branch for a HEAD request4169 returns 404 for any other request type4170 redirect behaviour is disabled4171 returns 404 for a GET request4172 behaves like extracts refs4173 #extract_ref4174 returns an empty pair when no repository_container is set4175 without a path4176 extracts a valid branch4177 extracts a valid tag4178 extracts a valid commit ref without a path4179 falls back to a primitive split for an invalid ref4180 does not fetch ref names when there is no slash4181 fetches ref names when there is a slash4182 with a path4183 extracts a valid branch4184 extracts a valid tag4185 extracts a valid commit SHA4186 falls back to a primitive split for an invalid ref4187 extracts the longest matching ref4188 when the repository does not have ambiguous refs4189 does not fetch all ref names when the first path component is a ref4190 fetches all ref names when the first path component is not a ref4191 when the repository has ambiguous refs4192 always fetches all ref names4193 #extract_ref_without_atom4194 ignores any matching refs suffixed with atom4195 returns the longest matching ref4196 raises an error if there are no matching refs4197Packages::Debian::DistributionReleaseFileUploader4198 Packages::Debian::ProjectDistribution4199 behaves like builds correct paths4200 #store_dir4201 behaves like matches the method pattern4202 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_distribution\/\d+$/4203 #cache_dir4204 behaves like matches the method pattern4205 is expected to match /\/packages\/tmp\/cache$/4206 #work_dir4207 behaves like matches the method pattern4208 is expected to match /\/packages\/tmp\/work$/4209 #upload_path4210 behaves like matches the method pattern4211 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4212 #relative_path4213 is relative (PENDING: Path not set, skipping.)4214 .absolute_path4215 behaves like matches the method pattern4216 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4217 .base_dir4218 behaves like matches the method pattern4219 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4220 path traversal exploits4221 throws an exception4222 object store is remote4223 behaves like builds correct paths4224 #store_dir4225 behaves like matches the method pattern4226 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_distribution\/\d+$/4227 #cache_dir4228 behaves like matches the method pattern4229 is expected to match /\/packages\/tmp\/cache$/4230 #work_dir4231 behaves like matches the method pattern4232 is expected to match /\/packages\/tmp\/work$/4233 #upload_path4234 behaves like matches the method pattern4235 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4236 #relative_path4237 is relative (PENDING: Path not set, skipping.)4238 .absolute_path4239 behaves like matches the method pattern4240 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4241 .base_dir4242 behaves like matches the method pattern4243 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4244 path traversal exploits4245 throws an exception4246 remote file4247 with object storage enabled4248 can store file remotely4249 #filename4250 is expected to eq "Release"4251 with signed_file4252 is expected to eq "InRelease"4253 Packages::Debian::GroupDistribution4254 behaves like builds correct paths4255 #store_dir4256 behaves like matches the method pattern4257 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_distribution\/\d+$/4258 #cache_dir4259 behaves like matches the method pattern4260 is expected to match /\/packages\/tmp\/cache$/4261 #work_dir4262 behaves like matches the method pattern4263 is expected to match /\/packages\/tmp\/work$/4264 #upload_path4265 behaves like matches the method pattern4266 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4267 #relative_path4268 is relative (PENDING: Path not set, skipping.)4269 .absolute_path4270 behaves like matches the method pattern4271 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4272 .base_dir4273 behaves like matches the method pattern4274 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4275 path traversal exploits4276 throws an exception4277 object store is remote4278 behaves like builds correct paths4279 #store_dir4280 behaves like matches the method pattern4281 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_distribution\/\d+$/4282 #cache_dir4283 behaves like matches the method pattern4284 is expected to match /\/packages\/tmp\/cache$/4285 #work_dir4286 behaves like matches the method pattern4287 is expected to match /\/packages\/tmp\/work$/4288 #upload_path4289 behaves like matches the method pattern4290 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4291 #relative_path4292 is relative (PENDING: Path not set, skipping.)4293 .absolute_path4294 behaves like matches the method pattern4295 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4296 .base_dir4297 behaves like matches the method pattern4298 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4299 path traversal exploits4300 throws an exception4301 remote file4302 with object storage enabled4303 can store file remotely4304 #filename4305 is expected to eq "Release"4306 with signed_file4307 is expected to eq "InRelease"4308BulkImports::Clients::HTTP4309 #get4310 performs network request4311 error handling4312 when any known HTTP error occurs4313 exception_class: Net::OpenTimeout4314 raises BulkImports::NetworkError4315 exception_class: Net::ReadTimeout4316 raises BulkImports::NetworkError4317 exception_class: Net::WriteTimeout4318 raises BulkImports::NetworkError4319 exception_class: Gitlab::HTTP::ReadTotalTimeout4320 raises BulkImports::NetworkError4321 exception_class: EOFError4322 raises BulkImports::NetworkError4323 exception_class: SocketError4324 raises BulkImports::NetworkError4325 exception_class: OpenSSL::SSL::SSLError4326 raises BulkImports::NetworkError4327 exception_class: OpenSSL::OpenSSLError4328 raises BulkImports::NetworkError4329 exception_class: Errno::ECONNRESET4330 raises BulkImports::NetworkError4331 exception_class: Errno::ECONNREFUSED4332 raises BulkImports::NetworkError4333 exception_class: Errno::EHOSTUNREACH4334 raises BulkImports::NetworkError4335 exception_class: Errno::ENETUNREACH4336 raises BulkImports::NetworkError4337 exception_class: Gitlab::HTTP::BlockedUrlError4338 raises BulkImports::NetworkError4339 exception_class: Gitlab::HTTP::RedirectionTooDeep4340 raises BulkImports::NetworkError4341 exception_class: Net::HTTPBadResponse4342 raises BulkImports::NetworkError4343 when response is not success4344 raises BulkImports::NetworkError4345 #each_page4346 with a block4347 yields every retrieved page to the supplied block4348 without a block4349 returns an Enumerator4350 when the request is asynchronous4351 sets a timeout that is double the default read timeout4352 #post4353 performs network request4354 error handling4355 when any known HTTP error occurs4356 exception_class: Net::OpenTimeout4357 raises BulkImports::NetworkError4358 exception_class: Net::ReadTimeout4359 raises BulkImports::NetworkError4360 exception_class: Net::WriteTimeout4361 raises BulkImports::NetworkError4362 exception_class: Gitlab::HTTP::ReadTotalTimeout4363 raises BulkImports::NetworkError4364 exception_class: EOFError4365 raises BulkImports::NetworkError4366 exception_class: SocketError4367 raises BulkImports::NetworkError4368 exception_class: OpenSSL::SSL::SSLError4369 raises BulkImports::NetworkError4370 exception_class: OpenSSL::OpenSSLError4371 raises BulkImports::NetworkError4372 exception_class: Errno::ECONNRESET4373 raises BulkImports::NetworkError4374 exception_class: Errno::ECONNREFUSED4375 raises BulkImports::NetworkError4376 exception_class: Errno::EHOSTUNREACH4377 raises BulkImports::NetworkError4378 exception_class: Errno::ENETUNREACH4379 raises BulkImports::NetworkError4380 exception_class: Gitlab::HTTP::BlockedUrlError4381 raises BulkImports::NetworkError4382 exception_class: Gitlab::HTTP::RedirectionTooDeep4383 raises BulkImports::NetworkError4384 exception_class: Net::HTTPBadResponse4385 raises BulkImports::NetworkError4386 when response is not success4387 raises BulkImports::NetworkError4388 #head4389 performs network request4390 error handling4391 when any known HTTP error occurs4392 exception_class: Net::OpenTimeout4393 raises BulkImports::NetworkError4394 exception_class: Net::ReadTimeout4395 raises BulkImports::NetworkError4396 exception_class: Net::WriteTimeout4397 raises BulkImports::NetworkError4398 exception_class: Gitlab::HTTP::ReadTotalTimeout4399 raises BulkImports::NetworkError4400 exception_class: EOFError4401 raises BulkImports::NetworkError4402 exception_class: SocketError4403 raises BulkImports::NetworkError4404 exception_class: OpenSSL::SSL::SSLError4405 raises BulkImports::NetworkError4406 exception_class: OpenSSL::OpenSSLError4407 raises BulkImports::NetworkError4408 exception_class: Errno::ECONNRESET4409 raises BulkImports::NetworkError4410 exception_class: Errno::ECONNREFUSED4411 raises BulkImports::NetworkError4412 exception_class: Errno::EHOSTUNREACH4413 raises BulkImports::NetworkError4414 exception_class: Errno::ENETUNREACH4415 raises BulkImports::NetworkError4416 exception_class: Gitlab::HTTP::BlockedUrlError4417 raises BulkImports::NetworkError4418 exception_class: Gitlab::HTTP::RedirectionTooDeep4419 raises BulkImports::NetworkError4420 exception_class: Net::HTTPBadResponse4421 raises BulkImports::NetworkError4422 when response is not success4423 raises BulkImports::NetworkError4424 #stream4425 performs network request with stream_body option4426 #instance_version4427 returns version as an instance of Gitlab::VersionInfo4428 when /version endpoint is not available4429 requests /metadata endpoint4430 when /metadata endpoint returns a 4014431 raises a BulkImports:Error4432 when /metadata endpoint returns a 4034433 raises a BulkImports:Error4434 when /metadata endpoint returns a 4044435 raises a BulkImports:Error4436 when /metadata endpoint returns any other BulkImports::NetworkError4437 raises a BulkImports:NetworkError4438 #validate_instance_version!4439 when instance version is greater than or equal to the minimum major version4440 is expected to eq true4441 when instance version is less than the minimum major version4442 is expected to raise BulkImports::Error4443 #validate_import_scopes!4444 when the source_version is < 15.54445 skips validation4446 when source version is 15.5 or higher4447 when an HTTP error is raised4448 raises BulkImports::NetworkError4449 when scopes are valid4450 returns true4451 when scopes are invalid4452 raises a BulkImports error4453 #instance_enterprise4454 returns source instance enterprise information4455 when enterprise information is missing4456 defaults to true4457 #compatible_for_project_migration?4458 when instance version is lower the the expected minimum4459 returns false4460 when instance version is at least the expected minimum4461 returns true4462 when url is relative4463 performs network request to a relative gitlab url4464Gitlab::PrometheusClient4465 #ping4466 issues a "query" request to the API endpoint4467 #healthy?4468 returns true when status code is 200 and healthy response body4469 returns false when status code is 200 and unhealthy response body4470 raises error when status code not 2004471 #ready?4472 returns true when status code is 2004473 returns false when status code is not 2004474 raises error when ready api throws exception4475 failure to reach a provided prometheus url4476 ping4477 behaves like exceptions are raised4478 raises a Gitlab::PrometheusClient::ConnectionError when a Net::OpenTimeout is rescued4479 raises a Gitlab::PrometheusClient::ConnectionError when a Net::ReadTimeout is rescued4480 raises a Gitlab::PrometheusClient::ConnectionError when a Net::WriteTimeout is rescued4481 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP::ReadTotalTimeout is rescued4482 raises a Gitlab::PrometheusClient::ConnectionError when a EOFError is rescued4483 raises a Gitlab::PrometheusClient::ConnectionError when a SocketError is rescued4484 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::SSL::SSLError is rescued4485 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::OpenSSLError is rescued4486 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNRESET is rescued4487 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNREFUSED is rescued4488 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::EHOSTUNREACH is rescued4489 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ENETUNREACH is rescued4490 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP::BlockedUrlError is rescued4491 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP::RedirectionTooDeep is rescued4492 raises a Gitlab::PrometheusClient::ConnectionError when a Net::HTTPBadResponse is rescued4493 proxy4494 behaves like exceptions are raised4495 raises a Gitlab::PrometheusClient::ConnectionError when a Net::OpenTimeout is rescued4496 raises a Gitlab::PrometheusClient::ConnectionError when a Net::ReadTimeout is rescued4497 raises a Gitlab::PrometheusClient::ConnectionError when a Net::WriteTimeout is rescued4498 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP::ReadTotalTimeout is rescued4499 raises a Gitlab::PrometheusClient::ConnectionError when a EOFError is rescued4500 raises a Gitlab::PrometheusClient::ConnectionError when a SocketError is rescued4501 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::SSL::SSLError is rescued4502 raises a Gitlab::PrometheusClient::ConnectionError when a OpenSSL::OpenSSLError is rescued4503 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNRESET is rescued4504 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ECONNREFUSED is rescued4505 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::EHOSTUNREACH is rescued4506 raises a Gitlab::PrometheusClient::ConnectionError when a Errno::ENETUNREACH is rescued4507 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP::BlockedUrlError is rescued4508 raises a Gitlab::PrometheusClient::ConnectionError when a Gitlab::HTTP::RedirectionTooDeep is rescued4509 raises a Gitlab::PrometheusClient::ConnectionError when a Net::HTTPBadResponse is rescued4510 #query4511 when request returns vector results4512 returns data from the API call4513 when request returns matrix results4514 returns nil4515 when request returns no data4516 returns []4517 behaves like failure response4518 when request returns 400 with an error message4519 raises a Gitlab::PrometheusClient::QueryError error4520 when request returns 400 without an error message4521 raises a Gitlab::PrometheusClient::QueryError error4522 when request returns 5004523 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4524 when request returns non json data4525 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4526 #aggregate4527 when request returns vector results4528 returns data from the API call grouped by labels4529 when request returns no data4530 returns {}4531 behaves like failure response4532 when request returns 400 with an error message4533 raises a Gitlab::PrometheusClient::QueryError error4534 when request returns 400 without an error message4535 raises a Gitlab::PrometheusClient::QueryError error4536 when request returns 5004537 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4538 when request returns non json data4539 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4540 #series4541 calls endpoint and returns list of series4542 #label_values4543 calls endpoint and returns label values4544 #query_range4545 when non utc time is passed4546 passed dates are properly converted to utc4547 when a start time is passed4548 passed it in the requested URL4549 when request returns vector results4550 returns nil4551 when request returns matrix results4552 returns data from the API call4553 when request returns no data4554 returns []4555 behaves like failure response4556 when request returns 400 with an error message4557 raises a Gitlab::PrometheusClient::QueryError error4558 when request returns 400 without an error message4559 raises a Gitlab::PrometheusClient::QueryError error4560 when request returns 5004561 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4562 when request returns non json data4563 raises a Gitlab::PrometheusClient::UnexpectedResponseError error4564 .compute_step4565 time_interval_in_seconds: 0, step: 604566 is expected to eq 604567 time_interval_in_seconds: 10 hours, step: 604568 is expected to eq 604569 time_interval_in_seconds: 10 hours and 1 second, step: 614570 is expected to eq 614571 time_interval_in_seconds: 30 minutes, step: 604572 is expected to eq 604573 time_interval_in_seconds: 3 hours, step: 604574 is expected to eq 604575 time_interval_in_seconds: 8 hours, step: 604576 is expected to eq 604577 time_interval_in_seconds: 1 day, step: 1444578 is expected to eq 1444579 time_interval_in_seconds: 3 days, step: 4324580 is expected to eq 4324581 time_interval_in_seconds: 1 week, step: 10084582 is expected to eq 10084583 proxy4584 get API4585 when response status code is 2004586 returns response object4587 when response status code is not 2004588 returns response object4589 when Gitlab::HTTP::ResponseError is raised4590 without response code4591 raises PrometheusClient::ConnectionError4592 with response code4593 raises Gitlab::PrometheusClient::QueryError4594Admin::SetFeatureFlagService4595 # order random4596 sequences of executions4597 if we enable_percentage_of_actors and then disable4598 leaves the flag off4599 if we enable and then enable_percentage_of_actors4600 reports an error4601 if we disable the flag first4602 sets the percentage of actors4603 #execute4604 when we cannot interpret the operation4605 is expected to be error4606 is expected to have attributes {:reason => :illegal_operation}4607 is expected to have attributes {:message => "Cannot set 'account_validation_email' (\"unknown\") to \"wibble\""}4608 when the key is absent4609 is expected to be error4610 is expected to have attributes {:reason => :illegal_operation}4611 is expected to have attributes {:message => "Cannot set 'account_validation_email' to \"wibble\""}4612 when the value to set cannot be parsed4613 is expected to be error4614 is expected to have attributes {:reason => :illegal_operation}4615 is expected to have attributes {:message => "Not a percentage"}4616 when value is "remove_opt_out"4617 without a target4618 returns an error4619 with a target4620 when there is currently no opt-out4621 returns an error4622 when there is currently an opt-out4623 removes the opt out4624 when value is "opt_out"4625 opts the user and group out4626 without a target4627 is expected to be error4628 is expected to have attributes {:reason => :illegal_operation}4629 when enabling the feature flag4630 enables the feature flag4631 logs the event4632 when the flag is default_enabled4633 leaves the flag enabled4634 when enabling for a user actor4635 enables the feature flag4636 when the flag has been opted out for user4637 records an error4638 when the flag is default_enabled4639 leaves the feature enabled4640 when user does not exist4641 does nothing4642 when enabling for a feature group4643 enables the feature flag4644 when enabling for a project4645 enables the feature flag4646 when enabling for a group4647 enables the feature flag4648 when group does not exist4649 returns an error4650 when enabling for a user namespace4651 enables the feature flag4652 when namespace does not exist4653 returns an error4654 when enabling for a group namespace4655 enables the feature flag4656 when enabling for a repository4657 enables the feature flag4658 when enabling for a user actor and a feature group4659 enables the feature flag4660 when enabling given a percentage of time4661 enables the feature flag4662 when value is a float4663 enables the feature flag4664 with a target4665 is expected to be error4666 is expected to have attributes {:reason => :illegal_operation}4667 when enabling given a percentage of actors4668 enables the feature flag4669 when value is a float4670 enables the feature flag4671 with a target4672 is expected to be error4673 is expected to have attributes {:reason => :illegal_operation}4674 when disabling the feature flag4675 disables the feature flag4676 logs the event4677 when disabling for a user actor4678 disables the feature flag4679 when user does not exist4680 returns an error4681 when disabling for a feature group4682 disables the feature flag4683 when disabling for a project4684 disables the feature flag4685 when disabling for a group4686 disables the feature flag4687 when group does not exist4688 returns an error4689 when disabling for a user namespace4690 disables the feature flag4691 when namespace does not exist4692 returns an error4693 when disabling for a group namespace4694 disables the feature flag4695 when disabling for a user actor and a feature group4696 disables the feature flag4697Integrations::PipelinesEmail4698 Validations4699 when integration is active4700 is expected to validate that :recipients cannot be empty/falsy4701 when integration is inactive4702 is expected not to validate that :recipients cannot be empty/falsy4703 validates number of recipients4704 valid number of recipients4705 does not count empty emails4706 invalid number of recipients4707 is expected not to be valid4708 adds an error message4709 when integration is not active4710 is expected to be valid4711 #test4712 when pipeline is failed and on default branch4713 behaves like sending email4714 sends email4715 when pipeline is succeeded4716 behaves like sending email4717 sends email4718 when the pipeline failed4719 on default branch4720 notifications are enabled only for default branch4721 behaves like sending email4722 sends email4723 notifications are enabled only for protected branch4724 behaves like sending email4725 sends email4726 notifications are enabled only for default and protected branches4727 behaves like sending email4728 sends email4729 notifications are enabled only for all branches4730 behaves like sending email4731 sends email4732 on a protected branch4733 notifications are enabled only for default branch4734 behaves like sending email4735 sends email4736 notifications are enabled only for protected branch4737 behaves like sending email4738 sends email4739 notifications are enabled only for default and protected branches4740 behaves like sending email4741 sends email4742 notifications are enabled only for all branches4743 behaves like sending email4744 sends email4745 on a neither protected nor default branch4746 notifications are enabled only for default branch4747 behaves like sending email4748 sends email4749 notifications are enabled only for protected branch4750 behaves like sending email4751 sends email4752 notifications are enabled only for default and protected branches4753 behaves like sending email4754 sends email4755 notifications are enabled only for all branches4756 behaves like sending email4757 sends email4758 #execute4759 with recipients4760 with succeeded pipeline4761 behaves like not sending email4762 does not send email4763 with notify_only_broken_pipelines on4764 with failed pipeline4765 behaves like sending email4766 sends email4767 with succeeded pipeline4768 behaves like not sending email4769 does not send email4770 when the pipeline failed4771 on default branch4772 behaves like sending email4773 sends email4774 notifications are enabled only for default branch4775 behaves like sending email4776 sends email4777 notifications are enabled only for protected branch4778 behaves like not sending email4779 does not send email4780 notifications are enabled only for default and protected branches4781 behaves like sending email4782 sends email4783 notifications are enabled only for all branches4784 behaves like sending email4785 sends email4786 on a protected branch4787 notifications are enabled only for default branch4788 behaves like not sending email4789 does not send email4790 notifications are enabled only for all branches4791 behaves like sending email4792 sends email4793 on a neither protected nor default branch4794 notifications are enabled only for default branch4795 behaves like not sending email4796 does not send email4797 notifications are enabled only for protected branch4798 behaves like not sending email4799 does not send email4800 notifications are enabled only for default and protected branches4801 behaves like not sending email4802 does not send email4803 notifications are enabled only for all branches4804 behaves like sending email4805 sends email4806 with empty recipients list4807 with failed pipeline4808 behaves like not sending email4809 does not send email4810 with recipients list separating with newlines4811 with failed pipeline4812 behaves like sending email4813 sends email4814Trigger4815 # order random4816 Trigger::CNG4817 #variables4818 does not include redundant variables4819 invokes the trigger with expected variables4820 TRIGGER_BRANCH4821 when CNG_BRANCH is not set4822 sets TRIGGER_BRANCH to master4823 when CNG_BRANCH is set4824 sets TRIGGER_BRANCH to cng_branch4825 when CI_COMMIT_REF_NAME is a stable branch4826 sets TRIGGER_BRANCH to the corresponding stable branch4827 GITLAB_VERSION4828 when CI_COMMIT_SHA is set4829 sets GITLAB_VERSION to CI_COMMIT_SHA4830 GITLAB_TAG4831 when CI_COMMIT_TAG is set4832 sets GITLAB_TAG to true4833 when CI_COMMIT_TAG is nil4834 sets GITLAB_TAG to nil4835 CE_PIPELINE4836 when Trigger.ee? is true4837 sets CE_PIPELINE to nil4838 when Trigger.ee? is false4839 sets CE_PIPELINE to true4840 EE_PIPELINE4841 when Trigger.ee? is true4842 sets EE_PIPELINE to true4843 when Trigger.ee? is false4844 sets EE_PIPELINE to nil4845 GITLAB_REF_SLUG4846 when CI_COMMIT_TAG is set4847 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME4848 when CI_COMMIT_TAG is nil4849 sets GITLAB_REF_SLUG to CI_COMMIT_SHA4850 #version_param_value4851 raw_version: "1.2.3", expected_version: "v1.2.3"4852 when set in ENV4853 includes the version from ENV4854 raw_version: "1.2.3-rc1", expected_version: "v1.2.3-rc1"4855 when set in ENV4856 includes the version from ENV4857 raw_version: "1.2.3-ee", expected_version: "v1.2.3-ee"4858 when set in ENV4859 includes the version from ENV4860 raw_version: "1.2.3-rc1-ee", expected_version: "v1.2.3-rc1-ee"4861 when set in ENV4862 includes the version from ENV4863 Trigger::Base4864 #invoke!4865 when required methods aren't defined4866 raises a NotImplementedError4867 when required methods are defined4868 waits for downstream pipeline4869 when env variable `FOO_BAR_BRANCH` does not exist4870 triggers the pipeline on the correct project and branch4871 when env variable `FOO_BAR_BRANCH` exists4872 triggers the pipeline on the correct project and branch4873 #variables4874 includes simple forwarded variables4875 #base_variables4876 when CI_COMMIT_TAG is set4877 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME4878 when CI_COMMIT_TAG is nil4879 sets GITLAB_REF_SLUG to CI_COMMIT_REF_SLUG4880 when TRIGGERED_USER is set4881 sets TRIGGERED_USER to triggered_user4882 when TRIGGERED_USER is not set4883 sets TRIGGERED_USER to GITLAB_USER_NAME4884 when CI_COMMIT_SHA is set4885 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA4886 #version_file_variables4887 version_file: "GITALY_SERVER_VERSION", version: "1"4888 when set in ENV4889 includes the version from ENV4890 when set in a file4891 includes the version from the file4892 version_file: "GITLAB_ELASTICSEARCH_INDEXER_VERSION", version: "2"4893 when set in ENV4894 includes the version from ENV4895 when set in a file4896 includes the version from the file4897 version_file: "GITLAB_KAS_VERSION", version: "3"4898 when set in ENV4899 includes the version from ENV4900 when set in a file4901 includes the version from the file4902 version_file: "GITLAB_PAGES_VERSION", version: "4"4903 when set in ENV4904 includes the version from ENV4905 when set in a file4906 includes the version from the file4907 version_file: "GITLAB_SHELL_VERSION", version: "5"4908 when set in ENV4909 includes the version from ENV4910 when set in a file4911 includes the version from the file4912 version_file: "GITLAB_WORKHORSE_VERSION", version: "6"4913 when set in ENV4914 includes the version from ENV4915 when set in a file4916 includes the version from the file4917 Trigger::DatabaseTesting4918 #variables4919 invokes the trigger with expected variables4920 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set4921 sets TOP_UPSTREAM_SOURCE_SHA to ci_merge_request_source_branch_sha4922 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set as empty4923 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA4924 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is not set4925 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA4926 #invoke!4927 invokes the trigger with expected variables4928 #downstream_project_path4929 when GITLABCOM_DATABASE_TESTING_PROJECT_PATH is set4930 triggers the pipeline on the correct project4931 #ref4932 when GITLABCOM_DATABASE_TESTING_TRIGGER_REF is set4933 triggers the pipeline on the correct ref4934 when no MR notes with the identifier exist yet4935 posts a new note4936 Trigger::Docs4937 #variables4938 BRANCH_CE4939 when CI_PROJECT_PATH is gitlab-org/gitlab-foss4940 sets BRANCH_CE to CI_COMMIT_REF_NAME4941 BRANCH_EE4942 when CI_PROJECT_PATH is gitlab-org/gitlab4943 sets BRANCH_EE to CI_COMMIT_REF_NAME4944 BRANCH_RUNNER4945 when CI_PROJECT_PATH is gitlab-org/gitlab-runner4946 sets BRANCH_RUNNER to CI_COMMIT_REF_NAME4947 BRANCH_OMNIBUS4948 when CI_PROJECT_PATH is gitlab-org/omnibus-gitlab4949 sets BRANCH_OMNIBUS to CI_COMMIT_REF_NAME4950 BRANCH_CHARTS4951 when CI_PROJECT_PATH is gitlab-org/charts/gitlab4952 sets BRANCH_CHARTS to CI_COMMIT_REF_NAME4953 REVIEW_SLUG4954 when CI_MERGE_REQUEST_IID is set4955 sets REVIEW_SLUG4956 when CI_MERGE_REQUEST_IID is not set4957 sets REVIEW_SLUG4958 .access_token4959 when DOCS_PROJECT_API_TOKEN is set4960 returns the docs-specific access token4961 when DOCS_PROJECT_API_TOKEN is not set4962 returns the default access token4963 #invoke!4964 #downstream_project_path4965 when DOCS_PROJECT_PATH is set4966 triggers the pipeline on the correct project4967 #ref4968 when DOCS_BRANCH is set4969 triggers the pipeline on the correct ref4970 #cleanup!4971 when stopping the environment succeeds4972 displays a success message4973 when stopping the environment fails4974 displays a failure message4975Banzai::Filter::References::WorkItemReferenceFilter4976 # order random4977 subclasses from IssueReferenceFilter4978 when cross-project reference in link href4979 is handled by IssueReferenceFilter, not WorkItemReferenceFilter4980 performance4981 does not have a N+1 query problem4982 when standard internal reference4983 is handled by IssueReferenceFilter, not WorkItemReferenceFilter4984 when cross-project / same-namespace shorthand reference4985 is handled by IssueReferenceFilter, not WorkItemReferenceFilter4986 for group context4987 links to a valid reference for url cross-namespace4988 links to a valid reference for cross-namespace in link href4989 when cross-project / cross-namespace complete reference4990 is handled by IssueReferenceFilter, not WorkItemReferenceFilter4991 when cross-project URL reference4992 behaves like a work item reference4993 links to a valid reference4994 links with adjacent text4995 includes a title attribute4996 escapes the title attribute4997 renders non-HTML tooltips4998 includes default classes4999 includes a data-project attribute5000 includes a data-issue attribute5001 includes data attributes for issuable popover5002 includes a data-original attribute5003 does not escape the data-original attribute5004 includes a data-reference-format attribute5005 includes a data-reference-format attribute for URL references5006 includes a data-reference-format attribute for extended summary URL references5007 does not process links containing issue numbers followed by text5008 behaves like a reference containing an element node5009 does not escape inner html5010 behaves like a reference with work item type information5011 contains work-item-type as a data attribute5012 when cross-project URL in link href5013 behaves like a work item reference5014 links to a valid reference5015 links with adjacent text5016 includes a title attribute5017 escapes the title attribute5018 renders non-HTML tooltips5019 includes default classes5020 includes a data-project attribute5021 includes a data-issue attribute5022 includes data attributes for issuable popover5023 includes a data-original attribute5024 does not escape the data-original attribute (PENDING: No reason given)5025 includes a data-reference-format attribute (PENDING: No reason given)5026 includes a data-reference-format attribute for URL references5027 includes a data-reference-format attribute for extended summary URL references5028 does not process links containing issue numbers followed by text5029 behaves like a reference containing an element node5030 does not escape inner html5031 behaves like a reference with work item type information5032 contains work-item-type as a data attribute5033 when cross-project / same-namespace complete reference5034 is handled by IssueReferenceFilter, not WorkItemReferenceFilter5035 when cross-project URL reference with comment anchor5036 links to a valid reference5037 link with trailing slash5038 links with adjacent text5039 behaves like a reference containing an element node5040 does not escape inner html5041 behaves like a reference with work item type information5042 contains work-item-type as a data attribute5043Projects::UpdateRemoteMirrorService5044 #execute5045 does not fetch the remote repository5046 marks the mirror as started when beginning5047 marks the mirror as successfully finished5048 marks the mirror as failed and raises the error when an unexpected error occurs5049 when the URL is blocked5050 hard retries and returns error status5051 when retries are exceeded5052 hard fails and returns error status5053 when given URLs containing escaped elements5054 behaves like URLs containing escaped elements return expected status5055 url: "https://user:0a%23@test.example.com/project.git", result_status: :success5056 returns expected status5057 url: "https://git.example.com:1%2F%2F@source.developers.google.com/project.git", result_status: :success5058 returns expected status5059 url: "git%3A%2F%2Flocalhost%3A1234%2Fsome-path%3Fsome-query%3Dsome-val%23%40example.com%2F", result_status: :error5060 returns expected status5061 url: "https%253A%252F%252Fuser%253A0a%252523%2540test.example.com%252Fproject.git", result_status: :error5062 returns expected status5063 when the update fails because of a `Gitlab::Git::CommandError`5064 wraps `Gitlab::Git::CommandError`s in a service error5065 marks the mirror as to be retried5066 marks the mirror as failed after 3 tries5067 when there are divergent refs5068 marks the mirror as failed and sets an error message5069 sending lfs objects5070 pushes LFS objects to a HTTP repository5071 when LFS objects fail to push5072 when remote_mirror_fail_on_lfs feature flag enabled5073 fails update5074 when remote_mirror_fail_on_lfs feature flag is disabled5075 does not fail update5076 with SSH repository5077 does nothing to an SSH repository5078 does nothing if LFS is disabled5079 does nothing if non-password auth is specified5080ForkProjectsFinder5081 #execute5082 without a user5083 is expected to eq [#<Project id:1029 group236/project-1172>>]5084 with a user5085 is expected to eq [#<Project id:1033 group239/project-1176>>, #<Project id:1032 group238/project-1175>>]5086 with a member5087 is expected to eq [#<Project id:1037 group242/project-1180>>, #<Project id:1036 group241/project-1179>>, #<Project id:1035 group240/project-1178>>]5088Banzai::Filter::References::DesignReferenceFilter5089 does not error when we add redaction to the pipeline5090 .call5091 requires project context5092 #call5093 feature flags5094 design management is not enabled5095 behaves like a no-op filter5096 does nothing5097 wrapped in a <pre/>5098 behaves like a no-op filter5099 does nothing5100 wrapped in a <code/>5101 behaves like a no-op filter5102 does nothing5103 wrapped in a <a/>5104 behaves like a no-op filter5105 does nothing5106 wrapped in a <style/>5107 behaves like a no-op filter5108 does nothing5109 .identifier5110 filename: "simple.png"5111 can parse the reference5112 filename: "SIMPLE.PNG"5113 can parse the reference5114 filename: "has-hyphen.jpg"5115 can parse the reference5116 filename: "snake_case.svg"5117 can parse the reference5118 static properties5119 is expected to eq :design5120 #data_attributes_for5121 is expected to include {:issue => 458, :original => "Added http://localhost/namespace1068/project-1181/-/issues/10/designs/homescreen-36.jpg", :project => 1038, :design => 17}5122 internal reference5123 behaves like a reference containing an element node5124 does not escape inner html5125 behaves like a good link reference5126 produces a good link5127 the filename contains invalid characters5128 filename: "with some spaces.png"5129 behaves like a no-op filter5130 does nothing5131 filename: "with <script>console.log(\"pwded\")<%2Fscript>.png"5132 behaves like a no-op filter5133 does nothing5134 filename: "foo\"bar.png"5135 behaves like a no-op filter5136 does nothing5137 filename: "A \"very\" good file.png"5138 behaves like a no-op filter5139 does nothing5140 the reference is to a non-existant design5141 behaves like a no-op filter5142 does nothing5143 design management is disabled for the referenced project5144 behaves like a no-op filter5145 does nothing5146 link pattern5147 matches5148 cross-project / cross-namespace complete reference5149 links to a valid reference5150 link has valid text5151 includes default classes5152 behaves like a reference containing an element node5153 does not escape inner html5154 behaves like a good link reference5155 produces a good link5156 design management is disabled for that project5157 behaves like a no-op filter5158 does nothing5159 the reference is invalid5160 behaves like a no-op filter5161 does nothing5162 performance5163 is linear in the number of projects with design management enabled each design refers to5164Gitlab::GitalyClient::BlobService5165 #get_new_lfs_pointers5166 sends a get_new_lfs_pointers message5167 with not_in = :all5168 sends the correct message5169 with hook environment5170 sends a list_all_lfs_pointers message5171 #get_all_lfs_pointers5172 sends a get_all_lfs_pointers message5173 #list_blobs5174 with a single revision5175 sends a list_blobs message5176 with multiple revisions5177 sends a list_blobs message5178 with multiple revisions and limits5179 sends a list_blobs message5180 with paths5181 sends a list_blobs message5182 with split contents5183 sends a list_blobs message5184NewMergeRequestWorker5185 #perform5186 when a merge request not found5187 does not call Services5188 logs an error5189 when a user not found5190 does not call Services5191 logs an error5192 with a user5193 is labeled as idempotent5194 performs multiple times sequentially without raising an exception5195 when the merge request author is blocked5196 behaves like a new merge request where the author cannot trigger notifications5197 does not create a notification for the mentioned user5198 when the merge request author is a ghost5199 behaves like a new merge request where the author cannot trigger notifications5200 does not create a notification for the mentioned user5201 when everything is ok5202 creates a new event record5203 creates a notification for the mentioned user5204 when add_prepared_state_to_mr feature flag is off5205 calls the create service5206 when add_prepared_state_to_mr feature flag is on5207 when the merge request is not prepared5208 calls the create service5209Ci::PipelineArtifacts::DestroyAllExpiredService5210 .execute5211 when timeout happens5212 returns 0 and does not continue destroying5213 when there are no artifacts5214 does not raise error5215 when the loop limit is reached5216 destroys one artifact5217 reports the number of destroyed artifacts5218 when there are artifacts more than batch sizes5219 destroys all expired artifacts5220 reports the number of destroyed artifacts5221 when artifacts are not expired5222 does not destroy pipeline artifacts5223 reports the number of destroyed artifacts5224 when pipeline is locked5225 does not destroy pipeline artifacts5226 reports the number of destroyed artifacts5227 with unlocked pipeline artifacts5228 destroys all expired artifacts5229 when the loop limit is reached5230 destroys one artifact5231 reports the number of destroyed artifacts5232 .destroy_artifacts_batch5233 returns a falsy value without artifacts5234Deploy-ECS.gitlab-ci.yml5235 the created pipeline5236 creates the expected jobs5237 behaves like no pipeline yaml error5238 does not have any error5239 when the DAST template is also included5240 does not have any error5241 when running a pipeline for a branch5242 creates the expected jobs5243 behaves like no pipeline yaml error5244 does not have any error5245 when deploying to ECS Fargate5246 creates the expected jobs5247Gitlab::Popen5248 .popen_with_detail5249 is expected to eq ["/usr/local/bin/ruby", "-e", "$stdout.puts(1);$stderr.puts(2);exit(3)"]5250 is expected to eq "1\n"5251 is expected to eq "2\n"5252 is expected to eq 35253 is expected to be a kind of Numeric5254 zero status5255 is expected to be zero5256 is expected to include "tests"5257 non-zero status5258 is expected to eq 15259 is expected to include "No such file or directory"5260 non-zero status with a kill5261 is expected to eq 95262 is expected to be empty5263 unsafe string command5264 raises an error when it gets called with a string argument5265 with custom options5266 calls popen3 with the provided environment variables5267 with a process that writes a lot of data to stderr5268 returns zero5269 without a directory argument5270 is expected to be zero5271 is expected to include "spec"5272 use stdin5273 is expected to be zero5274 is expected to eq "hello"5275 when binary is absent5276 raises error5277Gitlab::Database::Transaction::Context5278 #set_start_time5279 sets start_time5280 #increment_savepoints5281 is expected to eq 25282 #increment_rollbacks5283 is expected to eq 35284 #increment_releases5285 is expected to eq 45286 #set_depth5287 is expected to eq 25288 #track_sql5289 is expected to eq ["SELECT 1", "SELECT * FROM users"]5290 #track_backtrace5291 is expected to be a kind of Array5292 is expected to all be a kind of Array5293 is expected to eq 15294 is expected to be a kind of String5295 appends the backtrace5296 #duration5297 is expected to be >= 05298 when savepoints count exceeds threshold5299 behaves like logs transaction data5300 logs once upon COMMIT5301 logs once upon ROLLBACK5302 logs again when log throttle duration passes5303 #should_log? returns true5304 when duration exceeds threshold5305 behaves like logs transaction data5306 logs once upon COMMIT5307 logs once upon ROLLBACK5308 logs again when log throttle duration passes5309 #should_log? returns true5310 when there are too many external HTTP requests5311 behaves like logs transaction data5312 logs once upon COMMIT5313 logs once upon ROLLBACK5314 logs again when log throttle duration passes5315 #should_log? returns true5316 when there are too many too long external HTTP requests5317 behaves like logs transaction data5318 logs once upon COMMIT5319 logs once upon ROLLBACK5320 logs again when log throttle duration passes5321 #should_log? returns true5322Ci::InitialPipelineProcessWorker5323 #perform5324 is labeled as idempotent5325 performs multiple times sequentially without raising an exception5326 marks the pipeline as pending5327 when a pipeline does not contain a deployment job5328 does not create any deployments5329 when a pipeline contains a teardown job5330 does not create a deployment record5331 when a pipeline contains a deployment job5332 creates a deployment record5333 when the corresponding environment does not exist5334 does not create a deployment record5335PipelineMetricsWorker5336 #perform5337 when pipeline is running5338 records the build start time5339 clears the build end time5340 records the pipeline5341 when pipeline succeeded5342 records the build end time5343 records the pipeline5344Gitlab::LegacyGithubImport::ProjectCreator5345 #execute5346 creates a project5347 handle GitHub credentials5348 when GitHub project is private5349 sets project visibility to private5350 when GitHub project is public5351 sets project visibility to namespace visibility level5352 when importing into a user namespace5353 sets project visibility to user namespace visibility level5354 when visibility level is restricted5355 when GitHub project is private5356 sets project visibility to the default project visibility5357 when GitHub project is public5358 sets project visibility to the default project visibility5359 when GitHub project has wiki5360 does not create the wiki repository5361 when GitHub project does not have wiki5362 creates the wiki repository5363RuboCop::Cop::RSpec::MisspelledAggregateFailures5364 # order random5365 with legit tags5366 tag: "aggregate"5367 behaves like legit tag5368 does not flag5369 tag: "aggregations"5370 behaves like legit tag5371 does not flag5372 tag: "aggregate_two_underscores"5373 behaves like legit tag5374 does not flag5375 with misspelled tags5376 tag: "aggregate_errors"5377 behaves like misspelled tag5378 flags and auto-corrects misspelled tags in describe5379 flags and auto-corrects misspelled tags in context5380 flags and auto-corrects misspelled tags in examples5381 flags and auto-corrects misspelled tags in any order5382 tag: "aggregate_failure"5383 behaves like misspelled tag5384 flags and auto-corrects misspelled tags in describe5385 flags and auto-corrects misspelled tags in context5386 flags and auto-corrects misspelled tags in examples5387 flags and auto-corrects misspelled tags in any order5388 tag: "aggregated_failures"5389 behaves like misspelled tag5390 flags and auto-corrects misspelled tags in describe5391 flags and auto-corrects misspelled tags in context5392 flags and auto-corrects misspelled tags in examples5393 flags and auto-corrects misspelled tags in any order5394 tag: "aggregate_results"5395 behaves like misspelled tag5396 flags and auto-corrects misspelled tags in describe5397 flags and auto-corrects misspelled tags in context5398 flags and auto-corrects misspelled tags in examples5399 flags and auto-corrects misspelled tags in any order5400 tag: "aggregated_errors"5401 behaves like misspelled tag5402 flags and auto-corrects misspelled tags in describe5403 flags and auto-corrects misspelled tags in context5404 flags and auto-corrects misspelled tags in examples5405 flags and auto-corrects misspelled tags in any order5406 tag: "aggregates_failures"5407 behaves like misspelled tag5408 flags and auto-corrects misspelled tags in describe5409 flags and auto-corrects misspelled tags in context5410 flags and auto-corrects misspelled tags in examples5411 flags and auto-corrects misspelled tags in any order5412 tag: "aggregate_failues"5413 behaves like misspelled tag5414 flags and auto-corrects misspelled tags in describe5415 flags and auto-corrects misspelled tags in context5416 flags and auto-corrects misspelled tags in examples5417 flags and auto-corrects misspelled tags in any order5418 tag: "aggregate_bar"5419 behaves like misspelled tag5420 flags and auto-corrects misspelled tags in describe5421 flags and auto-corrects misspelled tags in context5422 flags and auto-corrects misspelled tags in examples5423 flags and auto-corrects misspelled tags in any order5424 tag: "aggregate_foo"5425 behaves like misspelled tag5426 flags and auto-corrects misspelled tags in describe5427 flags and auto-corrects misspelled tags in context5428 flags and auto-corrects misspelled tags in examples5429 flags and auto-corrects misspelled tags in any order5430Gitlab::ObjectHierarchy5431 #base_and_ancestors5432 includes the base rows5433 includes all of the ancestors5434 can find ancestors upto a certain level5435 uses ancestors_base #initialize argument5436 does not allow the use of #update_all5437 hierarchy_order option5438 :asc5439 orders by child to parent5440 :desc5441 orders by parent to child5442 #base_and_descendants5443 includes the base rows5444 includes all the descendants5445 uses descendants_base #initialize argument5446 does not allow the use of #update_all5447 when with_depth is true5448 includes depth in the results5449 #descendants5450 includes only the descendants5451 #max_descendants_depth5452 when base relation is empty5453 is expected to be nil5454 when base has no children5455 is expected to eq 15456 when base has grandchildren5457 is expected to eq 35458 #ancestors5459 includes only the ancestors5460 can find ancestors upto a certain level5461 #all_objects5462 includes the base rows5463 includes the ancestors5464 includes the descendants5465 uses ancestors_base #initialize argument for ancestors5466 uses descendants_base #initialize argument for descendants5467 does not allow the use of #update_all5468Ci::ResourceGroup5469 behaves like cleanup by a loose foreign key5470 cleans up (delete or nullify) the model5471 validation5472 valids when key includes allowed character5473 invalids when key includes invalid character5474 #ensure_resource5475 creates one resource when resource group is created5476 #assign_resource_to5477 retains resource for the processable (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5478 when there are no free resources5479 fails to retain resource (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5480 when the build has already retained a resource5481 fails to retain resource (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5482 #release_resource_from5483 when the build has already retained a resource5484 releases resource from the build (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5485 when the build has already released a resource5486 fails to release resource (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5487 #upcoming_processables5488 when process mode is unordered5489 returns correct jobs in an indeterministic order5490 when process mode is oldest_first5491 returns correct jobs in a specific order5492 when process mode is newest_first5493 returns correct jobs in a specific order5494 when process mode is unknown5495 returns empty5496 #current_processable5497 when resource is retained by a build5498 is expected to eq #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 118, stage_id: 38, partition_id: 100, tag_list: nil>5499 when resource is not retained by a build5500 is expected to be nil5501Gitlab::Ci::Config::Entry::Policy5502 when using simplified policy5503 validations5504 when entry config value is valid5505 when config is a branch or tag name5506 #valid?5507 is valid5508 #value5509 returns refs hash5510 when config is a regexp5511 #valid?5512 is valid5513 when config is an empty regexp5514 #valid?5515 is valid5516 when using unsafe regexp5517 is not valid5518 when config is a special keyword5519 #valid?5520 is valid5521 when entry value is not valid5522 #errors5523 saves errors5524 when using complex policy5525 when specifying refs policy5526 is a correct configuraton5527 when using unsafe regexp5528 is not valid5529 when specifying kubernetes policy5530 is a correct configuraton5531 when specifying invalid kubernetes policy5532 reports an error about invalid policy5533 when specifying valid variables expressions policy5534 is a correct configuraton5535 when specifying variables expressions in invalid format5536 reports an error about invalid format5537 when specifying invalid variables expressions statement5538 reports an error about invalid statement5539 when specifying invalid variables expressions token5540 reports an error about invalid expression5541 when using invalid variables expressions regexp5542 reports an error about invalid expression5543 when specifying a valid changes policy5544 is a correct configuraton5545 when changes policy is invalid5546 returns errors5547 when changes policy is invalid5548 returns errors5549 when specifying unknown policy5550 returns error about invalid key5551 when policy is empty5552 is not a valid configuration5553 when policy strategy does not match5554 returns information about errors5555 #value5556 when default value has been provided5557 when user overrides default values5558 does not include default values5559 when default value has not been defined5560 includes default values5561 .default5562 does not have default policy5563Projects::LfsPointers::LfsDownloadLinkListService5564 #each_link5565 retrieves each download link of every non existent lfs object5566 stores headers5567 when lfs objects size is larger than the batch size5568 when batch size5569 retrieves them in batches5570 when request fails with PayloadTooLarge error5571 when the smaller batch eventually works5572 retreives them eventually and logs exceptions5573 when batch size cannot be any smaller5574 raises an error and logs exceptions5575 credentials5576 when the download link and the lfs_endpoint have the same host5577 when lfs_endpoint has credentials5578 adds credentials to the download_link5579 when lfs_endpoint does not have any credentials5580 does not add any credentials5581 when the download link and the lfs_endpoint have different hosts5582 downloads without any credentials5583 #download_links_for5584 if request fails5585 raises an error5586 behaves like JSON parse errors5587 raises an error5588 behaves like JSON parse errors5589 raises an error5590 behaves like JSON parse errors5591 raises an error5592 #parse_response_links5593 does not add oid entry if href not found5594QuickActions::TargetService5595 #execute5596 for issue5597 behaves like find target5598 returns the target5599 behaves like build target5600 builds a new target5601 behaves like build target5602 builds a new target5603 for work item5604 behaves like find target5605 returns the target5606 for merge request5607 behaves like find target5608 returns the target5609 behaves like build target5610 builds a new target5611 behaves like build target5612 builds a new target5613 for commit5614 behaves like find target5615 returns the target5616 behaves like no target5617 returns nil5618 with nil target_iid5619 behaves like find target5620 returns the target5621 for unknown type5622 behaves like no target5623 returns nil5624Gitlab::Ci::ProjectConfig5625 # order random5626 when config is the Auto-Devops template5627 returns root config including the auto-devops template5628 when config is not defined anywhere5629 returns nil5630 when bridge job is passed in as parameter5631 returns the content already available in command5632 when config is defined in the default .gitlab-ci.yml5633 returns root config including the canonical CI config file5634 when config is passed as a parameter5635 returns the parameter content5636 when config is defined remotely5637 returns root config including the remote config5638 when config is defined in a separate repository5639 returns root config including the path to another repository5640 when path specifies a refname5641 returns root config including the path and refname to another repository5642 when config is defined in a custom path in the repository5643 returns root config including the local custom file5644WikiHelper5645 #wiki_page_title5646 sets the title for the show action5647 sets the title for a custom action5648 sets the title for an unsaved page5649 #breadcrumb5650 when the page is at the root level5651 returns the capitalized page name5652 when the page is inside a directory5653 returns the capitalized name of each directory and of the page itself5654 #wiki_attachment_upload_url5655 returns the upload endpoint for project wikis5656 raises an exception for unsupported wiki containers5657 #wiki_sort_controls5658 initial call5659 renders with default values5660 sort by asc order5661 renders a link with opposite direction5662 sort by desc order5663 renders a link with opposite direction5664 #wiki_sort_title5665 returns a title corresponding to a key5666 defaults to Title if a key is unknown5667 #wiki_page_tracking_context5668 returns the tracking context5669 returns a nest level of zero for toplevel files5670 behaves like wiki endpoint helpers5671 returns the full endpoint url5672 when relative url is set5673 returns the full endpoint url with the relative path5674Ci::CreatePipelineService5675 cache5676 with cache:key5677 uses the provided key5678 with cache:key:files5679 when file.lock exists5680 builds a cache key5681 when file.lock does not exist5682 uses default cache key5683 with cache:key:files and prefix5684 when file.lock exists5685 builds a cache key5686 when file.lock does not exist5687 uses default cache key5688 with too many files5689 has errors5690Gitlab::MailRoom5691 #enabled_configs5692 when both email and address is set5693 returns email configs5694 when the yml file cannot be found5695 returns an empty list5696 when email is disabled5697 returns an empty list5698 when email is enabled but address is not set5699 returns an empty list5700 when a config value is missing from the yml file5701 overwrites missing values with the default5702 when only incoming_email config is present5703 returns only encoming_email5704 setting up redis settings5705 sets delivery method to Sidekiq by default5706 sets redis config5707 setting up the log path5708 if the log path is a relative path5709 expands the log path to an absolute value5710 if the log path is absolute path5711 leaves the path as-is5712 #enabled_mailbox_types5713 when all mailbox types are enabled5714 returns the mailbox types5715 when an mailbox_types is disabled5716 returns the mailbox types5717 when email is disabled5718 returns an empty array5719 #worker_for5720 matched mailbox types5721 returns the constantized worker class5722 non-existing mailbox_type5723 returns nil5724 config/mail_room.yml5725 when delivery_method is implicit5726 behaves like renders mail-specific config file correctly5727 renders mail room config file correctly5728 behaves like renders arbitration options correctly5729 renders arbitration options correctly5730 behaves like renders the sidekiq delivery method and options correctly5731 renders the sidekiq delivery method and options correctly5732 when delivery_method is explicitly sidekiq5733 behaves like renders mail-specific config file correctly5734 renders mail room config file correctly5735 behaves like renders arbitration options correctly5736 renders arbitration options correctly5737 behaves like renders the sidekiq delivery method and options correctly5738 renders the sidekiq delivery method and options correctly5739 when delivery_method is webhook (internally postback in mail_room)5740 renders the webhook (postback) delivery method and options correctly5741 behaves like renders mail-specific config file correctly5742 renders mail room config file correctly5743 behaves like renders arbitration options correctly5744 renders arbitration options correctly5745 mailroom encrypted configuration5746 when parsing secrets.yml5747 reads in the secrets.yml file as erb and merges shared and test environments5748 when parsing gitlab.yml5749 returns default encrypted_secret_file path5750 returns encrypted_secret_file relative to custom shared path5751 returns custom encrypted_secret_file5752 when using encrypted secrets5753 renders the encrypted secrets into the configuration correctly5754Mutations::AlertManagement::Alerts::SetAssignees5755 is expected to require graphql authorizations :update_alert_management_alert5756 #resolve5757 when operation mode is not specified5758 behaves like successful resolution5759 successfully resolves5760 behaves like an incident management tracked event5761 .track_event5762 tracks the event using redis5763 behaves like Snowplow event tracking with RedisHLL context5764 behaves like Snowplow event tracking5765 is emitted5766 when user does not have permission to update alerts5767 raises an error if the resource is not accessible to the user5768 for APPEND operation5769 when a different user is already assigned5770 behaves like noop5771 makes no changes5772 when no users are specified5773 behaves like noop5774 makes no changes5775 when a user is specified and no user is assigned5776 behaves like successful resolution5777 successfully resolves5778 when the specified user is already assigned to the alert5779 behaves like noop5780 makes no changes5781 for REPLACE operation5782 when a different user is already assigned5783 behaves like successful resolution5784 successfully resolves5785 when no users are specified5786 behaves like successful resolution5787 successfully resolves5788 when a user is specified and no user is assigned5789 behaves like successful resolution5790 successfully resolves5791 when the specified user is already assigned to the alert5792 behaves like noop5793 makes no changes5794 when multiple users are specified5795 behaves like successful resolution5796 successfully resolves5797 for REMOVE operation5798 when a different user is already assigned5799 behaves like noop5800 makes no changes5801 when no users are specified5802 behaves like noop5803 makes no changes5804 when a user is specified and no user is assigned5805 behaves like noop5806 makes no changes5807 when the specified user is already assigned to the alert5808 behaves like successful resolution5809 successfully resolves5810Mutations::Issues::SetDueDate5811 is expected to require graphql authorizations :update_issue5812 #resolve5813 behaves like permission level for issue mutation is correctly verified5814 when the user is not a project member5815 behaves like when the user does not have access to the resource5816 raises an error5817 even if assigned to the issue5818 does not modify issue5819 even if author of the issue5820 does not modify issue5821 when the user is a project member5822 with guest role5823 behaves like when the user does not have access to the resource5824 raises an error5825 even if assigned to the issue5826 does not modify issue5827 even if author of the issue5828 does not modify issue5829 when the user can update the issue5830 returns the issue with updated due date5831 when due date is nil5832 updates due date to be nil5833 when passing incorrect due date value5834 updates due date to be nil5835Gitlab::VisibilityLevel5836 .level_value5837 defaults to PRIVATE when string value is not valid5838 defaults to PRIVATE when integer value is not valid5839 string_value: "private", integer_value: 05840 converts 'private' to integer value 05841 converts string integer '0' to integer value 05842 defaults to PRIVATE when string integer value is not valid5843 defaults to PRIVATE when string value is not valid5844 string_value: "internal", integer_value: 105845 converts 'internal' to integer value 105846 converts string integer '10' to integer value 105847 defaults to PRIVATE when string integer value is not valid5848 defaults to PRIVATE when string value is not valid5849 string_value: "public", integer_value: 205850 converts 'public' to integer value 205851 converts string integer '20' to integer value 205852 defaults to PRIVATE when string integer value is not valid5853 defaults to PRIVATE when string value is not valid5854 when `fallback_value` is set to `nil`5855 returns `nil` when string value is not valid5856 returns `nil` when integer value is not valid5857 .levels_for_user5858 returns INTERNAL and PUBLIC for internal users5859 returns PUBLIC for external users5860 returns PUBLIC when no user is given5861 when admin mode is enabled5862 returns all levels for an admin5863 when admin mode is disabled5864 returns INTERNAL and PUBLIC for an admin5865 .allowed_levels5866 only includes the levels that arent restricted5867 returns all levels when no visibility level was set5868 .closest_allowed_level5869 picks INTERNAL instead of PUBLIC if public is restricted5870 picks PRIVATE if nothing is available5871 .valid_level?5872 returns true when visibility is valid5873 .restricted_level?, .non_restricted_level?, and .public_level_restricted?5874 visibility_levels: nil, expected_status: false5875 returns the expected status5876 visibility_levels: [0], expected_status: false5877 returns the expected status5878 visibility_levels: [0, 10], expected_status: false5879 returns the expected status5880 visibility_levels: [20], expected_status: true5881 returns the expected status5882 visibility_levels: [20, 10], expected_status: true5883 returns the expected status5884 .options5885 keys5886 returns the allowed visibility levels5887 .level_name5888 level_value: 0, level_name: "Private"5889 returns the name of the visibility level5890 level_value: 10, level_name: "Internal"5891 returns the name of the visibility level5892 level_value: 20, level_name: "Public"5893 returns the name of the visibility level5894 level_value: 2147483647, level_name: "Unknown"5895 returns the name of the visibility level5896Gitlab::Git::CrossRepo5897 # order random5898 #execute5899 when executed within a single repository5900 does not fetch from another repo5901 when executed across two repositories5902 and target ref exists in source repo5903 does not fetch from another repo5904 and target ref does not exist in source repo5905 fetches from the target to a temporary ref5906 and target ref does not exist in target repo5907 returns nil5908gitlab:pages5909 gitlab:pages:deployments:migrate_to_object_storage5910 when local storage is used5911 and remote storage is defined5912 migrates file to remote storage5913 and remote storage is not defined5914 fails to migrate to remote storage5915 when remote storage is used5916 file stays on remote storage5917 gitlab:pages:deployments:migrate_to_local5918 when remote storage is used5919 and job has remote file store defined5920 migrates file to local storage5921 when local storage is used5922 file stays on local storage5923Gitlab::PerformanceBar5924 is expected to eq #<ActiveSupport::Cache::MemoryStore entries=0, size=0, options={:compress=>false}>5925 is expected to eq <ActiveSupport::Cache::NullStore>5926 .allowed_for_user?5927 returns false when given user is nil5928 returns true when given user is an admin5929 returns false when allowed_group_id is nil5930 when allowed group ID does not exist5931 returns false5932 when allowed group exists5933 when user is not a member of the allowed group5934 returns false5935 caching of allowed user IDs5936 behaves like allowed user IDs are cached5937 caches the allowed user IDs in cache5938 caches the allowed user IDs in L1 cache for 1 minute5939 caches the allowed user IDs in L2 cache for 5 minutes5940 when user is a member of the allowed group5941 returns true5942 caching of allowed user IDs5943 behaves like allowed user IDs are cached5944 caches the allowed user IDs in cache5945 caches the allowed user IDs in L1 cache for 1 minute5946 caches the allowed user IDs in L2 cache for 5 minutes5947 when allowed group is nested5948 returns the nested group5949 when a nested group has the same path5950 returns false5951Gitlab::GithubImport::Importer::SingleEndpointMergeRequestNotesImporter5952 is expected to includes the Gitlab::GithubImport::ParallelScheduling module5953 is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module5954 is expected to eq Gitlab::GithubImport::Representation::Note5955 is expected to eq Gitlab::GithubImport::Importer::NoteImporter5956 is expected to eq :issue_comments5957 is expected to eq :note5958 is expected to eq 15959 #each_object_to_import5960 fetches data5961 skips cached pages5962 skips cached merge requests5963dev rake tasks5964 setup5965 sets up the development environment5966 fixtures:load5967 by name5968 loads fixture5969 by empty name5970 does not load fixture5971 load5972 eager loads the application5973 terminate_all_connections5974 terminates all connections5975 when in the production environment5976 does not terminate connections5977 when a database is not found5978 continues to next connection5979 multiple databases5980 with a valid database5981 copy_db:ci5982 creates the database from main5983 when the database already exists5984 prints out a warning5985 with an invalid database5986 raises an error5987Clusters::AgentTokens::RevokeService5988 # order random5989 #execute5990 when user is authorized5991 when user revokes agent token5992 succeeds5993 creates an activity event5994 when there is a validation failure5995 fails without raising an error5996 does not create an activity event5997 when user is not authorized5998 when user attempts to revoke agent token5999 fails6000Sidebars::Projects::SuperSidebarPanel6001 # order random6002 implements #super_sidebar_context_header6003 #renderable_menus6004 is exposed as a renderable menu6005 behaves like a panel with all menu_items categorized6006 has no uncategorized menu_items6007 behaves like a panel with uniquely identifiable menu items6008 all menu_items have unique item_id6009 all menu_items have an item_id6010Gitlab::Cluster::Mixins::PumaCluster6011 when running Puma in Cluster-mode6012 signal: :USR1, exitstatus: 140, termsig: nil6013 properly handles process lifecycle6014 signal: :USR2, exitstatus: 140, termsig: nil6015 properly handles process lifecycle6016 signal: :INT, exitstatus: 140, termsig: nil6017 properly handles process lifecycle6018 signal: :HUP, exitstatus: 140, termsig: nil6019 properly handles process lifecycle6020 signal: :TERM, exitstatus: nil, termsig: 156021 properly handles process lifecycle6022ErrorTracking::CollectErrorService6023 #execute6024 creates Error and creates ErrorEvent6025 updates Error and created ErrorEvent on second hit6026 has correct values set6027 python sdk event6028 creates a valid event6029 with unusual payload6030 when transaction is missing6031 builds actor from stacktrace6032 when transaction is an empty string6033 builds actor from stacktrace6034 when timestamp is numeric6035 parses timestamp6036 go payload6037 has correct values set6038 with two exceptions6039 reports using second exception6040AuthorizedProjectUpdate::ProjectRecalculatePerUserService#execute6041 returns success6042 when there are no changes to be made6043 does not change authorizations6044 when there are changes to be made6045 when addition is required6046 adds a new authorization record for the specific user6047 does not add a new authorization record for the other user6048 adds a new authorization record with the correct access level for the specific user6049 when removal is required6050 removes the authorization record for the specific user6051 does not remove the authorization record for the other user6052 when an update in access level is required6053 updates the authorization of the specific user to the correct access level6054 does not update the authorization of the other user to the correct access level6055Spam::AkismetService6056 #spam?6057 behaves like no activity if Akismet is not enabled6058 is automatically false6059 performs no check6060 if Akismet is enabled6061 correctly transforms options for the akismet client, including spelling of referrer key6062 the text is spam6063 is expected to be truthy6064 the text is blatant spam6065 is expected to be truthy6066 the text is not spam6067 is expected to be falsey6068 error handling6069 StandardError other than ArgumentError is raised6070 is expected to be falsey6071 logs an error6072 ArgumentError is raised in dev6073 raises original error6074 #submit_ham6075 behaves like no activity if Akismet is not enabled6076 is automatically false6077 performs no check6078 behaves like false if Akismet is not available6079 if Akismet is not available6080 is expected to be falsey6081 logs an error6082 if Akismet is available6083 is expected to be truthy6084 #submit_spam6085 behaves like no activity if Akismet is not enabled6086 is automatically false6087 performs no check6088 behaves like false if Akismet is not available6089 if Akismet is not available6090 is expected to be falsey6091 logs an error6092 if Akismet is available6093 is expected to be truthy6094gitlab:update_project_templates rake task6095 updates valid project templates6096Resolvers::DesignManagement::Version::DesignsAtVersionResolver6097 .single6098 returns the single context resolver6099 #resolve6100 when the user cannot see designs6101 returns nothing6102 for the current version6103 returns all designs visible at that version6104 for a previous version with more objects6105 returns objects that were later deleted6106 for a previous version with fewer objects6107 does not return objects that were later created6108 filtering6109 by filename6110 resolves to just the relevant design6111 by id6112 resolves to just the relevant design, ignoring objects on other issues6113WebHooks::DestroyService6114 #execute6115 when the user does not have permission6116 is an error6117 when the user does have permission6118 is successful6119 destroys the hook6120 does not destroy logs6121 schedules the destruction of logs6122 when the hook fails to destroy6123 is not a success6124Types::BaseObject6125 scoping items6126 paginates arrays correctly6127 filters connections correctly6128 filters polymorphic connections6129 filters interface connections6130 redacts polymorphic objects6131 paginates before scoping6132 a lazy list6133 behaves like array member redaction6134 redacts the unauthorized array member6135 a list of lazy items6136 behaves like array member redaction6137 redacts the unauthorized array member6138 an array connection of items6139 behaves like array member redaction6140 redacts the unauthorized array member6141 an array connection of items, selecting edges6142 behaves like array member redaction6143 redacts the unauthorized array member6144 .authorize6145 keeps track of the specified value6146 can not redefine the authorize value6147Grafana::TimeWindow6148 #formatted6149 is expected to eq {:end=>"2019-03-17T13:10:00Z", :start=>"2019-03-17T05:10:00Z"}6150 #in_milliseconds6151 is expected to eq {:from=>1552799400000, :to=>1552828200000}6152 when non-unix parameters are provided6153 is expected to eq {:from=>1552799400000, :to=>1552828200000}6154Grafana::RangeWithDefaults6155 #to_hash6156 is expected to eq {:from=>#<Grafana::Timestamp:0x00007f6444b25b60 @time=2019-03-17 05:10:00 +0000>, :to=>#<Grafana::Timestamp:0x00007f6444b26808 @time=2019-03-17 13:10:00 +0000>}6157 when only "to" is provided6158 has the expected properties6159 when only "from" is provided6160 has the expected properties6161 when no parameters are provided6162 has the expected properties6163Grafana::Timestamp6164 #formatted6165 is expected to eq "2019-03-17T05:10:00Z"6166 #to_ms6167 is expected to eq 15527994000006168 .from_ms_since_epoch6169 is expected to be a kind of Grafana::Timestamp6170 when the input is not a unix-ish timestamp6171 raises an error6172PerformanceMonitoring::PrometheusDashboard6173 .from_json6174 creates a PrometheusDashboard object6175 validations6176 dashboard content is missing6177 behaves like validation failed6178 raises error with corresponding messages6179 dashboard content is NOT a hash6180 behaves like validation failed6181 raises error with corresponding messages6182 content is an array6183 behaves like validation failed6184 raises error with corresponding messages6185 dashboard definition is missing panels_groups and dashboard keys6186 behaves like validation failed6187 raises error with corresponding messages6188 group definition is missing panels and group keys6189 behaves like validation failed6190 raises error with corresponding messages6191 panel definition is missing metrics and title keys6192 behaves like validation failed6193 raises error with corresponding messages6194 metrics definition is missing unit, query and query_range keys6195 behaves like validation failed6196 raises error with corresponding messages6197 multiple offences on different levels6198 behaves like validation failed6199 raises error with corresponding messages6200 .find_for6201 dashboard has been found6202 uses dashboard finder to find and load dashboard data and returns dashboard instance6203 dashboard has NOT been found6204 returns nil6205 dashboard has invalid schema6206 still returns dashboard object6207 #schema_validation_warnings6208 when schema is valid6209 returns empty array6210 when schema is invalid6211 returns array with errors messages6212 when YAML has wrong syntax6213 returns array with errors messages6214 #to_yaml6215 is expected to eq "---\npanel_groups:\n- panels:\n - metrics:\n - id: metric_of_ages\n unit: count\n labe... y_label: Y-Axis\n weight: \n group: Group Title\n priority: \ndashboard: Dashboard Title\n"6216Diffs::StatsComponent6217 rendered component6218 is expected to have visible css ".js-diff-stats-dropdown"6219 renders the data attributes6220 #diff_file_path_text6221 returns full path by default6222 returns truncated path6223 returns the path if max is oddly small6224 returns the path if max is oddly large6225SshKeys::ExpiredNotificationWorker6226 uses a cronjob queue6227 #perform6228 with a large batch6229 updates all keys regardless of batch size6230 with expiring key today6231 invoke the notification service6232 updates notified column6233 is labeled as idempotent6234 performs multiple times sequentially without raising an exception6235 when key has expired in the past6236 does not update notified column6237 when key has already been notified of expiration6238 does not update notified column6239Deployments::HooksWorker6240 #perform6241 logs deployment and project IDs as metadata6242 executes project services for deployment_hooks6243 does not execute an inactive service6244 does not execute if a deployment does not exist6245 execute webhooks6246 behaves like worker with data consistency6247 .get_data_consistency_feature_flag_enabled?6248 returns true6249 .get_data_consistency6250 returns correct data consistency6251NamespacesHelper6252 #cascading_namespace_settings_popover_data6253 when locked by an application setting6254 returns expected hash6255 when locked by an ancestor namespace6256 returns expected hash6257 #cascading_namespace_setting_locked?6258 when `group` argument is `nil`6259 returns `false`6260 when `*_locked?` method does not exist6261 returns `false`6262 when `*_locked?` method does exist6263 calls corresponding `*_locked?` method6264Suggestions::OutdateService6265 #execute6266 when there is a change within multi-line suggestion range6267 updates the outdatable suggestion record6268 when there is no change within multi-line suggestion range6269 does not outdates suggestion record6270Gitlab::I18n::TranslationEntry6271 #singular_translation6272 returns the normal `msgstr` for translations without plural6273 returns the first string for entries with plurals6274 #all_translations6275 returns all translations for singular translations6276 returns all translations when including plural translations6277 #plural_translations6278 returns all translations if there is only one plural6279 returns all translations except for the first one if there are multiple6280 #has_singular_translation?6281 has a singular when the translation is not pluralized6282 has a singular when plural and singular are separately defined6283 does not have a separate singular if the plural string only has one translation6284 #msgid_contains_newlines6285 is true when the msgid is an array6286 #plural_id_contains_newlines6287 is true when the msgid is an array6288 #translations_contain_newlines6289 is true when the msgid is an array6290 #contains_unescaped_chars6291 is true when the msgid is an array6292 is false when the `%` char is escaped6293 is false when using an unnamed variable6294 is false when using a named variable6295 is true when an unnamed variable is not closed6296 is true when the string starts with a `%`6297 #msgid_contains_unescaped_chars6298 is true when the msgid contains a `%`6299 #plural_id_contains_unescaped_chars6300 is true when the plural msgid contains a `%`6301 #translations_contain_unescaped_chars6302 is true when the translation contains a `%`6303 #msgid_contains_potential_html?6304 when there are no angle brackets in the msgid6305 returns false6306 when there are angle brackets in the msgid6307 returns true6308 #plural_id_contains_potential_html?6309 when there are no angle brackets in the plural_id6310 returns false6311 when there are angle brackets in the plural_id6312 returns true6313 #translations_contain_potential_html?6314 when there are no angle brackets in the translations6315 returns false6316 when there are angle brackets in the translations6317 returns true6318Users::CreateService6319 #execute6320 with an admin user6321 when required parameters are provided6322 returns a persisted user6323 persists the given attributes6324 user is not confirmed if skip_confirmation param is not present6325 logs the user creation6326 executes system hooks6327 does not send a notification email6328 when the current_user is not persisted6329 persists the given attributes and sets created_by_id to nil6330 when force_random_password parameter is true6331 generates random password6332 when password_automatically_set parameter is true6333 persists the given attributes6334 when skip_confirmation parameter is true6335 confirms the user6336 when reset_password parameter is true6337 resets password even if a password parameter is given6338 sends a notification email6339 with nil user6340 persists the given attributes6341Gitlab::Ci::Badge::Pipeline::Template6342 behaves like a badge template6343 #key_text6344 says pipeline by default6345 when custom key_text is defined6346 returns custom value6347 when its size is larger than the max allowed value6348 returns default value6349 #key_width6350 is fixed by default6351 when custom key_width is defined6352 returns custom value6353 when it is larger than the max allowed value6354 returns default value6355 #value_text6356 is status value6357 widths and text anchors6358 has fixed width and text anchors6359 #key_color6360 is always the same6361 #value_color6362 when status is success6363 has expected color6364 when status is failed6365 has expected color6366 when status is running6367 has expected color6368 when status is preparing6369 has expected color6370 when status is unknown6371 has expected color6372 when status does not match any known statuses6373 has expected color6374LabelPresenter6375 #edit_path6376 with group label6377 is expected to eq "/groups/group294/-/labels/1217/edit"6378 with project label6379 is expected to eq "/group294/project-1365/-/labels/1218/edit"6380 with an admin label6381 is expected to eq "/admin/labels/1219/edit"6382 #destroy_path6383 with group label6384 is expected to eq "/groups/group294/-/labels/1220"6385 with project label6386 is expected to eq "/group294/project-1365/-/labels/1221"6387 with an admin label6388 is expected to eq "/admin/labels/1222"6389 #filter_path6390 with group as context subject6391 is expected to eq "/groups/group294/-/issues?label_name%5B%5D=label17"6392 with project as context subject6393 is expected to eq "/group294/project-1365/-/issues?label_name%5B%5D=label18"6394 #can_subscribe_to_label_in_different_levels?6395 returns true for group labels in project context6396 returns false for project labels in project context6397 #project_label?6398 with group label6399 is expected to be falsey6400 with project label6401 is expected to be truthy6402 #subject_name6403 with group label6404 is expected to eq "group294"6405 with project label6406 is expected to eq "Project-1365 Name"6407 with an admin label6408 is expected to be nil6409 #subject_full_name6410 with group label6411 is expected to eq "group294"6412 with project label6413 is expected to eq "group294 / Project-1365 Name"6414 with an admin label6415 is expected to be nil6416Namespaces::ProjectsFinder6417 #execute6418 without a namespace6419 returns an empty array6420 with a namespace6421 returns the project for the namespace6422 when include_subgroups is provided6423 returns all projects for the namespace6424 when ids are provided6425 returns all projects for the ids6426 when ids are provided6427 returns all projects for the ids6428 when with_issues_enabled is true6429 returns the projects that have issues enabled6430 when with_merge_requests_enabled is true6431 returns the projects that have merge requests enabled6432 when sort is similarity6433 returns projects by similarity6434 when search parameter is missing6435 returns all projects6436 when sort parameter is missing6437 returns matching projects6438 when sort parameter is ACTIVITY_DESC6439 returns projects sorted by latest activity6440BitbucketServer::Representation::Activity6441 regular comment6442 is expected to be truthy6443 is expected to be falsey6444 is expected to be a kind of BitbucketServer::Representation::Comment6445 is expected to be a kind of Time6446 inline comment6447 is expected to be truthy6448 is expected to be truthy6449 is expected to be a kind of BitbucketServer::Representation::PullRequestComment6450 is expected to be a kind of Time6451 merge event6452 is expected to be falsey6453 is expected to be falsey6454 is expected to eq "root"6455 is expected to eq "test.user@example.com"6456 is expected to be a kind of Time6457 is expected to be a kind of Time6458 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"6459Ci::CreatePipelineService6460 .pre/.post stages6461 when pipeline contains a build except .pre/.post6462 creates a pipeline6463 when pipeline does not contain any other build except .pre/.post6464 does not create a pipeline6465Gitlab::Ci::Pipeline::Seed::Processable::ResourceGroup6466 #to_resource6467 when resource group key is specified6468 returns a resource group object6469 when environment has an invalid URL6470 returns nothing6471 when there is a resource group already6472 does not create a new resource group6473 when resource group key is nil6474 returns nothing6475WorkItems::Widgets::AwardEmoji6476 # order random6477 #upvotes6478 is expected to eq 16479 #award_emoji6480 is expected to contain exactly #<AwardEmoji id: 1, name: "star", user_id: 1930, awardable_type: "Issue", created_at: "2023-06-02 06:50:48.312402879 +0000", updated_at: "2023-06-02 06:50:48.312402879 +0000", awardable_id: 478>, #<AwardEmoji id: 2, name: "thumbsup", user_id: 1931, awardable_type: "Issue", created_at: "2023-06-02 06:50:48.489346316 +0000", updated_at: "2023-06-02 06:50:48.489346316 +0000", awardable_id: 478>, and #<AwardEmoji id: 3, name: "thumbsdown", user_id: 1932, awardable_type: "Issue", created_at: "2023-06-...-02 06:50:48.746795095 +0000", updated_at: "2023-06-02 06:50:48.746795095 +0000", awardable_id: 478>6481 #downvotes6482 is expected to eq 16483 #type6484 is expected to eq :award_emoji6485 .type6486 is expected to eq :award_emoji6487Gitlab::UsageDataCounters::WikiPageCounter6488 behaves like a redis usage counter6489 .count(view)6490 increments the Wiki Page view counter by 16491 .read(view)6492 returns the total number of view events6493 behaves like a redis usage counter6494 .count(create)6495 increments the Wiki Page create counter by 16496 .read(create)6497 returns the total number of create events6498 behaves like a redis usage counter6499 .count(update)6500 increments the Wiki Page update counter by 16501 .read(update)6502 returns the total number of update events6503 behaves like a redis usage counter6504 .count(delete)6505 increments the Wiki Page delete counter by 16506 .read(delete)6507 returns the total number of delete events6508 behaves like a redis usage counter with totals6509 totals6510 can report all totals6511 unknown events6512 cannot increment6513 cannot read6514migration_fix_15_116515 # order random6516 migration_fix_15_116517 when fix is needed6518Running 15.11 migration fix for main6519 patches init_schema6520 when fix is not needed because no migrations have been run6521 does nothing6522 when fix is not needed because DB has not been initialized6523 does nothing6524 when fix is not needed because there is an earlier init_schema6525 does nothing6526 when fix is not needed because the fix has been run already6527Running 15.11 migration fix for main6528 does not affect the schema_migrations table6529IncidentManagement::TimelineEventPolicy6530 # order random6531 #rules6532 when a user is not able to manage timeline events6533 when timeline event is editable6534 does not allow to edit the timeline event6535 when a user is able to manage timeline events6536 when timeline event is editable6537 allows to edit the timeline event6538 when timeline event is not editable6539 does not allow to edit the timeline event6540DiffNotePosition6541 unique by note_id and diff type6542 accepts a line_range attribute6543 .create_or_update_by6544 when a diff note6545 does not have a diff note position6546 creates a diff note position6547 has a diff note position6548 updates the existing diff note position6549Stepable6550 stops after the first non success status6551 when all methods return success6552 calls all methods in order6553 merges variables returned by all steps6554 can modify results of previous steps6555 with multiple stepable classes6556 does not leak steps6557Ci::UnitTest6558 behaves like cleanup by a loose foreign key6559 cleans up (delete or nullify) the model6560 relationships6561 is expected to belong to project required: false6562 is expected to have many unit_test_failures6563 validations6564 is expected to validate that :project cannot be empty/falsy6565 is expected to validate that :key_hash cannot be empty/falsy6566 is expected to validate that :name cannot be empty/falsy6567 is expected to validate that :suite_name cannot be empty/falsy6568 .find_or_create_by_batch6569 finds or creates records for the given unit test keys6570 when a given name or suite_name exceeds the string size limit6571 truncates the values before storing the information6572Ci::TestFailureHistoryWorker6573 is labeled as idempotent6574 performs multiple times sequentially without raising an exception6575 tracks test failures6576 #perform6577 when pipeline exists6578 executes test failure history service6579 when pipeline does not exist6580 does not execute test failure history service6581Types::Admin::Analytics::UsageTrends::MeasurementType6582 is expected to have graphql field :recorded_at6583 is expected to have graphql field :identifier6584 is expected to have graphql field :count6585 authorization6586 when the user is not admin6587 returns an error6588 does not return usageTrendsMeasurements data6589 when user is an admin6590 returns usageTrendsMeasurements data6591MergeRequests::ByApprovalsFinder6592 filter by no approvals6593 returns merge requests without approvals6594 filter by any approvals6595 returns merge requests approved by at least one user6596 filter by specific user approval6597 returns merge requests approved by specific user6598 filter by multiple user approval6599 returns merge requests approved by both users6600 limiting max conditional elements6601 returns merge requests approved by both users, considering limit of 2 being defined6602 with empty params6603 returns all merge requests6604BulkImports::BatchedRelationExportService6605 # order random6606 #execute6607 when there are batches to export6608 marks export as started6609 removes existing batches6610 enqueues export jobs for each batch & caches batch record ids6611 enqueues FinishBatchedRelationExportWorker6612 when there are multiple batches6613 creates a batch record for each batch of records6614 when there are no batches to export6615 marks export as finished6616 when exception occurs6617 tracks exception and marks export as failed6618 .cache_key6619 returns cache key given export and batch ids6620Gitlab::Config::Entry::ComposableHash6621 when ComposableHash is instantiated6622 behaves like composes a hash6623 #valid?6624 is valid6625 is invalid6626 is expected not to be valid6627 #value6628 when config is a hash6629 returns key value6630 #compose!6631 composes child entry with configured value6632 composes child entries with configured values6633 #descendants6634 creates descendant nodes6635 when ComposableHash entry is configured in the parent class6636 creates entry with configuration from parent class6637 behaves like composes a hash6638 #valid?6639 is valid6640 is invalid6641 is expected not to be valid6642 #value6643 when config is a hash6644 returns key value6645 #compose!6646 composes child entry with configured value6647 composes child entries with configured values6648 #descendants6649 creates descendant nodes6650Ci::CreatePipelineService6651 custom config content6652 creates a pipeline using the content passed in as param6653 when bridge includes yaml from artifact6654 when referenced job exists6655 created a pipeline using the content passed in as param and download the artifact6656 when referenced job does not exist6657 creates an empty pipeline6658Resolvers::DesignManagement::Version::DesignAtVersionResolver6659 #resolve6660 passing combinations of arguments6661 passing no arguments6662 behaves like a bad argument6663 generates an error6664 passing all arguments6665 behaves like a bad argument6666 generates an error6667 passing any two arguments6668 behaves like a bad argument6669 generates an error6670 passing id6671 finds the design6672 when the user cannot see designs6673 returns nothing6674 passing design_id6675 finds the design6676 when the user cannot see designs6677 returns nothing6678 passing filename6679 finds the design6680 when the user cannot see designs6681 returns nothing6682 attempting to retrieve an object not visible at this version6683 passing id6684 does not find the design6685 passing design_id6686 does not find the design6687 passing filename6688 does not find the design6689User6690 # order random6691 #authenticatable_salt6692 when password is stored in BCrypt format6693 returns the first 30 characters of the encrypted_password6694 when password is stored in PBKDF2 format6695 uses the decoded password salt6696 does not use the first 30 characters of the encrypted_password6697 when the encrypted_password is an unknown type6698 returns the first 30 characters of the encrypted_password6699 #valid_password?6700 when the default encryption method is BCrypt6701 behaves like password validation fails when the password is encrypted using an unsupported method6702 is expected to eq false6703 when the user password PBKDF2+SHA5126704 is expected to eq true6705 re-encrypts the password as BCrypt6706 when the default encryption method is PBKDF2+SHA512 and the user password is BCrypt6707 behaves like password validation fails when the password is encrypted using an unsupported method6708 is expected to eq false6709 when the user password BCrypt6710 is expected to eq true6711 re-encrypts the password as PBKDF2+SHA5126712 #password=6713 calls default Devise encryptor and not the PBKDF2 encryptor6714 saves the password in BCrypt format6715 when FIPS mode is enabled6716 calls PBKDF2 digest and not the default Devise encryptor6717 saves the password in PBKDF2 format6718PrometheusMetricsFinder6719 #execute6720 with params6721 with appropriate indexes6722 with project6723 is expected to eq [#<PrometheusMetric id: 1, project_id: 1254, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...39 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]6724 with group6725 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 1, project_id: 1254, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...539 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6726 with title6727 is expected to contain exactly #<PrometheusMetric id: 1, project_id: 1254, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...539 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6728 with y_label6729 is expected to contain exactly #<PrometheusMetric id: 1, project_id: 1254, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...539 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6730 with common6731 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique ...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6732 with ordered6733 is expected to eq [#<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]6734 with indentifier6735 raises an error6736 with common6737 is expected to contain exactly #<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique ...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6738 with id6739 raises an error6740 with id6741 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6742 with multiple params6743 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5970 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6744 without an appropriate index6745 raises an error6746 without params6747 raises an error6748Packages::Generic::CreatePackageFileService6749 #execute6750 creates package file6751 with a status6752 updates an existing packages status6753 behaves like assigns build to package file6754 with build info6755 assigns the pipeline to the package6756 creates a new PackageFileBuildInfo record6757 with existing package6758 is expected to change `project.package_files.count` by 16759 when duplicates are not allowed6760 does not allow duplicates6761 when the file is pending destruction6762 allows creating the file6763 when the package name matches the exception regex6764 is expected to change `project.package_files.count` by 16765 with multiple files for the same package and the same pipeline6766 creates the build info only once6767Gitlab::MarkupHelper6768 #markup?6769 returns true for textile files6770 returns true for rdoc files6771 returns true for org files6772 returns true for creole files6773 returns true for wiki files6774 returns true for mediawiki files6775 returns true for rst files6776 returns true for adoc files6777 returns true for ad files6778 returns true for asciidoc files6779 returns true for mdown files6780 returns true for md files6781 returns true for markdown files6782 returns false when given a non-markup filename6783 #gitlab_markdown?6784 returns true for mdown files6785 returns true for mkd files6786 returns true for mkdn files6787 returns true for md files6788 returns true for markdown files6789 returns false when given a non-markdown filename6790 #asciidoc?6791 returns true for adoc files6792 returns true for ad files6793 returns true for asciidoc files6794 returns true for ADOC files6795 returns false when given a non-asciidoc filename6796RuboCop::Cop::Graphql::AuthorizeTypes6797 # order random6798 does not add an offense for subtypes of BaseInputObject6799 adds an offense when there is no authorize call6800 adds add an offense when authorize has no arguments6801 does not add an offense for classes that only have an authorize call6802 does not add an offense for base types6803 adds add an offense when authorize is empty6804 does not add an offense for classes that have an authorize call6805 does not add an offense for InputTypes6806 does not add an offense for subtypes of BaseUnion6807 does not add an offense for Enums6808Mutations::CustomerRelations::Contacts::Update6809 is expected to require graphql authorizations :admin_crm_contact6810 #resolve6811 when the user does not have permission to update a contact6812 raises an error6813 when the contact does not exist6814 raises an error6815 when the user has permission to update a contact6816 updates the organization with correct values6817Jobs/SAST-IaC.gitlab-ci.yml6818 the created pipeline6819 on feature branch6820 creates the kics-iac-sast job6821 on merge request6822 has no jobs6823 SAST_DISABLED is set6824 on default branch6825 has no jobs6826 on feature branch6827 has no jobs6828RuboCop::Cop::UsageData::DistinctCountByLargeForeignKey6829 # order random6830 when calling by allowed key6831 does not register an offense with symbol6832 does not register an offense with string6833 when counting by disallowed key6834 registers an offense6835 does not register an offense when batch is false6836 registers an offense when batch is true6837cross-database foreign keys6838 onlies have allowed list of cross-database foreign keys6839Types::ContainerRepositoryType6840 is expected to eq "ContainerRepository"6841 is expected to eq "A container repository"6842 is expected to require graphql authorizations :read_container_image6843 is expected to have graphql fields :id, :name, :path, :location, :created_at, :updated_at, :expiration_policy_started_at, :status, :tags_count, :can_delete, :expiration_policy_cleanup_status, :project, :migration_state, and :last_cleanup_deleted_tags_count6844 status field6845 returns status enum6846 expiration_policy_cleanup_status field6847 returns cleanup status enum6848Resolvers::MergeRequestPipelinesResolver6849 resolves only MRs for the passed merge request6850 with archived project6851 is expected not to contain exactly #<Ci::Pipeline id: 111, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 106, locked: "artifacts_locked", partition_id: 100>6852Gitlab::Ci::Runner::Metrics6853 #increment_runner_authentication_success_counter6854 increments count for same type6855 does not increment count for different type6856 does not increment failure count6857 throws ArgumentError for invalid runner type6858 #increment_runner_authentication_failure_counter6859 increments count6860 does not increment success count6861Banzai::Pipeline::PostProcessPipeline6862 when a document only has upload links6863 does not make any Gitaly calls6864 when both upload and repository links are present6865 searches for attributes only once6866BulkImports::Pipeline::Context6867 #entity6868 is expected to eq #<BulkImports::Entity id: 2, bulk_import_id: 1, parent_id: nil, namespace_id: 3542, project_id: nil, ...: "2023-06-02 06:51:55.402788063 +0000", source_xid: 2, migrate_projects: true, has_failures: false>6869 #group6870 is expected to eq #<Group id:3542 @group300>6871 #bulk_import6872 is expected to eq #<BulkImport id: 1, user_id: 1983, source_type: "gitlab", status: 0, created_at: "2023-06-02 06:51:55... 06:51:55.004290052 +0000", source_version: "14.4.0", source_enterprise: false, has_failures: false>6873 #current_user6874 is expected to eq #<User id:1983 @user946>6875 #configuration6876 is expected to eq nil6877 #extra6878 is expected to eq {:extra=>:data}6879 #portable6880 is expected to eq #<Group id:3542 @group300>6881 when portable is project6882 is expected to eq #<Project id:1264 namespace1295/project-1405>>6883 #import_export_config6884 is expected to be an instance of BulkImports::FileTransfer::GroupConfig6885 when portable is project6886 is expected to be an instance of BulkImports::FileTransfer::ProjectConfig6887Clusters::Agents::DeleteService6888 #execute6889 without user permissions6890 fails to delete when the user has no permissions6891 with user permissions6892 deletes a cluster agent6893WorkItems::WidgetDefinition6894 # order random6895 associations6896 is expected to belong to namespace required: false6897 is expected to belong to work_item_type required: false6898 with some widgets disabled6899 .available_widgets6900 returns all global widgets excluding the disabled ones6901 returns all global widgets if there is at least one global widget definition which is enabled6902 .widget_classes6903 returns all widget classes no matter if disabled or not6904 validations6905 is expected to validate that :name cannot be empty/falsy6906 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id and :work_item_type_id6907 is expected to validate that the length of :name is at most 2556908 #widget_class6909 returns widget class based on widget_type6910 returns nil if there is no class for the widget_type6911 returns nil if there is no class for the widget_type6912RuboCop::Cop::Gitlab::ModuleWithInstanceVariables6913 # order random6914 when source is a regular module6915 behaves like registering offense6916 registers an offense when instance variable is used in a module6917 when source is using simple or ivar assignment6918 behaves like not registering offense6919 does not register offenses6920 when source is defining initialize6921 behaves like not registering offense6922 does not register offenses6923 when source is using simple or ivar assignment with other ivar6924 behaves like registering offense6925 registers an offense when instance variable is used in a module6926 when source is using simple ivar6927 behaves like not registering offense6928 does not register offenses6929 when source is a nested module with multiple offenses6930 behaves like registering offense6931 registers an offense when instance variable is used in a module6932 when source is using or ivar assignment with something else6933 behaves like registering offense6934 registers an offense when instance variable is used in a module6935 when source is a nested module6936 behaves like registering offense6937 registers an offense when instance variable is used in a module6938Import::ProviderRepoSerializer6939 #represent6940 raises an error if invalid provider supplied6941 provider: :github, class_name: "Import::GithubishProviderRepoEntity"6942 uses correct entity class6943 provider: :gitea, class_name: "Import::GithubishProviderRepoEntity"6944 uses correct entity class6945 provider: :bitbucket, class_name: "Import::BitbucketProviderRepoEntity"6946 uses correct entity class6947 provider: :bitbucket_server, class_name: "Import::BitbucketServerProviderRepoEntity"6948 uses correct entity class6949 provider: :fogbugz, class_name: "Import::FogbugzProviderRepoEntity"6950 uses correct entity class6951DeployTokenPolicy6952 creating a deploy key6953 when user is maintainer6954 is expected to be allowed :create_deploy_token6955 when user is not maintainer6956 is expected to be disallowed :create_deploy_token6957 updating a deploy key6958 when user is maintainer6959 is expected to be allowed :update_deploy_token6960 when user is not maintainer6961 is expected to be disallowed :update_deploy_token6962Preloaders::ProjectPolicyPreloader6963 # order random6964 avoids N+1 queries when authorizing a list of projects6965WikiDirectory6966 validations6967 is expected to validate that :slug cannot be empty/falsy6968 .group_pages6969 returns a nested array of entries6970 #initialize6971 when there are entries6972 sets the slug attribute6973 sets the entries attribute6974 when there are no entries6975 sets the slug attribute6976 sets the entries attribute to an empty array6977 #title6978 returns the basename of the directory, with hyphens replaced by spaces6979 #to_partial_path6980 returns the relative path to the partial to be used6981Boards::Visits::CreateService6982 #execute6983 when a project board6984 behaves like boards recent visit create service6985 returns nil when there is no user6986 returns nil when database is read only6987 records the visit6988 when a group board6989 behaves like boards recent visit create service6990 returns nil when there is no user6991 returns nil when database is read only6992 records the visit6993SystemHookPolicy6994 when the user is not an admin6995 cannot read_web_hook6996 cannot destroy_web_hook6997 when the user is an admin6998 can read_web_hook6999 can destroy_web_hook7000ReleaseHighlights::Validator::Entry7001 validations7002 with a valid entry7003 is expected to be valid7004 with an invalid entry7005 is expected to be invalid7006 with a blank entry7007 is expected to validate that :name cannot be empty/falsy, producing a custom validation error on failure7008 is expected to validate that :description cannot be empty/falsy, producing a custom validation error on failure7009 is expected to validate that :stage cannot be empty/falsy, producing a custom validation error on failure7010 is expected to validate that :self_managed cannot be empty/falsy, producing a custom validation error on failure7011 is expected to validate that :gitlab_com cannot be empty/falsy, producing a custom validation error on failure7012 is expected to allow :image_url to be ‹nil›7013 is expected to validate that :available_in cannot be empty/falsy, producing a custom validation error on failure7014 is expected to validate that :published_at cannot be empty/falsy, producing a custom validation error on failure7015 is expected to validate that :release looks like a number, producing a custom validation error on failure7016 validates URI of "documentation_link" and "image_url"7017 validates published_at is a date7018 validates available_in are included in list7019Gitlab::GithubImport::BulkImporting7020 #build_database_rows7021 without validation errors7022 returns an array containing the rows to insert7023 does not import objects that have already been imported7024 with validation errors7025 without implemented github_identifiers method7026 raises NotImplementedError7027 with implemented github_identifiers method7028 returns an array containing the validation errors and logs them7029 #bulk_insert7030 bulk inserts rows into the database7031 #bulk_insert_failures7032 bulk inserts validation errors into import_failures7033 #object_type7034 raises NotImplementedError7035GoogleCloud::ServiceAccountsService7036 find_for_project7037 when a project does not have GCP service account vars7038 returns an empty list7039 when a project has GCP service account ci vars7040 returns a list of service accounts7041 add_for_project7042 saves GCP creds as project CI vars7043 replaces previously stored CI vars with new CI vars7044 underlying project CI vars must be protected as per value7045Gitlab::Graphql::Loaders::BatchProjectStatisticsLoader7046 #find7047 only queries once for project statistics7048Preloaders::UsersMaxAccessLevelByProjectPreloader7049 # order random7050 #execute7051 avoids N+1 queries7052 preloads the max access level used by project policies7053Pages::DeleteService7054 marks pages as not deployed7055 deletes all domains7056 schedules a destruction of pages deployments7057 removes pages deployments7058 publishes a ProjectDeleted event with project id and namespace id7059Gitlab::Import::MergeRequestCreator7060 #execute7061 merge request already exists7062 updates the data7063 new merge request7064 creates a new merge request7065Groups::UpdateStatisticsService7066 #execute7067 when group is nil7068 does nothing7069 with an existing group7070 when namespace statistics exists for the group7071 uses the existing statistics and refreshes them7072 when namespace statistics does not exist for the group7073 creates the statistics and refreshes them7074Gitlab::GitPostReceive7075 #includes_branches?7076 with no branches7077 returns false7078 with branches7079 returns true7080 with malformed changes7081 returns false7082 #includes_tags?7083 with no tags7084 returns false7085 with tags7086 returns true7087 with malformed changes7088 returns false7089 #includes_default_branch?7090 with no default branch7091 returns false7092 with a project with no default branch7093 returns true7094 with default branch7095 returns true7096ActsAsTaggableOn::Tag7097 .find_or_create_all_with_like_by_name7098 creates a tag7099 returns the Tag record7100 some tags already existing7101 creates only the missing tag7102 returns the Tag records7103 all tags already existing7104 does not create new tags7105 returns the Tag records7106API::Entities::Ci::JobRequest::Image7107 returns the image name7108 returns the entrypoint7109 returns the ports7110 returns the pull policy7111 when the ports param is nil7112 does not return the ports7113ColorValidator7114 fails fast for long invalid string7115 color: "#000abc", is_valid: true7116 only accepts valid colors7117 color: "#aaa", is_valid: true7118 only accepts valid colors7119 color: "#BBB", is_valid: true7120 only accepts valid colors7121 color: "#cCc", is_valid: true7122 only accepts valid colors7123 color: "#ffff", is_valid: false7124 only accepts valid colors7125 color: "#000111222", is_valid: false7126 only accepts valid colors7127 color: "invalid", is_valid: false7128 only accepts valid colors7129 color: "red", is_valid: false7130 only accepts valid colors7131 color: "000", is_valid: false7132 only accepts valid colors7133 color: nil, is_valid: true7134 only accepts valid colors7135 color: "", is_valid: false7136 only accepts valid colors7137 color: Fri, 02 Jun 2023 06:25:36.836501553 UTC +00:00, is_valid: false7138 only accepts valid colors7139 color: #<Gitlab::Color:0x00007f64736bbb68 @value="#FF0000">, is_valid: true7140 only accepts valid colors7141 when color must be present7142 rejects nil7143Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated7144 behaves like value stream analytics event7145 is expected to be a kind of String7146 is expected to be a kind of Symbol7147 is expected to include ApplicationRecord(abstract)7148 is expected to respond to #timestamp_projection7149 is expected to respond to #html_description7150 is expected to be a kind of Array7151 #apply_query_customization7152 expects an ActiveRecord::Relation object as argument and returns a modified version of it7153 #hash_code7154 returns a hash that uniquely identifies an event7155 does not differ when the same object is built with the same params7156 behaves like LEFT JOIN-able value stream analytics event7157 can use the event as LEFT JOIN7158 when looking at the record with data7159 contains the timestamp expression7160 when looking at the record without data7161 returns nil for the timestamp expression7162TestReportEntity7163 #as_json7164 contains the total time7165 contains the counts7166 contains the test suites7167FileStoreMounter7168 # order random7169 with an instance7170 #update_file_store7171 calls update column7172 #store_file_now!7173 calls the dynamic functions7174 .mount_file_store_uploader7175 skip_store_file: true, file_field: :file7176 defines instance methods and registers a callback7177 skip_store_file: false, file_field: :file7178 defines instance methods and registers a callback7179 skip_store_file: false, file_field: :signed_file7180 defines instance methods and registers a callback7181 skip_store_file: true, file_field: :signed_file7182 defines instance methods and registers a callback7183 with an unknown file_field7184 is expected to raise ArgumentError with "file_field not allowed: unknown"7185ContainerExpirationPoliciesHelper7186 #keep_n_options7187 returns keep_n options formatted for dropdown usage7188 #cadence_options7189 returns cadence options formatted for dropdown usage7190 #older_than_options7191 returns older_than options formatted for dropdown usage7192 #container_expiration_policies_historic_entry_enabled?7193 when the application setting is enabled7194 is expected to be truthy7195 when the application setting is disabled7196 is expected to be falsey7197Clusters::Agents::Authorizations::UserAccess::Scopes7198 # order random7199 .preloaded7200 preloads the associated entities7201 .for_agent7202 is expected to contain exactly #<Clusters::Agents::Authorizations::UserAccess::ProjectAuthorization id: 2, project_id: 1302, agent_id: 9, config: {}>7203Resolvers::Terraform::StatesResolver7204 is expected to have nullable GraphQL type TerraformStateConnection7205 is expected to be truthy7206 #resolve7207 returns states associated with the agent7208 user does not have permission7209 is expected to be empty7210Resolvers::Terraform::StatesResolver.single7211 is expected to be < Resolvers::Terraform::StatesResolver7212 arguments7213 name7214 is expected to be present7215Gitlab::GithubImport::Importer::Events::ChangedMilestone7216 #execute7217 with Issue7218 when importing a milestoned event7219 behaves like new event7220 creates a new milestone event7221 when importing demilestoned event7222 behaves like new event7223 creates a new milestone event7224 with MergeRequest7225 when importing a milestoned event7226 behaves like new event7227 creates a new milestone event7228 when importing demilestoned event7229 behaves like new event7230 creates a new milestone event7231Admin::AbuseReportsHelper7232 # order random7233 #abuse_reports_list_data7234 has expected attributes7235 #abuse_report_data7236 has the expected attributes7237Gitlab::Metrics::Dashboard::Validator::PostSchemaValidator7238 #validate7239 with no project and dashboard_path provided7240 unique local metric_ids7241 returns empty array7242 duplicate local metrics_ids7243 returns error7244 with project and dashboard_path7245 with unique metric identifiers7246 returns empty array7247 duplicate metric identifiers in database7248 with different dashboard_path7249 returns error7250 with same dashboard_path7251 returns empty array7252Gitlab::DatabaseImporters::CommonMetrics::PrometheusMetric7253 group enum equals ::PrometheusMetric7254 .group_titles equals ::PrometheusMetric7255Ci::AuthJobFinder7256 #execute!7257 is expected to eq #<Ci::Build status: "running", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 148, stage_id: 61, partition_id: 100, tag_list: nil>7258 raises error if the job is not running7259 raises error if the job is erased7260 raises error if the the project is missing7261 raises error if the the project is being removed7262 with wrong job token7263 is expected to be nil7264 #execute7265 when job is not running7266 is expected to be nil7267 when job is running7268 sets ci_job_token_scope on the job user7269PagesDomainSslRenewalCronWorker7270 #perform7271 enqueues a PagesDomainSslRenewalWorker for domains needing renewal7272 behaves like a pages cronjob scheduling jobs with context7273 schedules the renewal with a context7274 with RequestStore enabled7275 does not cause extra queries for multiple domains7276 when letsencrypt integration is disabled7277 does nothing7278JiraConnect::SyncMergeRequestWorker7279 behaves like worker with data consistency7280 .get_data_consistency_feature_flag_enabled?7281 returns true7282 .get_data_consistency7283 returns correct data consistency7284 #perform7285 calls JiraConnect::SyncService#execute7286 when MR no longer exists7287 does not call JiraConnect::SyncService7288 when the merge request is closed7289 behaves like does not send any branch data7290 calls JiraConnect::SyncService correctly with nil branches7291 when source branch cannot be found7292 behaves like does not send any branch data7293 calls JiraConnect::SyncService correctly with nil branches7294SystemCheck::IncomingEmail::ImapAuthenticationCheck7295 #load_config7296 returns no mailbox configurations with mailroom default configuration7297 is expected to be nil7298 returns an array of mailbox configurations with mailroom configured7299 is expected to eq [{:host=>"gitlab.example.com", :port=>143}]7300Aws::Role7301 is expected to belong to user required: false7302 is expected to validate that the length of :role_external_id is between 1 and 647303 custom validations7304 :role_arn7305 length is zero7306 is expected to be falsey7307 length is longer than 20487308 is expected to be falsey7309 ARN is valid7310 is expected to be truthy7311 ARN is nil7312 is expected to be truthy7313 callbacks7314 #ensure_role_external_id!7315 for a new record7316 calls #ensure_role_external_id!7317 for an existing record7318 does not call #ensure_role_external_id!7319 #ensure_role_external_id!7320 role_external_id is blank7321 generates an external ID and assigns it to the record7322 role_external_id is already set7323 does not change the existing external id7324Ci::PipelineSchedules::TakeOwnershipService7325 # order random7326 #execute7327 when user does not have permission7328 returns ServiceResponse.error7329 when user has permission7330 returns ServiceResponse.success7331 when schedule update fails7332 returns ServiceResponse.error7333Gitlab::PollingInterval7334 .set_header7335 when polling is disabled7336 sets value to -17337 when polling is enabled7338 applies modifier to base interval7339 .set_api_header7340 when polling is disabled7341 sets value to -17342 when polling is enabled7343 applies modifier to base interval7344GitlabServicePingWorker7345 does not run for SaaS when triggered from cron7346 runs for SaaS when triggered manually7347 delegates to ServicePing::SubmitService7348 passes Hash arguments to ServicePing::SubmitService7349 obtains a 86400 second exclusive lease7350 sleeps for between 0 and 60 seconds7351 payload computation7352 creates RawUsageData entry when there is NO entry with the same recorded_at timestamp7353 updates RawUsageData entry when there is entry with the same recorded_at timestamp7354 reports errors and continue on execution7355 when lease is not obtained7356 does not invoke ServicePing::SubmitService7357API::Helpers::CommonHelpers7358 .coerce_nil_params_to_array!7359 converts all nil parameters to empty arrays7360 leaves non-nil parameters alone7361Banzai::Filter::InlineAlertMetricsFilter7362 behaves like a metrics embed filter7363 when the document has an external link7364 leaves regular non-metrics links unchanged7365 when the document contains an embeddable link7366 leaves the original link unchanged7367 appends a metrics charts placeholder7368 in a paragraph7369 appends a metrics charts placeholder after the enclosing paragraph7370 when metrics dashboard feature is unavailable7371 does not append a metrics chart placeholder7372 with query params specified7373 behaves like a metrics embed filter7374 when the document has an external link7375 leaves regular non-metrics links unchanged7376 when the document contains an embeddable link7377 leaves the original link unchanged7378 appends a metrics charts placeholder7379 in a paragraph7380 appends a metrics charts placeholder after the enclosing paragraph7381 when metrics dashboard feature is unavailable7382 does not append a metrics chart placeholder7383Gitlab::Pagination::GitalyKeysetPager7384 .paginate7385 with branch_list_keyset_pagination feature off7386 without keyset pagination option7387 behaves like offset pagination7388 uses offset pagination7389 with keyset pagination option7390 behaves like offset pagination7391 uses offset pagination7392 with branch_list_keyset_pagination feature on7393 without keyset pagination option7394 when first page is requested7395 keyset pagination is used with offset headers7396 when second page is requested7397 behaves like offset pagination7398 uses offset pagination7399 with keyset pagination option7400 when next page could be available7401 uses keyset pagination and adds link headers7402 when the current page is the last page7403 uses keyset pagination without link headers7404 with "none" pagination option7405 uses offset pagination7406RuboCop::Cop::RSpec::MissingFeatureCategory7407 # order random7408 does not flag if feature category is defined7409 flags missing feature category in top level example group7410projects/hooks/edit7411 renders webhook page with "Recent events"7412 webhook is rate limited7413 renders alert7414 webhook is permanently disabled7415 renders alert7416 webhook is temporarily disabled7417 renders alert7418Gitlab::Graphql::Authorize::AuthorizeResource7419 when the user is allowed to perform the action7420 #authorized_find!7421 returns the object7422 #authorize!7423 does not raise an error7424 when the user is not allowed to perform the action7425 #authorized_find!7426 raises an error7427 #authorize!7428 raises an error7429 #find_object7430 calls GitlabSchema.find_by_gid7431 #authorize7432 adds permissions from subclasses to those of superclasses when used on classes7433 authorizes_object?7434 is false by default7435 is true after calling authorizes_object!7436 is true if a parent authorizes_object7437SshKeys::ExpiringSoonNotificationWorker7438 uses a cronjob queue7439 #perform7440 with key expiring soon7441 invoke the notification service7442 updates notified column7443 is labeled as idempotent7444 performs multiple times sequentially without raising an exception7445 when key has expired in the past7446 does not update notified column7447 when key is not expiring soon7448 does not update notified column7449Ci::CodequalityMrDiffEntity7450 #as_json7451 when quality report has degradations7452 contains correct codequality mr diff report7453Gitlab::Ci::Config::Entry::Inherit::Variables7454 validations7455 config: true, valid: true7456 is expected to eq true7457 config: false, valid: true7458 is expected to eq true7459 config: ["A"], valid: true7460 is expected to eq true7461 config: ["A", "B"], valid: true7462 is expected to eq true7463 config: [:image], valid: true7464 is expected to eq true7465 config: [true], valid: false7466 is expected to eq false7467 config: "string", valid: false7468 is expected to eq false7469Notes::RenderService7470 #execute7471 renders a Note7472JiraConnect::CreateAsymmetricJwtService7473 # order random7474 #execute7475 raises an error7476 with proxy installation7477 stores the public key7478 behaves like produces a valid JWT7479 produces a valid JWT7480 with uninstalled event option7481 behaves like produces a valid JWT7482 produces a valid JWT7483WorkItems::Widgets::LabelsService::UpdateService7484 # order random7485 #prepare_update_params7486 when params are set7487 sets params correctly7488 when widget does not exist in new type7489 sets correct params to remove work item labels7490Users::GroupCallout7491 behaves like having unique enum values7492 has unique values in "feature_name"7493 relationships7494 is expected to belong to group required: false7495 validations7496 is expected to validate that :group cannot be empty/falsy7497 is expected to validate that :feature_name cannot be empty/falsy7498 is expected to validate that :feature_name is unique within the scope of :user_id and :group_id7499 #source_feature_name7500 provides string based off source and feature7501Ci::DailyBuildGroupReportResultsWorker7502 #perform7503 when pipeline is found7504 executes service7505 when pipeline is not found7506 does not execute service7507Gitlab::Ci::Trace::SectionParser7508 #sections7509 empty trace7510 is expected to be empty7511 with a sectionless trace7512 is expected to be empty7513 with trace markers7514 is expected to eq 27515 is expected to eq "b"7516 is expected to eq 2017-10-05 00:00:00.000000000 +00007517 is expected to eq 2017-10-05 00:00:01.000000000 +00007518 #parse!7519 multiple "section_" but no complete markers7520 must find 3 possible section start but no complete sections7521 trace with UTF-8 chars7522 must handle correctly byte positioning7523GitlabShellWorker7524 #perform7525 with the mv_repository action7526 forwards the message to Gitlab::Shell7527 with the remove_repository action7528 forwards the message to Gitlab::Shell7529 with the add_namespace action7530 forwards the message to Gitlab::Shell7531 with the rm_namespace action7532 forwards the message to Gitlab::Shell7533 with the mv_namespace action7534 forwards the message to Gitlab::Shell7535 with the repository_exists? action7536 forwards the message to Gitlab::Shell7537 all other commands7538 raises ArgumentError7539Gitlab::SidekiqMiddleware7540 .server_configurator7541 server metrics7542 records correct Gitaly duration7543 all optional middlewares on7544 behaves like a middleware chain7545DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7546 passes through the right middlewares7547 behaves like a middleware chain for mailer7548 behaves like a middleware chain7549DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7550 passes through the right middlewares7551 all optional middlewares off7552 behaves like a middleware chain7553DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7554 passes through the right middlewares7555 behaves like a middleware chain for mailer7556 behaves like a middleware chain7557DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7558 passes through the right middlewares7559 .client_configurator7560 behaves like a middleware chain7561DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7562 passes through the right middlewares7563 behaves like a middleware chain for mailer7564 behaves like a middleware chain7565DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7566 passes through the right middlewares7567Evidences::MilestoneEntity7568 exposes the expected fields7569 when there are issues linked to this milestone7570 exposes these issues7571 when the release has no milestone7572 exposes an empty array for milestones7573UpdateMergeRequestsWorker7574 #perform7575 executes MergeRequests::RefreshService with expected values7576 when push options are passed as Hash7577 executes MergeRequests::RefreshService with expected values7578Gitlab::ConanToken7579 .from_personal_access_token7580 sets access token and user id and does not use the token id7581 .from_job7582 sets access token id and user id7583 .from_deploy_token7584 sets access token id and user id7585 .decode7586 sets access token id and user id7587 returns nil for invalid JWT7588 returns nil for expired JWT7589 #to_jwt7590 returns the encoded JWT7591SystemCheck::App::AuthorizedKeysPermissionCheck7592 #skip?7593 authorized keys enabled7594 is expected to eq false7595 authorized keys not enabled7596 is expected to eq true7597 #check?7598 authorized keys is accessible7599 is expected to eq true7600 authorized keys is not accessible7601 is expected to eq false7602 #repair!7603 authorized_keys file created7604 is expected to eq true7605 authorized_keys file is not created7606 is expected to eq false7607Mutations::SavedReplies::Create7608 #resolve7609 when feature is disabled7610 raises Gitlab::Graphql::Errors::ResourceNotAvailable7611 when feature is enabled for current user7612 when service fails to create a new saved reply7613 is expected to be nil7614 is expected to contain exactly "Content can't be blank" and "Name can't be blank"7615 when service successfully creates a new saved reply7616 is expected to eq "save_reply_name"7617 is expected to eq "Save Reply Content"7618 is expected to be empty7619Gitlab::Seeders::Ci::VariablesInstanceSeeder7620 # order random7621 #seed7622 creates instance-level CI variables with default values7623 creates instance-level CI variables with custom arguments7624WARNING: Instance CI Variable with key 'INSTANCE_VAR_15' already exists. Skipping to next CI variable...7625 skips CI variable creation if CI variable already exists7626GoogleCloud::GetCloudsqlInstancesService7627 when project has no registered cloud sql instances7628 result is empty7629 when project has registered cloud sql instance7630 result is grouped by environment7631RuboCop::Cop::Performance::ARCountEach7632 # order random7633 when it is not haml file7634 does not flag it as an offense7635 when it is haml file7636 when the same object uses count and each7637 flags it as an offense7638 when different object uses count and each7639 does not flag it as an offense7640 when just using count without each7641 does not flag it as an offense7642 when just using each without count7643 does not flag it as an offense7644Clusters::Agents::CreateActivityEventService7645 #execute7646 creates an activity event record7647 schedules the cleanup worker7648 when activity event creation fails7649 tracks the exception without raising7650Packages::Helm::FileMetadatum7651 relationships7652 is expected to belong to package_file required: false7653 validations7654 #package_file7655 is expected to validate that :package_file cannot be empty/falsy7656 #valid_helm_package_type7657 validates package of type helm7658 #channel7659 validates #channel7660 #metadata7661 validates #metadata7662Gitlab::Email::ServiceDeskReceiver7663 when the email contains a valid email address7664 when in a To header7665 finds the service desk key7666 when the email contains a valid email address in a header7667 when in a Delivered-To header7668 finds the service desk key7669 when in a Envelope-To header7670 finds the service desk key7671 when in a X-Envelope-To header7672 finds the service desk key7673 when the email contains no key in the To header and contains reference header with no key7674 sends a rejection email7675 when the email does not contain a valid email address7676 raises an error7677Packages::Composer::PackagesFinder7678 #execute7679 is expected to contain exactly #<Packages::Package id: 3, project_id: 1329, created_at: "2023-06-02 06:53:18.337489614 +0000", updat...on: "1.0.1", package_type: "composer", creator_id: 2097, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 1329, created_at: "2023-06-02 06:53:18.351320826 +0000", updat...on: "1.0.2", package_type: "composer", creator_id: 2097, status: "default", last_downloaded_at: nil>7680API::Entities::ApplicationSetting7681 housekeeping_bitmaps_enabled usage is deprecated and always enabled7682 when housekeeping_bitmaps_enabled db column is false7683 returns true7684 when housekeeping_bitmaps_enabled db column is true7685 returns true7686Gitlab::Throttle7687 .protected_paths_enabled?7688 returns Application Settings throttle_protected_paths_enabled?7689 .bypass_header7690 is nil7691 when a header is configured7692 is a funny upper case rack key7693 .rate_limiting_response_text7694 when the setting is not present7695 returns the default value with a trailing newline7696 when the setting is present7697 returns the default value with a trailing newline7698BulkImports::Groups::Pipelines::GroupAttributesPipeline7699 #run7700 imports allowed group attributes7701 #transform7702 fetches only allowed attributes and symbolize keys7703 when there is no data to transform7704 is expected to eq nil7705 #after_run7706 calls extractor#remove_tmpdir7707 .relation7708 is expected to eq "self"7709UploadChecksumWorker7710 #perform7711 without a valid record7712 rescues ActiveRecord::RecordNotFound7713 with a valid record7714 calls calculate_checksum!7715 calls save!7716Integrations::SlackOptionService7717 # order random7718 #execute7719 when action_id is assignee7720 executes the user search handler7721 when action_id is labels7722 executes the label search handler7723 when action_id is unknown7724 raises an error and does not execute a service class7725Ci::PipelineMetadata7726 # order random7727 is expected to belong to pipeline required: false7728 is expected to belong to project required: false7729 validations7730 is expected to validate that the length of :name is between 1 and 2557731 is expected to validate that :project cannot be empty/falsy7732 is expected to validate that :pipeline cannot be empty/falsy7733MergeRequests::Mergeability::CheckDiscussionsStatusService7734 #execute7735 when the merge request is in a mergable state7736 returns a check result with status success7737 when the merge request is not in a mergeable state7738 returns a check result with status failed7739 #skip?7740 when skip check is true7741 returns true7742 when skip check is false7743 returns false7744 #cacheable?7745 returns false7746Gitlab::Metrics::LooseForeignKeysSlis7747 # order random7748 #record_apdex7749 with success: true7750 increments the loose_foreign_key_clean_ups Apdex as a success7751 with success: false7752 increments the loose_foreign_key_clean_ups Apdex as not a success7753 #record_error_rate7754 with error: true7755 increments the loose_foreign_key_clean_ups ErrorRate as an error7756 with error: false7757 increments the loose_foreign_key_clean_ups ErrorRate as not an error7758 #initialize_slis!7759 initializes Apdex and ErrorRate SLIs for loose_foreign_key_clean_ups7760Gitlab::ImportExport::AfterExportStrategyBuilder7761 .build!7762 initializes strategy with attributes param7763 when klass param is7764 null it returns the default strategy7765 not a valid class it raises StrategyNotFoundError exception7766 not a descendant of AfterExportStrategy7767Gitlab::GrapeLogging::Loggers::ResponseLogger7768 #parameters7769 is expected to eq {:response_bytes=>9}7770 with multiple response parts7771 is expected to eq {:response_bytes=>18}7772 with log_response_length disabled7773 is expected to eq {}7774 when response is a String7775 is expected to eq {:response_bytes=>9}7776Types::GroupInvitationType7777 is expected to expose permissions using Types::PermissionTypes::Group7778 is expected to eq "GroupInvitation"7779 is expected to require graphql authorizations :admin_group7780 has the expected fields7781WorkItems::Widgets::Base7782 .type7783 is expected to eq :base7784 #type7785 is expected to eq :base7786Projects::ImportExport::RelationExportUpload7787 stores export file7788 associations7789 is expected to belong to relation_export required: false7790Ml::ExperimentMetadata7791 # order random7792 associations7793 is expected to belong to experiment required: false7794 uniqueness of name7795 is unique within experiment7796Emails::DestroyService7797 #execute7798 removes an email7799 when it corresponds to the user primary email7800 does not remove the email and raises an exception7801WebHooks::HasWebHooks7802 # order random7803 last_webhook_failure7804 is expected to eq nil7805 when there was an older failure7806 is expected to eq "2023-05-02T06:53:28Z"7807 #last_failure_redis_key7808 is expected to eq "web_hooks:last_failure:minimal_test_class-1"7809Ci::TriggersHelper7810 .builds_trigger_url7811 with no ref7812 is expected to eq "http://localhost/api/v4/projects/1/trigger/pipeline"7813 with ref7814 is expected to eq "http://localhost/api/v4/projects/1/ref/master/trigger/pipeline"7815 .service_trigger_url7816 is expected to eq "http://localhost/api/v4/projects/1/services/param/trigger"7817Integrations::ProjectEntity7818 as json7819 contains needed attributes7820MicrosoftTeams::Notifier7821 #ping7822 expects to receive successful answer7823 #body7824 returns Markdown-based body when HTML was passed7825 fails when empty Hash was passed7826Gitlab::Metrics::Dashboard::Validator::Client7827 #execute7828 with no validation errors7829 returns empty array7830 with validation errors7831 returns array of error objects7832Types::Ci::FreezePeriodType7833 # order random7834 is expected to require graphql authorizations :read_freeze_period7835 has the expected fields7836 is expected to eq "CiFreezePeriod"7837Ci::StuckBuilds::DropScheduledWorker7838 #perform7839 executes an instance of Ci::StuckBuilds::DropScheduledService with an exclusive lease7840 behaves like an idempotent worker7841 is labeled as idempotent7842 performs multiple times sequentially without raising an exception7843Types::WorkItems::Widgets::StartAndDueDateUpdateInputType7844 is expected to eq "WorkItemWidgetStartAndDueDateUpdateInput"7845 is expected to contain exactly "startDate" and "dueDate"7846API::Entities::Clusters::Agent7847 includes basic fields7848Gitlab::Logging::CloudflareHelper7849 #store_cloudflare_headers!7850 with normal headers7851 adds Cf-Ray-Id and Cf-Request-Id7852 with header values with long strings7853 filters invalid header values7854 with header values with non-alphanumeric characters7855 filters invalid header values7856Gitlab::Checks::TimedLogger7857 #log_timed7858 logs message7859 when time limit was reached7860 cancels action7861 cancels action with time elapsed if work was performed7862API::Validations::Validators::Absence7863 empty param7864 does not raise a validation error7865 invalid parameters7866 raises a validation error7867Packages::Composer::CacheCleanupWorker7868 #perform7869 does nothing7870Serializers::UnsafeJson7871 .dump7872 calls object#to_json with unsafe: true and returns the result7873 .load7874 calls JSON.load and returns the result7875Import::GithubRealtimeRepoEntity7876 # order random7877 exposes correct attributes7878 when import stats is failed7879 includes import_error7880Gitlab::Usage::Metrics::Instrumentations::CertBasedClustersFfMetric7881 with FF enabled7882 behaves like a correct instrumented metric value7883 has correct value7884 with FF disabled7885 behaves like a correct instrumented metric value7886 has correct value7887Gitlab::Git::Patches::Patch7888 #size7889 is correct7890Types::DeploymentTagType7891 # order random7892 has the expected fields7893 is expected to eq "DeploymentTag"7894Types::VisibilityPipelineIdTypeEnum7895 # order random7896 exposes all visibility pipeline id types7897 is expected to eq "VisibilityPipelineIdType"7898RuboCop::Cop::Gitlab::BulkInsert7899 # order random7900 flags the use of ::ApplicationRecord.legacy_bulk_insert7901 flags the use of ApplicationRecord.legacy_bulk_insert7902Gitlab::Ci::Interpolation::Context7903 # order random7904 #depth7905 returns a max depth of the hash7906 when interpolation context is too complex7907 raises an exception7908RsaKeyValidator7909 is not valid when invalid RSA key is provided7910 is valid when valid RSA key is provided7911Types::Projects::BranchRuleType7912 # order random7913 is expected to require graphql authorizations :read_protected_branch7914 is expected to have graphql fields :name, :isDefault, :branch_protection, :matching_branches_count, :created_at, and :updated_at7915TodosDestroyer::ConfidentialIssueWorker7916 calls the Todos::Destroy::ConfidentialIssueService with issue_id parameter7917 calls the Todos::Destroy::ConfidentialIssueService with project_id parameter7918Session initializer for GitLab7919 config#session_store7920 initialized as a redis_store with a proper servers configuration7921PartitionCreationWorker7922 #perform7923 forwards to the Database::PartitionManagementWorker7924Bitbucket::Collection7925 iterates paginator7926Gitlab::APIAuthentication::TokenTypeBuilder7927 #token_types7928 passes strategies and resolvers to SentThroughBuilder7929Types::DependencyProxy::BlobType7930 includes dependency proxy blob fields7931Ci::VariableEntity7932 #as_json7933 contains required fields7934Types::Ci::VariableInputType7935 has the correct arguments7936Gitlab::PumaLogging::JSONFormatter7937 generate json format with timestamp and pid7938help/drawers7939 # order random7940 Markdown rendering7941 renders Markdown7942Bitbucket::Representation::User7943 #username7944 returns correct value7945Knapsack report was generated. Preview:7946{7947 "spec/services/merge_requests/refresh_service_spec.rb": 246.22658039100133,7948 "spec/models/note_spec.rb": 154.30228038099813,7949 "spec/services/todos/destroy/entity_leave_service_spec.rb": 154.55408655499923,7950 "spec/services/projects/import_service_spec.rb": 92.21894048899776,7951 "spec/models/event_spec.rb": 64.7392839790009,7952 "spec/models/concerns/deployment_platform_spec.rb": 70.75424601099803,7953 "spec/services/auto_merge/base_service_spec.rb": 58.584844303000864,7954 "spec/lib/object_storage/direct_upload_spec.rb": 32.059373558000516,7955 "spec/services/git/wiki_push_service_spec.rb": 35.4355376099993,7956 "spec/models/protected_branch_spec.rb": 31.916216093999537,7957 "spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb": 6.591019753999717,7958 "spec/graphql/mutations/merge_requests/set_locked_spec.rb": 25.47158058200148,7959 "spec/lib/gitlab/cleanup/project_uploads_spec.rb": 23.864026291998016,7960 "spec/models/concerns/counter_attribute_spec.rb": 26.48674036400189,7961 "spec/models/draft_note_spec.rb": 23.624244565999106,7962 "spec/models/integrations/bamboo_spec.rb": 16.140293648000807,7963 "spec/services/work_items/create_service_spec.rb": 15.675286665002204,7964 "spec/lib/gitlab/database/postgres_foreign_key_spec.rb": 12.006115346001025,7965 "spec/services/work_items/parent_links/create_service_spec.rb": 17.47801460000119,7966 "spec/services/projects/hashed_storage/rollback_repository_service_spec.rb": 14.288160111998877,7967 "spec/helpers/emails_helper_spec.rb": 9.50869141200019,7968 "spec/lib/gitlab/utils/markdown_spec.rb": 2.901717220000137,7969 "spec/services/clusters/update_service_spec.rb": 18.435599530999752,7970 "spec/services/projects/autocomplete_service_spec.rb": 16.25095064800189,7971 "spec/lib/gitlab/redis/repository_cache_spec.rb": 2.30051671199908,7972 "spec/finders/cluster_ancestors_finder_spec.rb": 15.715540937002515,7973 "spec/lib/extracts_path_spec.rb": 3.363629004001268,7974 "spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb": 12.148349841001618,7975 "spec/lib/bulk_imports/clients/http_spec.rb": 4.003285654998763,7976 "spec/lib/gitlab/prometheus_client_spec.rb": 7.201497360998474,7977 "spec/services/admin/set_feature_flag_service_spec.rb": 4.062591695001174,7978 "spec/models/integrations/pipelines_email_spec.rb": 9.170301344001928,7979 "spec/scripts/trigger-build_spec.rb": 3.3904844090029655,7980 "spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb": 5.345565346000512,7981 "spec/services/projects/update_remote_mirror_service_spec.rb": 9.357962349000445,7982 "spec/finders/fork_projects_finder_spec.rb": 10.306937954002933,7983 "spec/lib/banzai/filter/references/design_reference_filter_spec.rb": 4.6302644290008175,7984 "spec/lib/gitlab/gitaly_client/blob_service_spec.rb": 8.394784829000855,7985 "spec/workers/new_merge_request_worker_spec.rb": 13.631254244002776,7986 "spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb": 10.42364759100019,7987 "spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb": 11.196220107001864,7988 "spec/lib/gitlab/popen_spec.rb": 6.94256064900037,7989 "spec/lib/gitlab/database/transaction/context_spec.rb": 1.49883161100297,7990 "spec/workers/ci/initial_pipeline_process_worker_spec.rb": 9.065433296000265,7991 "spec/workers/pipeline_metrics_worker_spec.rb": 8.199251275000279,7992 "spec/lib/gitlab/legacy_github_import/project_creator_spec.rb": 8.972017133997724,7993 "spec/rubocop/cop/rspec/misspelled_aggregate_failures_spec.rb": 2.4354615029988054,7994 "spec/lib/gitlab/object_hierarchy_spec.rb": 1.7399274060007883,7995 "spec/models/ci/resource_group_spec.rb": 8.783727402002114,7996 "spec/lib/gitlab/ci/config/entry/policy_spec.rb": 1.3584721560000617,7997 "spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb": 7.207207751998794,7998 "spec/services/quick_actions/target_service_spec.rb": 10.169258128000365,7999 "spec/lib/gitlab/ci/project_config_spec.rb": 5.432519652000337,8000 "spec/helpers/wiki_helper_spec.rb": 6.5577300539989665,8001 "spec/services/ci/create_pipeline_service/cache_spec.rb": 6.0891419330000645,8002 "spec/lib/gitlab/mail_room/mail_room_spec.rb": 3.2910640239970235,8003 "spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb": 5.015920098001516,8004 "spec/graphql/mutations/issues/set_due_date_spec.rb": 8.261984075998043,8005 "spec/lib/gitlab/visibility_level_spec.rb": 1.9060726319985406,8006 "spec/lib/gitlab/git/cross_repo_spec.rb": 3.110274685997865,8007 "spec/tasks/gitlab/pages_rake_spec.rb": 4.819916477998049,8008 "spec/lib/gitlab/performance_bar_spec.rb": 5.620882350998727,8009 "spec/lib/gitlab/github_import/importer/single_endpoint_merge_request_notes_importer_spec.rb": 5.312899723998271,8010 "spec/tasks/dev_rake_spec.rb": 3.1473465920025774,8011 "spec/services/clusters/agent_tokens/revoke_service_spec.rb": 4.921482063997246,8012 "spec/lib/sidebars/projects/super_sidebar_panel_spec.rb": 4.543512755000847,8013 "spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb": 4.767139190000307,8014 "spec/services/error_tracking/collect_error_service_spec.rb": 1.4773288359974686,8015 "spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb": 2.699982734000514,8016 "spec/services/spam/akismet_service_spec.rb": 1.3837520420020155,8017 "spec/tasks/gitlab/update_templates_rake_spec.rb": 5.8254785610006365,8018 "spec/graphql/resolvers/design_management/version/designs_at_version_resolver_spec.rb": 2.6899139919987647,8019 "spec/services/web_hooks/destroy_service_spec.rb": 5.191426355002477,8020 "spec/graphql/types/base_object_spec.rb": 3.0000064189989644,8021 "spec/lib/grafana/time_window_spec.rb": 1.3132752510027785,8022 "spec/models/performance_monitoring/prometheus_dashboard_spec.rb": 4.145776425000804,8023 "spec/components/diffs/stats_component_spec.rb": 1.3192934619983134,8024 "spec/workers/ssh_keys/expired_notification_worker_spec.rb": 1.3523048969982483,8025 "spec/workers/deployments/hooks_worker_spec.rb": 5.6643613380001625,8026 "spec/helpers/namespaces_helper_spec.rb": 6.674987272999715,8027 "spec/services/suggestions/outdate_service_spec.rb": 4.688902597998094,8028 "spec/lib/gitlab/i18n/translation_entry_spec.rb": 1.4915326689988433,8029 "spec/services/users/create_service_spec.rb": 3.8096253929979866,8030 "spec/lib/gitlab/ci/badge/pipeline/template_spec.rb": 1.0230944869981613,8031 "spec/presenters/label_presenter_spec.rb": 1.5795507020011428,8032 "spec/finders/namespaces/projects_finder_spec.rb": 2.614205330002733,8033 "spec/lib/bitbucket_server/representation/activity_spec.rb": 0.9378826940010185,8034 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 1.996852645999752,8035 "spec/lib/gitlab/ci/pipeline/seed/processable/resource_group_spec.rb": 2.0581826150009874,8036 "spec/models/work_items/widgets/award_emoji_spec.rb": 1.5793965119992208,8037 "spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb": 0.8643784129999403,8038 "spec/tasks/gitlab/db/migration_fix_15_11_rake_spec.rb": 4.9936566750002385,8039 "spec/policies/incident_management/timeline_event_policy_spec.rb": 2.8957036140018317,8040 "spec/models/diff_note_position_spec.rb": 4.892994669000473,8041 "spec/models/concerns/stepable_spec.rb": 0.5387922830013849,8042 "spec/models/ci/unit_test_spec.rb": 4.311978839999938,8043 "spec/workers/ci/test_failure_history_worker_spec.rb": 2.4761095589965407,8044 "spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb": 1.0921943279972766,8045 "spec/finders/merge_requests/by_approvals_finder_spec.rb": 4.734778145000746,8046 "spec/services/bulk_imports/batched_relation_export_service_spec.rb": 1.6930253189966606,8047 "spec/lib/gitlab/config/entry/composable_hash_spec.rb": 0.9524338750015886,8048 "spec/services/ci/create_pipeline_service/custom_config_content_spec.rb": 2.9748179750022246,8049 "spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb": 5.721063265998964,8050 "spec/models/concerns/encrypted_user_password_spec.rb": 2.0936539309986983,8051 "spec/finders/prometheus_metrics_finder_spec.rb": 1.3174135819972435,8052 "spec/services/packages/generic/create_package_file_service_spec.rb": 3.247756897002546,8053 "spec/lib/gitlab/markup_helper_spec.rb": 1.4639647750009317,8054 "spec/rubocop/cop/graphql/authorize_types_spec.rb": 0.8265165359989624,8055 "spec/graphql/mutations/customer_relations/contacts/update_spec.rb": 1.0810078959984821,8056 "spec/lib/gitlab/ci/templates/Jobs/sast_iac_gitlab_ci_yaml_spec.rb": 2.7199774969994905,8057 "spec/rubocop/cop/usage_data/distinct_count_by_large_foreign_key_spec.rb": 0.5348764629998186,8058 "spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb": 4.029303267001524,8059 "spec/graphql/types/container_repository_type_spec.rb": 2.3167166740022367,8060 "spec/graphql/resolvers/merge_request_pipelines_resolver_spec.rb": 3.7726354070000525,8061 "spec/lib/gitlab/ci/runner/metrics_spec.rb": 2.818274871999165,8062 "spec/lib/banzai/pipeline/post_process_pipeline_spec.rb": 1.101215468999726,8063 "spec/lib/bulk_imports/pipeline/context_spec.rb": 1.3310658730006253,8064 "spec/services/clusters/agents/delete_service_spec.rb": 1.8700664169991796,8065 "spec/models/work_items/widget_definition_spec.rb": 1.2359629689999565,8066 "spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb": 0.6359300080002868,8067 "spec/serializers/import/provider_repo_serializer_spec.rb": 0.5256854500003101,8068 "spec/policies/deploy_token_policy_spec.rb": 3.3619939850032097,8069 "spec/models/preloaders/project_policy_preloader_spec.rb": 3.77063552799882,8070 "spec/models/wiki_directory_spec.rb": 0.7571105059978436,8071 "spec/services/boards/visits/create_service_spec.rb": 1.2367562990002625,8072 "spec/policies/system_hook_policy_spec.rb": 1.1872192919981899,8073 "spec/lib/release_highlights/validator/entry_spec.rb": 1.4157634170005622,8074 "spec/lib/gitlab/github_import/bulk_importing_spec.rb": 0.66614858200046,8075 "spec/services/google_cloud/service_accounts_service_spec.rb": 1.7071605019991694,8076 "spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb": 1.1001151490017946,8077 "spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb": 2.996407189002639,8078 "spec/services/pages/delete_service_spec.rb": 2.9689966249970894,8079 "spec/lib/gitlab/import/merge_request_creator_spec.rb": 2.9572272730001714,8080 "spec/services/groups/update_statistics_service_spec.rb": 0.5147976089974691,8081 "spec/lib/gitlab/git_post_receive_spec.rb": 1.3494667270024365,8082 "spec/initializers/1_acts_as_taggable_spec.rb": 0.6215751450035896,8083 "spec/lib/api/entities/ci/job_request/image_spec.rb": 0.5023950469985721,8084 "spec/validators/color_validator_spec.rb": 0.8704613429981691,8085 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb": 1.2508787910010142,8086 "spec/serializers/test_report_entity_spec.rb": 2.1537801800004672,8087 "spec/models/concerns/file_store_mounter_spec.rb": 0.5681582170000183,8088 "spec/helpers/container_expiration_policies_helper_spec.rb": 0.538106632000563,8089 "spec/models/concerns/clusters/agents/authorizations/user_access/scopes_spec.rb": 2.4265450519997103,8090 "spec/graphql/resolvers/terraform/states_resolver_spec.rb": 1.7708934720030811,8091 "spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb": 2.426657610998518,8092 "spec/helpers/admin/abuse_reports_helper_spec.rb": 0.8891520550023415,8093 "spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb": 1.8246719390008366,8094 "spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb": 0.3365014119990519,8095 "spec/finders/ci/auth_job_finder_spec.rb": 1.3419516850008222,8096 "spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb": 2.0154489090018615,8097 "spec/workers/jira_connect/sync_merge_request_worker_spec.rb": 2.1293421059999673,8098 "spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb": 0.3969392609978968,8099 "spec/models/aws/role_spec.rb": 0.9978751729977375,8100 "spec/services/ci/pipeline_schedules/take_ownership_service_spec.rb": 1.8343103309998696,8101 "spec/lib/gitlab/polling_interval_spec.rb": 0.4595710909998161,8102 "spec/workers/gitlab_service_ping_worker_spec.rb": 0.888616946998809,8103 "spec/lib/api/helpers/common_helpers_spec.rb": 0.35094292399662663,8104 "spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb": 0.7093986990003032,8105 "spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb": 1.4490147920005256,8106 "spec/rubocop/cop/rspec/missing_feature_category_spec.rb": 0.761366276001354,8107 "spec/views/projects/hooks/edit.html.haml_spec.rb": 2.443553424000129,8108 "spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb": 0.7292605219990946,8109 "spec/workers/ssh_keys/expiring_soon_notification_worker_spec.rb": 0.8623144020020845,8110 "spec/serializers/ci/codequality_mr_diff_entity_spec.rb": 0.32868504999714787,8111 "spec/lib/gitlab/ci/config/entry/inherit/variables_spec.rb": 0.5585265459994844,8112 "spec/services/notes/render_service_spec.rb": 0.306617547001224,8113 "spec/services/jira_connect/create_asymmetric_jwt_service_spec.rb": 1.3890254819998518,8114 "spec/services/work_items/widgets/labels_service/update_service_spec.rb": 1.3860276320010598,8115 "spec/models/users/group_callout_spec.rb": 0.7993258419992344,8116 "spec/workers/ci/daily_build_group_report_results_worker_spec.rb": 1.241454529998009,8117 "spec/lib/gitlab/ci/trace/section_parser_spec.rb": 0.7088945379982761,8118 "spec/workers/gitlab_shell_worker_spec.rb": 0.6410010489998967,8119 "spec/lib/gitlab/sidekiq_middleware_spec.rb": 0.8148592640027346,8120 "spec/serializers/evidences/milestone_entity_spec.rb": 1.7116685420005524,8121 "spec/workers/update_merge_requests_worker_spec.rb": 1.1405007739995199,8122 "spec/lib/gitlab/conan_token_spec.rb": 0.5328238219990453,8123 "spec/lib/system_check/app/authorized_keys_permission_check_spec.rb": 0.5568111749998934,8124 "spec/graphql/mutations/saved_replies/create_spec.rb": 0.7528401349991327,8125 "spec/lib/gitlab/seeders/ci/variables_instance_seeder_spec.rb": 0.9328418820005027,8126 "spec/services/google_cloud/get_cloudsql_instances_service_spec.rb": 1.1918449219992908,8127 "spec/rubocop/cop/performance/ar_count_each_spec.rb": 0.5100653680019605,8128 "spec/services/clusters/agents/create_activity_event_service_spec.rb": 0.9642675169998256,8129 "spec/models/packages/helm/file_metadatum_spec.rb": 0.8300364470014756,8130 "spec/lib/gitlab/email/service_desk_receiver_spec.rb": 0.5395567529994878,8131 "spec/finders/packages/composer/packages_finder_spec.rb": 1.3667823389987461,8132 "spec/lib/api/entities/application_setting_spec.rb": 0.8029073430006974,8133 "spec/lib/gitlab/throttle_spec.rb": 0.44666652899832116,8134 "spec/lib/bulk_imports/groups/pipelines/group_attributes_pipeline_spec.rb": 0.7960732620013005,8135 "spec/workers/upload_checksum_worker_spec.rb": 0.756356276000588,8136 "spec/services/integrations/slack_option_service_spec.rb": 0.9562052460023551,8137 "spec/models/ci/pipeline_metadata_spec.rb": 0.5166698489992996,8138 "spec/services/merge_requests/mergeability/check_discussions_status_service_spec.rb": 0.6152970439979981,8139 "spec/lib/gitlab/metrics/loose_foreign_keys_slis_spec.rb": 0.5012868160010839,8140 "spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb": 0.42641894500047783,8141 "spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb": 0.4083751920006762,8142 "spec/graphql/types/group_invitation_type_spec.rb": 0.4216938850004226,8143 "spec/models/work_items/widgets/base_spec.rb": 0.788172290998773,8144 "spec/models/projects/import_export/relation_export_upload_spec.rb": 0.798098981998919,8145 "spec/models/ml/experiment_metadata_spec.rb": 0.7562131259983289,8146 "spec/services/emails/destroy_service_spec.rb": 0.6601329110017105,8147 "spec/models/concerns/web_hooks/has_web_hooks_spec.rb": 0.3938570009995601,8148 "spec/helpers/ci/triggers_helper_spec.rb": 0.40997488299763063,8149 "spec/serializers/integrations/project_entity_spec.rb": 0.6937639370007673,8150 "spec/lib/microsoft_teams/notifier_spec.rb": 0.47150349200092023,8151 "spec/lib/gitlab/metrics/dashboard/validator/client_spec.rb": 0.4252752350002993,8152 "spec/graphql/types/ci/freeze_period_type_spec.rb": 0.40353294200031087,8153 "spec/workers/ci/stuck_builds/drop_scheduled_worker_spec.rb": 0.4097423829989566,8154 "spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb": 0.3444559119998303,8155 "spec/lib/api/entities/clusters/agent_spec.rb": 0.7038696979980159,8156 "spec/lib/gitlab/logging/cloudflare_helper_spec.rb": 0.38754594899728545,8157 "spec/lib/gitlab/checks/timed_logger_spec.rb": 0.3904807799990522,8158 "spec/lib/api/validations/validators/absence_spec.rb": 0.3551230740013125,8159 "spec/workers/packages/composer/cache_cleanup_worker_spec.rb": 0.4594309010026336,8160 "spec/lib/serializers/unsafe_json_spec.rb": 0.338091870999051,8161 "spec/serializers/import/github_realtime_repo_entity_spec.rb": 0.3438243020027585,8162 "spec/lib/gitlab/usage/metrics/instrumentations/cert_based_clusters_ff_metric_spec.rb": 0.37284170700149843,8163 "spec/lib/gitlab/git/patches/patch_spec.rb": 0.3452335330002825,8164 "spec/graphql/types/detployment_tag_type_spec.rb": 0.3885857599998417,8165 "spec/graphql/types/visibility_pipeline_id_type_enum_spec.rb": 0.35167828400153667,8166 "spec/rubocop/cop/gitlab/bulk_insert_spec.rb": 0.36367512599827023,8167 "spec/lib/gitlab/ci/interpolation/context_spec.rb": 0.3664575570001034,8168 "spec/validators/rsa_key_validator_spec.rb": 0.38511222999659367,8169 "spec/graphql/types/projects/branch_rule_type_spec.rb": 0.33478666100199916,8170 "spec/workers/todos_destroyer/confidential_issue_worker_spec.rb": 0.34016673199948855,8171 "spec/initializers/session_store_spec.rb": 0.32100699900183827,8172 "spec/workers/partition_creation_worker_spec.rb": 0.3170832390023861,8173 "spec/lib/bitbucket/collection_spec.rb": 0.2949259150009311,8174 "spec/lib/gitlab/api_authentication/token_type_builder_spec.rb": 0.30556727700241026,8175 "spec/graphql/types/dependency_proxy/blob_type_spec.rb": 0.29111484500026563,8176 "spec/serializers/ci/variable_entity_spec.rb": 0.3717390769998019,8177 "spec/graphql/types/ci/variable_input_type_spec.rb": 0.3019379459983611,8178 "spec/lib/gitlab/puma_logging/json_formatter_spec.rb": 0.3423582220020762,8179 "spec/views/help/drawers.html.haml_spec.rb": 0.40951734199916245,8180 "spec/lib/bitbucket/representation/user_spec.rb": 0.317019857997365768181}8182Knapsack global time execution for tests: 28m8183Pending: (Failures listed here are expected and do not affect your suite's status)8184 1) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths #upload_path behaves like matches the method pattern 8185 # No pattern provided, skipping.8186 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88187 2) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths #relative_path is relative8188 # Path not set, skipping.8189 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408190 3) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths .absolute_path behaves like matches the method pattern 8191 # No pattern provided, skipping.8192 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88193 4) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths .base_dir behaves like matches the method pattern 8194 # No pattern provided, skipping.8195 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88196 5) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8197 # No pattern provided, skipping.8198 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88199 6) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths #relative_path is relative8200 # Path not set, skipping.8201 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408202 7) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8203 # No pattern provided, skipping.8204 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88205 8) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8206 # No pattern provided, skipping.8207 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88208 9) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths #upload_path behaves like matches the method pattern 8209 # No pattern provided, skipping.8210 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88211 10) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths #relative_path is relative8212 # Path not set, skipping.8213 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408214 11) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths .absolute_path behaves like matches the method pattern 8215 # No pattern provided, skipping.8216 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88217 12) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths .base_dir behaves like matches the method pattern 8218 # No pattern provided, skipping.8219 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88220 13) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8221 # No pattern provided, skipping.8222 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88223 14) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths #relative_path is relative8224 # Path not set, skipping.8225 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408226 15) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8227 # No pattern provided, skipping.8228 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88229 16) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8230 # No pattern provided, skipping.8231 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88232 17) Banzai::Filter::References::WorkItemReferenceFilter when cross-project URL in link href behaves like a work item reference does not escape the data-original attribute8233 # No reason given8234 # ./spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb:1068235 18) Banzai::Filter::References::WorkItemReferenceFilter when cross-project URL in link href behaves like a work item reference includes a data-reference-format attribute8236 # No reason given8237 # ./spec/lib/banzai/filter/references/work_item_reference_filter_spec.rb:1158238 19) Ci::ResourceGroup#assign_resource_to retains resource for the processable8239 # Skipping partitioning tests until `ci_builds` is partitioned8240 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8241 RSpec::Core::Pending::SkipDeclaredInExample8242 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8243 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8244 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8245 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8246 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8247 20) Ci::ResourceGroup#assign_resource_to when there are no free resources fails to retain resource8248 # Skipping partitioning tests until `ci_builds` is partitioned8249 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8250 RSpec::Core::Pending::SkipDeclaredInExample8251 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8252 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8253 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8254 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8255 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8256 21) Ci::ResourceGroup#assign_resource_to when the build has already retained a resource fails to retain resource8257 # Skipping partitioning tests until `ci_builds` is partitioned8258 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8259 RSpec::Core::Pending::SkipDeclaredInExample8260 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8261 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8262 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8263 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8264 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8265 22) Ci::ResourceGroup#release_resource_from when the build has already retained a resource releases resource from the build8266 # Skipping partitioning tests until `ci_builds` is partitioned8267 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8268 RSpec::Core::Pending::SkipDeclaredInExample8269 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8270 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8271 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8272 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8273 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8274 23) Ci::ResourceGroup#release_resource_from when the build has already released a resource fails to release resource8275 # Skipping partitioning tests until `ci_builds` is partitioned8276 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8277 RSpec::Core::Pending::SkipDeclaredInExample8278 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8279 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8280 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8281 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8282 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8283Finished in 28 minutes 4 seconds (files took 50.68 seconds to load)82843397 examples, 0 failures, 23 pending8285Randomized with seed 197548286[TEST PROF INFO] Time spent in factories: 16:11.547 (57.46% of total time)8287RSpec exited with 0.8288No examples to retry, congrats!8290Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8292Uploading artifacts...8293coverage/: found 5 matching artifact files and directories 8294crystalball/: found 2 matching artifact files and directories 8295deprecations/: found 4 matching artifact files and directories 8296knapsack/: found 4 matching artifact files and directories 8297WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8298rspec/: found 16 matching artifact files and directories 8299WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8300log/*.log: found 19 matching artifact files and directories 8301WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964251/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8302WARNING: Retrying... context=artifacts-uploader error=request redirected8303Uploading artifacts as "archive" to coordinator... 201 Created id=4400964251 responseStatus=201 Created token=64_udSqx8304Uploading artifacts...8305rspec/rspec-*.xml: found 1 matching artifact files and directories 8306WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964251/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8307WARNING: Retrying... context=artifacts-uploader error=request redirected8308Uploading artifacts as "junit" to coordinator... 201 Created id=4400964251 responseStatus=201 Created token=64_udSqx8310Job succeeded