rspec unit pg14 11/28
Passed Started
by
@leipert
Lukas Eipert
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G, system ID: s_673deea48c2a3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14: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-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...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:b9cad9a5aff99063a48d14d26e9f31dcf1768b8e65c4687a8e3bc995c02749f3 for redis:6.2-alpine with digest redis@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3 ...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.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:f47b23bf3b9e02a2837ddb6fe9a0b728c270e7a7d815dc582fd17281be34f20d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14: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.20-rust-1.65-node-18.16-postgresql-14@sha256:4db9bc427d7eb1bd075d76b4e5e3e59eb0d96c2e788e6275e628f0026dd30039 ...25Running on runner-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1687781444-c134893b...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 126566, done. 31remote: Counting objects: 100% (126566/126566), done. 32remote: Compressing objects: 100% (87596/87596), done. 33remote: Total 126566 (delta 50477), reused 83712 (delta 34367), pack-reused 0 34Receiving objects: 100% (126566/126566), 114.65 MiB | 28.93 MiB/s, done.35Resolving deltas: 100% (50477/50477), done.37 * [new ref] refs/pipelines/912039887 -> refs/pipelines/91203988738 * [new branch] master -> origin/master39Checking out 04f47f21 as detached HEAD (ref is master)...40Skipping Git submodules setup41$ git remote set-url origin "${CI_REPOSITORY_URL}"43Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...44Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 45Successfully extracted cache47Downloading artifacts for compile-test-assets (4541357536)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357536 responseStatus=200 OK token=64_2CsGY49Downloading artifacts for retrieve-tests-metadata (4541357542)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357542 responseStatus=200 OK token=64_2CsGY51Downloading artifacts for setup-test-env (4541357540)...52Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4541357540 responseStatus=200 OK token=64_2CsGY54Using docker image sha256:f47b23bf3b9e02a2837ddb6fe9a0b728c270e7a7d815dc582fd17281be34f20d for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14: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.20-rust-1.65-node-18.16-postgresql-14@sha256:4db9bc427d7eb1bd075d76b4e5e3e59eb0d96c2e788e6275e628f0026dd30039 ...55$ echo $FOSS_ONLY56$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb57$ export GOPATH=$CI_PROJECT_DIR/.go58$ mkdir -p $GOPATH59$ source scripts/utils.sh60$ source scripts/prepare_build.sh719Using decomposed database config (config/database.yml.decomposed-postgresql)720Geo DB won't be set up.721Embedding DB won't be set up.733$ source ./scripts/rspec_helpers.sh734$ run_timed_command "gem install knapsack --no-document"735$ gem install knapsack --no-document736Successfully installed knapsack-4.0.07371 gem installed738==> 'gem install knapsack --no-document' succeeded in 2 seconds.739$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"741$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"746$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"747$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration"748SKIP_FLAKY_TESTS_AUTOMATICALLY: 749RETRY_FAILED_TESTS_IN_NEW_PROCESS: true750KNAPSACK_GENERATE_REPORT: true751FLAKY_RSPEC_GENERATE_REPORT: true752KNAPSACK_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.rb753KNAPSACK_LOG_LEVEL: debug754KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_11_28_report.json755FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json756FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_11_28_report.json757NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_11_28_report.json758SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg14_11_28.txt759CRYSTALBALL: 760RSPEC_TESTS_MAPPING_ENABLED: 761RSPEC_TESTS_FILTER_FILE: 762Running 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-4541357744.json --format RspecJunitFormatter --out rspec/rspec-4541357744.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration -- spec/models/ci/pipeline_spec.rb spec/lib/gitlab/git/repository_spec.rb spec/models/concerns/issuable_spec.rb spec/services/notes/quick_actions_service_spec.rb spec/models/event_spec.rb spec/services/boards/issues/move_service_spec.rb spec/services/packages/npm/create_package_service_spec.rb spec/models/environment_status_spec.rb spec/finders/ci/runners_finder_spec.rb spec/graphql/resolvers/project_issues_resolver_spec.rb spec/lib/gitlab/gfm/reference_rewriter_spec.rb spec/helpers/groups_helper_spec.rb spec/lib/gitlab/database/lock_writes_manager_spec.rb spec/lib/gitlab/background_migration/backfill_admin_mode_scope_for_personal_access_tokens_spec.rb spec/uploaders/attachment_uploader_spec.rb spec/helpers/gitlab_routing_helper_spec.rb spec/helpers/blob_helper_spec.rb spec/models/integrations/telegram_spec.rb spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb spec/helpers/packages_helper_spec.rb spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb spec/models/terraform/state_version_spec.rb spec/services/ci/play_build_service_spec.rb spec/models/integrations/pipelines_email_spec.rb spec/models/timelog_spec.rb spec/services/projects/after_rename_service_spec.rb spec/lib/api/entities/snippet_spec.rb spec/lib/banzai/filter/audio_link_filter_spec.rb spec/models/clusters/integrations/prometheus_spec.rb spec/services/admin/set_feature_flag_service_spec.rb spec/services/projects/hashed_storage/migrate_repository_service_spec.rb spec/graphql/mutations/merge_requests/set_assignees_spec.rb spec/lib/gitlab/ci/config/entry/bridge_spec.rb spec/lib/gitlab/verify/uploads_spec.rb spec/models/deployment_metrics_spec.rb spec/services/snippets/update_statistics_service_spec.rb spec/models/protectable_dropdown_spec.rb spec/bin/audit_event_type_spec.rb spec/workers/container_registry/migration/guard_worker_spec.rb spec/graphql/mutations/releases/delete_spec.rb spec/finders/crm/contacts_finder_spec.rb spec/models/ci/resource_group_spec.rb spec/lib/container_registry/blob_spec.rb spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb spec/services/repositories/housekeeping_service_spec.rb spec/models/packages/debian/group_component_file_spec.rb spec/models/packages/npm/metadata_cache_spec.rb spec/models/ci/build_trace_chunks/fog_spec.rb spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb spec/lib/gitlab/legacy_github_import/project_creator_spec.rb spec/lib/gitlab/redis/chat_spec.rb spec/services/service_response_spec.rb spec/finders/user_recent_events_finder_spec.rb spec/lib/banzai/filter/emoji_filter_spec.rb spec/services/ci/stuck_builds/drop_pending_service_spec.rb spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb spec/lib/gitlab/data_builder/deployment_spec.rb spec/lib/gitlab/github_import/representation/issue_spec.rb spec/models/prometheus_alert_event_spec.rb spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb spec/helpers/nav_helper_spec.rb spec/tooling/graphql/docs/renderer_spec.rb spec/presenters/snippet_presenter_spec.rb spec/graphql/mutations/container_repositories/destroy_tags_spec.rb spec/models/oauth_access_token_spec.rb spec/services/ci/create_pipeline_service/parallel_spec.rb spec/lib/gitlab/ci/pipeline/logger_spec.rb spec/models/users/credit_card_validation_spec.rb spec/policies/base_policy_spec.rb spec/services/incident_management/issuable_escalation_statuses/prepare_update_service_spec.rb spec/lib/api/helpers/packages/npm_spec.rb spec/graphql/mutations/todos/restore_many_spec.rb spec/workers/pipeline_process_worker_spec.rb spec/models/ml/experiment_spec.rb spec/lib/gitlab/database/partitioning/time_partition_spec.rb spec/lib/gitlab/file_hook_spec.rb spec/workers/bulk_imports/pipeline_worker_spec.rb spec/models/users_star_project_spec.rb spec/models/integrations/bugzilla_spec.rb spec/lib/gitlab/import_export/uploads_manager_spec.rb spec/lib/gitlab/tracking/service_ping_context_spec.rb spec/lib/gitlab/ci/runner/metrics_spec.rb spec/services/dependency_proxy/auth_token_service_spec.rb spec/workers/pages_domain_verification_cron_worker_spec.rb spec/workers/bulk_imports/relation_export_worker_spec.rb spec/graphql/mutations/issues/set_subscription_spec.rb spec/services/projects/update_statistics_service_spec.rb spec/models/concerns/cacheable_attributes_spec.rb spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb spec/lib/sidebars/projects/menus/issues_menu_spec.rb spec/serializers/deployment_serializer_spec.rb spec/components/pajamas/checkbox_component_spec.rb spec/lib/gitlab/hook_data/base_builder_spec.rb spec/services/ci/create_pipeline_service/environment_spec.rb spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb spec/workers/packages/debian/cleanup_dangling_package_files_worker_spec.rb spec/lib/gitlab/uuid_spec.rb spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb spec/lib/gitlab/hook_data/project_builder_spec.rb spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb spec/lib/gitlab/etag_caching/store_spec.rb spec/initializers/mail_encoding_patch_spec.rb spec/rubocop/cop/gitlab/rails_logger_spec.rb spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb spec/models/project_export_job_spec.rb spec/lib/gitlab/import_export/base/object_builder_spec.rb spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb spec/models/clusters/agents/authorizations/ci_access/implicit_authorization_spec.rb spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb spec/serializers/stage_serializer_spec.rb spec/lib/gitlab/sql/glob_spec.rb spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb spec/services/system_hooks_service_spec.rb spec/uploaders/object_storage/cdn/google_ip_cache_spec.rb spec/services/ci/update_pending_build_service_spec.rb spec/lib/gitlab/git/remote_mirror_spec.rb spec/models/abuse/user_trust_score_spec.rb spec/models/integrations/base_third_party_wiki_spec.rb spec/finders/award_emojis_finder_spec.rb spec/rubocop/cop/performance/active_record_subtransaction_methods_spec.rb spec/lib/bulk_imports/pipeline/extracted_data_spec.rb spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb spec/lib/gitlab/import_export/repo_saver_spec.rb spec/helpers/time_zone_helper_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb spec/services/users/ban_service_spec.rb spec/services/packages/mark_package_for_destruction_service_spec.rb spec/helpers/recaptcha_helper_spec.rb spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb spec/lib/gitlab/private_commit_email_spec.rb spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb spec/graphql/types/ci/detailed_status_type_spec.rb spec/graphql/types/repository/blob_type_spec.rb spec/lib/gitlab/background_migration/update_ci_pipeline_artifacts_unknown_locked_status_spec.rb spec/models/ci/build_pending_state_spec.rb spec/models/work_items/widgets/base_spec.rb spec/tooling/rspec_flaky/example_spec.rb spec/services/projects/detect_repository_languages_service_spec.rb spec/lib/gitlab/wiki_file_finder_spec.rb spec/rubocop/cop/migration/background_migration_base_class_spec.rb spec/services/integrations/slack_option_service_spec.rb spec/lib/gitlab/database/reindexing/coordinator_spec.rb spec/models/concerns/featurable_spec.rb spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb spec/models/resource_events/issue_assignment_event_spec.rb spec/lib/api/helpers/pagination_strategies_spec.rb spec/views/layouts/_head.html.haml_spec.rb spec/views/layouts/_published_experiments.html.haml_spec.rb spec/lib/gitlab/database/background_migration/batch_optimizer_spec.rb spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb spec/lib/gitlab/import/metrics_spec.rb spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb spec/rubocop/cop/file_decompression_spec.rb spec/validators/iso8601_date_validator_spec.rb spec/graphql/resolvers/users_resolver_spec.rb spec/lib/gitlab/database/migrations/test_background_runner_spec.rb spec/services/concerns/rate_limited_service_spec.rb spec/lib/gitlab/ci/status/build/created_spec.rb spec/graphql/types/metadata_type_spec.rb spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb spec/lib/gitlab/container_repository/tags/cache_spec.rb spec/lib/gitlab/ci/status/build/pending_spec.rb spec/lib/sidebars/static_menu_spec.rb spec/models/issues/csv_import_spec.rb spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb spec/rubocop/cop/migration/update_column_in_batches_spec.rb spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb spec/graphql/types/color_type_spec.rb spec/models/performance_monitoring/prometheus_panel_spec.rb spec/finders/groups/accepting_project_transfers_finder_spec.rb spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb spec/models/design_management/repository_spec.rb spec/tooling/lib/tooling/helpers/file_handler_spec.rb spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb spec/lib/constraints/user_url_constrainer_spec.rb spec/models/project_custom_attribute_spec.rb spec/models/push_event_payload_spec.rb spec/serializers/build_artifact_entity_spec.rb spec/lib/gitlab/database/health_status/indicators/autovacuum_active_on_table_spec.rb spec/services/bulk_imports/archive_extraction_service_spec.rb spec/lib/gitlab/setup_helper/workhorse_spec.rb spec/services/keys/create_service_spec.rb spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb spec/lib/gitlab/auth/otp/strategies/forti_authenticator/push_otp_spec.rb spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb spec/lib/gitlab/database/migrations/lock_retries_helpers_spec.rb spec/helpers/access_tokens_helper_spec.rb spec/graphql/types/packages/nuget/metadatum_type_spec.rb spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb spec/lib/gitlab/timeless_spec.rb spec/lib/gitlab/jira/middleware_spec.rb spec/lib/gitlab/empty_search_results_spec.rb spec/workers/users/create_statistics_worker_spec.rb spec/lib/gitlab/tab_width_spec.rb spec/lib/gitlab/word_diff/parser_spec.rb spec/lib/gitlab/database/schema_validation/schema_objects/trigger_spec.rb spec/policies/instance_metadata_policy_spec.rb spec/serializers/integrations/harbor_serializers/tag_entity_spec.rb spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb spec/lib/gitlab/github_import/single_endpoint_notes_importing_spec.rb spec/graphql/resolvers/package_details_resolver_spec.rb spec/graphql/types/achievements/user_achievement_type_spec.rb spec/graphql/types/clusters/agent_activity_event_type_spec.rb spec/serializers/move_to_project_entity_spec.rb spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb spec/workers/member_invitation_reminder_emails_worker_spec.rb spec/lib/gitlab/utils/execution_tracker_spec.rb spec/graphql/types/merge_request_sort_enum_spec.rb spec/graphql/types/container_expiration_policy_older_than_enum_spec.rb spec/lib/gitlab/ci/interpolation/context_spec.rb spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb spec/lib/gitlab/render_timeout_spec.rb spec/lib/banzai/pipeline/emoji_pipeline_spec.rb spec/rubocop/cop/database/rescue_query_canceled_spec.rb spec/lib/gitlab/slash_commands/presenters/error_spec.rb spec/lib/gitlab/database/transaction_timeout_settings_spec.rb spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb spec/lib/gitlab/emoji_spec.rb spec/lib/gitlab/error_tracking/logger_spec.rb spec/graphql/resolvers/packages_base_resolver_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb spec/graphql/types/release_asset_link_type_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_table_columns_spec.rb spec/views/users/_profile_basic_info.html.haml_spec.rb spec/graphql/types/permission_types/deployment_spec.rb spec/graphql/types/permission_types/ci/pipeline_schedule_type_spec.rb spec/serializers/evidences/evidence_serializer_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/database_mode_spec.rb spec/graphql/types/ci/group_variable_connection_type_spec.rbKnapsack report generator started!763Run options: exclude {:quarantine=>true, :level=>"background_migration"}764Test environment set up in 0.85437473 seconds765Ci::Pipeline766 paginates 15 pipelines per page767 is expected to belong to project required: false768 is expected to belong to user required: false769 is expected to belong to auto_canceled_by class_name => Ci::Pipeline required: false inverse_of => auto_canceled_pipelines770 is expected to belong to pipeline_schedule required: false771 is expected to belong to merge_request required: false772 is expected to belong to external_pull_request required: false773 is expected to have many statuses774 is expected to have many trigger_requests inverse_of => pipeline775 is expected to have many variables776 is expected to have many builds777 is expected to have many statuses_order_id_desc class_name => CommitStatus inverse_of => pipeline778 is expected to have many bridges779 is expected to have many job_artifacts through builds780 is expected to have many build_trace_chunks through builds781 is expected to have many triggered_pipelines782 is expected to have many pipeline_artifacts783 is expected to have many failed_builds class_name => Ci::Build inverse_of => pipeline784 is expected to have many cancelable_statuses class_name => CommitStatus inverse_of => pipeline785 is expected to have many auto_canceled_pipelines class_name => Ci::Pipeline inverse_of => auto_canceled_by786 is expected to have many auto_canceled_jobs class_name => CommitStatus inverse_of => auto_canceled_by787 is expected to have many sourced_pipelines class_name => Ci::Sources::Pipeline inverse_of => source_pipeline788 is expected to have one source_pipeline789 is expected to have one chat_data790 is expected to have one triggered_by_pipeline791 is expected to have one source_job792 is expected to have one pipeline_config793 is expected to have one pipeline_metadata794 is expected to have many daily_build_group_report_results class_name => Ci::DailyBuildGroupReportResult inverse_of => last_pipeline795 is expected to have many latest_builds_report_results through latest_builds source => report_results796 is expected to respond to #git_author_name797 is expected to respond to #git_author_email798 is expected to respond to #git_author_full_text799 is expected to respond to #short_sha800 is expected to delegate #project_full_path to the #project object as #full_path801 is expected to delegate #name to the #pipeline_metadata object, allowing #pipeline_metadata to return nil802 behaves like having unique enum values803 has unique values in "source"804 has unique values in "config_source"805 has unique values in "failure_reason"806 has unique values in "locked"807 validations808 is expected to validate that :sha cannot be empty/falsy809 is expected to validate that :status cannot be empty/falsy810 associations811 has a bidirectional relationship with projects812 #latest_builds813 has a one to many relationship with its latest builds814 #latest_successful_builds815 has a one to many relationship with its latest successful builds816 #downloadable_artifacts817 when artifacts are locked818 returns downloadable artifacts including locked artifacts819 when artifacts are unlocked820 returns only downloadable artifacts not expired821 state machine transitions822 from failed to success823 schedules CoverageReportWorker824 pipeline age metric825 when pipeline age histogram is enabled826 observes pipeline age827 when pipeline age histogram is disabled828 observes pipeline age829 #set_status830 from_status: :created, to_status: :waiting_for_resource831 is expected to eq true832 from_status: :created, to_status: :preparing833 is expected to eq true834 from_status: :created, to_status: :pending835 is expected to eq true836 from_status: :created, to_status: :running837 is expected to eq true838 from_status: :created, to_status: :failed839 is expected to eq true840 from_status: :created, to_status: :success841 is expected to eq true842 from_status: :created, to_status: :canceled843 is expected to eq true844 from_status: :created, to_status: :skipped845 is expected to eq true846 from_status: :created, to_status: :manual847 is expected to eq true848 from_status: :created, to_status: :scheduled849 is expected to eq true850 from_status: :waiting_for_resource, to_status: :waiting_for_resource851 is expected to eq false852 from_status: :waiting_for_resource, to_status: :preparing853 is expected to eq true854 from_status: :waiting_for_resource, to_status: :pending855 is expected to eq true856 from_status: :waiting_for_resource, to_status: :running857 is expected to eq true858 from_status: :waiting_for_resource, to_status: :failed859 is expected to eq true860 from_status: :waiting_for_resource, to_status: :success861 is expected to eq true862 from_status: :waiting_for_resource, to_status: :canceled863 is expected to eq true864 from_status: :waiting_for_resource, to_status: :skipped865 is expected to eq true866 from_status: :waiting_for_resource, to_status: :manual867 is expected to eq true868 from_status: :waiting_for_resource, to_status: :scheduled869 is expected to eq true870 from_status: :preparing, to_status: :waiting_for_resource871 is expected to eq true872 from_status: :preparing, to_status: :preparing873 is expected to eq false874 from_status: :preparing, to_status: :pending875 is expected to eq true876 from_status: :preparing, to_status: :running877 is expected to eq true878 from_status: :preparing, to_status: :failed879 is expected to eq true880 from_status: :preparing, to_status: :success881 is expected to eq true882 from_status: :preparing, to_status: :canceled883 is expected to eq true884 from_status: :preparing, to_status: :skipped885 is expected to eq true886 from_status: :preparing, to_status: :manual887 is expected to eq true888 from_status: :preparing, to_status: :scheduled889 is expected to eq true890 from_status: :pending, to_status: :waiting_for_resource891 is expected to eq true892 from_status: :pending, to_status: :preparing893 is expected to eq true894 from_status: :pending, to_status: :pending895 is expected to eq false896 from_status: :pending, to_status: :running897 is expected to eq true898 from_status: :pending, to_status: :failed899 is expected to eq true900 from_status: :pending, to_status: :success901 is expected to eq true902 from_status: :pending, to_status: :canceled903 is expected to eq true904 from_status: :pending, to_status: :skipped905 is expected to eq true906 from_status: :pending, to_status: :manual907 is expected to eq true908 from_status: :pending, to_status: :scheduled909 is expected to eq true910 from_status: :running, to_status: :waiting_for_resource911 is expected to eq true912 from_status: :running, to_status: :preparing913 is expected to eq true914 from_status: :running, to_status: :pending915 is expected to eq true916 from_status: :running, to_status: :running917 is expected to eq false918 from_status: :running, to_status: :failed919 is expected to eq true920 from_status: :running, to_status: :success921 is expected to eq true922 from_status: :running, to_status: :canceled923 is expected to eq true924 from_status: :running, to_status: :skipped925 is expected to eq true926 from_status: :running, to_status: :manual927 is expected to eq true928 from_status: :running, to_status: :scheduled929 is expected to eq true930 from_status: :failed, to_status: :waiting_for_resource931 is expected to eq true932 from_status: :failed, to_status: :preparing933 is expected to eq true934 from_status: :failed, to_status: :pending935 is expected to eq true936 from_status: :failed, to_status: :running937 is expected to eq true938 from_status: :failed, to_status: :failed939 is expected to eq false940 from_status: :failed, to_status: :success941 is expected to eq true942 from_status: :failed, to_status: :canceled943 is expected to eq true944 from_status: :failed, to_status: :skipped945 is expected to eq true946 from_status: :failed, to_status: :manual947 is expected to eq true948 from_status: :failed, to_status: :scheduled949 is expected to eq true950 from_status: :success, to_status: :waiting_for_resource951 is expected to eq true952 from_status: :success, to_status: :preparing953 is expected to eq true954 from_status: :success, to_status: :pending955 is expected to eq true956 from_status: :success, to_status: :running957 is expected to eq true958 from_status: :success, to_status: :failed959 is expected to eq true960 from_status: :success, to_status: :success961 is expected to eq true962 from_status: :success, to_status: :canceled963 is expected to eq true964 from_status: :success, to_status: :skipped965 is expected to eq true966 from_status: :success, to_status: :manual967 is expected to eq true968 from_status: :success, to_status: :scheduled969 is expected to eq true970 from_status: :canceled, to_status: :waiting_for_resource971 is expected to eq true972 from_status: :canceled, to_status: :preparing973 is expected to eq true974 from_status: :canceled, to_status: :pending975 is expected to eq true976 from_status: :canceled, to_status: :running977 is expected to eq true978 from_status: :canceled, to_status: :failed979 is expected to eq true980 from_status: :canceled, to_status: :success981 is expected to eq true982 from_status: :canceled, to_status: :canceled983 is expected to eq false984 from_status: :canceled, to_status: :skipped985 is expected to eq true986 from_status: :canceled, to_status: :manual987 is expected to eq true988 from_status: :canceled, to_status: :scheduled989 is expected to eq true990 from_status: :skipped, to_status: :waiting_for_resource991 is expected to eq true992 from_status: :skipped, to_status: :preparing993 is expected to eq true994 from_status: :skipped, to_status: :pending995 is expected to eq true996 from_status: :skipped, to_status: :running997 is expected to eq true998 from_status: :skipped, to_status: :failed999 is expected to eq true1000 from_status: :skipped, to_status: :success1001 is expected to eq true1002 from_status: :skipped, to_status: :canceled1003 is expected to eq true1004 from_status: :skipped, to_status: :skipped1005 is expected to eq false1006 from_status: :skipped, to_status: :manual1007 is expected to eq true1008 from_status: :skipped, to_status: :scheduled1009 is expected to eq true1010 from_status: :manual, to_status: :waiting_for_resource1011 is expected to eq true1012 from_status: :manual, to_status: :preparing1013 is expected to eq true1014 from_status: :manual, to_status: :pending1015 is expected to eq true1016 from_status: :manual, to_status: :running1017 is expected to eq true1018 from_status: :manual, to_status: :failed1019 is expected to eq true1020 from_status: :manual, to_status: :success1021 is expected to eq true1022 from_status: :manual, to_status: :canceled1023 is expected to eq true1024 from_status: :manual, to_status: :skipped1025 is expected to eq true1026 from_status: :manual, to_status: :manual1027 is expected to eq false1028 from_status: :manual, to_status: :scheduled1029 is expected to eq true1030 from_status: :scheduled, to_status: :waiting_for_resource1031 is expected to eq true1032 from_status: :scheduled, to_status: :preparing1033 is expected to eq true1034 from_status: :scheduled, to_status: :pending1035 is expected to eq true1036 from_status: :scheduled, to_status: :running1037 is expected to eq true1038 from_status: :scheduled, to_status: :failed1039 is expected to eq true1040 from_status: :scheduled, to_status: :success1041 is expected to eq true1042 from_status: :scheduled, to_status: :canceled1043 is expected to eq true1044 from_status: :scheduled, to_status: :skipped1045 is expected to eq true1046 from_status: :scheduled, to_status: :manual1047 is expected to eq true1048 from_status: :scheduled, to_status: :scheduled1049 is expected to eq false1050 .processables1051 has an association with processable CI/CD entities1052 makes it possible to append a new processable1053 .for_iid1054 returns the pipeline1055 .for_name1056 when name exists1057 performs exact compare1058 when name does not exist1059 returns empty1060 .created_after1061 returns the pipeline1062 .created_before_id1063 returns the pipeline1064 .for_sha1065 returns the pipeline1066 when argument is array1067 returns the pipelines1068 when sha is empty1069 does not return anything1070 .where_not_sha1071 returns the pipeline without the specified sha1072 when argument is array1073 returns the pipelines without the specified shas1074 .for_source_sha1075 returns the pipeline1076 when argument is array1077 returns the pipelines1078 when source_sha is empty1079 does not return anything1080 .for_sha_or_source_sha1081 when sha is matched1082 returns the pipeline1083 when source sha is matched1084 returns the pipeline1085 when both sha and source sha are not matched1086 does not return anything1087 .for_branch1088 returns the pipeline1089 with tag pipeline1090 returns nothing1091 .with_pipeline_source1092 contains pipelines created due to specified source1093 .preload_pipeline_metadata1094 loads associations1095 .ci_sources1096 contains pipelines having CI only sources1097 filters on expected sources1098 .ci_branch_sources1099 contains pipelines having CI only sources1100 filters on expected sources1101 .ci_and_security_orchestration_sources1102 contains pipelines having CI and security_orchestration_policy sources1103 filters on expected sources1104 .outside_pipeline_family1105 only returns pipelines outside pipeline family1106 .before_pipeline1107 only returns older pipelines outside pipeline family1108 .order_id_desc1109 only returns the pipelines ordered by id1110 .jobs_count_in_alive_pipelines1111 includes all jobs in alive pipelines created in the last 24 hours1112 .builds_count_in_alive_pipelines1113 includes all builds in alive pipelines created in the last 24 hours1114 #merge_request?1115 is expected to be merge request1116 when merge request is already loaded1117 does not reload the record and returns true1118 when merge request is not loaded1119 executes a database query and returns true1120 caches the result1121 when merge request was removed1122 executes a database query and returns false1123 when merge request id is not present1124 is expected not to be merge request1125 #detached_merge_request_pipeline?1126 is expected to be truthy1127 when target sha exists1128 is expected to be falsy1129 #merged_result_pipeline?1130 is expected to be truthy1131 when target sha is empty1132 is expected to be falsy1133 #merge_request_ref?1134 calls MergeRequest#merge_request_ref?1135 #merge_request_event_type1136 when pipeline is merge request pipeline1137 is expected to eq :merged_result1138 when pipeline is detached merge request pipeline1139 is expected to eq :detached1140 #legacy_detached_merge_request_pipeline?1141 is expected to be truthy1142 when pipeline ref is a merge request ref1143 is expected to be falsy1144 when target sha is set1145 is expected to be falsy1146 #matches_sha_or_source_sha?1147 when sha matches1148 is expected to be truthy1149 when source_sha matches1150 is expected to be truthy1151 when both sha and source_sha do not match1152 is expected to be falsy1153 #source_ref1154 returns source ref1155 when the pipeline is a detached merge request pipeline1156 returns source ref1157 #source_ref_slug1158 slugifies with the source ref1159 when the pipeline is a detached merge request pipeline1160 slugifies with the source ref of the merge request1161 .with_reports1162 when pipeline has a test report1163 selects the pipeline1164 when pipeline has a coverage report1165 selects the pipeline1166 when pipeline has an accessibility report1167 selects the pipeline1168 when pipeline has a codequality report1169 selects the pipeline1170 when pipeline has a terraform report1171 selects the pipeline1172 when pipeline does not have metrics reports1173 does not select the pipeline1174 .merge_request_event1175 when there is a merge request pipeline1176 returns merge request pipeline first1177 when there are no merge request pipelines1178 returns empty array1179 modules1180 behaves like AtomicInternalId1181 .has_internal_id1182 Module inclusion1183 is expected to includes the AtomicInternalId module1184 Validation1185 when presence validation is required1186 when creating an object1187 raises an error if the internal id is blank (PENDING: No reason given)1188 when updating an object1189 raises an error if the internal id is blank (PENDING: No reason given)1190 when presence validation is not required1191 when creating an object1192 does not raise an error if the internal id is blank1193 when updating an object1194 does not raise an error if the internal id is blank1195 Creating an instance1196 saves a new instance properly1197 internal id generation1198 calls InternalId.generate_next and sets internal id attribute1199 does not overwrite an existing internal id1200 when the instance has an internal ID set1201 calls InternalId.update_last_value and sets the `last_value` to that of the instance1202 unsetting the instance internal id on rollback1203 when the internal id has been changed1204 when the internal id is automatically set1205 clears it on the instance1206 when the internal id is manually set1207 does not clear it on the instance1208 when the internal id has not been changed1209 preserves the value on the instance1210 supply of internal ids1211 provides a persistent supply of IID values, sensitive to the current state1212 #reset_scope_internal_id_attribute1213 rewinds the allocated IID1214 allocates the same IID1215 #source1216 when creating new pipeline1217 prevents from creating an object1218 when updating existing pipeline1219 object is valid1220 when source is unknown1221 behaves like having enum with nil value1222 has enum with nil value1223 #config_source1224 when source is unknown1225 behaves like having enum with nil value1226 has enum with nil value1227 #block1228 changes pipeline status to manual1229 #delay1230 changes pipeline status to schedule1231 #valid_commit_sha1232 commit.sha can not start with 000000001233 commit errors should not be empty1234 #short_sha1235 has 8 items1236 is expected to start with "b83d6e39"1237 #retried1238 returns old builds1239 #coverage1240 with multiple pipelines1241 calculates average when there are two builds with coverage1242 calculates average when there are two builds with coverage and one with nil1243 calculates average when there are two builds with coverage and one is retried1244 when there is one build without coverage1245 calculates average to nil1246 #update_builds_coverage1247 builds with coverage_regex defined1248 updates the coverage value of each build from the trace1249 builds without coverage_regex defined1250 does not update the coverage value of each build from the trace1251 builds with coverage values already present1252 does not update the coverage value of each build from the trace1253 #retryable?1254 no failed builds1255 is not retryable1256 one canceled job1257 is retryable1258 with failed builds1259 is retryable1260 #persisted_variables1261 when pipeline is not persisted yet1262 does not contain some variables1263 when pipeline is persisted1264 does contains persisted variables1265 #protected_ref?1266 delegates method to project1267 #legacy_trigger1268 returns first trigger request1269 #auto_canceled?1270 when it is canceled1271 when there is auto_canceled_by1272 is auto canceled1273 when there is no auto_canceled_by1274 is not auto canceled1275 when it is retried and canceled manually1276 is not auto canceled1277 pipeline stages1278 legacy stages1279 #stages_count1280 returns a valid number of stages1281 #stages_names1282 returns a valid names of stages1283 #stages1284 when pipelines is not complete1285 returns stages in valid order1286 when pipeline is complete1287 returns stages in valid order1288 state machine1289 when the pipeline received succeed! event1290 deletes a persistent ref asynchronously1291 when pipeline_cleanup_ref_worker_async is disabled1292 deletes a persistent ref synchronously1293 when the pipeline received drop! event1294 deletes a persistent ref asynchronously1295 when pipeline_cleanup_ref_worker_async is disabled1296 deletes a persistent ref synchronously1297 when the pipeline received cancel! event1298 deletes a persistent ref asynchronously1299 when pipeline_cleanup_ref_worker_async is disabled1300 deletes a persistent ref synchronously1301 when the pipeline received skip! event1302 deletes a persistent ref asynchronously1303 when pipeline_cleanup_ref_worker_async is disabled1304 deletes a persistent ref synchronously1305 when the pipeline received block! event1306 deletes a persistent ref asynchronously1307 when pipeline_cleanup_ref_worker_async is disabled1308 deletes a persistent ref synchronously1309 when the pipeline received delay! event1310 deletes a persistent ref asynchronously1311 when pipeline_cleanup_ref_worker_async is disabled1312 deletes a persistent ref synchronously1313 synching status to Jira1314 when Jira Connect subscription does not exist1315 does not trigger a Jira synch worker1316 when Jira Connect subscription exists1317 when we call pipeline.prepare!1318 triggers a Jira synch worker1319 when we call pipeline.run!1320 triggers a Jira synch worker1321 when we call pipeline.skip!1322 triggers a Jira synch worker1323 when we call pipeline.drop!1324 triggers a Jira synch worker1325 when we call pipeline.succeed!1326 triggers a Jira synch worker1327 when we call pipeline.cancel!1328 triggers a Jira synch worker1329 when we call pipeline.block!1330 triggers a Jira synch worker1331 when we call pipeline.delay!1332 triggers a Jira synch worker1333 #duration1334 when multiple builds are finished1335 matches sum of builds duration1336 when pipeline becomes blocked1337 recalculates pipeline duration1338 #started_at1339 from created1340 updates on transitioning to running1341 from preparing1342 updates on transitioning to running1343 from pending1344 updates on transitioning to running1345 from created1346 does not update on transitioning to success1347 from success1348 does not update on transitioning to running1349 #finished_at1350 updates on transitioning to success1351 does not update on transitioning to running1352 track artifact report1353 when transitioning to completed status1354 performs worker on transition to drop!1355 performs worker on transition to skip!1356 performs worker on transition to succeed!1357 performs worker on transition to cancel!1358 when pipeline retried from failed to success1359 counts only one test event report1360 counts only one coverage event report1361 merge request metrics1362 when transitioning to running1363 from created1364 schedules metrics workers1365 from preparing1366 schedules metrics workers1367 from pending1368 schedules metrics workers1369 when transitioning to success1370 schedules metrics workers1371 merge on success1372 from created1373 schedules daily build group report results worker1374 from preparing1375 schedules daily build group report results worker1376 from pending1377 schedules daily build group report results worker1378 from running1379 schedules daily build group report results worker1380 pipeline caching1381 executes Ci::ExpirePipelineCacheService1382 #dangling?1383 returns true if pipeline comes from any dangling sources1384 returns true if pipeline comes from any CI sources1385 auto merge1386 when auto merge is enabled1387 when the pipeline received succeed! event1388 performs AutoMergeProcessWorker1389 when the pipeline received drop! event1390 performs AutoMergeProcessWorker1391 when the pipeline received cancel! event1392 performs AutoMergeProcessWorker1393 when the pipeline received skip! event1394 performs AutoMergeProcessWorker1395 when auto merge is not enabled in the merge request1396 performs AutoMergeProcessWorker1397 auto devops pipeline metrics1398 action: :succeed, status: "success"1399 when pipeline receives action 'succeed'1400 is expected to change `auto_devops_pipelines_completed_total(status)` by 11401 when not auto_devops_source?1402 is expected not to change `auto_devops_pipelines_completed_total(status)`1403 action: :drop, status: "failed"1404 when pipeline receives action 'drop'1405 is expected to change `auto_devops_pipelines_completed_total(status)` by 11406 when not auto_devops_source?1407 is expected not to change `auto_devops_pipelines_completed_total(status)`1408 action: :skip, status: "skipped"1409 when pipeline receives action 'skip'1410 is expected to change `auto_devops_pipelines_completed_total(status)` by 11411 when not auto_devops_source?1412 is expected not to change `auto_devops_pipelines_completed_total(status)`1413 action: :cancel, status: "canceled"1414 when pipeline receives action 'cancel'1415 is expected to change `auto_devops_pipelines_completed_total(status)` by 11416 when not auto_devops_source?1417 is expected not to change `auto_devops_pipelines_completed_total(status)`1418 bridge triggered pipeline1419 multi-project pipelines1420 behaves like upstream downstream pipeline1421 when source bridge is dependent on pipeline status1422 schedules the pipeline bridge worker1423 when the downstream pipeline first fails then retries and succeeds1424 makes the upstream pipeline successful1425 when the downstream pipeline first succeeds then retries and fails1426 makes the upstream pipeline failed1427 when the upstream pipeline has another dependent upstream pipeline1428 when the downstream pipeline first fails then retries and succeeds1429 makes upstream pipelines successful1430 when source bridge is not dependent on pipeline status1431 does not schedule the pipeline bridge worker1432 parent-child pipelines1433 behaves like upstream downstream pipeline1434 when source bridge is dependent on pipeline status1435 schedules the pipeline bridge worker1436 when the downstream pipeline first fails then retries and succeeds1437 makes the upstream pipeline successful1438 when the downstream pipeline first succeeds then retries and fails1439 makes the upstream pipeline failed1440 when the upstream pipeline has another dependent upstream pipeline1441 when the downstream pipeline first fails then retries and succeeds1442 makes upstream pipelines successful1443 when source bridge is not dependent on pipeline status1444 does not schedule the pipeline bridge worker1445 merge status subscription trigger1446 when pipeline has merge requests1447 when for a specific merge request1448 behaves like state transition triggering GraphQL subscription mergeRequestMergeStatusUpdated1449 when state transitions to running1450 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1451 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:15 namespace1/project-1!1>) 1 time1452 when state transitions to success1453 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1454 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:16 namespace1/project-1!1>) 1 time1455 when state transitions to failed1456 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1457 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:17 namespace1/project-1!1>) 1 time1458 when state transitions to canceled1459 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1460 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:18 namespace1/project-1!1>) 1 time1461 when state transitions to skipped1462 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1463 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:19 namespace1/project-1!1>) 1 time1464 when only_allow_merge_if_pipeline_succeeds? returns false1465 behaves like state transition not triggering GraphQL subscription mergeRequestMergeStatusUpdated1466 when state transitions to running1467 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1468 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1469 when state transitions to success1470 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1471 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1472 when state transitions to failed1473 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1474 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1475 when state transitions to canceled1476 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1477 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1478 when state transitions to skipped1479 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1480 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1481 when pipeline is a child1482 behaves like state transition not triggering GraphQL subscription mergeRequestMergeStatusUpdated1483 when state transitions to running1484 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1485 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1486 when state transitions to success1487 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1488 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1489 when state transitions to failed1490 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1491 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1492 when state transitions to canceled1493 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1494 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1495 when state transitions to skipped1496 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1497 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1498 when for merge requests matching the source branch and SHA1499 behaves like state transition triggering GraphQL subscription mergeRequestMergeStatusUpdated1500 when state transitions to running1501 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1502 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:30 namespace1/project-1!1>) 1 time1503 when state transitions to success1504 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1505 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:31 namespace1/project-1!1>) 1 time1506 when state transitions to failed1507 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1508 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:32 namespace1/project-1!1>) 1 time1509 when state transitions to canceled1510 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1511 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:33 namespace1/project-1!1>) 1 time1512 when state transitions to skipped1513 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated1514 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:34 namespace1/project-1!1>) 1 time1515 when only_allow_merge_if_pipeline_succeeds? returns false1516 behaves like state transition not triggering GraphQL subscription mergeRequestMergeStatusUpdated1517 when state transitions to running1518 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1519 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1520 when state transitions to success1521 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1522 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1523 when state transitions to failed1524 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1525 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1526 when state transitions to canceled1527 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1528 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1529 when state transitions to skipped1530 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1531 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1532 when pipeline has no merge requests1533 behaves like state transition not triggering GraphQL subscription mergeRequestMergeStatusUpdated1534 when state transitions to running1535 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1536 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1537 when state transitions to success1538 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1539 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1540 when state transitions to failed1541 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1542 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1543 when state transitions to canceled1544 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1545 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1546 when state transitions to skipped1547 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1548 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1549 #ensure_persistent_ref1550 when the persistent ref does not exist1551 creates a ref1552 when the persistent ref exists1553 does not create a ref1554 #branch?1555 when ref is not a tag1556 return true1557 when pipeline is merge request1558 returns false1559 when ref is a tag1560 return false1561 #git_ref1562 when ref is branch1563 returns branch ref1564 when ref is tag1565 returns branch ref1566 when ref is merge request1567 returns branch ref1568 ref_exists?1569 when repository exists1570 tag: false, ref: "master", result: true1571 correctly detects ref1572 tag: false, ref: "non-existent-branch", result: false1573 correctly detects ref1574 tag: true, ref: "v1.1.0", result: true1575 correctly detects ref1576 tag: true, ref: "non-existent-tag", result: false1577 correctly detects ref1578 when repository does not exist1579 always returns false1580 with non-empty project1581 #lazy_ref_commit1582 returns the latest commit for a ref lazily1583 #latest?1584 with latest sha1585 returns true1586 with a branch name as the ref1587 looks up a commit for a branch1588 with a tag name as a ref1589 looks up a commit for a tag1590 with not latest sha1591 returns false1592 #manual_actions1593 when none defined1594 when action defined1595 returns one action1596 there are multiple of the same name1597 returns latest one1598 #branch_updated?1599 when pipeline has before SHA1600 runs on a branch update push1601 when pipeline does not have before SHA1602 does not run on a branch updating push1603 #modified_paths1604 when old and new revisions are set1605 fetches stats for changes between commits1606 when either old or new revision is missing1607 returns nil1608 when source is merge request1609 returns merge request modified paths1610 when source is an external pull request1611 returns external pull request modified paths1612 #modified_paths_since1613 when no change in the new branch1614 returns an empty array1615 when adding a new file1616 returns the new file path1617 and when updating an existing file1618 returns the new and updated file paths1619 when updating an existing file1620 returns the updated file path1621 #all_worktree_paths1622 returns all file paths cached1623 #top_level_worktree_paths1624 returns top-level file paths cached1625 #has_kubernetes_active?1626 when kubernetes is active1627 when user configured kubernetes from CI/CD > Clusters1628 returns true1629 when kubernetes is not active1630 returns false1631 #has_warnings?1632 build which is allowed to fail fails1633 returns true1634 build which is allowed to fail succeeds1635 returns false1636 build is retried and succeeds1637 returns false1638 bridge which is allowed to fail fails1639 returns true1640 bridge which is allowed to fail is successful1641 returns false1642 #number_of_warnings1643 returns the number of warnings1644 supports eager loading of the number of warnings1645 #needs_processing?1646 processed: nil, result: true1647 is expected to eq true1648 processed: false, result: true1649 is expected to eq true1650 processed: true, result: false1651 is expected to eq false1652 with outdated pipelines1653 .newest_first1654 returns the pipelines from new to old1655 searches limited backlog1656 .latest_status1657 when no ref is specified1658 returns the status of the latest pipeline1659 when ref is specified1660 returns the status of the latest pipeline for the given ref1661 .latest_successful_for_ref1662 returns the latest successful pipeline1663 .latest_running_for_ref1664 returns the latest running pipeline1665 .latest_failed_for_ref1666 returns the latest failed pipeline1667 .latest_successful_for_sha1668 returns the latest successful pipeline1669 .latest_successful_for_refs1670 when refs are specified1671 returns the latest successful pipeline for both refs1672 when no refs are specified1673 returns an empty relation whenno refs are specified1674 .latest_pipeline_per_commit1675 without a ref1676 returns a Hash containing the latest pipeline per commit for all refs1677 only includes the latest pipeline of the given commit SHAs1678 when there are two pipelines for a ref and SHA1679 returns the latest pipeline1680 with a ref1681 only includes the pipelines for the given ref1682 when method is scoped1683 returns the latest pipeline after applying the scope1684 .latest_successful_ids_per_project1685 returns expected pipeline ids1686 .last_finished_for_ref_id1687 returns the expected pipeline1688 .internal_sources1689 is expected to be a kind of Array1690 .bridgeable_statuses1691 is expected to be a kind of Array1692 is expected not to include "created", "waiting_for_resource", "preparing", and "pending"1693 #status1694 on waiting for resource1695 is expected to eq "waiting_for_resource"1696 on prepare1697 is expected to eq "preparing"1698 on queuing1699 is expected to eq "pending"1700 on run1701 is expected to eq "running"1702 on drop1703 is expected to eq "failed"1704 on success1705 is expected to eq "success"1706 on cancel1707 when build is pending1708 is expected to eq "canceled"1709 on failure and build retry1710 is expected to eq "running"1711 #detailed_status1712 when pipeline is created1713 returns detailed status for created pipeline1714 when pipeline is pending1715 returns detailed status for pending pipeline1716 when pipeline is running1717 returns detailed status for running pipeline1718 when pipeline is successful1719 returns detailed status for successful pipeline1720 when pipeline is failed1721 returns detailed status for failed pipeline1722 when pipeline is canceled1723 returns detailed status for canceled pipeline1724 when pipeline is skipped1725 returns detailed status for skipped pipeline1726 when pipeline is blocked1727 returns detailed status for blocked pipeline1728 when pipeline is successful but with warnings1729 retruns detailed status for successful pipeline with warnings1730 #cancelable?1731 when there is a build created1732 is cancelable1733 when there is an external job created1734 is cancelable1735 when there are generic_commit_status jobs for created and success1736 is cancelable1737 when there are generic_commit_status and ci_build jobs for created and success1738 is cancelable1739 when there are ci_build jobs for created and success1740 is cancelable1741 when there are generic_commit_status jobs for created and failed1742 is cancelable1743 when there are generic_commit_status and ci_build jobs for created and failed1744 is cancelable1745 when there are ci_build jobs for created and failed1746 is cancelable1747 when there are generic_commit_status jobs for created and canceled1748 is cancelable1749 when there are generic_commit_status and ci_build jobs for created and canceled1750 is cancelable1751 when there are ci_build jobs for created and canceled1752 is cancelable1753 when there is a build running1754 is cancelable1755 when there is an external job running1756 is cancelable1757 when there are generic_commit_status jobs for running and success1758 is cancelable1759 when there are generic_commit_status and ci_build jobs for running and success1760 is cancelable1761 when there are ci_build jobs for running and success1762 is cancelable1763 when there are generic_commit_status jobs for running and failed1764 is cancelable1765 when there are generic_commit_status and ci_build jobs for running and failed1766 is cancelable1767 when there are ci_build jobs for running and failed1768 is cancelable1769 when there are generic_commit_status jobs for running and canceled1770 is cancelable1771 when there are generic_commit_status and ci_build jobs for running and canceled1772 is cancelable1773 when there are ci_build jobs for running and canceled1774 is cancelable1775 when there is a build pending1776 is cancelable1777 when there is an external job pending1778 is cancelable1779 when there are generic_commit_status jobs for pending and success1780 is cancelable1781 when there are generic_commit_status and ci_build jobs for pending and success1782 is cancelable1783 when there are ci_build jobs for pending and success1784 is cancelable1785 when there are generic_commit_status jobs for pending and failed1786 is cancelable1787 when there are generic_commit_status and ci_build jobs for pending and failed1788 is cancelable1789 when there are ci_build jobs for pending and failed1790 is cancelable1791 when there are generic_commit_status jobs for pending and canceled1792 is cancelable1793 when there are generic_commit_status and ci_build jobs for pending and canceled1794 is cancelable1795 when there are ci_build jobs for pending and canceled1796 is cancelable1797 when there is a build success1798 is not cancelable1799 when there is an external job success1800 is not cancelable1801 when there is a build failed1802 is not cancelable1803 when there is an external job failed1804 is not cancelable1805 when there is a build canceled1806 is not cancelable1807 when there is an external job canceled1808 is not cancelable1809 when there is a manual action present in the pipeline1810 is not cancelable1811 .cancelable1812 behaves like containing the pipeline1813 when it's running pipeline1814 is expected to contain exactly #<Ci::Pipeline id: 365, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 138, locked: "artifacts_locked", partition_id: 100>1815 behaves like containing the pipeline1816 when it's pending pipeline1817 is expected to contain exactly #<Ci::Pipeline id: 366, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 139, locked: "artifacts_locked", partition_id: 100>1818 behaves like containing the pipeline1819 when it's waiting_for_resource pipeline1820 is expected to contain exactly #<Ci::Pipeline id: 367, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 140, locked: "artifacts_locked", partition_id: 100>1821 behaves like containing the pipeline1822 when it's preparing pipeline1823 is expected to contain exactly #<Ci::Pipeline id: 368, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 141, locked: "artifacts_locked", partition_id: 100>1824 behaves like containing the pipeline1825 when it's created pipeline1826 is expected to contain exactly #<Ci::Pipeline id: 369, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 142, locked: "artifacts_locked", partition_id: 100>1827 behaves like containing the pipeline1828 when it's scheduled pipeline1829 is expected to contain exactly #<Ci::Pipeline id: 370, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 143, locked: "artifacts_locked", partition_id: 100>1830 behaves like containing the pipeline1831 when it's manual pipeline1832 is expected to contain exactly #<Ci::Pipeline id: 371, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 144, locked: "artifacts_locked", partition_id: 100>1833 behaves like not containing the pipeline1834 when it's failed pipeline1835 is expected to be empty1836 behaves like not containing the pipeline1837 when it's success pipeline1838 is expected to be empty1839 behaves like not containing the pipeline1840 when it's skipped pipeline1841 is expected to be empty1842 behaves like not containing the pipeline1843 when it's canceled pipeline1844 is expected to be empty1845 #retry_failed1846 when there is a failed build and failed external status1847 retries only build1848 when builds are in different stages1849 retries both builds1850 when there are canceled and failed1851 retries both builds1852 hooks trigerring1853 when pipeline action is enqueue1854 schedules a new PipelineHooksWorker job1855 with blocked users1856 does not schedule a new PipelineHooksWorker job1857 when pipeline action is request_resource1858 schedules a new PipelineHooksWorker job1859 with blocked users1860 does not schedule a new PipelineHooksWorker job1861 when pipeline action is prepare1862 schedules a new PipelineHooksWorker job1863 with blocked users1864 does not schedule a new PipelineHooksWorker job1865 when pipeline action is run1866 schedules a new PipelineHooksWorker job1867 with blocked users1868 does not schedule a new PipelineHooksWorker job1869 when pipeline action is skip1870 schedules a new PipelineHooksWorker job1871 with blocked users1872 does not schedule a new PipelineHooksWorker job1873 when pipeline action is drop1874 schedules a new PipelineHooksWorker job1875 with blocked users1876 does not schedule a new PipelineHooksWorker job1877 when pipeline action is succeed1878 schedules a new PipelineHooksWorker job1879 with blocked users1880 does not schedule a new PipelineHooksWorker job1881 when pipeline action is cancel1882 schedules a new PipelineHooksWorker job1883 with blocked users1884 does not schedule a new PipelineHooksWorker job1885 when pipeline action is block1886 schedules a new PipelineHooksWorker job1887 with blocked users1888 does not schedule a new PipelineHooksWorker job1889 when pipeline action is delay1890 schedules a new PipelineHooksWorker job1891 with blocked users1892 does not schedule a new PipelineHooksWorker job1893 #merge_requests_as_head_pipeline1894 returns merge requests whose `diff_head_sha` matches the pipeline's SHA1895 doesn't return merge requests whose source branch doesn't match the pipeline's ref1896 doesn't return merge requests whose `diff_head_sha` doesn't match the pipeline's SHA1897 #all_merge_requests1898 behaves like a method that returns all merge requests for a given pipeline1899 returns all merge requests having the same source branch and the pipeline sha1900 doesn't return merge requests having the same source branch without the pipeline sha1901 doesn't return merge requests having a different source branch1902 when there is a merge request pipeline1903 returns an associated merge request1904 when there is another merge request pipeline that targets a different branch1905 does not return an associated merge request1906 for a fork1907 behaves like a method that returns all merge requests for a given pipeline1908 returns all merge requests having the same source branch and the pipeline sha1909 doesn't return merge requests having the same source branch without the pipeline sha1910 doesn't return merge requests having a different source branch1911 when there is a merge request pipeline1912 returns an associated merge request1913 when there is another merge request pipeline that targets a different branch1914 does not return an associated merge request1915 #related_merge_requests1916 for a branch pipeline1917 when no merge request is created1918 when another merge requests are created1919 for a merge pipeline1920 when only merge pipeline is created1921 when a merge request is created1922 #open_merge_requests_refs1923 when user is a developer1924 returns open merge requests1925 does not return closed merge requests1926 limits amount of returned merge requests1927 returns only last 4 in a reverse order1928 when user does not have permissions1929 does not return any merge requests1930 #same_family_pipeline_ids1931 when pipeline is not child nor parent1932 returns just the pipeline id1933 when pipeline is child1934 returns parent sibling and self ids1935 when pipeline is parent1936 returns self and child ids1937 when pipeline is a child of a child pipeline1938 returns all family ids1939 when pipeline is a triggered pipeline1940 returns self id1941 #environments_in_self_and_project_descendants1942 when pipeline is not child nor parent1943 returns just the pipeline environment1944 when deployment SHA is not matched1945 does not return environments1946 when an associated environment does not have deployments1947 does not return environments1948 when pipeline is in extended family1949 returns its own environment and from all descendants1950 does not return parent environment1951 does not return sibling environment1952 when each pipeline has multiple environments1953 returns all related environments1954 when pipeline has no environment1955 returns empty1956 #root_ancestor1957 when pipeline is child of child pipeline1958 returns the root ancestor1959 when pipeline is root ancestor1960 returns itself1961 when pipeline is standalone1962 returns itself1963 when pipeline is multi-project downstream pipeline1964 ignores cross project ancestors1965 #upstream_root1966 when pipeline is child of child pipeline1967 returns the root ancestor1968 when pipeline is root ancestor1969 returns itself1970 when pipeline is standalone1971 returns itself1972 when pipeline is multi-project downstream pipeline1973 returns the upstream pipeline1974 #stuck?1975 when pipeline is stuck1976 is stuck1977 when pipeline is not stuck1978 is not stuck1979 #add_error_message1980 adds a new pipeline error message1981 #has_yaml_errors?1982 returns false if yaml_errors is not set1983 when yaml_errors is set1984 returns true if yaml_errors is set1985 notifications when pipeline success or failed1986 with success pipeline1987 enqueues PipelineNotificationWorker1988 behaves like sending a notification1989 sends an email1990 when pipeline is not the latest1991 does not pass ref_status1992 when the user is blocked1993 does not enqueue PipelineNotificationWorker1994 with failed pipeline1995 enqueues PipelineNotificationWorker1996 behaves like sending a notification1997 sends an email1998 when the user is blocked1999 does not enqueue PipelineNotificationWorker2000 with skipped pipeline2001 behaves like not sending any notification2002 does not send any email2003 with cancelled pipeline2004 behaves like not sending any notification2005 does not send any email2006 updates ci_ref when pipeline finished2007 when ci_ref exists2008 updates the ci_ref2009 when ci_ref does not exist2010 does not raise an exception2011 #ensure_ci_ref!2012 when ci_ref does not exist yet2013 creates a new ci_ref and assigns it2014 when ci_ref already exists2015 fetches a new ci_ref and assigns it2016 #self_and_project_descendants_complete?2017 when all pipelines in the hierarchy is complete2018 is expected to equal true2019 when a pipeline in the hierarchy is not complete2020 is expected to equal false2021 #builds_in_self_and_project_descendants2022 when pipeline is standalone2023 returns the list of builds2024 when pipeline is parent of another pipeline2025 returns the list of builds2026 when pipeline is parent of another parent pipeline2027 returns the list of builds2028 #build_with_artifacts_in_self_and_project_descendants2029 returns the build with a given name, having artifacts2030 when same job name is present in both parent and child pipeline2031 returns the job in the parent pipeline2032 #find_job_with_archive_artifacts2033 finds the expected job2034 #latest_builds_with_artifacts2035 returns an Array2036 returns the latest builds with non-expired artifacts2037 does not return builds with expired artifacts2038 memoizes the returned relation2039 #batch_lookup_report_artifact_for_file_type2040 with code quality report artifact2041 returns the code quality artifact2042 #latest_report_builds2043 returns build with test artifacts2044 filters builds by scope2045 only returns not retried builds2046 #latest_report_builds_in_self_and_project_descendants2047 returns builds with reports artifacts from pipelines in the hierarcy2048 filters builds by scope2049 only returns builds that are not retried2050 #has_reports?2051 when pipeline has builds with test reports2052 is expected to be truthy2053 when pipeline does not have builds with test reports2054 is expected to be falsey2055 when retried build has test reports but latest one has none2056 is expected to be falsey2057 #complete_and_has_reports?2058 when pipeline has builds with test reports2059 when pipeline status is running2060 with mr_show_reports_immediately flag enabled2061 is expected to be truthy2062 with mr_show_reports_immediately flag disabled2063 is expected to be falsey2064 when pipeline status is success2065 is expected to be truthy2066 when pipeline does not have builds with test reports2067 is expected to be falsey2068 when retried build has test reports2069 is expected to be falsey2070 #has_coverage_reports?2071 when pipeline has a code coverage artifact2072 is expected to be truthy2073 when pipeline does not have a code coverage artifact2074 is expected to be falsey2075 #has_codequality_mr_diff_report?2076 when pipeline has a codequality mr diff report2077 is expected to be truthy2078 when pipeline does not have a codequality mr diff report2079 is expected to be falsey2080 #can_generate_codequality_reports?2081 when pipeline has builds with codequality reports2082 when pipeline status is running2083 with mr_show_reports_immediately flag enabled2084 is expected to be truthy2085 with mr_show_reports_immediately flag disabled2086 is expected to be falsey2087 when pipeline status is success2088 can generate a codequality report2089 when pipeline does not have builds with codequality reports2090 is expected to be falsey2091 #test_report_summary2092 when pipeline has multiple builds with report results2093 returns test report summary with collected data2094 when pipeline does not have any builds with report results2095 returns empty test report summary2096 #test_reports2097 when pipeline has multiple builds with test reports2098 has a test suite for each job2099 returns test reports with collected data2100 when builds are retried2101 does not take retried builds into account2102 when the pipeline has parallel builds with test reports2103 merges the test suite from parallel builds2104 the pipeline has matrix builds with test reports2105 keeps separate test suites for each matrix build2106 when pipeline does not have any builds with test reports2107 returns empty test reports2108 #accessibility_reports2109 when pipeline has multiple builds with accessibility reports2110 returns accessibility report with collected data2111 when builds are retried2112 returns empty urls for accessibility reports2113 when pipeline does not have any builds with accessibility reports2114 returns empty urls for accessibility reports2115 #codequality_reports2116 when pipeline has multiple builds with codequality reports2117 returns codequality report with collected data2118 when builds are retried2119 returns a codequality reports without degradations2120 when pipeline does not have any builds with codequality reports2121 returns codequality reports without degradations2122 #uses_needs?2123 when the scheduling type is `dag`2124 when the processable is a bridge2125 returns true2126 when the processable is a build2127 returns true2128 when the scheduling type is nil or stage2129 returns false2130 #total_size2131 returns all jobs (including failed and retried)2132 #status2133 when transitioning to failed2134 when pipeline has autodevops as source2135 calls autodevops disable service2136 when pipeline has other source2137 does not call auto devops disable service2138 with failure_reason2139 increments the counter with the failure_reason2140 #default_branch?2141 when pipeline ref is the default branch of the project2142 returns true2143 when pipeline ref is not the default branch of the project2144 returns false2145 fetching a stage by name2146 #stage2147 when stage exists2148 is expected to eq #<Ci::Stage project_id: 1, pipeline_id: 497, created_at: "2023-06-26 14:31:15.432165691 +0000", updat...1 +0000", name: "test", status: "pending", lock_version: 0, position: 1, id: 200, partition_id: 100>2149 when stage does not exist2150 returns nil2151 #full_error_messages2152 when pipeline has errors2153 returns the full error messages2154 when pipeline does not have errors2155 returns empty string2156 #created_successfully?2157 when pipeline is not persisted2158 is expected to be falsey2159 when pipeline is persisted2160 when pipeline has failure reasons2161 is expected to be falsey2162 when pipeline has no failure reasons2163 is expected to be truthy2164 #parent_pipeline2165 when pipeline is triggered by a pipeline from the same project2166 returns the parent pipeline2167 is child2168 when pipeline is triggered by a pipeline from another project2169 returns nil2170 is not child2171 when pipeline is not triggered by a pipeline2172 returns nil2173 is not child2174 #child_pipelines2175 when pipeline triggered other pipelines on same project2176 returns the child pipelines2177 is parent2178 when pipeline triggered other pipelines on another project2179 returns empty array2180 is not parent2181 when pipeline did not trigger any pipelines2182 returns empty array2183 is not parent2184 upstream status interactions2185 when a pipeline has an upstream status2186 when an upstream status is a bridge2187 #bridge_triggered?2188 is a pipeline triggered by a bridge2189 #source_job2190 has a correct source job2191 #source_bridge2192 has a correct bridge source2193 when an upstream status is a build2194 #bridge_triggered?2195 is a pipeline that has not been triggered by a bridge2196 #source_job2197 has a correct source job2198 #source_bridge2199 does not have a bridge source2200 #source_ref_path2201 when pipeline is for a branch2202 is expected to eq "refs/heads/master"2203 when pipeline is for a merge request2204 is expected to eq "refs/heads/master"2205 when pipeline is for a tag2206 is expected to eq "refs/tags/master"2207 #builds_with_coverage2208 returns builds with coverage only2209 returns only latest builds2210 #self_and_upstreams2211 when pipeline is not child nor parent2212 returns just the pipeline itself2213 when pipeline is child2214 returns parent and self2215 when pipeline is parent2216 returns self2217 when pipeline is a child of a child pipeline2218 returns self, parent and ancestor2219 when pipeline is a triggered pipeline from a different project2220 returns upstream and self2221 #self_and_downstreams2222 when pipeline is not child nor parent2223 returns just the pipeline itself2224 when pipeline is child2225 returns self and no ancestors2226 when pipeline is parent2227 returns self and child2228 when pipeline is a grandparent pipeline2229 returns self, child, and grandchild2230 when pipeline is a triggered pipeline from a different project2231 returns self and cross-project downstream2232 #self_and_project_ancestors2233 when pipeline is child2234 returns parent and self2235 when pipeline is a triggered pipeline from a different project2236 returns only self2237 #complete_hierarchy_count2238 with a combination of ancestor, descendant and sibling pipelines2239 counts the whole tree2240 #reset_source_bridge!2241 with downstream pipeline2242 when the user has permissions for the processable2243 when the downstream has strategy: depend2244 marks source bridge as pending2245 with subsequent jobs2246 changes subsequent job statuses to created2247 when the user is not the build user2248 changes subsequent jobs user2249 when the upstream pipeline pipeline has a dependent upstream pipeline2250 marks all source bridges as pending2251 without strategy: depend2252 does not touch source bridge2253 when the upstream pipeline has a dependent upstream pipeline2254 does not touch any source bridge2255 when the current user is not the bridge user2256 changes bridge user to current user2257 when the user does not have permissions for the processable2258 does not change bridge status2259 with subsequent jobs2260 does not change job statuses2261 when the current user is not the bridge user2262 does not change bridge user2263 test failure history processing2264 performs the service asynchronously when the pipeline is completed2265 #latest_test_report_builds2266 returns pipeline builds with test report artifacts2267 preloads project on each build to avoid N+1 queries2268 #builds_with_failed_tests2269 returns pipeline builds with test report artifacts2270 supports limiting the number of builds to fetch2271 preloads project on each build to avoid N+1 queries2272 #build_matchers2273 returns build matchers2274 with retried builds2275 does not include retried builds2276 #cluster_agent_authorizations2277 retrieves authorization records from the finder and caches the result2278 #has_test_reports?2279 when artifacts are not expired2280 is expected to be truthy2281 when artifacts are expired2282 is expected to be truthy2283 when artifacts are removed2284 is expected to be falsey2285 when the pipeline is still running and with test reports2286 is expected to be truthy2287 behaves like it has loose foreign keys2288 has at least one loose foreign key definition2289 has the deletion trigger present2290 records record deletions2291 cleans up record deletions2292 loose foreign key on ci_pipelines.user_id2293 behaves like cleanup by a loose foreign key2294 cleans up (delete or nullify) the model2295 tags count2296 is expected to eq 02297 is expected to eq 02298 with builds2299 is expected to eq 42300 is expected to eq 32301 loose foreign key on ci_pipelines.merge_request_id2302 behaves like cleanup by a loose foreign key2303 cleans up (delete or nullify) the model2304 loose foreign key on ci_pipelines.project_id2305 behaves like cleanup by a loose foreign key2306 cleans up (delete or nullify) the model2307 #jobs_git_ref2308 when tag is true2309 returns a tag ref2310 when tag is false2311 returns a branch ref2312 when tag is nil2313 returns a branch ref2314 when it is triggered by a merge request2315 returns nil2316 #age_in_minutes2317 when pipeline has not been persisted2318 returns zero2319 when pipeline has been saved2320 returns pipeline age in minutes2321 when pipeline has no created_at2322 returns zero2323 when pipeline has been loaded without all attributes2324 raises an exception2325 #merge_request_diff2326 when the pipeline has no merge request2327 is nil2328 when the pipeline has a merge request2329 when the pipeline is a merged result pipeline2330 returns the diff for the source sha2331 when the pipeline is not a merged result pipeline2332 returns the diff for the pipeline sha2333 partitioning2334 sets partition_id to the current partition value2335 when it is already set2336 does not change the partition_id value2337 without current partition value2338 is expected to validate that :partition_id cannot be empty/falsy2339 does not change the partition_id value2340 #notes=2341 when notes already exist2342 does not create duplicate notes2343 #has_erasable_artifacts?2344 when pipeline is not complete2345 and has erasable artifacts2346 is expected to be falsey2347 when pipeline is complete2348 and has no artifacts2349 is expected to be falsey2350 and has an artifact of type archive2351 is expected to be truthy2352 and has an artifact of type metadata2353 is expected to be truthy2354 and has an artifact of type junit2355 is expected to be truthy2356 and has an artifact of type sast2357 is expected to be truthy2358 and has an artifact of type dependency_scanning2359 is expected to be truthy2360 and has an artifact of type container_scanning2361 is expected to be truthy2362 and has an artifact of type dast2363 is expected to be truthy2364 and has an artifact of type codequality2365 is expected to be truthy2366 and has an artifact of type license_scanning2367 is expected to be truthy2368 and has an artifact of type performance2369 is expected to be truthy2370 and has an artifact of type metrics2371 is expected to be truthy2372 and has an artifact of type metrics_referee2373 is expected to be truthy2374 and has an artifact of type network_referee2375 is expected to be truthy2376 and has an artifact of type lsif2377 is expected to be truthy2378 and has an artifact of type dotenv2379 is expected to be truthy2380 and has an artifact of type cobertura2381 is expected to be truthy2382 and has an artifact of type terraform2383 is expected to be truthy2384 and has an artifact of type accessibility2385 is expected to be truthy2386 and has an artifact of type cluster_applications2387 is expected to be truthy2388 and has an artifact of type secret_detection2389 is expected to be truthy2390 and has an artifact of type requirements2391 is expected to be truthy2392 and has an artifact of type coverage_fuzzing2393 is expected to be truthy2394 and has an artifact of type browser_performance2395 is expected to be truthy2396 and has an artifact of type load_performance2397 is expected to be truthy2398 and has an artifact of type api_fuzzing2399 is expected to be truthy2400 and has an artifact of type cluster_image_scanning2401 is expected to be truthy2402 and has an artifact of type cyclonedx2403 is expected to be truthy2404 and has an artifact of type requirements_v22405 is expected to be truthy2406Gitlab::Git::Repository2407 Respond to2408 is expected to respond to #root_ref2409 is expected to respond to #tags2410 #root_ref2411 returns UTF-82412 gets the branch name from GitalyClient2413 behaves like wrapping gRPC errors2414 wraps gRPC not found error2415 wraps gRPC unknown error2416 #create_repository2417 behaves like wrapping gRPC errors2418 wraps gRPC not found error2419 wraps gRPC unknown error2420 #branch_names2421 has TestRepo::BRANCH_SHA.size elements2422 returns UTF-82423 is expected to include "master"2424 is expected not to include "branch-from-space"2425 behaves like wrapping gRPC errors2426 wraps gRPC not found error2427 wraps gRPC unknown error2428 #tag_names2429 is expected to be a kind of Array2430 has some elements2431 returns UTF-82432 is expected to include "v1.0.0"2433 is expected not to include "v5.0.0"2434 #last2435 is expected to eq "v1.1.1"2436 behaves like wrapping gRPC errors2437 wraps gRPC not found error2438 wraps gRPC unknown error2439 #tags2440 behaves like wrapping gRPC errors2441 wraps gRPC not found error2442 wraps gRPC unknown error2443 #archive_metadata2444 sets CommitId to the commit SHA2445 sets ArchivePrefix to the expected prefix2446 sets ArchivePath to the expected globally-unique path2447 path is set2448 appends the path to the prefix2449 append_sha varies archive path and filename2450 append_sha: true, ref: "master", expected_prefix: "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2451 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2452 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2453 append_sha: true, ref: "b83d6e391c22777fca1ed3012fce84f633d7fed0", expected_prefix: "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0-b83d6e391c22777fca1ed3012fce84f633d7fed0"2454 is expected to eq "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0-b83d6e391c22777fca1ed3012fce84f633d7fed0"2455 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2456 append_sha: false, ref: "master", expected_prefix: "gitlab-git-test-master"2457 is expected to eq "gitlab-git-test-master"2458 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master.tar.gz"2459 append_sha: false, ref: "b83d6e391c22777fca1ed3012fce84f633d7fed0", expected_prefix: "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"2460 is expected to eq "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"2461 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2462 append_sha: nil, ref: "master", expected_prefix: "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2463 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2464 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2465 append_sha: nil, ref: "b83d6e391c22777fca1ed3012fce84f633d7fed0", expected_prefix: "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"2466 is expected to eq "gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0"2467 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2468 format varies archive path and filename2469 format: nil, expected_extension: "tar.gz"2470 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2471 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2472 format: "madeup", expected_extension: "tar.gz"2473 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2474 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.gz"2475 format: "tbz2", expected_extension: "tar.bz2"2476 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2477 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.tar.bz2"2478 format: "zip", expected_extension: "zip"2479 is expected to eq "gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0"2480 is expected to eq "/tmp/project-44/b83d6e391c22777fca1ed3012fce84f633d7fed0/@v2/gitlab-git-test-master-b83d6e391c22777fca1ed3012fce84f633d7fed0.zip"2481 when references are ambiguous2482 when tag is ambiguous2483 ref: "refs/heads/branch-merged", expected_commit_id: branch_master_commit_id, desc: "when tag looks like a branch"2484 selects the correct commit2485 ref: "branch-merged", expected_commit_id: branch_master_commit_id, desc: "when tag has the same name as a branch"2486 selects the correct commit2487 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when tag looks like a commit id"2488 selects the correct commit2489 ref: "v0.0.0", expected_commit_id: branch_master_commit_id, desc: "when tag looks like a normal tag"2490 selects the correct commit2491 when resolve_ambiguous_archives is disabled2492 ref: "refs/heads/branch-merged", expected_commit_id: branch_merged_commit_id, desc: "when tag looks like a branch (difference!)"2493 selects the correct commit2494 ref: "branch-merged", expected_commit_id: branch_master_commit_id, desc: "when tag has the same name as a branch"2495 selects the correct commit2496 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when tag looks like a commit id"2497 selects the correct commit2498 ref: "v0.0.0", expected_commit_id: branch_master_commit_id, desc: "when tag looks like a normal tag"2499 selects the correct commit2500 when branch is ambiguous2501 ref: "refs/tags/v1.0.0", expected_commit_id: branch_master_commit_id, desc: "when branch looks like a tag"2502 selects the correct commit2503 ref: "v1.0.0", expected_commit_id: tag_1_0_0_commit_id, desc: "when branch has the same name as a tag"2504 selects the correct commit2505 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when branch looks like a commit id"2506 selects the correct commit2507 ref: "just-a-normal-branch", expected_commit_id: branch_master_commit_id, desc: "when branch looks like a normal branch"2508 selects the correct commit2509 when resolve_ambiguous_archives is disabled2510 ref: "refs/tags/v1.0.0", expected_commit_id: tag_1_0_0_commit_id, desc: "when branch looks like a tag (difference!)"2511 selects the correct commit2512 ref: "v1.0.0", expected_commit_id: tag_1_0_0_commit_id, desc: "when branch has the same name as a tag"2513 selects the correct commit2514 ref: branch_merged_commit_id, expected_commit_id: branch_merged_commit_id, desc: "when branch looks like a commit id"2515 selects the correct commit2516 ref: "just-a-normal-branch", expected_commit_id: branch_master_commit_id, desc: "when branch looks like a normal branch"2517 selects the correct commit2518 when ref is HEAD2519 selects commit id from HEAD ref2520 when ref is not found2521 returns empty metadata2522 #size2523 is expected to be > 02524 #to_s2525 is expected to eq "<Gitlab::Git::Repository: namespace11/project-44>"2526 #object_directory_size2527 is expected to eq 20482528 #empty?2529 is expected not to be empty2530 #ref_names2531 is expected to be a kind of Array2532 #first2533 is expected to eq "'test'"2534 #last2535 is expected to eq "v1.1.1"2536 #submodule_url_for2537 is expected to eq "git://github.com/randx/six.git"2538 is expected to eq "git://github.com/randx/six.git"2539 is expected to eq nil2540 uncommitted submodule dir2541 is expected to eq nil2542 tags2543 is expected to eq "git://github.com/randx/six.git"2544 no .gitmodules at commit2545 is expected to eq nil2546 no gitlink entry2547 is expected to eq nil2548 #submodule_urls_for2549 returns url mappings for submodules2550 #commit_count2551 is expected to eq 372552 is expected to eq 92553 is expected to eq 02554 behaves like wrapping gRPC errors2555 wraps gRPC not found error2556 wraps gRPC unknown error2557 #diverging_commit_count2558 counts 0 for the same branch2559 max count does not truncate results2560 left: 1, right: 1, expected: [1, 1]2561 returns the correct count bounding at max_count2562 left: 4, right: 4, expected: [4, 4]2563 returns the correct count bounding at max_count2564 left: 2, right: 2, expected: [2, 2]2565 returns the correct count bounding at max_count2566 left: 2, right: 4, expected: [2, 4]2567 returns the correct count bounding at max_count2568 left: 4, right: 2, expected: [4, 2]2569 returns the correct count bounding at max_count2570 left: 10, right: 10, expected: [10, 10]2571 returns the correct count bounding at max_count2572 max count truncates results2573 left: 1, right: 1, max_count: 12574 returns the correct count bounding at max_count2575 left: 4, right: 4, max_count: 42576 returns the correct count bounding at max_count2577 left: 2, right: 2, max_count: 32578 returns the correct count bounding at max_count2579 left: 2, right: 4, max_count: 32580 returns the correct count bounding at max_count2581 left: 4, right: 2, max_count: 52582 returns the correct count bounding at max_count2583 left: 10, right: 10, max_count: 102584 returns the correct count bounding at max_count2585 behaves like wrapping gRPC errors2586 wraps gRPC not found error2587 wraps gRPC unknown error2588 #has_local_branches?2589 check for local branches2590 is expected to eq true2591 #delete_branch2592 deletes a branch2593 deletes a fully qualified branch2594 #delete_refs2595 deletes the ref2596 deletes all refs2597 does not fail when deleting an empty list of refs2598 raises an error if it failed2599 #branch_names_contains_sha2600 displays that branch2601 when limit is provided2602 displays limited number of branches2603 #refs_hash2604 has as many entries as branches and tags2605 has valid commit ids as keys2606 does not error when dereferenced_target is nil2607 #fetch_remote2608 delegates to the gitaly RepositoryService2609 behaves like wrapping gRPC errors2610 wraps gRPC not found error2611 wraps gRPC unknown error2612 #search_files_by_content2613 has 2 items2614 has the correct matching line2615 #search_files_by_regexp2616 when sending a valid regexp2617 returns matched files2618 when sending an ivalid regexp2619 raises error2620 when the ref doesn't exist2621 returns an empty array2622 #search_files_by_name2623 when sending a valid name2624 returns matched files2625 when sending a name with space2626 returns matched files2627 when sending a name with special ASCII characters2628 returns matched files2629 when sending a non-existing name2630 raises error2631 #find_remote_root_ref2632 gets the remote root ref from GitalyClient2633 returns UTF-82634 returns nil when remote name is nil2635 returns nil when remote name is empty2636 behaves like wrapping gRPC errors2637 wraps gRPC not found error2638 wraps gRPC unknown error2639 #log2640 when Gitaly find_commits feature is enabled2641 behaves like repository log2642 where 'follow' == true2643 and 'path' is a directory2644 does not follow renames2645 and 'path' is a file that matches the new filename2646 without offset2647 follows renames2648 with offset=12649 follows renames and skip the latest commit2650 with offset=1 and limit=12651 follows renames, skip the latest commit and return only one commit2652 with offset=1 and limit=22653 follows renames, skip the latest commit and return only two commits2654 with offset=22655 follows renames and skip the latest commit2656 with offset=2 and limit=12657 follows renames, skip the two latest commit and return only one commit2658 with offset=2 and limit=22659 follows renames, skip the two latest commit and return only one commit2660 and 'path' is a file that matches the old filename2661 does not follow renames2662 unknown ref2663 returns an empty array2664 where 'follow' == false2665 and 'path' is a directory2666 does not follow renames2667 and 'path' is a file that matches the new filename2668 does not follow renames2669 and 'path' is a file that matches the old filename2670 does not follow renames2671 where provides 'after' timestamp2672 returns commits on or after that timestamp2673 where provides 'before' timestamp2674 returns commits on or before that timestamp2675 when multiple paths are provided2676 only returns commits matching at least one path2677 limit validation2678 limit: 02679 is expected to raise ArgumentError2680 limit: nil2681 is expected to raise ArgumentError2682 limit: ""2683 is expected to raise ArgumentError2684 limit: "foo"2685 is expected to raise ArgumentError2686 with all2687 returns a list of commits2688 #blobs2689 single revision2690 behaves like a blob enumeration2691 enumerates blobs2692 multiple revisions2693 behaves like a blob enumeration2694 enumerates blobs2695 pseudo revisions2696 behaves like a blob enumeration2697 enumerates blobs2698 blank revisions2699 behaves like a blob enumeration2700 enumerates blobs2701 #new_blobs2702 with a single revision2703 behaves like #new_blobs with revisions2704 enumerates new blobs2705 memoizes results2706 with a single-entry array2707 behaves like #new_blobs with revisions2708 enumerates new blobs2709 memoizes results2710 with multiple revisions2711 behaves like #new_blobs with revisions2712 enumerates new blobs2713 memoizes results2714 with partially blank revisions2715 behaves like #new_blobs with revisions2716 enumerates new blobs2717 memoizes results2718 with repeated revisions2719 behaves like #new_blobs with revisions2720 enumerates new blobs2721 memoizes results2722 with preexisting commits2723 behaves like #new_blobs with revisions2724 enumerates new blobs2725 memoizes results2726 with a single nil newrev2727 behaves like #new_blobs without revisions2728 returns an empty array2729 with a single zero newrev2730 behaves like #new_blobs without revisions2731 returns an empty array2732 with an empty array2733 behaves like #new_blobs without revisions2734 returns an empty array2735 with array containing only empty refs2736 behaves like #new_blobs without revisions2737 returns an empty array2738 #new_commits2739 enumerates commits2740 #count_commits_between2741 is expected to eq 292742 #raw_changes_between2743 initial commit2744 returns the changes2745 with an invalid rev2746 returns an error2747 with valid revs2748 returns the changes2749 #merge_base2750 from: "master", to: "feature", result: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2751 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2752 from: "feature", to: "master", result: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2753 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"2754 from: "master", to: "foobar", result: nil2755 is expected to eq nil2756 from: "foobar", to: "master", result: nil2757 is expected to eq nil2758 #count_commits2759 extended commit counting2760 with after timestamp2761 returns the number of commits after timestamp2762 with before timestamp2763 returns the number of commits before timestamp2764 with max_count2765 returns the number of commits with path2766 with path2767 returns the number of commits with path2768 with option :from and option :to2769 returns the number of commits ahead for master..feature2770 returns the number of commits ahead for feature..master2771 with option :left_right2772 returns the number of commits for master..feature2773 with max_count2774 returns the number of commits2775 with max_count2776 returns the number of commits up to the passed limit2777 with all2778 returns the number of commits in the whole repository2779 without all or ref being specified2780 raises an ArgumentError2781 #find_branch2782 returns a Branch for master2783 handles non-existent branch2784 when branch is ambiguous2785 returns nil for ambiguous branch2786 #branches2787 with local and remote branches2788 returns the local and remote branches2789 behaves like wrapping gRPC errors2790 wraps gRPC not found error2791 wraps gRPC unknown error2792 #branch_count2793 returns the number of branches2794 with local and remote branches2795 returns the count of local branches2796 #merged_branch_names2797 when branch names are passed2798 only returns the names we are asking2799 does not return unmerged branch names2800 when no root ref is available2801 returns empty list2802 when no branch names are specified2803 returns all merged branch names except for identical one2804 #diff_stats2805 returns a DiffStatsCollection2806 yields Gitaly::DiffStats objects2807 returns no Gitaly::DiffStats when SHAs are invalid2808 returns no Gitaly::DiffStats when there is a nil SHA2809 returns no Gitaly::DiffStats when there is a BLANK_SHA2810 #find_changed_paths2811 returns a list of paths2812 returns no paths when SHAs are invalid2813 returns a list of paths even when containing a blank ref2814 returns no paths when the commits are nil2815 merge_commit_diff_mode argument2816 when omitted2817 defaults to nil2818 when included2819 passes the value on to the commit client2820 #ls_files2821 read every file paths of master branch2822 reads full file paths of master branch2823 does not read submodule directory and empty directory of master branch2824 does not include 'nil'2825 returns empty array when not existed branch2826 returns valid utf-8 data2827 #copy_gitattributes2828 raises an error with invalid ref2829 when forcing encoding issues2830 doesn't raise with a valid unicode ref2831 #gitattribute2832 with gitattributes2833 returns matching language attribute2834 returns matching language attribute with additional options2835 returns nil if nothing matches2836 without gitattributes2837 returns nil2838 #ref_exists?2839 returns true for an existing tag2840 returns false for a non-existing tag2841 raises an ArgumentError for an empty string2842 raises an ArgumentError for an invalid ref2843 #tag_exists?2844 returns true for an existing tag2845 returns false for a non-existing tag2846 #branch_exists?2847 returns true for an existing branch2848 returns false for a non-existing branch2849 returns false when using an invalid branch name2850 #local_branches2851 returns the local branches2852 returns a Branch with UTF-8 fields2853 gets the branches from GitalyClient2854 behaves like wrapping gRPC errors2855 wraps gRPC not found error2856 wraps gRPC unknown error2857 #find_tag2858 returns a tag2859 when asking for a non-existent tag2860 behaves like a nonexistent tag2861 returns nil2862 when Gitaly returns Internal error2863 behaves like a nonexistent tag2864 returns nil2865 when Gitaly returns tag_not_found error2866 behaves like a nonexistent tag2867 returns nil2868 #languages2869 returns exactly the expected results2870 uses the repository's HEAD when no ref is passed2871 #license2872 when no license file can be found2873 is expected to be nil2874 when an mit license is found2875 is expected to have attributes {:key => "mit"}2876 when license is not recognized2877 is expected to have attributes {:key => "other", :nickname => "LICENSE"}2878 #fetch_source_branch!2879 when the branch exists2880 when the commit does not exist locally2881 writes the ref2882 when the commit exists locally2883 writes the ref2884 when the branch does not exist2885 does not write the ref2886 #rm_branch2887 removes the branch from the repo2888 #write_ref2889 writes the HEAD2890 writes other refs2891 validations2892 ref_path: "foo bar", ref: "123"2893 raises ArgumentError2894 ref_path: "foobar", ref: "12\u00003"2895 raises ArgumentError2896 #list_refs2897 returns a list of branches with their head commit2898 filters by pattern2899 with pointing_at_oids and peel_tags options2900 filters by target OIDs2901 returns peeled_target for annotated tags2902 #refs_by_oid2903 returns a list of refs from a OID2904 returns a single ref from a OID2905 returns empty for unknown ID2906 returns empty for an empty repo2907 #set_full_path2908 writes full_path to gitaly2909 it is given an empty path2910 does not write it to disk2911 repository does not exist2912 raises NoRepository and does not call SetFullPath2913 #full_path2914 returns the full path2915 #merge_to_ref2916 generates a commit in the target_ref2917 does not change the right branch HEAD2918 #merge2919 can perform a merge2920 returns nil if there was a concurrent branch update2921 #ff_merge2922 calls Gitaly's OperationService2923 behaves like #ff_merge2924 performs a ff_merge2925 with a non-existing target branch2926 throws an ArgumentError2927 with a non-existing source commit2928 throws an ArgumentError2929 when the source sha is not a descendant of the branch head2930 doesn't perform the ff_merge2931 #delete_all_refs_except2932 deletes all refs except those with the specified prefixes2933 #bundle_to_disk2934 saves a bundle to disk2935 #create_from_bundle2936 creates a repo from a bundle file2937 raises an error if the bundle is an attempted malicious payload2938 #compare_source_branch2939 compares two branches cross repo2940 source ref does not exist in source repo2941 returns an empty comparison2942 #checksum2943 calculates the checksum for non-empty repo2944 returns a blank sha for an empty repo2945 raises NoRepository for a non-existent repo2946 #replicas2947 gets the replica checksum through praefect2948 #disconnect_alternates2949 does not raise an error when disconnecting a non-linked repository2950 can still access objects in the object pool2951 #rename2952 moves the repository2953 #remove2954 removes the repository2955 when the repository does not exist2956 is idempotent2957 #import_repository2958 raises an error if a relative path is provided2959 raises an error if an absolute path is provided2960 delegates to Gitaly2961 behaves like wrapping gRPC errors2962 wraps gRPC not found error2963 wraps gRPC unknown error2964 #replicate2965 destination does not exist2966 mirrors the source repository2967 destination exists2968 mirrors the source repository2969 with keep-around refs2970 includes the temporary and keep-around refs2971 #check_objects_exist2972 returns hash specifying which object exists in repo2973Issuable2974 Associations2975 is expected to belong to project required: false2976 is expected to belong to author required: false2977 is expected to have many notes dependent => destroy2978 is expected to have many todos2979 is expected to have many labels2980 Notes2981 indicates if the notes have their authors loaded2982 note_authors2983 is expected to have many note_authors through notes2984 user_note_authors2985 filters the authors to those of user notes2986 Included modules2987 is expected to includes the Awardable module2988 Validation2989 general validations2990 is expected to validate that :project cannot be empty/falsy2991 is expected to validate that :author cannot be empty/falsy2992 is expected to validate that :title cannot be empty/falsy2993 is expected to validate that the length of :title is at most 2552994 behaves like validates description length with custom validation2995 when Issuable is a new record2996 when description exceeds the maximum size2997 adds a description too long error2998 when description is within the allowed limits2999 does not add a validation error3000 when Issuable is an existing record3001 when record already had a valid description3002 when new description exceeds the maximum size3003 adds a description too long error3004 when new description is within the allowed limits3005 does not add a validation error3006 when record existed with an invalid description3007 when description is not changed3008 does not add a validation error3009 when new description exceeds the maximum size3010 allows updating descriptions that already existed above the limit3011 when new description is within the allowed limits3012 does not add a validation error3013 behaves like truncates the description to its allowed maximum length on import3014 truncates the description to its allowed maximum length3015 #validate_assignee_length3016 will not exceed the assignee limit3017 Scope3018 is expected to respond to #opened3019 is expected to respond to #closed3020 is expected to respond to #assigned3021 .includes_for_bulk_update3022 includes available associations3023 author_name3024 is delegated to author3025 returns nil when author is nil3026 .initialize3027 maps the state to the right state_id3028 maps a string version of the state to the right state_id3029 gives preference to state_id if present3030 .any_label3031 returns an issuable with at least one label3032 for custom sorting3033 returns an issuable with at least one label3034 .search3035 returns issues with a matching title3036 returns issues with a partially matching title3037 returns issues with a matching title regardless of the casing3038 returns issues with a fuzzy matching title3039 returns issues with a matching title for a query shorter than 3 chars3040 .full_search3041 returns issues with a matching title3042 returns issues with a partially matching title3043 returns issues with a matching title regardless of the casing3044 returns issues with a fuzzy matching title3045 returns issues with a matching description3046 returns issues with a partially matching description3047 returns issues with a matching description regardless of the casing3048 returns issues with a fuzzy matching description3049 returns issues with a matching description for a query shorter than 3 chars3050 returns issues with a fuzzy matching description for a query shorter than 3 chars if told to do so3051 returns issues with a fuzzy matching title for a query shorter than 3 chars if told to do so3052 when matching columns is "title"3053 returns issues with a matching title3054 returns no issues with a matching description3055 when matching columns is "description"3056 returns no issues with a matching title3057 returns issues with a matching description3058 when matching columns is "title,description"3059 returns issues with a matching title3060 returns issues with a matching description3061 when matching columns is nil"3062 returns issues with a matching title3063 returns issues with a matching description3064 when matching columns is "invalid"3065 returns issues with a matching title3066 returns issues with a matching description3067 when matching columns is "title,invalid"3068 returns issues with a matching title3069 returns no issues with a matching description3070 .to_ability_name3071 is expected to eq "issue"3072 is expected to eq "merge_request"3073 #sort_by_attribute3074 by milestone due date3075 sorts desc3076 sorts asc3077 when all of the results are level on the sort key3078 has no duplicates across pages3079 by title3080 sorts asc3081 sorts desc3082 #subscribed?3083 user is not a participant in the issue3084 returns false when no subcription exists3085 returns true when a subcription exists and subscribed is true3086 returns false when a subcription exists and subscribed is false3087 user is a participant in the issue3088 returns false when no subcription exists3089 returns true when a subcription exists and subscribed is true3090 returns false when a subcription exists and subscribed is false3091 #time_estimate=3092 coerces the value below Gitlab::Database::MAX_INT_VALUE3093 skips coercion for not Integer values3094 #to_hook_data3095 when old_associations is empty3096 delegates to Gitlab::DataBuilder::Issuable#build and does not set labels, assignees, nor total_time_spent3097 labels are updated3098 delegates to Gitlab::DataBuilder::Issuable#build3099 total_time_spent is updated3100 delegates to Gitlab::DataBuilder::Issuable#build3101 issue is assigned3102 delegates to Gitlab::DataBuilder::Issuable#build3103 merge_request is assigned3104 delegates to Gitlab::DataBuilder::Issuable#build3105 merge_request update reviewers3106 delegates to Gitlab::DataBuilder::Issuable#build3107 incident severity is updated3108 delegates to Gitlab::DataBuilder::Issuable#build3109 escalation status is updated3110 delegates to Gitlab::DataBuilder::Issuable#build3111 #labels_array3112 loads the association and returns it as an array3113 #labels_hook_attrs3114 returns a list of label hook attributes3115 .labels_hash3116 maps issue ids to labels titles3117 works on relations filtered by multiple labels3118 with a NULL label ID in the link3119 filters out bad labels3120 #user_notes_count3121 counts the user notes3122 votes3123 returns correct values3124 .order_due_date_and_labels_priority3125 sorts issues in order of milestone due date, then label priority3126 .order_labels_priority3127 is expected to eq 23128 .with_label3129 finds the correct issue containing just enhancement label3130 finds the correct issues containing the same label3131 finds the correct issues containing only both labels3132 #spend_time3133 adding time3134 updates the total time spent3135 stores the time change3136 updates issues updated_at3137 subtracting time3138 updates the total time spent3139 stores negative time change3140 when time to subtract exceeds the total time spent3141 raise a validation error3142 #first_contribution?3143 for merge requests3144 is true when you don't have any merged MR3145 handles multiple projects separately3146 for issues3147 is false even without merged MR3148 #matches_cross_reference_regex?3149 issue description with long path string3150 behaves like matches_cross_reference_regex? fails fast3151 fails fast for long strings3152 note with long path string3153 behaves like matches_cross_reference_regex? fails fast3154 fails fast for long strings3155 note with long path string3156 behaves like matches_cross_reference_regex? fails fast3157 fails fast for long strings3158 #supports_time_tracking?3159 issuable_type: :issue, supports_time_tracking: true3160 is expected to eq true3161 issuable_type: :incident, supports_time_tracking: true3162 is expected to eq true3163 issuable_type: :merge_request, supports_time_tracking: true3164 is expected to eq true3165 #supports_severity?3166 issuable_type: :issue, supports_severity: false3167 is expected to eq false3168 issuable_type: :incident, supports_severity: true3169 is expected to eq true3170 issuable_type: :merge_request, supports_severity: false3171 is expected to eq false3172 #supports_escalation?3173 issuable_type: :issue, supports_escalation: false3174 is expected to eq false3175 issuable_type: :incident, supports_escalation: true3176 is expected to eq true3177 issuable_type: :merge_request, supports_escalation: false3178 is expected to eq false3179 #incident_type_issue?3180 issuable_type: :issue, incident: false3181 is expected to eq false3182 issuable_type: :incident, incident: true3183 is expected to eq true3184 issuable_type: :merge_request, incident: false3185 is expected to eq false3186 #supports_issue_type?3187 issuable_type: :issue, supports_issue_type: true3188 is expected to eq true3189 issuable_type: :merge_request, supports_issue_type: false3190 is expected to eq false3191 #supports_confidentiality?3192 issuable_type: :issue, supports_confidentiality: true3193 is expected to eq true3194 issuable_type: :incident, supports_confidentiality: true3195 is expected to eq true3196 issuable_type: :merge_request, supports_confidentiality: false3197 is expected to eq false3198 #severity3199 when issuable is not an incident3200 issuable_type: :issue, severity: "unknown"3201 is expected to eq "unknown"3202 issuable_type: :merge_request, severity: "unknown"3203 is expected to eq "unknown"3204 when issuable type is an incident3205 when incident does not have issuable_severity3206 returns default serverity3207 when incident has issuable_severity3208 returns issuable serverity3209 with exportable associations3210 for issues3211 behaves like an exportable3212 #exportable_association?3213 is expected to be falsey3214 when user can only read resource3215 is expected to be falsey3216 when user can read resource's association3217 is expected to be truthy3218 for an unknown association3219 is expected to be falsey3220 #to_authorized_json3221 when association not supported3222 is expected not to include "foo"3223 when association is `:notes`3224 is expected to include "\"notes\":[{\"id\":16}]"3225 when user have access to all notes3226 string includes all notes3227 for merge requests3228 behaves like an exportable3229 #exportable_association?3230 is expected to be falsey3231 when user can only read resource3232 is expected to be falsey3233 when user can read resource's association3234 is expected to be truthy3235 for an unknown association3236 is expected to be falsey3237 #to_authorized_json3238 when association not supported3239 is expected not to include "foo"3240 when association is `:notes`3241 is expected to include "\"notes\":[{\"id\":18}]"3242 when user have access to all notes3243 string includes all notes3244Notes::QuickActionsService3245 .supported?3246 with a note on an issue3247 returns true3248 with a note on a commit3249 returns false3250 #supported?3251 delegates to the class method3252 #execute3253 behaves like note on noteable that supports quick actions3254 note with only command3255 /close, /label, /assign & /milestone3256 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note3257 /relate3258 user cannot relate issues3259 does not create issue relation3260 user is allowed to relate issues3261 creates issue relation3262 /reopen3263 opens the noteable, and leave no note3264 /spend3265 when note is not persisted3266 adds time to noteable, adds timelog with nil note_id and has no content3267 when note is persisted3268 updates the spent time and populates timelog with note_id3269 adds a system note3270 when not specifying a date3271 does not include the date3272 when specifying a date3273 does include the date3274 /estimate3275 adds time estimate to noteable3276 note with command & text3277 /close, /label, /assign & /milestone3278 closes noteable, sets labels, assigns, and sets milestone to noteable3279 /reopen3280 opens the noteable3281 /milestone3282 on an incident3283 leaves the note empty3284 assigns the milestone3285 on a merge request3286 leaves the note empty3287 assigns the milestone3288 /remove_milestone3289 on an issue3290 leaves the note empty3291 removes the milestone3292 on an incident3293 leaves the note empty3294 removes the milestone3295 on a merge request3296 leaves the note empty3297 removes the milestone3298 /promote_to3299 on a task3300 behaves like promotes work item3301 leaves the note empty3302 promotes to provided type3303 when type name is lower case3304 behaves like promotes work item3305 leaves the note empty3306 promotes to provided type3307 on an issue3308 behaves like promotes work item3309 leaves the note empty3310 promotes to provided type3311 when type name is lower case3312 behaves like promotes work item3313 leaves the note empty3314 promotes to provided type3315 behaves like note on noteable that supports quick actions3316 note with only command3317 /close, /label, /assign & /milestone3318 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note3319 /relate3320 user cannot relate issues3321 does not create issue relation3322 user is allowed to relate issues3323 creates issue relation3324 /reopen3325 opens the noteable, and leave no note3326 /spend3327 when note is not persisted3328 adds time to noteable, adds timelog with nil note_id and has no content3329 when note is persisted3330 updates the spent time and populates timelog with note_id3331 adds a system note3332 when not specifying a date3333 does not include the date3334 when specifying a date3335 does include the date3336 /estimate3337 adds time estimate to noteable3338 note with command & text3339 /close, /label, /assign & /milestone3340 closes noteable, sets labels, assigns, and sets milestone to noteable3341 /reopen3342 opens the noteable3343 /milestone3344 on an incident3345 leaves the note empty3346 assigns the milestone3347 on a merge request3348 leaves the note empty3349 assigns the milestone3350 /remove_milestone3351 on an issue3352 leaves the note empty3353 removes the milestone3354 on an incident3355 leaves the note empty3356 removes the milestone3357 on a merge request3358 leaves the note empty3359 removes the milestone3360 /promote_to3361 on a task3362 behaves like promotes work item3363 leaves the note empty3364 promotes to provided type3365 when type name is lower case3366 behaves like promotes work item3367 leaves the note empty3368 promotes to provided type3369 on an issue3370 behaves like promotes work item3371 leaves the note empty3372 promotes to provided type3373 when type name is lower case3374 behaves like promotes work item3375 leaves the note empty3376 promotes to provided type3377 behaves like note on noteable that supports quick actions3378 note with only command3379 /close, /label, /assign & /milestone3380 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note3381 /relate3382 user cannot relate issues3383 does not create issue relation3384 user is allowed to relate issues3385 creates issue relation3386 /reopen3387 opens the noteable, and leave no note3388 /spend3389 when note is not persisted3390 adds time to noteable, adds timelog with nil note_id and has no content3391 when note is persisted3392 updates the spent time and populates timelog with note_id3393 adds a system note3394 when not specifying a date3395 does not include the date3396 when specifying a date3397 does include the date3398 /estimate3399 adds time estimate to noteable3400 note with command & text3401 /close, /label, /assign & /milestone3402 closes noteable, sets labels, assigns, and sets milestone to noteable3403 /reopen3404 opens the noteable3405 /milestone3406 on an incident3407 leaves the note empty3408 assigns the milestone3409 on a merge request3410 leaves the note empty3411 assigns the milestone3412 /remove_milestone3413 on an issue3414 leaves the note empty3415 removes the milestone3416 on an incident3417 leaves the note empty3418 removes the milestone3419 on a merge request3420 leaves the note empty3421 removes the milestone3422 /promote_to3423 on a task3424 behaves like promotes work item3425 leaves the note empty3426 promotes to provided type3427 when type name is lower case3428 behaves like promotes work item3429 leaves the note empty3430 promotes to provided type3431 on an issue3432 behaves like promotes work item3433 leaves the note empty3434 promotes to provided type3435 when type name is lower case3436 behaves like promotes work item3437 leaves the note empty3438 promotes to provided type3439 note on work item that supports quick actions3440 note with only command3441 /close, /label & /assign3442 closes noteable, sets labels, assigns and leave no note3443 /reopen3444 opens the noteable, and leave no note3445 note with command & text3446 /close, /label, /assign3447 closes noteable, sets labels, assigns, and sets milestone to noteable3448 /reopen3449 opens the noteable3450 #apply_updates3451 with a note on an issue3452 returns successful service response if update returned no errors3453 returns service response with errors if update failed3454 with a note on a merge request3455 returns successful service response if update returned no errors3456 returns service response with errors if update failed3457 with a note on a work item3458 returns successful service response if update returned no errors3459 returns service response with errors if update failed3460 with a note on a commit3461 returns successful service response if update returned no errors3462 returns service response with errors if update failed3463 CE restriction for issue assignees3464 /assign3465 adds only one assignee from the list3466Event3467 Associations3468 is expected to belong to project required: false3469 is expected to belong to target required: false3470 Respond to3471 is expected to respond to #author_name3472 is expected to respond to #author_email3473 is expected to respond to #issue_title3474 is expected to respond to #merge_request_title3475 is expected to respond to #design_title3476 Callbacks3477 after_create :reset_project_activity3478 calls the reset_project_activity method3479 after_create :set_last_repository_updated_at3480 with a push event3481 updates the project last_repository_updated_at and updated_at3482 without a push event3483 does not update the project last_repository_updated_at3484 #set_last_repository_updated_at3485 only updates once every Event::REPOSITORY_UPDATED_AT_INTERVAL minutes3486 after_create UserInteractedProject.track3487 passes event to UserInteractedProject.track3488 validations3489 action3490 for a design3491 action: "created", valid: true3492 is expected to eq true3493 action: "updated", valid: true3494 is expected to eq true3495 action: "closed", valid: false3496 is expected to eq false3497 action: "reopened", valid: false3498 is expected to eq false3499 action: "pushed", valid: false3500 is expected to eq false3501 action: "commented", valid: false3502 is expected to eq false3503 action: "merged", valid: false3504 is expected to eq false3505 action: "joined", valid: false3506 is expected to eq false3507 action: "left", valid: false3508 is expected to eq false3509 action: "destroyed", valid: true3510 is expected to eq true3511 action: "expired", valid: false3512 is expected to eq false3513 action: "approved", valid: false3514 is expected to eq false3515 scopes3516 .for_issue3517 returns events for Issue and WorkItem target_type3518 .created_at3519 can find the right event3520 .for_fingerprint3521 returns none if there is no fingerprint3522 returns none if there is no match3523 can find a given event3524 .contributions3525 returns events for MergeRequest, Issue and WorkItem3526 #fingerprint3527 is unique scoped to target3528 Push event3529 is expected to eq #<User id:443 @namespace292>3530 #target_title3531 for an issue3532 delegates to issue title3533 for a wiki page3534 delegates to wiki page title3535 #membership_changed?3536 created3537 is expected to be falsey3538 updated3539 is expected to be falsey3540 expired3541 is expected to be truthy3542 left3543 is expected to be truthy3544 joined3545 is expected to be truthy3546 #note?3547 issue note event3548 is expected to be note3549 merge request diff note event3550 is expected to be note3551 #visible_to_user?3552 commit note event3553 has the correct visibility3554 private project3555 when admin mode enabled3556 has the correct visibility3557 when admin mode disabled3558 has the correct visibility3559 issue event3560 for non confidential issues3561 has the correct visibility3562 is expected to eq true3563 is expected to eq true3564 for confidential issues3565 has the correct visibility3566 is expected to eq true3567 is expected to eq true3568 work item event3569 for non confidential work item3570 has the correct visibility3571 is expected to eq true3572 is expected to eq true3573 for confidential work item3574 has the correct visibility3575 is expected to eq true3576 issue note event3577 on non confidential issues3578 has the correct visibility3579 is expected to eq true3580 is expected to eq true3581 on confidential issues3582 has the correct visibility3583 is expected to eq true3584 is expected to eq true3585 confidential note3586 has the correct visibility3587 private project3588 is expected to eq false3589 is expected to eq false3590 when admin mode enabled3591 has the correct visibility3592 when admin mode disabled3593 has the correct visibility3594 merge request diff note event3595 public project3596 has the correct visibility3597 is expected to eq true3598 private project3599 is expected to eq false3600 when admin mode enabled3601 has the correct visibility3602 when admin mode disabled3603 has the correct visibility3604 milestone event3605 has the correct visibility3606 on public project with private issue tracker and merge requests3607 when admin mode enabled3608 has the correct visibility3609 when admin mode disabled3610 has the correct visibility3611 on private project3612 when admin mode enabled3613 has the correct visibility3614 when admin mode disabled3615 has the correct visibility3616 wiki-page event3617 on private project3618 when admin mode enabled3619 has the correct visibility3620 when admin mode disabled3621 has the correct visibility3622 wiki-page event on public project3623 has the correct visibility3624 project snippet note event3625 has the correct visibility3626 on public project with private snippets3627 is expected to eq false3628 when admin mode enabled3629 has the correct visibility3630 when admin mode disabled3631 has the correct visibility3632 on private project3633 is expected to eq false3634 when admin mode enabled3635 has the correct visibility3636 when admin mode disabled3637 has the correct visibility3638 personal snippet note event3639 has the correct visibility3640 is expected to eq true3641 on internal snippet3642 has the correct visibility3643 on private snippet3644 is expected to eq true3645 when admin mode enabled3646 has the correct visibility3647 when admin mode disabled3648 has the correct visibility3649 design note event3650 has the correct visibility3651 is expected to eq true3652 is expected to eq true3653 the event refers to a design on a confidential issue3654 has the correct visibility3655 is expected to eq true3656 is expected to eq true3657 design event3658 has the correct visibility3659 is expected to eq true3660 is expected to eq true3661 the event refers to a design on a confidential issue3662 has the correct visibility3663 is expected to eq true3664 is expected to eq true3665 wiki_page predicate scopes3666 .for_design3667 only includes design events3668 .for_wiki_page3669 only contains the wiki page events3670 .for_wiki_meta3671 finds events for a given wiki page metadata object3672 categorization3673 passes a sanity check3674 #wiki_page and #wiki_page?3675 for a wiki page event3676 is expected to have attributes {:wiki_page => #<WikiPage:0x00007d89342b6020 @wiki=#<ProjectWiki id:309 >, @page=#<Gitlab::Git::WikiPag...57ea1ca6be 3505e740a19514fd3b0c142286c3a157ea1ca6be>, @format=:markdown>>, :wiki_page? => (be truthy)}3677 title is empty3678 is expected to have attributes {:wiki_page => nil, :wiki_page? => (be truthy)}3679 for any other event3680 has no wiki_page and is not a wiki_page3681 #design and #design?3682 for a design event3683 is expected to have attributes {:design => #<DesignManagement::Design id: namespace328/project-364#/designs[homescreen-31.jpg]>, :design? => (be truthy)}3684 for any other event3685 has no design and is not a design3686 .limit_recent3687 without an explicit limit3688 is expected to eq [#<Event project_id: 311, author_id: 502, target_id: 252, created_at: "2023-06-26 14:37:45.513426404 ...887913137 +0000", action: "closed", target_type: "Issue", group_id: nil, fingerprint: nil, id: 320>]3689 with an explicit limit3690 is expected to eq [#<Event project_id: 313, author_id: 506, target_id: 254, created_at: "2023-06-26 14:37:46.780774157 ...780774157 +0000", action: "closed", target_type: "Issue", group_id: nil, fingerprint: nil, id: 323>]3691 #reset_project_activity3692 when a project was updated less than 1 hour ago3693 does not update the project3694 when a project was updated more than 1 hour ago3695 updates the project3696 deletes the redis key for if the project was inactive3697 #authored_by?3698 returns true when the event author and user are the same3699 returns false when passing nil as an argument3700 returns false when the given user is not the author of the event3701 #body?3702 returns true for a push event with commits3703 returns false for a push event without a valid commit range3704 returns true for a Note event3705 returns true if the target responds to #title3706 returns false for a regular event without a target3707 #target3708 eager loads the author of an event target3709 with snippet note3710 #snippet_note?3711 returns true for a project snippet event3712 returns true for a personal snippet event3713 returns false for a other kinds of event3714 #personal_snippet_note?3715 returns false for a project snippet event3716 returns true for a personal snippet event3717 returns false for a other kinds of event3718 #project_snippet_note?3719 returns true for a project snippet event3720 returns false for a personal snippet event3721 returns false for a other kinds of event3722 #action_name3723 handles all valid design events3724 handles correct push_action3725 handles correct base actions3726 trait: :created, action_name: "created"3727 with correct name and method3728 trait: :updated, action_name: "opened"3729 with correct name and method3730 trait: :closed, action_name: "closed"3731 with correct name and method3732 trait: :reopened, action_name: "opened"3733 with correct name and method3734 trait: :commented, action_name: "commented on"3735 with correct name and method3736 trait: :merged, action_name: "accepted"3737 with correct name and method3738 trait: :joined, action_name: "joined"3739 with correct name and method3740 trait: :left, action_name: "left"3741 with correct name and method3742 trait: :destroyed, action_name: "destroyed"3743 with correct name and method3744 trait: :expired, action_name: "removed due to membership expiration from"3745 with correct name and method3746 trait: :approved, action_name: "approved"3747 with correct name and method3748 for created_project_action?3749 returns created for created event3750 returns imported for imported event3751 #has_no_project_and_group3752 with project event3753 returns false when the event has project3754 returns true when the event has no project3755 with group event3756 returns false when the event has group3757 returns true when the event has no group3758Boards::Issues::MoveService3759 #execute3760 when parent is a project3761 behaves like issues move service3762 when moving an issue between lists3763 delegates the label changes to Issues::UpdateService3764 removes the label from the list it came from and adds the label of the list it goes to3765 behaves like updating timestamps3766 updates updated_at3767 when moving to closed3768 delegates the close proceedings to Issues::CloseService3769 removes all list-labels from boards and close the issue3770 behaves like updating timestamps3771 updates updated_at3772 when moving to backlog3773 keeps labels and milestone3774 behaves like updating timestamps3775 updates updated_at3776 when moving from closed3777 delegates the re-open proceedings to Issues::ReopenService3778 adds the label of the list it goes to and reopen the issue3779 behaves like updating timestamps3780 updates updated_at3781 when moving to same list3782 returns nil3783 keeps issues labels3784 keeps issues assignees3785 sorts issues3786 does not update updated_at3787 when moving to a specific list position3788 moves issue to the top of the list3789 moves issue to a position in the middle of the list3790 moves issue to the bottom of the list3791 when given position is greater than number of issues in the list3792 moves the issue to the bottom of the list3793 when parent is a group3794 behaves like issues move service3795 when moving an issue between lists3796 delegates the label changes to Issues::UpdateService3797 removes the label from the list it came from and adds the label of the list it goes to3798 behaves like updating timestamps3799 updates updated_at3800 when moving to closed3801 delegates the close proceedings to Issues::CloseService3802 removes all list-labels from boards and close the issue3803 behaves like updating timestamps3804 updates updated_at3805 when moving to backlog3806 keeps labels and milestone3807 behaves like updating timestamps3808 updates updated_at3809 when moving from closed3810 delegates the re-open proceedings to Issues::ReopenService3811 adds the label of the list it goes to and reopen the issue3812 behaves like updating timestamps3813 updates updated_at3814 when moving to same list3815 returns nil3816 keeps issues labels3817 keeps issues assignees3818 sorts issues3819 does not update updated_at3820 when moving to a specific list position3821 moves issue to the top of the list3822 moves issue to a position in the middle of the list3823 moves issue to the bottom of the list3824 when given position is greater than number of issues in the list3825 moves the issue to the bottom of the list3826 #execute_multiple3827 returns the expected result if list of issues is empty3828 moving multiple issues3829 moves multiple issues from one list to another3830 moving a single issue3831 moves one issue3832 moving issues visually after an existing issue3833 moves one issue3834 moving issues visually before an existing issue3835 moves one issue3836Packages::Npm::CreatePackageService3837 #execute3838 obtains a lease to create a new package3839 scoped package3840 behaves like valid package3841 creates a package3842 is expected to be valid3843 creates a package with name and version3844 is expected to eq {"dependencies"=>{"express"=>"^4.16.4"}, "dist"=>{"shasum"=>"f572d396fae9206628714fb2ce00f72e94f2258f...//localhost/npm/package.tgz"}, "main"=>"app.js", "name"=>"@namespace391/my-app", "version"=>"1.0.1"}3845 is expected to eq "@namespace392/my-app"3846 is expected to eq "1.0.1"3847 behaves like assigns the package creator3848 assigns the package creator3849 with build info3850 creates a package file build info3851 behaves like assigns build to package3852 with build info3853 assigns the pipeline to the package3854 behaves like assigns status to package3855 with status param3856 assigns the status to the package3857 when the npm metadatum creation results in a size error3858 when some of the field sizes are above the error tracking size3859 behaves like a package json structure size too large error3860 does not create the package3861 when all of the field sizes are below the error tracking size3862 behaves like a package json structure size too large error3863 does not create the package3864 when the npm metadatum creation results in a different error3865 does not track the error3866 with not allowed readme field3867 is persisted without the field3868 with not allowed readmeFilename field3869 is persisted without the field3870 with not allowed licenseText field3871 is persisted without the field3872 scoped package not following the naming convention3873 behaves like valid package3874 creates a package3875 is expected to be valid3876 creates a package with name and version3877 is expected to eq {"dependencies"=>{"express"=>"^4.16.4"}, "dist"=>{"shasum"=>"f572d396fae9206628714fb2ce00f72e94f2258f...p://localhost/npm/package.tgz"}, "main"=>"app.js", "name"=>"@any-scope/package", "version"=>"1.0.1"}3878 is expected to eq "@any-scope/package"3879 is expected to eq "1.0.1"3880 behaves like assigns the package creator3881 assigns the package creator3882 with build info3883 creates a package file build info3884 behaves like assigns build to package3885 with build info3886 assigns the pipeline to the package3887 behaves like assigns status to package3888 with status param3889 assigns the status to the package3890 when the npm metadatum creation results in a size error3891 when some of the field sizes are above the error tracking size3892 behaves like a package json structure size too large error3893 does not create the package3894 when all of the field sizes are below the error tracking size3895 behaves like a package json structure size too large error3896 does not create the package3897 when the npm metadatum creation results in a different error3898 does not track the error3899 with not allowed readme field3900 is persisted without the field3901 with not allowed readmeFilename field3902 is persisted without the field3903 with not allowed licenseText field3904 is persisted without the field3905 unscoped package3906 behaves like valid package3907 creates a package3908 is expected to be valid3909 creates a package with name and version3910 is expected to eq {"dependencies"=>{"express"=>"^4.16.4"}, "dist"=>{"shasum"=>"f572d396fae9206628714fb2ce00f72e94f2258f...ttp://localhost/npm/package.tgz"}, "main"=>"app.js", "name"=>"unscoped-package", "version"=>"1.0.1"}3911 is expected to eq "unscoped-package"3912 is expected to eq "1.0.1"3913 behaves like assigns the package creator3914 assigns the package creator3915 with build info3916 creates a package file build info3917 behaves like assigns build to package3918 with build info3919 assigns the pipeline to the package3920 behaves like assigns status to package3921 with status param3922 assigns the status to the package3923 when the npm metadatum creation results in a size error3924 when some of the field sizes are above the error tracking size3925 behaves like a package json structure size too large error3926 does not create the package3927 when all of the field sizes are below the error tracking size3928 behaves like a package json structure size too large error3929 does not create the package3930 when the npm metadatum creation results in a different error3931 does not track the error3932 with not allowed readme field3933 is persisted without the field3934 with not allowed readmeFilename field3935 is persisted without the field3936 with not allowed licenseText field3937 is persisted without the field3938 package already exists3939 is expected to eq 4033940 is expected to equal "Package already exists."3941 marked as pending_destruction3942 creates a new package3943 max file size validation3944 when max file size is exceeded3945 behaves like max file size validation failure3946 returns a 400 error3947 when file size is faked by setting the attachment length param to a lower size3948 when encoded package data is not padded3949 behaves like max file size validation failure3950 returns a 400 error3951 when encoded package data is padded with '='3952 behaves like max file size validation failure3953 returns a 400 error3954 when encoded package data is padded with '=='3955 behaves like max file size validation failure3956 returns a 400 error3957 with invalid name @inv@lid_scope/package3958 raises a RecordInvalid error3959 with invalid name @scope/sub/group3960 raises a RecordInvalid error3961 with invalid name @scope/../../package3962 raises a RecordInvalid error3963 with invalid name @scope%2e%2e%2fpackage3964 raises a RecordInvalid error3965 with empty versions3966 is expected to eq 4003967 is expected to eq "Version is empty."3968 with invalid versions3969 version: "1"3970 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"3971 version: "1.2"3972 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"3973 version: "1./2.3"3974 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"3975 version: "../../../../../1.2.3"3976 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"3977 version: "%2e%2e%2f1.2.3"3978 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"3979 with empty attachment data3980 is expected to eq 4003981 is expected to eq "Attachment data is empty."3982 when the lease is already taken3983 is expected to eq 4003984 is expected to eq "Could not obtain package lease."3985 when many of the same packages are created at the same time3986 only creates one package3987 when many packages with different versions are created at the same time3988 creates all packages3989 #lease_key3990 returns an unique key3991EnvironmentStatus3992 is expected to delegate #id to the #environment object3993 is expected to delegate #name to the #environment object3994 is expected to delegate #deployed_at to the #deployment object3995 is expected to delegate #status to the #deployment object3996 is expected to delegate #deployable to the #deployment object3997 #project3998 is expected to eq #<Project id:456 namespace483/project-540>>3999 #merge_request4000 is expected to eq #<MergeRequest id:115 namespace485/project-542!1>4001 #deployment4002 is expected to eq #<Deployment id: 18, iid: 1, project_id: 460, environment_id: 19, ref: "pages-deploy", tag: false, sh...hed_at: "2023-06-26 14:40:14.706361049 +0000", cluster_id: nil, deployable_id: 479, archived: false>4003 multiple deployments4004 is expected to eq #<Deployment id: 20, iid: 2, project_id: 462, environment_id: 20, ref: "master", tag: false, sha: "78...hed_at: "2023-06-26 14:40:17.170615000 +0000", cluster_id: nil, deployable_id: 481, archived: false>4005 #changes4006 contains only added and modified public pages4007 .for_merge_request4008 is based on merge_request.diff_head_sha4009 .for_deployed_merge_request4010 when a merge request has no explicitly linked deployments4011 returns the statuses based on the CI pipelines4012 when a merge request has explicitly linked deployments4013 returns the statuses based on the linked deployments4014 excludes environments the user can not see4015 excludes deployments that have the status "created"4016 .build_environments_status4017 when environment is created on a forked project4018 returns environment status4019 when environment is created on a target project4020 returns environment status4021 when the build stops an environment4022 does not return environment status4023 when user does not have a permission to see the environment4024 does not return environment status4025 when multiple deployments with the same SHA in different environments4026 returns deployments related to the head pipeline4027 when multiple deployments in the same pipeline for the same environments4028 returns unique entries4029 when there is a deployment in a child pipeline4030 returns both parent and child entries4031 when environment is stopped4032 does not return environment status4033 when environment is stopped and review_apps_redeploy_mr_widget is turned on4034 returns environment regardless of status4035Ci::RunnersFinder4036 admin4037 #execute4038 when admin mode setting is disabled4039 behaves like executes as admin4040 with 2 runners4041 with empty params4042 returns all runners4043 with nil group4044 returns all runners4045 with preload param set to :tag_name true4046 requests tags4047 with preload param set to :tag_name false4048 does not request tags4049 filtering4050 by search term4051 calls Ci::Runner.search4052 by upgrade status4053 set to :not_processed4054 calls with_upgrade_status scope with corresponding :not_processed status4055 set to :invalid_version4056 calls with_upgrade_status scope with corresponding :invalid_version status4057 set to :unavailable4058 calls with_upgrade_status scope with corresponding :unavailable status4059 set to :available4060 calls with_upgrade_status scope with corresponding :available status4061 set to :recommended4062 calls with_upgrade_status scope with corresponding :recommended status4063 set to an invalid value4064 raises ArgumentError4065 set to nil4066 does not call with_upgrade_status4067 by status4068 calls the corresponding :active scope on Ci::Runner4069 calls the corresponding :paused scope on Ci::Runner4070 calls the corresponding :online scope on Ci::Runner4071 calls the corresponding :offline scope on Ci::Runner4072 calls the corresponding :never_contacted scope on Ci::Runner4073 calls the corresponding :stale scope on Ci::Runner4074 by active status4075 with active set as false calls the corresponding scope on Ci::Runner with false4076 with active set as true calls the corresponding scope on Ci::Runner with true4077 by runner type4078 calls the corresponding scope on Ci::Runner4079 by tag_name4080 calls the corresponding scope on Ci::Runner4081 sorting4082 without sort param4083 behaves like sorts by created_at descending4084 sorts by created_at descending4085 with sort param equal to created_date4086 behaves like sorts by created_at descending4087 sorts by created_at descending4088 with sort param equal to created_at_desc4089 behaves like sorts by created_at descending4090 sorts by created_at descending4091 with sort param equal to created_at_asc4092 sorts by created_at ascending4093 with sort param equal to contacted_asc4094 sorts by contacted_at ascending4095 with sort param equal to contacted_desc4096 sorts by contacted_at descending4097 with sort param equal to token_expires_at_asc4098 sorts by contacted_at ascending4099 with sort param equal to token_expires_at_desc4100 sorts by contacted_at descending4101 when admin mode setting is enabled4102 when in admin mode4103 behaves like executes as admin4104 with 2 runners4105 with empty params4106 returns all runners4107 with nil group4108 returns all runners4109 with preload param set to :tag_name true4110 requests tags4111 with preload param set to :tag_name false4112 does not request tags4113 filtering4114 by search term4115 calls Ci::Runner.search4116 by upgrade status4117 set to :not_processed4118 calls with_upgrade_status scope with corresponding :not_processed status4119 set to :invalid_version4120 calls with_upgrade_status scope with corresponding :invalid_version status4121 set to :unavailable4122 calls with_upgrade_status scope with corresponding :unavailable status4123 set to :available4124 calls with_upgrade_status scope with corresponding :available status4125 set to :recommended4126 calls with_upgrade_status scope with corresponding :recommended status4127 set to an invalid value4128 raises ArgumentError4129 set to nil4130 does not call with_upgrade_status4131 by status4132 calls the corresponding :active scope on Ci::Runner4133 calls the corresponding :paused scope on Ci::Runner4134 calls the corresponding :online scope on Ci::Runner4135 calls the corresponding :offline scope on Ci::Runner4136 calls the corresponding :never_contacted scope on Ci::Runner4137 calls the corresponding :stale scope on Ci::Runner4138 by active status4139 with active set as false calls the corresponding scope on Ci::Runner with false4140 with active set as true calls the corresponding scope on Ci::Runner with true4141 by runner type4142 calls the corresponding scope on Ci::Runner4143 by tag_name4144 calls the corresponding scope on Ci::Runner4145 sorting4146 without sort param4147 behaves like sorts by created_at descending4148 sorts by created_at descending4149 with sort param equal to created_date4150 behaves like sorts by created_at descending4151 sorts by created_at descending4152 with sort param equal to created_at_desc4153 behaves like sorts by created_at descending4154 sorts by created_at descending4155 with sort param equal to created_at_asc4156 sorts by created_at ascending4157 with sort param equal to contacted_asc4158 sorts by contacted_at ascending4159 with sort param equal to contacted_desc4160 sorts by contacted_at descending4161 with sort param equal to token_expires_at_asc4162 sorts by contacted_at ascending4163 with sort param equal to token_expires_at_desc4164 sorts by contacted_at descending4165 when not in admin mode4166 behaves like executes as normal user4167 returns no runners4168 by non admin user4169 behaves like executes as normal user4170 returns no runners4171 when user is nil4172 returns no runners4173 group4174 #execute4175 with user as group owner4176 with :group as target group4177 passing no params4178 behaves like membership equal to :descendants4179 returns all descendant runners4180 with :descendants membership4181 behaves like membership equal to :descendants4182 returns all descendant runners4183 with :direct membership4184 returns runners belonging to group4185 with :all_available membership4186 returns runners available to group4187 with unknown membership4188 raises an error4189 with nil group4190 returns no runners4191 with sort param4192 sorts by specified attribute4193 filtering4194 by search term4195 returns correct runner4196 by active status4197 returns correct runner4198 by status4199 returns correct runner4200 by tag_name4201 returns correct runner4202 by runner type4203 returns correct runners4204 when user is not group owner4205 user_permission: :maintainer4206 with :sub_group_1 as target group4207 returns no runners4208 with :group as target group4209 returns no runners4210 with :all_available membership4211 returns no runners4212 user_permission: :developer4213 with :sub_group_1 as target group4214 returns no runners4215 with :group as target group4216 returns no runners4217 with :all_available membership4218 returns no runners4219 user_permission: :reporter4220 with :sub_group_1 as target group4221 returns no runners4222 with :group as target group4223 returns no runners4224 with :all_available membership4225 returns no runners4226 user_permission: :guest4227 with :sub_group_1 as target group4228 returns no runners4229 with :group as target group4230 returns no runners4231 with :all_available membership4232 returns no runners4233 when user has no access4234 returns no runners4235 when user is nil4236 returns no runners4237 #sort_key4238 without params4239 returns created_at_desc4240 with params4241 returns contacted_asc4242 project4243 #execute4244 with user as project admin4245 with project runners4246 returns runners available to project4247 with ancestor group runners4248 returns runners available to project4249 with allowed shared runners4250 returns runners available to project4251 with project, ancestor group, and allowed shared runners4252 returns runners available to project4253 filtering4254 by search term4255 returns the correct runner4256 by active status4257 returns the correct runners4258 by status4259 returns correct runner4260 by tag_name4261 returns correct runner4262 by runner type4263 returns correct runners4264 with user as project developer4265 returns no runners4266 when user is nil4267 returns no runners4268 with nil project_full_path4269 returns no runners4270Resolvers::ProjectIssuesResolver4271 # order random4272 is expected to have nullable GraphQL type IssueConnection4273 increases field complexity based on arguments4274 with a project4275 #resolve4276 finds all issues4277 filters by state4278 filters by milestone4279 filters by two assignees4280 filters by assignee_id4281 filters by any assignee4282 filters by no assignee4283 filters by author4284 filters by labels4285 returns issues user can see4286 finds a specific issue with iid4287 batches queries that only include IIDs4288 finds a specific issue with iids4289 finds multiple issues with iids4290 finds only the issues within the project we are looking at4291 filtering by milestone wildcard id4292 returns issues with started milestone4293 returns issues with upcoming milestone4294 returns issues with any milestone4295 returns issues with no milestone4296 generates a mutually exclusive filter error when wildcard and title are provided4297 when using negated filters4298 returns issues matching the searched title after applying a negated filter4299 returns issues excluding the ones with started milestone4300 returns issues excluding the ones with upcoming milestone4301 generates a mutually exclusive filter error when wildcard and title are provided as negated filters4302 filter by release4303 filter by release_tag4304 returns all issues associated with the specified tags4305 when release_tag_wildcard_id is also provided4306 generates a mutually eclusive argument error4307 filter by negated release_tag4308 returns all issues not associated with the specified tags4309 filter by release_tag_wildcard_id4310 when filtering by ANY4311 is expected to contain exactly #<Issue id:341 group58/project-576#3>, #<Issue id:342 group58/project-576#4>, and #<Issue id:343 group58/project-576#5>4312 when filtering by NONE4313 is expected to contain exactly #<Issue id:330 group58/project-576#1> and #<Issue id:331 group58/project-576#2>4314 filters by assignee_username4315 filters by assignee_username4316 filters by assignee_usernames4317 when both assignee_username and assignee_usernames are provided4318 generates a mutually exclusive filter error4319 filters by created_at4320 filters by created_before4321 filters by created_after4322 filters by updated_at4323 filters by updated_before4324 filters by updated_after4325 filters by closed_at4326 filters by closed_before4327 filters by closed_after4328 filters by issue_type4329 filters by a single type4330 filters by a single type, negative assertion4331 filters by more than one type4332 ignores the filter if none given4333 when filtering by reaction emoji4334 filters by reaction emoji4335 filters by reaction emoji wildcard "none"4336 filters by reaction emoji wildcard "any"4337 filters by negated reaction emoji4338 when listing confidential issues4339 when user is allowed to view confidential issues4340 returns all viewable issues by default4341 returns only the non-confidential issues for the project when filter is set to false4342 returns only the confidential issues for the project when filter is set to true4343 when user is not allowed to see confidential issues4344 returns all viewable issues by default4345 does not return the confidential issues when filter is set to false4346 does not return the confidential issues when filter is set to true4347 when searching issues4348 behaves like graphql query for searching issuables4349 uses search optimization4350 filters issuables by title4351 filters issuables by description4352 with in param4353 generates an error if param search is missing4354 filters issuables by title and description4355 filters issuables by description only4356 filters issuables by title only4357 filters by negated params4358 returns issues without the specified iids4359 returns issues without the specified label names4360 returns issues without the specified milestone4361 returns issues without the specified assignee_usernames4362 returns issues without the specified assignee_id4363 returns issues without the specified issue_type4364 when filtering by negated author4365 returns issues without the specified author_username4366 filtering by crm4367 when filtering by contact4368 returns only the issues for the contact4369 when filtering by crm_organization4370 returns only the issues for the contact4371 sorting4372 when sorting by created4373 sorts issues ascending4374 sorts issues descending4375 when sorting by closed at4376 sorts issues ascending4377 sorts issues descending4378 when sorting by due date4379 sorts issues ascending4380 sorts issues descending4381 when sorting by relative position4382 sorts issues ascending4383 when sorting by priority4384 sorts issues ascending4385 sorts issues descending4386 when sorting by label priority4387 sorts issues ascending4388 sorts issues descending4389 when sorting by milestone due date4390 sorts issues ascending4391 sorts issues descending4392 when sorting by severity4393 sorts issues ascending4394 sorts issues descending4395 when sorting by popularity4396 sorts issues ascending (ties broken by id in desc order)4397 sorts issues descending (ties broken by id in desc order)4398 when sorting by escalation status4399 sorts issues ascending4400 sorts issues descending4401 sorts issues created_at4402 when sorting with non-stable cursors4403 uses offset-pagination when sorting by priority_asc4404 uses offset-pagination when sorting by priority_desc4405 uses offset-pagination when sorting by popularity_asc4406 uses offset-pagination when sorting by popularity_desc4407 uses offset-pagination when sorting by label_priority_asc4408 uses offset-pagination when sorting by label_priority_desc4409 uses offset-pagination when sorting by milestone_due_asc4410 uses offset-pagination when sorting by milestone_due_desc4411 uses offset-pagination when sorting by escalation_status_asc4412 uses offset-pagination when sorting by escalation_status_desc4413 when sorting by title4414 sorts issues ascending4415 sorts issues descending4416 when passing a non existent, batch loaded project4417 returns nil without breaking4418Gitlab::Gfm::ReferenceRewriter4419 #rewrite4420 multiple issues and merge requests referenced4421 plain text description4422 is expected to include "project-591#1"4423 is expected to include "project-593#2"4424 is expected to include "project-595!1"4425 description with ignored elements4426 is expected to include "project-597#1"4427 is expected not to include "project-599#2"4428 is expected not to include "project-601!1"4429 rewrite ambigous references4430 url4431 is expected to include "http://gitlab.com/#1"4432 code4433 is expected to eq "project-605#1, but not `[#1]`"4434 code reverse4435 is expected to eq "not `#1`, but project-607#1"4436 code in random order4437 is expected to eq "project-609#1, `#1`, project-609#1, `#1`"4438 description with project labels4439 label referenced by id4440 is expected to eq "project-611#1 and project-611~123"4441 label referenced by text4442 is expected to eq "project-613#1 and project-613~123"4443 description with group labels4444 label referenced by id4445 is expected to eq "group60/project-615#1 and group60/project-615~321"4446 label referenced by text4447 is expected to eq "group61/project-617#1 and group61/project-617~321"4448 when description contains a local reference4449 is expected to eq "See project-619#1"4450 when description contains a cross reference4451 is expected to eq "See namespace564/project-622!1"4452 with a commit4453 reference to an absolute URL to a commit4454 is expected to eq "http://localhost/group59/project-624/-/commit/b83d6e391c22777fca1ed3012fce84f633d7fed0"4455 reference to a commit4456 is expected to eq "project-626@b83d6e391c22777fca1ed3012fce84f633d7fed0"4457 reference contains project milestone4458 is expected to eq "milestone: project-628%\"9.0\""4459 when referring to group milestone4460 is expected to eq "milestone %\"10.0\""4461 when referring to a group4462 is expected to eq "group @group59"4463 when referring to a user4464 is expected to eq "user @user442"4465 when referable has a nil reference4466 raises an error that should be fixed4467GroupsHelper4468 #group_icon_url4469 returns an url for the avatar4470 gives default avatar_icon when no avatar is present4471 #group_lfs_status4472 only one project in group4473 returns all projects as enabled4474 returns all projects as disabled4475 more than one project in group4476 LFS enabled in group4477 returns both projects as enabled4478 returns only one as enabled4479 LFS disabled in group4480 returns both projects as disabled4481 returns only one as disabled4482 #group_title4483 enqueues the elements in the breadcrumb schema list4484 avoids N+1 queries4485 traversal queries4486 recursive4487 outputs the groups in the correct order4488 linear4489 outputs the groups in the correct order4490 #group_title_link4491 link4492 uses the group name as innerText4493 links to the group path4494 icon4495 specifies the group name as the alt text4496 uses the group's avatar_url4497 #share_with_group_lock_help_text4498 traversal queries4499 recursive4500 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4501 has the correct help text with correct ancestor links4502 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4503 has the correct help text with correct ancestor links4504 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4505 has the correct help text with correct ancestor links4506 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4507 has the correct help text with correct ancestor links4508 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4509 has the correct help text with correct ancestor links4510 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4511 has the correct help text with correct ancestor links4512 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4513 has the correct help text with correct ancestor links4514 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4515 has the correct help text with correct ancestor links4516 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4517 has the correct help text with correct ancestor links4518 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4519 has the correct help text with correct ancestor links4520 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4521 has the correct help text with correct ancestor links4522 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4523 has the correct help text with correct ancestor links4524 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4525 has the correct help text with correct ancestor links4526 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4527 has the correct help text with correct ancestor links4528 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4529 has the correct help text with correct ancestor links4530 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4531 has the correct help text with correct ancestor links4532 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4533 has the correct help text with correct ancestor links4534 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4535 has the correct help text with correct ancestor links4536 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4537 has the correct help text with correct ancestor links4538 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4539 has the correct help text with correct ancestor links4540 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4541 has the correct help text with correct ancestor links4542 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4543 has the correct help text with correct ancestor links4544 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4545 has the correct help text with correct ancestor links4546 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4547 has the correct help text with correct ancestor links4548 linear4549 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4550 has the correct help text with correct ancestor links4551 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4552 has the correct help text with correct ancestor links4553 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4554 has the correct help text with correct ancestor links4555 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4556 has the correct help text with correct ancestor links4557 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4558 has the correct help text with correct ancestor links4559 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4560 has the correct help text with correct ancestor links4561 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4562 has the correct help text with correct ancestor links4563 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4564 has the correct help text with correct ancestor links4565 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4566 has the correct help text with correct ancestor links4567 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4568 has the correct help text with correct ancestor links4569 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4570 has the correct help text with correct ancestor links4571 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4572 has the correct help text with correct ancestor links4573 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4574 has the correct help text with correct ancestor links4575 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4576 has the correct help text with correct ancestor links4577 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4578 has the correct help text with correct ancestor links4579 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4580 has the correct help text with correct ancestor links4581 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4582 has the correct help text with correct ancestor links4583 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4584 has the correct help text with correct ancestor links4585 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4586 has the correct help text with correct ancestor links4587 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4588 has the correct help text with correct ancestor links4589 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4590 has the correct help text with correct ancestor links4591 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4592 has the correct help text with correct ancestor links4593 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4594 has the correct help text with correct ancestor links4595 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4596 has the correct help text with correct ancestor links4597 #can_disable_group_emails?4598 returns true for the group owner4599 returns false for anyone else4600 when subgroups4601 returns false if parent group is disabling emails4602 returns true if parent group is not disabling emails4603 #can_update_default_branch_protection?4604 for users who can update default branch protection of the group4605 is expected to be truthy4606 for users who cannot update default branch protection of the group4607 is expected to be falsey4608 #show_thanks_for_purchase_alert?4609 with quantity present4610 returns true4611 with quantity not present4612 returns false4613 with quantity empty4614 returns false4615 #render_setting_to_allow_project_access_token_creation?4616 returns true if group is root4617 returns false if group is subgroup4618 #can_admin_group_member?4619 returns true when current_user can admin members4620 returns false when current_user can not admin members4621 #can_admin_service_accounts?4622 returns false when current_user can not admin members4623 #localized_jobs_to_be_done_choices4624 has a translation for all `jobs_to_be_done` values4625 #subgroup_creation_data4626 when group has a parent4627 returns expected hash4628 when group does not have a parent4629 returns expected hash4630 #group_name_and_path_app_data4631 when group has a parent4632 returns expected hash4633 #group_overview_tabs_app_data4634 returns expected hash4635 #enabled_git_access_protocol_options_for_group4636 instance setting is nil4637 is expected to contain exactly ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]4638 instance setting is blank4639 is expected to contain exactly ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]4640 instance setting is ssh4641 is expected to contain exactly ["Only SSH", "ssh"]4642 instance setting is http4643 is expected to contain exactly ["Only HTTP(S)", "http"]4644Gitlab::Database::LockWritesManager4645 #table_locked_for_writes?4646 returns false for a table that is not locked for writes4647 returns true for a table that is locked for writes4648 for detached partition tables in another schema4649 returns true for a table that is locked for writes4650 #lock_writes4651 prevents any writes on the table4652 prevents truncating the table4653 adds 3 triggers to the ci schema tables on the main database4654 logs the write locking4655 retries again if it receives a statement_timeout a few number of times4656 raises the exception if it happened many times4657 skips the operation if the table is already locked for writes4658 when running in dry_run mode4659 prints the sql statement to the logger4660 does not lock the tables for writes4661 returns result hash with action needs_lock4662 #unlock_writes4663 allows writing on the table again4664 skips unlocking the table if the table was already unlocked for writes4665 removes the write protection triggers from the gitlab_main tables on the ci database4666 logs the write unlocking4667 when running in dry_run mode4668 prints the sql statement to the logger4669 does not unlock the tables for writes4670 returns result hash with dry_run true4671AttachmentUploader4672 behaves like builds correct paths4673 #store_dir4674 behaves like matches the method pattern4675 is expected to match /uploads\/-\/system\/note\/attachment\//4676 #cache_dir4677 behaves like matches the method pattern4678 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4679 #work_dir4680 behaves like matches the method pattern4681 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4682 #upload_path4683 behaves like matches the method pattern4684 is expected to match /uploads\/-\/system\/note\/attachment\//4685 #relative_path4686 is relative4687 .absolute_path4688 behaves like matches the method pattern4689 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/note\/attachment\//4690 .base_dir4691 behaves like matches the method pattern4692 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4693 path traversal exploits4694 throws an exception4695 object_store is REMOTE4696 behaves like builds correct paths4697 #store_dir4698 behaves like matches the method pattern4699 is expected to match /note\/attachment\//4700 #cache_dir4701 behaves like matches the method pattern4702 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4703 #work_dir4704 behaves like matches the method pattern4705 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4706 #upload_path4707 behaves like matches the method pattern4708 is expected to match /note\/attachment\//4709 #relative_path4710 is relative4711 .absolute_path4712 behaves like matches the method pattern4713 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4714 .base_dir4715 behaves like matches the method pattern4716 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4717 path traversal exploits4718 throws an exception4719 #migrate!4720 behaves like migrates4721 returns corresponding file type4722 does nothing when migrating to the current store4723 migrate to the specified store4724 removes the original file after the migration4725 can access to the original file during migration4726 when migrate! is not occupied by another process4727 executes migrate!4728 executes use_file4729 when migrate! is occupied by another process4730 does not execute migrate!4731 does not execute use_file4732 migration is unsuccessful4733 when the store is not supported4734 does not update the object_store4735 does not delete the original file4736 upon a fog failure4737 does not update the object_store4738 does not delete the original file4739 upon a database failure4740 does not update the object_store4741 does not delete the original file4742 behaves like migrates4743 returns corresponding file type4744 does nothing when migrating to the current store4745 migrate to the specified store4746 removes the original file after the migration4747 can access to the original file during migration4748 when migrate! is not occupied by another process4749 executes migrate!4750 executes use_file4751 when migrate! is occupied by another process4752 does not execute migrate!4753 does not execute use_file4754 migration is unsuccessful4755 when the store is not supported4756 does not update the object_store4757 does not delete the original file4758 upon a fog failure4759 does not update the object_store4760 does not delete the original file4761 upon a database failure4762 does not update the object_store4763 does not delete the original file4764GitlabRoutingHelper4765 Project URL helpers4766 #project_member_path4767 is expected to eq "/namespace628/project-686/-/project_members/901"4768 #request_access_project_members_path4769 is expected to eq "/namespace629/project-687/-/project_members/request_access"4770 #leave_project_members_path4771 is expected to eq "/namespace630/project-688/-/project_members/leave"4772 #approve_access_request_project_member_path4773 is expected to eq "/namespace631/project-689/-/project_members/903/approve_access_request"4774 #resend_invite_project_member_path4775 is expected to eq "/namespace632/project-690/-/project_members/905/resend_invite"4776 Group URL helpers4777 #group_members_url4778 is expected to eq "http://test.host/groups/group80/-/group_members"4779 #group_member_path4780 is expected to eq "/groups/group81/-/group_members/906"4781 #request_access_group_members_path4782 is expected to eq "/groups/group82/-/group_members/request_access"4783 #leave_group_members_path4784 is expected to eq "/groups/group83/-/group_members/leave"4785 #approve_access_request_group_member_path4786 is expected to eq "/groups/group84/-/group_members/907/approve_access_request"4787 #resend_invite_group_member_path4788 is expected to eq "/groups/group85/-/group_members/908/resend_invite"4789 #preview_markdown_path4790 returns group preview markdown path for a group parent4791 returns group preview markdown path for a group parent with args4792 returns project preview markdown path for a project parent4793 returns snippet preview markdown path for a personal snippet4794 returns project preview markdown path for a project snippet4795 #edit_milestone_path4796 returns group milestone edit path when given entity parent is a Group4797 returns project milestone edit path when given entity parent is not a Group4798 members helpers4799 #source_members_url4800 returns a url to the memberships page for a group membership4801 returns a url to the memberships page for a project membership4802 artifacts4803 #fast_download_project_job_artifacts_path4804 matches the Rails download path4805 when given parameters4806 adds them to the path4807 #fast_keep_project_job_artifacts_path4808 matches the Rails keep path4809 #fast_browse_project_job_artifacts_path4810 matches the Rails browse path4811 snippets4812 #gitlab_snippet_path4813 returns the personal snippet path4814 returns the project snippet path4815 #gitlab_snippet_url4816 returns the personal snippet url4817 returns the project snippet url4818 #gitlab_raw_snippet_path4819 returns the raw personal snippet path4820 returns the raw project snippet path4821 #gitlab_raw_snippet_blob_path4822 behaves like snippet blob raw path4823 for PersonalSnippets4824 returns the raw personal snippet blob path4825 for ProjectSnippets4826 returns the raw project snippet blob path4827 when an argument is set4828 is expected to eq "/-/snippets/18/raw/test-ref/.gitattributes?inline=true"4829 without a ref4830 uses the root ref4831 #gitlab_raw_snippet_url4832 returns the raw personal snippet url4833 returns the raw project snippet url4834 #gitlab_raw_snippet_blob_url4835 behaves like snippet blob raw url4836 for PersonalSnippets4837 returns the raw personal snippet blob url4838 for ProjectSnippets4839 returns the raw project snippet blob url4840 when an argument is set4841 is expected to eq "http://test.host/-/snippets/18/raw/snippet-test-ref/.gitattributes?inline=true"4842 without a ref4843 uses the root ref4844 when snippet does not have a repository4845 uses the instance deafult branch4846 #gitlab_raw_snippet_url4847 returns the raw personal snippet url4848 returns the raw project snippet url4849 #gitlab_snippet_notes_path4850 returns the notes path for the personal snippet4851 #gitlab_snippet_notes_url4852 returns the notes url for the personal snippet4853 #gitlab_snippet_note_path4854 returns the note path for the personal snippet4855 #gitlab_snippet_note_url4856 returns the note url for the personal snippet4857 #gitlab_toggle_award_emoji_snippet_note_path4858 returns the note award emoji path for the personal snippet4859 #gitlab_toggle_award_emoji_snippet_note_url4860 returns the note award emoji url for the personal snippet4861 #gitlab_toggle_award_emoji_snippet_path4862 returns the award emoji path for the personal snippet4863 #gitlab_toggle_award_emoji_snippet_url4864 returns the award url for the personal snippet4865 #gitlab_dashboard_snippets_path4866 returns the personal snippets dashboard path4867 returns the project snippets dashboard path4868 wikis4869 #wiki_page_path4870 returns the url for the wiki page4871 releases4872 #release_url4873 returns the url for the release page4874 GraphQL ETag paths4875 with pipelines4876 returns an ETag path for a pipeline sha4877 returns an ETag path for pipelines4878BlobHelper4879 #sanitize_svg_data4880 retains essential elements4881 #edit_blob_button4882 does not render edit button when blob is not text4883 uses the passed blob instead retrieve from repository4884 returns a link with the proper route4885 returns a link with the passed link_opts on the expected route4886 #relative_raw_path4887 pointing from '/file.md' to '/-/raw/main/'4888 pointing from '/test/file.md' to '/-/raw/main/test/'4889 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'4890 viewer related4891 #blob_render_error_reason4892 for error :too_large4893 when the blob size is larger than the absolute size limit4894 returns an error message4895 when the blob size is larger than the size limit4896 returns an error message4897 for error :server_side_but_stored_externally4898 returns an error message4899 #blob_render_error_options4900 for error :collapsed4901 includes a "load it anyway" link4902 for error :too_large4903 does not include a "load it anyway" link4904 includes a "download it" link4905 when the viewer is rich4906 the blob is rendered as text4907 includes a "view the source" link4908 the blob is not rendered as text4909 does not include a "view the source" link4910 when the viewer is not rich4911 does not include a "view the source" link4912 for error :server_side_but_stored_externally4913 does not include a "load it anyway" link4914 does not include a "view the source" link4915 includes a "download it" link4916 #show_suggest_pipeline_creation_celebration?4917 when file is a pipeline config file4918 is true4919 file is invalid format4920 is false4921 does not use the default ci config4922 is false4923 does not have the needed cookie4924 is false4925 blob does not have auxiliary view4926 is false4927 when file is not a pipeline config file4928 is false4929 suggest_pipeline_commit_cookie_name4930 uses project id to make up the cookie name4931 #ide_edit_path4932 returns full IDE path4933 returns full IDE path with second -4934 returns IDE path without relative_url_root4935 escapes special characters4936 does not escape "/" character4937 when user is not logged in4938 returns IDE path inside the project4939 when user cannot push to the project4940 returns IDE path with the user's fork4941 #ide_merge_request_path4942 returns IDE path for the given MR if MR is not merged4943 when the MR comes from a fork4944 returns IDE path for MR in the forked repo with target project included as param4945 when the MR is merged4946 returns default IDE url with master branch4947 includes file path passed4948 when target branch exists4949 returns IDE edit url with the target branch4950 #ide_fork_and_edit_path4951 returns path to fork the repo with a redirect param to the full IDE path4952 does not include notice params with_notice: false4953 when user is not logged in4954 returns nil4955 #fork_and_edit_path4956 returns path to fork the repo with a redirect param to the full edit path4957 when user is not logged in4958 returns nil4959 #editing_ci_config?4960 when path is nil4961 is expected to be falsey4962 when path is not a ci file4963 is expected to be falsey4964 when path ends is gitlab-ci.yml4965 is expected to be truthy4966 when path ends with gitlab-ci.yml4967 is expected to be truthy4968 with custom ci paths4969 is expected to be truthy4970 with custom ci config and path4971 is expected to be truthy4972 #vue_blob_app_data4973 returns data related to blob app4974Integrations::Telegram4975 # order random4976 validations4977 when integration is active4978 is expected to validate that :token cannot be empty/falsy4979 is expected to validate that :room cannot be empty/falsy4980 when integration is inactive4981 is expected not to validate that :token cannot be empty/falsy4982 is expected not to validate that :room cannot be empty/falsy4983 behaves like chat integration4984 Associations4985 is expected to belong to project required: false4986 Validations4987 when integration is active4988 is expected to validate that :webhook cannot be empty/falsy4989 behaves like issue tracker integration URL attribute4990 is expected to allow :webhook to be ‹"https://example.com"›4991 is expected not to allow :webhook to be ‹"example.com"›4992 is expected not to allow :webhook to be ‹"ftp://example.com"›4993 is expected not to allow :webhook to be ‹"herp-and-derp"›4994 when integration is inactive4995 is expected not to validate that :webhook cannot be empty/falsy4996 .supported_events4997 does not support deployment_events4998 #execute4999 with push events5000 behaves like triggered Telegram integration5001 calls Telegram API5002 with default branch5003 when only default branch are to be notified5004 behaves like triggered Telegram integration5005 calls Telegram API5006 when only protected branches are to be notified5007 behaves like untriggered Telegram integration5008 does not call Telegram API5009 when default and protected branches are to be notified5010 behaves like triggered Telegram integration5011 calls Telegram API5012 when all branches are to be notified5013 behaves like triggered Telegram integration5014 calls Telegram API5015 with protected branch5016 when only default branch are to be notified5017 behaves like untriggered Telegram integration5018 does not call Telegram API5019 when only protected branches are to be notified5020 behaves like triggered Telegram integration5021 calls Telegram API5022 when default and protected branches are to be notified5023 behaves like triggered Telegram integration5024 calls Telegram API5025 when all branches are to be notified5026 behaves like triggered Telegram integration5027 calls Telegram API5028 with neither default nor protected branch5029 when only default branch are to be notified5030 behaves like untriggered Telegram integration5031 does not call Telegram API5032 when only protected branches are to be notified5033 behaves like untriggered Telegram integration5034 does not call Telegram API5035 when default and protected branches are to be notified5036 behaves like untriggered Telegram integration5037 does not call Telegram API5038 when all branches are to be notified5039 behaves like triggered Telegram integration5040 calls Telegram API5041 with issue events5042 behaves like triggered Telegram integration5043 calls Telegram API5044 with merge events5045 behaves like triggered Telegram integration5046 calls Telegram API5047 with wiki page events5048 behaves like triggered Telegram integration5049 calls Telegram API5050 with note events5051 with commit comment5052 behaves like triggered Telegram integration5053 calls Telegram API5054 with merge request comment5055 behaves like triggered Telegram integration5056 calls Telegram API5057 with issue comment5058 behaves like triggered Telegram integration5059 calls Telegram API5060 with snippet comment5061 behaves like triggered Telegram integration5062 calls Telegram API5063 with pipeline events5064 with failed pipeline5065 behaves like triggered Telegram integration5066 calls Telegram API5067 with succeeded pipeline5068 with default notify_only_broken_pipelines5069 does not call Telegram API5070 when notify_only_broken_pipelines is false5071 behaves like triggered Telegram integration5072 calls Telegram API5073 with default branch5074 when only default branch are to be notified5075 behaves like triggered Telegram integration5076 calls Telegram API5077 when only protected branches are to be notified5078 behaves like untriggered Telegram integration5079 does not call Telegram API5080 when default and protected branches are to be notified5081 behaves like triggered Telegram integration5082 calls Telegram API5083 when all branches are to be notified5084 behaves like triggered Telegram integration5085 calls Telegram API5086 with protected branch5087 when only default branch are to be notified5088 behaves like untriggered Telegram integration5089 does not call Telegram API5090 when only protected branches are to be notified5091 behaves like triggered Telegram integration5092 calls Telegram API5093 when default and protected branches are to be notified5094 behaves like triggered Telegram integration5095 calls Telegram API5096 when all branches are to be notified5097 behaves like triggered Telegram integration5098 calls Telegram API5099 with neither default nor protected branch5100 when only default branch are to be notified5101 behaves like untriggered Telegram integration5102 does not call Telegram API5103 when only protected branches are to be notified5104 behaves like untriggered Telegram integration5105 does not call Telegram API5106 when default and protected branches are to be notified5107 behaves like untriggered Telegram integration5108 does not call Telegram API5109 when all branches are to be notified5110 behaves like triggered Telegram integration5111 calls Telegram API5112 deployment events5113 behaves like untriggered Telegram integration5114 does not call Telegram API5115 before_validation :set_webhook5116 when token is not present5117 does not set webhook value5118 when token is present5119 sets webhook value5120PackagesHelper5121 #package_registry_instance_url5122 returns conan instance url when registry_type is conant5123 returns npm instance url when registry_type is npm5124 #package_registry_project_url5125 returns maven registry url when registry_type is not provided5126 returns specified registry url when registry_type is provided5127 #pypi_registry_url5128 returns the pypi registry url with token when project is private5129 returns the pypi registry url without token when project is public5130 #composer_registry_url5131 return the composer registry url5132 #composer_config_repository_name5133 return global unique composer registry id5134 #show_cleanup_policy_link5135 com: false, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false5136 is expected to eq false5137 com: false, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false5138 is expected to eq false5139 com: false, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false5140 is expected to eq false5141 com: false, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false5142 is expected to eq false5143 com: false, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false5144 is expected to eq false5145 com: false, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false5146 is expected to eq false5147 com: false, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false5148 is expected to eq false5149 com: false, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: false5150 is expected to eq false5151 com: false, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false5152 is expected to eq false5153 com: false, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false5154 is expected to eq false5155 com: false, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false5156 is expected to eq false5157 com: false, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false5158 is expected to eq false5159 com: false, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false5160 is expected to eq false5161 com: false, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false5162 is expected to eq false5163 com: false, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false5164 is expected to eq false5165 com: false, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: false5166 is expected to eq false5167 com: true, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false5168 is expected to eq false5169 com: true, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false5170 is expected to eq false5171 com: true, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false5172 is expected to eq false5173 com: true, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false5174 is expected to eq false5175 com: true, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false5176 is expected to eq false5177 com: true, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false5178 is expected to eq false5179 com: true, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false5180 is expected to eq false5181 com: true, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: false5182 is expected to eq false5183 com: true, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false5184 is expected to eq false5185 com: true, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false5186 is expected to eq false5187 com: true, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false5188 is expected to eq false5189 com: true, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false5190 is expected to eq false5191 com: true, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false5192 is expected to eq false5193 com: true, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false5194 is expected to eq false5195 com: true, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false5196 is expected to eq false5197 com: true, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: true5198 is expected to eq true5199 #show_container_registry_settings5200 with container registry config enabled5201 when user has permission5202 is expected to equal true5203 when user does not have permission5204 is expected to equal false5205 with container registry config disabled5206 when user has permission5207 is expected to equal false5208 when user does not have permission5209 is expected to equal false5210 #show_group_package_registry_settings5211 with package registry config enabled5212 with admin5213 is expected to equal true5214 with owner5215 is expected to equal true5216 with maintainer5217 is expected to equal false5218 with developer5219 is expected to equal false5220 with reporter5221 is expected to equal false5222 with guest5223 is expected to equal false5224 with package registry config disabled5225 with admin5226 is expected to equal false5227 with owner5228 is expected to equal false5229 with maintainer5230 is expected to equal false5231 with developer5232 is expected to equal false5233 with reporter5234 is expected to equal false5235 with guest5236 is expected to equal false5237Gitlab::ImportExport::Project::Sample::RelationTreeRestorer5238 initializes relation_factory with date_calculator as parameter5239 when relation tree restorer is initialized5240 initializes date calculator with due dates5241 using ndjson reader5242 behaves like import project successfully5243 restores project tree5244 imported project5245 has the project attributes and relations5246 has issues with correctly updated due dates5247 has milestones with correctly updated due dates5248Terraform::StateVersion5249 is expected to be a kind of FileStoreMounter5250 is expected to be a kind of EachBatch5251 is expected to belong to terraform_state required: true5252 is expected to belong to created_by_user class_name => User optional: true5253 is expected to belong to build class_name => Ci::Build optional: true5254 default attributes5255 is expected to eq 55256 is expected to eq 35257 scopes5258 .ordered_by_version_desc5259 is expected to eq [5, 4, 3, 2, 1]5260 .with_files_stored_locally5261 includes states with local storage5262 excludes states without local storage5263 file storage5264 #file5265 returns the saved file5266 #file_store5267 returns the value5268 #update_file_store5269 when file is stored in object storage5270 sets file_store to remote5271 when file is stored locally5272 sets file_store to local5273 behaves like cleanup by a loose foreign key5274 cleans up (delete or nullify) the model5275Ci::PlayBuildService#execute5276 when project does not have repository yet5277 allows user to play build if protected branch rules are met5278 does not allow user with developer role to play build5279 when project has repository5280 allows user with developer role to play a build5281 prevents a blocked developer from playing a build5282 when build is a playable manual action5283 enqueues the build5284 reassignes build user correctly5285 when a subsequent job is skipped5286 marks the subsequent job as processable5287 when variables are supplied5288 assigns the variables to the build5289 and variables are invalid5290 resets the attributes of the build5291 when user defined variables are restricted5292 when user is maintainer5293 assigns the variables to the build5294 when user is developer5295 raises an error5296 when build is not a playable manual action5297 duplicates the build5298 assigns users correctly5299 and is not retryable5300 does not duplicate the build5301 does not enqueue the build5302 when build is not action5303 raises an error5304 when user does not have ability to trigger action5305 raises an error5306Integrations::PipelinesEmail5307 Validations5308 when integration is active5309 is expected to validate that :recipients cannot be empty/falsy5310 when integration is inactive5311 is expected not to validate that :recipients cannot be empty/falsy5312 validates number of recipients5313 valid number of recipients5314 does not count empty emails5315 invalid number of recipients5316 is expected not to be valid5317 adds an error message5318 when integration is not active5319 is expected to be valid5320 #test5321 when pipeline is failed and on default branch5322 behaves like sending email5323 sends email5324 when pipeline is succeeded5325 behaves like sending email5326 sends email5327 when the pipeline failed5328 on default branch5329 notifications are enabled only for default branch5330 behaves like sending email5331 sends email5332 notifications are enabled only for protected branch5333 behaves like sending email5334 sends email5335 notifications are enabled only for default and protected branches5336 behaves like sending email5337 sends email5338 notifications are enabled only for all branches5339 behaves like sending email5340 sends email5341 on a protected branch5342 notifications are enabled only for default branch5343 behaves like sending email5344 sends email5345 notifications are enabled only for protected branch5346 behaves like sending email5347 sends email5348 notifications are enabled only for default and protected branches5349 behaves like sending email5350 sends email5351 notifications are enabled only for all branches5352 behaves like sending email5353 sends email5354 on a neither protected nor default branch5355 notifications are enabled only for default branch5356 behaves like sending email5357 sends email5358 notifications are enabled only for protected branch5359 behaves like sending email5360 sends email5361 notifications are enabled only for default and protected branches5362 behaves like sending email5363 sends email5364 notifications are enabled only for all branches5365 behaves like sending email5366 sends email5367 #execute5368 with recipients5369 with succeeded pipeline5370 behaves like not sending email5371 does not send email5372 with notify_only_broken_pipelines on5373 with failed pipeline5374 behaves like sending email5375 sends email5376 with succeeded pipeline5377 behaves like not sending email5378 does not send email5379 when the pipeline failed5380 on default branch5381 behaves like sending email5382 sends email5383 notifications are enabled only for default branch5384 behaves like sending email5385 sends email5386 notifications are enabled only for protected branch5387 behaves like not sending email5388 does not send email5389 notifications are enabled only for default and protected branches5390 behaves like sending email5391 sends email5392 notifications are enabled only for all branches5393 behaves like sending email5394 sends email5395 on a protected branch5396 notifications are enabled only for default branch5397 behaves like not sending email5398 does not send email5399 notifications are enabled only for all branches5400 behaves like sending email5401 sends email5402 on a neither protected nor default branch5403 notifications are enabled only for default branch5404 behaves like not sending email5405 does not send email5406 notifications are enabled only for protected branch5407 behaves like not sending email5408 does not send email5409 notifications are enabled only for default and protected branches5410 behaves like not sending email5411 does not send email5412 notifications are enabled only for all branches5413 behaves like sending email5414 sends email5415 with empty recipients list5416 with failed pipeline5417 behaves like not sending email5418 does not send email5419 with recipients list separating with newlines5420 with failed pipeline5421 behaves like sending email5422 sends email5423Timelog5424 is expected to belong to project required: false5425 is expected to belong to issue required: false5426 is expected to belong to merge_request required: false5427 is expected to be valid5428 is expected to validate that :time_spent cannot be empty/falsy5429 is expected to validate that :user cannot be empty/falsy5430 is expected to validate that the length of :summary is at most 2555431 is expected not to be nil5432 validation5433 is invalid if issue_id and merge_request_id are missing5434 is invalid if issue_id and merge_request_id are set5435 is valid if only issue_id is set5436 is valid if only merge_request_id is set5437 when importing5438 is valid if issue_id and merge_request_id are missing5439 scopes5440 .in_group5441 return timelogs created for group issues and merge requests5442 .for_user5443 return timelogs created by user5444 .in_project5445 returns timelogs created for project issues and merge requests5446 .at_or_after5447 returns timelogs at the time limit5448 returns timelogs after given time5449 .at_or_before5450 returns timelogs at the time limit5451 returns timelogs before given time5452 hooks5453 .set_project5454 populates project with issuable project5455 sorting5456 .sort_by_field5457 sorts timelogs by time spent in ascending order5458 sorts timelogs by time spent in descending order5459 sorts timelogs by spent at in ascending order5460 sorts timelogs by spent at in descending order5461 sorts timelogs by created at in ascending order5462 sorts timelogs by created at in descending order5463 sorts timelogs by updated at in ascending order5464 sorts timelogs by updated at in descending order5465Projects::AfterRenameService5466 #execute5467 using legacy storage5468 renames a repository5469 updates project full path in gitaly5470 updates storage location5471 container registry with images5472 raises a RenameFailedError5473 attachments5474 moves uploads folder to new location5475 with hashed storage upgrade when renaming enabled5476 calls HashedStorage::MigrationService with correct options5477 using hashed storage5478 renames a repository5479 updates project full path in gitaly5480 updates storage location5481 container registry with images5482 raises a RenameFailedError5483 attachments5484 keeps uploads folder location unchanged5485 when not rolled out5486 moves attachments folder to hashed storage5487 EventStore5488 publishes a ProjectPathChangedEvent5489API::Entities::Snippet5490 with PersonalSnippet5491 returns snippet web_url attribute5492 returns snippet raw_url attribute5493 behaves like common attributes5494 is expected to eq 225495 is expected to eq "My title 963"5496 is expected to eq "My title 965"5497 is expected to eq 2023-06-26 14:46:33.554109627 +00005498 is expected to eq 2023-06-26 14:46:33.554109627 +00005499 is expected to eq nil5500 is expected to eq "private"5501 is expected to include :author5502 file_name5503 returns attribute from repository5504 when repository is empty5505 returns attribute from db5506 ssh_url_to_repo5507 returns attribute5508 when repository does not exist5509 does not include attribute5510 http_url_to_repo5511 returns attribute5512 when repository does not exist5513 does not include attribute5514 files5515 with PersonalSnippet5516 behaves like snippet files5517 returns all snippet files5518 has the file path5519 has the raw url5520 when repository does not exist5521 returns empty array5522 with ProjectSnippet5523 behaves like snippet files5524 returns all snippet files5525 has the file path5526 has the raw url5527 when repository does not exist5528 returns empty array5529 with ProjectSnippet5530 returns snippet web_url attribute5531 returns snippet raw_url attribute5532 behaves like common attributes5533 is expected to eq 235534 is expected to eq "My title 966"5535 is expected to eq "My title 968"5536 is expected to eq 2023-06-26 14:46:34.329398392 +00005537 is expected to eq 2023-06-26 14:46:34.329398392 +00005538 is expected to eq 7345539 is expected to eq "private"5540 is expected to include :author5541 file_name5542 returns attribute from repository5543 when repository is empty5544 returns attribute from db5545 ssh_url_to_repo5546 returns attribute5547 when repository does not exist5548 does not include attribute5549 http_url_to_repo5550 returns attribute5551 when repository does not exist5552 does not include attribute5553 files5554 with PersonalSnippet5555 behaves like snippet files5556 returns all snippet files5557 has the file path5558 has the raw url5559 when repository does not exist5560 returns empty array5561 with ProjectSnippet5562 behaves like snippet files5563 returns all snippet files5564 has the file path5565 has the raw url5566 when repository does not exist5567 returns empty array5568Banzai::Filter::AudioLinkFilter5569 when the element src has an audio extension5570 behaves like an audio element5571 replaces the image tag with an audio tag5572 behaves like an audio element5573 replaces the image tag with an audio tag5574 behaves like an audio element5575 replaces the image tag with an audio tag5576 behaves like an audio element5577 replaces the image tag with an audio tag5578 behaves like an audio element5579 replaces the image tag with an audio tag5580 behaves like an audio element5581 replaces the image tag with an audio tag5582 behaves like an audio element5583 replaces the image tag with an audio tag5584 behaves like an audio element5585 replaces the image tag with an audio tag5586 behaves like an audio element5587 replaces the image tag with an audio tag5588 behaves like an audio element5589 replaces the image tag with an audio tag5590 when the element has no src attribute5591 behaves like an unchanged element5592 leaves the document unchanged5593 when the element src is an image5594 behaves like an unchanged element5595 leaves the document unchanged5596 when the element src has an invalid file extension5597 behaves like an unchanged element5598 leaves the document unchanged5599 when data-canonical-src is empty5600 and src is audio5601 behaves like an audio element5602 replaces the image tag with an audio tag5603 and src is an image5604 behaves like an unchanged element5605 leaves the document unchanged5606 when data-canonical-src is set5607 uses the correct src5608Clusters::Integrations::Prometheus5609 associations5610 is expected to belong to cluster class_name => Clusters::Cluster required: false5611 validations5612 is expected to validate that :cluster cannot be empty/falsy5613 is expected not to allow :enabled to be ‹nil›5614 default values5615 is expected to eq "randomtoken"5616 after_destroy5617 deactivates prometheus_integration5618 after_save5619 when no change to enabled status5620 does not touch project integrations5621 when enabling5622 activates prometheus_integration5623 when disabling5624 activates prometheus_integration5625 #prometheus_client5626 cluster is nil5627 returns nil5628 cluster doesn't have kubeclient5629 returns nil5630 cluster has kubeclient5631 creates proxy prometheus_client5632 merges proxy_url, options and headers from kube client with prometheus_client options5633 when cluster is not reachable5634 behaves like exception caught for prometheus client5635 returns nil5636 when there is a socket error while contacting cluster5637 behaves like exception caught for prometheus client5638 returns nil5639 behaves like exception caught for prometheus client5640 returns nil5641 when the network is unreachable5642 behaves like exception caught for prometheus client5643 returns nil5644 #configured?5645 when a kubenetes client is present5646 is expected to be truthy5647 when it is disabled5648 is expected to be falsey5649 when the kubernetes URL is blocked5650 is expected to be falsey5651 when a kubenetes client is not present5652 is expected to be falsy5653Admin::SetFeatureFlagService5654 # order random5655 sequences of executions5656 if we enable_percentage_of_actors and then disable5657 leaves the flag off5658 if we enable and then enable_percentage_of_actors5659 reports an error5660 if we disable the flag first5661 sets the percentage of actors5662 #execute5663 when we cannot interpret the operation5664 is expected to be error5665 is expected to have attributes {:reason => :illegal_operation}5666 is expected to have attributes {:message => "Cannot set 'account_validation_email' (\"unknown\") to \"wibble\""}5667 when the key is absent5668 is expected to be error5669 is expected to have attributes {:reason => :illegal_operation}5670 is expected to have attributes {:message => "Cannot set 'account_validation_email' to \"wibble\""}5671 when the value to set cannot be parsed5672 is expected to be error5673 is expected to have attributes {:reason => :illegal_operation}5674 is expected to have attributes {:message => "Not a percentage"}5675 when value is "remove_opt_out"5676 without a target5677 returns an error5678 with a target5679 when there is currently no opt-out5680 returns an error5681 when there is currently an opt-out5682 removes the opt out5683 when value is "opt_out"5684 opts the user and group out5685 without a target5686 is expected to be error5687 is expected to have attributes {:reason => :illegal_operation}5688 when enabling the feature flag5689 enables the feature flag5690 logs the event5691 when the flag is default_enabled5692 leaves the flag enabled5693 when enabling for a user actor5694 enables the feature flag5695 when the flag has been opted out for user5696 records an error5697 when the flag is default_enabled5698 leaves the feature enabled5699 when user does not exist5700 does nothing5701 when enabling for a feature group5702 enables the feature flag5703 when enabling for a project5704 enables the feature flag5705 when enabling for a group5706 enables the feature flag5707 when group does not exist5708 returns an error5709 when enabling for a user namespace5710 enables the feature flag5711 when namespace does not exist5712 returns an error5713 when enabling for a group namespace5714 enables the feature flag5715 when enabling for a repository5716 enables the feature flag5717 when enabling for a user actor and a feature group5718 enables the feature flag5719 when enabling given a percentage of time5720 enables the feature flag5721 when value is a float5722 enables the feature flag5723 with a target5724 is expected to be error5725 is expected to have attributes {:reason => :illegal_operation}5726 when enabling given a percentage of actors5727 enables the feature flag5728 when value is a float5729 enables the feature flag5730 with a target5731 is expected to be error5732 is expected to have attributes {:reason => :illegal_operation}5733 when disabling the feature flag5734 disables the feature flag5735 logs the event5736 when disabling for a user actor5737 disables the feature flag5738 when user does not exist5739 returns an error5740 when disabling for a feature group5741 disables the feature flag5742 when disabling for a project5743 disables the feature flag5744 when disabling for a group5745 disables the feature flag5746 when group does not exist5747 returns an error5748 when disabling for a user namespace5749 disables the feature flag5750 when namespace does not exist5751 returns an error5752 when disabling for a group namespace5753 disables the feature flag5754 when disabling for a user actor and a feature group5755 disables the feature flag5756Projects::HashedStorage::MigrateRepositoryService5757 #execute5758 works even when project validation fails5759 repository lock5760 tries to lock the repository5761 fails when a git operation is in progress5762 when repository doesnt exist on disk5763 skips the disk change but increase the version5764 when succeeds5765 renames project, wiki and design repositories5766 updates project to be hashed and not read-only5767 move operation is called for all repositories5768 writes project full path to gitaly5769 when exception happens5770 handles OpenSSL::Cipher::CipherError5771 ensures rollback when OpenSSL::Cipher::CipherError5772 handles Gitlab::Git::CommandError5773 ensures rollback when Gitlab::Git::CommandError5774 when one move fails5775 rollsback repositories to original name5776 when rollback fails5777 does not try to move nil repository over existing5778Mutations::MergeRequests::SetAssignees5779 when the user does not have permissions5780 #resolve5781 behaves like permission level for merge request mutation is correctly verified5782 when the user is not a project member5783 behaves like when the user does not have access to the resource5784 raises an error5785 even if assigned to the merge request5786 does not modify merge request5787 even if reviewer of the merge request5788 raises an error5789 even if author of the merge request5790 raises an error5791 when the user is a project member5792 with guest role5793 behaves like when the user does not have access to the resource5794 raises an error5795 even if assigned to the merge request5796 does not modify merge request5797 even if reviewer of the merge request5798 raises an error5799 even if author of the merge request5800 raises an error5801 with reporter role5802 behaves like when the user does not have access to the resource5803 raises an error5804 even if assigned to the merge request5805 does not modify merge request5806 even if reviewer of the merge request5807 raises an error5808 even if author of the merge request5809 raises an error5810 behaves like an assignable resource5811 #resolve5812 raises an error if the resource is not accessible to the user5813 does not change assignees if the resource is not accessible to the assignees5814 returns an operational error if the resource is not accessible to the assignees5815 when the user can update the resource5816 replaces the assignee5817 returns errors when resource could not be updated5818 when passing an empty assignee list5819 removes all assignees5820 when passing "append" as true5821 is a NO-OP in FOSS5822 when passing "remove" as true5823 removes named assignee5824 does not remove unnamed assignee5825Gitlab::Ci::Config::Entry::Bridge5826 behaves like with inheritable CI config5827 does prepend an Inheritable mixin5828 all inheritable entries are covered5829 all entries do have inherit flag5830 for non-inheritable entries5831 entry_key: :stage5832 inheritable_class does not define entry5833 entry_key: :only5834 inheritable_class does not define entry5835 entry_key: :except5836 inheritable_class does not define entry5837 entry_key: :rules5838 inheritable_class does not define entry5839 entry_key: :variables5840 inheritable_class does not define entry5841 entry_key: :inherit5842 inheritable_class does not define entry5843 entry_key: :trigger5844 inheritable_class does not define entry5845 entry_key: :needs5846 inheritable_class does not define entry5847 entry_key: :parallel5848 inheritable_class does not define entry5849 .matching?5850 when config is not a hash5851 is expected to be falsey5852 when config is a regular job5853 is expected to be falsey5854 with rules5855 is expected to be falsey5856 when config is a bridge job5857 is expected to be truthy5858 with rules5859 is expected to be truthy5860 when config is a hidden job5861 is expected to be falsey5862 .new5863 when trigger config is a non-empty string5864 #valid?5865 is expected to be valid5866 #value5867 is returns a bridge job configuration5868 when bridge trigger is a hash5869 #valid?5870 is expected to be valid5871 #value5872 is returns a bridge job configuration hash5873 when bridge configuration contains trigger, when, extends, stage, only, except, and variables5874 is expected to be valid5875 when bridge configuration uses rules5876 is expected to be valid5877 when bridge configuration uses rules with job:when5878 is expected to be valid5879 when bridge configuration uses rules with only5880 is expected not to be valid5881 when bridge configuration uses rules with except5882 is expected not to be valid5883 when bridge has only job needs5884 #valid?5885 is expected not to be valid5886 when bridge config contains unknown keys5887 #valid?5888 is expected not to be valid5889 #errors5890 is returns an error about unknown config key5891 when bridge config contains build-specific attributes5892 #valid?5893 is expected not to be valid5894 #errors5895 returns an error message5896 when bridge config contains exit_codes5897 #valid?5898 is expected not to be valid5899 #errors5900 returns an error message5901 when bridge config contains parallel5902 when parallel config is a number5903 #valid?5904 is expected not to be valid5905 #errors5906 returns an error message5907 when parallel config is a matrix5908 #valid?5909 is expected to be valid5910 #value5911 is returns a bridge job configuration5912 when bridge trigger contains forward5913 #valid?5914 is expected to be valid5915 #value5916 returns a bridge job configuration hash5917 #manual_action?5918 when job is a manual action5919 is expected to be manual action5920 when job is not a manual action5921 is expected not to be manual action5922 #ignored?5923 when job is a manual action5924 when it is not specified if job is allowed to fail5925 is expected to be ignored5926 when job is allowed to fail5927 is expected to be ignored5928 when job is not allowed to fail5929 is expected not to be ignored5930 when job is not a manual action5931 when it is not specified if job is allowed to fail5932 is expected not to be ignored5933 when job is allowed to fail5934 is expected to be ignored5935 when job is not allowed to fail5936 is expected not to be ignored5937 #when5938 when bridge is a manual action5939 is expected to eq "manual"5940 when bridge has no `when` attribute5941 is expected to be nil5942 when the `when` keyword is not a string5943 when it is an array5944 returns error5945 when it is a boolean5946 returns error5947Gitlab::Verify::Uploads5948 behaves like Gitlab::Verify::BatchVerifier subclass5949 batching5950 iterates through objects in batches5951 allows the starting ID to be specified5952 allows the finishing ID to be specified5953 #run_batches5954 passes uploads with the correct file5955 fails uploads with a missing file5956 fails uploads with a mismatched checksum5957 fails uploads with a missing precalculated checksum5958 with remote files5959 returned hash object5960 passes uploads in object storage that exist5961 fails uploads in object storage that do not exist5962 performance5963 avoids N+1 queries5964DeploymentMetrics5965 #has_metrics?5966 when deployment is failed5967 is expected to be falsy5968 when deployment is success5969 without a monitoring integration5970 is expected to be falsy5971 with a Prometheus integration5972 is expected to be truthy5973 with a Prometheus integration that cannot query5974 is expected to be falsy5975 with a Prometheus integration that is not configured5976 is expected to be falsy5977 with a cluster Prometheus5978 is expected to be truthy5979 #metrics5980 metrics are disabled5981 is expected to eq {}5982 metrics are enabled5983 is expected to eq {:deployment_time=>1687790886, :last_update=>42, :metrics=>{}, :success=>true}5984 #additional_metrics5985 metrics are disabled5986 is expected to eq {}5987 metrics are enabled5988 is expected to eq {:deployment_time=>1687790890, :last_update=>42, :metrics=>{}, :success=>true}5989Snippets::UpdateStatisticsService5990 #execute5991 with PersonalSnippet5992 behaves like updates statistics5993 returns a successful response5994 expires statistics cache5995 schedules a namespace storage statistics update5996 when snippet statistics does not exist5997 creates snippet statistics5998 when snippet statistics exists5999 updates snippet statistics6000 when snippet does not have a repository6001 returns an error response6002 with ProjectSnippet6003 updates projects statistics "snippets_size"6004 behaves like updates statistics6005 returns a successful response6006 expires statistics cache6007 schedules a namespace storage statistics update6008 when snippet statistics does not exist6009 creates snippet statistics6010 when snippet statistics exists6011 updates snippet statistics6012 when snippet does not have a repository6013 returns an error response6014ProtectableDropdown6015 initialize6016 raises ArgumentError for invalid ref type6017 #protectable_ref_names6018 for branches6019 is expected to include "feature"6020 is expected not to include "master"6021 behaves like protectable_ref_names6022 when project repository is not empty6023 includes elements matching a protected ref wildcard6024 when project repository is empty6025 returns empty list6026 for tags6027 is expected to include "v1.0.0"6028 is expected not to include "v1.1.0"6029 behaves like protectable_ref_names6030 when project repository is not empty6031 includes elements matching a protected ref wildcard6032 when project repository is empty6033 returns empty list6034 #hash6035 for branches6036 is expected to include {:id => "feature", :text => "feature", :title => "feature"}6037 for tags6038 is expected to include {:id => "v1.0.0", :text => "v1.0.0", :title => "v1.0.0"}6039bin/audit-event-type6040 # order random6041 AuditEventTypeOptionParser6042 .parse6043 raises an error when name of the audit event type is missing6044 parses -h6045 param: :name, argv: ["foo"], result: "foo"6046 is expected to eq "foo"6047 param: :amend, argv: ["foo", "--amend"], result: true6048 is expected to eq true6049 param: :force, argv: ["foo", "-f"], result: true6050 is expected to eq true6051 param: :force, argv: ["foo", "--force"], result: true6052 is expected to eq true6053 param: :description, argv: ["foo", "-d", "desc"], result: "desc"6054 is expected to eq "desc"6055 param: :description, argv: ["foo", "--description", "desc"], result: "desc"6056 is expected to eq "desc"6057 param: :feature_category, argv: ["foo", "-c", "audit_events"], result: "audit_events"6058 is expected to eq "audit_events"6059 param: :feature_category, argv: ["foo", "--feature-category", "audit_events"], result: "audit_events"6060 is expected to eq "audit_events"6061 param: :milestone, argv: ["foo", "-M", "15.6"], result: "15.6"6062 is expected to eq "15.6"6063 param: :milestone, argv: ["foo", "--milestone", "15.6"], result: "15.6"6064 is expected to eq "15.6"6065 param: :saved_to_database, argv: ["foo", "-s"], result: true6066 is expected to eq true6067 param: :saved_to_database, argv: ["foo", "--saved-to-database"], result: true6068 is expected to eq true6069 param: :saved_to_database, argv: ["foo", "--no-saved-to-database"], result: false6070 is expected to eq false6071 param: :streamed, argv: ["foo", "-t"], result: true6072 is expected to eq true6073 param: :streamed, argv: ["foo", "--streamed"], result: true6074 is expected to eq true6075 param: :streamed, argv: ["foo", "--no-streamed"], result: false6076 is expected to eq false6077 param: :dry_run, argv: ["foo", "-n"], result: true6078 is expected to eq true6079 param: :dry_run, argv: ["foo", "--dry-run"], result: true6080 is expected to eq true6081 param: :ee, argv: ["foo", "-e"], result: true6082 is expected to eq true6083 param: :ee, argv: ["foo", "--ee"], result: true6084 is expected to eq true6085 param: :jh, argv: ["foo", "-j"], result: true6086 is expected to eq true6087 param: :jh, argv: ["foo", "--jh"], result: true6088 is expected to eq true6089 param: :introduced_by_mr, argv: ["foo", "-m", "https://url"], result: "https://url"6090 is expected to eq "https://url"6091 param: :introduced_by_mr, argv: ["foo", "--introduced-by-mr", "https://url"], result: "https://url"6092 is expected to eq "https://url"6093 param: :introduced_by_issue, argv: ["foo", "-i", "https://url"], result: "https://url"6094 is expected to eq "https://url"6095 param: :introduced_by_issue, argv: ["foo", "--introduced-by-issue", "https://url"], result: "https://url"6096 is expected to eq "https://url"6097 .read_description6098 reads description from stdin6099 when description is empty6100 shows error message and retries6101 .read_feature_category6102 reads feature_category from stdin6103 when feature category is empty6104 shows error message and retries6105 .read_saved_to_database6106 reads saved_to_database from stdin6107 when saved_to_database is invalid6108 shows error message and retries6109 .read_streamed6110 reads streamed from stdin6111 when streamed is invalid6112 shows error message and retries6113 .read_introduced_by_mr6114 reads introduced_by_mr from stdin6115 when URL is empty6116 does not raise an error6117 when URL is invalid6118 shows error message and retries6119 .read_introduced_by_issue6120 reads type from stdin6121 when URL is invalid6122 shows error message and retries6123 .read_milestone6124 returns the correct milestone from the VERSION file6125 AuditEventTypeCreator6126 properly creates an audit event type6127 when running on master6128 requires feature branch6129 with invalid audit event type names6130 argv: [".invalid.audit.type"], ex: /Provide a name for the audit event type that is/6131 is expected to raise /Provide a name for the audit event type that is/6132 argv: ["existing_audit_event_type"], ex: /already exists!/6133 is expected to raise /already exists!/6134ContainerRegistry::Migration::GuardWorker6135 #perform6136 on gitlab.com6137 with no stale migrations6138 will not update any migration state6139 behaves like an idempotent worker6140 is labeled as idempotent6141 performs multiple times sequentially without raising an exception6142 with pre_importing stale migrations6143 will abort the migration6144 the client returns pre_import_in_progress6145 not long running6146 behaves like not aborting the stale migration6147 will not abort the migration6148 long running6149 with registry_migration_guard_dynamic_pre_import_timeout enabled6150 below the dynamic threshold6151 behaves like not aborting the stale migration6152 will not abort the migration6153 above the dynamic threshold6154 behaves like handling long running migrations6155 migration is canceled6156 when the retry limit has been reached6157 will not abort the migration6158 when the retry limit has not been reached6159 behaves like aborting the migration6160 will abort the migration6161 migration cancelation fails with an error6162 behaves like aborting the migration6163 will abort the migration6164 migration receives bad request with a new status6165 behaves like aborting the migration6166 will abort the migration6167 with registry_migration_guard_dynamic_pre_import_timeout disabled6168 behaves like handling long running migrations6169 migration is canceled6170 when the retry limit has been reached6171 will not abort the migration6172 when the retry limit has not been reached6173 behaves like aborting the migration6174 will abort the migration6175 migration cancelation fails with an error6176 behaves like aborting the migration6177 will abort the migration6178 migration receives bad request with a new status6179 behaves like aborting the migration6180 will abort the migration6181 with pre_import_done stale migrations6182 will abort the migration6183 with importing stale migrations6184 will abort the migration6185 the client returns import_in_progress6186 behaves like handling long running migrations6187 migration is canceled6188 when the retry limit has been reached6189 will not abort the migration6190 when the retry limit has not been reached6191 behaves like aborting the migration6192 will abort the migration6193 migration cancelation fails with an error6194 behaves like aborting the migration6195 will abort the migration6196 migration receives bad request with a new status6197 behaves like aborting the migration6198 will abort the migration6199 not on gitlab.com6200 is a no op6201 worker attributes6202 has deduplication set6203Mutations::Releases::Delete6204 #resolve6205 when the current user has access to create releases6206 deletes the release6207 returns the deleted release6208 does not remove the Git tag associated with the deleted release6209 returns no errors6210 with protected tag6211 when user has access to the protected tag6212 does not have errors6213 when user does not have access to the protected tag6214 has an access error6215 validation6216 when the release does not exist6217 returns the release as nil6218 returns an errors-at-data message6219 when the project does not exist6220 behaves like unauthorized or not found error6221 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error6222 when the current user doesn't have access to update releases6223 when the user is a reporter6224 behaves like unauthorized or not found error6225 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error6226 when the user is a non-project member6227 behaves like unauthorized or not found error6228 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error6229Crm::ContactsFinder6230 #execute6231 when customer relations feature is enabled for the group6232 when user does not have permissions to see contacts in the group6233 returns an empty array6234 when user is member of the root group6235 when feature flag is enabled6236 returns all group contacts6237 when user is member of the sub group6238 returns an empty array6239 when customer relations feature is disabled for the group6240 returns an empty array6241 with search informations6242 when search term is empty6243 returns all group contacts alphabetically ordered6244 when search term is not empty6245 searches for first name ignoring casing6246 searches for last name ignoring casing6247 searches for email6248 searches for description ignoring casing6249 fuzzy searches for email and last name6250 when searching for contacts state6251 returns only inactive contacts6252 returns only active contacts6253 when searching for contacts ids6254 returns the expected contacts6255 when sorting6256 returns the contacts sorted by email in ascending order6257 returns the contacts sorted by description in ascending order6258 returns the contacts sorted by organization in ascending order6259 .counts_by_state6260 returns correct counts6261Ci::ResourceGroup6262 behaves like cleanup by a loose foreign key6263 cleans up (delete or nullify) the model6264 validation6265 valids when key includes allowed character6266 invalids when key includes invalid character6267 #ensure_resource6268 creates one resource when resource group is created6269 #assign_resource_to6270 retains resource for the processable (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6271 when there are no free resources6272 fails to retain resource (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6273 when the build has already retained a resource6274 fails to retain resource (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6275 #release_resource_from6276 when the build has already retained a resource6277 releases resource from the build (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6278 when the build has already released a resource6279 fails to release resource (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6280 #upcoming_processables6281 when process mode is unordered6282 returns correct jobs in an indeterministic order6283 when process mode is oldest_first6284 returns correct jobs in a specific order6285 when process mode is newest_first6286 returns correct jobs in a specific order6287 when process mode is unknown6288 returns empty6289 #current_processable6290 when resource is retained by a build6291 is expected to eq #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-26 08:50:29.000000000 +0000", u...rocessed: false, scheduling_type: "stage", id: 638, stage_id: 373, partition_id: 100, tag_list: nil>6292 when resource is not retained by a build6293 is expected to be nil6294ContainerRegistry::Blob6295 is expected to respond to #repository6296 is expected to delegate #registry to the #repository object6297 is expected to delegate #client to the #repository object6298 #path6299 returns a valid path to the blob6300 #digest6301 return correct digest value6302 #type6303 returns a correct type6304 #revision6305 returns a correct blob SHA6306 #short_revision6307 return a short SHA6308 #delete6309 returns true when blob has been successfully deleted6310 #data6311 when locally stored6312 returns a correct blob data6313 when externally stored6314 for a valid address6315 returns correct data6316 for a relative address6317 returns correct data6318 for invalid file6319 raises an error6320RuboCop::Cop::RSpec::HaveGitlabHttpStatus6321 # order random6322 partially autocorrects invalid numeric status6323 bad: "have_http_status(-1)", good: "have_gitlab_http_status(-1)"6324 registers an offense6325 does not autocorrect6326 offenses and autocorrections6327 bad: "have_http_status(:ok)", good: "have_gitlab_http_status(:ok)"6328 registers an offense6329 does not register an offense6330 bad: "have_http_status(204)", good: "have_gitlab_http_status(:no_content)"6331 registers an offense6332 does not register an offense6333 bad: "have_gitlab_http_status(201)", good: "have_gitlab_http_status(:created)"6334 registers an offense6335 does not register an offense6336 bad: "have_http_status(var)", good: "have_gitlab_http_status(var)"6337 registers an offense6338 does not register an offense6339 bad: "have_http_status(:success)", good: "have_gitlab_http_status(:success)"6340 registers an offense6341 does not register an offense6342 bad: "have_http_status(:invalid)", good: "have_gitlab_http_status(:invalid)"6343 registers an offense6344 does not register an offense6345 bad: "expect(response.status).to eq(200)", good: "expect(response).to have_gitlab_http_status(:ok)"6346 registers an offense6347 does not register an offense6348 bad: "expect(response.status).not_to eq(200)", good: "expect(response).not_to have_gitlab_http_status(:ok)"6349 registers an offense6350 does not register an offense6351 ignore6352 code: "have_http_status"6353 does not register an offense6354 code: "have_http_status { }"6355 does not register an offense6356 code: "have_http_status(200, arg)"6357 does not register an offense6358 code: "have_gitlab_http_status"6359 does not register an offense6360 code: "have_gitlab_http_status { }"6361 does not register an offense6362 code: "have_gitlab_http_status(200, arg)"6363 does not register an offense6364 code: "expect(response.status).to eq(arg)"6365 does not register an offense6366 code: "expect(response.status).to eq(:ok)"6367 does not register an offense6368 code: "expect(response.status).to some_matcher(200)"6369 does not register an offense6370 code: "expect(response.status).not_to eq(arg)"6371 does not register an offense6372 code: "expect(response.status).not_to eq(:ok)"6373 does not register an offense6374 code: "expect(response.status).not_to some_matcher(200)"6375 does not register an offense6376 code: "expect(result.status).to eq(200)"6377 does not register an offense6378 code: "expect(result.status).not_to eq(200)"6379 does not register an offense6380 code: "response = some_assignment\nexpect(response.status).to eq(200)\n"6381 does not register an offense6382 code: "response = some_assignment\nexpect(response.status).not_to eq(200)\n"6383 does not register an offense6384Repositories::HousekeepingService6385 behaves like housekeeps repository6386 with a clean redis state6387 #execute6388 enqueues a sidekiq job6389 yields the block if given6390 resets counter after execution6391 runs the task specifically requested6392 when no lease can be obtained6393 does not enqueue a job6394 does not reset pushes_since_gc6395 does not yield6396 task type6397 goes through all three housekeeping tasks, executing only the highest task when there is overlap6398 #needed?6399 when the count is low enough6400 when the count is high enough6401 when incremental repack period is not multiple of gc period6402 #increment!6403 increments the pushes_since_gc counter6404 behaves like housekeeps repository6405 with a clean redis state6406 #execute6407 enqueues a sidekiq job6408 yields the block if given6409 resets counter after execution6410 runs the task specifically requested6411 when no lease can be obtained6412 does not enqueue a job6413 does not reset pushes_since_gc6414 does not yield6415 task type6416 goes through all three housekeeping tasks, executing only the highest task when there is overlap6417 #needed?6418 when the count is low enough6419 when the count is high enough6420 when incremental repack period is not multiple of gc period6421 #increment!6422 increments the pushes_since_gc counter6423Packages::Debian::GroupComponentFile6424 behaves like Debian Component File6425 relationships6426 with stubbed uploader6427 is expected to belong to component class_name => Packages::Debian::GroupComponent required: false inverse_of => files6428 with packages file_type6429 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture required: false inverse_of => files6430 with :sources file_type6431 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture inverse_of => files optional: true6432 validations6433 #component6434 is expected to validate that :component cannot be empty/falsy6435 #architecture6436 with packages file_type6437 is expected to validate that :architecture cannot be empty/falsy6438 with :sources file_type6439 is expected to validate that :architecture is empty/falsy6440 #file_type6441 is expected to validate that :file_type cannot be empty/falsy6442 is expected to allow :file_type to be ‹:packages›6443 #compression_type6444 is expected not to validate that :compression_type cannot be empty/falsy6445 is expected to allow :compression_type to be ‹nil›6446 is expected to allow :compression_type to be ‹:gz›6447 #file6448 the uploader api6449 is expected to respond to #store_dir6450 is expected to respond to #cache_dir6451 is expected to respond to #work_dir6452 #file_store6453 is expected to validate that :file_store cannot be empty/falsy6454 #file_sha2566455 is expected to validate that :file_sha256 cannot be empty/falsy6456 scopes6457 .with_container6458 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-06-26 14:49:23.277078954 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6459 .with_codename_or_suite6460 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-06-26 14:49:23.277078954 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6461 .with_component_name6462 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 3, created_at: "2023-06-26 14:49:23.251833356 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6463 .with_file_type6464 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2023-06-26 14:49:23.286372000 +0000", upda..._type: nil, file_store: 1, file: "Sources", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6465 .with_architecture6466 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-06-26 14:49:23.243076467 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6467 .with_architecture_name6468 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-06-26 14:49:23.243076467 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6469 .with_compression_type6470 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 4, created_at: "2023-06-26 14:49:23.259999035 +0000", upda...ype: "xz", file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6471 .with_file_sha2566472 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 5, created_at: "2023-06-26 14:49:23.268668684 +0000", upda...pe: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "other_sha256">6473 .updated_before6474 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 9, created_at: "2023-06-26 14:49:24.418597754 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::GroupComponentFile id: 10, created_at: "2023-06-26 14:49:24.432603283 +0000", upd...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6475 callbacks6476 updates metadata columns6477 #relative_path6478 with a Packages file_type6479 is expected to eq "voluptas1/binary-qui1/Packages"6480 with a Source file_type6481 is expected to eq "voluptas1/source/Sources"6482 with a DI Packages file_type6483 is expected to eq "voluptas1/debian-installer/binary-qui1/Packages"6484 with an xz compression_type6485 is expected to eq "voluptas1/binary-qui1/Packages.xz"6486 #empty?6487 with a non-empty component6488 is expected to be falsey6489 with an empty component6490 is expected to be truthy6491Packages::Npm::MetadataCache6492 # order random6493 is expected to be a kind of FileStoreMounter6494 is expected to be a kind of Packages::Downloadable6495 .find_or_build6496 when a metadata cache exists6497 finds an existing metadata cache6498 when a metadata cache not found6499 builds a new instance6500 relationships6501 is expected to belong to project required: false inverse_of => npm_metadata_caches6502 save callbacks6503 object_storage_key6504 when the record is created6505 sets object_storage_key6506 when using `update!`6507 sets object_storage_key6508 when the record is updated6509 does not update object_storage_key6510 validations6511 is expected to validate that :file cannot be empty/falsy6512 is expected to validate that :project cannot be empty/falsy6513 is expected to validate that :size cannot be empty/falsy6514 #package_name6515 is expected to validate that :package_name cannot be empty/falsy6516 uniqueness6517 ensures the package name is unique within a given project6518 allows duplicate file names in different projects6519 format6520 is expected to allow :package_name to be ‹"my.app-11.07.2018"›6521 is expected to allow :package_name to be ‹"@group-1/package"›6522 is expected to allow :package_name to be ‹"@any-scope/package"›6523 is expected to allow :package_name to be ‹"unscoped-package"›6524 is expected not to allow :package_name to be ‹"my(dom$$$ain)com.my-app"›6525 is expected not to allow :package_name to be ‹"@inv@lid-scope/package"›6526 is expected not to allow :package_name to be ‹"@scope/../../package"›6527 is expected not to allow :package_name to be ‹"@scope%2e%2e%fpackage"›6528 is expected not to allow :package_name to be ‹"@scope/sub/package"›6529 readonly attributes6530 object_storage_key6531 sets object_storage_key6532 when the record is persisted6533 does not re-set object_storage_key6534Ci::BuildTraceChunks::Fog6535 #available?6536 when object storage is enabled6537 is expected to be truthy6538 when object storage is disabled6539 is expected to be falsy6540 #data6541 when data exists6542 returns the data6543 when data does not exist6544 returns nil6545 #set_data6546 when data exists6547 overwrites data6548 when data does not exist6549 sets new data6550 when S3 server side encryption is enabled6551 creates a file with attributes6552 #append_data6553 appends ASCII data6554 appends UTF-8 data6555 when initial data is UTF-86556 appends ASCII data6557 #delete_data6558 when data exists6559 deletes data6560 when data does not exist6561 does nothing6562 #size6563 when data exists6564 returns data bytesize correctly6565 when data does not exist6566 returns zero6567 #keys6568 returns keys6569 #delete_keys6570 deletes multiple data6571BulkImports::Projects::Transformers::ProjectAttributesTransformer6572 #transform6573 uniquifies project name6574 adds path as normalized name6575 adds import type6576 namespace_id6577 adds namespace_id6578 when data has extra keys6579 returns a fixed number of keys6580 when destination_slug has invalid characters6581 parameterizes the path6582 when destination namespace already has a group or project with the same name6583 makes the name unique by appending a counter6584 when destination namespace already has a project with the same path6585 makes the path unique by appending a counter6586 visibility level6587 when public6588 when destination is a public group6589 sets visibility level to public6590 when destination is a internal group6591 sets visibility level to internal6592 when destination is a private group6593 sets visibility level to private6594 when internal6595 when destination is a public group6596 sets visibility level to internal6597 when destination is a internal group6598 sets visibility level to internal6599 when destination is a private group6600 sets visibility level to private6601 when private6602 when destination is a public group6603 sets visibility level to private6604 when destination is a internal group6605 sets visibility level to private6606 when destination is a private group6607 sets visibility level to private6608Gitlab::LegacyGithubImport::ProjectCreator6609 #execute6610 creates a project6611 handle GitHub credentials6612 when GitHub project is private6613 sets project visibility to private6614 when GitHub project is public6615 sets project visibility to namespace visibility level6616 when importing into a user namespace6617 sets project visibility to user namespace visibility level6618 when visibility level is restricted6619 when GitHub project is private6620 sets project visibility to the default project visibility6621 when GitHub project is public6622 sets project visibility to the default project visibility6623 when GitHub project has wiki6624 does not create the wiki repository6625 when GitHub project does not have wiki6626 creates the wiki repository6627Gitlab::Redis::Chat6628 # order random6629 #fetch_config6630 when redis.yml exists6631 when the fallback has a redis.yml entry6632 is expected to eq {"fallback redis.yml"=>123}6633 and an instance config file exists6634 is expected to eq {"instance specific file"=>456}6635 and the instance has a redis.yml entry6636 is expected to eq {"instance redis.yml"=>789}6637 when no redis config file exsits6638 returns nil6639 when resque.yml exists6640 returns the config from resque.yml6641 behaves like redis_shared_examples6642 .config_file_name6643 when there is no config file anywhere6644 is expected to be nil6645 .store6646 with old format6647 behaves like redis store6648 instantiates Redis::Store6649 with the namespace6650 uses specified namespace6651 with new format6652 behaves like redis store6653 instantiates Redis::Store6654 with the namespace6655 uses specified namespace6656 .params6657 withstands mutation6658 when url contains unix socket reference6659 with old format6660 returns path key instead6661 with new format6662 returns path key instead6663 when url is host based6664 with old format6665 returns hash with host, port, db, and password6666 with new format6667 rails_env: "development", host: "development-host"6668 returns hash with host, port, db, and password6669 rails_env: "test", host: "test-host"6670 returns hash with host, port, db, and password6671 rails_env: "production", host: "production-host"6672 returns hash with host, port, db, and password6673 with redis cluster format6674 rails_env: "development", host: "development-master"6675 returns hash with cluster and password6676 rails_env: "test", host: "test-master"6677 returns hash with cluster and password6678 rails_env: "production", host: "production-master"6679 returns hash with cluster and password6680 .url6681 withstands mutation6682 when yml file with env variable6683 reads redis url from env variable6684 .version6685 returns a version6686 .with6687 when running on single-threaded runtime6688 instantiates a connection pool with size 56689 when running on multi-threaded runtime6690 instantiates a connection pool with a size based on the concurrency of the worker6691 when there is no config at all6692 can run an empty block6693 #db6694 with old format6695 returns the correct db6696 with new format6697 returns the correct db6698 with cluster-mode6699 returns the correct db6700 #sentinels6701 when sentinels are defined6702 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6703 returns an array of hashes with host and port keys6704 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6705 returns an array of hashes with host and port keys6706 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6707 returns an array of hashes with host and port keys6708 when sentinels are not defined6709 returns nil6710 when cluster is defined6711 returns nil6712 #sentinels?6713 when sentinels are defined6714 returns true6715 when sentinels are not defined6716 is expected to eq nil6717 when cluster is defined6718 returns false6719 #raw_config_hash6720 returns old-style single url config in a hash6721 returns cluster config without url key in a hash6722 #fetch_config6723 raises an exception when the config file contains invalid yaml6724 when redis.yml exists6725 uses config/redis.yml6726 when no config file exsits6727 returns nil6728 when resque.yml exists6729 returns the config from resque.yml6730ServiceResponse6731 .success6732 creates a successful response without a message6733 creates a successful response with a message6734 creates a successful response with payload6735 creates a successful response with default HTTP status6736 creates a successful response with custom HTTP status6737 .error6738 creates an error response without HTTP status6739 creates an error response with HTTP status6740 creates an error response with payload6741 creates an error response with a reason6742 #success?6743 returns true for a successful response6744 returns false for a failed response6745 #error?6746 returns false for a successful response6747 returns true for a failed response6748 #errors6749 returns an empty array for a successful response6750 returns an array with a correct message for an error response6751 #track_and_raise_exception6752 when successful6753 returns self6754 when an error6755 tracks and raises6756 allows specification of error class6757 allows extra data for tracking6758 #track_exception6759 when successful6760 returns self6761 when an error6762 tracks6763 allows specification of error class6764 allows extra data for tracking6765 #log_and_raise_exception6766 when successful6767 returns self6768 when an error6769 logs6770 allows specification of error class6771 allows extra data for tracking6772UserRecentEventsFinder6773 #execute6774 does not include the events if the user cannot read cross project6775 when profile is public6776 returns all the events6777 when profile is private6778 returns no event6779 events from multiple users6780 includes events from all users6781 does not include events from users with private profile6782 selected events6783 event_filter: #<EventFilter:0x00007d89263669d8 @filter="push">, ordered_expected_events: lazy { [push_event1, push_event2] }6784 only returns selected events from all users (id DESC)6785 event_filter: #<EventFilter:0x00007d892635aa20 @filter="merged">, ordered_expected_events: lazy { [merge_event1, merge_event2] }6786 only returns selected events from all users (id DESC)6787 event_filter: #<EventFilter:0x00007d892634fd78 @filter="comments">, ordered_expected_events: lazy { [comment_event1, comment_event2, comment_event3] }6788 only returns selected events from all users (id DESC)6789 event_filter: #<EventFilter:0x00007d892634d9b0 @filter="team">, ordered_expected_events: lazy { [private_event, internal_event, public_event, private_event_second_user, internal_event_second_user, public_event_second_user] }6790 only returns selected events from all users (id DESC)6791 event_filter: #<EventFilter:0x00007d892633b008 @filter="issue">, ordered_expected_events: lazy { [issue_event1, issue_event2, issue_event3] }6792 only returns selected events from all users (id DESC)6793 event_filter: #<EventFilter:0x00007d892632b950 @filter="wiki">, ordered_expected_events: lazy { [wiki_event1, wiki_event2] }6794 only returns selected events from all users (id DESC)6795 event_filter: #<EventFilter:0x00007d8926328548 @filter="designs">, ordered_expected_events: lazy { [design_event1, design_event2] }6796 only returns selected events from all users (id DESC)6797 with pagination params6798 limit: nil, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user, private_event_second_user, public_event, internal_event, private_event] }6799 returns paginated events sorted by id (DESC)6800 limit: 2, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user] }6801 returns paginated events sorted by id (DESC)6802 limit: nil, offset: 4, ordered_expected_events: lazy { [internal_event, private_event] }6803 returns paginated events sorted by id (DESC)6804 limit: 2, offset: 2, ordered_expected_events: lazy { [private_event_second_user, public_event] }6805 returns paginated events sorted by id (DESC)6806 filter activity events6807 includes all events6808 only includes push events6809 only includes merge events6810 only includes issue events6811 only includes comments events6812 only includes wiki events6813 only includes design events6814 only includes team events6815 when unknown filter is given6816 includes returns all events6817 issue activity events6818 includes all issue related events6819 limits6820 when limit is not set6821 returns events limited to DEFAULT_LIMIT6822 when limit is set6823 returns events limited to specified limit6824 when limit is set to a number that exceeds maximum limit6825 returns events limited to MAX_LIMIT6826Banzai::Filter::EmojiFilter6827 replaces supported name emoji6828 replaces supported unicode emoji6829 ignores unicode versions of trademark, copyright, and registered trademark6830 replaces name versions of trademark, copyright, and registered trademark6831 correctly encodes the URL6832 correctly encodes unicode to the URL6833 matches at the start of a string6834 unicode matches at the start of a string6835 matches at the end of a string6836 unicode matches at the end of a string6837 unicode matches with adjacent text6838 does not match multiple emoji in a row6839 unicode matches multiple emoji in a row6840 mixed matches multiple emoji in a row6841 has a data-name attribute6842 has a data-unicode-version attribute6843 unicode keeps whitespace intact6844 behaves like emoji filter6845 keeps whitespace intact6846 does not match emoji in a string6847 ignores non existent/unsupported emoji6848 matches with adjacent text6849 does not match emoji in a pre tag6850 does not match emoji in code tag6851 does not match emoji in tt tag6852Ci::StuckBuilds::DropPendingService6853 when job is pending6854 when job is not stuck6855 when job was updated_at more than 1 day ago6856 when created_at is the same as updated_at6857 behaves like job is dropped with failure reason6858 changes status6859 when job has data integrity problem6860 drops the job and logs the reason6861 when created_at is before updated_at6862 behaves like job is dropped with failure reason6863 changes status6864 when job has data integrity problem6865 drops the job and logs the reason6866 when job was updated less than 1 day ago6867 when created_at is the same as updated_at6868 behaves like job is unchanged6869 does not change status6870 when created_at is before updated_at6871 behaves like job is unchanged6872 does not change status6873 when job was updated more than 1 hour ago6874 when created_at is the same as updated_at6875 behaves like job is unchanged6876 does not change status6877 when created_at is before updated_at6878 behaves like job is unchanged6879 does not change status6880 when job is stuck6881 when job was updated_at more than 1 hour ago6882 when created_at is the same as updated_at6883 behaves like job is dropped with failure reason6884 changes status6885 when job has data integrity problem6886 drops the job and logs the reason6887 when created_at is before updated_at6888 behaves like job is dropped with failure reason6889 changes status6890 when job has data integrity problem6891 drops the job and logs the reason6892 when job was updated in less than 1 hour ago6893 when created_at is the same as updated_at6894 behaves like job is unchanged6895 does not change status6896 when created_at is before updated_at6897 behaves like job is unchanged6898 does not change status6899 when job is running6900 when job was updated_at more than an hour ago6901 behaves like job is unchanged6902 does not change status6903 when job was updated in less than 1 hour ago6904 behaves like job is unchanged6905 does not change status6906 when job is success6907 when created_at is the same as updated_at6908 behaves like job is unchanged6909 does not change status6910 when created_at is before updated_at6911 behaves like job is unchanged6912 does not change status6913 when job is skipped6914 when created_at is the same as updated_at6915 behaves like job is unchanged6916 does not change status6917 when created_at is before updated_at6918 behaves like job is unchanged6919 does not change status6920 when job is failed6921 when created_at is the same as updated_at6922 behaves like job is unchanged6923 does not change status6924 when created_at is before updated_at6925 behaves like job is unchanged6926 does not change status6927 when job is canceled6928 when created_at is the same as updated_at6929 behaves like job is unchanged6930 does not change status6931 when created_at is before updated_at6932 behaves like job is unchanged6933 does not change status6934 for deleted project6935 behaves like job is unchanged6936 does not change status6937Resolvers::Clusters::AgentTokensResolver6938 is expected to eq Types::Clusters::AgentTokenType6939 is expected to be truthy6940 is expected to be empty6941 #resolve6942 returns active tokens associated with the agent, ordered by last_used_at6943 user does not have permission6944 is expected to be empty6945Gitlab::Ci::Pipeline::Chain::Populate6946 when pipeline doesn not have seeds block6947 does not persist the pipeline6948 does not break the chain6949 populates pipeline with stages6950 correctly assigns user6951 has pipeline iid6952 when pipeline is empty6953 breaks the chain6954 appends an error about missing stages6955 wastes pipeline iid6956 increments the error metric6957 pipeline protect6958 when ref is protected6959 does not protect the pipeline6960 when ref is not protected6961 does not protect the pipeline6962 when pipeline has validation errors6963 breaks the chain6964 appends validation error6965 wastes pipeline iid6966 when there is a seed blocks present6967 when seeds block builds some resources6968 populates pipeline with resources described in the seeds block6969 has pipeline iid6970 when seeds block tries to persist some resources6971 raises error6972 when pipeline gets persisted during the process6973 raises error6974 when variables policy is specified6975 when using only/except build policies6976 behaves like a correct pipeline6977 populates pipeline according to used policies6978 when variables expression is specified6979 when pipeline iid is the subject6980 behaves like a correct pipeline6981 populates pipeline according to used policies6982Gitlab::DataBuilder::Deployment6983 .build6984 returns the object kind for a deployment6985 returns data for the given build6986 does not include the deployable URL when there is no deployable6987 when commit does not exist in the repository6988 returns nil for commit_url6989 returns nil for commit_title6990 when deployed_by is nil6991 returns nil for user6992 returns nil for user_url6993Gitlab::GithubImport::Representation::Issue6994 .from_api_response6995 does not set the user if the response did not include a user6996 behaves like an Issue6997 returns an instance of Issue6998 the returned Issue6999 includes the issue number7000 includes the issue title7001 includes the issue description7002 includes the milestone number7003 includes the issue state7004 includes the issue assignees7005 includes the label names7006 includes the author details7007 includes the created timestamp7008 includes the updated timestamp7009 includes the work_item_type_id7010 is not a pull request7011 .from_json_hash7012 does not convert the author if it was not specified7013 behaves like an Issue7014 returns an instance of Issue7015 the returned Issue7016 includes the issue number7017 includes the issue title7018 includes the issue description7019 includes the milestone number7020 includes the issue state7021 includes the issue assignees7022 includes the label names7023 includes the author details7024 includes the created timestamp7025 includes the updated timestamp7026 includes the work_item_type_id7027 is not a pull request7028 #labels?7029 returns true when the issue has labels assigned7030 returns false when the issue has no labels assigned7031 #pull_request?7032 returns false for an issue7033 returns true for a pull request7034 #truncated_title7035 truncates the title to 255 characters7036 does not truncate the title if it is shorter than 255 characters7037 #github_identifiers7038 returns a hash with needed identifiers7039PrometheusAlertEvent7040 associations7041 is expected to belong to prometheus_alert required: true7042 validations7043 is expected to be valid7044 is expected to validate that :prometheus_alert cannot be empty/falsy, producing a custom validation error on failure7045 is expected to validate that :payload_key is case-sensitively unique within the scope of :prometheus_alert_id7046 is expected to validate that :started_at cannot be empty/falsy7047 payload_key & ended_at7048 absent if firing?7049 is expected to validate that :payload_key cannot be empty/falsy7050 is expected not to validate that :ended_at cannot be empty/falsy7051 present if resolved?7052 is expected not to validate that :payload_key cannot be empty/falsy7053 is expected to validate that :ended_at cannot be empty/falsy7054 #title7055 delegates to alert7056 prometheus_metric_id7057 delegates to alert7058 transaction7059 fire7060 when status is none7061 fires an event7062 when firing7063 cannot fire again7064 resolve7065 when firing7066 resolves an event7067 when resolved7068 cannot resolve again7069Security::CiConfiguration::DependencyScanningCreateService7070 # order random7071 #execute7072 user does not belong to project7073 returns an error status7074 does not track a snowplow event7075 user belongs to project7076 does track the snowplow event7077 raises exception if the user does not have permission to create a new branch7078 when exception is raised7079 when branch was created7080 tries to rm branch7081 when branch was not created7082 does not try to rm branch7083 with no parameters7084 returns the path to create a new merge request7085 when the project has a non-default ci config file7086 does track the snowplow event7087 when existing ci config contains anchors/aliases7088 fails with error7089 when parsing existing ci config gives a Psych error7090 fails with error7091 when parsing existing ci config gives any other error7092 is successful7093 when the project is empty7094 returns an error7095Gitlab::Middleware::HandleMalformedStrings7096 does not modify the env7097 in the URL7098 rejects null bytes7099 rejects escaped null bytes7100 rejects malformed strings7101 rejects escaped malformed strings7102 in authorization headers7103 does not reject correct non-basic-auth tokens7104 does not reject correct encoded password with special characters7105 behaves like rejecting invalid input7106 rejects problematic input in the password7107 rejects problematic input in the username7108 rejects problematic input in non-basic-auth tokens7109 behaves like rejecting invalid input7110 rejects problematic input in the password7111 rejects problematic input in the username7112 rejects problematic input in non-basic-auth tokens7113 behaves like rejecting invalid input7114 rejects problematic input in the password7115 rejects problematic input in the username7116 rejects problematic input in non-basic-auth tokens7117 in params7118 with null byte7119 gives up and does not reject too deeply nested params7120 behaves like checks params7121 rejects bad params in a top level param7122 rejects bad params for hashes with strings7123 rejects bad params for arrays with strings7124 rejects bad params for arrays containing hashes with string values7125 with malformed strings7126 behaves like checks params7127 rejects bad params in a top level param7128 rejects bad params for hashes with strings7129 rejects bad params for arrays with strings7130 rejects bad params for arrays containing hashes with string values7131 without problematic input7132 does not error for strings7133 does not error with no params7134NavHelper7135 # order random7136 #header_links7137 when the user is logged in7138 has all the expected links by default7139 contains the impersonation link while impersonating7140 as admin7141 application setting :admin_mode is enabled7142 does not contain the admin mode link by default7143 with admin mode enabled7144 contains the admin mode link7145 application setting :admin_mode is disabled7146 does not contain the admin mode link7147 with admin mode enabled7148 has no effect on header links7149 when the user cannot read cross project7150 does not contain cross project elements when the user cannot read cross project7151 shows the search box when the user cannot read cross project and they are visiting a project7152 when the user is not logged in7153 returns only the sign in and search when the user is not logged in7154 #page_has_markdown?7155 path: "projects/merge_requests#show"7156 is expected to eq true7157 path: "projects/merge_requests/conflicts#show"7158 is expected to eq true7159 path: "issues#show"7160 is expected to eq true7161 path: "milestones#show"7162 is expected to eq true7163 path: "issues#designs"7164 is expected to eq true7165 .admin_monitoring_nav_links7166 is expected to all be a kind of String7167 #show_super_sidebar?7168 when nil is provided7169 is expected to eq false7170 when no user is signed-in7171 is expected to eq false7172 when user is signed-in7173 with current_user as a default7174 behaves like show_super_sidebar is supposed to7175 when user has not interacted with the new nav toggle yet7176 is expected to eq false7177 when the user was enrolled into the new nav via a special feature flag7178 is expected to eq true7179 when user has new nav disabled7180 is expected to eq false7181 when user has new nav enabled7182 is expected to eq true7183 with user provided as an argument7184 behaves like show_super_sidebar is supposed to7185 when user has not interacted with the new nav toggle yet7186 is expected to eq false7187 when the user was enrolled into the new nav via a special feature flag7188 is expected to eq true7189 when user has new nav disabled7190 is expected to eq false7191 when user has new nav enabled7192 is expected to eq true7193Tooling::Graphql::Docs::Renderer7194 #contents7195 headings7196 contains the expected sections7197 when a field has a list type7198 is expected to include "### `ArrayTest`\n\n#### Fields\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| <a id=\"arraytestfoo\"></a>`foo` | [`[String!]!`](#string) | A description. |\n"7199 a top level query field7200 generates the query with arguments7201 when description does not end with `.`7202 adds the `.` to the end7203 when fields are not defined in alphabetical order7204 lists the fields in alphabetical order7205 when a field has a documentation reference7206 behaves like renders correctly as GraphQL documentation7207 contains the expected section7208 when an argument is deprecated7209 behaves like renders correctly as GraphQL documentation7210 contains the expected section7211 when a field is deprecated7212 behaves like renders correctly as GraphQL documentation7213 contains the expected section7214 when a Query.field is deprecated7215 behaves like renders correctly as GraphQL documentation7216 contains the expected section7217 when an argument is in alpha7218 behaves like renders correctly as GraphQL documentation7219 contains the expected section7220 when a field is in alpha7221 behaves like renders correctly as GraphQL documentation7222 contains the expected section7223 when a Query.field is in alpha7224 behaves like renders correctly as GraphQL documentation7225 contains the expected section7226 when a field has an Enumeration type7227 behaves like renders correctly as GraphQL documentation7228 contains the expected section7229 when a field has a global ID type7230 section for IDTest7231 behaves like renders correctly as GraphQL documentation7232 contains the expected section7233 section for UserID7234 behaves like renders correctly as GraphQL documentation7235 contains the expected section7236 when there is a mutation7237 does not render the automatically generated payload type7238 does not render the automatically generated input type as its own section7239 behaves like renders correctly as GraphQL documentation7240 contains the expected section7241 when there is an input type7242 behaves like renders correctly as GraphQL documentation7243 contains the expected section7244 when there is an interface and a union7245 lists the fields correctly, and includes descriptions of all the types7246SnippetPresenter7247 #web_url7248 with PersonalSnippet7249 returns snippet web url7250 with ProjectSnippet7251 returns snippet web url7252 #raw_url7253 with PersonalSnippet7254 returns snippet web url7255 with ProjectSnippet7256 returns snippet web url7257 #can_read_snippet?7258 with PersonalSnippet7259 checks read_snippet7260 with ProjectSnippet7261 checks read_snippet7262 #can_update_snippet?7263 with PersonalSnippet7264 checks update_snippet7265 with ProjectSnippet7266 checks update_snippet7267 #can_admin_snippet?7268 with PersonalSnippet7269 checks admin_snippet7270 with ProjectSnippet7271 checks admin_snippet7272 #can_report_as_spam7273 returns false if the user cannot submit the snippet as spam7274 returns true if the user can submit the snippet as spam7275 #blob7276 when snippet does not have a repository7277 returns SnippetBlob7278 when snippet has a repository7279 returns repository first blob7280Mutations::ContainerRepositories::DestroyTags7281 is expected to require graphql authorizations :destroy_container_image7282 #resolve7283 with valid id7284 user_role: :maintainer, shared_examples_name: "destroying container repository tags"7285 behaves like destroying container repository tags7286 destroys the container repository tags7287 creates a package event7288 user_role: :developer, shared_examples_name: "destroying container repository tags"7289 behaves like destroying container repository tags7290 destroys the container repository tags7291 creates a package event7292 user_role: :reporter, shared_examples_name: "denying access to container respository"7293 behaves like denying access to container respository7294 raises an error7295 user_role: :guest, shared_examples_name: "denying access to container respository"7296 behaves like denying access to container respository7297 raises an error7298 user_role: :anonymous, shared_examples_name: "denying access to container respository"7299 behaves like denying access to container respository7300 raises an error7301 with non-existing id7302 behaves like denying access to container respository7303 raises an error7304 with service error7305 is expected to eq {:deleted_tag_names=>[], :errors=>["could not delete tags"]}7306 does not create a package event7307OauthAccessToken7308 scopes7309 .latest_per_application7310 returns only the latest token for each application7311 Doorkeeper secret storing7312 stores the token in hashed format7313 does not allow falling back to plaintext token comparison7314 finds a token by plaintext token7315 when the token is stored in plaintext7316 falls back to plaintext token comparison7317 .matching_token_for7318 does not find existing tokens7319 #expires_in7320 when token has expires_in value set7321 uses the expires_in value7322 when token has nil expires_in7323 uses default value7324Ci::CreatePipelineService7325 job:parallel7326 numeric7327 creates the pipeline7328 creates 3 jobs7329 matrix7330 creates the pipeline7331 creates 4 builds with the corresponding matrix variables7332 when a bridge is using parallel:matrix7333 creates the pipeline7334 creates 1 build and 4 bridges with the corresponding matrix variables7335Gitlab::Ci::Pipeline::Logger7336 #log_when7337 stores blocks for later evaluation7338 #instrument7339 returns the block's value7340 records durations of instrumented operations7341 raises an error when block is not provided7342 when once: true7343 logs only one observation7344 #instrument_once_with_sql7345 with a single query7346 is expected to eq 07347 includes SQL metrics7348 with multiple queries7349 is expected to eq 07350 includes SQL metrics7351 when there are not SQL operations7352 is expected to eq 1237353 does not include SQL metrics7354 #observe7355 records durations of observed operations7356 when once: true7357 records the latest observation7358 logs data as expected7359 #commit7360 when the feature flag is enabled7361 logs to application.json7362 with log conditions7363 does not log when the conditions are false7364 logs when a condition is true7365 with unexistent observations in condition7366 does not commit the log7367 when project is not passed and pipeline is not persisted7368 logs to application.json7369 when the feature flag is disabled7370 does not log7371Users::CreditCardValidation7372 is expected to belong to user required: false7373 is expected to validate that the length of :holder_name is at most 507374 is expected to validate that the length of :network is at most 327375 is expected to validate that :last_digits looks like a number less than or equal to 99997376 .similar_records7377 returns matches with the same last_digits, expiration and network, ordered by credit_card_validated_at7378 #similar_holder_names_count7379 when holder_name is present7380 returns the count of cards with similar case insensitive holder names7381 when holder_name is nil7382 returns 07383 scopes7384 .by_banned_user7385 returns only records associated to banned users7386 .similar_by_holder_name7387 returns only records that case-insensitive match the given holder name7388 when given holder name is falsey7389 returns [] when given holder name is ""7390 returns [] when given holder name is nil7391 .similar_to7392 returns only records with similar expiration_date, last_digits, and network attribute values7393 #used_by_banned_user?7394 when there is a similar credit card associated to a banned user7395 is expected to be used by banned user7396 when holder names do not match7397 is expected not to be used by banned user7398 when .similar_to returns nothing7399 is expected not to be used by banned user7400 when there is a similar credit card not associated to a banned user7401 is expected not to be used by banned user7402BasePolicy7403 .class_for7404 detects policy class based on the subject ancestors7405 detects policy class for a presented subject7406 uses GlobalPolicy when :global is given7407 read cross project7408 is expected to be allowed :read_cross_project7409 for anonymous7410 is expected to be allowed :read_cross_project7411 when an external authorization service is enabled7412 behaves like admin only access7413 is expected not to be allowed :read_cross_project7414 with an admin7415 allowed when in admin mode7416 prevented when not in admin mode7417 with anonymous7418 is expected not to be allowed :read_cross_project7419 bypassing the session for sessionless login7420 changes from prevented to allowed7421 full private access: read_all_resources7422 behaves like admin only access7423 is expected not to be allowed :read_all_resources7424 with an admin7425 allowed when in admin mode7426 prevented when not in admin mode7427 with anonymous7428 is expected not to be allowed :read_all_resources7429 bypassing the session for sessionless login7430 changes from prevented to allowed7431 full private access: admin_all_resources7432 behaves like admin only access7433 is expected not to be allowed :admin_all_resources7434 with an admin7435 allowed when in admin mode7436 prevented when not in admin mode7437 with anonymous7438 is expected not to be allowed :admin_all_resources7439 bypassing the session for sessionless login7440 changes from prevented to allowed7441 change_repository_storage7442 behaves like admin only access7443 is expected not to be allowed :change_repository_storage7444 with an admin7445 allowed when in admin mode7446 prevented when not in admin mode7447 with anonymous7448 is expected not to be allowed :change_repository_storage7449 bypassing the session for sessionless login7450 changes from prevented to allowed7451IncidentManagement::IssuableEscalationStatuses::PrepareUpdateService7452 # order random7453 when called nil params7454 raises an exception7455 behaves like successful response7456 returns valid parameters which can be used to update the issue7457 when called with an unsupported issue type7458 behaves like availability error response7459 is expected to eq "Escalation status updates are not available for this issue, user, or project."7460 when user is anonymous7461 behaves like availability error response7462 is expected to eq "Escalation status updates are not available for this issue, user, or project."7463 when an IssuableEscalationStatus record for the issue does not exist7464 initializes an issuable escalation status record7465 behaves like successful response7466 returns valid parameters which can be used to update the issue7467 when called without params7468 behaves like successful response7469 returns valid parameters which can be used to update the issue7470 when user does not have permissions7471 behaves like availability error response7472 is expected to eq "Escalation status updates are not available for this issue, user, or project."7473 when called with unsupported params7474 behaves like successful response7475 returns valid parameters which can be used to update the issue7476 with status param7477 when status matches the current status7478 behaves like successful response7479 returns valid parameters which can be used to update the issue7480 when status is unsupported7481 behaves like invalid params error response7482 is expected to eq "Invalid value was provided for parameters: status"7483 when status is a String7484 behaves like successful response7485 returns valid parameters which can be used to update the issue7486API::Helpers::Packages::Npm7487 # order random7488 #project_id_or_nil7489 when called with project scope7490 is expected to eq 9257491 when called with group scope7492 is expected to eq 9257493 when called with instance scope7494 when given an unscoped name7495 is expected to eq nil7496 when given a scope that does not match a group name7497 is expected to eq nil7498 when given a scope that matches a group name7499 is expected to eq 9257500 with another package with the same name, in another project in the namespace7501 returns the project id for the newest matching package within the scope7502 with npm_allow_packages_in_multiple_projects disabled7503 when given an unscoped name7504 is expected to eq nil7505 when given a scope that does not match a group name7506 is expected to eq nil7507 when given a scope that matches a group name7508 is expected to eq 9257509 with another package with the same name, in another project in the namespace7510 returns the project id for the newest matching package within the scope7511 #finder_for_endpoint_scope7512 when called with project scope7513 returns a PackageFinder for project scope7514 when called with instance scope7515 returns a PackageFinder for namespace scope7516 when called with group scope7517 returns a PackageFinder for group scope7518Mutations::Todos::RestoreMany7519 #resolve7520 restores a single todo7521 handles a todo which is already pending as expected7522 ignores requests for todos which do not belong to the current user7523 restores multiple todos7524 fails if one todo does not belong to the current user7525 fails if too many todos are requested for update7526PipelineProcessWorker7527 has the `until_executed` deduplicate strategy7528 has the option to reschedule once if deduplicated and a TTL of 1 minute7529 is labeled as idempotent7530 performs multiple times sequentially without raising an exception7531 processes the pipeline7532 #perform7533 when pipeline exists7534 processes pipeline7535 when pipeline does not exist7536 does not raise exception7537Ml::Experiment7538 associations7539 is expected to belong to project required: false7540 is expected to belong to user required: false7541 is expected to have many candidates7542 is expected to have many metadata7543 .package_name7544 .package_name7545 is expected to eq "ml_experiment_1"7546 #by_project_id_and_iid7547 if exists7548 is expected to eq #<Ml::Experiment id: 1, created_at: "2023-06-26 14:51:13.788243285 +0000", updated_at: "2023-06-26 14...1:13.788243285 +0000", iid: 1, project_id: 944, user_id: 1652, name: "experiment1", deleted_on: nil>7549 if does not exist7550 is expected to equal nil7551 #by_project_id_and_name7552 if exists7553 is expected to eq #<Ml::Experiment id: 1, created_at: "2023-06-26 14:51:13.788243285 +0000", updated_at: "2023-06-26 14...1:13.788243285 +0000", iid: 1, project_id: 944, user_id: 1652, name: "experiment1", deleted_on: nil>7554 if does not exist7555 is expected to be nil7556 #by_project_id7557 is expected to contain exactly #<Ml::Experiment id: 1, created_at: "2023-06-26 14:51:13.788243285 +0000", updated_at: "2023-06-26 14...1:13.788243285 +0000", iid: 1, project_id: 944, user_id: 1652, name: "experiment1", deleted_on: nil> and #<Ml::Experiment id: 2, created_at: "2023-06-26 14:51:13.805557693 +0000", updated_at: "2023-06-26 14...1:13.805557693 +0000", iid: 2, project_id: 944, user_id: 1652, name: "experiment2", deleted_on: nil>7558 when project does not have experiment7559 is expected to be empty7560 #with_candidate_count7561 fetches the candidate count7562 #package_for_experiment?7563 package_name: "ml_experiment_1234", id: true7564 is expected to equal true7565 package_name: "ml_experiment_1234abc", id: false7566 is expected to equal false7567 package_name: "ml_experiment_abc", id: false7568 is expected to equal false7569 package_name: "ml_experiment_", id: false7570 is expected to equal false7571 package_name: "blah", id: false7572 is expected to equal false7573Gitlab::Database::Partitioning::TimePartition7574 .from_sql7575 uses specified table name7576 uses specified partition name7577 parses start date7578 parses end date7579 with MINVALUE as a start date7580 sets from to nil7581 with MAXVALUE as an end date7582 raises a NotImplementedError7583 #partition_name7584 uses table as prefix7585 uses Year-Month (from) as suffix7586 without from date7587 uses 000000 as suffix for first partition7588 with partition name explicitly given7589 uses given partition name7590 #to_sql7591 transforms to a CREATE TABLE statement7592 without from date7593 uses MINVALUE instead7594 object equality - #eql7595 treats objects identical with identical attributes7596 different table leads to in-equality7597 different from leads to in-equality7598 different to leads to in-equality7599 different partition_name leads to in-equality7600 nil partition_name is ignored if auto-generated matches7601 Comparable, #<=>7602 sorts by partition name, i.e. by month - MINVALUE partition first7603 returns nil for partitions of different tables7604Gitlab::FileHook7605 with file_hooks present7606 .any?7607 returns true7608 .files?7609 returns a list of file_hooks7610 without any file_hooks7611 .any?7612 returns false7613 .files7614 returns an empty list7615 .execute7616 successful execution7617 is expected to equal true7618 is expected to be empty7619 ensures file_hook received data via stdin7620 non-executable7621 is expected to equal false7622 is expected to include "Permission denied"7623 non-zero exit7624 is expected to equal false7625 is expected to be empty7626BulkImports::PipelineWorker7627 behaves like successfully runs the pipeline7628 runs the given pipeline successfully7629 when exclusive lease cannot be obtained7630 does not run the pipeline7631 when the pipeline raises an exception7632 logs the error7633 when enqueued pipeline cannot be found7634 when pipeline is finished7635 logs the error7636 when pipeline is skipped7637 logs the error7638 when tracker is started7639 marks tracker as failed7640 when entity is failed7641 marks tracker as skipped and logs the skip7642 when retry pipeline error is raised7643 reenqueues the worker7644 when file extraction pipeline7645 runs the pipeline successfully7646 when export status is started7647 reenqueues pipeline worker7648 when export status is empty7649 when timeout is not reached7650 reenqueues pipeline worker7651 when empty export timeout is reached7652 marks as failed and logs the error7653 when tracker created_at is nil7654 falls back to entity created_at7655 when job reaches timeout7656 marks as failed and logs the error7657 when export status is failed7658 marks as failed and logs the error7659UsersStarProject7660 is expected to belong to project required: false7661 scopes7662 .all7663 returns all records7664 .with_active_user7665 returns only records of active users7666 .order_user_name_asc7667 sorts records by ascending user name7668 .order_user_name_desc7669 sorts records by descending user name7670 .by_project7671 returns only records of given project7672 .with_public_profile7673 returns only records of users with public profile7674 star count hooks7675 on after_create7676 if user is active7677 increments star count of project7678 if user is not active7679 does not increment star count of project7680 on after_destory7681 if user is active7682 decrements star count of project7683 if user is not active7684 does not decrement star count of project7685Integrations::Bugzilla7686 Validations7687 when integration is active7688 is expected to validate that :project_url cannot be empty/falsy7689 is expected to validate that :issues_url cannot be empty/falsy7690 is expected to validate that :new_issue_url cannot be empty/falsy7691 behaves like issue tracker integration URL attribute7692 is expected to allow :project_url to be ‹"https://example.com"›7693 is expected not to allow :project_url to be ‹"example.com"›7694 is expected not to allow :project_url to be ‹"ftp://example.com"›7695 is expected not to allow :project_url to be ‹"herp-and-derp"›7696 behaves like issue tracker integration URL attribute7697 is expected to allow :issues_url to be ‹"https://example.com"›7698 is expected not to allow :issues_url to be ‹"example.com"›7699 is expected not to allow :issues_url to be ‹"ftp://example.com"›7700 is expected not to allow :issues_url to be ‹"herp-and-derp"›7701 behaves like issue tracker integration URL attribute7702 is expected to allow :new_issue_url to be ‹"https://example.com"›7703 is expected not to allow :new_issue_url to be ‹"example.com"›7704 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›7705 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›7706 when integration is inactive7707 is expected not to validate that :project_url cannot be empty/falsy7708 is expected not to validate that :issues_url cannot be empty/falsy7709 is expected not to validate that :new_issue_url cannot be empty/falsy7710Gitlab::ImportExport::UploadsManager7711 #save7712 when the project has uploads locally stored7713 does not cause errors7714 copies the file in the correct location when there is an upload7715 with orphaned project upload files7716 excludes orphaned upload files7717 with an upload missing its file7718 does not cause errors7719 when upload is in object storage7720 when filename is too long7721 ignores problematic upload and logs exception7722 when network exception occurs7723 ignores problematic upload and logs exception7724 #restore7725 restores the file7726Gitlab::Tracking::ServicePingContext7727 # order random7728 #to_context7729 for redis_hll data source7730 contains event_name7731 for redis data source7732 contains event_name7733 #init7734 with valid configuration7735 data_source: :redis, event: nil, key_path: "counts.some_metric"7736 does not raise errors7737 data_source: :redis_hll, event: "some_event", key_path: nil7738 does not raise errors7739 with invalid configuration7740 data_source: :redis, event: nil, key_path: nil7741 does not raise errors7742 data_source: :redis, event: "some_event", key_path: nil7743 does not raise errors7744 data_source: :redis_hll, event: nil, key_path: nil7745 does not raise errors7746 data_source: :redis_hll, event: nil, key_path: "some key_path"7747 does not raise errors7748 data_source: :random, event: "some_event", key_path: nil7749 does not raise errors7750Gitlab::Ci::Runner::Metrics7751 #increment_runner_authentication_success_counter7752 increments count for same type7753 does not increment count for different type7754 does not increment failure count7755 throws ArgumentError for invalid runner type7756 #increment_runner_authentication_failure_counter7757 increments count7758 does not increment success count7759DependencyProxy::AuthTokenService7760 .user_or_deploy_token_from_jwt7761 with a user7762 is expected to eq #<User id:1669 @user787>7763 with an invalid user id7764 raises an not found error7765 behaves like handling token errors7766 with a decoding error7767 is expected to eq nil7768 with an immature signature error7769 is expected to eq nil7770 with an expired signature error7771 returns nil7772 with a deploy token7773 is expected to eq #<DeployToken id: 1, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-07...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>7774 with an invalid token7775 is expected to eq nil7776 behaves like handling token errors7777 with a decoding error7778 is expected to eq nil7779 with an immature signature error7780 is expected to eq nil7781 with an expired signature error7782 returns nil7783 with an empty token payload7784 is expected to eq nil7785PagesDomainVerificationCronWorker7786 #perform7787 does nothing if the database is read-only7788 enqueues a PagesDomainVerificationWorker for domains needing verification7789 behaves like a pages cronjob scheduling jobs with context7790 schedules the renewal with a context7791 with RequestStore enabled7792 does not cause extra queries for multiple domains7793BulkImports::RelationExportWorker7794 #perform7795 is labeled as idempotent7796 performs multiple times sequentially without raising an exception7797 when export record does not exist7798 creates export record7799 when export is batched7800 when bulk_imports_batched_import_export feature flag is disabled7801 executes export service7802 when bulk_imports_batched_import_export feature flag is enabled7803 when relation is batchable7804 executes export service7805 when relation is not batchable7806 executes export service7807 when export is not batched7808 executes export service7809Mutations::Issues::SetSubscription7810 is expected to require graphql authorizations :update_subscription7811 when user does not have access to the project7812 behaves like a subscribeable not accessible graphql resource7813 raises an error if the resource is not accessible to the user7814 when user is developer member of the project7815 behaves like a subscribeable graphql resource7816 subscribes to the resource7817 when passing subscribe as false7818 unsubscribes from the discussion7819 when the project is public7820 behaves like a subscribeable graphql resource7821 subscribes to the resource7822 when passing subscribe as false7823 unsubscribes from the discussion7824 when the project is public but the issue is confidential7825 behaves like a subscribeable not accessible graphql resource7826 raises an error if the resource is not accessible to the user7827Projects::UpdateStatisticsService7828 #execute7829 with a non-existing project7830 does nothing7831 with an existing project7832 statistics: [], method_caches: [:size, :commit_count]7833 refreshes the project statistics7834 invalidates the method caches after a refresh7835 statistics: ["repository_size"], method_caches: [:size]7836 refreshes the project statistics7837 invalidates the method caches after a refresh7838 statistics: [:repository_size], method_caches: [:size]7839 refreshes the project statistics7840 invalidates the method caches after a refresh7841 statistics: [:lfs_objects_size], method_caches: nil7842 refreshes the project statistics7843 invalidates the method caches after a refresh7844 statistics: [:commit_count], method_caches: [:commit_count]7845 refreshes the project statistics7846 invalidates the method caches after a refresh7847 statistics: [:repository_size, :commit_count], method_caches: [:size, :commit_count]7848 refreshes the project statistics7849 invalidates the method caches after a refresh7850 statistics: [:repository_size, :commit_count, :lfs_objects_size], method_caches: [:size, :commit_count]7851 refreshes the project statistics7852 invalidates the method caches after a refresh7853 with an existing project with a Wiki7854 invalidates and refreshes Wiki size7855CacheableAttributes7856 .expire7857 wipes the cache7858 .current_without_cache7859 defaults to last7860 can be overridden7861 .cache_key7862 excludes cache attributes7863 .defaults7864 defaults to {}7865 with defaults defined7866 can be overridden7867 .build_from_defaults7868 without any attributes given7869 intializes a new object with the defaults7870 with attributes given7871 intializes a new object with the given attributes merged into the defaults7872 edge cases on concrete implementations7873 .build_from_defaults7874 without any attributes given7875 intializes all attributes even if they are nil7876 .current7877 uses RequestStore in addition to process memory cache7878 redis unavailable7879 in production environment7880 returns an uncached record and logs a warning7881 in other environments7882 returns an uncached record and logs a warning7883 when a record is not yet present7884 does not cache nil object7885 caches non-nil object7886 edge cases7887 caching behavior7888 retrieves upload fields properly7889 retrieves markdown fields properly7890 .cached7891 when cache is cold7892 returns nil7893 when cached is warm7894 retrieves the record from cache7895 #cache!7896 caches the attributes7897 edge cases7898 caches the attributes7899projects/notes/_more_actions_dropdown7900 shows Report abuse to admin button if not editable and not current users comment7901 does not show the More actions button if not editable and current users comment7902 shows Report abuse and Delete buttons if editable and not current users comment7903 shows Delete button if editable and current users comment7904Sidebars::Projects::Menus::IssuesMenu7905 behaves like serializable as super_sidebar_menu_args7906 returns hash with provided attributes7907 returns hash with an item_id7908 #render?7909 when user can read issues7910 returns true7911 when user cannot read issues7912 returns false7913 #has_pill?7914 when issues feature is enabled7915 returns true7916 when issue feature is disabled7917 returns false7918 #pill_count7919 returns zero when there are no open issues7920 memoizes the query7921 when there are open issues7922 returns the number of open issues7923 formatting7924 returns truncated digits for count value over 10007925DeploymentSerializer7926 #represent7927 behaves like json schema7928 matches deployment entity schema7929 #represent_concise7930 behaves like json schema7931 matches deployment entity schema7932Pajamas::CheckboxComponent7933 with default options7934 renders unchecked checkbox with value of `1`7935 does not render help text7936 renders hidden input with value of `0`7937 with custom options7938 renders help text7939 renders checked checkbox with value of `yes`7940 adds CSS class to label7941 renders hidden input with value of `no`7942 with `label` slot7943 renders unchecked checkbox with value of `1`7944 with `help_text` slot7945 renders unchecked checkbox with value of `1`7946 renders help text7947 with `label` and `help_text` slots7948 renders unchecked checkbox with value of `1`7949 renders help text7950Gitlab::HookData::BaseBuilder7951 #absolute_image_urls7952 with an upload prefix specified7953 relative image URL7954 is expected to eq ""7955 absolute upload URL7956 is expected to eq ""7957 absolute non-upload URL7958 is expected to eq ""7959 without an upload prefix specified7960 relative image URL7961 is expected to eq ""7962 absolute upload URL7963 is expected to eq ""7964 absolute non-upload URL7965 is expected to eq ""7966 HTTP URL7967 is expected to eq ""7968 HTTPS URL7969 is expected to eq ""7970 protocol-relative URL7971 is expected to eq ""7972 URL reference by title7973 is expected to eq "![foo]\n\n[foo]: foo.png"7974 URL reference by label7975 is expected to eq "![][foo]\n\n[foo]: foo.png"7976 in Markdown inline code block7977 is expected to eq "``"7978 in HTML tag on the same line7979 is expected to eq "<p></p>"7980 in Markdown multi-line code block7981 is expected to eq "```\n\n```"7982 in HTML tag on different lines7983 is expected to eq "<p>\n\n</p>"7984Ci::CreatePipelineService7985 #execute7986 with deployment tier7987 creates the environment with the expected tier7988 when tier is testing7989 creates the environment with the expected tier7990 when branch pipeline creates a dynamic environment7991 does not associate merge request with the environment7992 when variables are dependent on stage name7993 creates the pipeline successfully7994Sidebars::YourWork::Menus::MergeRequestsMenu7995 # order random7996 #has_pill?7997 when count is zero7998 returns false7999 when count is larger than zero8000 returns true8001 #pill_count8002 returns the assigned_open_merge_requests_count of the user8003 memoizes the query8004 submenu items8005 order: 0, title: "Assigned", key: :assigned8006 renders items in the right order8007 when there are no MR counts8008 shows a pill even though count is zero8009 when there are MR counts8010 shows a pill with the correct count8011 order: 1, title: "Review requests", key: :review_requested8012 renders items in the right order8013 when there are no MR counts8014 shows a pill even though count is zero8015 when there are MR counts8016 shows a pill with the correct count8017Ci::PipelineArtifacts::CodeQualityMrDiffPresenter8018 #for_files8019 when code quality has data8020 when filenames is empty8021 returns hash without quality8022 when filenames do not match code quality data8023 returns hash without quality8024 when filenames matches code quality data8025 when asking for one filename8026 returns quality for the given filename8027 when asking for multiple filenames8028 returns quality for the given filenames8029BulkImports::Groups::Loaders::GroupLoader8030 #load8031 when path is missing8032 raises an error8033 when destination namespace is not a group8034 raises an error8035 when there are other group errors8036 raises an error with those errors8037 when user can create group8038 when there is no parent group8039 calls Group Create Service to create a new group8040 when there is parent group8041 calls Group Create Service to create a new group8042 when user cannot create group8043 when there is no parent group8044 does not create new group8045 when there is parent group8046 does not create new group8047Packages::Debian::CleanupDanglingPackageFilesWorker8048 # order random8049 #perform8050 when debian_packages flag is disabled8051 does nothing8052 with mocked service returning success8053 calls MarkPackageFilesForDestructionService8054 with mocked service returning error8055 ignore error8056 when the service raises an error8057 logs exception8058 with valid parameters8059 behaves like an idempotent worker8060 is labeled as idempotent8061 performs multiple times sequentially without raising an exception8062 mark dangling package files as pending destruction8063Gitlab::UUID8064 .v58065 in development8066DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8067 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"8068 in test8069DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8070 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"8071 in staging8072DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8073 is expected to eq "dd190b37-7754-5c7c-80a0-85621a5823ad"8074 in production8075DEPRECATION WARNING: Providing a namespace ID that is not one of the constants defined on Digest::UUID generates an incorrect UUID value according to RFC 4122. To enable the correct behavior, set the Rails.application.config.active_support.use_rfc4122_namespaced_uuids configuration option to true. (called from v5 at /builds/gitlab-org/gitlab/lib/gitlab/uuid.rb:18)8076 is expected to eq "4961388b-9d8e-5da0-a499-3ef5da58daf0"8077 v5?8078 test_string: "not even a uuid", is_uuid_v5: false8079 is expected to equal false8080 test_string: "this-seems-like-a-uuid", is_uuid_v5: false8081 is expected to equal false8082 test_string: "thislook-more-5lik-eava-liduuidbutno", is_uuid_v5: false8083 is expected to equal false8084 test_string: "9f470438-db0f-37b7-9ca9-1d47104c339a", is_uuid_v5: false8085 is expected to equal false8086 test_string: "9f470438-db0f-47b7-9ca9-1d47104c339a", is_uuid_v5: false8087 is expected to equal false8088 test_string: "9f470438-db0f-57b7-9ca9-1d47104c339a", is_uuid_v5: true8089 is expected to equal true8090Gitlab::GithubGistsImport::Importer::GistImporter8091 # order random8092 #execute8093 when success8094 creates expected snippet and snippet repository8095 pre-import validations8096 when file count limit exeeded8097 validates input and returns error8098 when repo too big8099 validates input and returns error8100 post-import validations8101 when file count limit exeeded8102 returns error8103 when repo too big8104 returns error8105 when invalid attributes8106 raises an error8107 when repository cloning fails8108 returns error8109 when url is invalid8110 when local network is allowed8111 raises error8112 when local network is not allowed8113 raises error8114Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit8115 behaves like value stream analytics event8116 is expected to be a kind of String8117 is expected to be a kind of Symbol8118 is expected to include ApplicationRecord(abstract)8119 is expected to respond to #timestamp_projection8120 is expected to respond to #html_description8121 is expected to be a kind of Array8122 #apply_query_customization8123 expects an ActiveRecord::Relation object as argument and returns a modified version of it8124 #hash_code8125 returns a hash that uniquely identifies an event8126 does not differ when the same object is built with the same params8127 behaves like LEFT JOIN-able value stream analytics event8128 can use the event as LEFT JOIN8129 when looking at the record with data8130 contains the timestamp expression8131 when looking at the record without data8132 returns nil for the timestamp expression8133Gitlab::HookData::ProjectBuilder8134 #build8135 data8136 on create8137 is expected to eq "project_create"8138 behaves like includes the required attributes8139 includes the required attributes8140 behaves like does not include `old_path_with_namespace` attribute8141 does not include `old_path_with_namespace` attribute8142 on destroy8143 is expected to eq "project_destroy"8144 behaves like includes the required attributes8145 includes the required attributes8146 behaves like does not include `old_path_with_namespace` attribute8147 does not include `old_path_with_namespace` attribute8148 on rename8149 is expected to eq "project_rename"8150 behaves like includes the required attributes8151 includes the required attributes8152 behaves like includes `old_path_with_namespace` attribute8153 includes `old_path_with_namespace` attribute8154 on transfer8155 is expected to eq "project_transfer"8156 behaves like includes the required attributes8157 includes the required attributes8158 behaves like includes `old_path_with_namespace` attribute8159 includes `old_path_with_namespace` attribute8160Mutations::Security::CiConfiguration::ConfigureSast8161 is expected to require graphql authorizations :push_code8162 #resolve8163 generates an error if the resource is not accessible to the user8164 when user does not have enough permissions8165 generates an error8166 when user is a maintainer of a different project8167 generates an error8168 when the user does not have permission to create a new branch8169 returns an array of errors8170 when the user can create a merge request8171 when service successfully generates a path to create a new merge request8172 returns a success path8173 when service can not generate any path to create a new merge request8174 returns an array of errors8175Gitlab::Usage::ServicePing::InstrumentedPayload8176 when building service ping with values8177 builds the service ping payload for the metrics key_paths8178 when building service ping with instrumentations8179 builds the service ping payload for the metrics key_paths8180 when missing instrumentation class8181 returns empty hash8182 with broken metric definition file8183 when instrumentation class name is incorrect8184 tracks error and return fallback8185 when instrumentation class raises TypeError8186 tracks error and return fallback8187 when instrumentation class raises ArgumentError8188 tracks error and return fallback8189 when instrumentation class raises StandardError8190 tracks error and return fallback8191Gitlab::EtagCaching::Store8192 #get8193 with invalid keys8194 raises errors8195 does not raise errors in production8196 with GraphQL keys8197 returns a stored value8198 with RESTful keys8199 returns a stored value8200 #touch8201 with invalid keys8202 raises errors8203 with GraphQL keys8204 stores and returns a value8205 with RESTful keys8206 stores and returns a value8207 with multiple keys8208 stores and returns multiple values8209Mail quoted-printable transfer encoding patch and Unicode characters8210 with a text email8211 with a body that encodes to exactly 74 characters (final newline)8212 behaves like email encoding8213 enclosing in a new object does not change the encoded original8214 with a body that encodes to exactly 74 characters (no final newline)8215 behaves like email encoding8216 enclosing in a new object does not change the encoded original8217 with a body that encodes to exactly 75 characters8218 behaves like email encoding8219 enclosing in a new object does not change the encoded original8220 with an html email8221 with a body that encodes to exactly 74 characters (final newline)8222 behaves like email encoding8223 enclosing in a new object does not change the encoded original8224 with a body that encodes to exactly 74 characters (no final newline)8225 behaves like email encoding8226 enclosing in a new object does not change the encoded original8227 with a body that encodes to exactly 75 characters8228 behaves like email encoding8229 enclosing in a new object does not change the encoded original8230 a multipart email8231 behaves like email encoding8232 enclosing in a new object does not change the encoded original8233 with non UTF-8 charset8234 can be decoded back8235 behaves like email encoding8236 enclosing in a new object does not change the encoded original8237 with binary content8238 can be encoded with 'base64' content-transfer-encoding8239 binary contents are not modified8240 behaves like email encoding8241 enclosing in a new object does not change the encoded original8242 encoding fails with 'quoted-printable' content-transfer-encoding8243 content cannot be decoded back8244 empty text mail with unsual body encoding8245 decodes email successfully8246 frozen email boy content with unsual body encoding8247 decodes email successfully8248RuboCop::Cop::Gitlab::RailsLogger8249 # order random8250 does not flag the use of Rails.logger.level8251 flags the use of Rails.logger.fatal with a constant receiver8252 flags the use of Rails.logger.debug with a constant receiver8253 does not flag the use of logger with a send receiver8254 flags the use of Rails.logger.warn with a constant receiver8255 does not flag the use of Rails.logger with a constant that is not Rails8256 flags the use of Rails.logger.info with a constant receiver8257 flags the use of Rails.logger.error with a constant receiver8258Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation8259 # order random8260 is expected to be a kind of Gitlab::Database::SharedModel(abstract)8261 .table_available?8262 is expected to be truthy8263 when the table does not exist8264 is expected to be falsy8265 .constraint_type_exists?8266 is expected to be truthy8267 always asks the database8268 validations8269 is expected to validate that :name cannot be empty/falsy8270 is expected to validate that :name is case-sensitively unique within the scope of :table_name8271 is expected to validate that the length of :name is at most 638272 is expected to validate that :table_name cannot be empty/falsy8273 is expected to validate that the length of :table_name is at most 638274 is expected to validate that the length of :last_error is at most 100008275 #handle_exception!8276 increases the attempts number8277 saves error details8278 scopes8279 .ordered8280 is expected to eq [#<Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation id: 4, created_at: "2023-06-..."fk_users_id_3", table_name: "users", last_error: nil, attempts: 1, constraint_type: "foreign_key">]8281 .foreign_key_type8282 is expected to eq [#<Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation id: 5, created_at: "2023-06-..."fk_users_id_5", table_name: "users", last_error: nil, attempts: 1, constraint_type: "foreign_key">]8283 does not apply the filter if the column is not present8284 .check_constraint_type8285 is expected to eq [#<Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation id: 10, created_at: "2023-06...ers_id_10", table_name: "users", last_error: nil, attempts: 0, constraint_type: "check_constraint">]8286ProjectExportJob8287 associations8288 is expected to belong to project required: false8289 is expected to have many relation_exports8290 validations8291 is expected to validate that :project cannot be empty/falsy8292 is expected to validate that :jid cannot be empty/falsy8293 is expected to validate that :status cannot be empty/falsy8294 when pruning expired jobs8295 prunes jobs and associations older than 7 days8296 does not delete associated records for jobs younger than 7 days8297Gitlab::ImportExport::Base::ObjectBuilder8298 #build8299 when object exists8300 when where_clauses are implemented8301 finds existing object instead of creating one8302 when where_clauses are not implemented8303 raises NotImplementedError8304 when object does not exist8305 creates new object8306Types::Admin::Analytics::UsageTrends::MeasurementType8307 is expected to have graphql field :recorded_at8308 is expected to have graphql field :identifier8309 is expected to have graphql field :count8310 authorization8311 when the user is not admin8312 returns an error8313 does not return usageTrendsMeasurements data8314 when user is an admin8315 returns usageTrendsMeasurements data8316Clusters::Agents::Authorizations::CiAccess::ImplicitAuthorization8317 # order random8318 is expected to eq #<Project id:999 namespace1044/project-1089>>8319 is expected to eq 58320 is expected to eq #<Clusters::Agent id: 5, created_at: "2023-06-26 14:52:32.821226852 +0000", updated_at: "2023-06-26 1...6852 +0000", project_id: 999, name: "agent-5", created_by_user_id: 1728, has_vulnerabilities: false>8321 is expected to eq {}8322Sidebars::Admin::Menus::MonitoringMenu8323 # order random8324 behaves like Admin menu8325 renders the correct link8326 renders the correct title8327 renders the correct icon8328 renders the separator if needed8329 #render?8330 when user is admin8331 renders8332 when user is not admin8333 does not render8334 when user is not logged in8335 does not render8336 behaves like Admin menu with sub menus8337 contains submemus8338 Menu items8339 Metrics Dashboard8340 when grafana is enabled8341 is expected not to be nil8342 when grafana is disabled8343 is expected to be nil8344StageSerializer8345 #represent8346 with a single entity8347 serializes the stage object8348 with an array of entities8349 serializes the array of pipelines8350Gitlab::SQL::Glob8351 .to_like8352 matches * as %8353 matches % literally8354 matches _ literally8355Gitlab::Database::MigrationHelpers::CascadingNamespaceSettings8356 #add_cascading_namespace_setting8357-- column_exists?(:namespace_settings, :some_setting)8358 -> 0.0067s8359-- column_exists?(:namespace_settings, :lock_some_setting)8360 -> 0.0054s8361-- column_exists?(:application_settings, :some_setting)8362 -> 0.2867s8363-- column_exists?(:application_settings, :lock_some_setting)8364 -> 0.2844s8365 creates the required columns8366 when columns already exist8367-- add_column(:namespace_settings, :cascading_setting, :integer)8368 -> 0.0038s8369-- add_column(:application_settings, :lock_cascading_setting, :boolean)8370 -> 0.0032s8371-- column_exists?(:namespace_settings, :cascading_setting)8372 -> 0.0058s8373-- column_exists?(:namespace_settings, :lock_cascading_setting)8374 -> 0.0061s8375-- column_exists?(:application_settings, :cascading_setting)8376 -> 0.2870s8377-- column_exists?(:application_settings, :lock_cascading_setting)8378 -> 0.2866s8379 raises an error when some columns already exist8380 #remove_cascading_namespace_setting8381 removes the columns8382SystemHooksService8383 #execute_hooks_for8384 model_name: :group_member, builder_class: Gitlab::HookData::GroupMemberBuilder8385 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8386 model_name: :group, builder_class: Gitlab::HookData::GroupBuilder8387 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8388 model_name: :project_member, builder_class: Gitlab::HookData::ProjectMemberBuilder8389 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8390 model_name: :user, builder_class: Gitlab::HookData::UserBuilder8391 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8392 model_name: :project, builder_class: Gitlab::HookData::ProjectBuilder8393 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8394 model_name: :key, builder_class: Gitlab::HookData::KeyBuilder8395 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8396 model_name: :deploy_key, builder_class: Gitlab::HookData::KeyBuilder8397 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data8398 #execute_hooks8399 executes system hooks with the given data8400 executes FileHook with the given data8401ObjectStorage::CDN::GoogleIpCache8402 # order random8403 .update!8404 caches to both L1 and L2 caches8405 .ready?8406 returns false8407 returns true8408 .google_ip?8409 uses the L2 cache and updates the L1 cache when L1 is missing8410 avoids populating L1 cache if L2 is missing8411 ip_address: "34.80.0.1", expected: true8412 is expected to eq true8413 ip_address: "18.245.0.42", expected: false8414 is expected to eq false8415 ip_address: "2500:1900:4180:0000:0000:0000:0000:0000", expected: false8416 is expected to eq false8417 ip_address: "2600:1900:4180:0000:0000:0000:0000:0000", expected: true8418 is expected to eq true8419 ip_address: "10.10.1.5", expected: false8420 is expected to eq false8421 ip_address: "fc00:0000:0000:0000:0000:0000:0000:0000", expected: false8422 is expected to eq false8423 .async_refresh8424 schedules the worker8425Ci::UpdatePendingBuildService8426 #execute8427 validations8428 when model is invalid8429 raises an error8430 when params is invalid8431 raises an error8432 when model is a group with pending builds8433 updates all pending builds8434 when model is a project with pending builds8435 updates all pending builds8436Gitlab::Git::RemoteMirror8437 #update8438 delegates to the Gitaly client8439 wraps gitaly errors8440Abuse::UserTrustScore8441 # order random8442 #spammer?8443 when the user is a spammer8444 classifies the user as a spammer8445 when the user is not a spammer8446 does not classify the user as a spammer8447 #telesign_score8448 when the user has a telesign risk score8449 returns the latest score8450 when the user does not have a telesign risk score8451 defaults to zero8452 #spam_score8453 when the user is a spammer8454 returns the expected score8455 when the user is not a spammer8456 returns the expected score8457 #arkose_custom_score8458 when the user has an arkose custom risk score8459 returns the latest score8460 when the user does not have an arkose custom risk score8461 defaults to zero8462 #arkose_global_score8463 when the user has an arkose global risk score8464 returns the latest score8465 when the user does not have an arkose global risk score8466 defaults to zero8467Integrations::BaseThirdPartyWiki8468 default values8469 is expected to eq :third_party_wiki8470 Validations8471 only one third party wiki per project8472 when integration is changed manually by user8473 executes the validation8474 when integration is changed internally8475 does not execute the validation8476 when integration is not on the project level8477 executes the validation8478AwardEmojisFinder8479 param validation8480 raises an error if `name` is invalid8481 does not raise an error if `name` is numeric8482 raises an error if `awarded_by` is invalid8483 #execute8484 scopes to the awardable8485 filters by emoji name8486 filters by user8487RuboCop::Cop::Performance::ActiveRecordSubtransactionMethods8488 # order random8489 when the method uses a subtransaction8490 method: :safe_ensure_unique8491 registers an offense8492 method: :safe_find_or_create_by8493 registers an offense8494 method: :safe_find_or_create_by!8495 registers an offense8496 method: :with_fast_read_statement_timeout8497 registers an offense8498 method: :create_or_find_by8499 registers an offense8500 method: :create_or_find_by!8501 registers an offense8502BulkImports::Pipeline::ExtractedData8503 #has_next_page?8504 when next page is present8505 returns true8506 when next page is not present8507 returns false8508 #next_page8509 returns next page cursor information8510 #each8511 when block is present8512 yields each data item8513 when block is not present8514 returns enumerator8515Terraform.gitlab-ci.yml8516 the created pipeline8517 on master branch8518 creates init, validate,build terraform jobs as well as kics-iac-sast job8519 outside the master branch8520 does not creates a deploy and a test job8521 on merge request8522 creates a pipeline with no jobs8523Gitlab::ImportExport::RepoSaver8524 bundle a project Git repo8525 bundles the repo successfully8526 creates the directory for the repository8527 when the repo is empty8528 bundles the repo successfully8529TimeZoneHelper8530 #timezone_data8531 with short format8532 matches schema8533 formats for display8534 with abbr format8535 matches schema8536 formats for display8537 with full format8538 matches schema8539 formats for display8540 with unknown format8541 raises an exception8542 #local_time8543 when timezone is `nil`8544 returns `nil`8545 when timezone is blank8546 returns `nil`8547 when a valid timezone is passed8548 returns local time8549 when an invalid timezone is passed8550 returns local time using the configured default timezone (UTC in this case)8551 #local_timezone_instance8552 when timezone is `nil`8553 returns the system timezone instance8554 when timezone is blank8555 returns the system timezone instance8556 when a valid timezone is passed8557 returns the local time instance8558 when an invalid timezone is passed8559 returns the system timezone instance8560Gitlab::Database::BackgroundMigration::BatchedMigrationWrapper#perform8561 runs the migration job8562 updates the tracking record in the database8563 when running a job that failed previously8564 increments attempts and updates other fields8565 when the migration job does not raise an error8566 marks the tracking record as succeeded8567 tracks metrics of the execution8568 when the migration job raises an error8569 behaves like an error is raised8570 marks the tracking record as failed8571 tracks metrics of the execution8572 behaves like an error is raised8573 marks the tracking record as failed8574 tracks metrics of the execution8575 behaves like an error is raised8576 marks the tracking record as failed8577 tracks metrics of the execution8578 behaves like an error is raised8579 marks the tracking record as failed8580 tracks metrics of the execution8581 when the batched background migration does not inherit from BatchedMigrationJob8582 runs the job with the correct arguments8583Users::BanService8584 ban8585 when successful8586 returns success status8587 bans the user8588 creates a BannedUser8589 logs ban in application logs8590 when failed8591 when user is blocked8592 returns state error message8593 behaves like does not modify the BannedUser record or user state8594 does not modify the BannedUser record or user state8595 when user is not an admin8596 returns permissions error message8597 behaves like does not modify the BannedUser record or user state8598 does not modify the BannedUser record or user state8599Packages::MarkPackageForDestructionService8600 #execute8601 when the user is authorized8602 when it is successful8603 marks the package and package files as pending destruction8604 returns a success ServiceResponse8605 when it is not successful8606 returns an error ServiceResponse8607 when the user is not authorized8608 returns an error ServiceResponse8609RecaptchaHelper8610 .show_recaptcha_sign_up?8611 is expected to eq true8612 when setting is disabled8613 is expected to eq false8614 when it is a QA request8615 is expected to eq false8616 .recaptcha_enabled_on_login?8617 is expected to eq true8618 when setting is disabled8619 is expected to eq false8620 when it is a QA request8621 is expected to eq false8622Gitlab::DependencyLinker::ComposerJsonLinker8623 .support?8624 supports composer.json8625 does not support other files8626 #link8627 does not link the module name8628 links the homepage8629 links the repository URL8630 links the license8631 links dependencies8632 does not link core dependencies8633Gitlab::PrivateCommitEmail8634 .regex8635 is expected to match "1-foo@users.noreply.localhost"8636 is expected not to match "1-foo@users.noreply.localhost.foo"8637 is expected not to match "1-foo@users.noreply.gitlab.com"8638 is expected not to match "foo-1@users.noreply.gitlab.com"8639 is expected not to match "foobar@gitlab.com"8640 .user_id_for_email8641 parses user id from email8642 returns nil on invalid commit email8643 .user_ids_for_email8644 returns deduplicated user IDs for each valid email8645 returns an empty array with no valid emails8646 .for_user8647 returns email in the format id-username@hostname8648Gitlab::Database::Migrations::Observers::QueryStatistics8649 #before8650 with pgss available8651 resets pg_stat_statements8652 without pgss available8653 executes nothing8654 #record8655 with pgss available8656 fetches data from pg_stat_statements and stores on the observation8657 without pgss available8658 executes nothing8659Types::Ci::DetailedStatusType8660 is expected to eq "DetailedStatus"8661 has all fields8662 id field8663 correctly renders the field8664 action field8665 correctly renders the field8666Types::Repository::BlobType8667 is expected to eq "RepositoryBlob"8668 is expected to have graphql fields :id, :oid, :name, :path, :web_path, :lfs_oid, :mode, :size, :raw_size, :raw_blob, :raw_text_blob, :file_type, :edit_blob_path, :stored_externally, :external_storage, :raw_path, :replace_path, :pipeline_editor_path, :gitpod_blob_url, :find_file_path, :blame_path, :history_path, :permalink_path, :environment_formatted_external_url, :environment_external_url_for_route_map, :code_navigation_path, :project_blob_path_root, :simple_viewer, :rich_viewer, :plain_data, :can_modify_blob, :can_current_user_push_to_branch, :archived, :ide_edit_path, :external_storage_url, :fork_and_edit_path, :ide_fork_and_edit_path, :fork_and_view_path, and :language8669 handles blobs of huge size8670Ci::BuildPendingState8671 associations8672 is expected to belong to build class_name => Ci::Build required: false inverse_of => pending_state8673 validations8674 is expected to validate that :build cannot be empty/falsy8675 #crc328676 when checksum does not exist8677 returns nil8678 when checksum is in hexadecimal8679 returns decimal representation of the checksum8680 partitioning8681 with build8682 sets partition_id to the current partition value8683 when it is already set8684 does not change the partition_id value8685 without build8686 is expected to validate that :partition_id cannot be empty/falsy8687 does not change the partition_id value8688WorkItems::Widgets::Base8689 .type8690 is expected to eq :base8691 #type8692 is expected to eq :base8693RspecFlaky::Example8694 #initialize8695 when given an Rspec::Core::Example that responds to #example8696 behaves like a valid Example instance8697 returns valid attributes8698 when given an Rspec::Core::Example that does not respond to #example8699 behaves like a valid Example instance8700 returns valid attributes8701 #uid8702 returns a hash of the full description8703 #example_id8704 returns the ID of the RSpec::Core::Example8705 #attempts8706 returns the attempts of the RSpec::Core::Example8707 #file8708 returns the metadata[:file_path] of the RSpec::Core::Example8709 #line8710 returns the metadata[:line_number] of the RSpec::Core::Example8711 #description8712 returns the metadata[:full_description] of the RSpec::Core::Example8713 #status8714 returns the execution_result.status of the RSpec::Core::Example8715 #exception8716 returns the execution_result.exception of the RSpec::Core::Example8717 #feature_category8718 returns the metadata[:feature_category] of the RSpec::Core::Example8719Projects::DetectRepositoryLanguagesService8720 #execute8721 without previous detection8722 inserts new programming languages in the database8723 inserts the repository langauges8724 updates detected_repository_languages flag8725 with a previous detection8726 updates the repository languages8727 doesn't touch detected_repository_languages flag8728 when no repository exists8729 has no languages8730Gitlab::WikiFileFinder8731 #find8732 behaves like file finder8733 finds by path8734 finds by content8735RuboCop::Cop::Migration::BackgroundMigrationBaseClass8736 # order random8737 when the migration class inherits from the top-level namespaced BatchedMigrationJob8738 does not register any offenses8739 when the migration class does not inherit from anything8740 registers an offense8741 when the migration class inherits from the namespaced BatchedMigrationJob8742 does not register any offenses8743 when a nested class is used inside the job class8744 does not register any offenses8745 when the migration class inherits from BatchedMigrationJob8746 does not register any offenses8747 when the migration class inherits from another class8748 registers an offense8749Integrations::SlackOptionService8750 # order random8751 #execute8752 when action_id is assignee8753 executes the user search handler8754 when action_id is labels8755 executes the label search handler8756 when action_id is unknown8757 raises an error and does not execute a service class8758Gitlab::Database::Reindexing::Coordinator8759 #perform8760 when executed during the weekend8761 locking8762 acquires a lock while reindexing8763 does not perform reindexing actions if lease is not granted8764 notifications8765 sends #notify_start before reindexing8766 sends #notify_end after reindexing and updating the action is done8767 action tracking8768 calls #finish on the action8769 upon error, it still calls finish and raises the error8770 when executed during the week8771 does not start reindexing8772 #drop8773 when executed during the weekend8774 when exclusive lease is granted8775 drops the index with lock retries8776 when exclusive lease is not granted8777 does not drop the index8778 when executed during the week8779 does not start reindexing8780Featurable8781 .set_available_features8782 is expected to contain exactly :feature1, :feature2, and :feature38783 #*_enabled?8784 is expected to be falsey8785 is expected to be truthy8786 .quoted_access_level_column8787 returns the table name and quoted column name for a feature8788 .access_level_attribute8789 is expected to eq :feature1_access_level8790 raises error for unspecified feature8791 #access_level8792 returns access level8793 #feature_available?8794 when features are disabled8795 returns false8796 when features are enabled only for team members8797 when user is not present8798 returns false8799 when user can read all resources8800 returns true8801 when user cannot read all resources8802 raises NotImplementedError exception8803 when feature is enabled for everyone8804 returns true8805Gitlab::Ci::Pipeline::Quota::Deployments8806 #enabled?8807 when limit is enabled in plan8808 is enabled8809 when limit is not enabled8810 is not enabled8811 when limit does not exist8812 is enabled by default8813 #exceeded?8814 when limit is exceeded8815 is exceeded8816 when limit is not exceeded8817 is not exceeded8818 #message8819 when limit is exceeded8820 returns info about pipeline deployment limit exceeded8821ResourceEvents::IssueAssignmentEvent8822 # order random8823 validations8824 is expected to be valid8825 is expected to validate that :issue cannot be empty/falsy8826 associations8827 is expected to belong to user required: false8828 is expected to belong to issue required: false8829API::Helpers::PaginationStrategies8830 #paginate_with_strategies8831 yields paginated relation8832 calls #finalize with first value returned from block8833 returns whatever the block returns8834 with paginator_params8835 correctly passes multiple parameters8836 #paginator8837 offset pagination8838 when keyset pagination is available and enforced for the relation8839 when a request scope is given8840 when the scope limit is exceeded8841 renders a 405 error8842 when keyset pagination is not enforced8843 returns no errors8844 when the scope limit is not exceeded8845 delegates to OffsetPagination8846 when a request scope is not given8847 when the default limits are exceeded8848 renders a 405 error8849 when the default limits are not exceeded8850 delegates to OffsetPagination8851 when keyset pagination is not available for the relation8852 delegates to OffsetPagination8853 for keyset pagination8854 when keyset pagination is available8855 delegates to Pager8856 when keyset pagination is not available8857 renders a 501 error8858layouts/_head8859 escapes HTML-safe strings in page_title8860 escapes HTML-safe strings in page_description8861 escapes HTML-safe strings in page_image8862DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.8863Falling back to an asset that may be in the public folder.8864This behavior is deprecated and will be removed.8865To bypass the asset pipeline and preserve this behavior,8866use the `skip_pipeline: true` option.8867 (called from block in _app_views_layouts__loading_hints_html_haml__3562224630993650059_241247040 at /builds/gitlab-org/gitlab/app/views/layouts/_loading_hints.html.haml:13)8868DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.8869Falling back to an asset that may be in the public folder.8870This behavior is deprecated and will be removed.8871To bypass the asset pipeline and preserve this behavior,8872use the `skip_pipeline: true` option.8873 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:280)8874 adds selected syntax highlight stylesheet8875 when an asset_host is set8876 adds a link dns-prefetch tag8877 adds a link preconnect tag8878 when a Matomo config is set8879 add a Matomo Javascript8880 when matomo_disable_cookies is true8881 disables cookies8882layouts/_published_experiments8883 renders out data for all non-excluded, published experiments8884Gitlab::Database::BackgroundMigration::BatchOptimizer8885 #optimize8886 with unknown time efficiency, it keeps the batch size8887 with a time efficiency of 95%, it keeps the batch size8888 with a time efficiency of 90%, it keeps the batch size8889 with a time efficiency of 85%, it increases the batch size8890 with a time efficiency of 110%, it decreases the batch size8891 reaching the upper limit for an increase8892 caps the batch size multiplier at 20% when increasing8893 does not limit the decrease multiplier8894 reaching the upper limit for the batch size8895 caps the batch size at 10M8896 when max_batch_size is set8897 caps the batch size at max_batch_size8898 reaching the lower limit for the batch size8899 caps the batch size at 1k8900 when migration max_batch_size is less than MIN_BATCH_SIZE8901 does not raise an error8902Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker8903 #import8904 imports the issues and diff notes8905 #importers8906 when optional stage single_endpoint_notes_import is enabled8907 includes single endpoint diff notes importer8908 when optional stage single_endpoint_notes_import is disabled8909 includes default diff notes importer8910Gitlab::GithubImport::Importer::CollaboratorsImporter8911 # order random8912 #parallel_import8913 imports each collaborator in parallel8914 when collaborator is already imported8915 doesn't run importer on it8916 #execute8917 when running in parallel mode8918 imports collaborators in parallel8919 when running in sequential mode8920 imports collaborators in sequence8921 #each_object_to_import8922 yields every direct collaborator who is not an outside collaborator to the supplied block8923 when a collaborator has been already imported8924 does not yield anything8925 #parallel?8926 when parallel option is true8927 is expected to be parallel8928 when parallel option is false8929 is expected not to be parallel8930 #sequential_import8931 imports each collaborator in sequence8932 #id_for_already_imported_cache8933 returns the ID of the given note8934Gitlab::Import::Metrics8935 #track_start_import8936 when project is not a github import8937 does not emit importer metrics8938 when project is a github import8939 emits importer metrics8940 #track_failed_import8941 when project is not a github import8942 does not emit importer metrics8943 when project is a github import8944 emits importer metrics8945 #track_finished_import8946 when project is a github import8947 emits importer metrics8948 when import is partially completed8949 emits snowplow metrics8950 when project is not a github import8951 does not emit importer metrics8952 #track_cancelled_import8953 when project is not a github import8954 does not emit importer metrics8955 when project is a github import8956 emits importer metrics8957 #issues_counter8958 creates a counter for issues8959 #merge_requests_counter8960 creates a counter for issues8961Gitlab::Graphql::Loaders::BatchProjectStatisticsLoader8962 #find8963 only queries once for project statistics8964RuboCop::Cop::FileDecompression8965 # order random8966 flags the when using 'gzip' subshell command8967 flags the when using 'gzip' system command8968 flags the when using 'zip' system command8969 flags the when using 'gunzip' subshell command8970 flags the when using 'gunzip' system command8971 does not flag when using a system command not related to file decompression8972 flags the when using 'tar' system command8973 flags the when using 'tar' subshell command8974 flags the when using 'zip' subshell command8975Iso8601DateValidator8976 # order random8977 passes a valid date8978 errors on an invalid date8979Resolvers::UsersResolver8980 is expected to have nullable GraphQL type UserCoreConnection8981 #resolve8982 when no arguments are passed8983 returns all users8984 when both ids and usernames are passed8985 generates an error8986 when a set of IDs is passed8987 returns those users8988 when a set of usernames is passed8989 returns those users8990 when admins is true8991 returns only admins8992 when a search term is passed8993 returns all users who match8994 with anonymous access8995 prohibits search without usernames passed8996 prohibits search by username8997Gitlab::Database::Migrations::TestBackgroundRunner8998 without jobs to run8999 returns immediately9000 with jobs to run9001 finding pending background jobs9002 finds all the migrations9003 running migrations9004 runs the migration class correctly9005 runs the migration for a uniform amount of time9006 with multiple migrations to run9007 splits the time between migrations when all migrations use all their time9008 does not give leftover time to extra migrations9009RateLimitedService9010 RateLimitedError9011 #headers9012 returns a Hash of HTTP headers9013 #log_request9014 logs the request9015 RateLimiterScopedAndKeyed9016 #rate_limit!9017 when rate limiting is not in effect9018 does not raise an exception9019 when rate limiting is in effect9020 raises a RateLimitedError exception9021 #execute_without_rate_limiting9022 bypasses rate limiting9023 calls super9024 #execute9025 when rate_limit has not been called9026 raises an RateLimitedNotSetupError exception9027 when rate_limit has been called9028 and applies rate limiting9029 raises an RateLimitedService::RateLimitedError exception9030 but does not apply rate limiting9031 calls super9032Gitlab::Ci::Status::Build::Created9033 #illustration9034 is expected to include :image, :size, :title, and :content9035 .matches?9036 when build is created9037 is a correct match9038 when build is not created9039 does not match9040Types::MetadataType9041 is expected to eq "Metadata"9042 is expected to require graphql authorizations :read_instance_metadata9043Gitlab::GithubImport::Importer::PullRequests::ReviewRequestsImporter9044 # order random9045 #parallel_import9046 schedule import for each merge request reviewers9047 when merge request is already processed9048 doesn't schedule import this merge request reviewers9049 #sequential_import9050 imports each project merge request reviewers9051 when merge request is already processed9052 doesn't import this merge request reviewers9053Gitlab::ContainerRepository::Tags::Cache9054 #populate9055 with tags9056 gets values from redis9057 with cached values9058 gets values from redis9059 with no tags9060 behaves like not interacting with redis9061 does not interact with redis9062 #insert9063 with tags9064 inserts values in redis9065 with some of them already cached9066 behaves like not interacting with redis9067 does not interact with redis9068 with no tags9069 behaves like not interacting with redis9070 does not interact with redis9071 with no expires_in9072 behaves like not interacting with redis9073 does not interact with redis9074Gitlab::Ci::Status::Build::Pending9075 #illustration9076 is expected to include :image, :size, :title, and :content9077 .matches?9078 when build is pending9079 is a correct match9080 when build is not pending9081 does not match9082Sidebars::StaticMenu9083 # order random9084 #serialize_for_super_sidebar9085 returns flat list of all menu items9086Issues::CsvImport9087 associations9088 is expected to belong to project required: true9089 is expected to belong to user required: true9090BulkImports::Projects::Pipelines::PipelineSchedulesPipeline9091 imports schedule into destination project9092 is active9093 imports the schedule but active is false9094RuboCop::Cop::Migration::UpdateColumnInBatches9095 # order random9096 #external_dependency_checksum9097 is expected to eq "833525c0d9c95d066dbfc8d973153b44a1f8a42694b54de3aaa854cb9f72a6bd"9098 when in a post migration9099 behaves like a migration file with no spec file9100 registers an offense when using update_column_in_batches9101 behaves like a migration file with a spec file9102 does not register any offenses9103 when in migration9104 behaves like a migration file with no spec file9105 registers an offense when using update_column_in_batches9106 behaves like a migration file with a spec file9107 does not register any offenses9108 when outside of a migration9109 does not register any offenses9110 for EE migrations9111 when in a migration9112 behaves like a migration file with no spec file9113 registers an offense when using update_column_in_batches9114 behaves like a migration file with a spec file9115 does not register any offenses9116 when in a post migration9117 behaves like a migration file with no spec file9118 registers an offense when using update_column_in_batches9119 behaves like a migration file with a spec file9120 does not register any offenses9121Snippets::ScheduleBulkRepositoryShardMovesWorker9122 behaves like schedules bulk repository shard moves9123 #perform9124 is labeled as idempotent9125 performs multiple times sequentially without raising an exception9126 schedules container repository storage moves9127Types::ColorType9128 is expected to eq "Color"9129 coerces Color object into hex string9130 coerces an hex string into Color object9131 coerces an named Color into hex string9132 coerces an named color into Color object9133 rejects invalid input9134 rejects nil9135PerformanceMonitoring::PrometheusPanel9136 #new9137 accepts old schema format9138 accepts new schema format9139 .from_json9140 creates a PrometheusPanelGroup object9141 validations9142 json_content is not a hash9143 is expected to raise ActiveModel::ValidationError9144 when title is missing9145 is expected to raise ActiveModel::ValidationError9146 when metrics are missing9147 is expected to raise ActiveModel::ValidationError9148 .id9149 returns hexdigest of group_title, type and title as the panel id9150Groups::AcceptingProjectTransfersFinder9151 #execute9152 only returns groups where the user has access to transfer projects to9153Gitlab::QuickActions::SpendTimeAndDateSeparator9154 #execute9155 invalid paramenter in arg line9156 empty arg line9157 behaves like arg line with invalid parameters9158 return nil9159 future date in arg line9160 behaves like arg line with invalid parameters9161 return nil9162 unparseable date(invalid mixes of delimiters)9163 behaves like arg line with invalid parameters9164 return nil9165 trash in arg line9166 return nil as time value9167 only time present in arg line9168 behaves like arg line with valid parameters9169 return time and date array9170 simple time with date in arg line9171 behaves like arg line with valid parameters9172 return time and date array9173 composite time with date in arg line9174 behaves like arg line with valid parameters9175 return time and date array9176DesignManagement::Repository9177 returns the project's full path9178 returns the project's disk path9179 associations9180 is expected to belong to project required: false inverse_of => design_management_repository9181 validations9182 is expected to validate that :project cannot be empty/falsy9183 is expected to validate that :project is case-sensitively unique9184Tooling::Helpers::FileHandler9185 # order random9186 #write_array_to_file9187 when the output file does not exist9188 creates the file9189 when the output file is empty9190 writes the correct content to the file9191 when the content array is not sorted9192 sorts the array before writing it to file9193 when the output file is not empty9194 appends the correct content to the file9195 when the append flag is set to false9196 overwrites the previous content9197 #read_array_from_file9198 when the input file does not exist9199 creates the file9200 when the input file is not empty9201 returns the content of the file in an array9202Gitlab::GithubImport::Representation::PullRequestReview9203 .from_api_response9204 does not set the user if the response did not include a user9205 behaves like a PullRequest review9206 returns an instance of PullRequest9207 .from_json_hash9208 does not set the user if the response did not include a user9209 does not fail when submitted_at is blank9210 behaves like a PullRequest review9211 returns an instance of PullRequest9212 #github_identifiers9213 returns a hash with needed identifiers9214GoogleCloud::CreateCloudsqlInstanceWorker9215 when triggered9216 calls GoogleCloud::SetupCloudsqlInstanceService9217 when GoogleCloud::SetupCloudsqlInstanceService fails9218 raises error9219Constraints::UserUrlConstrainer9220 #matches?9221 valid request9222 is expected to be truthy9223 invalid request9224 is expected to be falsey9225 when the request matches a redirect route9226 and is a GET request9227 is expected to be truthy9228 and is NOT a GET request9229 is expected to be falsey9230ProjectCustomAttribute9231 assocations9232 is expected to belong to project required: false9233 validations9234 is expected to validate that :project cannot be empty/falsy9235 is expected to validate that :key cannot be empty/falsy9236 is expected to validate that :value cannot be empty/falsy9237 is expected to validate that :key is case-sensitively unique within the scope of :project_id9238PushEventPayload9239 behaves like having unique enum values9240 has unique values in "action"9241 has unique values in "ref_type"9242 saving payloads9243 does not allow commit messages longer than 70 characters9244BuildArtifactEntity9245 #as_json9246 contains job name9247 exposes information about expiration of artifacts9248 exposes the artifact download path9249 when project is specified in options9250 doesnt get a project from the artifact9251Gitlab::Database::HealthStatus::Indicators::AutovacuumActiveOnTable9252 # order random9253 #evaluate9254 without autovacuum activity9255 returns Normal signal9256 remembers the indicator class9257 with autovacuum activity9258 returns Stop signal9259 explains why9260 remembers the indicator class9261 returns NoSignal signal in case the feature flag is disabled9262BulkImports::ArchiveExtractionService9263 #execute9264 extracts files from archive and removes symlinks9265 when dir is not in tmpdir9266 raises an error9267 when archive file is a symlink9268 raises an error9269 when filepath is being traversed9270 raises an error9271Gitlab::SetupHelper::Workhorse9272 .make9273 when there is a gmake9274 returns gmake9275 when there is no gmake9276 returns make9277 .redis_url9278 matches the SharedState URL9279 .redis_db9280 matches the SharedState DB9281 defaults to 0 if unspecified9282Keys::CreateService9283 creates a key9284 notification9285 sends a notification9286Gitlab::Ci::Build::Artifacts::Adapters::GzipStream9287 #initialize9288 when stream is passed9289 initialized9290 when stream is not passed9291 raises an error9292 #each_blob9293 when stream is gzip file9294 when gzip file contains one file9295 iterates content and file_name9296 when gzip file contains three files9297 iterates content and file_name9298 when stream is zip file9299 raises an error9300Autocomplete::ActsAsTaggableOn::TagsFinder9301 #execute9302 with empty params9303 returns all tags9304 filter by search9305 with an empty search term9306 returns all tags9307 with a search containing 2 characters9308 returns the tag that strictly matches the search term9309 with a search containing 3 characters9310 returns the tag that partially matches the search term9311 limit9312 limits the result set by the limit constant9313Gitlab::Auth::Otp::Strategies::FortiAuthenticator::PushOtp9314 successful validation9315 returns success9316 unsuccessful validation9317 returns error9318 unexpected error9319 returns error9320Gitlab::Metrics::Dashboard::Stages::GrafanaFormatter9321 #transform!9322 when the query and resources are configured correctly9323 is expected to eq {:panel_groups=>[{:panels=>[{:metrics=>[{:id=>"In_0", :label=>"In", :prometheus_endpoint_path=>"/foo/...nstance=~\"localhost:9121\"}[1m]))"}], :title=>"Network I/O", :type=>"area-chart", :y_label=>""}]}]}9324 when a panelId is not included in the grafana_url9325 is expected to eq {:panel_groups=>[{:panels=>[{:metrics=>[{:id=>"In_0", :label=>"In", :prometheus_endpoint_path=>"/foo/...nstance=~\"localhost:9121\"}[1m]))"}], :title=>"Network I/O", :type=>"area-chart", :y_label=>""}]}]}9326 when there is also no valid panel in the dashboard9327 raises a processing error9328 when an input is invalid9329 raises a processing error9330Gitlab::Database::Migrations::LockRetriesHelpers9331 # order random9332 #with_lock_retries9333 sets the migration class name in the logs9334 does not raise on exhaustion by default9335 defaults to allowing subtransactions9336 raise_on_exhaustion: true9337 sets raise_on_exhaustion as requested9338 raise_on_exhaustion: false9339 sets raise_on_exhaustion as requested9340AccessTokensHelper9341 #scope_description9342 prefix: :personal_access_token, description_location: [:doorkeeper, :scope_desc]9343 is expected to eq [:doorkeeper, :scope_desc]9344 prefix: :project_access_token, description_location: [:doorkeeper, :project_access_token_scope_desc]9345 is expected to eq [:doorkeeper, :project_access_token_scope_desc]9346 #tokens_app_data9347 returns expected json9348 #expires_at_field_data9349 returns expected hash9350Types::Packages::Nuget::MetadatumType9351 includes nuget metadatum fields9352 projectUrl can be null9353 licenseUrl can be null9354 iconUrl can be null9355Gitlab::ApplicationRateLimiter::IncrementPerActionedResource9356 #increment9357 increments per resource9358 sets time to live (TTL) for the key9359 #read9360 returns 0 when there is no data9361 returns the correct value9362Gitlab::UsageDataCounters::RedisCounter9363 .increment9364 when usage_ping is disabled9365 counter is not increased9366 when usage_ping is enabled9367 counter is increased9368 .increment_by9369 when usage_ping is disabled9370 counter is not increased9371 when usage_ping is enabled9372 counter is increased9373Gitlab::Timeless9374 # order random9375 does not record created_at9376 disables record_timestamps temporarily9377 does not record updated_at9378Gitlab::Jira::Middleware9379 .jira_dvcs_connector?9380 returns true when DVCS connector9381 returns true if user agent starts with "Jira DVCS Connector"9382 returns false when not DVCS connector9383 #call9384 adjusts HTTP_AUTHORIZATION env when request from Jira DVCS user agent9385 does not change HTTP_AUTHORIZATION env when request is not from Jira DVCS user agent9386Gitlab::EmptySearchResults9387 #objects9388 returns an empty array9389 #formatted_count9390 returns a zero9391 #highlight_map9392 returns an empty hash9393 #aggregations9394 returns an empty array9395Users::CreateStatisticsWorker9396 #perform9397 when successful9398 create an users statistics entry9399 when unsuccessful9400 logs an error9401Gitlab::TabWidth9402 .css_class_for_user9403 returns default CSS class when user is nil9404 returns CSS class for user's tab width9405 raises if tab width is out of valid range9406Gitlab::WordDiff::Parser9407 #parse9408 returns a collection of lines9409 restarts object index after several calls to Enumerator9410 when diff is empty9411 is expected to eq []9412Gitlab::Database::SchemaValidation::SchemaObjects::Trigger9413 # order random9414 #name9415 returns schema object name9416 #table_name9417 returns schema object table_name9418 #statement9419 returns schema object statement9420InstanceMetadataPolicy9421 for any logged-in user9422 is expected to be allowed :read_instance_metadata9423 for anonymous users9424 is expected not to be allowed :read_instance_metadata9425Integrations::HarborSerializers::TagEntity9426 returns the Harbor artifact9427Gitlab::Email::Message::InProductMarketing::AdminVerify9428 public methods9429 returns value for series9430 #progress9431 on gitlab.com9432 is expected to eq "This is email 1 of 1 in the Admin series."9433 not on gitlab.com9434 is expected to include "This is email 1 of 1 in the Admin series" and "http://localhost/-/profile/notifications"9435Gitlab::GithubImport::SingleEndpointNotesImporting9436 #parent_collection9437 is expected to raise NotImplementedError9438 #parent_imported_cache_key9439 is expected to raise NotImplementedError9440 #page_counter_id9441 is expected to raise NotImplementedError9442Resolvers::PackageDetailsResolver9443 #resolve9444 is expected to eq #<Packages::Package id: 66, project_id: 1052, created_at: "2023-06-26 14:54:13.798707890 +0000", upda...on: "1.0.1", package_type: "composer", creator_id: 1834, status: "default", last_downloaded_at: nil>9445Types::Achievements::UserAchievementType9446 # order random9447 is expected to have graphql fields "id", "achievement", "user", "awarded_by_user", "revoked_by_user", "created_at", "updated_at", and "revoked_at"9448 is expected to require graphql authorizations :read_user_achievement9449 is expected to eq "UserAchievement"9450Types::Clusters::AgentActivityEventType9451 is expected to eq "ClusterAgentActivityEvent"9452 is expected to require graphql authorizations :read_cluster_agent9453 is expected to have graphql fields :recorded_at, :kind, :level, :user, and :agent_token9454MoveToProjectEntity9455 #as_json9456 includes the project ID9457 includes the human-readable full path9458 includes the full path9459Gitlab::Database::LoadBalancing::ActionCableCallbacks9460 .wrapper9461 releases the connection and clears the session9462 with an exception9463 releases the connection and clears the session9464MemberInvitationReminderEmailsWorker9465 #perform9466 executes the invitation reminder email service9467Gitlab::Utils::ExecutionTracker9468 # order random9469 #over_limit?9470 is true when max runtime is exceeded9471 is false when max runtime is not exceeded9472Types::MergeRequestSortEnum9473 is expected to eq "MergeRequestSort"9474 exposes all the existing issue sort values9475 behaves like common sort values9476 exposes all the existing common sort values9477Types::ContainerExpirationPolicyOlderThanEnum9478 behaves like exposing container expiration policy option9479 exposes all options9480 uses all possible options from model9481Gitlab::Ci::Interpolation::Context9482 # order random9483 when interpolation context is too complex9484 raises an exception9485 #depth9486 returns a max depth of the hash9487Gitlab::Metrics::Dashboard::Transformers::Yml::V1::PrometheusMetrics9488 #execute9489 valid dashboard9490 returns collection of metrics with correct attributes9491 invalid dashboard9492 raises missing attribute error9493Gitlab::RenderTimeout9494 utilizes timeout for web9495 utilizes longer timeout for sidekiq9496Banzai::Pipeline::EmojiPipeline9497 replaces emoji9498 filters out HTML tags9499RuboCop::Cop::Database::RescueQueryCanceled9500 # order random9501 flags the use of ActiveRecord::QueryCanceled9502 does not flag a different exception9503Gitlab::SlashCommands::Presenters::Error9504 is expected to be a kind of Hash9505 shows the error message9506Gitlab::Database::TransactionTimeoutSettings9507 # order random9508 #disable_timeouts9509 sets timeouts to 09510 #restore_timeouts9511 resets value9512Types::Packages::Cleanup::KeepDuplicatedPackageFilesEnum9513 exposes all options9514 uses all possible options from model9515Gitlab::Emoji9516 .gl_emoji_tag9517 returns gl emoji tag if emoji is found9518 returns nil if emoji is not found9519Gitlab::ErrorTracking::Logger9520 .capture_exception9521 calls Gitlab::ErrorTracking::Logger.error with formatted log entry9522Resolvers::PackagesBaseResolver9523 #resolve9524 throws an error9525Gitlab::Usage::Metrics::Instrumentations::UuidMetric9526 behaves like a correct instrumented metric value9527 has correct value9528Types::ReleaseAssetLinkType9529 is expected to require graphql authorizations :read_release9530 has the expected fields9531Gitlab::Database::SchemaValidation::Validators::MissingTableColumns9532 # order random9533 returns table inconsistencies9534users/_profile_basic_info9535 # order random9536 renders the join date9537Types::PermissionTypes::Deployment9538 # order random9539 is expected to include graphql fields :update_deployment and :destroy_deployment9540Types::Ci::PipelineScheduleType9541 # order random9542 is expected to expose permissions using Types::PermissionTypes::Ci::PipelineSchedules9543Evidences::EvidenceSerializer9544 represents an EvidenceEntity entity9545Gitlab::Usage::Metrics::Instrumentations::DatabaseMode9546 # order random9547 behaves like a correct instrumented metric value9548 has correct value9549#<Class:0x00007d8934fc9c30>9550 # order random9551 has the expected fields9552Knapsack report was generated. Preview:9553{9554 "spec/models/ci/pipeline_spec.rb": 213.42337236299863,9555 "spec/lib/gitlab/git/repository_spec.rb": 106.33428635400014,9556 "spec/models/concerns/issuable_spec.rb": 113.40579136100132,9557 "spec/services/notes/quick_actions_service_spec.rb": 85.61897998600034,9558 "spec/models/event_spec.rb": 68.3503278749995,9559 "spec/services/boards/issues/move_service_spec.rb": 64.63225006900029,9560 "spec/services/packages/npm/create_package_service_spec.rb": 58.90292942400083,9561 "spec/models/environment_status_spec.rb": 52.397325203000946,9562 "spec/finders/ci/runners_finder_spec.rb": 23.10747123799956,9563 "spec/graphql/resolvers/project_issues_resolver_spec.rb": 26.84443869200004,9564 "spec/lib/gitlab/gfm/reference_rewriter_spec.rb": 49.99259221600005,9565 "spec/helpers/groups_helper_spec.rb": 17.655991468998764,9566 "spec/lib/gitlab/database/lock_writes_manager_spec.rb": 35.02195319100065,9567 "spec/uploaders/attachment_uploader_spec.rb": 32.34446427699913,9568 "spec/helpers/gitlab_routing_helper_spec.rb": 13.104866012999992,9569 "spec/helpers/blob_helper_spec.rb": 16.008448306998616,9570 "spec/models/integrations/telegram_spec.rb": 10.066078320000088,9571 "spec/helpers/packages_helper_spec.rb": 8.141236882000157,9572 "spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb": 26.92247379499895,9573 "spec/models/terraform/state_version_spec.rb": 22.331688673000826,9574 "spec/services/ci/play_build_service_spec.rb": 18.47212781899907,9575 "spec/models/integrations/pipelines_email_spec.rb": 10.064189229000476,9576 "spec/models/timelog_spec.rb": 17.509543283000312,9577 "spec/services/projects/after_rename_service_spec.rb": 16.91811395699915,9578 "spec/lib/api/entities/snippet_spec.rb": 6.793034805999923,9579 "spec/lib/banzai/filter/audio_link_filter_spec.rb": 15.445131435000803,9580 "spec/models/clusters/integrations/prometheus_spec.rb": 13.674595715001487,9581 "spec/services/admin/set_feature_flag_service_spec.rb": 5.205636789998607,9582 "spec/services/projects/hashed_storage/migrate_repository_service_spec.rb": 15.493147859999226,9583 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 12.470044242001677,9584 "spec/lib/gitlab/ci/config/entry/bridge_spec.rb": 3.84103551500084,9585 "spec/lib/gitlab/verify/uploads_spec.rb": 9.176830862001225,9586 "spec/models/deployment_metrics_spec.rb": 15.46245828499923,9587 "spec/services/snippets/update_statistics_service_spec.rb": 12.711881133998759,9588 "spec/models/protectable_dropdown_spec.rb": 11.043196600001465,9589 "spec/bin/audit_event_type_spec.rb": 3.616941725000288,9590 "spec/workers/container_registry/migration/guard_worker_spec.rb": 7.846429687999262,9591 "spec/graphql/mutations/releases/delete_spec.rb": 7.175024505999318,9592 "spec/finders/crm/contacts_finder_spec.rb": 5.760150149000765,9593 "spec/models/ci/resource_group_spec.rb": 8.587453062998975,9594 "spec/lib/container_registry/blob_spec.rb": 9.280268002999946,9595 "spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb": 3.012711618001049,9596 "spec/services/repositories/housekeeping_service_spec.rb": 2.812313835000168,9597 "spec/models/packages/debian/group_component_file_spec.rb": 2.2319483369992668,9598 "spec/models/packages/npm/metadata_cache_spec.rb": 2.2378105860007054,9599 "spec/models/ci/build_trace_chunks/fog_spec.rb": 7.756356804999086,9600 "spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb": 5.530790378999882,9601 "spec/lib/gitlab/legacy_github_import/project_creator_spec.rb": 9.331241939000392,9602 "spec/lib/gitlab/redis/chat_spec.rb": 2.279264961000081,9603 "spec/services/service_response_spec.rb": 1.4104158770005597,9604 "spec/finders/user_recent_events_finder_spec.rb": 5.837351962998582,9605 "spec/lib/banzai/filter/emoji_filter_spec.rb": 1.2565123709991894,9606 "spec/services/ci/stuck_builds/drop_pending_service_spec.rb": 3.163649385000099,9607 "spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb": 4.142881640000269,9608 "spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb": 4.436761204999129,9609 "spec/lib/gitlab/data_builder/deployment_spec.rb": 7.252351888999328,9610 "spec/lib/gitlab/github_import/representation/issue_spec.rb": 1.7835632349997468,9611 "spec/models/prometheus_alert_event_spec.rb": 3.193113102001007,9612 "spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb": 5.0684414690003905,9613 "spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb": 1.506502977999844,9614 "spec/helpers/nav_helper_spec.rb": 3.4095113140010653,9615 "spec/tooling/graphql/docs/renderer_spec.rb": 1.4900566000014805,9616 "spec/presenters/snippet_presenter_spec.rb": 3.762249442999746,9617 "spec/graphql/mutations/container_repositories/destroy_tags_spec.rb": 2.777005628999177,9618 "spec/models/oauth_access_token_spec.rb": 4.121522142000686,9619 "spec/services/ci/create_pipeline_service/parallel_spec.rb": 3.701134818000355,9620 "spec/lib/gitlab/ci/pipeline/logger_spec.rb": 1.5758432729999186,9621 "spec/models/users/credit_card_validation_spec.rb": 5.0512920709988975,9622 "spec/policies/base_policy_spec.rb": 1.7829681050006911,9623 "spec/services/incident_management/issuable_escalation_statuses/prepare_update_service_spec.rb": 3.443509761000314,9624 "spec/lib/api/helpers/packages/npm_spec.rb": 2.053372301001218,9625 "spec/graphql/mutations/todos/restore_many_spec.rb": 4.004009662001408,9626 "spec/workers/pipeline_process_worker_spec.rb": 4.95994298900041,9627 "spec/models/ml/experiment_spec.rb": 3.0454404649990465,9628 "spec/lib/gitlab/database/partitioning/time_partition_spec.rb": 1.261831349998829,9629 "spec/lib/gitlab/file_hook_spec.rb": 5.0098511449996295,9630 "spec/workers/bulk_imports/pipeline_worker_spec.rb": 2.322539418000815,9631 "spec/models/users_star_project_spec.rb": 1.744330939000065,9632 "spec/models/integrations/bugzilla_spec.rb": 1.8612301279990788,9633 "spec/lib/gitlab/import_export/uploads_manager_spec.rb": 3.679083200000605,9634 "spec/lib/gitlab/tracking/service_ping_context_spec.rb": 0.7957155610001792,9635 "spec/lib/gitlab/ci/runner/metrics_spec.rb": 2.955011502999696,9636 "spec/services/dependency_proxy/auth_token_service_spec.rb": 0.9704101250008534,9637 "spec/workers/pages_domain_verification_cron_worker_spec.rb": 3.3423089400002937,9638 "spec/workers/bulk_imports/relation_export_worker_spec.rb": 2.2483588550003333,9639 "spec/graphql/mutations/issues/set_subscription_spec.rb": 2.4352521979999437,9640 "spec/services/projects/update_statistics_service_spec.rb": 2.313180049000948,9641 "spec/models/concerns/cacheable_attributes_spec.rb": 2.1529774329992506,9642 "spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb": 3.4584152989991708,9643 "spec/lib/sidebars/projects/menus/issues_menu_spec.rb": 1.6295396679997793,9644 "spec/serializers/deployment_serializer_spec.rb": 3.609175416000653,9645 "spec/components/pajamas/checkbox_component_spec.rb": 0.8772110139998404,9646 "spec/lib/gitlab/hook_data/base_builder_spec.rb": 0.9804187250010727,9647 "spec/services/ci/create_pipeline_service/environment_spec.rb": 3.0619090429991047,9648 "spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb": 0.9877912339998147,9649 "spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb": 2.361141254999893,9650 "spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb": 1.14611990999947,9651 "spec/workers/packages/debian/cleanup_dangling_package_files_worker_spec.rb": 1.6862353840006108,9652 "spec/lib/gitlab/uuid_spec.rb": 0.9545008670011157,9653 "spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb": 1.8633828980000544,9654 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb": 1.5680547330011905,9655 "spec/lib/gitlab/hook_data/project_builder_spec.rb": 1.4108279969987052,9656 "spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb": 2.765732769999886,9657 "spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb": 3.2127967699998408,9658 "spec/lib/gitlab/etag_caching/store_spec.rb": 0.6263084559996059,9659 "spec/initializers/mail_encoding_patch_spec.rb": 0.923492490001081,9660 "spec/rubocop/cop/gitlab/rails_logger_spec.rb": 0.7200722569996287,9661 "spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb": 1.150073490000068,9662 "spec/models/project_export_job_spec.rb": 3.540600511998491,9663 "spec/lib/gitlab/import_export/base/object_builder_spec.rb": 3.125546327999473,9664 "spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb": 1.1442336510008317,9665 "spec/models/clusters/agents/authorizations/ci_access/implicit_authorization_spec.rb": 0.8961261610002111,9666 "spec/lib/sidebars/admin/menus/monitoring_menu_spec.rb": 0.8230396279996057,9667 "spec/serializers/stage_serializer_spec.rb": 3.9063730299985764,9668 "spec/lib/gitlab/sql/glob_spec.rb": 0.4601396400012163,9669 "spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb": 1.6394998880005005,9670 "spec/services/system_hooks_service_spec.rb": 1.6105166800007282,9671 "spec/uploaders/object_storage/cdn/google_ip_cache_spec.rb": 0.9677200950009137,9672 "spec/services/ci/update_pending_build_service_spec.rb": 1.5506874849997985,9673 "spec/lib/gitlab/git/remote_mirror_spec.rb": 2.054912311999942,9674 "spec/models/abuse/user_trust_score_spec.rb": 1.0055061019993445,9675 "spec/models/integrations/base_third_party_wiki_spec.rb": 0.9837935340001422,9676 "spec/finders/award_emojis_finder_spec.rb": 2.081805578998683,9677 "spec/rubocop/cop/performance/active_record_subtransaction_methods_spec.rb": 0.6400216340007319,9678 "spec/lib/bulk_imports/pipeline/extracted_data_spec.rb": 0.5329441140002018,9679 "spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb": 3.345807269000943,9680 "spec/lib/gitlab/import_export/repo_saver_spec.rb": 3.3436701490009,9681 "spec/helpers/time_zone_helper_spec.rb": 1.3557596919999924,9682 "spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb": 1.6365034579994244,9683 "spec/services/users/ban_service_spec.rb": 2.0343869130010717,9684 "spec/services/packages/mark_package_for_destruction_service_spec.rb": 1.3609195119988726,9685 "spec/helpers/recaptcha_helper_spec.rb": 0.6393420539989165,9686 "spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb": 0.8057301700009702,9687 "spec/lib/gitlab/private_commit_email_spec.rb": 0.8449791570001253,9688 "spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb": 0.48858538800050155,9689 "spec/graphql/types/ci/detailed_status_type_spec.rb": 0.8220708480002941,9690 "spec/graphql/types/repository/blob_type_spec.rb": 0.46894265900118626,9691 "spec/models/ci/build_pending_state_spec.rb": 2.4451781770003436,9692 "spec/models/work_items/widgets/base_spec.rb": 0.7944442919997527,9693 "spec/tooling/rspec_flaky/example_spec.rb": 0.7504453750007087,9694 "spec/services/projects/detect_repository_languages_service_spec.rb": 2.3035628699999506,9695 "spec/lib/gitlab/wiki_file_finder_spec.rb": 1.9948387360000197,9696 "spec/rubocop/cop/migration/background_migration_base_class_spec.rb": 0.6057762970012845,9697 "spec/services/integrations/slack_option_service_spec.rb": 0.8510386959987954,9698 "spec/lib/gitlab/database/reindexing/coordinator_spec.rb": 1.0194835309994232,9699 "spec/models/concerns/featurable_spec.rb": 0.9238626000005752,9700 "spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb": 1.4301806450002914,9701 "spec/models/resource_events/issue_assignment_event_spec.rb": 0.6408481750004285,9702 "spec/lib/api/helpers/pagination_strategies_spec.rb": 0.9743000250000478,9703 "spec/views/layouts/_head.html.haml_spec.rb": 1.7095471609991364,9704 "spec/views/layouts/_published_experiments.html.haml_spec.rb": 0.49945577700054855,9705 "spec/lib/gitlab/database/background_migration/batch_optimizer_spec.rb": 0.979715784000291,9706 "spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb": 3.2978656639988913,9707 "spec/lib/gitlab/github_import/importer/collaborators_importer_spec.rb": 0.7891812409998238,9708 "spec/lib/gitlab/import/metrics_spec.rb": 0.8988014820006356,9709 "spec/lib/gitlab/graphql/loaders/batch_project_statistics_loader_spec.rb": 1.1958684960009123,9710 "spec/rubocop/cop/file_decompression_spec.rb": 0.7574338640006317,9711 "spec/validators/iso8601_date_validator_spec.rb": 0.4188951439991797,9712 "spec/graphql/resolvers/users_resolver_spec.rb": 1.2194196749987896,9713 "spec/lib/gitlab/database/migrations/test_background_runner_spec.rb": 1.305450646999816,9714 "spec/services/concerns/rate_limited_service_spec.rb": 1.2853912979990127,9715 "spec/lib/gitlab/ci/status/build/created_spec.rb": 1.7646852959987882,9716 "spec/graphql/types/metadata_type_spec.rb": 0.42063707300076203,9717 "spec/lib/gitlab/github_import/importer/pull_requests/review_requests_importer_spec.rb": 1.6308523879997665,9718 "spec/lib/gitlab/container_repository/tags/cache_spec.rb": 0.9103217110005062,9719 "spec/lib/gitlab/ci/status/build/pending_spec.rb": 1.6916353629985679,9720 "spec/lib/sidebars/static_menu_spec.rb": 0.36020867799925327,9721 "spec/models/issues/csv_import_spec.rb": 0.44946217100005015,9722 "spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb": 1.5450713259997428,9723 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 0.8076956490003795,9724 "spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.2290643039996212,9725 "spec/graphql/types/color_type_spec.rb": 0.5845596679992013,9726 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 0.6076300570002786,9727 "spec/finders/groups/accepting_project_transfers_finder_spec.rb": 1.7815121849998832,9728 "spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb": 0.6791741709985217,9729 "spec/models/design_management/repository_spec.rb": 0.8253550579993316,9730 "spec/tooling/lib/tooling/helpers/file_handler_spec.rb": 0.582965958999921,9731 "spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb": 0.53822096300064,9732 "spec/workers/google_cloud/create_cloudsql_instance_worker_spec.rb": 1.3319335850010248,9733 "spec/lib/constraints/user_url_constrainer_spec.rb": 1.0440044989991293,9734 "spec/models/project_custom_attribute_spec.rb": 0.9717692249996617,9735 "spec/models/push_event_payload_spec.rb": 0.971861906000413,9736 "spec/serializers/build_artifact_entity_spec.rb": 0.8748504550003418,9737 "spec/lib/gitlab/database/health_status/indicators/autovacuum_active_on_table_spec.rb": 0.6357913849988108,9738 "spec/services/bulk_imports/archive_extraction_service_spec.rb": 0.6380135349991178,9739 "spec/lib/gitlab/setup_helper/workhorse_spec.rb": 0.5405027840006369,9740 "spec/services/keys/create_service_spec.rb": 1.1143441740005073,9741 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.625108395001007,9742 "spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb": 0.6245279960003245,9743 "spec/lib/gitlab/auth/otp/strategies/forti_authenticator/push_otp_spec.rb": 0.6298027350003395,9744 "spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb": 0.7694393130004755,9745 "spec/lib/gitlab/database/migrations/lock_retries_helpers_spec.rb": 0.5104585949993634,9746 "spec/helpers/access_tokens_helper_spec.rb": 0.5236923249995016,9747 "spec/graphql/types/packages/nuget/metadatum_type_spec.rb": 0.4712298289996397,9748 "spec/lib/gitlab/application_rate_limiter/increment_per_actioned_resource_spec.rb": 0.5048587359997327,9749 "spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb": 0.5406615729989426,9750 "spec/lib/gitlab/timeless_spec.rb": 0.7376130760003434,9751 "spec/lib/gitlab/jira/middleware_spec.rb": 0.49564214600104606,9752 "spec/lib/gitlab/empty_search_results_spec.rb": 0.48906754800009367,9753 "spec/workers/users/create_statistics_worker_spec.rb": 0.69754889899923,9754 "spec/lib/gitlab/tab_width_spec.rb": 0.4487297409996245,9755 "spec/lib/gitlab/word_diff/parser_spec.rb": 0.43708684199918935,9756 "spec/lib/gitlab/database/schema_validation/schema_objects/trigger_spec.rb": 0.42951954300042416,9757 "spec/policies/instance_metadata_policy_spec.rb": 0.5236908040005801,9758 "spec/serializers/integrations/harbor_serializers/tag_entity_spec.rb": 0.7045475089998945,9759 "spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb": 0.49860483599877625,9760 "spec/lib/gitlab/github_import/single_endpoint_notes_importing_spec.rb": 0.45627997100018547,9761 "spec/graphql/resolvers/package_details_resolver_spec.rb": 0.7041031589997147,9762 "spec/graphql/types/achievements/user_achievement_type_spec.rb": 0.5134090450010262,9763 "spec/graphql/types/clusters/agent_activity_event_type_spec.rb": 0.5452311420012848,9764 "spec/serializers/move_to_project_entity_spec.rb": 0.507537866000348,9765 "spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb": 0.38849329599906923,9766 "spec/workers/member_invitation_reminder_emails_worker_spec.rb": 0.7025727290001669,9767 "spec/lib/gitlab/utils/execution_tracker_spec.rb": 0.41011693500149704,9768 "spec/graphql/types/merge_request_sort_enum_spec.rb": 0.4165385440010141,9769 "spec/graphql/types/container_expiration_policy_older_than_enum_spec.rb": 0.41129179499876045,9770 "spec/lib/gitlab/ci/interpolation/context_spec.rb": 0.41836111299926415,9771 "spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb": 0.4386008720011887,9772 "spec/lib/gitlab/render_timeout_spec.rb": 0.44185689100049785,9773 "spec/lib/banzai/pipeline/emoji_pipeline_spec.rb": 0.41098047500054236,9774 "spec/rubocop/cop/database/rescue_query_canceled_spec.rb": 0.42007765300149913,9775 "spec/lib/gitlab/slash_commands/presenters/error_spec.rb": 0.4321991720007645,9776 "spec/lib/gitlab/database/transaction_timeout_settings_spec.rb": 0.421610404000603,9777 "spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb": 0.40907488400080183,9778 "spec/lib/gitlab/emoji_spec.rb": 0.42474541299998236,9779 "spec/lib/gitlab/error_tracking/logger_spec.rb": 0.3688185680002789,9780 "spec/graphql/resolvers/packages_base_resolver_spec.rb": 0.3857546969993564,9781 "spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb": 0.39392597599908186,9782 "spec/graphql/types/release_asset_link_type_spec.rb": 0.4203979129997606,9783 "spec/lib/gitlab/database/schema_validation/validators/missing_table_columns_spec.rb": 0.3953424850005831,9784 "spec/views/users/_profile_basic_info.html.haml_spec.rb": 0.44793806100096845,9785 "spec/graphql/types/permission_types/deployment_spec.rb": 0.3844438270007231,9786 "spec/graphql/types/permission_types/ci/pipeline_schedule_type_spec.rb": 0.3796366669994313,9787 "spec/serializers/evidences/evidence_serializer_spec.rb": 0.37661939700046787,9788 "spec/lib/gitlab/usage/metrics/instrumentations/database_mode_spec.rb": 0.38358036700083176,9789 "spec/graphql/types/ci/group_variable_connection_type_spec.rb": 0.418848854000316359790}9791Knapsack global time execution for tests: 26m 20s9792Pending: (Failures listed here are expected and do not affect your suite's status)9793 1) Ci::Pipeline modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is required when creating an object raises an error if the internal id is blank9794 # No reason given9795 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:229796 2) Ci::Pipeline modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is required when updating an object raises an error if the internal id is blank9797 # No reason given9798 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:289799 3) AttachmentUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 9800 # No pattern provided, skipping.9801 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89802 4) AttachmentUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 9803 # No pattern provided, skipping.9804 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89805 5) AttachmentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9806 # No pattern provided, skipping.9807 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89808 6) AttachmentUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9809 # No pattern provided, skipping.9810 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89811 7) AttachmentUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9812 # No pattern provided, skipping.9813 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89814 8) AttachmentUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9815 # No pattern provided, skipping.9816 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89817 9) AttachmentUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9818 # No pattern provided, skipping.9819 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89820 10) Ci::ResourceGroup#assign_resource_to retains resource for the processable9821 # Skipping partitioning tests until `ci_builds` is partitioned9822 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9823 RSpec::Core::Pending::SkipDeclaredInExample9824 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9825 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9826 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9827 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9828 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9829 11) Ci::ResourceGroup#assign_resource_to when there are no free resources fails to retain resource9830 # Skipping partitioning tests until `ci_builds` is partitioned9831 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9832 RSpec::Core::Pending::SkipDeclaredInExample9833 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9834 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9835 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9836 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9837 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9838 12) Ci::ResourceGroup#assign_resource_to when the build has already retained a resource fails to retain resource9839 # Skipping partitioning tests until `ci_builds` is partitioned9840 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9841 RSpec::Core::Pending::SkipDeclaredInExample9842 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9843 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9844 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9845 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9846 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9847 13) Ci::ResourceGroup#release_resource_from when the build has already retained a resource releases resource from the build9848 # Skipping partitioning tests until `ci_builds` is partitioned9849 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9850 RSpec::Core::Pending::SkipDeclaredInExample9851 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9852 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9853 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9854 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9855 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9856 14) Ci::ResourceGroup#release_resource_from when the build has already released a resource fails to release resource9857 # Skipping partitioning tests until `ci_builds` is partitioned9858 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'9859 RSpec::Core::Pending::SkipDeclaredInExample9860 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'9861 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'9862 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9863 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9864 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9865Finished in 26 minutes 25 seconds (files took 1 minute 57.71 seconds to load)98664257 examples, 0 failures, 14 pending9867Randomized with seed 328089868[TEST PROF INFO] Time spent in factories: 14:08.644 (51.98% of total time)9869RSpec exited with 0.9870No examples to retry, congrats!9872Running after script...9873$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9880Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9882Uploading artifacts...9883coverage/: found 5 matching artifact files and directories 9884WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9885deprecations/: found 7 matching artifact files and directories 9886knapsack/: found 4 matching artifact files and directories 9887query_recorder/: found 2 matching artifact files and directories 9888rspec/: found 10 matching artifact files and directories 9889WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9890log/*.log: found 20 matching artifact files and directories 9891WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4541357744/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9892WARNING: Retrying... context=artifacts-uploader error=request redirected9893Uploading artifacts as "archive" to coordinator... 201 Created id=4541357744 responseStatus=201 Created token=64_2CsGY9894Uploading artifacts...9895rspec/rspec-*.xml: found 1 matching artifact files and directories 9896WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4541357744/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9897WARNING: Retrying... context=artifacts-uploader error=request redirected9898Uploading artifacts as "junit" to coordinator... 201 Created id=4541357744 responseStatus=201 Created token=64_2CsGY9900Job succeeded