rspec unit pg13 16/28
Passed Started
by
@fabiopitino
Fabio Pitino
1Running with gitlab-runner 16.1.0~beta.5.gf131a6a2 (f131a6a2)2 on blue-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 1zzGUpzq, system ID: s_fc31da7ae46e3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:73740c557807c4bc5d692f263c0e35454270600da4b22bbe952331411426c8b5 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:3174001f839c42e299ac06a42f8ded446edfcb33b0eb820874749a3f53eb799c ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...25Running on runner-1zzgupzq-project-278964-concurrent-0 via runner-1zzgupzq-private-1685686890-98bb09e7...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 139970, done. 31remote: Counting objects: 100% (139970/139970), done. 32remote: Compressing objects: 100% (94736/94736), done. 33remote: Total 139970 (delta 61223), reused 92035 (delta 39894), pack-reused 0 34Receiving objects: 100% (139970/139970), 123.36 MiB | 31.45 MiB/s, done.35Resolving deltas: 100% (61223/61223), done.37 * [new ref] refs/pipelines/887306308 -> refs/pipelines/88730630838Checking out 95754c79 as detached HEAD (ref is refs/merge-requests/122015/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets (4400964016)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964016 responseStatus=200 OK token=64_heLNq48Downloading artifacts for detect-tests (4400964025)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964025 responseStatus=200 OK token=64_heLNq50Downloading artifacts for retrieve-tests-metadata (4400964028)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964028 responseStatus=200 OK token=64_heLNq52Downloading artifacts for setup-test-env (4400964019)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964019 responseStatus=200 OK token=64_heLNq55Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh716Using decomposed database config (config/database.yml.decomposed-postgresql)717Geo DB won't be set up.718Embedding DB won't be set up.734$ source ./scripts/rspec_helpers.sh735$ run_timed_command "gem install knapsack --no-document"736$ gem install knapsack --no-document737Successfully installed knapsack-4.0.07381 gem installed739==> 'gem install knapsack --no-document' succeeded in 1 seconds.740$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"742$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"747$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"748$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"749SKIP_FLAKY_TESTS_AUTOMATICALLY: 750RETRY_FAILED_TESTS_IN_NEW_PROCESS: true751KNAPSACK_GENERATE_REPORT: true752FLAKY_RSPEC_GENERATE_REPORT: true753KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb754KNAPSACK_LOG_LEVEL: debug755KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_16_28_report.json756FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json757FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_16_28_report.json758NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_16_28_report.json759SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13_16_28.txt760CRYSTALBALL: 761RSPEC_TESTS_MAPPING_ENABLED: 762RSPEC_TESTS_FILTER_FILE: 763Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-4400964235.json --format RspecJunitFormatter --out rspec/rspec-4400964235.xml --tag ~quarantine --tag ~level:background_migration -- spec/lib/gitlab/git_access_spec.rb spec/lib/gitlab/import_export/project/tree_restorer_spec.rb spec/lib/gitlab/merge_requests/message_generator_spec.rb spec/services/projects/destroy_service_spec.rb spec/scripts/lib/glfm/update_specification_spec.rb spec/models/todo_spec.rb spec/models/ci/build_trace_chunk_spec.rb spec/models/design_management/design_spec.rb spec/services/alert_management/process_prometheus_alert_service_spec.rb spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb spec/lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route_spec.rb spec/models/sent_notification_spec.rb spec/models/design_management/design_at_version_spec.rb spec/lib/backup/repositories_spec.rb spec/models/resource_label_event_spec.rb spec/models/jira_import_state_spec.rb spec/lib/banzai/filter/references/user_reference_filter_spec.rb spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb spec/models/ci/build_dependencies_spec.rb spec/models/commit_collection_spec.rb spec/lib/api/entities/user_spec.rb spec/services/groups/create_service_spec.rb spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb spec/lib/gitlab/database/transaction/observer_spec.rb spec/models/commit_range_spec.rb spec/lib/gitlab/json_spec.rb spec/models/dev_ops_report/metric_spec.rb spec/finders/packages/build_infos_finder_spec.rb spec/finders/events_finder_spec.rb spec/graphql/mutations/merge_requests/set_assignees_spec.rb spec/policies/work_item_policy_spec.rb spec/models/active_session_spec.rb spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb spec/lib/gitlab/ci/config/entry/processable_spec.rb spec/models/ci/build_trace_chunks/fog_spec.rb spec/services/ci/create_pipeline_service/parent_child_pipeline_spec.rb spec/finders/releases_finder_spec.rb spec/models/concerns/each_batch_spec.rb spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb spec/workers/container_registry/migration/guard_worker_spec.rb spec/finders/merge_requests/oldest_per_commit_finder_spec.rb spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb spec/initializers/load_balancing_spec.rb spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb spec/services/search/global_service_spec.rb spec/tasks/gitlab/artifacts/migrate_rake_spec.rb spec/lib/gitlab/jira_import_spec.rb spec/policies/ci/pipeline_policy_spec.rb spec/lib/grafana/client_spec.rb spec/lib/gitlab/suggestions/commit_message_spec.rb spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb spec/workers/prune_old_events_worker_spec.rb spec/models/integrations/redmine_spec.rb spec/lib/gitlab/auth/current_user_mode_spec.rb spec/lib/sidebars/projects/menus/analytics_menu_spec.rb spec/graphql/mutations/container_expiration_policies/update_spec.rb spec/models/ci_platform_metric_spec.rb spec/models/ci/resource_spec.rb spec/policies/base_policy_spec.rb spec/finders/design_management/versions_finder_spec.rb spec/models/dependency_proxy/manifest_spec.rb spec/lib/bulk_imports/ndjson_pipeline_spec.rb spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb spec/serializers/merge_request_metrics_helper_spec.rb spec/lib/gitlab/path_traversal_spec.rb spec/lib/gitlab/ci/config/entry/service_spec.rb spec/services/feature_flags/update_service_spec.rb spec/workers/projects/post_creation_worker_spec.rb spec/components/pajamas/banner_component_spec.rb spec/services/ci/runners/bulk_delete_runners_service_spec.rb spec/services/feature_flags/create_service_spec.rb spec/views/layouts/devise.html.haml_spec.rb spec/services/ci/build_report_result_service_spec.rb spec/models/packages/debian/group_distribution_key_spec.rb spec/models/concerns/sensitive_serializable_hash_spec.rb spec/models/concerns/sanitizable_spec.rb spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb spec/services/projects/container_repository/destroy_service_spec.rb spec/lib/banzai/reference_parser/design_parser_spec.rb spec/models/ci/build_need_spec.rb spec/lib/gitlab/chat/output_spec.rb spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb spec/views/layouts/signup_onboarding.html.haml_spec.rb spec/workers/bulk_imports/export_request_worker_spec.rb spec/lib/gitlab/ci/pipeline/logger_spec.rb spec/services/protected_branches/update_service_spec.rb spec/workers/packages/cleanup/delete_orphaned_dependencies_worker_spec.rb spec/lib/gitlab/ci/config/entry/rules_spec.rb spec/services/clusters/agents/delete_expired_events_service_spec.rb spec/lib/api/entities/release_spec.rb spec/models/concerns/integrations/reset_secret_fields_spec.rb spec/lib/safe_zip/extract_spec.rb spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb spec/models/integrations/chat_message/push_message_spec.rb spec/lib/gitlab/memory/watchdog/event_reporter_spec.rb spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb spec/lib/gitlab/github_import/importer/events/changed_label_spec.rb spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb spec/finders/repositories/tree_finder_spec.rb spec/lib/gitlab/alert_management/alert_status_counts_spec.rb spec/lib/gitlab/ci/parsers/security/sast_spec.rb spec/serializers/test_suite_comparer_entity_spec.rb spec/serializers/base_discussion_entity_spec.rb spec/lib/gitlab/ci/status/created_spec.rb spec/lib/gitlab/slash_commands/global_slack_handler_spec.rb spec/lib/gitlab/database/background_migration_job_spec.rb spec/models/concerns/optionally_search_spec.rb spec/models/project_repository_spec.rb spec/services/groups/group_links/destroy_service_spec.rb spec/helpers/branches_helper_spec.rb spec/lib/gitlab/request_context_spec.rb spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb spec/workers/mail_scheduler/issue_due_worker_spec.rb spec/serializers/trigger_variable_entity_spec.rb spec/models/repository_language_spec.rb spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb spec/lib/gitlab/ci/config/entry/workflow_spec.rb spec/models/blob_viewer/package_json_spec.rb spec/tasks/gitlab/sidekiq_rake_spec.rb spec/services/discussions/capture_diff_note_positions_service_spec.rb spec/lib/banzai/filter/markdown_filter_spec.rb spec/services/ci/runners/process_runner_version_update_service_spec.rb spec/services/pages/destroy_deployments_service_spec.rb spec/lib/gitlab/background_migration/delete_orphans_approval_project_rules_spec.rb spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb spec/lib/gitlab/audit/ci_runner_token_author_spec.rb spec/lib/gitlab/background_migration/issues_internal_id_scope_updater_spec.rb spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb spec/views/layouts/nav/sidebar/_profile.html.haml_spec.rb spec/lib/gitlab/auth/crowd/authentication_spec.rb spec/graphql/resolvers/saved_reply_resolver_spec.rb spec/graphql/mutations/environments/stop_spec.rb spec/lib/gitlab/zoom_link_extractor_spec.rb spec/services/service_desk/custom_email_verifications/create_service_spec.rb spec/lib/bulk_imports/pipeline/runner_spec.rb spec/services/ci/job_token_scope/remove_project_service_spec.rb spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb spec/lib/gitlab/sidekiq_queue_spec.rb spec/lib/sidebars/your_work/panel_spec.rb spec/lib/gitlab/slash_commands/presenters/run_spec.rb spec/lib/gitlab/grape_logging/loggers/urgency_logger_spec.rb spec/lib/gitlab/ci/yaml_processor/dag_spec.rb spec/services/system_hooks_service_spec.rb spec/tooling/lib/tooling/fast_quarantine_spec.rb spec/services/test_hooks/system_service_spec.rb spec/rubocop/cop_todo_spec.rb spec/lib/gitlab/slash_commands/issue_search_spec.rb spec/services/snippets/update_repository_storage_service_spec.rb spec/views/shared/nav/_sidebar.html.haml_spec.rb spec/helpers/ci/catalog/resources_helper_spec.rb spec/lib/gitlab/github_import/importer/pull_requests/merged_by_importer_spec.rb spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb spec/lib/gitlab/import_export/design_repo_saver_spec.rb spec/graphql/mutations/ci/pipeline_schedule/variable_input_type_spec.rb spec/graphql/resolvers/deployments_resolver_spec.rb spec/serializers/user_serializer_spec.rb spec/services/captcha/captcha_verification_service_spec.rb spec/lib/gitlab/uuid_spec.rb spec/services/ci/create_pipeline_service/merge_requests_spec.rb spec/serializers/ci/downloadable_artifact_entity_spec.rb spec/lib/gitlab/jira_import/labels_importer_spec.rb spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb spec/lib/gitlab/fogbugz_import/client_spec.rb spec/models/integrations/external_wiki_spec.rb spec/services/ci/pipeline_bridge_status_service_spec.rb spec/lib/gitlab/sql/recursive_cte_spec.rb spec/lib/gitlab/route_map_spec.rb spec/lib/gitlab/github_import/clients/proxy_spec.rb spec/support_specs/helpers/stub_method_calls_spec.rb spec/graphql/mutations/alert_management/http_integration/update_spec.rb spec/support_specs/helpers/redis_commands/recorder_spec.rb spec/lib/sidebars/admin/menus/ci_cd_menu_spec.rb spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb spec/services/achievements/revoke_service_spec.rb spec/lib/banzai/filter/truncate_source_filter_spec.rb spec/lib/gitlab/import_export/avatar_saver_spec.rb spec/lib/gitlab/database/partitioning/list/locking_configuration_spec.rb spec/views/groups/milestones/index.html.haml_spec.rb spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb spec/lib/gitlab/diff/parallel_diff_spec.rb spec/models/resource_events/abuse_report_event_spec.rb spec/lib/bulk_imports/users_mapper_spec.rb spec/lib/gitlab/sidekiq_signals_spec.rb spec/components/pajamas/checkbox_tag_component_spec.rb spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb spec/models/users/banned_user_spec.rb spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb spec/lib/gitlab/monitor/demo_projects_spec.rb spec/models/resource_events/issue_assignment_event_spec.rb spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb spec/serializers/feature_flags_client_serializer_spec.rb spec/lib/gitlab/ci/build/cache_spec.rb spec/haml_lint/linter/inline_javascript_spec.rb spec/lib/gitlab/github_gists_import/status_spec.rb spec/graphql/types/duration_type_spec.rb spec/lib/gitlab/ci/config/entry/id_token_spec.rb spec/support_specs/helpers/active_record/query_recorder_spec.rb spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb spec/lib/api/github/entities_spec.rb spec/lib/constraints/jira_encoded_url_constrainer_spec.rb spec/serializers/import/github_failure_serializer_spec.rb spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb spec/views/groups/packages/index.html.haml_spec.rb spec/models/blob_viewer/route_map_spec.rb spec/lib/gitlab/database/migrations/observers/batch_details_spec.rb spec/services/clusters/build_service_spec.rb spec/lib/gitlab/ci/ansi2json/result_spec.rb spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb spec/finders/achievements/achievements_finder_spec.rb spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb spec/graphql/types/upload_type_spec.rb spec/lib/gitlab/diff/inline_diff_spec.rb spec/graphql/types/container_expiration_policy_keep_enum_spec.rb spec/lib/gitlab/batch_worker_context_spec.rb spec/lib/gitlab/database/transaction_timeout_settings_spec.rb spec/lib/sidebars/concerns/container_with_html_options_spec.rb spec/graphql/types/ci/test_report_summary_type_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/plan_menu_spec.rb spec/lib/sidebars/projects/super_sidebar_menus/code_menu_spec.rb spec/graphql/types/tree/submodule_type_spec.rb spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb spec/models/concerns/commit_signature_spec.rb spec/workers/todos_destroyer/group_private_worker_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/incoming_email_encrypted_secrets_enabled_metric_spec.rb spec/lib/sidebars/projects/context_spec.rb spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb spec/graphql/types/ci/project_variable_connection_type_spec.rb spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/having_constraints_spec.rb spec/graphql/types/container_repository_status_enum_spec.rb spec/graphql/types/permission_types/ci/runner_spec.rb spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb spec/lib/bulk_imports/retry_pipeline_error_spec.rbKnapsack report generator started!764warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.766WARNING: Shared example group 'does not expose relationship' has been previously defined at:767 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:33768...and you are now defining it at:769 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:33770The new definition will overwrite the original one.771WARNING: Shared example group 'exposes relationship' has been previously defined at:772 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:39773...and you are now defining it at:774 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:39775The new definition will overwrite the original one.776WARNING: Shared example group 'does not expose relationship' has been previously defined at:777 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:33778...and you are now defining it at:779 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:33780The new definition will overwrite the original one.781WARNING: Shared example group 'exposes relationship' has been previously defined at:782 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:39783...and you are now defining it at:784 /builds/gitlab-org/gitlab/spec/lib/api/entities/user_spec.rb:39785The new definition will overwrite the original one.786Run options: exclude {:quarantine=>true, :level=>"background_migration"}787Test environment set up in 0.636979215 seconds788Gitlab::GitAccess789 #check with single protocols allowed790 ssh disabled791 blocks ssh git push and pull792 http disabled793 blocks http push and pull794 when request is made from CI795 doesn't block http pull796 when legacy CI credentials are used797 doesn't block http pull798 #check_project_accessibility!799 when the project exists800 when actor exists801 when actor is a DeployKey802 when the DeployKey has access to the project803 allows push and pull access804 when the Deploykey does not have access to the project805 blocks push and pull with "not found"806 when the the deploy key is restricted with external_authorization807 blocks push and pull with "not found"808 when actor is a User809 when the User can read the project810 allows push and pull access811 when the User cannot read the project812 blocks push and pull with "not found"813 when actor is :ci814 disallows pull access815 does not block pushes with "not found"816 when actor is DeployToken817 when DeployToken is active and belongs to project818 allows pull access819 blocks the push820 when DeployToken does not belong to project821 blocks pull access822 blocks the push823 when the the deploy token is restricted with external_authorization824 blocks pull access825 blocks the push826 when actor is nil827 when guests can read the project828 allows pull access829 does not block pushes with "not found"830 when guests cannot read the project831 blocks pulls with "not found"832 blocks pushes with "not found"833 when the project does not exist834 blocks push and pull with "not found"835 behaves like #check with a key that is not valid836 key is expired837 does not allow expired keys838 key is too small839 does not allow keys which are too small840 key type is not allowed841 does not allow keys which are too small842 behaves like #check with a key that is not valid843 key is expired844 does not allow expired keys845 key is too small846 does not allow keys which are too small847 key type is not allowed848 does not allow keys which are too small849 #add_project_moved_message!850 when a redirect was not followed to find the project851 allows push and pull access852 with a redirect and ssh protocol853 behaves like check_project_moved854 enqueues a redirected message for pushing855 allows push and pull access856 with a redirect and http protocol857 behaves like check_project_moved858 enqueues a redirected message for pushing859 allows push and pull access860 #check_authentication_abilities!861 when download862 raises unauthorized with download error863 when authentication abilities include download code864 does not raise any errors865 when authentication abilities include build download code866 does not raise any errors867 when upload868 raises unauthorized with push error869 when authentication abilities include push code870 does not raise any errors871 #check_command_disabled!872 over http873 when the git-upload-pack command is disabled in config874 when calling git-upload-pack875 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pulling over HTTP is not allowed."876 when calling git-receive-pack877 is expected not to raise Exception878 when the git-receive-pack command is disabled in config879 when calling git-receive-pack880 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pushing over HTTP is not allowed."881 when calling git-upload-pack882 is expected not to raise Exception883 #check_db_accessibility!884 when in a read-only GitLab instance885 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can't push code to a read-only GitLab instance."886 #check_download_access!887 allows maintainers to pull888 disallows guests to pull889 disallows blocked users to pull890 disallows users that are blocked pending approval to pull891 disallows deactivated users to pull892 disallows users with expired password to pull893 with an ldap user894 allows ldap users with expired password to pull895 when the project repository does not exist896 returns not found897 without access to project898 pull code899 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."900 when project is public901 when repository is enabled902 give access to download code903 when repository is disabled904 does not give access to download code905 deploy key permissions906 pull code907 when project is public908 when deploy key exists in the project909 when the repository is public910 is expected not to raise Exception911 when the repository is private912 is expected not to raise Exception913 when the repository is disabled914 is expected to raise Exception with "You are not allowed to download code from this project."915 when deploy key does not exist in the project916 when the repository is public917 is expected not to raise Exception918 when the repository is private919 is expected to raise Exception with "You are not allowed to download code from this project."920 when the repository is disabled921 is expected to raise Exception with "You are not allowed to download code from this project."922 when project is internal923 when deploy key exists in the project924 when the repository is public925 is expected not to raise Exception926 when the repository is private927 is expected not to raise Exception928 when the repository is disabled929 is expected to raise Exception with "You are not allowed to download code from this project."930 when deploy key does not exist in the project931 when the repository is public932 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."933 when the repository is private934 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."935 when the repository is disabled936 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."937 when project is private938 when deploy key exists in the project939 when the repository is private940 is expected not to raise Exception941 when the repository is disabled942 is expected to raise Exception with "You are not allowed to download code from this project."943 when deploy key does not exist in the project944 when the repository is private945 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."946 when the repository is disabled947 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."948 deploy token permissions949 pull code950 when project is authorized951 is expected not to raise Exception952 when unauthorized953 from public project954 is expected not to raise Exception955 from internal project956 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."957 from private project958 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."959 build authentication_abilities permissions960 owner961 pull code962 is expected not to raise Exception963 reporter user964 pull code965 is expected not to raise Exception966 admin user967 when admin mode enabled968 when member of the project969 pull code970 is expected not to raise Exception971 when is not member of the project972 pull code973 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to download code from this project."974 when admin mode disabled975 when member of the project976 pull code977 is expected not to raise Exception978 when is not member of the project979 pull code980 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."981 generic CI (build without a user)982 is expected to raise Gitlab::GitAccess::NotFoundError983 check LFS integrity984 when LFS is not enabled985 does not run LFSIntegrity check986 when LFS is enabled987 checks LFS integrity only for first change988 #check_push_access!990 has the correct permissions for admin_with_admin_modes991 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)992 has the correct permissions for maintainers993 has the correct permissions for developers994 has the correct permissions for reporters995 has the correct permissions for guests996 when developers are allowed to push into the exact protected branch997 has the correct permissions for admin_with_admin_modes998 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)999 has the correct permissions for maintainers1000 has the correct permissions for developers1001 has the correct permissions for reporters1002 has the correct permissions for guests1003 when developers are allowed to merge into the exact protected branch1004 when a merge request exists for the given source/target branch1005 when the merge request is in progress1006 has the correct permissions for admin_with_admin_modes1007 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1008 has the correct permissions for maintainers1009 has the correct permissions for developers1010 has the correct permissions for reporters1011 has the correct permissions for guests1012 when the merge request is not in progress1013 has the correct permissions for admin_with_admin_modes1014 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1015 has the correct permissions for maintainers1016 has the correct permissions for developers1017 has the correct permissions for reporters1018 has the correct permissions for guests1019 when a merge request does not exist for the given source/target branch1020 has the correct permissions for admin_with_admin_modes1021 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1022 has the correct permissions for maintainers1023 has the correct permissions for developers1024 has the correct permissions for reporters1025 has the correct permissions for guests1026 when developers are allowed to push and merge into the exact protected branch1027 has the correct permissions for admin_with_admin_modes1028 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1029 has the correct permissions for maintainers1030 has the correct permissions for developers1031 has the correct permissions for reporters1032 has the correct permissions for guests1033 when no one is allowed to push to the feature protected branch1034 has the correct permissions for admin_with_admin_modes1035 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1036 has the correct permissions for maintainers1037 has the correct permissions for developers1038 has the correct permissions for reporters1039 has the correct permissions for guests1041 has the correct permissions for admin_with_admin_modes1042 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1043 has the correct permissions for maintainers1044 has the correct permissions for developers1045 has the correct permissions for reporters1046 has the correct permissions for guests1047 when developers are allowed to push into the wildcard protected branch1048 has the correct permissions for admin_with_admin_modes1049 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1050 has the correct permissions for maintainers1051 has the correct permissions for developers1052 has the correct permissions for reporters1053 has the correct permissions for guests1054 when developers are allowed to merge into the wildcard protected branch1055 when a merge request exists for the given source/target branch1056 when the merge request is in progress1057 has the correct permissions for admin_with_admin_modes1058 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1059 has the correct permissions for maintainers1060 has the correct permissions for developers1061 has the correct permissions for reporters1062 has the correct permissions for guests1063 when the merge request is not in progress1064 has the correct permissions for admin_with_admin_modes1065 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1066 has the correct permissions for maintainers1067 has the correct permissions for developers1068 has the correct permissions for reporters1069 has the correct permissions for guests1070 when a merge request does not exist for the given source/target branch1071 has the correct permissions for admin_with_admin_modes1072 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1073 has the correct permissions for maintainers1074 has the correct permissions for developers1075 has the correct permissions for reporters1076 has the correct permissions for guests1077 when developers are allowed to push and merge into the wildcard protected branch1078 has the correct permissions for admin_with_admin_modes1079 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1080 has the correct permissions for maintainers1081 has the correct permissions for developers1082 has the correct permissions for reporters1083 has the correct permissions for guests1084 when no one is allowed to push to the feat* protected branch1085 has the correct permissions for admin_with_admin_modes1086 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1087 has the correct permissions for maintainers1088 has the correct permissions for developers1089 has the correct permissions for reporters1090 has the correct permissions for guests1091 when pushing to a project1092 disallows users that are blocked pending approval to push1093 does not allow deactivated users to push1094 disallows users with expired password to push1095 avoids N+1 queries1096 raises TimeoutError when #check_access! raises a timeout error1097 with an ldap user1098 allows ldap users with expired password to push1099 disallows blocked ldap users with expired password to push1100 build authentication abilities1101 when project is authorized1102 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1103 when unauthorized1104 to public project1105 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1106 to internal project1107 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1108 to private project1109 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1110 when the repository is read-only1111 denies push access1112 deploy key permissions1113 when deploy_key can push1114 when project is authorized1115 is expected not to raise Exception1116 when unauthorized1117 to public project1118 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1119 to internal project1120 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1121 to private project1122 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1123 when deploy_key cannot push1124 when project is authorized1125 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1126 when unauthorized1127 to public project1128 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1129 to internal project1130 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1131 to private project1132 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1133 terms are enforced1134 as an anonymous user to a public project1135 is expected not to raise Exception1136 as a guest to a public project1137 behaves like access after accepting terms1138 blocks access when the user did not accept terms1139 allows access when the user accepted the terms1140 as a reporter to the project1141 behaves like access after accepting terms1142 blocks access when the user did not accept terms1143 allows access when the user accepted the terms1144 as a developer of the project1145 behaves like access after accepting terms1146 blocks access when the user did not accept terms1147 allows access when the user accepted the terms1148 as a maintainer of the project1149 behaves like access after accepting terms1150 blocks access when the user did not accept terms1151 allows access when the user accepted the terms1152 as an owner of the project1153 behaves like access after accepting terms1154 blocks access when the user did not accept terms1155 allows access when the user accepted the terms1156 when a ci build clones the project1157 doesn't block http pull1158Gitlab::ImportExport::Project::TreeRestorer1159 behaves like project tree restorer work properly1160 restore project tree1161 JSON1162 restores models based on JSON1163 restore correct project features1164 has the project description1165 has the same label associated to two issues1166 has milestones associated to two separate issues1167 does not import ci config path1168 creates a valid pipeline note1169 pipeline has the correct user ID1170 restores pipelines with missing ref1171 restores pipeline for merge request1172 restores pipelines based on ascending id order1173 restores pipeline metadata1174 preserves updated_at on issues1175 has multiple issue assignees1176 restores timelogs for issues1177 contains the merge access levels on a protected branch1178 contains the push access levels on a protected branch1179 contains the create access levels on a protected tag1180 restores issue resource label events1181 restores issue resource milestone events1182 restores issue resource state events1183 restores merge requests resource label events1184 restores merge request resource milestone events1185 restores merge request resource state events1186 restores suggestion1187 has the correct data for merge request diff files1188 has the correct data for merge request diff commits1189 assigns committer and author details to all diff commits1190 assigns the correct commit users to different diff commits1191 has the correct data for merge request latest_merge_request_diff1192 has multiple merge request assignees1193 has multiple merge request reviewers1194 has labels associated to label links, associated to issues1195 has project labels1196 has merge request approvals1197 has no group labels1198 has issue boards1199 has lists associated with the issue board1200 has a project feature1201 has custom attributes1202 has badges1203 has snippets1204 has award emoji for a snippet1205 snippet has notes1206 snippet has award emojis on notes1207 restores `ci_cd_settings` : `group_runners_enabled` setting1208 restores `auto_devops`1209 restores zoom meetings1210 restores sentry issues1211 has award emoji for an issue1212 has award emoji for a note in an issue1213 restores container_expiration_policy1214 restores error_tracking_setting1215 restores external pull requests1216 restores pipeline schedules1217 restores commit notes1218 when importing a project with cached_markdown_version and note_html1219 for an Issue1220 does not import note_html1221 for a Merge Request1222 does not import note_html1223 merge request system note metadata1224 restores title action for unmark wip1225 restores commit action and commit count for pushing 3 commits1226 event at forth level of the tree1227 restores the event1228 has the action1229 event belongs to note, belongs to merge request, belongs to a project1230 restores releases1231 with links & milestones1232 with author1233 as ghost user when imported release author is empty1234 as existing member when imported release author is matched with existing user1235 as import user when imported release author cannot be matched1236 Merge requests1237 always has the new project as a target1238 has the same source project as originally if source/target are the same1239 has the new project as target if source/target differ1240 has no source if source/target differ1241 has award emoji1242 notes1243 has award emoji1244 tokens are regenerated1245 has new CI trigger tokens1246 has a new CI build token1247 has restored the correct number of records1248 has the correct number of merge requests1249 does not restore triggers1250 has the correct number of pipelines and statuses1251 when restoring hierarchy of pipeline, stages and jobs1252 restores pipelines1253 restores pipeline stages1254 correctly restores association between stage and a pipeline1255 restores builds1256 restores bridges1257 restores generic commit statuses1258 correctly restores association between a stage and a job1259 correctly restores association between a pipeline and a job1260 restores a Hash for CommitStatus options1261 restores external pull request for the restored pipeline1262 has no import failures1263 when expect tree structure is not present in the export path1264 fails to restore the project1265 Light JSON1266 with a simple project1267 issue system note metadata restored successfully1268 when there is an existing build with build token1269 behaves like restores project successfully1270 restores the project1271 has labels1272 has label priorities1273 has milestones1274 has issues1275 has ci pipelines1276 has external pull requests1277 does not set params that are excluded from import_export settings1278 records exact number of import failures1279 multiple pipelines reference the same external pull request1280 restores external pull request for the restored pipelines1281 behaves like restores project successfully1282 restores the project1283 has labels1284 has label priorities1285 has milestones1286 has issues1287 has ci pipelines1288 has external pull requests1289 does not set params that are excluded from import_export settings1290 records exact number of import failures1291 when post import action throw non-retriable exception1292 report post import error1293 when post import action throw retriable exception one time1294 records the failures in the database1295 behaves like restores project successfully1296 restores the project1297 has labels1298 has label priorities1299 has milestones1300 has issues1301 has ci pipelines1302 has external pull requests1303 does not set params that are excluded from import_export settings1304 records exact number of import failures1305 when the project has overridden params in import data1306 handles string versions of visibility_level1307 overwrites the params stored in the JSON1308 does not allow setting params that are excluded from import_export settings1309 overrides project feature access levels1310 with a project that has a group1311 restores issue states1312 behaves like restores project successfully1313 restores the project1314 has labels1315 has label priorities1316 has milestones1317 has issues1318 has ci pipelines1319 has external pull requests1320 does not set params that are excluded from import_export settings1321 records exact number of import failures1322 behaves like restores group correctly1323 has group label1324 has group milestone1325 has the correct visibility level1326 with existing group models1327 imports labels1328 imports milestones1329 with clashing milestones on IID1330 preserves the project milestone IID1331 with external authorization classification labels1332 converts empty external classification authorization labels to nil1333 preserves valid external classification authorization labels1334 Minimal JSON1335 visibility level1336 no group visibility1337 uses the project visibility1338 with restricted internal visibility1339 internal project1340 uses private visibility1341 with group visibility1342 private group visibility1343 uses the group visibility1344 public group visibility1345 uses the project visibility1346 internal group visibility1347 uses the group visibility1348 with restricted internal visibility1349 sets private visibility1350 with project members1351 restores project members1352 JSON with invalid records1353 when failures occur because a relation fails to be processed1354 records the failures in the database1355 behaves like restores project successfully1356 restores the project1357 has labels1358 has label priorities1359 has milestones1360 has issues1361 has ci pipelines1362 has external pull requests1363 does not set params that are excluded from import_export settings1364 records exact number of import failures1365 JSON with design management data1366 restores project associations correctly1367 behaves like restores project successfully1368 restores the project1369 has labels1370 has label priorities1371 has milestones1372 has issues1373 has ci pipelines1374 has external pull requests1375 does not set params that are excluded from import_export settings1376 records exact number of import failures1377 restores issue associations correctly1378 index: 0, design_filenames: ["chirrido3.jpg", "jonathan_richman.jpg", "mariavontrap.jpeg"], version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"], events: ["creation", "creation", "creation", "modification", "modification", "deletion"], author_emails: ["user_1@gitlabexample.com", "user_1@gitlabexample.com", "user_2@gitlabexample.com"]1379 is expected to contain exactly "user_1@gitlabexample.com", "user_1@gitlabexample.com", and "user_2@gitlabexample.com"1380 index: 1, design_filenames: ["1 (1).jpeg", "2099743.jpg", "a screenshot (1).jpg", "chirrido3.jpg"], version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"], events: ["creation", "creation", "creation", "creation", "modification"], author_emails: ["user_1@gitlabexample.com", "user_2@gitlabexample.com", "user_2@gitlabexample.com"]1381 is expected to contain exactly "user_1@gitlabexample.com", "user_2@gitlabexample.com", and "user_2@gitlabexample.com"1382 restores design version associations correctly1383 index: 0, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4", "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]1384 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4" and "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"1385 index: 1, version_shas: ["73f871b4c8c1d65c62c460635e023179fb53abc4"]1386 is expected to contain exactly "73f871b4c8c1d65c62c460635e023179fb53abc4"1387 index: 2, version_shas: ["c9b5f067f3e892122a4b12b0a25a8089192f3ac8"]1388 is expected to contain exactly "c9b5f067f3e892122a4b12b0a25a8089192f3ac8"1389 index: 3, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]1390 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85", "9358d1bac8ff300d3d2597adaa2572a20f7f8703", and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"1391 index: 4, version_shas: ["8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"]1392 is expected to contain exactly "8587e78ab6bda3bc820a9f014c3be4a21ad4fcc8"1393 index: 5, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85", "e1a4a501bcb42f291f84e5d04c8f927821542fb6"]1394 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85" and "e1a4a501bcb42f291f84e5d04c8f927821542fb6"1395 index: 6, version_shas: ["27702d08f5ee021ae938737f84e8fe7c38599e85"]1396 is expected to contain exactly "27702d08f5ee021ae938737f84e8fe7c38599e85"1397Gitlab::MergeRequests::MessageGenerator1398 # order random1399 #squash_commit_message1400 behaves like commit message with template1401 returns nil when template is not set in target project1402 when project has custom commit template1403 uses custom template1404 when project has commit template with only the title1405 evaluates only necessary variables1406 when project has commit template with closed issues1407 omits issues and new lines when no issues are mentioned in description1408 when MR closes issues1409 includes them and keeps new line characters1410 when project has commit template with description1411 uses template1412 when description is empty string1413 skips description placeholder and removes new line characters before it1414 when description is nil1415 skips description placeholder and removes new line characters before it1416 when description is blank string1417 skips description placeholder and removes new line characters before it1418 when custom commit template contains placeholder in the middle or beginning of the line1419 uses custom template1420 when description is empty string1421 does not remove new line characters before empty placeholder1422 when project has template with CRLF newlines1423 converts it to LF newlines1424 when description is empty string1425 skips description placeholder and removes new line characters before it1426 when project has merge commit template with first_commit1427 uses first commit1428 when branch has no unmerged commits1429 is an empty string1430 when project has merge commit template with first_multiline_commit1431 uses first multiline commit1432 when branch has no multiline commits1433 is mr title1434 when project has merge commit template with reviewers1435 and mr has no reviewers1436 removes variable and blank line1437 when there is blank line after reviewed_by1438 removes blank line before it1439 when there is no blank line after reviewed_by1440 does not remove blank line before it1441 and mr has one reviewer1442 returns user name and email1443 and mr has multiple reviewers1444 returns users names and emails1445 when project has merge commit template with approvers1446 and mr has no approval1447 removes variable and blank line1448 when there is blank line after approved_by1449 removes blank line before it1450 when there is no blank line after approved_by1451 does not remove blank line before it1452 and mr has one approval1453 returns user name and email1454 and mr has multiple approvals1455 returns users names and emails1456 when project has merge commit template with url1457 and merge request has url1458 returns mr url1459 when project has merge commit template with merged_by1460 and current_user is passed1461 returns user name and email1462 when project has commit template with all_commits1463 returns all commit messages1464 with 2 commits1465 returns both messages1466 with over 100 commits1467 returns first 100 commits skipping merge commit1468 when branch has no unmerged commits1469 is an empty string1470 when branch has commit with message over 100kb1471 skips commit body1472 user1473 comes from metrics1474 returns user name and email1475 comes from merge_user1476 returns user name and email1477 when project has commit template with the same variable used twice1478 uses custom template1479 when project has commit template without any variable1480 uses custom template1481 when project has template with all variables1482 uses custom template1483 when project has merge commit template with co_authored_by1484 uses custom template1485 when author and merging user is one of the commit authors1486 skips his mail in coauthors1487 when author and merging user is the only author of commits1488 skips coauthors and empty lines before it1489 when project has merge commit template with co_authored_by1490 when author and merging user are one of the commit authors1491 skips merge request author, but does not skip merging user1492 #new_mr_description1493 when project has template with all variables1494 renders only variables specific to a new non-persisted merge request1495 when no first commit exists1496 does not populate any commit-related variables1497 #merge_commit_message1498 behaves like commit message with template1499 returns nil when template is not set in target project1500 when project has custom commit template1501 uses custom template1502 when project has commit template with only the title1503 evaluates only necessary variables1504 when project has commit template with closed issues1505 omits issues and new lines when no issues are mentioned in description1506 when MR closes issues1507 includes them and keeps new line characters1508 when project has commit template with description1509 uses template1510 when description is empty string1511 skips description placeholder and removes new line characters before it1512 when description is nil1513 skips description placeholder and removes new line characters before it1514 when description is blank string1515 skips description placeholder and removes new line characters before it1516 when custom commit template contains placeholder in the middle or beginning of the line1517 uses custom template1518 when description is empty string1519 does not remove new line characters before empty placeholder1520 when project has template with CRLF newlines1521 converts it to LF newlines1522 when description is empty string1523 skips description placeholder and removes new line characters before it1524 when project has merge commit template with first_commit1525 uses first commit1526 when branch has no unmerged commits1527 is an empty string1528 when project has merge commit template with first_multiline_commit1529 uses first multiline commit1530 when branch has no multiline commits1531 is mr title1532 when project has merge commit template with reviewers1533 and mr has no reviewers1534 removes variable and blank line1535 when there is blank line after reviewed_by1536 removes blank line before it1537 when there is no blank line after reviewed_by1538 does not remove blank line before it1539 and mr has one reviewer1540 returns user name and email1541 and mr has multiple reviewers1542 returns users names and emails1543 when project has merge commit template with approvers1544 and mr has no approval1545 removes variable and blank line1546 when there is blank line after approved_by1547 removes blank line before it1548 when there is no blank line after approved_by1549 does not remove blank line before it1550 and mr has one approval1551 returns user name and email1552 and mr has multiple approvals1553 returns users names and emails1554 when project has merge commit template with url1555 and merge request has url1556 returns mr url1557 when project has merge commit template with merged_by1558 and current_user is passed1559 returns user name and email1560 when project has commit template with all_commits1561 returns all commit messages1562 with 2 commits1563 returns both messages1564 with over 100 commits1565 returns first 100 commits skipping merge commit1566 when branch has no unmerged commits1567 is an empty string1568 when branch has commit with message over 100kb1569 skips commit body1570 user1571 comes from metrics1572 returns user name and email1573 comes from merge_user1574 returns user name and email1575 when project has commit template with the same variable used twice1576 uses custom template1577 when project has commit template without any variable1578 uses custom template1579 when project has template with all variables1580 uses custom template1581 when project has merge commit template with co_authored_by1582 uses custom template1583 when author and merging user is one of the commit authors1584 skips his mail in coauthors1585 when author and merging user is the only author of commits1586 skips coauthors and empty lines before it1587 when project has merge commit template with co_authored_by1588 when author and merging user are one of the commit authors1589 skips merging user, but does not skip merge request author1590Projects::DestroyService1591 deleting a project with merge requests1592 deletes MergeRequestDiffCommit records of the merge request1593 deletes MergeRequestDiffFile records of the merge request1594 deleting a project with merge request diffs1595 deletes merge request diffs1596 behaves like deleting the project1597 deletes the project1598 publishes a ProjectDeletedEvent1599 personal projects count cache1600 when the executor is the creator of the project itself1601 invalidates personal_project_count cache of the the owner of the personal namespace1602 when the executor is the instance administrator1603 invalidates personal_project_count cache of the the owner of the personal namespace1604 with running pipelines1605 bulks-fails with AbortPipelineService and then executes DestroyPipelineService for each pipelines1606 when project has remote mirrors1607 destroys them1608 when project has exports1609 destroys project and export1610 Sidekiq fake1611 is expected not to include #<Project id:383 user381/project-317>>1612 is expected to be falsey1613 when flushing caches fail due to Git errors1614 behaves like deleting the project1615 deletes the project1616 publishes a ProjectDeletedEvent1617 when flushing caches fail due to Redis1618 keeps project team intact upon an error1619 with async_execute1620 async delete of project with private issue visibility1621 behaves like deleting the project1622 deletes the project1623 publishes a ProjectDeletedEvent1624 behaves like deleting the project with pipeline and build1625 with pipeline and build related records1626 deletes build and pipeline related records1627 avoids N+1 queries1628 behaves like deleting the project1629 deletes the project1630 publishes a ProjectDeletedEvent1631 when project is undergoing refresh1632 does not log about artifact deletion but continues to delete artifacts1633 errors1634 when `remove_legacy_registry_tags` fails1635 behaves like handles errors thrown during async destroy1636 does not allow the error to bubble up1637 reports the error1638 unmarks the project as "pending deletion"1639 stores an error message in `projects.delete_error`1640 when `remove_repository` fails1641 behaves like handles errors thrown during async destroy1642 does not allow the error to bubble up1643 reports the error1644 unmarks the project as "pending deletion"1645 stores an error message in `projects.delete_error`1646 when `execute` raises expected error1647 behaves like handles errors thrown during async destroy1648 does not allow the error to bubble up1649 reports the error1650 unmarks the project as "pending deletion"1651 stores an error message in `projects.delete_error`1652 when `execute` raises unexpected error1653 allows error to bubble up and rolls back project deletion1654 for an archived project1655 behaves like deleting the project with pipeline and build1656 with pipeline and build related records1657 deletes build and pipeline related records1658 avoids N+1 queries1659 behaves like deleting the project1660 deletes the project1661 publishes a ProjectDeletedEvent1662 when project is undergoing refresh1663 does not log about artifact deletion but continues to delete artifacts1664 container registry1665 when there are regular container repositories1666 when image repository deletion succeeds1667 returns true1668 when image repository deletion raises an error1669 returns false1670 when image repository deletion fails1671 returns false1672 when registry is disabled1673 does not attempting to remove any tags1674 when there are tags for legacy root repository1675 when image repository tags deletion succeeds1676 removes tags1677 when image repository tags deletion fails1678 raises an exception1679 when there are no tags for legacy root repository1680 does not try to destroy the repository1681 for a forked project with LFS objects1682 destroys the fork1683 as the root of a fork network1684 updates the fork network with the project name1685 repository removal1686 removal of existing repos1687 snippets1688 does not include snippets when deleting in batches1689 calls the bulk snippet destroy service with the skip_authorization param set to true1690 when an error is raised deleting snippets1691 does not delete project1692 when project has webhooks1693 deletes webhooks and logs related to project1694 when an error is raised deleting webhooks1695 behaves like handles errors thrown during async destroy1696 does not allow the error to bubble up1697 reports the error1698 unmarks the project as "pending deletion"1699 stores an error message in `projects.delete_error`1700 when project has project bots1701 deletes bot user as well1702 when project has events1703 deletes events from the project1704 when an error is returned while deleting events1705 does not delete project1706 error while destroying1707 deletes on retry1708 associations destoyed in batches1709 destroys the associations marked as `dependent: :destroy`, in batches1710Glfm::UpdateSpecification#process1711 # order random1712 writing output_spec/spec.txt1713 includes only the header and official examples1714 writing output_example_snapshots/snapshot_spec.md1715 with valid glfm_internal_extensions.md1716 replaces the header text with the GitLab version1717 includes header and all examples1718 with invalid non-example content in glfm_internal_extensions.md1719 raises an error1720 retrieving latest GHFM spec.txt1721 when UPDATE_GHFM_SPEC_MD is not true (default)1722 does not download1723 when UPDATE_GHFM_SPEC_MD is true1724 with success1725 downloads and saves1726 with error handling1727 with a version mismatch1728 raises an error1729 with a failed read of file lines1730 raises an error if lines cannot be read1731 with a failed re-read of file string1732 raises an error if file is blank1733 writing output html files1734 renders expected HTML1735Todo1736 relationships1737 is expected to belong to author class_name => User required: false1738 is expected to belong to note required: false1739 is expected to belong to project required: false1740 is expected to belong to group required: false1741 is expected to belong to target required: false1742 is expected to belong to user required: false1743 respond to1744 is expected to respond to #author_name1745 is expected to respond to #author_email1746 validations1747 is expected to validate that :action cannot be empty/falsy1748 is expected to validate that :target_type cannot be empty/falsy1749 is expected to validate that :user cannot be empty/falsy1750 is expected to validate that :author cannot be empty/falsy1751 for commits1752 is expected to validate that :commit_id cannot be empty/falsy1753 is expected not to validate that :target_id cannot be empty/falsy1754 for issuables1755 is expected to validate that :target_id cannot be empty/falsy1756 is expected not to validate that :commit_id cannot be empty/falsy1757 #body1758 returns target title when note is blank1759 returns note when note is present1760 returns full path of target when action is member_access_requested1761 #done1762 changes state to done1763 does not raise error when is already done1764 #for_commit?1765 returns true when target is a commit1766 returns false when target is an issuable1767 #for_design?1768 returns true when target is a Design1769 returns false when target is not a Design1770 #for_alert?1771 returns true when target is a Alert1772 returns false when target is not a Alert1773 #for_issue_or_work_item?1774 returns true when target is an Issue1775 returns true when target is a WorkItem1776 returns false when target is not an Issue1777 #target1778 returns the issuable for issuables1779 for commits1780 returns an instance of Commit when exists1781 returns nil when does not exists1782 #target_reference1783 returns commit full reference with short id1784 returns full reference for issuables1785 when target is member access requested1786 behaves like returns full_path1787 is expected to eq "namespace403/project-409"1788 behaves like returns full_path1789 is expected to eq "group26"1790 #self_added?1791 is true when the user is the author1792 is false when the user is not the author1793 #done?1794 returns true for todos with done state1795 returns false for todos with state pending1796 #self_assigned?1797 when self_added1798 returns true for ASSIGNED1799 returns true for REVIEW_REQUESTED1800 returns false for other action1801 when todo is not self_added1802 returns false1803 .for_action1804 returns the todos for a given action1805 .for_author1806 returns the todos for a given author1807 .for_project1808 returns the todos for a given project1809 returns the todos for many projects1810 .for_undeleted_projects1811 returns the todos for a given project1812 when todo belongs to deleted project1813 excludes todos of deleted projects1814 .for_group1815 returns the todos for a given group1816 .for_type1817 returns the todos for a given target type1818 .for_target1819 returns the todos for a given target1820 .for_commit1821 returns the todos for a commit ID1822 .for_group_ids_and_descendants1823 returns the todos for a group and its descendants1824 .for_user1825 returns the expected todos1826 .for_note1827 returns todos that belongs to notes1828 .group_by_user_id_and_state1829 is expected to eq {[862, "done"]=>1, [862, "pending"]=>2, [863, "pending"]=>1}1830 .any_for_target?1831 returns true if there are todos for a given target1832 returns true if there is at least one todo for a given target with state pending1833 returns false if there are only todos for a given target with state done while searching for pending1834 returns false if there are no todos for a given target1835 .batch_update1836 updates the state of todos1837 does not update todos that already have the given state1838 updates updated_at1839 .distinct_user_ids1840 is expected to contain exactly 887 and 8881841 .for_internal_notes1842 returns todos created from internal notes1843 #access_request_url1844 when only_path param is false1845 behaves like returns member access requests tab url/path1846 returns group access requests tab url/path if target is group1847 returns project access requests tab url/path if target is project1848 returns empty string if target is neither group nor project1849 when only_path param is nil1850 behaves like returns member access requests tab url/path1851 returns group access requests tab url/path if target is group1852 returns project access requests tab url/path if target is project1853 returns empty string if target is neither group nor project1854 when only_path param is true1855 behaves like returns member access requests tab url/path1856 returns group access requests tab url/path if target is group1857 returns project access requests tab url/path if target is project1858 returns empty string if target is neither group nor project1859Ci::BuildTraceChunk1860 associations1861 is expected to belong to build class_name => Ci::Build required: false inverse_of => trace_chunks1862 behaves like having unique enum values1863 has unique values in "data_store"1864 default attributes1865 is expected to eq "redis_trace_chunks"1866 is expected to eq "fog"1867 chunk creation1868 increments trace operation chunked metric1869 FastDestroyAll1870 Forbid #destroy and #destroy_all1871 does not delete database rows and associted external data1872 .fast_destroy_all1873 deletes database rows and associted external data1874 .use_fast_destroy1875 performs cascading delete with fast_destroy_all1876 CHUNK_SIZE1877 chunk size can not be changed without special care1878 .all_stores1879 returns a correctly ordered array1880 #data1881 data_store: :redis1882 is expected to eq "Sample data in redis"1883 data_store: :redis_trace_chunks1884 is expected to eq "Sample data in redis"1885 when data_store is database1886 is expected to eq "Sample data in database"1887 when data_store is fog1888 is expected to eq "Sample data in fog"1889 returns a new Fog store1890 #data_store1891 default value1892 is expected to eq "redis_trace_chunks"1893 #get_store_class1894 raises an error1895 data_store: :redis, expected_store: Ci::BuildTraceChunks::Redis1896 with store1897 returns an instance of the right class1898 data_store: :database, expected_store: Ci::BuildTraceChunks::Database1899 with store1900 returns an instance of the right class1901 data_store: :fog, expected_store: Ci::BuildTraceChunks::Fog1902 with store1903 returns an instance of the right class1904 data_store: :redis_trace_chunks, expected_store: Ci::BuildTraceChunks::RedisTraceChunks1905 with store1906 returns an instance of the right class1907 #append1908 data_store: :redis1909 when there are no data1910 has no data1911 does not read data when appending1912 behaves like Appending correctly1913 when offset is negative1914 is expected to raise Exception with "Offset is out of range"1915 when offset is bigger than data size1916 is expected to raise Exception with "Offset is out of range"1917 when new data overflows chunk size1918 is expected to raise Exception with "Chunk size overflow"1919 when offset is EOF1920 appends1921 when the other process is appending1922 raise an error1923 when new_data is nil1924 raises an error1925 when new_data is empty1926 does not append1927 does not execute UPDATE1928 when offset is middle of datasize1929 appends1930 behaves like Scheduling sidekiq worker to flush data to persist store1931 when new data fulfilled chunk size1932 schedules trace chunk flush worker1933 migrates data to object storage1934 when there are some data1935 has data1936 behaves like Appending correctly1937 when offset is negative1938 is expected to raise Exception with "Offset is out of range"1939 when offset is bigger than data size1940 is expected to raise Exception with "Offset is out of range"1941 when new data overflows chunk size1942 is expected to raise Exception with "Chunk size overflow"1943 when offset is EOF1944 appends1945 when the other process is appending1946 raise an error1947 when new_data is nil1948 raises an error1949 when new_data is empty1950 does not append1951 does not execute UPDATE1952 when offset is middle of datasize1953 appends1954 behaves like Scheduling sidekiq worker to flush data to persist store1955 when new data fulfilled chunk size1956 schedules trace chunk flush worker1957 migrates data to object storage1958 data_store: :redis_trace_chunks1959 when there are no data1960 has no data1961 does not read data when appending1962 behaves like Appending correctly1963 when offset is negative1964 is expected to raise Exception with "Offset is out of range"1965 when offset is bigger than data size1966 is expected to raise Exception with "Offset is out of range"1967 when new data overflows chunk size1968 is expected to raise Exception with "Chunk size overflow"1969 when offset is EOF1970 appends1971 when the other process is appending1972 raise an error1973 when new_data is nil1974 raises an error1975 when new_data is empty1976 does not append1977 does not execute UPDATE1978 when offset is middle of datasize1979 appends1980 behaves like Scheduling sidekiq worker to flush data to persist store1981 when new data fulfilled chunk size1982 schedules trace chunk flush worker1983 migrates data to object storage1984 when there are some data1985 has data1986 behaves like Appending correctly1987 when offset is negative1988 is expected to raise Exception with "Offset is out of range"1989 when offset is bigger than data size1990 is expected to raise Exception with "Offset is out of range"1991 when new data overflows chunk size1992 is expected to raise Exception with "Chunk size overflow"1993 when offset is EOF1994 appends1995 when the other process is appending1996 raise an error1997 when new_data is nil1998 raises an error1999 when new_data is empty2000 does not append2001 does not execute UPDATE2002 when offset is middle of datasize2003 appends2004 behaves like Scheduling sidekiq worker to flush data to persist store2005 when new data fulfilled chunk size2006 schedules trace chunk flush worker2007 migrates data to object storage2008 when data_store is database2009 when there are no data2010 has no data2011 behaves like Appending correctly2012 when offset is negative2013 is expected to raise Exception with "Offset is out of range"2014 when offset is bigger than data size2015 is expected to raise Exception with "Offset is out of range"2016 when new data overflows chunk size2017 is expected to raise Exception with "Chunk size overflow"2018 when offset is EOF2019 appends2020 when the other process is appending2021 raise an error2022 when new_data is nil2023 raises an error2024 when new_data is empty2025 does not append2026 does not execute UPDATE2027 when offset is middle of datasize2028 appends2029 behaves like Scheduling no sidekiq worker2030 when new data fulfilled chunk size2031 does not schedule trace chunk flush worker2032 does not migrate data to object storage2033 when there are some data2034 has data2035 behaves like Appending correctly2036 when offset is negative2037 is expected to raise Exception with "Offset is out of range"2038 when offset is bigger than data size2039 is expected to raise Exception with "Offset is out of range"2040 when new data overflows chunk size2041 is expected to raise Exception with "Chunk size overflow"2042 when offset is EOF2043 appends2044 when the other process is appending2045 raise an error2046 when new_data is nil2047 raises an error2048 when new_data is empty2049 does not append2050 does not execute UPDATE2051 when offset is middle of datasize2052 appends2053 behaves like Scheduling no sidekiq worker2054 when new data fulfilled chunk size2055 does not schedule trace chunk flush worker2056 does not migrate data to object storage2057 when data_store is fog2058 when there are no data2059 has no data2060 behaves like Appending correctly2061 when offset is negative2062 is expected to raise Exception with "Offset is out of range"2063 when offset is bigger than data size2064 is expected to raise Exception with "Offset is out of range"2065 when new data overflows chunk size2066 is expected to raise Exception with "Chunk size overflow"2067 when offset is EOF2068 appends2069 when the other process is appending2070 raise an error2071 when new_data is nil2072 raises an error2073 when new_data is empty2074 does not append2075 does not execute UPDATE2076 when offset is middle of datasize2077 appends2078 behaves like Scheduling no sidekiq worker2079 when new data fulfilled chunk size2080 does not schedule trace chunk flush worker2081 does not migrate data to object storage2082 when there are some data2083 has data2084 behaves like Appending correctly2085 when offset is negative2086 is expected to raise Exception with "Offset is out of range"2087 when offset is bigger than data size2088 is expected to raise Exception with "Offset is out of range"2089 when new data overflows chunk size2090 is expected to raise Exception with "Chunk size overflow"2091 when offset is EOF2092 appends2093 when the other process is appending2094 raise an error2095 when new_data is nil2096 raises an error2097 when new_data is empty2098 does not append2099 does not execute UPDATE2100 when offset is middle of datasize2101 appends2102 behaves like Scheduling no sidekiq worker2103 when new data fulfilled chunk size2104 does not schedule trace chunk flush worker2105 does not migrate data to object storage2106 append metrics2107 increments trace operation appended metric2108 #truncate2109 data_store: :redis2110 behaves like truncates2111 when offset is negative2112 is expected to raise Exception with "Offset is out of range"2113 when offset is bigger than data size2114 is expected to raise Exception with "Offset is out of range"2115 when offset is 102116 truncates2117 data_store: :redis_trace_chunks2118 behaves like truncates2119 when offset is negative2120 is expected to raise Exception with "Offset is out of range"2121 when offset is bigger than data size2122 is expected to raise Exception with "Offset is out of range"2123 when offset is 102124 truncates2125 when data_store is database2126 behaves like truncates2127 when offset is negative2128 is expected to raise Exception with "Offset is out of range"2129 when offset is bigger than data size2130 is expected to raise Exception with "Offset is out of range"2131 when offset is 102132 truncates2133 when data_store is fog2134 behaves like truncates2135 when offset is negative2136 is expected to raise Exception with "Offset is out of range"2137 when offset is bigger than data size2138 is expected to raise Exception with "Offset is out of range"2139 when offset is 102140 truncates2141 #size2142 data_store: :redis2143 when data exists2144 is expected to eq 202145 when data exists2146 is expected to eq 02147 data_store: :redis_trace_chunks2148 when data exists2149 is expected to eq 202150 when data exists2151 is expected to eq 02152 when data_store is database2153 when data exists2154 is expected to eq 232155 when data does not exist2156 is expected to eq 02157 when data_store is fog2158 when data exists2159 is expected to eq 182160 when data does not exist2161 is expected to eq 02162 #persist_data!2163 data_store: :redis, redis_class: Ci::BuildTraceChunks::Redis2164 when data exists2165 when data size reached CHUNK_SIZE2166 persists the data2167 calculates CRC32 checksum2168 when data size has not reached CHUNK_SIZE2169 does not persist the data and the orignal data is intact2170 when chunk is a final one2171 persists the data2172 when the chunk has been modifed by a different worker2173 reloads the chunk before migration2174 verifies the operation using optimistic locking2175 does not allow flushing unpersisted chunk2176 when the chunk is being locked by a different worker2177 increments stalled chunk trace metric2178 when data does not exist2179 does not persist2180 data_store: :redis_trace_chunks, redis_class: Ci::BuildTraceChunks::RedisTraceChunks2181 when data exists2182 when data size reached CHUNK_SIZE2183 persists the data2184 calculates CRC32 checksum2185 when data size has not reached CHUNK_SIZE2186 does not persist the data and the orignal data is intact2187 when chunk is a final one2188 persists the data2189 when the chunk has been modifed by a different worker2190 reloads the chunk before migration2191 verifies the operation using optimistic locking2192 does not allow flushing unpersisted chunk2193 when the chunk is being locked by a different worker2194 increments stalled chunk trace metric2195 when data does not exist2196 does not persist2197 when data_store is database2198 when data exists2199 when data size reached CHUNK_SIZE2200 persists the data2201 when data size has not reached CHUNK_SIZE2202 does not persist the data and the orignal data is intact2203 when chunk is a final one2204 persists the data2205 when data does not exist2206 does not persist2207 when data_store is fog2208 when data exists2209 when data size reached CHUNK_SIZE2210 does not change data store2211 when data size has not reached CHUNK_SIZE2212 does not raise error2213 final?2214 when build pending state exists2215 when chunks is not the last one2216 is not a final chunk2217 when chunks is the last one2218 is a final chunk2219 when build pending state does not exist2220 when chunks is not the last one2221 is not a final chunk2222 when chunks is the last one2223 is not a final chunk2224 deletes data in redis after a parent record destroyed2225 when traces are archived2226 behaves like deletes all build_trace_chunk and data in redis2227 deletes all build_trace_chunk and data in redis2228 when project is destroyed2229 behaves like deletes all build_trace_chunk and data in redis2230 deletes all build_trace_chunk and data in redis2231 comparable build trace chunks2232 #<=>2233 when chunks are associated with different builds2234 returns nil2235 when there are two chunks with different indexes2236 indicates the the first one is greater than then second2237 when there are two chunks with the same index within the same build2238 indicates the these are equal2239 #==2240 when chunks have the same index2241 indicates that the chunks are equal2242 when chunks have different indexes2243 indicates that the chunks are not equal2244 when chunks are associated with different builds2245 indicates that the chunks are not equal2246 #live?2247 data_store: :redis, value: true2248 is expected to eq true2249 data_store: :redis_trace_chunks, value: true2250 is expected to eq true2251 data_store: :database, value: false2252 is expected to eq false2253 data_store: :fog, value: false2254 is expected to eq false2255 #flushed?2256 data_store: :redis, value: false2257 is expected to eq false2258 data_store: :redis_trace_chunks, value: false2259 is expected to eq false2260 data_store: :database, value: true2261 is expected to eq true2262 data_store: :fog, value: true2263 is expected to eq true2264 partitioning2265 with build2266 sets partition_id to the current partition value2267 when it is already set2268 does not change the partition_id value2269 without build2270 is expected to validate that :partition_id cannot be empty/falsy2271 does not change the partition_id value2272DesignManagement::Design2273 behaves like AtomicInternalId2274 .has_internal_id2275 Module inclusion2276 is expected to includes the AtomicInternalId module2277 Validation2278 when presence validation is required2279 when creating an object2280 raises an error if the internal id is blank2281 when updating an object2282 raises an error if the internal id is blank2283 when presence validation is not required2284 when creating an object2285 does not raise an error if the internal id is blank (PENDING: No reason given)2286 when updating an object2287 does not raise an error if the internal id is blank (PENDING: No reason given)2288 Creating an instance2289 saves a new instance properly2290 internal id generation2291 calls InternalId.generate_next and sets internal id attribute2292 does not overwrite an existing internal id2293 when the instance has an internal ID set2294 calls InternalId.update_last_value and sets the `last_value` to that of the instance2295 unsetting the instance internal id on rollback2296 when the internal id has been changed2297 when the internal id is automatically set2298 clears it on the instance2299 when the internal id is manually set2300 does not clear it on the instance2301 when the internal id has not been changed2302 preserves the value on the instance2303 supply of internal ids2304 provides a persistent supply of IID values, sensitive to the current state2305 #reset_scope_internal_id_attribute2306 rewinds the allocated IID2307 allocates the same IID2308 behaves like a class that supports relative positioning2309 #scoped_items2310 includes all items with the same scope2311 #relative_siblings2312 includes all items with the same scope, except self2313 .move_nulls_to_end2314 moves items with null relative_position to the end2315 preserves relative position2316 moves the item near the start position when there are no existing positions2317 does not perform any moves if all items have their relative_position set2318 manages to move nulls to the end even if there is a sequence at the end2319 manages to move nulls to the end even if there is not enough space2320 manages to move nulls to the end, stacking if we cannot create enough space2321 manages to move nulls found in the relative scope2322 can move many nulls2323 does not have an N+1 issue2324 .move_nulls_to_start2325 moves items with null relative_position to the start2326 moves the item near the start position when there are no existing positions2327 preserves relative position2328 does not perform any moves if all items have their relative_position set2329 manages to move nulls to the start even if there is not enough space2330 manages to move nulls to the end, stacking if we cannot create enough space2331 #move_before2332 moves item before2333 can move the item before an item at the start2334 can move the item before an item at MIN_POSITION2335 can move the item before an item bunched up at MIN_POSITION2336 when there is no space2337 moves items correctly2338 leap-frogging to the left2339 can leap-frog STEPS times before needing to rebalance2340 there is no space to the left after moving STEPS times2341 rebalances to the right2342 #move_after2343 moves item after2344 can move the item after an item bunched up at MAX_POSITION2345 when there is no space2346 can move the item after an item at MAX_POSITION2347 moves items correctly2348 leap-frogging2349 rebalances after STEPS jumps2350 #move_to_start2351 places items at most IDEAL_DISTANCE from the start when the range is open2352 moves item to the end2353 positions the item at MIN_POSITION when there is only one space left2354 rebalances when there is already an item at the MIN_POSITION2355 deals with a run of elements at the start2356 #move_to_end2357 places items at most IDEAL_DISTANCE from the start when the range is open2358 moves item to the end2359 positions the item at MAX_POSITION when there is only one space left2360 rebalances when there is already an item at the MAX_POSITION2361 deals with a run of elements at the end2362 #move_between2363 positions item between two other2364 positions item between on top2365 positions item between to end2366 positions items even when after and before positions are the same2367 positions item in the middle of other two if distance is big enough2368 positions item closer to the middle if we are at the very top2369 positions item closer to the middle if we are at the very bottom2370 positions item in the middle of other two2371 positions item right if we pass non-sequential parameters2372 avoids N+1 queries when rebalancing other items2373 the two items are next to each other2374 behaves like moves item between2375 moves the middle item to between left and right2376 there is no space2377 behaves like moves item between2378 moves the middle item to between left and right2379 there is a bunch of items2380 handles bunches correctly2381 behaves like moves item between2382 moves the middle item to between left and right2383 relations2384 is expected to belong to project required: false2385 is expected to belong to issue required: false2386 is expected to have many actions2387 is expected to have many versions2388 is expected to have many authors2389 is expected to have many notes dependent => delete_all2390 is expected to have many user_mentions2391 #authors2392 returns unique version authors2393 validations2394 is expected to be valid2395 is expected to validate that :project cannot be empty/falsy2396 is expected to validate that :issue cannot be empty/falsy2397 is expected to validate that :filename cannot be empty/falsy2398 is expected to validate that the length of :filename is at most 2552399 is expected to validate that the length of :description is at most 10000002400 is expected to validate that :filename is case-sensitively unique within the scope of :issue_id2401 validates that the extension is an image2402 validating files with .svg extension2403 allows .svg files when feature flag is enabled2404 does not allow .svg files when feature flag is disabled2405 scopes2406 .visible_at_version2407 at oldest version2408 finds the first design only2409 at version 22410 finds the first and second designs2411 at latest version2412 finds designs2413 when the argument is nil2414 finds all undeleted designs2415 one of the designs was deleted before the given version2416 is not returned2417 a re-created history2418 is returned, though other deleted events are not2419 dead or alive2420 can establish the history at any point2421 .ordered2422 sorts by relative position and ID in ascending order2423 .in_creation_order2424 sorts by ID in ascending order2425 .with_filename2426 returns correct design when passed a single filename2427 returns correct designs when passed an Array of filenames2428 .on_issue2429 returns correct designs when passed a single issue2430 returns correct designs when passed an Array of issues2431 .current2432 returns just the undeleted designs2433 .build_full_path2434 builds the full path for a design2435 #visible_in?2436 tells us when a design is visible2437 #to_ability_name2438 is expected to eq "design"2439 #status2440 the design is new2441 is expected to have attributes {:status => :new}2442 the design is current2443 is expected to have attributes {:status => :current}2444 the design has been deleted2445 is expected to have attributes {:status => :deleted}2446 #deleted?2447 the design is new2448 is falsy2449 the design is current2450 is falsy2451 the design has been deleted2452 is truthy2453 the design has been deleted, but was then re-created2454 is falsy2455 #participants2456 is expected to be empty2457 when participants can read the project2458 is expected to contain exactly #<User id:953 @user403>, #<User id:954 @user404>, and #<User id:955 @user405>2459 #new_design?2460 is false when there are versions2461 is true when there are no versions2462 is false for deleted designs2463 does not cause extra queries when actions are loaded2464 implicitly caches values2465 queries again when the clear_version_cache trigger has been called2466 causes a single query when there versions are not loaded2467 #full_path2468 builds the full path for a design2469 #diff_refs2470 has no diff ref if new2471 there are several versions2472 builds diff refs based on the first commit and it's for the design2473 there is just one version2474 builds diff refs based on the empty tree if there was only one version2475 #repository2476 is a design repository2477 #note_etag_key2478 returns a correct etag key2479 #user_notes_count2480 returns a count of user-generated notes2481 #after_note_changed2482 calls #delete_cache on DesignUserNotesCountService for non-system notes2483 .for_reference2484 avoids extra queries when calling to_reference2485 #to_reference2486 when nil argument2487 uses the simple format2488 when full is true2489 returns complete path to the issue2490 when full is false2491 returns complete path to the issue2492 when same project argument2493 returns bare reference2494 reference_pattern2495 is nil2496 link_reference_pattern2497 is not nil2498 does not match the designs tab2499 intentionally ignores filenames with any special character2500 ext: "png"2501 matches the URL2502 the file is all upper case2503 extracts the encoded filename2504 ext: "PNG"2505 matches the URL2506 the file is all upper case2507 extracts the encoded filename2508 ext: "jpg"2509 matches the URL2510 the file is all upper case2511 extracts the encoded filename2512 ext: "JPG"2513 matches the URL2514 the file is all upper case2515 extracts the encoded filename2516 ext: "jpeg"2517 matches the URL2518 the file is all upper case2519 extracts the encoded filename2520 ext: "JPEG"2521 matches the URL2522 the file is all upper case2523 extracts the encoded filename2524 ext: "gif"2525 matches the URL2526 the file is all upper case2527 extracts the encoded filename2528 ext: "GIF"2529 matches the URL2530 the file is all upper case2531 extracts the encoded filename2532 ext: "bmp"2533 matches the URL2534 the file is all upper case2535 extracts the encoded filename2536 ext: "BMP"2537 matches the URL2538 the file is all upper case2539 extracts the encoded filename2540 ext: "tiff"2541 matches the URL2542 the file is all upper case2543 extracts the encoded filename2544 ext: "TIFF"2545 matches the URL2546 the file is all upper case2547 extracts the encoded filename2548 ext: "ico"2549 matches the URL2550 the file is all upper case2551 extracts the encoded filename2552 ext: "ICO"2553 matches the URL2554 the file is all upper case2555 extracts the encoded filename2556 ext: "webp"2557 matches the URL2558 the file is all upper case2559 extracts the encoded filename2560 ext: "WEBP"2561 matches the URL2562 the file is all upper case2563 extracts the encoded filename2564 ext: "svg"2565 matches the URL2566 the file is all upper case2567 extracts the encoded filename2568 ext: "SVG"2569 matches the URL2570 the file is all upper case2571 extracts the encoded filename2572 .by_issue_id_and_filename2573 behaves like a where_composite scope2574 we pass an empty array2575 returns a null relation2576 we pass nil2577 returns a null relation2578 we pass a singleton composite id2579 finds the first result2580 we pass group of ids2581 finds all the results2582 performance2583 is not O(N)2584AlertManagement::ProcessPrometheusAlertService2585 #execute2586 when alert payload is valid2587 behaves like processes new firing alert2588 behaves like creates an alert management alert or errors2589 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, started_at: datetime_with_timezone, ended_at: datetime_with_timezone, events: integer, iid: integer, severity: integer, status: integer, fingerprint: binary, issue_id: integer, project_id: integer, title: text, description: text, service: text, monitoring_tool: text, hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2590 creates AlertManagement::Alert2591 executes the alert service hooks2592 and fails to save2593 writes a warning to the log2594 behaves like alerts service responds with an error2595 is expected to eq :bad_request2596 behaves like creates expected system notes for alert2597 for new_alert2598 behaves like processes incident issues if enabled2599 is expected to be success2600 with incident setting disabled2601 behaves like does not process incident issues2602 is expected not to receive perform_async(*(any args)) 0 times2603 behaves like sends alert notification emails if enabled2604 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2605 with email setting disabled2606 behaves like does not send alert notification emails2607 is expected not to receive new(*(any args)) 0 times2608 for an existing alert with the same fingerprint2609 which is triggered2610 behaves like adds an alert management alert event2611 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, started_at: datetime_with_timezone, ended_at: datetime_with_timezone, events: integer, iid: integer, severity: integer, status: integer, fingerprint: binary, issue_id: integer, project_id: integer, title: text, description: text, service: text, monitoring_tool: text, hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2612 behaves like does not create an alert management alert2613 is expected not to change `AlertManagement::Alert.count`2614 behaves like sends alert notification emails if enabled2615 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2616 with email setting disabled2617 behaves like does not send alert notification emails2618 is expected not to receive new(*(any args)) 0 times2619 behaves like processes incident issues if enabled2620 is expected to be success2621 with issue2622 behaves like does not process incident issues2623 is expected not to receive perform_async(*(any args)) 0 times2624 with incident setting disabled2625 behaves like does not process incident issues2626 is expected not to receive perform_async(*(any args)) 0 times2627 behaves like does not create an alert management alert2628 is expected not to change `AlertManagement::Alert.count`2629 behaves like does not create a system note for alert2630 is expected not to change `Note.count`2631 with an existing resolved alert as well2632 behaves like adds an alert management alert event2633 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, started_at: datetime_with_timezone, ended_at: datetime_with_timezone, events: integer, iid: integer, severity: integer, status: integer, fingerprint: binary, issue_id: integer, project_id: integer, title: text, description: text, service: text, monitoring_tool: text, hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2634 behaves like does not create an alert management alert2635 is expected not to change `AlertManagement::Alert.count`2636 behaves like sends alert notification emails if enabled2637 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2638 with email setting disabled2639 behaves like does not send alert notification emails2640 is expected not to receive new(*(any args)) 0 times2641 behaves like processes incident issues if enabled2642 is expected to be success2643 with issue2644 behaves like does not process incident issues2645 is expected not to receive perform_async(*(any args)) 0 times2646 with incident setting disabled2647 behaves like does not process incident issues2648 is expected not to receive perform_async(*(any args)) 0 times2649 behaves like does not create an alert management alert2650 is expected not to change `AlertManagement::Alert.count`2651 behaves like does not create a system note for alert2652 is expected not to change `Note.count`2653 which is acknowledged2654 behaves like adds an alert management alert event2655 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, started_at: datetime_with_timezone, ended_at: datetime_with_timezone, events: integer, iid: integer, severity: integer, status: integer, fingerprint: binary, issue_id: integer, project_id: integer, title: text, description: text, service: text, monitoring_tool: text, hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2656 behaves like does not create an alert management alert2657 is expected not to change `AlertManagement::Alert.count`2658 behaves like processes incident issues if enabled2659 is expected to be success2660 with issue2661 behaves like does not process incident issues2662 is expected not to receive perform_async(*(any args)) 0 times2663 with incident setting disabled2664 behaves like does not process incident issues2665 is expected not to receive perform_async(*(any args)) 0 times2666 behaves like does not create an alert management alert2667 is expected not to change `AlertManagement::Alert.count`2668 behaves like does not create a system note for alert2669 is expected not to change `Note.count`2670 behaves like does not send alert notification emails2671 is expected not to receive new(*(any args)) 0 times2672 which is ignored2673 behaves like adds an alert management alert event2674 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, started_at: datetime_with_timezone, ended_at: datetime_with_timezone, events: integer, iid: integer, severity: integer, status: integer, fingerprint: binary, issue_id: integer, project_id: integer, title: text, description: text, service: text, monitoring_tool: text, hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2675 behaves like does not create an alert management alert2676 is expected not to change `AlertManagement::Alert.count`2677 behaves like processes incident issues if enabled2678 is expected to be success2679 with issue2680 behaves like does not process incident issues2681 is expected not to receive perform_async(*(any args)) 0 times2682 with incident setting disabled2683 behaves like does not process incident issues2684 is expected not to receive perform_async(*(any args)) 0 times2685 behaves like does not create an alert management alert2686 is expected not to change `AlertManagement::Alert.count`2687 behaves like does not create a system note for alert2688 is expected not to change `Note.count`2689 behaves like does not send alert notification emails2690 is expected not to receive new(*(any args)) 0 times2691 which is resolved2692 behaves like creates an alert management alert or errors2693 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, started_at: datetime_with_timezone, ended_at: datetime_with_timezone, events: integer, iid: integer, severity: integer, status: integer, fingerprint: binary, issue_id: integer, project_id: integer, title: text, description: text, service: text, monitoring_tool: text, hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2694 creates AlertManagement::Alert2695 executes the alert service hooks2696 and fails to save2697 writes a warning to the log2698 behaves like alerts service responds with an error2699 is expected to eq :bad_request2700 behaves like creates expected system notes for alert2701 for new_alert2702 behaves like processes incident issues if enabled2703 is expected to be success2704 with incident setting disabled2705 behaves like does not process incident issues2706 is expected not to receive perform_async(*(any args)) 0 times2707 behaves like sends alert notification emails if enabled2708 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2709 with email setting disabled2710 behaves like does not send alert notification emails2711 is expected not to receive new(*(any args)) 0 times2712 when another alert is saved at the same time2713 finds the other alert and increments the counter2714 when another alert is saved before the validation runes2715 finds the other alert and increments the counter2716 with resolving payload2717 behaves like processes recovery alert2718 seen for the first time2719 behaves like alerts service responds with an error and takes no actions2720 is expected to eq :bad_request2721 behaves like does not create an alert management alert2722 is expected not to change `AlertManagement::Alert.count`2723 behaves like does not create a system note for alert2724 is expected not to change `Note.count`2725 behaves like does not process incident issues2726 is expected not to receive perform_async(*(any args)) 0 times2727 behaves like does not send alert notification emails2728 is expected not to receive new(*(any args)) 0 times2729 for an existing alert with the same fingerprint2730 which is triggered2731 behaves like resolves an existing alert management alert2732 sets the end time and status2733 behaves like creates expected system notes for alert2734 for recovery_alert, resolve_alert2735 behaves like sends alert notification emails if enabled2736 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2737 with email setting disabled2738 behaves like does not send alert notification emails2739 is expected not to receive new(*(any args)) 0 times2740 behaves like closes related incident if enabled2741 with incident2742 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 12743 without incident2744 is expected not to receive perform_async(*(any args)) 0 times2745 with incident setting disabled2746 behaves like does not close related incident2747 with incident2748 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`2749 without incident2750 is expected not to receive perform_async(*(any args)) 0 times2751 behaves like does not create an alert management alert2752 is expected not to change `AlertManagement::Alert.count`2753 behaves like does not process incident issues2754 is expected not to receive perform_async(*(any args)) 0 times2755 behaves like does not add an alert management alert event2756 is expected not to change `alert.reload.events`2757 which is ignored2758 behaves like resolves an existing alert management alert2759 sets the end time and status2760 behaves like creates expected system notes for alert2761 for recovery_alert, resolve_alert2762 behaves like sends alert notification emails if enabled2763 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2764 with email setting disabled2765 behaves like does not send alert notification emails2766 is expected not to receive new(*(any args)) 0 times2767 behaves like closes related incident if enabled2768 with incident2769 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 12770 without incident2771 is expected not to receive perform_async(*(any args)) 0 times2772 with incident setting disabled2773 behaves like does not close related incident2774 with incident2775 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`2776 without incident2777 is expected not to receive perform_async(*(any args)) 0 times2778 behaves like does not create an alert management alert2779 is expected not to change `AlertManagement::Alert.count`2780 behaves like does not process incident issues2781 is expected not to receive perform_async(*(any args)) 0 times2782 behaves like does not add an alert management alert event2783 is expected not to change `alert.reload.events`2784 which is acknowledged2785 behaves like resolves an existing alert management alert2786 sets the end time and status2787 behaves like creates expected system notes for alert2788 for recovery_alert, resolve_alert2789 behaves like sends alert notification emails if enabled2790 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2791 with email setting disabled2792 behaves like does not send alert notification emails2793 is expected not to receive new(*(any args)) 0 times2794 behaves like closes related incident if enabled2795 with incident2796 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 12797 without incident2798 is expected not to receive perform_async(*(any args)) 0 times2799 with incident setting disabled2800 behaves like does not close related incident2801 with incident2802 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`2803 without incident2804 is expected not to receive perform_async(*(any args)) 0 times2805 behaves like does not create an alert management alert2806 is expected not to change `AlertManagement::Alert.count`2807 behaves like does not process incident issues2808 is expected not to receive perform_async(*(any args)) 0 times2809 behaves like does not add an alert management alert event2810 is expected not to change `alert.reload.events`2811 which is resolved2812 behaves like alerts service responds with an error and takes no actions2813 is expected to eq :bad_request2814 behaves like does not create an alert management alert2815 is expected not to change `AlertManagement::Alert.count`2816 behaves like does not create a system note for alert2817 is expected not to change `Note.count`2818 behaves like does not process incident issues2819 is expected not to receive perform_async(*(any args)) 0 times2820 behaves like does not send alert notification emails2821 is expected not to receive new(*(any args)) 0 times2822 environment given2823 sets the environment2824 prometheus alert given2825 sets the prometheus alert and environment2826 when alert payload is invalid2827 behaves like alerts service responds with an error and takes no actions2828 is expected to eq :bad_request2829 behaves like does not create an alert management alert2830 is expected not to change `AlertManagement::Alert.count`2831 behaves like does not create a system note for alert2832 is expected not to change `Note.count`2833 behaves like does not process incident issues2834 is expected not to receive perform_async(*(any args)) 0 times2835 behaves like does not send alert notification emails2836 is expected not to receive new(*(any args)) 0 times2837Banzai::Filter::References::CommitRangeReferenceFilter2838 requires project context2839 ignores valid references contained inside 'pre' element2840 ignores valid references contained inside 'code' element2841 ignores valid references contained inside 'a' element2842 ignores valid references contained inside 'style' element2843 internal reference2844 links to a valid two-dot reference2845 links to a valid three-dot reference2846 links to a valid short ID2847 links with adjacent text2848 ignores invalid commit IDs2849 includes no title attribute2850 includes default classes2851 includes a data-project attribute2852 includes a data-commit-range attribute2853 supports an :only_path option2854 cross-project / cross-namespace complete reference2855 links to a valid reference2856 link has valid text2857 has valid text2858 ignores invalid commit IDs on the referenced project2859 cross-project / same-namespace complete reference2860 links to a valid reference2861 link has valid text2862 has valid text2863 ignores invalid commit IDs on the referenced project2864 cross-project shorthand reference2865 links to a valid reference2866 link has valid text2867 has valid text2868 ignores invalid commit IDs on the referenced project2869 cross-project URL reference2870 links to a valid reference2871 links with adjacent text2872 ignores invalid commit IDs on the referenced project2873 group context2874 ignores internal references2875 links to a full-path reference2876SentNotification2877 validation2878 note validity2879 when the project doesn't match the noteable's project2880 is invalid2881 when the project doesn't match the discussion project2882 is invalid2883 when the noteable project and discussion project match2884 is valid2885 .record2886 behaves like a successful sent notification2887 creates a new SentNotification2888 .record_note2889 for a discussion note2890 sets in_reply_to_discussion_id2891 behaves like a successful sent notification2892 creates a new SentNotification2893 for an individual note2894 sets in_reply_to_discussion_id2895 behaves like a successful sent notification2896 creates a new SentNotification2897 #unsubscribable?2898 behaves like an unsubscribable notification2899 for issue2900 is expected to be unsubscribable2901 behaves like an unsubscribable notification2902 for merge request2903 is expected to be unsubscribable2904 behaves like a non-unsubscribable notification2905 for a commit2906 is expected not to be unsubscribable2907 behaves like a non-unsubscribable notification2908 for a personal snippet2909 is expected not to be unsubscribable2910 behaves like a non-unsubscribable notification2911 for a project snippet2912 is expected not to be unsubscribable2913 #for_commit?2914 behaves like a non-commit notification2915 for a issue2916 is expected not to be for commit2917 behaves like a non-commit notification2918 for a merge request2919 is expected not to be for commit2920 behaves like a commit notification2921 for commit2922 is expected to be for commit2923 behaves like a non-commit notification2924 for a personal snippet2925 is expected not to be for commit2926 behaves like a non-commit notification2927 for a project snippet2928 is expected not to be for commit2929 #for_snippet?2930 behaves like a non-snippet notification2931 for a issue2932 is expected not to be for snippet2933 behaves like a non-snippet notification2934 for a merge request2935 is expected not to be for snippet2936 behaves like a non-snippet notification2937 for a commit2938 is expected not to be for snippet2939 behaves like a snippet notification2940 for personal snippet2941 is expected to be for snippet2942 behaves like a snippet notification2943 for project snippet2944 is expected to be for snippet2945 #create_reply2946 for issue2947 creates a comment on the issue2948 for issue comment2949 converts the comment to a discussion on the issue2950 for issue discussion2951 creates a reply on the discussion2952 for merge request2953 creates a comment on the merge_request2954 for merge request comment2955 converts the comment to a discussion on the merge request2956 for merge request diff discussion2957 creates a reply on the discussion2958 for merge request non-diff discussion2959 creates a reply on the discussion2960 for commit2961 creates a comment on the commit2962 for commit comment2963 creates a comment on the commit2964 for commit diff discussion2965 creates a reply on the discussion2966 for commit non-diff discussion2967 creates a reply on the discussion2968 #position=2969 doesn't accept non-hash JSON passed as a string2970 does accept a position hash as a string2971 does accept a hash2972DesignManagement::DesignAtVersion2973 #id2974 combines design.id and version.id2975 #==2976 identifies objects created with the same parameters as equal2977 identifies unequal objects as unequal, by virtue of their version2978 identifies unequal objects as unequal, by virtue of their design2979 rejects objects with the same id and the wrong class2980 expects objects to be of the same type, not subtypes2981 status methods2982 a design before it has been created2983 is not deleted2984 has the status :not_created_yet2985 a design as of its creation2986 is not deleted2987 has the status :current2988 a design after it has been created, but before deletion2989 is not deleted2990 has the status :current2991 a design as of its modification2992 is not deleted2993 has the status :current2994 a design as of its deletion2995 is deleted2996 has the status :deleted2997 a design after its deletion2998 is deleted2999 has the status :deleted3000 a design on its recreation3001 is not deleted3002 has the status :current3003 validations3004 is expected to be valid3005 a design-at-version without a design3006 is expected to be invalid3007 mentions the design in the errors3008 a design-at-version without a version3009 is expected to be invalid3010 mentions the version in the errors3011 design_and_version_belong_to_the_same_issue3012 both design and version are supplied3013 the design belongs to the same issue as the version3014 is expected to be valid3015 the design does not belong to the same issue as the version3016 is expected to be invalid3017 the factory is just supplied with a design3018 is expected to be valid3019 the factory is just supplied with a version3020 is expected to be valid3021 design_and_version_have_issue_id3022 the design has no issue_id, because it is being imported3023 is expected to be invalid3024 the version has no issue_id, because it is being imported3025 is expected to be invalid3026 both the design and the version are being imported3027 is expected to be invalid3028 .lazy_find3029 issues fewer queries than the naive approach would3030 .find3031 invalid ids3032 #count3033 counts 0 records3034 #empty?3035 is empty3036 #to_a3037 finds no records3038 valid ids3039 #count3040 counts 2 records3041 issues at most two queries3042 #to_a3043 finds 6 records3044 only returns records with matching IDs3045 only returns valid records3046 issues at most two queries3047Backup::Repositories3048 #dump3049 avoids N+1 database queries3050 hashed storage3051 behaves like creates repository bundles3052 calls enqueue for each repository type3053 legacy storage3054 behaves like creates repository bundles3055 calls enqueue for each repository type3056 command failure3057 enqueue_project raises an error3058 project query raises an error3059 storages3060 calls enqueue for all repositories on the specified storage3061 paths3062 project path3063 calls enqueue for all repositories on the specified project3064 group path3065 calls enqueue for all repositories on all descendant projects3066 #restore3067 calls enqueue for each repository type3068 restoring object pools3069 schedules restoring of the pool3070 skips pools when no source project is found3071 cleanup snippets3072 shows the appropriate error3073 removes the snippets from the DB3074 removes the repository from disk3075 storages3076 calls enqueue for all repositories on the specified storage3077 paths3078 project path3079 calls enqueue for all repositories on the specified project3080 group path3081 calls enqueue for all repositories on all descendant projects3082ResourceLabelEvent3083 behaves like having unique enum values3084 has unique values in "action"3085 behaves like a resource event3086 importable3087 is expected to respond to #importing?3088 is expected to respond to #imported?3089 validations3090 is expected not to allow :user to be ‹nil›3091 when importing3092 is expected to allow :user to be ‹nil›3093 associations3094 is expected to belong to user required: false3095 .created_after3096 returns the expected events3097 returns no events if time is after last record time3098 behaves like a resource event for issues3099 associations3100 is expected to belong to issue required: false3101 .by_issue3102 returns the expected records for an issue with events3103 returns the expected records for an issue with no events3104 .by_issue_ids3105 returns the expected events3106 .by_created_at_earlier_or_equal_to3107 returns the expected events3108 returns the expected events3109 #issuable3110 returns the expected issuable3111 behaves like a resource event for merge requests3112 associations3113 is expected to belong to merge_request required: false3114 .by_merge_request3115 returns the expected records for an issue with events3116 returns the expected records for an issue with no events3117 #issuable3118 returns the expected issuable3119 on callbacks3120 does not trigger note created subscription3121 behaves like a note for work item resource event3122 builds synthetic note with correct synthetic_note_class3123 on callbacks3124 triggers note created subscription3125 associations3126 is expected to belong to label required: false3127 validations3128 is expected to be valid3129 Issuable validation3130 is invalid if issue_id and merge_request_id are missing3131 is invalid if issue_id and merge_request_id are set3132 is valid if only issue_id is set3133 is valid if only merge_request_id is set3134 callbacks3135 #expire_etag_cache3136 expires resource note etag cache on event save3137 expires resource note etag cache on event destroy3138 #outdated_markdown?3139 returns true if label is missing and reference is not empty3140 returns true if reference is not set yet3141 returns true if markdown is outdated3142 returns false if label and reference are set3143 .visible_to_user?3144 returns events with labels accessible by user3145 filters events with public project labels if issues and MRs are private3146 filters events with project labels not accessible by user3147 filters events with group labels not accessible by user3148 #discussion_id3149 generates different discussion ID for events created milliseconds apart3150 with multiple label events3151 builds synthetic note3152JiraImportState3153 associations3154 is expected to belong to project required: false3155 is expected to belong to user required: false3156 is expected to belong to label required: false3157 modules3158 is expected to includes the AfterCommitQueue module3159 validations3160 is expected to validate that :project cannot be empty/falsy3161 is expected to validate that :jira_project_key cannot be empty/falsy3162 is expected to validate that :jira_project_name cannot be empty/falsy3163 is expected to validate that :jira_project_xid cannot be empty/falsy3164 when trying to run multiple imports3165 when project has an initial jira_import3166 behaves like multiple running imports not allowed3167 returns not valid3168 when project has a scheduled jira_import3169 behaves like multiple running imports not allowed3170 returns not valid3171 when project has a started jira_import3172 behaves like multiple running imports not allowed3173 returns not valid3174 when project has a failed jira_import3175 returns valid3176 when project has a finished jira_import3177 returns valid3178 #in_progress?3179 statuses that return in progress3180 behaves like in progress3181 returns true3182 behaves like in progress3183 returns true3184 statuses that return not in progress3185 behaves like not in progress3186 returns false3187 behaves like not in progress3188 returns false3189 behaves like not in progress3190 returns false3191 states transition flow3192 when jira import is in initial state3193 behaves like can transition3194 returns true3195 returns true3196 behaves like cannot transition3197 returns false3198 returns false3199 when jira import is in scheduled state3200 behaves like can transition3201 returns true3202 returns true3203 behaves like cannot transition3204 returns false3205 when jira import is in started state3206 behaves like can transition3207 returns true3208 returns true3209 behaves like cannot transition3210 returns false3211 when jira import is in failed state3212 behaves like cannot transition3213 returns false3214 returns false3215 returns false3216 when jira import is in finished state3217 behaves like cannot transition3218 returns false3219 returns false3220 returns false3221 after transition to scheduled3222 triggers the import job3223 after transition to finished3224 triggers the import job3225 triggers the import job3226 updates the record with imported issues counts3227 ensure error_message size on save3228 when jira import has no error_message3229 does not run the callback3230 when jira import error_message does not exceed the limit3231 does not run the callback3232 when error_message exceeds limit3233 truncates error_message to the limit3234Banzai::Filter::References::UserReferenceFilter3235 requires project context3236 ignores invalid users3237 ignores references with text before the @ sign3238 ignores valid references contained inside 'pre' element3239 ignores valid references contained inside 'code' element3240 ignores valid references contained inside 'a' element3241 ignores valid references contained inside 'style' element3242 links with adjacent text3243 includes default classes3244 behaves like user reference or project reference3245 supports an :only_path context3246 when mentioning a resource3247 links to a resource3248 links to a resource with a period3249 links to a resource with an underscore3250 links to a resource with different case-sensitivity3251 behaves like a reference containing an element node3252 does not escape inner html3253 behaves like it contains a data- attribute3254 includes a data- attribute3255 referencing a resource in a link href3256 links to the resource3257 links with adjacent text3258 behaves like it contains a data- attribute3259 includes a data- attribute3260 mentioning @all3261 supports a special @all mention3262 includes a data-author attribute when there is an author3263 does not include a data-author attribute when there is no author3264 ignores reference to all when the user is not a project member3265 behaves like a reference containing an element node3266 does not escape inner html3267 mentioning a group3268 links to the Group3269 includes a data-group attribute3270 behaves like a reference containing an element node3271 does not escape inner html3272 mentioning a nested group3273 links to the nested group3274 has the full group name as a title3275 behaves like a reference containing an element node3276 does not escape inner html3277 when a project is not specified3278 does not link a User3279 when skip_project_check set to true3280 links to a User3281 does not link users using @all reference3282 in group context3283 supports a special @all mention3284 supports mentioning a single user3285 supports mentioning a group3286 #namespaces3287 returns a Hash containing all Namespaces3288 #usernames3289 returns the usernames mentioned in a document3290 checking N+13291 does not have N+1 per multiple user references3292Gitlab::Graphql::Pagination::Keyset::Connection3293 invokes no an extra query for the next page check3294 when the relation is loaded3295 invokes no extra query3296 with generic keyset order support3297 behaves like a connection with collection methods3298 responds to to_a3299 responds to size3300 responds to map3301 responds to include?3302 responds to empty?3303 behaves like a redactable connection3304 no redactor set3305 contains the unwanted item3306 does not redact more than once3307 redactor is set3308 does not contain the unwanted item3309 does not redact more than once3310 #cursor_for3311 returns an encoded ID3312 when an order is specified3313 returns the encoded value of the order3314 when multiple orders are specified3315 returns the encoded value of the order3316 #sliced_nodes3317 when before is passed3318 only returns the project before the selected one3319 when the sort order is descending3320 returns the correct nodes3321 when after is passed3322 only returns the project before the selected one3323 when the sort order is descending3324 returns the correct nodes3325 when both before and after are passed3326 returns the expected set3327 when multiple orders with nil values are defined3328 when ascending3329 behaves like nodes are in ascending order3330 when no cursor is passed3331 returns projects in ascending order3332 when before cursor value is not NULL3333 returns all projects before the cursor3334 when after cursor value is not NULL3335 returns all projects after the cursor3336 when before and after cursor3337 returns all projects after the cursor3338 when before cursor value is NULL3339 returns all projects before the cursor3340 when after cursor value is NULL3341 returns all projects after the cursor3342 when descending3343 behaves like nodes are in descending order3344 when no cursor is passed3345 only returns projects in descending order3346 when before cursor value is not NULL3347 returns all projects before the cursor3348 when after cursor value is not NULL3349 returns all projects after the cursor3350 when before and after cursor3351 returns all projects after the cursor3352 when before cursor value is NULL3353 returns all projects before the cursor3354 when after cursor value is NULL3355 returns all projects after the cursor3356 when ordering by similarity3357 behaves like nodes are in descending order3358 when no cursor is passed3359 only returns projects in descending order3360 when before cursor value is not NULL3361 returns all projects before the cursor3362 when after cursor value is not NULL3363 returns all projects after the cursor3364 when before and after cursor3365 returns all projects after the cursor3366 when an invalid cursor is provided3367 raises an error3368 #nodes3369 behaves like connection with paged nodes3370 returns the collection limited to max page size3371 is a loaded memoized array3372 when `first` is passed3373 returns only the first elements3374 when `last` is passed3375 returns only the last elements3376 when both are passed3377 raises an error3378 when primary key is not in original order3379 is added to end3380 when there is no primary key3381 raises an error3382 #has_previous_page and #has_next_page3383 when default query3384 has no previous, but a next3385 when before is first item3386 has no previous, but a next3387 using `before`3388 when before is the last item3389 has no previous, but a next3390 when before and last specified3391 has a previous and a next3392 when before and last does request all remaining nodes3393 has a previous and a next3394 using `after`3395 when after is the first item3396 has a previous, and a next3397 when after and first specified3398 has a previous and a next3399 when before and last does request all remaining nodes3400 has a previous but no next3401Ci::BuildDependencies3402 for local dependencies3403 jobs from previous stages3404 when job is in the first stage3405 is expected to be empty3406 when job is in the second stage3407 contains all jobs from the first stage3408 when job is in the last stage3409 contains all jobs from all previous stages3410 when a job is retried3411 contains the retried job instead of the original one3412 when needs refer to jobs from the same stage3413 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.167098888 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "staging", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 2, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lzsruYUrY+AagQtyuzZynShOzwrYitGVbspFziEje3EVHfug/...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 100, stage_id: 81, partition_id: 100, tag_list: nil>3414 jobs from specified dependencies3415 when dependencies are defined3416 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.382530186 +0000", started_at: "2023-06-02 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 91, name: "rspec", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 1, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|24llCnoEJD5NG8A4oWz+YufOw4LEBcG/cHp+bYXWcSNX+fu2r...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 106, stage_id: 83, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.364541385 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "staging", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 2, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|SID+Qy7uMXMNs7+3b1tpEyzGTu18pEnnDp8HXIM1DUa3/UQgo...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 105, stage_id: 84, partition_id: 100, tag_list: nil>3417 when needs are defined3418 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.474370529 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "build", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|ZRRqhHKagkWf2/gaPPNtgadMvaXvzDahc7SpsXa/ZnZBgafNQ...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 108, stage_id: 85, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.544570572 +0000", started_at: "2023-06-02 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 91, name: "rspec", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 1, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|hNnnUSzymF158m5E1KZBheSaJkmwluOa5v/mKnKhx+0amv5mx...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 111, stage_id: 86, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.527500051 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "staging", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 2, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|63kh0lKv7/SquiCKGkbStvMyk+Vido1gJlF7uIkZ5OHMpWUEa...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 110, stage_id: 87, partition_id: 100, tag_list: nil>3419 when need artifacts are defined3420 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.693067137 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "build", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|y76Qu2lG8bBM5EEHsDZBLsCzAX4moBUZF503sz7cxE2d/QoK1...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 113, stage_id: 88, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.745540379 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "staging", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 2, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|40xo0vpjUKidbIq4a9GMMJfUaL3nZyiH/CNzc0DmJ+oVzNXsw...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 115, stage_id: 90, partition_id: 100, tag_list: nil>3421 when needs and dependencies are defined3422 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.931115806 +0000", started_at: "2023-06-02 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 91, name: "rspec", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 1, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|/Gw0iykivjZcYCJUmj3F6Enidy1OEf+zsSO8lNIMlyhOqH+SV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 121, stage_id: 92, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:54.913823985 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 91, name: "staging", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 2, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|S/y2oit1flsm4edhoE+x6ygm8mTZiyawWXNzPI+CLaqPzKgVY...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 120, stage_id: 93, partition_id: 100, tag_list: nil>3423 when needs and dependencies contradict3424 returns only the intersection3425 when nor dependencies or needs are defined3426 returns the jobs from previous stages3427 for cross_pipeline dependencies3428 when dependency specifications are valid3429 when pipeline exists in the hierarchy3430 when job exists3431 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:55.849836449 +0000", started_at: "2023-06-02 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 92, name: "test", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|HoMybgB4jZsKxblXa82c/mwNOz0sTR2+DPRKhOYM8X+U2ouZW...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 138, stage_id: 100, partition_id: 100, tag_list: nil>3432 is expected to be valid3433 when pipeline and job are specified via variables3434 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-06-02 08:53:29.000000000 +0000", created_at: "2023-06-02 08:50:29.000000000 +0000", updated_at: "2023-06-02 06:39:56.880539887 +0000", started_at: "2023-06-02 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 96, name: "test", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 937, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-06-02 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|SbmajfCxWjtgEqA7E634yAYkUR5BBstAToA49AtTJVMWEqZc6...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 153, stage_id: 108, partition_id: 100, tag_list: nil>3435 is expected to be valid3436 when same job names exist in other pipelines in the hierarchy3437 returns a limited number of dependencies with the right match3438 when job does not exist3439 is expected to be empty3440 is expected not to be valid3441 when pipeline does not exist3442 is expected to be empty3443 is expected not to be valid3444 when jobs exist in different pipelines in the hierarchy3445 when pipeline and jobs dependencies are mismatched3446 is expected to be empty3447 is expected not to be valid3448 when dependencies contain a valid pair3449 filters out the invalid ones3450 is expected not to be valid3451 when job and pipeline exist outside the hierarchy3452 ignores jobs outside the pipeline hierarchy3453 is expected not to be valid3454 when current pipeline is specified3455 ignores jobs from the current pipeline as simple needs should be used instead3456 is expected not to be valid3457 when artifacts:false3458 is expected to be empty3459 is expected to be valid3460 #all3461 returns the union of all local dependencies and any cross project dependencies3462 #valid?3463 is expected to eq true3464 when a local dependency is invalid3465 is expected to eq false3466CommitCollection3467 #each3468 yields every commit3469 .committers3470 returns a relation of users when users are found3471 returns empty array when committers cannot be found3472 excludes authors of merge commits3473 when committer email is nil3474 returns empty array when committers cannot be found3475 #committer_user_ids3476 returns an array of committer user IDs3477 when there are no committers3478 returns an empty array3479 #without_merge_commits3480 returns all commits except merge commits3481 #with_latest_pipeline3482 sets the latest pipeline for every commit so no additional queries are necessary3483 performs a single query to fetch pipeline warnings3484 #with_markdown_cache3485 preloads commits cache markdown3486 enrichment methods3487 #unenriched3488 returns all commits that are not backed by gitaly data3489 #fully_enriched?3490 returns true when all commits are backed by gitaly data3491 returns false when any commits are not backed by gitaly data3492 returns true when the collection is empty3493 #enrich!3494 replaces commits in the collection with those backed by gitaly data3495 maintains the original order of the commits3496 fetches data if there are unenriched commits3497 does not fetch data if all commits are enriched3498 returns the original commit if the commit could not be lazy loaded3499 #load_tags3500 loads tags3501 #respond_to_missing?3502 returns true when the underlying Array responds to the message3503 returns false when the underlying Array does not respond to the message3504 #method_missing3505 delegates undefined methods to the underlying Array3506API::Entities::User3507 exposes correct attributes3508 exposes created_at if the current user can read the user profile3509 does not expose created_at if the current user cannot read the user profile3510 exposes user as not a bot3511 exposes local_time3512 exposing follow relationships3513 when current user cannot read user profile3514 behaves like does not expose relationship3515 does not expose followers3516 when current user can read user profile3517 behaves like exposes relationship3518 exposes followers3519 when current user can read user profile and disable_follow_users is switched off3520 behaves like exposes relationship3521 exposes followers3522 when current user can read user profile, disable_follow_users is switched on and user disabled it for themself3523 behaves like does not expose relationship3524 does not expose followers3525 when current user can read user profile, disable_follow_users is switched on and current user disabled it for themself3526 behaves like does not expose relationship3527 does not expose followers3528 when current user cannot read user profile3529 behaves like does not expose relationship3530 does not expose following3531 when current user can read user profile3532 behaves like exposes relationship3533 exposes following3534 when current user can read user profile and disable_follow_users is switched off3535 behaves like exposes relationship3536 exposes following3537 when current user can read user profile, disable_follow_users is switched on and user disabled it for themself3538 behaves like does not expose relationship3539 does not expose following3540 when current user can read user profile, disable_follow_users is switched on and current user disabled it for themself3541 behaves like does not expose relationship3542 does not expose following3543 when current user cannot read user profile3544 behaves like does not expose relationship3545 does not expose is_followed3546 when current user can read user profile3547 behaves like exposes relationship3548 exposes is_followed3549 when current user can read user profile and disable_follow_users is switched off3550 behaves like exposes relationship3551 exposes is_followed3552 when current user can read user profile, disable_follow_users is switched on and user disabled it for themself3553 behaves like does not expose relationship3554 does not expose is_followed3555 when current user can read user profile, disable_follow_users is switched on and current user disabled it for themself3556 behaves like does not expose relationship3557 does not expose is_followed3558 with project bot user3559 exposes user as a bot3560 when the requester is not an admin3561 does not expose project bot user name3562 when the requester is nil3563 does not expose project bot user name3564 when the requester is a project maintainer3565 exposes project bot user name3566 when the requester is an admin3567 exposes project bot user name3568 with group bot user3569 exposes user as a bot3570 when the requester is not a group member3571 with a public group3572 exposes group bot user name3573 with a private group3574 does not expose group bot user name3575 when the requester is nil3576 does not expose group bot user name3577 when the requester is a group maintainer3578 exposes group bot user name3579 when the requester is an admin3580 exposes group bot user name3581 with logged-out user3582 exposes is_followed as nil3583Groups::CreateService#execute3584 visibility level restrictions3585 create groups without restricted visibility level3586 is expected to be persisted3587 cannot create group with restricted visibility level3588 is expected not to be persisted3589 when `setup_for_company:true` is passed3590 creates group with the specified setup_for_company3591 creating a group with `default_branch_protection` attribute3592 for users who have the ability to create a group with `default_branch_protection`3593 creates group with the specified branch protection level3594 for users who do not have the ability to create a group with `default_branch_protection`3595 does not create the group with the specified branch protection level3596 creating a group with `allow_mfa_for_subgroups` attribute3597 creates group without error3598 creating a top level group3599 when user can create a group3600 is expected to be persisted3601 with before_commit callback3602 behaves like has sync-ed traversal_ids3603 is expected to eq [2565]3604 when user can not create a group3605 is expected not to be persisted3606 creating subgroup3607 as group owner3608 is expected to be persisted3609 behaves like has sync-ed traversal_ids3610 is expected to eq [2571, 2572]3611 as guest3612 does not save group and returns an error3613 as owner3614 is expected to be persisted3615 as maintainer3616 is expected to be persisted3617 when visibility level is passed as a string3618 assigns the correct visibility level3619 creating a mattermost team3620 create the chat team with the group3621 creating a setting record3622 create the settings record connected to the group3623 creating a details record3624 create the details record connected to the group3625 create service for the group3626 with an active instance-level integration3627 creates a service from the instance-level integration3628 with an active group-level integration3629 creates a service from the group-level integration3630 with an active subgroup3631 creates a service from the subgroup-level integration3632 shared runners configuration3633 parent group present3634 shared_runners_config: true, descendants_override_disabled_shared_runners_config: false3635 creates group following the parent config3636 shared_runners_config: false, descendants_override_disabled_shared_runners_config: false3637 creates group following the parent config3638 shared_runners_config: false, descendants_override_disabled_shared_runners_config: true3639 creates group following the parent config3640 root group3641 follows default config3642Gitlab::Database::Transaction::Observer3643 .instrument_transactions3644 tracks transaction data3645 tracking external network requests3646 tracks external requests3647 when external HTTP requests duration has been exceeded3648 logs transaction details including exceeding thresholds3649 when external HTTP requests count has been exceeded3650 logs transaction details including exceeding thresholds3651 .extract_sql_command3652 sql: "SELECT 1", expected: "SELECT 1"3653 is expected to eq "SELECT 1"3654 sql: "/* test comment */ SELECT 1", expected: "SELECT 1"3655 is expected to eq "SELECT 1"3656 sql: "/* test comment */ ROLLBACK TO SAVEPOINT point1", expected: "ROLLBACK TO SAVEPOINT "3657 is expected to eq "ROLLBACK TO SAVEPOINT "3658 sql: "SELECT 1 /* trailing comment */", expected: "SELECT 1 /* trailing comment */"3659 is expected to eq "SELECT 1 /* trailing comment */"3660CommitRange3661 raises ArgumentError when given an invalid range string3662 modules3663 is expected to includes the Referable module3664 #initialize3665 does not modify strings in-place3666 #to_s3667 is correct for three-dot syntax3668 is correct for two-dot syntax3669 #to_reference3670 returns a String reference to the object3671 returns a String reference to the object3672 supports a cross-project reference3673 #reference_link_text3674 returns a String reference to the object3675 returns a String reference to the object3676 supports a cross-project reference3677 #to_param3678 includes the correct keys3679 includes the correct values for a three-dot range3680 includes the correct values for a two-dot range3681 #exclude_start?3682 is false for three-dot ranges3683 is true for two-dot ranges3684 #valid_commits?3685 with a valid repo3686 is false when `sha_from` is invalid3687 is false when `sha_to` is invalid3688 is true when both `sha_from` and `sha_to` are valid3689 without a valid repo3690 returns false3691Gitlab::Json3692 .parse3693 is aliased3694 legacy_mode is disabled by default3695 parses an object3696 parses an array3697 parses a string3698 parses a true bool3699 parses a false bool3700 legacy_mode is enabled3701 parses an object3702 parses an array3703 raises an error on a string3704 raises an error on a true bool3705 raises an error on a false bool3706 feature flag is disabled3707 parses an object3708 parses an array3709 parses a string3710 parses a true bool3711 parses a false bool3712 .parse!3713 legacy_mode is disabled by default3714 parses an object3715 parses an array3716 parses a string3717 parses a true bool3718 parses a false bool3719 legacy_mode is enabled3720 parses an object3721 parses an array3722 raises an error on a string3723 raises an error on a true bool3724 raises an error on a false bool3725 feature flag is disabled3726 parses an object3727 parses an array3728 parses a string3729 parses a true bool3730 parses a false bool3731 .dump3732 dumps an object3733 dumps an array3734 dumps a string3735 dumps a true bool3736 dumps a false bool3737 .generate3738 is aliased3739 generates JSON3740 allows you to customise the output3741 .pretty_generate3742 generates pretty JSON3743 allows you to customise the output3744 the feature table is missing3745 skips legacy mode handling3746 the database is missing3747 still parses json3748 still generates json3749 Gitlab::Json::GrapeFormatter3750 generates JSON3751 uses Gitlab::Json3752 precompiled JSON3753 renders the string directly3754 calls #to_s on the object3755 doesn't run the JSON formatter3756 Gitlab::Json::PrecompiledJson3757 #to_s3758 obj is a string3759 returns a string3760 obj is an array3761 returns a string3762 obj is an array of un-stringables3763 raises an error3764 obj is something else3765 raises an error3766 Gitlab::Json::LimitedEncoder3767 when object size is acceptable3768 returns json string3769 when object is too big3770 raises LimitExceeded error3771 when object contains ASCII-8BIT encoding3772 does not raise encoding error3773 Gitlab::Json::RailsEncoder3774 is used by ActiveSupport::JSON3775 is used by .to_json calls3776 is consistent with the original JSON implementation3777 behaves the same when processing invalid unicode data3778DevOpsReport::Metric3779 validations3780 is expected to validate that :leader_issues cannot be empty/falsy3781 is expected to validate that :leader_issues looks like a number greater than or equal to 03782 is expected to validate that :instance_issues cannot be empty/falsy3783 is expected to validate that :instance_issues looks like a number greater than or equal to 03784 is expected to validate that :percentage_issues cannot be empty/falsy3785 is expected to validate that :percentage_issues looks like a number greater than or equal to 03786 is expected to validate that :leader_notes cannot be empty/falsy3787 is expected to validate that :leader_notes looks like a number greater than or equal to 03788 is expected to validate that :instance_notes cannot be empty/falsy3789 is expected to validate that :instance_notes looks like a number greater than or equal to 03790 is expected to validate that :percentage_notes cannot be empty/falsy3791 is expected to validate that :percentage_notes looks like a number greater than or equal to 03792 is expected to validate that :leader_milestones cannot be empty/falsy3793 is expected to validate that :leader_milestones looks like a number greater than or equal to 03794 is expected to validate that :instance_milestones cannot be empty/falsy3795 is expected to validate that :instance_milestones looks like a number greater than or equal to 03796 is expected to validate that :percentage_milestones cannot be empty/falsy3797 is expected to validate that :percentage_milestones looks like a number greater than or equal to 03798 is expected to validate that :leader_boards cannot be empty/falsy3799 is expected to validate that :leader_boards looks like a number greater than or equal to 03800 is expected to validate that :instance_boards cannot be empty/falsy3801 is expected to validate that :instance_boards looks like a number greater than or equal to 03802 is expected to validate that :percentage_boards cannot be empty/falsy3803 is expected to validate that :percentage_boards looks like a number greater than or equal to 03804 is expected to validate that :leader_merge_requests cannot be empty/falsy3805 is expected to validate that :leader_merge_requests looks like a number greater than or equal to 03806 is expected to validate that :instance_merge_requests cannot be empty/falsy3807 is expected to validate that :instance_merge_requests looks like a number greater than or equal to 03808 is expected to validate that :percentage_merge_requests cannot be empty/falsy3809 is expected to validate that :percentage_merge_requests looks like a number greater than or equal to 03810 is expected to validate that :leader_ci_pipelines cannot be empty/falsy3811 is expected to validate that :leader_ci_pipelines looks like a number greater than or equal to 03812 is expected to validate that :instance_ci_pipelines cannot be empty/falsy3813 is expected to validate that :instance_ci_pipelines looks like a number greater than or equal to 03814 is expected to validate that :percentage_ci_pipelines cannot be empty/falsy3815 is expected to validate that :percentage_ci_pipelines looks like a number greater than or equal to 03816 is expected to validate that :leader_environments cannot be empty/falsy3817 is expected to validate that :leader_environments looks like a number greater than or equal to 03818 is expected to validate that :instance_environments cannot be empty/falsy3819 is expected to validate that :instance_environments looks like a number greater than or equal to 03820 is expected to validate that :percentage_environments cannot be empty/falsy3821 is expected to validate that :percentage_environments looks like a number greater than or equal to 03822 is expected to validate that :leader_deployments cannot be empty/falsy3823 is expected to validate that :leader_deployments looks like a number greater than or equal to 03824 is expected to validate that :instance_deployments cannot be empty/falsy3825 is expected to validate that :instance_deployments looks like a number greater than or equal to 03826 is expected to validate that :percentage_deployments cannot be empty/falsy3827 is expected to validate that :percentage_deployments looks like a number greater than or equal to 03828 is expected to validate that :leader_projects_prometheus_active cannot be empty/falsy3829 is expected to validate that :leader_projects_prometheus_active looks like a number greater than or equal to 03830 is expected to validate that :instance_projects_prometheus_active cannot be empty/falsy3831 is expected to validate that :instance_projects_prometheus_active looks like a number greater than or equal to 03832 is expected to validate that :percentage_projects_prometheus_active cannot be empty/falsy3833 is expected to validate that :percentage_projects_prometheus_active looks like a number greater than or equal to 03834 is expected to validate that :leader_service_desk_issues cannot be empty/falsy3835 is expected to validate that :leader_service_desk_issues looks like a number greater than or equal to 03836 is expected to validate that :instance_service_desk_issues cannot be empty/falsy3837 is expected to validate that :instance_service_desk_issues looks like a number greater than or equal to 03838 is expected to validate that :percentage_service_desk_issues cannot be empty/falsy3839 is expected to validate that :percentage_service_desk_issues looks like a number greater than or equal to 03840 #percentage_score3841 returns stored percentage score3842Packages::BuildInfosFinder3843 #execute3844 with nil packages3845 is expected to be empty3846 with [] packages3847 is expected to be empty3848 with empy scope packages3849 is expected to be empty3850 with a single package3851 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]3852 behaves like returning the expected build infos3853 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3854 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]3855 behaves like returning the expected build infos3856 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3857 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [4, 3]3858 behaves like returning the expected build infos3859 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>]3860 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3]3861 behaves like returning the expected build infos3862 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>]3863 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]3864 behaves like returning the expected build infos3865 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3866 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]3867 behaves like returning the expected build infos3868 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3869 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]3870 behaves like returning the expected build infos3871 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3872 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]3873 behaves like returning the expected build infos3874 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3875 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]3876 behaves like returning the expected build infos3877 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3878 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [1, 0]3879 behaves like returning the expected build infos3880 is expected to eq [#<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3881 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]3882 behaves like returning the expected build infos3883 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3884 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [3, 2]3885 behaves like returning the expected build infos3886 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3887 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]3888 behaves like returning the expected build infos3889 is expected to eq [#<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3890 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [2, 1]3891 behaves like returning the expected build infos3892 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3893 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]3894 behaves like returning the expected build infos3895 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3896 with many packages3897 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]3898 behaves like returning the expected build infos3899 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 2, pipeline_id: 141>, #<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 140>, #<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3900 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]3901 behaves like returning the expected build infos3902 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 2, pipeline_id: 141>, #<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 140>, #<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3903 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [9, 8, 4, 3]3904 behaves like returning the expected build infos3905 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 2, pipeline_id: 141>, #<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>]3906 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [9, 8, 4, 3]3907 behaves like returning the expected build infos3908 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 2, pipeline_id: 141>, #<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>]3909 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [9, 8, 7, 4, 3, 2]3910 behaves like returning the expected build infos3911 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 2, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 2, pipeline_id: 141>, #<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 140>, #<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3912 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]3913 behaves like returning the expected build infos3914 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3915 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]3916 behaves like returning the expected build infos3917 is expected to eq [#<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3918 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]3919 behaves like returning the expected build infos3920 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3921 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]3922 behaves like returning the expected build infos3923 is expected to eq [#<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3924 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [6, 5, 1, 0]3925 behaves like returning the expected build infos3926 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3927 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 2, 1, 0]3928 behaves like returning the expected build infos3929 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 140>, #<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>, #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: 133>]3930 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [6, 5, 3, 2]3931 behaves like returning the expected build infos3932 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3933 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 4, 3, 2]3934 behaves like returning the expected build infos3935 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 140>, #<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 5, package_id: 1, pipeline_id: 137>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>]3936 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [6, 5, 2, 1]3937 behaves like returning the expected build infos3938 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3939 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [7, 6, 5, 3, 2, 1]3940 behaves like returning the expected build infos3941 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 2, pipeline_id: 140>, #<Packages::BuildInfo id: 8, package_id: 2, pipeline_id: 139>, #<Packages::BuildInfo id: 7, package_id: 2, pipeline_id: 138>, #<Packages::BuildInfo id: 4, package_id: 1, pipeline_id: 136>, #<Packages::BuildInfo id: 3, package_id: 1, pipeline_id: 135>, #<Packages::BuildInfo id: 2, package_id: 1, pipeline_id: 134>]3942EventsFinder3943 when targeting a user3944 returns events between specified dates filtered on action and type3945 does not return events the current_user does not have access to3946 does not include events on confidential issues the user does not have access to3947 includes confidential events user has access to3948 returns nothing when the current user cannot read cross project3949 returns nothing when the target profile is private3950 wiki events3951 can find the wiki events3952 dashboard events3953 scope is `all`3954 includes activity of other users3955 scope is not `all`3956 does not include activity of other users3957 when targeting a project3958 returns project events between specified dates filtered on action and type3959 does not return events the current_user does not have access to3960Mutations::MergeRequests::SetAssignees3961 when the user does not have permissions3962 #resolve3963 behaves like permission level for merge request mutation is correctly verified3964 when the user is not a project member3965 behaves like when the user does not have access to the resource3966 raises an error3967 even if assigned to the merge request3968 does not modify merge request3969 even if reviewer of the merge request3970 raises an error3971 even if author of the merge request3972 raises an error3973 when the user is a project member3974 with guest role3975 behaves like when the user does not have access to the resource3976 raises an error3977 even if assigned to the merge request3978 does not modify merge request3979 even if reviewer of the merge request3980 raises an error3981 even if author of the merge request3982 raises an error3983 with reporter role3984 behaves like when the user does not have access to the resource3985 raises an error3986 even if assigned to the merge request3987 does not modify merge request3988 even if reviewer of the merge request3989 raises an error3990 even if author of the merge request3991 raises an error3992 behaves like an assignable resource3993 #resolve3994 raises an error if the resource is not accessible to the user3995 does not change assignees if the resource is not accessible to the assignees3996 returns an operational error if the resource is not accessible to the assignees3997 when the user can update the resource3998 replaces the assignee3999 returns errors when resource could not be updated4000 when passing an empty assignee list4001 removes all assignees4002 when passing "append" as true4003 is a NO-OP in FOSS4004 when passing "remove" as true4005 removes named assignee4006 does not remove unnamed assignee4007WorkItemPolicy4008 read_work_item4009 when project is public4010 when user is not a member of the project4011 is expected to be allowed :read_work_item4012 when user is a member of the project4013 is expected to be allowed :read_work_item4014 when work_item is confidential4015 is expected not to be allowed :read_work_item4016 when project is private4017 when user is not a member of the project4018 is expected to be disallowed :read_work_item4019 when user is a member of the project4020 is expected to be allowed :read_work_item4021 admin_work_item4022 when user is reporter4023 is expected to be allowed :admin_work_item4024 when user is guest4025 is expected to be disallowed :admin_work_item4026 when guest authored the work item4027 is expected to be disallowed :admin_work_item4028 update_work_item4029 when user is reporter4030 is expected to be allowed :update_work_item4031 when user is guest4032 is expected to be disallowed :update_work_item4033 when guest authored the work item4034 is expected to be allowed :update_work_item4035 delete_work_item4036 when user is a member of the project4037 when the user is not the author of the work item4038 is expected to be disallowed :delete_work_item4039 when guest authored the work item4040 is expected to be allowed :delete_work_item4041 when user is member of the project's group4042 when the user is not the author of the work item4043 is expected to be disallowed :delete_work_item4044 when user authored the work item4045 is expected to be allowed :delete_work_item4046 when user is not a member of the project4047 when the user authored the work item4048 is expected to be disallowed :delete_work_item4049 when the user is not the author of the work item4050 is expected to be disallowed :delete_work_item4051 admin_parent_link4052 when user is reporter4053 is expected to be allowed :admin_parent_link4054 when user is guest4055 is expected to be disallowed :admin_parent_link4056 when guest authored the work item4057 is expected to be disallowed :admin_parent_link4058 when guest is assigned to the work item4059 is expected to be disallowed :admin_parent_link4060 set_work_item_metadata4061 when user is reporter4062 is expected to be allowed :set_work_item_metadata4063 when user is guest4064 is expected to be disallowed :set_work_item_metadata4065 when the work item is not persisted yet4066 is expected to be allowed :set_work_item_metadata4067ActiveSession4068 #current?4069 returns true if the active session matches the current session4070 returns false if the active session does not match the current session4071 returns false if the session id is nil4072 .list4073 returns all sessions by user4074 returns an empty array if the user does not have any active session4075 when the current session is in the old format4076 behaves like ignoring obsolete entries4077 does not return obsolete entries and cleans them up4078 when the current session is in the new format4079 behaves like ignoring obsolete entries4080 does not return obsolete entries and cleans them up4081 .list_sessions4082 uses the ActiveSession lookup to return original sessions4083 .session_ids_for_user4084 uses the user lookup table to return session ids4085 .sessions_from_ids4086 uses the ActiveSession lookup to return original sessions4087 avoids a redis lookup for an empty array4088 uses redis lookup in batches4089 .set4090 sets a new redis entry for the user session and a lookup entry4091 adds timestamps and information from the request4092 keeps the created_at from the login on consecutive requests4093 .destroy_session4094 destroy called with Rack::Session::SessionId#private_id4095 calls .destroy_sessions4096 ActiveSession with session_private_id4097 when using old session key serialization4098 removes the devise session4099 removes the lookup entry4100 removes the ActiveSession4101 when using new session key serialization4102 removes the devise session4103 removes the lookup entry4104 removes the ActiveSession4105 .destroy_all_but_current4106 gracefully handles a nil session ID4107 with legacy sessions4108 behaves like with user sessions4109 removes the entry associated with the all user sessions but current4110 removes the lookup entry of deleted sessions4111 does not remove impersonated sessions4112 with new sessions4113 behaves like with user sessions4114 removes the entry associated with the all user sessions but current4115 removes the lookup entry of deleted sessions4116 does not remove impersonated sessions4117 .cleanup4118 with legacy sessions4119 behaves like cleaning up4120 does not bail if there are no lookup entries4121 when removing obsolete sessions4122 removes obsolete lookup entries4123 cleaning up old sessions4124 removes obsolete active sessions entries4125 removes obsolete lookup entries4126 removes obsolete lookup entries even without active session4127 when the number of active sessions is lower than the limit4128 does not remove active session entries, but removes lookup entries4129 cleaning up old sessions stored by Rack::Session::SessionId#private_id4130 removes obsolete active sessions entries4131 with new sessions4132 behaves like cleaning up4133 does not bail if there are no lookup entries4134 when removing obsolete sessions4135 removes obsolete lookup entries4136 cleaning up old sessions4137 removes obsolete active sessions entries4138 removes obsolete lookup entries4139 removes obsolete lookup entries even without active session4140 when the number of active sessions is lower than the limit4141 does not remove active session entries, but removes lookup entries4142 cleaning up old sessions stored by Rack::Session::SessionId#private_id4143 removes obsolete active sessions entries4144 .cleaned_up_lookup_entries4145 with legacy sessions4146 behaves like cleaning up lookup entries4147 removes obsolete lookup entries4148 reports the removed entries4149 with new sessions4150 behaves like cleaning up lookup entries4151 removes obsolete lookup entries4152 reports the removed entries4153 .set_active_user_cookie4154 sets marketing cookie4155 .unset_active_user_cookie4156 unsets marketing cookie4157MergeRequests::Mergeability::DetailedMergeStatusService4158 # order random4159 when merge status is cannot_be_merged_rechecking4160 returns :checking4161 when all but the ci check fails4162 when pipeline does not exist4163 returns the failure reason4164 when pipeline exists4165 when the pipeline is running4166 returns the failure reason4167 when the pipeline is not running4168 returns the failure reason4169 when merge checks are a success4170 returns :mergeable4171 when merge status is checking4172 returns :checking4173 when merge status is preparing4174 returns :checking4175 when merge status is unchecked4176 returns :unchecked4177 when merge status have a failure4178 returns the failure reason4179 when merge status is preparing and merge request diff is persisted4180 returns :checking4181Gitlab::Ci::Config::Entry::Processable4182 validations4183 when entry config value is correct4184 #valid?4185 is valid4186 when config uses both "when:" and "rules:"4187 is valid4188 when job name is more than 2554189 shows a validation error4190 when job name is empty4191 reports error4192 when entry value is not correct4193 incorrect config value type4194 #errors4195 reports error about a config type4196 when config is empty4197 #valid4198 is invalid4199 when extends key is not a string4200 returns error about wrong value type4201 when resource_group key is not a string4202 returns error about wrong value type4203 when a variable has an invalid data attribute4204 reports error about variable4205 when only: is used with rules:4206 returns error about mixing only: with rules:4207 and only: is blank4208 is valid4209 and rules: is blank4210 is valid4211 when except: is used with rules:4212 returns error about mixing except: with rules:4213 and except: is blank4214 is valid4215 and rules: is blank4216 is valid4217 when only: and except: are both used with rules:4218 returns errors about mixing both only: and except: with rules:4219 when only: and except: as both blank4220 is valid4221 when rules: is blank4222 is valid4223 #relevant?4224 is a relevant entry4225 #compose!4226 with workflow rules4227 name: "uses default only", has_workflow_rules?: false, only: nil, rules: nil, result: {:refs=>["branches", "tags"]}4228 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesDefaultOnlyHasWorkflowRulesFalseOnlyNilRulesNilResultRefsBranchesTags4229 name: "uses user only", has_workflow_rules?: false, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4230 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesFalseOnlyBranchesRulesNilResultRefsBranches4231 name: "does not define only", has_workflow_rules?: false, only: nil, rules: [], result: nil4232 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesFalseOnlyNilRulesResultNil4233 name: "does not define only", has_workflow_rules?: true, only: nil, rules: nil, result: nil4234 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesNilResultNil4235 name: "uses user only", has_workflow_rules?: true, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4236 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesTrueOnlyBranchesRulesNilResultRefsBranches4237 name: "does not define only", has_workflow_rules?: true, only: nil, rules: [], result: nil4238 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesResultNil4239 when workflow rules is used4240 when rules are used4241 does not define only4242 when rules are not used and only is defined4243 keeps only entry4244 when workflow rules is not used4245 when rules are valid4246 when last rule contains only `when`4247 and its value is not `never`4248 raises a warning4249 and its value is `never`4250 behaves like has no warnings4251 does not raise the warning4252 when last rule does not contain only `when`4253 behaves like has no warnings4254 does not raise the warning4255 when rules are invalid4256 behaves like has no warnings4257 does not raise the warning4258 when workflow rules is used4259 when last rule contains only `when4260 behaves like has no warnings4261 does not raise the warning4262 with resource group4263 resource_group: "iOS", result: "iOS"4264 is expected to eq "iOS"4265 resource_group: "review/$CI_COMMIT_REF_NAME", result: "review/$CI_COMMIT_REF_NAME"4266 is expected to eq "review/$CI_COMMIT_REF_NAME"4267 resource_group: nil, result: nil4268 is expected to eq nil4269 with inheritance4270 of default:tags4271 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: nil, result: ["a", "b"]4272 is expected to eq ["a", "b"]4273 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: true, result: ["a", "b"]4274 is expected to eq ["a", "b"]4275 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: false, result: ["a", "b"]4276 is expected to eq ["a", "b"]4277 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: nil, result: ["a", "b"]4278 is expected to eq ["a", "b"]4279 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: true, result: ["a", "b"]4280 is expected to eq ["a", "b"]4281 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: false, result: ["a", "b"]4282 is expected to eq ["a", "b"]4283 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: nil, result: ["b", "c"]4284 is expected to eq ["b", "c"]4285 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: true, result: ["b", "c"]4286 is expected to eq ["b", "c"]4287 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: false, result: nil4288 is expected to eq nil4289 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: ["image"], result: nil4290 is expected to eq nil4291 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: ["tags"], result: ["b", "c"]4292 is expected to eq ["b", "c"]4293 when composed4294 #value4295 when entry is correct4296 returns correct value4297 when variables have "expand" data4298 returns correct value4299Ci::BuildTraceChunks::Fog4300 #available?4301 when object storage is enabled4302 is expected to be truthy4303 when object storage is disabled4304 is expected to be falsy4305 #data4306 when data exists4307 returns the data4308 when data does not exist4309 returns nil4310 #set_data4311 when data exists4312 overwrites data4313 when data does not exist4314 sets new data4315 when S3 server side encryption is enabled4316 creates a file with attributes4317 #append_data4318 appends ASCII data4319 appends UTF-8 data4320 when initial data is UTF-84321 appends ASCII data4322 #delete_data4323 when data exists4324 deletes data4325 when data does not exist4326 does nothing4327 #size4328 when data exists4329 returns data bytesize correctly4330 when data does not exist4331 returns zero4332 #keys4333 returns keys4334 #delete_keys4335 deletes multiple data4336Ci::CreatePipelineService#execute4337 child pipeline triggers4338 behaves like successful creation4339 creates bridge jobs correctly4340 with resource group4341 creates bridge job with resource group4342 when sidekiq processes the job4343 transitions to pending status and triggers a downstream pipeline4344 when the resource is occupied by the other bridge4345 stays waiting for resource4346 when resource group key includes a variable4347 ignores the resource group keyword because it fails to expand the variable4348 child pipeline triggers4349 when YAML is valid4350 behaves like successful creation4351 creates bridge jobs correctly4352 when trigger:include is specified as a string4353 behaves like successful creation4354 creates bridge jobs correctly4355 when trigger:include is specified as array of strings4356 behaves like successful creation4357 creates bridge jobs correctly4358 when limit of includes is reached4359 behaves like creation failure4360 returns errors4361 when including configs from artifact4362 when specified dependency is in the wrong order4363 behaves like creation failure4364 returns errors4365 when specified dependency is missing :job key4366 behaves like creation failure4367 returns errors4368 when including configs from a project4369 when specifying all attributes4370 behaves like successful creation4371 creates bridge jobs correctly4372 without specifying file4373 behaves like creation failure4374 returns errors4375 when specifying multiple files4376 behaves like successful creation4377 creates bridge jobs correctly4378ReleasesFinder4379 when parent is a project4380 behaves like when the user is not authorized4381 returns no releases4382 when the user has guest privileges or higher4383 returns the releases4384 with sorting parameters4385 sorted by released_at in descending order by default4386 released_at in ascending order4387 is expected to eq [#<Release id: 4, tag: "v1.0.0", description: [FILTERED], project_id: 1072, created_at: "2023-06-01 06:42:20.970754992 +0000", updated_at: "2023-06-02 06:42:20.973933751 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1682, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-31 06:42:20.970668022 +0000">, #<Release id: 5, tag: "v1.1.0", description: [FILTERED], project_id: 1072, created_at: "2023-05-31 06:42:20.981214459 +0000", updated_at: "2023-06-02 06:42:20.984378559 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1683, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-06-01 06:42:20.981153499 +0000">]4388 order by created_at in descending order4389 is expected to eq [#<Release id: 4, tag: "v1.0.0", description: [FILTERED], project_id: 1072, created_at: "2023-06-01 06:42:21.181494453 +0000", updated_at: "2023-06-02 06:42:21.185122882 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1682, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-31 06:42:21.181387843 +0000">, #<Release id: 5, tag: "v1.1.0", description: [FILTERED], project_id: 1072, created_at: "2023-05-31 06:42:21.193368430 +0000", updated_at: "2023-06-02 06:42:21.196976739 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1683, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-06-01 06:42:21.193302280 +0000">]4390 order by created_at in ascending order4391 is expected to eq [#<Release id: 5, tag: "v1.1.0", description: [FILTERED], project_id: 1072, created_at: "2023-05-31 06:42:21.387049314 +0000", updated_at: "2023-06-02 06:42:21.390249414 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1683, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-06-01 06:42:21.386982835 +0000">, #<Release id: 4, tag: "v1.0.0", description: [FILTERED], project_id: 1072, created_at: "2023-06-01 06:42:21.376558497 +0000", updated_at: "2023-06-02 06:42:21.379742837 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1682, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-31 06:42:21.376463657 +0000">]4392 behaves like preload4393 preloads associations4394 when preload is false4395 does not preload associations4396 behaves like when a tag parameter is passed4397 only returns the release with the matching tag4398 when parent is an array of projects4399 behaves like when the user is not authorized4400 returns no releases4401 when the user has guest privileges or higher on one project4402 returns the releases of only the authorized project4403 when the user has guest privileges or higher on all projects4404 returns the releases of all projects4405 behaves like preload4406 preloads associations4407 when preload is false4408 does not preload associations4409 behaves like when a tag parameter is passed4410 only returns the release with the matching tag4411 with sorting parameters4412 sorted by released_at in descending order by default4413 released_at in ascending order4414 is expected to eq [#<Release id: 4, tag: "v1.0.0", description: [FILTERED], project_id: 1072, created_at: "2023-06-01 06:42:24.941285048 +0000", updated_at: "2023-06-02 06:42:24.945206776 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1682, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-29 06:42:24.941151367 +0000">, #<Release id: 5, tag: "v1.1.0", description: [FILTERED], project_id: 1072, created_at: "2023-05-31 06:42:24.953994714 +0000", updated_at: "2023-06-02 06:42:24.957706224 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1683, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-30 06:42:24.953894315 +0000">, #<Release id: 6, tag: "v2.0.0", description: [FILTERED], project_id: 1073, created_at: "2023-05-30 06:42:24.965862072 +0000", updated_at: "2023-06-02 06:42:24.969554541 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1686, name: "v2.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-31 06:42:24.965784652 +0000">, #<Release id: 7, tag: "v2.1.0", description: [FILTERED], project_id: 1073, created_at: "2023-05-29 06:42:24.977602109 +0000", updated_at: "2023-06-02 06:42:24.981092758 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1687, name: "v2.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-06-01 06:42:24.977532009 +0000">]4415 order by created_at in descending order4416 is expected to eq [#<Release id: 4, tag: "v1.0.0", description: [FILTERED], project_id: 1072, created_at: "2023-06-01 06:42:25.285713777 +0000", updated_at: "2023-06-02 06:42:25.289484546 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1682, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-29 06:42:25.285585877 +0000">, #<Release id: 5, tag: "v1.1.0", description: [FILTERED], project_id: 1072, created_at: "2023-05-31 06:42:25.297868724 +0000", updated_at: "2023-06-02 06:42:25.301391964 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1683, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-30 06:42:25.297786984 +0000">, #<Release id: 6, tag: "v2.0.0", description: [FILTERED], project_id: 1073, created_at: "2023-05-30 06:42:25.310076791 +0000", updated_at: "2023-06-02 06:42:25.313666961 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1686, name: "v2.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-31 06:42:25.309969911 +0000">, #<Release id: 7, tag: "v2.1.0", description: [FILTERED], project_id: 1073, created_at: "2023-05-29 06:42:25.321743409 +0000", updated_at: "2023-06-02 06:42:25.325378468 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1687, name: "v2.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-06-01 06:42:25.321660569 +0000">]4417 order by created_at in ascending order4418 is expected to eq [#<Release id: 7, tag: "v2.1.0", description: [FILTERED], project_id: 1073, created_at: "2023-05-29 06:42:25.659836350 +0000", updated_at: "2023-06-02 06:42:25.663585999 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1687, name: "v2.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-06-01 06:42:25.659746630 +0000">, #<Release id: 6, tag: "v2.0.0", description: [FILTERED], project_id: 1073, created_at: "2023-05-30 06:42:25.647725033 +0000", updated_at: "2023-06-02 06:42:25.651332542 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1686, name: "v2.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-31 06:42:25.647648023 +0000">, #<Release id: 5, tag: "v1.1.0", description: [FILTERED], project_id: 1072, created_at: "2023-05-31 06:42:25.636116456 +0000", updated_at: "2023-06-02 06:42:25.639699055 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1683, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-30 06:42:25.636039726 +0000">, #<Release id: 4, tag: "v1.0.0", description: [FILTERED], project_id: 1072, created_at: "2023-06-01 06:42:25.623490949 +0000", updated_at: "2023-06-02 06:42:25.627327248 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1682, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-05-29 06:42:25.623361399 +0000">]4419EachBatch4420 .each_batch4421 orders ascending by default4422 accepts descending order4423 behaves like each_batch handling4424 yields an ActiveRecord::Relation when a block is given4425 yields a batch index as the second argument4426 accepts a custom batch size4427 does not include ORDER BYs in the yielded relations4428 allows updating of the yielded relations4429 behaves like each_batch handling4430 yields an ActiveRecord::Relation when a block is given4431 yields a batch index as the second argument4432 accepts a custom batch size4433 does not include ORDER BYs in the yielded relations4434 allows updating of the yielded relations4435 current scope4436 does not leak current scope to block being executed4437 .distinct_each_batch4438 when iterating over a unique column4439 when using ascending order4440 is expected to eq [1754, 1755, 1756, 1757, 1758]4441 when using larger batch size4442 is expected to eq [1754, 1755, 1756, 1757, 1758]4443 when using larger batch size than the result size4444 is expected to eq [1754, 1755, 1756, 1757, 1758]4445 when using descending order4446 is expected to eq [1758, 1757, 1756, 1755, 1754]4447 when using larger batch size4448 is expected to eq [1758, 1757, 1756, 1755, 1754]4449 when iterating over a non-unique column4450 when only one value is present4451 is expected to eq [0]4452 when duplicated values present4453 is expected to eq [2, 5]4454 when using descending order4455 is expected to eq [5, 2]4456 .each_batch_count4457 counts the records4458 when using a different column4459 returns correct count4460 when stopping and resuming the counting4461 returns the correct count4462Gitlab::ImportExport::SnippetRepoRestorer4463 when the snippet does not have a bundle file path4464 behaves like no bundle file present4465 creates the repository from the database content4466 does not call snippet update statistics service4467 when the repository creation fails4468 returns false4469 when the snippet bundle path is not present4470 behaves like no bundle file present4471 creates the repository from the database content4472 does not call snippet update statistics service4473 when the repository creation fails4474 returns false4475 when the snippet repository bundle exists4476 refreshes snippet statistics4477 when it is valid4478 creates the repository from the bundle4479 sets same shard in snippet repository as in the repository storage4480 when it is invalid4481 returns false and deletes the repository from disk and the database4482ContainerRegistry::Migration::GuardWorker4483 #perform4484 on gitlab.com4485 with no stale migrations4486 will not update any migration state4487 behaves like an idempotent worker4488 is labeled as idempotent4489 performs multiple times sequentially without raising an exception4490 with pre_importing stale migrations4491 will abort the migration4492 the client returns pre_import_in_progress4493 not long running4494 behaves like not aborting the stale migration4495 will not abort the migration4496 long running4497 with registry_migration_guard_dynamic_pre_import_timeout enabled4498 below the dynamic threshold4499 behaves like not aborting the stale migration4500 will not abort the migration4501 above the dynamic threshold4502 behaves like handling long running migrations4503 migration is canceled4504 when the retry limit has been reached4505 will not abort the migration4506 when the retry limit has not been reached4507 behaves like aborting the migration4508 will abort the migration4509 migration cancelation fails with an error4510 behaves like aborting the migration4511 will abort the migration4512 migration receives bad request with a new status4513 behaves like aborting the migration4514 will abort the migration4515 with registry_migration_guard_dynamic_pre_import_timeout disabled4516 behaves like handling long running migrations4517 migration is canceled4518 when the retry limit has been reached4519 will not abort the migration4520 when the retry limit has not been reached4521 behaves like aborting the migration4522 will abort the migration4523 migration cancelation fails with an error4524 behaves like aborting the migration4525 will abort the migration4526 migration receives bad request with a new status4527 behaves like aborting the migration4528 will abort the migration4529 with pre_import_done stale migrations4530 will abort the migration4531 with importing stale migrations4532 will abort the migration4533 the client returns import_in_progress4534 behaves like handling long running migrations4535 migration is canceled4536 when the retry limit has been reached4537 will not abort the migration4538 when the retry limit has not been reached4539 behaves like aborting the migration4540 will abort the migration4541 migration cancelation fails with an error4542 behaves like aborting the migration4543 will abort the migration4544 migration receives bad request with a new status4545 behaves like aborting the migration4546 will abort the migration4547 not on gitlab.com4548 is a no op4549 worker attributes4550 has deduplication set4551MergeRequests::OldestPerCommitFinder4552 #execute4553 returns a Hash mapping commit SHAs to their oldest merge requests4554 skips merge requests that are not merged4555 includes the merge request for a merge commit4556 includes a merge request that was squashed into the target branch4557 includes a merge request for both a squash and merge commit4558 includes the oldest merge request when a merge commit is present in a newer merge request4559AutoMerge::MergeWhenPipelineSucceedsService4560 #available_for?4561 is expected to be truthy4562 memoizes the result4563 when the head pipeline succeeded4564 is expected to be falsy4565 when the user does not have permission to merge4566 is expected to be falsy4567 #execute4568 first time enabling4569 sets the params, merge_user, and flag4570 creates a system note4571 already approved4572 updates the merge params4573 #process4574 when triggered by pipeline with valid ref and sha4575 merges all merge requests with merge when the pipeline succeeds enabled4576 when triggered by an old pipeline4577 does not merge request4578 when triggered by pipeline from a different branch4579 does not merge request4580 when pipeline is merge request pipeline4581 merges the associated merge request4582 #cancel4583 resets all the pipeline succeeds params4584 posts a system note4585 #abort4586 posts a system note4587 pipeline integration4588 when there are multiple stages in the pipeline4589 doesn't merge if any of stages failed4590 merges when all stages succeeded4591load_balancing4592 # order random4593 with replica hosts configured4594 configures load balancer with two replica hosts4595 for a clustered puma worker4596 configures load balancer to have two replica hosts4597 makes a read query successfully4598 makes a write query successfully4599DeployKeys::BasicDeployKeyEntity4600 does not return an owner payload with_owner option not passed in4601 returns deploy keys4602 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2023-06-02 06:43:15.146615889 +0000, :destroyed_when_orphaned=>true, :expires_at=>nil, :fingerprint=>"d5:f6:d4:43:d4:a8:db:9c:24:be:b1:f5:9a:c0:d2:24", :fingerprint_sha256=>"1I7UB/vpRI+otiGp26mdFGwyIy7VhTbzv/t8x06scLM", :id=>31, :title=>"My title 508", :updated_at=>2023-06-02 06:43:15.146615889 +0000, :user_id=>nil}4603 user is an admin4604 when admin mode is enabled4605 is expected to include {:can_edit => true}4606 when admin mode is disabled4607 is expected not to include {:can_edit => true}4608 user is a project maintainer4609 project deploy key4610 is expected to include {:can_edit => true}4611 public deploy key4612 is expected to include {:can_edit => true}4613 with_owner option4614 does not return an owner payload when it is set to false4615 when with_owner is set to true4616 returns an owner payload4617 does not return an owner if current_user cannot read the owner4618Search::GlobalService4619 #execute4620 unauthenticated4621 returns public projects only4622 authenticated4623 returns public, internal and private projects4624 returns only public & internal projects4625 project name is searchable4626 does not return archived projects4627 returns archived projects if the include_archived option is passed4628 issues4629 sorting4630 sort: created_desc4631 sorts results by created_at4632 sort: created_asc4633 sorts results by created_at4634 sort: updated_desc4635 sorts results by updated_desc4636 sort: updated_asc4637 sorts results by updated_asc4638 merge_request4639 sorting4640 sort: created_desc4641 sorts results by created_at4642 sort: created_asc4643 sorts results by created_at4644 sort: updated_desc4645 sorts results by updated_desc4646 sort: updated_asc4647 sorts results by updated_asc4648gitlab:artifacts namespace rake task4649 gitlab:artifacts:migrate4650 when local storage is used4651 and remote storage is defined4652 migrates file to remote storage4653 and remote storage is not defined4654 fails to migrate to remote storage4655 when remote storage is used4656 file stays on remote storage4657 gitlab:artifacts:migrate_to_local4658 when remote storage is used4659 and job has remote file store defined4660 migrates file to local storage4661 when local storage is used4662 file stays on local storage4663Gitlab::JiraImport4664 .validate_project_settings!4665 without user param4666 behaves like jira configuration base checks4667 with configuration_check set to false4668 does not raise Jira integration error4669 when Jira integration was not setup4670 behaves like raise Jira import error4671 returns error4672 when Jira integration exists4673 when Jira connection is not valid4674 behaves like raise Jira import error4675 returns error4676 when jira connection is valid4677 does not return any error4678 with user param provided4679 when user has permission to run import4680 behaves like jira configuration base checks4681 with configuration_check set to false4682 does not raise Jira integration error4683 when Jira integration was not setup4684 behaves like raise Jira import error4685 returns error4686 when Jira integration exists4687 when Jira connection is not valid4688 behaves like raise Jira import error4689 returns error4690 when jira integration is configured4691 when issues feature is disabled4692 behaves like raise Jira import error4693 returns error4694 when everything is ok4695 does not return any error4696 when user does not have permissions to run the import4697 behaves like raise Jira import error4698 returns error4699 .already_imported_cache_key4700 returns cache key for already imported items4701 .jira_issues_next_page_cache_key4702 returns cache key for next issues4703 .get_issues_next_start_at4704 returns zero when not defined4705 returns negative value for next issues to be imported starting point4706 returns cached value for next issues to be imported starting point4707 .cache_users_mapping4708 stores the data correctly4709 .get_user_mapping4710 reads the data correctly4711 returns nil if value not found4712 .store_issues_next_started_at4713 stores nil value4714 stores positive value4715 stores negative value4716Ci::PipelinePolicy4717 rules4718 rules for protected ref4719 when no one can push or merge to the branch4720 does not include ability to update pipeline4721 when developers can push to the branch4722 includes ability to update pipeline4723 when no one can create the tag4724 does not include ability to update pipeline4725 when no one can create the tag but it is not a tag4726 includes ability to update pipeline4727 when maintainer is allowed to push to pipeline branch4728 enables update_pipeline if user is maintainer4729 when user does not have access to internal CI4730 disallows the user from reading the pipeline4731 destroy_pipeline4732 when user has owner access4733 is enabled4734 when user is not owner4735 is disabled4736 read_pipeline_variable4737 when user has owner access4738 is enabled4739 when user is developer and the creator of the pipeline4740 is enabled4741 when user is developer and it is not the creator of the pipeline4742 is disabled4743 when user is not owner nor developer4744 is disabled4745Grafana::Client4746 #get_dashboard4747 behaves like calls grafana api4748 calls grafana api4749 behaves like no redirects4750 does not follow redirects4751 behaves like handles exceptions4752 HTTParty::Error4753 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4754 Net::OpenTimeout4755 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4756 SocketError4757 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"4758 OpenSSL::SSL::SSLError4759 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"4760 Errno::ECONNREFUSED4761 is expected to raise Grafana::Client::Error with "Connection refused"4762 StandardError4763 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"4764 #get_datasource4765 behaves like calls grafana api4766 calls grafana api4767 behaves like no redirects4768 does not follow redirects4769 behaves like handles exceptions4770 HTTParty::Error4771 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4772 Net::OpenTimeout4773 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4774 SocketError4775 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"4776 OpenSSL::SSL::SSLError4777 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"4778 Errno::ECONNREFUSED4779 is expected to raise Grafana::Client::Error with "Connection refused"4780 StandardError4781 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"4782 #proxy_datasource4783 behaves like calls grafana api4784 calls grafana api4785 behaves like no redirects4786 does not follow redirects4787 behaves like handles exceptions4788 HTTParty::Error4789 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4790 Net::OpenTimeout4791 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4792 SocketError4793 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"4794 OpenSSL::SSL::SSLError4795 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"4796 Errno::ECONNREFUSED4797 is expected to raise Grafana::Client::Error with "Connection refused"4798 StandardError4799 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"4800Gitlab::Suggestions::CommitMessage4801 #message4802 suggestion_set: suggestion_set_same_project4803 when a custom commit message is not specified4804 and is nil4805 uses the default commit message4806 and is an empty string4807 uses the default commit message4808 when a custom commit message is specified for forked project4809 uses the default commit message4810 when a custom commit message is specified4811 shows the custom commit message4812 is specified and includes all placeholders4813 generates a custom commit message4814 when a custom commit message is specified for forked project4815 uses the target project commit message4816 suggestion_set: suggestion_set_forked_project4817 when a custom commit message is not specified4818 and is nil4819 uses the default commit message4820 and is an empty string4821 uses the default commit message4822 when a custom commit message is specified for forked project4823 uses the default commit message4824 when a custom commit message is specified4825 shows the custom commit message4826 is specified and includes all placeholders4827 generates a custom commit message4828 when a custom commit message is specified for forked project4829 uses the target project commit message4830Gitlab::UsageMetricDefinitionGenerator4831 Creating metric definition file4832 without ee option4833 creates a metric definition file using the template4834 with ee option4835 creates a metric definition file using the template4836 Validation4837 does not raise an error4838 with a missing directory4839 raises an error4840 with an invalid directory4841 raises an error4842 with an already existing metric with the same key_path4843 raises an error4844 Name suggestions4845 adds name key to metric definition4846 with multiple file names4847 creates multiple files4848PruneOldEventsWorker4849 #perform4850 prunes events older than 3 years4851 leaves fresh events4852 leaves events from 13 months ago4853 leaves events from 3 years ago4854 with ops_prune_old_events FF disabled4855 does not delete4856Integrations::Redmine4857 Validations4858 when integration is active4859 is expected to validate that :project_url cannot be empty/falsy4860 is expected to validate that :issues_url cannot be empty/falsy4861 is expected to validate that :new_issue_url cannot be empty/falsy4862 behaves like issue tracker integration URL attribute4863 is expected to allow :project_url to be ‹"https://example.com"›4864 is expected not to allow :project_url to be ‹"example.com"›4865 is expected not to allow :project_url to be ‹"ftp://example.com"›4866 is expected not to allow :project_url to be ‹"herp-and-derp"›4867 behaves like issue tracker integration URL attribute4868 is expected to allow :issues_url to be ‹"https://example.com"›4869 is expected not to allow :issues_url to be ‹"example.com"›4870 is expected not to allow :issues_url to be ‹"ftp://example.com"›4871 is expected not to allow :issues_url to be ‹"herp-and-derp"›4872 behaves like issue tracker integration URL attribute4873 is expected to allow :new_issue_url to be ‹"https://example.com"›4874 is expected not to allow :new_issue_url to be ‹"example.com"›4875 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›4876 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›4877 when integration is inactive4878 is expected not to validate that :project_url cannot be empty/falsy4879 is expected not to validate that :issues_url cannot be empty/falsy4880 is expected not to validate that :new_issue_url cannot be empty/falsy4881 #reference_pattern4882 does allow # on the reference4883 behaves like allows project key on reference pattern4884 allows underscores in the project name4885 allows numbers in the project name4886 requires the project name to begin with A-Z4887 does not allow issue number to finish with a letter4888Gitlab::Auth::CurrentUserMode4889 when session is available4890 #admin_mode?4891 when the user is a regular user4892 behaves like admin mode cannot be enabled4893 is false by default4894 cannot be enabled with a valid password4895 cannot be enabled with an invalid password4896 cannot be enabled with empty params4897 disable has no effect4898 skipping password validation4899 cannot be enabled with a valid password4900 cannot be enabled with an invalid password4901 bypassing session4902 behaves like admin mode cannot be enabled4903 is false by default4904 cannot be enabled with a valid password4905 cannot be enabled with an invalid password4906 cannot be enabled with empty params4907 disable has no effect4908 skipping password validation4909 cannot be enabled with a valid password4910 cannot be enabled with an invalid password4911 when the user is an admin4912 when admin mode not requested4913 is false by default4914 raises exception if we try to enable it4915 when admin mode requested first4916 is false by default4917 cannot be enabled with an invalid password4918 can be enabled with a valid password4919 can be disabled4920 will expire in the future4921 skipping password validation4922 can be enabled with a valid password4923 can be enabled with an invalid password4924 with two independent sessions4925 cannot be enabled in one and seen in the other4926 bypassing session4927 is active by default4928 enable has no effect4929 disable has no effect4930 #enable_admin_mode!4931 creates a timestamp in the session4932 returns true after successful enable4933 returns false after unsuccessful enable4934 when user is not an admin4935 returns false4936 when admin mode is not requested4937 raises error4938 #disable_admin_mode!4939 sets the session timestamp to nil4940 .with_current_request_admin_mode4941 with a regular user4942 user is not available inside nor outside the yielded block4943 with an admin user4944 admin mode is disabled4945 user is not available inside nor outside the yielded block4946 admin mode is enabled4947 user is available only inside the yielded block4948 when no session available4949 .bypass_session!4950 when providing a block4951 with a regular user4952 admin mode is false4953 with an admin user4954 admin mode is true4955 when not providing a block4956 with a regular user4957 admin mode is false4958 with an admin user4959 admin mode is true4960Sidebars::Projects::Menus::AnalyticsMenu4961 # order random4962 #link4963 returns link to the value stream page4964 when Value Stream is not visible4965 returns link to the the first visible menu item4966 #render?4967 whe user cannot read analytics4968 returns false4969 whe user can read analytics4970 returns true4971 when menu does not have any menu items4972 returns false4973 when menu has menu items4974 returns true4975 Menu items4976 CI/CD4977 is expected not to be nil4978 when the project repository is empty4979 is expected to be nil4980 when builds access level is DISABLED4981 is expected to be nil4982 when the user does not have access4983 is expected to be nil4984 Repository4985 is expected not to be nil4986 when the project repository is empty4987 is expected to be nil4988 when a user does not have access to repository graphs4989 is expected to be nil4990 when the user does not have access4991 is expected to be nil4992 Value Stream4993 is expected not to be nil4994 when the user does not have access4995 is expected to be nil4996 when issues are disabled4997 is expected not to be nil4998 when merge requests are disabled4999 is expected not to be nil5000 when the issues and merge requests are disabled5001 is expected to be nil5002Mutations::ContainerExpirationPolicies::Update5003 is expected to require graphql authorizations :admin_container_image5004 #resolve5005 with existing container expiration policy5006 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"5007 behaves like updating the container expiration policy5008 behaves like updating the container expiration policy attributes5009 updates the container expiration policy5010 behaves like not creating the container expiration policy5011 doesn't create the container expiration policy5012 behaves like returning a success5013 returns the container expiration policy with no errors5014 with invalid params5015 doesn't update the cadence5016 returns an error5017 behaves like not creating the container expiration policy5018 doesn't create the container expiration policy5019 with blank regex5020 doesn't update the cadence5021 returns an error5022 behaves like not creating the container expiration policy5023 doesn't create the container expiration policy5024 user_role: :developer, shared_examples_name: "denying access to container expiration policy"5025 behaves like denying access to container expiration policy5026 raises Gitlab::Graphql::Errors::ResourceNotAvailable5027 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"5028 behaves like denying access to container expiration policy5029 raises Gitlab::Graphql::Errors::ResourceNotAvailable5030 user_role: :guest, shared_examples_name: "denying access to container expiration policy"5031 behaves like denying access to container expiration policy5032 raises Gitlab::Graphql::Errors::ResourceNotAvailable5033 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"5034 behaves like denying access to container expiration policy5035 raises Gitlab::Graphql::Errors::ResourceNotAvailable5036 without existing container expiration policy5037 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"5038 behaves like creating the container expiration policy5039 behaves like updating the container expiration policy attributes5040 creates a new container expiration policy5041 updates the container expiration policy5042 behaves like returning a success5043 returns the container expiration policy with no errors5044 user_role: :developer, shared_examples_name: "denying access to container expiration policy"5045 behaves like denying access to container expiration policy5046 raises Gitlab::Graphql::Errors::ResourceNotAvailable5047 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"5048 behaves like denying access to container expiration policy5049 raises Gitlab::Graphql::Errors::ResourceNotAvailable5050 user_role: :guest, shared_examples_name: "denying access to container expiration policy"5051 behaves like denying access to container expiration policy5052 raises Gitlab::Graphql::Errors::ResourceNotAvailable5053 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"5054 behaves like denying access to container expiration policy5055 raises Gitlab::Graphql::Errors::ResourceNotAvailable5056CiPlatformMetric5057 behaves like a BulkInsertSafe model5058 when calling class methods directly5059 raises an error when method is not bulk-insert safe5060 does not raise an error when method is bulk-insert safe5061 .bulk_insert!5062 when all items are valid5063 inserts them all5064 returns an empty array5065 when some items are invalid5066 does not insert any of them and raises an error5067 inserts them anyway when bypassing validations5068 validations5069 is expected to validate that :recorded_at cannot be empty/falsy5070 is expected to validate that :count cannot be empty/falsy5071 is expected to validate that :count looks like an integer greater than 05072 is expected to allow :platform_target to be ‹""›5073 is expected not to allow :platform_target to be ‹nil›5074 is expected to validate that the length of :platform_target is at most 2555075 .insert_auto_devops_platform_targets!5076 when there is already existing metrics data5077 does not erase any existing data5078 when there are multiple platform target variables5079 inserts platform target counts for that day5080 when there are invalid ci variable values for platform_target5081 ignores those values5082 when there are no platform target variables5083 does not generate any new platform metrics5084Ci::Resource5085 .free5086 returns free resources5087 .retained5088 returns the resource if it's retained5089 returns empty if it's not retained5090 .retained_by5091 returns retained resources5092 .stale_processables5093 when the processable is running5094 returns empty5095 and doomed5096 returns empty5097 returns the stale prosessable a few minutes later5098BasePolicy5099 .class_for5100 detects policy class based on the subject ancestors5101 detects policy class for a presented subject5102 uses GlobalPolicy when :global is given5103 read cross project5104 is expected to be allowed :read_cross_project5105 for anonymous5106 is expected to be allowed :read_cross_project5107 when an external authorization service is enabled5108 behaves like admin only access5109 is expected not to be allowed :read_cross_project5110 with an admin5111 allowed when in admin mode5112 prevented when not in admin mode5113 with anonymous5114 is expected not to be allowed :read_cross_project5115 bypassing the session for sessionless login5116 changes from prevented to allowed5117 full private access: read_all_resources5118 behaves like admin only access5119 is expected not to be allowed :read_all_resources5120 with an admin5121 allowed when in admin mode5122 prevented when not in admin mode5123 with anonymous5124 is expected not to be allowed :read_all_resources5125 bypassing the session for sessionless login5126 changes from prevented to allowed5127 full private access: admin_all_resources5128 behaves like admin only access5129 is expected not to be allowed :admin_all_resources5130 with an admin5131 allowed when in admin mode5132 prevented when not in admin mode5133 with anonymous5134 is expected not to be allowed :admin_all_resources5135 bypassing the session for sessionless login5136 changes from prevented to allowed5137 change_repository_storage5138 behaves like admin only access5139 is expected not to be allowed :change_repository_storage5140 with an admin5141 allowed when in admin mode5142 prevented when not in admin mode5143 with anonymous5144 is expected not to be allowed :change_repository_storage5145 bypassing the session for sessionless login5146 changes from prevented to allowed5147DesignManagement::VersionsFinder5148 #execute5149 when user cannot read designs of an issue5150 returns no results when passed a DesignCollection5151 when passed a Design5152 returns no results when passed a Design5153 when user can read designs of an issue5154 when design management feature is disabled5155 returns no results when passed a DesignCollection5156 when passed a Design5157 returns no results when passed a Design5158 when design management feature is enabled5159 passing a DesignCollection or a Design for the initial scoping5160 returns the versions scoped to the DesignCollection5161 when passed a Design5162 returns the versions scoped to the Design5163 returning versions earlier or equal to a version5164 when argument is the first version5165 is expected to eq [#<DesignManagement::Version id: 278, sha: "53d4603e30334f72a5ab26b5a45578ec7a68c2a4", issue_id: 340, created_at: "2023-06-02 06:44:24.123779000 +0000", author_id: 1943>]5166 when argument is the second version5167 is expected to contain exactly #<DesignManagement::Version id: 278, sha: "53d4603e30334f72a5ab26b5a45578ec7a68c2a4", issue_id: 340, created_at: "2023-06-02 06:44:24.123779000 +0000", author_id: 1943> and #<DesignManagement::Version id: 279, sha: "e6231b76e3314c5a29d3f4691bc27a2a26dc9d32", issue_id: 340, created_at: "2023-06-02 06:44:24.178767000 +0000", author_id: 1943>5168 returning versions by SHA5169 when argument is the first version5170 is expected to contain exactly #<DesignManagement::Version id: 278, sha: "53d4603e30334f72a5ab26b5a45578ec7a68c2a4", issue_id: 340, created_at: "2023-06-02 06:44:24.123779000 +0000", author_id: 1943>5171 when argument is the second version5172 is expected to contain exactly #<DesignManagement::Version id: 279, sha: "e6231b76e3314c5a29d3f4691bc27a2a26dc9d32", issue_id: 340, created_at: "2023-06-02 06:44:24.178767000 +0000", author_id: 1943>5173 returning versions by ID5174 when argument is the first version5175 is expected to contain exactly #<DesignManagement::Version id: 278, sha: "53d4603e30334f72a5ab26b5a45578ec7a68c2a4", issue_id: 340, created_at: "2023-06-02 06:44:24.123779000 +0000", author_id: 1943>5176 when argument is the second version5177 is expected to contain exactly #<DesignManagement::Version id: 279, sha: "e6231b76e3314c5a29d3f4691bc27a2a26dc9d32", issue_id: 340, created_at: "2023-06-02 06:44:24.178767000 +0000", author_id: 1943>5178 mixing id and sha5179 when arguments are consistent5180 is expected to contain exactly #<DesignManagement::Version id: 278, sha: "53d4603e30334f72a5ab26b5a45578ec7a68c2a4", issue_id: 340, created_at: "2023-06-02 06:44:24.123779000 +0000", author_id: 1943>5181 when arguments are in-consistent5182 is expected to be empty5183DependencyProxy::Manifest5184 behaves like ttl_expirable5185 behaves like having unique enum values5186 has unique values in "status"5187 default values5188 is expected to within one second of 2023-06-02 06:44:26 UTC5189 is expected to within one second of 2023-06-01 06:44:26 UTC5190 validations5191 is expected to validate that :status cannot be empty/falsy5192 .read_before5193 returns items with created at older than the supplied number of days5194 .active5195 returns only active items5196 #read!5197 updates read_at5198 behaves like destructible5199 .next_pending_destruction5200 returns the oldest item pending destruction based on updated_at5201 returns the oldest item pending destruction based on created_at5202 behaves like updates namespace statistics5203 when creating5204 schedules a statistic refresh5205 when updating5206 when the statistic attribute has not changed5207 does not schedule a statistic refresh5208 when the statistic attribute has changed5209 schedules a statistic refresh5210 when deleting5211 schedules a statistic refresh5212 relationships5213 is expected to belong to group required: false5214 validations5215 is expected to validate that :group cannot be empty/falsy5216 is expected to validate that :file cannot be empty/falsy5217 is expected to validate that :file_name cannot be empty/falsy5218 is expected to validate that :digest cannot be empty/falsy5219 scopes5220 order_id_desc5221 file is being stored5222 when existing object has local store5223 behaves like mounted file in local store5224 is stored locally5225 when direct upload is enabled5226 behaves like mounted file in object store5227 is stored remotely5228 .find_by_file_name_or_digest5229 no manifest exists5230 is expected to be nil5231 manifest exists and matches file_name5232 is expected to eq #<DependencyProxy::Manifest id: 18, created_at: "2023-06-02 06:44:28.231276128 +0000", updated_at: "2023-06-02 06:44:28.231276128 +0000", group_id: 3273, size: 1234, file_store: 1, file_name: "alpine:latest19.json", file: "alpine:latest19.json", digest: "sha256:d0710affa17fad5f466a70159cc458227bd25d4afb3...", content_type: [FILTERED], status: "default", read_at: "2023-06-02 06:44:28.231428099 +0000", verification_checksum: nil>5233 manifest exists and matches digest5234 is expected to eq #<DependencyProxy::Manifest id: 19, created_at: "2023-06-02 06:44:28.350546330 +0000", updated_at: "2023-06-02 06:44:28.350546330 +0000", group_id: 3274, size: 1234, file_store: 1, file_name: "alpine:latest20.json", file: "alpine:latest20.json", digest: "sha256:d0710affa17fad5f466a70159cc458227bd25d4afb3...", content_type: [FILTERED], status: "default", read_at: "2023-06-02 06:44:28.350694781 +0000", verification_checksum: nil>5235BulkImports::NdjsonPipeline5236 marks pipeline as ndjson5237 #deep_transform_relation!5238 transforms relation hash5239 when subrelations is an array5240 transforms each element of the array5241 when subrelation is a hash5242 transforms subrelation hash5243 when subrelation is nil5244 removes subrelation5245 #transform5246 calls relation factory5247 when data is nil5248 returns5249 when relation hash is nil5250 returns5251 #load5252 when object is not persisted5253 saves the object using RelationObjectSaver5254 when object is invalid5255 captures invalid subrelations5256 when object is persisted5257 saves the object5258 when object is invalid5259 raises ActiveRecord::RecordInvalid exception5260 when object is missing5261 returns5262 #relation_class5263 when relation name is pluralized5264 returns constantized class5265 when relation name is singularized5266 returns constantized class5267 #relation_key_override5268 when portable is group5269 returns group relation name override5270 when portable is project5271 returns group relation name override5272 #relation_factory5273 when portable is group5274 returns group relation factory5275 when portable is project5276 returns project relation factory5277Gitlab::Ci::Reports::AccessibilityReports5278 #scans_count5279 when data has errors5280 returns the scans_count5281 when data has no errors5282 returns the scans_count5283 when data has no url5284 returns the scans_count5285 #passes_count5286 when data has errors5287 returns the passes_count5288 when data has no errors5289 returns the passes_count5290 when data has no url5291 returns the scans_count5292 #errors_count5293 when data has errors5294 returns the errors_count5295 when data has no errors5296 returns the errors_count5297 when data has no url5298 returns the errors_count5299 #add_url5300 when data has errors5301 adds urls and data to accessibility report5302 when data does not have errors5303 adds data to accessibility report5304 when url does not exist5305 sets error_message and decreases total5306 #set_error_message5307 when error is nil5308 returns the error5309 sets the error5310 when a error has already been set5311 overwrites the existing message5312 #all_errors5313 when data has errors5314 returns all errors5315 when data has no errors5316 returns an empty array5317 when accessibility report has no data5318 returns an empty array5319MergeRequestMetricsHelper5320 #build_metrics5321 when closed and metrics exists5322 does not call the merge request metrics class5323 returns the metrics for the given merge request5324 when merged and metrics exists5325 does not call the merge request metrics class5326 returns the metrics for the given merge request5327 when merged and metrics do not exists5328 rebuilds the merge request metrics5329Gitlab::PathTraversal5330 # order random5331 .check_allowed_absolute_path_and_path_traversal!5332 detects path traversal in string without any separators5333 detects path traversal at the start of the string5334 detects path traversal at the start of the string, even to just the subdirectory5335 detects path traversal in the middle of the string5336 detects path traversal at the end of the string when slash-terminates5337 detects path traversal at the end of the string5338 does not return errors for a safe string5339 raises error for a non-string5340 raises an exception if an absolute path is not allowed5341 does nothing for an allowed absolute path5342 .check_allowed_absolute_path!5343 raises an exception if an absolute path is not allowed5344 does nothing for an allowed absolute path5345 .check_path_traversal!5346 detects path traversal in string without any separators5347 detects path traversal at the start of the string5348 detects path traversal at the start of the string, even to just the subdirectory5349 detects path traversal in the middle of the string5350 detects path traversal at the end of the string when slash-terminates5351 detects path traversal at the end of the string5352 does nothing for a safe string5353 logs potential path traversal attempts5354 logs does nothing for a safe string5355 does nothing for nil5356 does nothing for safe HashedPath5357 raises for unsafe HashedPath5358 raises for other non-strings5359Gitlab::Ci::Config::Entry::Service5360 when configuration is a string5361 #valid?5362 is valid5363 #value5364 returns valid hash5365 #image5366 returns service's image name5367 #alias5368 returns service's alias5369 #command5370 returns service's command5371 #ports5372 returns service's ports5373 when configuration is a hash5374 #valid?5375 is valid5376 #value5377 returns valid hash5378 #image5379 returns service's image name5380 #alias5381 returns service's alias5382 #command5383 returns service's command5384 #entrypoint5385 returns service's entrypoint5386 #pull_policy5387 returns nil5388 when configuration has ports5389 when with_image_ports metadata is not enabled5390 #valid?5391 is not valid5392 when with_image_ports metadata is enabled5393 #valid?5394 is valid5395 when unknown port keys detected5396 is not valid5397 #ports5398 returns image's ports5399 when configuration has pull_policy5400 #valid?5401 is valid5402 #value5403 returns value5404 when entry value is not correct5405 #errors5406 saves errors5407 #valid?5408 is not valid5409 when unexpected key is specified5410 #errors5411 saves errors5412 #valid?5413 is not valid5414 when service has ports5415 alias field is mandatory5416 when service does not have ports5417 alias field is optional5418FeatureFlags::UpdateService5419 #execute5420 returns success status5421 creates audit event with correct message5422 when Jira Connect subscription does not exist5423 does not sync the feature flag to Jira5424 when Jira Connect subscription exists5425 syncs the feature flag to Jira5426 behaves like update feature flag client5427 updates last feature flag updated at5428 with invalid params5429 returns error status5430 returns error messages5431 does not create audit event5432 does not sync the feature flag to Jira5433 behaves like does not update feature flag client5434 does not update last feature flag updated at5435 when user is reporter5436 returns error status5437 when nothing is changed5438 returns success status5439 does not create audit event5440 description is being changed5441 creates audit event with changed description5442 when flag active state is changed5443 creates audit event about changing active state5444 executes hooks5445Projects::PostCreationWorker5446 behaves like an idempotent worker5447 is labeled as idempotent5448 performs multiple times sequentially without raising an exception5449 Prometheus integration5450 project is nil5451 does not create prometheus integration5452 when project has access to shared integration5453 Prometheus application is shared via group cluster5454 creates an Integrations::Prometheus record5455 Prometheus application is shared via instance cluster5456 creates an Integrations::Prometheus record5457 cleans invalid record and logs warning5458 shared Prometheus application is not available5459 does not persist an Integrations::Prometheus record5460 Incident timeline event tags5461 when project is nil5462 does not create event tags5463 when project is created5464 creates tags for the project5465 raises error if record creation fails5466Pajamas::BannerComponent5467 basic usage5468 renders its content5469 renders its title5470 renders a close button5471 button_text and button_link5472 define the primary action5473 banner_options5474 are on the banner5475 with custom classes5476 don't conflict with internal banner_classes5477 close_options5478 are on the close button5479 embedded5480 by default (false)5481 keeps the banner's borders5482 when set to true5483 removes the banner's borders5484 variant5485 by default (promotion)5486 applies no variant class5487 when set to introduction5488 applies the introduction class to the banner5489 applies the confirm class to the close button5490 when set to unknown variant5491 ignores the unknown variant5492 illustration5493 has none by default5494 with svg_path5495 renders an image as illustration5496 with illustration slot5497 renders the slot content as illustration5498 and conflicting svg_path5499 uses the slot content5500 with primary_action slot5501 renders the slot content as the primary action5502 and conflicting button_text and button_link5503 uses the slot content5504Ci::Runners::BulkDeleteRunnersService#execute5505 with runners specified5506 when the user cannot delete runners5507 when user is not group owner5508 does not delete any runner and returns error5509 when user is not part of the group5510 does not delete any runner and returns error5511 when the user can delete runners5512 when user is an admin5513 destroys runners5514 with too many runners specified5515 deletes only first RUNNER_LIMIT runners5516 with a runner already deleted5517 destroys runners5518 with too many runners specified5519 deletes only first RUNNER_LIMIT runners5520 when deleting a single runner5521 avoids N+1 cached queries5522 when user is group owner5523 destroys runners5524 with too many runners specified5525 deletes only first RUNNER_LIMIT runners5526 with a runner non-authorised to be deleted5527 destroys only authorised runners5528 with no arguments specified5529 returns 0 deleted runners5530FeatureFlags::CreateService5531 #execute5532 when feature flag can not be created5533 returns status error5534 returns validation errors5535 does not create audit log5536 does not sync the feature flag to Jira5537 behaves like does not update feature flag client5538 does not update last feature flag updated at5539 when feature flag is saved correctly5540 returns status success5541 creates feature flag5542 creates audit event5543 behaves like update feature flag client5544 updates last feature flag updated at5545 when Jira Connect subscription does not exist5546 does not sync the feature flag to Jira5547 when Jira Connect subscription exists5548 syncs the feature flag to Jira5549 when user is reporter5550 returns error status5551layouts/devise5552 behaves like a layout which reflects the application theme setting5553 as a themed layout5554 when no theme is explicitly selected5555 renders with the default theme5556 when user is authenticated & has selected a specific theme5557 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">5558 renders with the Indigo theme5559 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">5560 renders with the Light Indigo theme5561 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">5562 renders with the Blue theme5563 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">5564 renders with the Light Blue theme5565 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">5566 renders with the Green theme5567 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">5568 renders with the Light Green theme5569 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">5570 renders with the Red theme5571 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">5572 renders with the Light Red theme5573 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">5574 renders with the Gray theme5575 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">5576 renders with the Light Gray theme5577 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">5578 renders with the Dark Mode (alpha) theme5579 logo5580 renders GitLab logo5581 with custom logo5582 renders custom logo5583 without broadcast messaging5584 does not render the broadcast layout5585Ci::BuildReportResultService5586 #execute5587 when build is finished5588 creates a build report result entry5589 tracks unique test cases parsed5590 and build has test report parsing errors5591 creates a build report result entry with suite error5592 does not track unique test cases parsed5593 when data has already been persisted5594 raises an error and do not persist the same data twice5595 when build is running and test report does not exist5596 does not persist data5597Packages::Debian::GroupDistributionKey5598 behaves like Debian Distribution Key5599 relationships5600 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => key5601 validations5602 #distribution5603 is expected to validate that :distribution cannot be empty/falsy5604 #private_key5605 is expected to validate that :private_key cannot be empty/falsy5606 is expected to allow :private_key to be ‹"-----BEGIN PGP PRIVATE KEY BLOCK-----\n..."›5607 is expected not to allow :private_key to be ‹"A"›, producing a custom validation error on failure5608 #passphrase5609 is expected to validate that :passphrase cannot be empty/falsy5610 is expected to allow :passphrase to be ‹"P@$$w0rd"›5611 is expected to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›5612 is expected not to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›5613 #public_key5614 is expected to validate that :public_key cannot be empty/falsy5615 is expected to allow :public_key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\n..."›5616 is expected not to allow :public_key to be ‹"A"›, producing a custom validation error on failure5617 #fingerprint5618 is expected to validate that :passphrase cannot be empty/falsy5619 is expected to allow :passphrase to be ‹"abc"›5620 is expected to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›5621 is expected not to allow :passphrase to be ‹"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"›5622SensitiveSerializableHash5623 .prevent_from_serialization5624 does not include the field in serializable_hash5625 does not change parent class attributes_exempt_from_serializable_hash5626 #serializable_hash5627 for a web hook5628 behaves like attr_encrypted attribute5629 WebHook#token5630 has a attr_encrypted_attributes field5631 does not include the attribute in serializable_hash5632 behaves like attr_encrypted attribute5633 WebHook#url5634 has a attr_encrypted_attributes field5635 does not include the attribute in serializable_hash5636 behaves like attr_encrypted attribute5637 WebHook#url_variables5638 has a attr_encrypted_attributes field5639 does not include the attribute in serializable_hash5640 behaves like attr_encrypted attribute5641 Ci::InstanceVariable#value5642 has a attr_encrypted_attributes field5643 does not include the attribute in serializable_hash5644 behaves like add_authentication_token_field attribute5645 does not include token_expires_at in serializable_hash5646 Ci::Runner#token5647 has a add_authentication_token_field field5648 does not include the attribute in serializable_hash5649 behaves like add_authentication_token_field attribute5650 ApplicationSetting#health_check_access_token5651 has a add_authentication_token_field field5652 does not include the attribute in serializable_hash5653 behaves like add_authentication_token_field attribute5654 PersonalAccessToken#token5655 has a add_authentication_token_field field5656 does not include the attribute in serializable_hash5657Sanitizable5658 behaves like a non-sanitizable field5659 id5660 has no effect5661 behaves like a non-sanitizable field5662 html_body5663 has no effect5664 behaves like a sanitizable field5665 name5666 when input is nil5667 behaves like noop5668 has no effect5669 when input does not contain any html5670 behaves like noop5671 has no effect5672 when input contains html5673 sanitizes the input5674 when input includes html entities5675 does not escape them5676 when input contains pre-escaped html entities5677 is not valid5678 behaves like noop5679 has no effect5680 when input contains double-escaped data5681 is not valid5682 behaves like noop5683 has no effect5684 when input contains a path traversal attempt5685 is not valid5686 behaves like noop5687 has no effect5688 when input contains both path traversal attempt and pre-escaped entities5689 is not valid5690 behaves like noop5691 has no effect5692 behaves like a sanitizable field5693 description5694 when input is nil5695 behaves like noop5696 has no effect5697 when input does not contain any html5698 behaves like noop5699 has no effect5700 when input contains html5701 sanitizes the input5702 when input includes html entities5703 does not escape them5704 when input contains pre-escaped html entities5705 is not valid5706 behaves like noop5707 has no effect5708 when input contains double-escaped data5709 is not valid5710 behaves like noop5711 has no effect5712 when input contains a path traversal attempt5713 is not valid5714 behaves like noop5715 has no effect5716 when input contains both path traversal attempt and pre-escaped entities5717 is not valid5718 behaves like noop5719 has no effect5720Gitlab::Ci::Reports::AccessibilityReportsComparer5721 #status5722 when head report has an error5723 returns status failed5724 when head reports does not have errors5725 returns status success5726 #errors_count5727 when head report has an error5728 returns the number of new errors5729 when head reports does not have an error5730 returns the number new errors5731 #resolved_count5732 when base reports has an error and head has a different error5733 returns the resolved count5734 when base reports has errors head has no errors5735 returns the resolved count5736 when base reports has errors and head has the same error5737 returns zero5738 when base reports does not have errors and head has errors5739 returns the number of resolved errors5740 #total_count5741 when base reports has an error5742 returns zero5743 when head report has an error5744 returns the total count5745 when base report has errors and head report has errors5746 returns the total count5747 when base report has errors and head report has the same error5748 returns the total count5749 #existing_errors5750 when base report has errors and head has a different error5751 returns an empty array5752 when base report does not have errors and head has errors5753 returns an empty array5754 when base report has errors and head report has the same error5755 returns the existing error5756 #new_errors5757 when base reports has errors and head has more errors5758 returns new errors between base and head reports5759 when base reports has an error and head has no errors5760 returns an empty array5761 when base reports does not have errors and head has errors5762 returns the new error5763 #resolved_errors5764 when base report has errors and head has more errors5765 returns an empty array5766 when base reports has errors and head has a different error5767 returns the resolved errors5768 when base reports does not have errors and head has errors5769 returns an empty array5770Projects::ContainerRepository::DestroyService5771 when user has access to registry5772 behaves like executing with permissions5773 deletes the repository5774 sends disable_timeout = true as part of the params as default5775 sends disable_timeout = false as part of the params if it is set to false5776 when deleting the tags fails5777 sets status as deleted_failed5778 logs the error5779 behaves like returning an error status with message5780 returns an error status5781 when destroying the repository fails5782 sets status as deleted_failed5783 logs the error5784 behaves like returning an error status with message5785 returns an error status5786 when user does not have access to registry5787 does not delete a repository5788 behaves like returning an error status with message5789 returns an error status5790 when called during project deletion5791 behaves like executing with permissions5792 deletes the repository5793 sends disable_timeout = true as part of the params as default5794 sends disable_timeout = false as part of the params if it is set to false5795 when deleting the tags fails5796 sets status as deleted_failed5797 logs the error5798 behaves like returning an error status with message5799 returns an error status5800 when destroying the repository fails5801 sets status as deleted_failed5802 logs the error5803 behaves like returning an error status with message5804 returns an error status5805 when there is no user5806 behaves like returning an error status with message5807 returns an error status5808Banzai::ReferenceParser::DesignParser5809 #nodes_visible_to_user5810 behaves like referenced feature visibility5811 when feature is disabled5812 does not create reference5813 when feature is enabled only for team members5814 does not create reference for non member5815 creates reference for member5816 when feature is enabled5817 creates reference5818 specific states5819 redacts links we should not have access to5820 design management is not available5821 redacts all nodes5822 #process5823 returns the correct designs5824Ci::BuildNeed5825 is expected to belong to build class_name => Ci::Processable required: false5826 is expected to validate that :build cannot be empty/falsy5827 is expected to validate that :name cannot be empty/falsy5828 is expected to validate that the length of :name is at most 1285829 .artifacts5830 is expected to contain exactly #<Ci::BuildNeed name: "build_1", artifacts: true, optional: false, build_id: 358, partition_id: 100, id: 14>5831 BulkInsertSafe5832 bulk inserts from Ci::Build model5833 partitioning5834 with build5835 sets partition_id to the current partition value5836 when it is already set5837 does not change the partition_id value5838 without build5839 is expected to validate that :partition_id cannot be empty/falsy5840 does not change the partition_id value5841 when using bulk_insert5842 creates build needs successfully (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5843Gitlab::Chat::Output5844 #to_s5845 returns the chat reply as a String5846 without the chat_reply trace section5847 falls back to using the step_script trace section5848 without the step_script trace section5849 falls back to using the build_script trace section5850 without the build_script trace section5851 raises MissingBuildSectionError5852 #without_executed_command_line5853 returns the input without the first line5854 returns an empty String when the input is empty5855 returns an empty String when the input consits of a single newline5856 #find_build_trace_section5857 returns nil when no section could be found5858 returns the trace section when it could be found5859GoogleCloud::SetupCloudsqlInstanceService5860 when unauthorized user triggers worker5861 raises unauthorized error5862 when authorized user triggers worker5863 when instance is not RUNNABLE5864 raises error5865 when instance is RUNNABLE5866 when database creation fails5867 raises error5868 when user creation fails5869 raises error5870 when database and user already exist5871 does not try to create a database or user5872 when database already exists5873 does not try to create a database5874 when user already exists5875 does not try to create a user5876 when database and user creation succeeds5877 stores project CI vars5878 when the ci variable already exists5879 overwrites existing GCP_PROJECT_ID var5880Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated5881 behaves like value stream analytics event5882 is expected to be a kind of String5883 is expected to be a kind of Symbol5884 is expected to include ApplicationRecord(abstract)5885 is expected to respond to #timestamp_projection5886 is expected to respond to #html_description5887 is expected to be a kind of Array5888 #apply_query_customization5889 expects an ActiveRecord::Relation object as argument and returns a modified version of it5890 #hash_code5891 returns a hash that uniquely identifies an event5892 does not differ when the same object is built with the same params5893 behaves like LEFT JOIN-able value stream analytics event5894 can use the event as LEFT JOIN5895 when looking at the record with data5896 contains the timestamp expression5897 when looking at the record without data5898 returns nil for the timestamp expression5899layouts/signup_onboarding5900 behaves like a layout which reflects the application theme setting5901 as a themed layout5902 when no theme is explicitly selected5903 renders with the default theme5904 when user is authenticated & has selected a specific theme5905 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">5906 renders with the Indigo theme5907 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">5908 renders with the Light Indigo theme5909 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">5910 renders with the Blue theme5911 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">5912 renders with the Light Blue theme5913 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">5914 renders with the Green theme5915 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">5916 renders with the Light Green theme5917 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">5918 renders with the Red theme5919 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">5920 renders with the Light Red theme5921 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">5922 renders with the Gray theme5923 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">5924 renders with the Light Gray theme5925 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">5926 renders with the Dark Mode (alpha) theme5927BulkImports::ExportRequestWorker5928 #perform5929 when entity is group5930 behaves like requests relations export for api resource5931 behaves like an idempotent worker5932 is labeled as idempotent5933 performs multiple times sequentially without raising an exception5934 requests relations export & schedules entity worker5935 when source id is nil5936 updates entity source id & requests export using source id5937 when something goes wrong during source id fetch5938 logs the error & requests relations export using full path url5939 when entity is project5940 behaves like requests relations export for api resource5941 behaves like an idempotent worker5942 is labeled as idempotent5943 performs multiple times sequentially without raising an exception5944 requests relations export & schedules entity worker5945 when source id is nil5946 updates entity source id & requests export using source id5947 when something goes wrong during source id fetch5948 logs the error & requests relations export using full path url5949 #sidekiq_retries_exhausted5950 logs export failure and marks entity as failed5951Gitlab::Ci::Pipeline::Logger5952 #log_when5953 stores blocks for later evaluation5954 #instrument5955 returns the block's value5956 records durations of instrumented operations5957 raises an error when block is not provided5958 when once: true5959 logs only one observation5960 #instrument_once_with_sql5961 with a single query5962 is expected to eq 05963 includes SQL metrics5964 with multiple queries5965 is expected to eq 05966 includes SQL metrics5967 when there are not SQL operations5968 is expected to eq 1235969 does not include SQL metrics5970 #observe5971 records durations of observed operations5972 when once: true5973 records the latest observation5974 logs data as expected5975 #commit5976 when the feature flag is enabled5977 logs to application.json5978 with log conditions5979 does not log when the conditions are false5980 logs when a condition is true5981 with unexistent observations in condition5982 does not commit the log5983 when project is not passed and pipeline is not persisted5984 logs to application.json5985 when the feature flag is disabled5986 does not log5987ProtectedBranches::UpdateService5988 with entity project5989 behaves like execute with entity5990 #execute5991 updates a protected branch5992 refreshes the cache5993 when updating name of a protected branch to one that contains HTML tags5994 updates a protected branch5995 when a policy restricts rule update5996 prevents update of the protected branch rule5997 with entity group5998 behaves like execute with entity5999 #execute6000 updates a protected branch6001 refreshes the cache6002 when updating name of a protected branch to one that contains HTML tags6003 updates a protected branch6004 when a policy restricts rule update6005 prevents update of the protected branch rule6006Packages::Cleanup::DeleteOrphanedDependenciesWorker6007 # order random6008 is expected to includes the CronjobQueue module6009 is expected to be truthy6010 #perform6011 deletes only orphaned dependencies6012 executes 3 queries6013 when the worker is running for more than the max time6014 sets the last processed dependency id in redis cache6015 when the worker reaches the maximum number of batches6016 iterates over only 1 batch6017 sets the last processed dependency id in redis cache6018 when the worker finishes processing in less than the max time6019 clears the last processed last_processed_packages_dependency_id from redis cache6020 when logging extra metadata6021 logs the last proccessed id & the deleted rows count6022Gitlab::Ci::Config::Entry::Rules6023 .new6024 with a list of rule rule6025 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules6026 is expected to be valid6027 with a list of two rules6028 is expected to be valid6029 with a single rule object6030 is expected not to be valid6031 with nested rules6032 is expected to be valid6033 with rules nested more than one level6034 is expected to be valid6035 #value6036 with a list of rule rule6037 is expected to eq [{:if=>"$THIS == \"that\"", :when=>"never"}]6038 with a list of two rules6039 is expected to eq [{:if=>"$THIS == \"that\"", :when=>"always"}, {:if=>"$SKIP", :when=>"never"}]6040 with a single rule object6041 is expected to eq []6042 with nested rules6043 is expected to contain exactly {:if=>"$THIS == \"that\"", :when=>"always"} and {:if=>"$SKIP", :when=>"never"}6044 with rules nested more than one level6045 is expected to contain exactly {:if=>"$THIS == \"that\"", :when=>"always"}, {:if=>"$SKIP", :when=>"never"}, and {:if=>"$THIS == \"other\"", :when=>"always"}6046 .default6047 does not have default policy6048Clusters::Agents::DeleteExpiredEventsService6049 #execute6050 does not delete events if the limit has not been reached6051 there are more events than the limit6052 removes events to remain at the limit, keeping the most recent6053API::Entities::Release6054 evidences6055 when the current user can read code6056 exposes the evidence sha and the json path6057 when the current user cannot read code6058 does not expose any evidence data6059 description_html6060 is inexistent6061 when include_html_description option is true6062 renders special references if current user has access6063 does not render special references if current user has no access6064 links6065 includes links6066Integrations::ResetSecretFields6067 behaves like Integrations::ResetSecretFields6068 #exposing_secrets_fields6069 returns an array of strings6070 #reset_secret_fields?6071 returns false if no exposing field has changed6072 returns true if any exposing field has changed6073 validation callback6074 when an exposing field has changed6075 clears all secret fields6076 when a secret field has been updated6077 does not clear this secret field6078 when a secret field has been updated with the same value6079 does not clear this secret field6080 when no exposing field has changed6081 does not clear any secret fields6082SafeZip::Extract6083 #extract6084 when using valid-simple.zip archive6085 behaves like extracts archive6086 when specifying directories6087 does extract archive6088 when specifying files6089 does extract archive6090 when using valid-symlinks-first.zip archive6091 behaves like extracts archive6092 when specifying directories6093 does extract archive6094 when specifying files6095 does extract archive6096 when using valid-non-writeable.zip archive6097 behaves like extracts archive6098 when specifying directories6099 does extract archive6100 when specifying files6101 does extract archive6102 when zip files are invalid6103 name: "invalid-symlink-does-not-exist.zip", message: "does not exist"6104 behaves like fails to extract archive6105 does not extract archive6106 name: "invalid-symlinks-outside.zip", message: "Symlink cannot be created"6107 behaves like fails to extract archive6108 does not extract archive6109 name: "invalid-unexpected-large.zip", message: "larger when inflated"6110 behaves like fails to extract archive6111 does not extract archive6112 when no matching directories are found6113 behaves like fails to extract archive6114 does not extract archive6115 when no matching files are found6116 behaves like fails to extract archive6117 does not extract archive6118Gitlab::ImportExport::AfterExportStrategies::WebUploadStrategy6119 validations6120 only POST and PUT method allowed6121 only allow urls as upload urls6122 #execute6123 when upload succeeds6124 does not remove the exported project file after the upload6125 logs when upload starts and finishes6126 when upload fails6127 stores the export error6128 when object store is disabled6129 reads file from disk and uploads to external url6130 when object store is enabled6131 uploads file as a remote stream6132 when upload as remote stream raises an exception6133 logs the exception and stores the error message6134Integrations::ChatMessage::PushMessage6135 behaves like Integrations::ChatMessage6136 when input contains link markup6137 strips all link markup characters6138 push6139 without markdown6140 returns a message regarding pushes6141 with markdown6142 returns a message regarding pushes6143 tag push6144 without markdown6145 returns a message regarding pushes6146 with markdown6147 returns a message regarding pushes6148 removed tag6149 without markdown6150 returns a message regarding removal of tags6151 with markdown6152 returns a message regarding removal of tags6153 new branch6154 without markdown6155 returns a message regarding a new branch6156 with markdown6157 returns a message regarding a new branch6158 removed branch6159 without markdown6160 returns a message regarding a removed branch6161 with markdown6162 returns a message regarding a removed branch6163Gitlab::Memory::Watchdog::EventReporter6164 # order random6165 #stopped6166 logs stop message once6167 #strikes_exceeded6168 increments handled violations counter6169 logs violation6170 #threshold_violated6171 increments violations counter6172 does not increment handled violations counter6173 does not log violation6174 #logger6175 when logger is not provided6176 uses default Gitlab::AppLogger6177 #started6178 logs start message once6179Atlassian::JiraConnect::Jwt::Asymmetric6180 #valid?6181 returns true when verified with public key from CDN6182 JWT does not contain a key ID6183 is expected not to be valid6184 JWT contains a key ID that is not a valid UUID46185 is expected not to be valid6186 public key can not be retrieved6187 is expected not to be valid6188 retrieving the public raises an error6189 is expected not to be valid6190 token decoding raises an error6191 is expected not to be valid6192 when iss could not be verified6193 is expected not to be valid6194 when qsh could not be verified6195 is expected not to be valid6196 with jira_connect_proxy_url setting6197 requests the settings CDN6198 when the setting is an empty string6199 requests the default CDN6200 #iss_claim6201 is expected to eq nil6202 when jwt is verified6203 is expected to eq "client_key"6204Gitlab::GithubImport::Importer::Events::ChangedLabel6205 with Issue6206 when importing event with associated label6207 when importing a labeled event6208 behaves like new event6209 creates a new label event6210 when importing an unlabeled event6211 behaves like new event6212 creates a new label event6213 when importing event without associated label6214 behaves like new event6215 creates a new label event6216 with MergeRequest6217 when importing event with associated label6218 when importing a labeled event6219 behaves like new event6220 creates a new label event6221 when importing an unlabeled event6222 behaves like new event6223 creates a new label event6224 when importing event without associated label6225 behaves like new event6226 creates a new label event6227Gitlab::Ci::Pipeline::Chain::EnsureResourceGroups6228 #perform!6229 when a pipeline contains a job that requires a resource group6230 ensures the resource group existence6231 when a resource group has already been existed6232 ensures the resource group existence6233 when a resource group key contains an invalid character6234 does not create any resource groups6235 when a pipeline does not contain a job that requires a resource group6236 does not create any resource groups6237Repositories::TreeFinder6238 #execute6239 returns an array6240 includes 20 items by default6241 accepts a gitaly_pagination argument6242 commit doesn't exist6243 raises an error6244 pagination_params6245 has the per_page number of items6246 doesn't include any of the first page records6247 #total6248 is expected to be a kind of Integer6249 only calculates the total once6250 #commit_exists?6251 ref exists6252 is expected to equal true6253 ref is missing6254 is expected to equal false6255Gitlab::AlertManagement::AlertStatusCounts6256 #execute6257 for an unauthorized user6258 returns zero for all statuses6259 for an authorized user6260 returns the correct counts for each status6261 when filtering params are included6262 returns the correct counts for each status6263 when search param is included6264 returns the correct countss6265Gitlab::Ci::Parsers::Security::Sast6266 #parse!6267 when passing valid report6268 report_format: :sast, report_version: "15.0.0", scanner_length: 1, finding_length: 5, identifier_length: 6, file_path: "groovy/src/main/java/com/gitlab/security_products/tests/App.groovy", start_line: 47, end_line: 47, primary_identifiers_length: nil6269 parses all identifiers and findings6270 generates expected location6271 generates expected metadata_version6272 report_format: :sast_semgrep_for_multiple_findings, report_version: "15.0.4", scanner_length: 1, finding_length: 2, identifier_length: 6, file_path: "app/app.py", start_line: 39, end_line: nil, primary_identifiers_length: 26273 parses all identifiers and findings6274 generates expected location6275 generates expected metadata_version6276 when parsing an empty report6277 is expected to be empty6278TestSuiteComparerEntity6279 #as_json6280 when head suite has a newly failed test case which does not exist in base6281 contains correct compared test suite details6282 when head suite has a new error test case which does not exist in base6283 contains correct compared test suite details6284 when head suite still has a failed test case which failed in base6285 contains correct compared test suite details6286 when head suite has a success test case which failed in base6287 contains correct compared test suite details6288 when head suite has suite error6289 contains suite error for head suite6290 when base suite has suite error6291 contains suite error for head suite6292 when base and head suite both have suite errors6293 contains suite error for head suite6294BaseDiscussionEntity6295 exposes correct attributes6296 when is LegacyDiffDiscussion6297 exposes correct attributes6298 when diff file is present6299 exposes diff file attributes6300 when issues are disabled in a project6301 does not show a new issues path6302Gitlab::Ci::Status::Created6303 #text6304 is expected to eq "created"6305 #label6306 is expected to eq "created"6307 #icon6308 is expected to eq "status_created"6309 #favicon6310 is expected to eq "favicon_status_created"6311 #group6312 is expected to eq "created"6313 #details_path6314 is expected to be nil6315Gitlab::SlashCommands::GlobalSlackHandler6316 # order random6317 does not serve a request if token is invalid6318 with valid token6319 calls command handler if project alias is valid6320 returns error if project alias not found6321 returns authorization request6322 calls help presenter6323 with incident declare command6324 calls command handler with no project alias6325Gitlab::Database::BackgroundMigrationJob6326 is expected to be a kind of Gitlab::Database::SharedModel(abstract)6327 behaves like having unique enum values6328 has unique values in "status"6329 .for_migration_execution6330 returns jobs matching class_name and arguments6331 normalizes class names by removing leading ::6332 .mark_all_as_succeeded6333 marks all matching jobs as succeeded6334 normalizes class_names by removing leading ::6335 returns the number of jobs updated6336 when previous matching jobs have already succeeded6337 does not update non-pending jobs6338 #class_name=6339 when the class_name is given without the leading ::6340 sets the class_name to the given value6341 when the class_name is given with the leading ::6342 removes the leading :: when setting the class_name6343 when the value is nil6344 sets the class_name to nil6345 when the values is blank6346 sets the class_name to the given value6347OptionallySearch6348 .search6349 raises NotImplementedError6350 .optionally_search6351 when a query is given6352 delegates to the search method6353 when an option is provided6354 delegates to the search method6355 when no query is given6356 returns the current relation6357 when an empty query is given6358 returns the current relation6359ProjectRepository6360 associations6361 is expected to belong to shard required: false6362 is expected to belong to project required: false6363 behaves like shardable scopes6364 .for_repository_storage6365 returns the objects for a given repository storage6366 .excluding_repository_storage6367 returns the objects excluding the given repository storage6368 .for_shard6369 returns the objects for a given shard6370 .find_project6371 finds project by disk path6372 returns nil when it does not find the project6373Groups::GroupLinks::DestroyService#execute6374 when authorizing by user6375 single link6376 destroys the link6377 with skip_group_share_unlink_auth_refresh feature flag disabled6378 revokes project authorization6379 with skip_group_share_unlink_auth_refresh feature flag enabled6380 maintains project authorization6381 multiple links6382 with skip_group_share_unlink_auth_refresh feature flag disabled6383 updates project authorization once per group6384 with skip_group_share_unlink_auth_refresh feature flag enabled6385 does not update project authorization once per group6386 when skipping authorization6387 with provided group and owner6388 destroys the link6389 without providing group or owner6390 destroys the link6391BranchesHelper6392 #access_levels_data6393 when access_levels is nil6394 is expected to be empty6395 when access levels are provided6396 returns the correct array6397 when an access level tied to a deploy key is provided6398 returns the correct array6399Gitlab::RequestContext6400 is expected to have attributes {:client_ip => nil, :request_start_time => nil, :start_thread_cpu_time => nil}6401 .start_request_context6402 sets the client IP6403 sets the spam params6404 sets the request start time6405 .start_thread_context6406 sets the thread cpu time6407 sets the thread memory allocations6408 #request_deadline6409 sets the time to 57 seconds in the future6410 returns nil if there is no start time6411 #ensure_request_deadline_not_exceeded!6412 does not raise an error when there was no deadline6413 does not raise an error if the deadline is in the future6414 raises an error when the deadline is in the past6415RuboCop::Cop::ActiveModelErrorsDirectManipulation6416 # order random6417 when modifying errors.messages6418 registers an offense6419 when assigning6420 registers an offense6421 when modifying errors.details6422 registers an offense6423 when assigning6424 registers an offense6425 when modifying errors6426 registers an offense6427 when assigning6428 registers an offense6429MailScheduler::IssueDueWorker6430 #perform6431 sends emails for open issues due tomorrow in the project specified6432TriggerVariableEntity6433 exposes the variable key6434 when user has access to the value6435 when user is maintainer6436 exposes the variable value6437 when user is owner6438 exposes the variable value6439 when user does not have access to the value6440 does not expose the variable value6441RepositoryLanguage6442 associations6443 is expected to belong to project required: false6444 is expected to belong to programming_language required: false6445 validations6446 is expected to allow :share to be ‹0›6447 is expected to allow :share to be ‹100.0›6448 is expected not to allow :share to be ‹100.1›6449Ci::Runners::ReconcileExistingRunnerVersionsService#execute6450 with RunnerUpgradeCheck recommending 14.0.26451 with runner with new version6452 creates and updates expected ci_runner_versions entries6453 with orphan ci_runner_version6454 deletes orphan ci_runner_versions entry6455 with no runner version changes6456 does not modify ci_runner_versions entries6457 with failing version check6458 makes no changes to ci_runner_versions6459 integration testing with Gitlab::Ci::RunnerUpgradeCheck6460 does not modify ci_runner_versions entries6461Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker6462 #import6463 imports the issues and diff notes6464 #importers6465 when optional stage single_endpoint_notes_import is enabled6466 includes single endpoint diff notes importer6467 when optional stage single_endpoint_notes_import is disabled6468 includes default diff notes importer6469Gitlab::Ci::Config::Entry::Workflow6470 validations6471 when work config value is a string6472 #valid?6473 is invalid6474 attaches an error specifying that workflow should point to a hash6475 #value6476 returns the invalid configuration6477 when work config value is a hash6478 #valid?6479 is valid6480 attaches no errors6481 #value6482 returns the config6483 with an invalid key6484 #valid?6485 is invalid6486 attaches an error specifying the unknown key6487 #value6488 returns the invalid configuration6489 with workflow name6490 with a blank name6491 is invalid6492 returns error about invalid name6493 with too long name6494 is invalid6495 returns error about invalid name6496 when name is nil6497 is valid6498 when name is not provided6499 is valid6500 .default6501 is nil6502BlobViewer::PackageJson6503 #package_name6504 returns the package name6505 yarn6506 #package_url6507 returns the package URL6508 #manager_url6509 returns the manager URL6510 when json is an array6511 does not raise an error6512 npm6513 #package_url6514 returns the package URL6515 #manager_url6516 returns the manager URL6517 #package_type6518 returns "package"6519 when package.json has "private": true6520 #package_url6521 when the homepage has a valid URL6522 returns homepage URL6523 when the homepage has an invalid URL6524 returns nil6525 #package_type6526 returns "private package"6527sidekiq.rake6528 gitlab:sidekiq:migrate_jobs:schedule rake task6529 behaves like migration rake task6530 runs the migrator with a mapping of workers to queues6531 gitlab:sidekiq:migrate_jobs:retry rake task6532 behaves like migration rake task6533 runs the migrator with a mapping of workers to queues6534 gitlab:sidekiq:migrate_jobs:queued rake task6535 runs the migrator with a mapping of workers to queues6536Discussions::CaptureDiffNotePositionsService6537 when merge request has a discussion6538 and position of the discussion changed on target branch head6539 diff positions are created for the first notes of the discussions6540Banzai::Filter::MarkdownFilter6541 markdown engine from context6542 finds the correct engine6543 defaults to the DEFAULT_ENGINE6544 raise error for unrecognized engines6545 code block6546 using CommonMark6547 adds language to lang attribute when specified6548 does not add language to lang attribute when not specified6549 works with utf8 chars in language6550 works with additional language parameters6551 source line position6552 using CommonMark6553 defaults to add data-sourcepos6554 disables data-sourcepos6555 footnotes in tables6556 processes footnotes in table cells6557Ci::Runners::ProcessRunnerVersionUpdateService6558 #execute6559 with upgrade check returning error6560 does not update ci_runner_versions records6561 when fetching runner releases is disabled6562 does not update ci_runner_versions records6563 with successful result from upgrade check6564 with no existing ci_runner_version record6565 creates ci_runner_versions record6566 with existing ci_runner_version record6567 updates ci_runner_versions record6568 with up-to-date ci_runner_version record6569 does not update ci_runner_versions record6570Pages::DestroyDeploymentsService6571 destroys all deployments of the project6572 destroy only deployments older than last deployment if it is provided6573Gitlab::Metrics::Subscribers::RailsCache6574 when receiving multiple instrumentation hits in a transaction6575 does not raise InvalidLabelSetError error6576 #cache_read6577 increments the cache_read duration6578 with a transaction6579 with hit event6580 when super operation is fetch6581 does not increment cache read miss total6582 with miss event6583 increments the cache_read_miss total6584 when super operation is fetch6585 does not increment cache read miss total6586 #cache_read_multi6587 observes read_multi duration6588 with a transaction6589 observes multi-key count6590 with no transaction6591 does not observes multi-key count6592 #cache_write6593 observes write duration6594 #cache_delete6595 observes delete duration6596 #cache_exist?6597 observes the exists duration6598 #cache_fetch_hit6599 without a transaction6600 returns6601 with a transaction6602 increments the cache_read_hit count6603 #cache_generate6604 without a transaction6605 returns6606 with a transaction6607 increments the cache_fetch_miss count and cache_read_miss total6608 #observe6609 without a transaction6610 returns6611 with a transaction6612 observes cache metric6613 increments the operations total6614Mutations::Clusters::AgentTokens::Revoke6615 is expected to eq "ClusterAgentTokenRevoke"6616 is expected to require graphql authorizations :admin_cluster6617 #resolve6618 user does not have permission6619 does not revoke the token6620 user has permission6621 revokes the token6622Gitlab::Audit::CiRunnerTokenAuthor6623 .initialize6624 with runner_authentication_token6625 returns CiRunnerTokenAuthor with expected attributes6626 with runner_registration_token6627 returns CiRunnerTokenAuthor with expected attributes6628 with runner token missing6629 raises ArgumentError6630 #full_path6631 with instance registration token6632 returns correct url6633 with group registration token6634 returns correct url6635 with project registration token6636 returns correct url6637Gitlab::ImportExport::SnippetsRepoSaver6638 bundle a project Git repo6639 creates the snippet bundles dir if not exists6640 when project does not have any snippet6641 does not perform any action6642 when project has snippets6643 calls the SnippetRepoSaver for each snippet6644 when one snippet cannot be saved6645 returns false and do not process other snippets6646layouts/nav/sidebar/_profile6647 has a link to access tokens6648 behaves like has nav sidebar6649 has collapsed nav sidebar on mobile6650 behaves like sidebar includes snowplow attributes6651 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"user_side_navigation\"][data-track-property=\"user_side_navigation\"]"6652 when personal access tokens are disabled6653 does not have a link to access tokens6654Gitlab::Auth::Crowd::Authentication6655 login6656 finds the user if authentication is successful6657 is false if the user does not exist6658 is false if the authentication fails6659 fails when crowd is disabled6660 fails if no login is supplied6661 fails if no password is supplied6662Resolvers::SavedReplyResolver6663 # order random6664 feature flag disabled6665 does not return saved reply6666 feature flag enabled6667 returns users saved reply6668 returns nil when saved reply is not found6669 returns nil when saved reply is another users6670Mutations::Environments::Stop6671 # order random6672 #resolve6673 when service execution succeeded6674 returns no errors6675 stops the environment6676 when service cannot change the status without force6677 returns an error6678 when force is set to true6679 and state transition would fail without force6680 stops the environment6681 when user is reporter who does not have permission to access the environment6682 raises an error6683Gitlab::ZoomLinkExtractor6684 #links6685 text: "issue text https://zoom.us/j/123 and https://zoom.us/s/1123433", links: ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]6686 is expected to eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]6687 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]6688 is expected to eq ["https://zoom.us/j/1123433"]6689 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]6690 is expected to eq ["https://zoom.us/my/1123433"]6691 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]6692 is expected to eq ["https://gitlab.zoom.us/s/1123433"]6693 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]6694 is expected to eq ["https://gitlab.zoom.us/j/1123433"]6695 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]6696 is expected to eq ["https://gitlab.zoom.us/my/1123433"]6697 #match?6698 is true when a zoom link found6699 is false when no zoom link found6700ServiceDesk::CustomEmailVerifications::CreateService6701 # order random6702 #execute6703 behaves like a verification process that exits early6704 aborts verification process and exits early6705 when feature flag :service_desk_custom_email is disabled6706 behaves like a verification process that exits early6707 aborts verification process and exits early6708 when service desk setting exists6709 aborts verification process and exits early6710 when user has maintainer role in project6711 initiates verification process successfully6712 when providing invalid SMTP credentials6713 behaves like a verification process with ramp up error6714 aborts verification process6715 behaves like a verification process with ramp up error6716 aborts verification process6717 behaves like a verification process with ramp up error6718 aborts verification process6719BulkImports::Pipeline::Runner6720 pipeline runner6721 when entity is not marked as failed6722 runs pipeline extractor, transformer, loader6723 when extracted data has multiple pages6724 updates tracker information and runs pipeline again6725 when the exception BulkImports::NetworkError is raised6726 when exception is retriable6727 raises the exception BulkImports::RetryPipelineError6728 when exception is not retriable6729 behaves like failed pipeline6730 logs import failure6731 when pipeline is marked to abort on failure6732 logs a warn message and marks entity and tracker as failed6733 when pipeline is not marked to abort on failure6734 does not mark entity as failed6735 when a retriable BulkImports::NetworkError exception is raised while extracting the next page6736 raises the exception BulkImports::RetryPipelineError6737 when the exception StandardError is raised6738 behaves like failed pipeline6739 logs import failure6740 when pipeline is marked to abort on failure6741 logs a warn message and marks entity and tracker as failed6742 when pipeline is not marked to abort on failure6743 does not mark entity as failed6744 when entity is marked as failed6745 logs and returns without execution6746Ci::JobTokenScope::RemoveProjectService6747 #execute6748 behaves like editable job token scope6749 when user does not have permissions to edit the job token scope6750 behaves like returns error6751 returns an error response6752 when user has permissions to edit the job token scope6753 when target project is not provided6754 behaves like returns error6755 returns an error response6756 when target project is provided6757 when user does not have permissions to read the target project6758 behaves like returns error6759 returns an error response6760 when user has permissions on source and target project6761 behaves like removes project6762 removes the project from the scope6763 when token scope is disabled6764 behaves like removes project6765 removes the project from the scope6766 when target project is same as the source project6767 behaves like returns error6768 returns an error response6769 when target project is not in the job token scope6770 behaves like returns error6771 returns an error response6772Gitlab::GithubImport::Importer::Attachments::IssuesImporter6773 # order random6774 #id_for_already_imported_cache6775 is expected to eq 11276776 #object_type6777 is expected to eq :issue_attachment6778 #sequential_import6779 imports each project issue attachments6780 when issue is already processed6781 doesn't import this issue attachments6782 #sidekiq_worker_class6783 is expected to eq Gitlab::GithubImport::Attachments::ImportIssueWorker6784 #collection_method6785 is expected to eq :issue_attachments6786Gitlab::SidekiqQueue6787 #drop_jobs!6788 when there are no matching jobs6789 when the queue is not processed in time6790 returns a non-completion flag, the number of jobs deleted, and the remaining queue size6791 when the queue is processed in time6792 returns a completion flag, the number of jobs deleted, and the remaining queue size6793 when there are matching jobs6794 when the queue is not processed in time6795 returns a non-completion flag, the number of jobs deleted, and the remaining queue size6796 when the queue is processed in time6797 returns a completion flag, the number of jobs deleted, and the remaining queue size6798 when there are jobs matching the class name6799 when the queue is not processed in time6800 returns a non-completion flag, the number of jobs deleted, and the remaining queue size6801 when the queue is processed in time6802 returns a completion flag, the number of jobs deleted, and the remaining queue size6803 when there are no valid metadata keys passed6804 raises NoMetadataError6805 when the queue does not exist6806 raises InvalidQueueError6807Sidebars::YourWork::Panel6808 # order random6809 implements #super_sidebar_context_header6810 behaves like a panel with uniquely identifiable menu items6811 all menu_items have unique item_id6812 all menu_items have an item_id6813Gitlab::SlashCommands::Presenters::Run6814 #present6815 when no builds are present6816 returns an error6817 when a responder could be found6818 returns the output for a scheduled pipeline6819 when a responder could not be found6820 returns an error6821 #unsupported_chat_service6822 returns an ephemeral response6823 #failed_to_schedule6824 returns an ephemeral response6825Gitlab::GrapeLogging::Loggers::UrgencyLogger6826 .parameters6827 request_env: {}, expected_parameters: {}6828 is expected to eq {}6829 request_env: {"api.endpoint"=>#<struct options={}, namespace="">}, expected_parameters: {}6830 is expected to eq {}6831 request_env: {"api.endpoint"=>#<struct options={:for=>"something weird"}, namespace="">}, expected_parameters: {}6832 is expected to eq {}6833 request_env: {"api.endpoint"=>#<struct options={:for=>#<Class:0x00007f67a6d0eea8>, :path=>[]}, namespace="">}, expected_parameters: {:request_urgency=>:default, :target_duration_s=>1}6834 is expected to eq {:request_urgency=>:default, :target_duration_s=>1}6835 request_env: {"api.endpoint"=>#<struct options={:for=>#<Class:0x00007f67a6cfe030>, :path=>["test"]}, namespace="/testing">}, expected_parameters: {:request_urgency=>:high, :target_duration_s=>0.25}6836 is expected to eq {:request_urgency=>:high, :target_duration_s=>0.25}6837Gitlab::Ci::YamlProcessor::Dag6838 when it is a regular pipeline6839 returns ordered jobs6840 when there is a circular dependency6841 raises TSort::Cyclic6842 when there are some missing jobs6843 ignores the missing ones and returns in a valid order6844SystemHooksService6845 #execute_hooks_for6846 model_name: :group_member, builder_class: Gitlab::HookData::GroupMemberBuilder6847 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6848 model_name: :group, builder_class: Gitlab::HookData::GroupBuilder6849 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6850 model_name: :project_member, builder_class: Gitlab::HookData::ProjectMemberBuilder6851 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6852 model_name: :user, builder_class: Gitlab::HookData::UserBuilder6853 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6854 model_name: :project, builder_class: Gitlab::HookData::ProjectBuilder6855 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6856 model_name: :key, builder_class: Gitlab::HookData::KeyBuilder6857 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6858 model_name: :deploy_key, builder_class: Gitlab::HookData::KeyBuilder6859 builds the data with the relevant builder class and then calls #execute_hooks with the obtained data6860 #execute_hooks6861 executes system hooks with the given data6862 executes FileHook with the given data6863Tooling::FastQuarantine6864 # order random6865 #identifiers6866 when the fast quarantine file is empty6867 returns []6868 when the fast quarantine file is not empty6869 returns parsed and sanitized lines6870 when reading the file raises an error6871 returns []6872 memoization6873 memoizes the identifiers list6874 #skip_example?6875 skipping example by id6876 skips example by id6877 skipping example by line6878 when example location matches6879 skips example by line6880 when example group location matches6881 skips example by line6882 when nested parent example group location matches6883 skips example by line6884 skipping example by file6885 when example file_path matches6886 skips example by file6887 when example group file_path matches6888 skips example by file6889 when nested parent example group file_path matches6890 skips example by file6891 #initialize6892 when fast_quarantine_path does not exist6893 prints a warning6894 when fast_quarantine_path exists6895 does not raise an error6896TestHooks::SystemService6897 #execute6898 hook with not implemented test6899 returns error message6900 push_events6901 executes hook6902 tag_push_events6903 executes hook6904 repository_update_events6905 executes hook6906 merge_requests_events6907 returns error message if the user does not have any repository with a merge request6908 executes hook6909RuboCop::CopTodo6910 # order random6911 #autocorrectable?6912 when found in rubocop registry6913 when autocorrectable6914 is expected to be truthy6915 when not autocorrectable6916 is expected to be falsey6917 when not found in rubocop registry6918 is expected to be falsey6919 #generate?6920 when empty todo6921 is expected to eq false6922 when previously disabled6923 is expected to eq true6924 when in grace period6925 is expected to eq true6926 with offenses recorded6927 is expected to eq true6928 #initialize6929 initializes a cop todo6930 #record6931 records offenses6932 #to_yaml6933 when autocorrectable6934 is expected to eq "---\n# Cop supports --autocorrect.\nCop/Rule:\n"6935 when previously disabled6936 is expected to eq "---\nCop/Rule:\n # Offense count: 3\n # Temporarily disabled due to too many offenses\n Enabled: false\n Exclude:\n - 'a.rb'\n - 'b.rb'\n"6937 with grace period6938 is expected to eq "---\nCop/Rule:\n Details: grace period\n Exclude:\n - 'a.rb'\n - 'b.rb'\n"6939 with multiple files6940 sorts excludes alphabetically6941Gitlab::SlashCommands::IssueSearch6942 #execute6943 when the user has no access6944 only returns the open issues6945 the user has access6946 returns all results6947 without hits on the query6948 returns an empty collection6949 self.match6950 matches the query6951Snippets::UpdateRepositoryStorageService6952 #execute6953 when the move succeeds6954 moves the repository to the new storage and unmarks the repository as read-only6955 when the filesystems are the same6956 updates the database without trying to move the repostory6957 when the move fails6958 unmarks the repository as read-only without updating the repository storage6959 when the cleanup fails6960 sets the correct state6961 when the checksum does not match6962 unmarks the repository as read-only without updating the repository storage6963 when the repository move is finished6964 is idempotent6965 when the repository move is failed6966 is idempotent6967shared/nav/_sidebar.html.haml6968 when sidebar has a scope menu6969 renders the scope menu6970 when sidebar does not have a scope menu6971 when sidebar has a custom scope menu partial defined6972 renders the custom partial6973Ci::Catalog::ResourcesHelper6974 # order random6975 #js_ci_catalog_data6976 returns catalog data6977 #can_view_namespace_catalog?6978 user cannot view the Catalog in CE regardless of permissions6979Gitlab::GithubImport::Importer::PullRequests::MergedByImporter6980 # order random6981 when the merger user cannot be mapped to a gitlab user6982 behaves like adds a note referencing the merger user6983 adds a note referencing the merger user6984 when original user cannot be found on github6985 behaves like adds a note referencing the merger user6986 adds a note referencing the merger user6987 when the merger user can be mapped6988 assigns the merged by user when mapped6989 when the merger user is not provided6990 adds a note referencing the merger user6991IncidentManagement::IssuableEscalationStatuses::AfterUpdateService6992 # order random6993 with status attributes6994 adds a status change system note6995 adds a status change timeline event6996 with non-status attributes6997 does not add a status change system note or timeline event6998Gitlab::ImportExport::DesignRepoSaver6999 bundle a design Git repo7000 bundles the repo successfully7001 when the repo is empty7002 bundles the repo successfully7003Mutations::Ci::PipelineSchedule::VariableInputType7004 # order random7005 is expected to contain exactly "key", "value", and "variableType"7006 is expected to eq "PipelineScheduleVariableInput"7007Resolvers::DeploymentsResolver7008 # order random7009 #resolve7010 finds the deployment7011 finds the deployment when status matches7012 does not find the deployment when status does not match7013 transforms order_by for finder7014UserSerializer7015 serializer with merge request context7016 returns a user with can_merge option7017Captcha::CaptchaVerificationService7018 #execute7019 when there is no captcha_response7020 returns false7021 when there is a captcha_response7022 returns false7023 has a request method which returns an object with the ip address #remote_ip7024Gitlab::UUID7025 .v57026 in development7027 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"7028 in test7029 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"7030 in staging7031 is expected to eq "dd190b37-7754-5c7c-80a0-85621a5823ad"7032 in production7033 is expected to eq "4961388b-9d8e-5da0-a499-3ef5da58daf0"7034 v5?7035 test_string: "not even a uuid", is_uuid_v5: false7036 is expected to equal false7037 test_string: "this-seems-like-a-uuid", is_uuid_v5: false7038 is expected to equal false7039 test_string: "thislook-more-5lik-eava-liduuidbutno", is_uuid_v5: false7040 is expected to equal false7041 test_string: "9f470438-db0f-37b7-9ca9-1d47104c339a", is_uuid_v5: false7042 is expected to equal false7043 test_string: "9f470438-db0f-47b7-9ca9-1d47104c339a", is_uuid_v5: false7044 is expected to equal false7045 test_string: "9f470438-db0f-57b7-9ca9-1d47104c339a", is_uuid_v5: true7046 is expected to equal true7047Ci::CreatePipelineService7048 merge requests handling7049 when pushing a change7050 when a merge request already exists7051 does not create a pipeline7052 when no merge request exists7053 does create a pipeline7054Ci::DownloadableArtifactEntity7055 #as_json7056 contains required fields7057 when user cannot read job artifact7058 returns only artifacts readable by user7059Gitlab::JiraImport::LabelsImporter7060 #execute7061 when label is missing from jira import7062 raises error7063 when jira import label exists7064 when labels are returned from jira7065 caches import label7066 calls Gitlab::JiraImport::HandleLabelsService7067 when there are no labels to be handled7068 when the labels field is empty7069 behaves like no labels handling7070 does not call Gitlab::JiraImport::HandleLabelsService7071 when the labels field is missing7072 behaves like no labels handling7073 does not call Gitlab::JiraImport::HandleLabelsService7074 when the isLast argument is missing7075 behaves like no labels handling7076 does not call Gitlab::JiraImport::HandleLabelsService7077Packages::MarkPackageFilesForDestructionWorker7078 #perform7079 with a valid package id7080 marks all package files as pending_destruction7081 behaves like an idempotent worker7082 is labeled as idempotent7083 performs multiple times sequentially without raising an exception7084 with an invalid package id7085 marks no packag files7086 behaves like an idempotent worker7087 is labeled as idempotent7088 performs multiple times sequentially without raising an exception7089 with a nil package id7090 marks no packag files7091 behaves like an idempotent worker7092 is labeled as idempotent7093 performs multiple times sequentially without raising an exception7094Gitlab::FogbugzImport::Client7095 retrieves user_map with one user7096 retrieves user_map with two users7097Integrations::ExternalWiki7098 Validations7099 when integration is active7100 is expected to validate that :external_wiki_url cannot be empty/falsy7101 behaves like issue tracker integration URL attribute7102 is expected to allow :external_wiki_url to be ‹"https://example.com"›7103 is expected not to allow :external_wiki_url to be ‹"example.com"›7104 is expected not to allow :external_wiki_url to be ‹"ftp://example.com"›7105 is expected not to allow :external_wiki_url to be ‹"herp-and-derp"›7106 when integration is inactive7107 is expected not to validate that :external_wiki_url cannot be empty/falsy7108 test7109 the URL is not reachable7110 is not successful7111 the URL is reachable7112 is successful7113Ci::PipelineBridgeStatusService7114 #execute7115 when pipeline has upstream bridge7116 calls inherit_status_from_downstream on upstream bridge7117 when bridge job status raises state machine errors7118 tracks the exception7119Gitlab::SQL::RecursiveCTE7120 #to_arel7121 generates an Arel relation for the CTE body7122 #alias_to7123 returns an alias for the CTE7124 replaces dots with an underscore7125 #apply_to7126 applies a CTE to an ActiveRecord::Relation7127 behaves like CTE with MATERIALIZED keyword examples7128 adding MATERIALIZE to the CTE7129 when PG version is <127130 does not add MATERIALIZE keyword7131 when PG version is >=127132 adds MATERIALIZE keyword7133 when version is higher than 127134 adds MATERIALIZE keyword7135 when materialized is disabled7136 does not add MATERIALIZE keyword7137Gitlab::RouteMap7138 #initialize7139 when the data is not YAML7140 raises an error7141 when the data is not a YAML array7142 raises an error7143 when an entry is not a hash7144 raises an error7145 when an entry does not have a source key7146 raises an error7147 when an entry does not have a public key7148 raises an error7149 when an entry source is not a valid regex7150 raises an error7151 when all is good7152 returns a route map7153 #public_path_for_source_path7154 returns the public path for a provided source path7155 malicious regexp7156 takes under a second7157Gitlab::GithubImport::Clients::Proxy7158 # order random7159 is expected to delegate #user to the #client object7160 is expected to delegate #each_object to the #client object7161 is expected to delegate #octokit to the #client object7162 #count_by7163 when remove_legacy_github_client FF is enabled7164 when value is cached7165 returns repository count from cache7166 when value is not cached7167 returns repository count7168 when remove_legacy_github_client FF is disabled7169 returns nil7170 #repos7171 when remove_legacy_github_client FF is enabled7172 fetches repos with Gitlab::GithubImport::Client (GraphQL API)7173 when remove_legacy_github_client FF is disabled7174 fetches repos with Gitlab::LegacyGithubImport::Client7175 with filter params7176 fetches repos with Gitlab::LegacyGithubImport::Client7177StubMethodCalls7178 #stub_method7179 stubs the method response7180 when calling it on an already stubbed method7181 stubs correctly7182 methods that accept arguments7183 stubs correctly7184 methods that use named arguments7185 stubs correctly7186 stubbing non-existent method7187 stubs correctly7188 #restore_original_method7189 restores original behaviour7190 method is not stubbed7191 is expected to raise NotImplementedError with "some_other_method has not been stubbed on #<Class:0x00007f67c7504390>"7192 #restore_original_methods7193 restores original behaviour7194Mutations::AlertManagement::HttpIntegration::Update7195 is expected to require graphql authorizations :admin_operations7196 #resolve7197 user has sufficient access to project7198 when HttpIntegrations::UpdateService responds with success7199 returns the integration with no errors7200 when HttpIntegrations::UpdateService responds with an error7201 returns errors7202 when resource is not accessible to the user7203 raises an error if the resource is not accessible to the user7204RedisCommands::Recorder7205 #initialize7206 with a block7207 records Redis commands7208 without block7209 only initializes the recorder7210 #record7211 records Redis commands7212 does not record commands before the call7213 refreshes recording after reinitialization7214 Pattern recording7215 records only matching keys7216 #by_command7217 returns only matching commands7218 #count7219 returns the number of recorded commands7220Sidebars::Admin::Menus::CiCdMenu7221 # order random7222 behaves like Admin menu with sub menus7223 contains submemus7224 behaves like Admin menu7225 renders the correct link7226 renders the correct title7227 renders the correct icon7228 renders the separator if needed7229 #render?7230 when user is admin7231 renders7232 when user is not admin7233 does not render7234 when user is not logged in7235 does not render7236Resolvers::ErrorTracking::SentryDetailedErrorResolver7237 is expected to have nullable GraphQL type SentryDetailedError7238 #resolve7239 fetches the data via the sentry API7240 when error matches7241 resolves to a detailed error7242 assigns the gitlab project7243 when id does not match issue7244 resolves to nil7245Achievements::RevokeService7246 # order random7247 #execute7248 when user does not have permission7249 returns an error7250 when user has permission7251 revokes an achievement7252 when the achievement has already been revoked7253 returns the correct error7254 when the user achievement fails to save7255 returns the correct error7256Banzai::Filter::TruncateSourceFilter7257 when markdown belongs to a blob7258 does nothing when limit is unspecified7259 truncates normally when limit specified7260 when markdown belongs to a field (non-blob)7261 does nothing when limit is greater7262 truncates to the default when limit is unspecified7263 prepends the user message7264 does nothing to a short-enough text7265 truncates UTF-8 text by bytes, on a character boundary7266Gitlab::ImportExport::AvatarSaver7267 saves a project avatar7268 is fine not to have an avatar7269Gitlab::Database::Partitioning::List::LockingConfiguration7270 # order random7271 #lock_ordering_for7272 is the intersection with the locking specification, in the order of the specification7273 raises if a table name with schema is passed7274 #locking_statement_for7275main: -- quote_table_name("table_1")7276main: -> 0.0002s7277main: -- quote_table_name("table_1")7278main: -> 0.0001s7279 only includes locking information for tables in the locking specification7280 is nil when none of the tables match the lock configuration7281main: -- quote_table_name("table_2")7282main: -> 0.0002s7283main: -- quote_table_name("table_3")7284main: -> 0.0001s7285 is a lock tables statement7286 raises if a table name with schema is passed7287groups/milestones/index.html.haml7288 behaves like milestone empty states7289 with no milestones7290 shows empty state7291 does not show tabs or searchbar7292 with no open milestones7293 shows tabs and searchbar7294 shows empty state7295 with no closed milestones7296 shows tabs and searchbar7297 shows empty state on closed milestones7298Gitlab::SidekiqMiddleware::DuplicateJobs::Client7299 with until_executing strategy7300 behaves like client duplicate job7301 #call7302 adds a correct duplicate tag to the jobs7303 without scheduled deduplication7304 does not mark a job that's scheduled in the future as a duplicate7305 with scheduled deduplication7306 adds a correct duplicate tag to the jobs7307 with until_executed strategy7308 behaves like client duplicate job7309 #call7310 adds a correct duplicate tag to the jobs7311 without scheduled deduplication7312 does not mark a job that's scheduled in the future as a duplicate7313 with scheduled deduplication7314 adds a correct duplicate tag to the jobs7315Gitlab::Diff::ParallelDiff7316 #parallelize7317 returns an array of arrays containing the parsed diff7318ResourceEvents::AbuseReportEvent7319 # order random7320 validations7321 is expected to be valid7322 is expected to validate that :action cannot be empty/falsy7323 #success_message7324 returns a success message for the action7325 associations7326 is expected to belong to abuse_report required: true7327 is expected to belong to user optional: true7328BulkImports::UsersMapper7329 #map7330 when value for specified key exists7331 returns a map of source & destination user ids from redis7332 when value for specified key does not exist7333 returns default value7334 #default_user_id7335 returns current user id7336 #include?7337 when source user id is present in the map7338 returns true7339 when source user id is missing in the map7340 returns false7341 #cache_source_user_id7342 caches provided source & destination user ids in redis7343Gitlab::SidekiqSignals7344 .install7345 not a process group leader7346 does nothing7347 as a process group leader7348 installs its own signal handlers for TERM and INT only7349 installs a forwarding signal handler for INT7350 raises if sidekiq no longer traps SIGINT7351 installs a forwarding signal handler for TERM7352 raises if sidekiq no longer traps SIGTERM7353Pajamas::CheckboxTagComponent7354 with default options7355 renders unchecked checkbox with value of `1`7356 does not render help text7357 with custom options7358 renders checked checkbox with value of `yes`7359 adds CSS class to label7360 with `help_text` slot7361 renders unchecked checkbox with value of `1`7362 renders help text7363Gitlab::Graphql::Loaders::BatchLfsOidLoader7364 #find7365 batch-resolves LFS blob IDs7366Users::BannedUser7367 relationships7368 is expected to belong to user required: false7369 validations7370 is expected to validate that :user cannot be empty/falsy7371 validates uniqueness of banned user id7372Gitlab::GithubImport::Representation::PullRequestReview7373 .from_api_response7374 does not set the user if the response did not include a user7375 behaves like a PullRequest review7376 returns an instance of PullRequest7377 .from_json_hash7378 does not set the user if the response did not include a user7379 does not fail when submitted_at is blank7380 behaves like a PullRequest review7381 returns an instance of PullRequest7382 #github_identifiers7383 returns a hash with needed identifiers7384BulkImports::Groups::Graphql::GetGroupQuery7385 has a valid query7386 #variables7387 returns query variables based on entity information7388 #data_path7389 returns data path7390 #page_info_path7391 returns pagination information path7392Gitlab::ConfigChecker::PumaRuggedChecker7393 #check7394 application is not puma7395 is expected to be empty7396 application is puma7397 not multithreaded_puma and rugged API enabled7398 is expected to be empty7399 not multithreaded_puma and rugged API is not enabled7400 is expected to be empty7401 multithreaded_puma and rugged API is not enabled7402 is expected to be empty7403 multithreaded_puma and rugged API is enabled7404 report multi_threaded_puma_with_rugged notices7405Gitlab::Monitor::DemoProjects7406 #primary_keys7407 fetches primary_keys when on SaaS7408 fetches primary_keys when on staging7409 fetches all keys when in the dev or test env7410 falls back on empty array7411ResourceEvents::IssueAssignmentEvent7412 # order random7413 associations7414 is expected to belong to user required: false7415 is expected to belong to issue required: false7416 validations7417 is expected to be valid7418 is expected to validate that :issue cannot be empty/falsy7419Gitlab::SidekiqMiddleware::DeferJobs7420 # order random7421 #call7422 when sidekiq_defer_jobs feature flag is enabled for a worker7423 for the affected worker7424DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestDeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7425DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_UndeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7426 defers the job7427DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestDeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7428DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_UndeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7429DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestDeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7430DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_UndeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7431 increments the counter (FAILED - 1)74331st Try error in ./spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb:46:7434expected: 17435 got: 2.07436(compared using ==)7438RSpec::Retry: 2nd try ./spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb:467439 for other workers7440DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestDeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7441DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_UndeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7442 runs the job normally7443 when sidekiq_defer_jobs feature flag is disabled7444DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestDeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7445DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_UndeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7446 runs the job normally7447FeatureFlagsClientSerializer7448 #represent_token7449 includes feature flags client token7450Gitlab::Ci::Build::Cache7451 .initialize7452 when the cache is an array7453 instantiates an array of cache seeds7454 when the cache is a hash7455 instantiates a cache seed7456 when the cache is an array with files inside hashes7457 instantiates a cache seed7458 #cache_attributes7459 when there are no caches7460 returns an empty hash7461 when there are caches7462 returns the structured attributes for the caches7463HamlLint::Linter::InlineJavaScript7464 haml: "%script", should_report: true7465 is expected to report a lint with message 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)'7466 haml: "%javascript", should_report: false7467 is expected not to report a lint7468 haml: ":javascript", should_report: true7469 is expected to report a lint with message 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)'7470 haml: ":markdown", should_report: false7471 is expected not to report a lint7472Gitlab::GithubGistsImport::Status7473 # order random7474 #fail!7475 sets failed status7476 #start!7477 expires the key7478 #started?7479 checks if status is started7480 #finish!7481 sets finished status7482Types::DurationType7483 presents information as a floating point number7484 accepts integers as input7485 accepts floats as input7486 rejects nil7487Gitlab::Ci::Config::Entry::IdToken7488 # order random7489 when not given an `aud`7490 is invalid7491 when given an unknown keyword7492 is invalid7493 when given `aud` as a string7494 is valid7495 when given `aud` as an array7496 is valid and concatenates the values7497ActiveRecord::QueryRecorder7498 includes duration information7499 printing to the log7500 prints SQL, duration and backtrace, all prefixed with QueryRecorder7501 detecting the right number of calls and their origin7502 detects two separate queries7503Gitlab::DependencyLinker::CargoTomlLinker7504 .support?7505 supports Cargo.toml7506 does not support other files7507 #link7508/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/7509 links dependencies7510/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/7511 does not contain metadata identified as package7512Gitlab::GithubImport::Representation::ExposeAttribute7513 defines a getter method that returns an attribute value7514 #[]7515 returns exposed attributes value using array notation7516 when attribute does not exist7517 returns nil7518 when attribute is not exposed7519 returns nil7520API::Github::Entities7521 API::Github::Entities::User7522 aggregate_failures7523 with avatar7524 is expected to include "http://localhost/uploads/-/system/user/avatar/"7525Constraints::JiraEncodedUrlConstrainer7526 #matches?7527 when there is no /-/jira prefix and no encoded slash7528 is expected to eq false7529 when tree path contains encoded slash7530 is expected to eq false7531 when path has /-/jira prefix7532 is expected to eq true7533 when project_id has encoded slash7534 is expected to eq true7535Import::GithubFailureSerializer7536 # order random7537 represents GithubFailureEntity entities7538 #represent7539 when a single object is being serialized7540 serializes import failure7541 when multiple objects are being serialized7542 serializes array of import failures7543Integrations::HarborSerializers::ArtifactEntity7544 returns the Harbor artifact7545groups/packages/index.html.haml7546 # order random7547 renders vue entrypoint7548 settings path7549 without permission sets empty settings path7550 with permission sets group settings path7551BlobViewer::RouteMap7552 #validation_message7553 calls prepare! on the viewer7554 when the configuration is valid7555 returns nil7556 when the configuration is invalid7557 returns the error message7558Gitlab::Database::Migrations::Observers::BatchDetails7559 # order random7560 meta: {:job_meta=>nil}, expected_keys: ["time_spent"]7561 records expected information to file7562 meta: lazy { { job_meta: job_meta } }, expected_keys: ["time_spent", "min_value", "max_value", "batch_size", "sub_batch_size", "pause_ms"]7563 records expected information to file7564 meta: nil, expected_keys: ["time_spent"]7565 records expected information to file7566Clusters::BuildService7567 #execute7568 when cluster subject is a project7569 sets the cluster_type to project_type7570 when cluster subject is a group7571 sets the cluster_type to group_type7572 when cluster subject is an instance7573 sets the cluster_type to instance_type7574Gitlab::Ci::Ansi2json::Result7575 #size7576 when offset is at the start7577 returns the full size7578 when offset is not zero7579 returns the remaining size7580 #total7581 returns size of stread7582Gitlab::Email::Message::InProductMarketing::Create7583 public methods7584 series: 07585 returns value for series7586 series: 17587 returns value for series7588 series: 27589 returns value for series7590Achievements::AchievementsFinder7591 # order random7592 #execute7593 returns all achievements7594 when ids param provided7595 returns specified achievements7596Banzai::Filter::AsciiDocPostProcessingFilter7597 adds class for elements with data-math-style7598 adds class for elements with data-mermaid-style7599 keeps content when no data-math-style found7600Gitlab::DependencyLinker::Parser::Gemfile7601 #parse7602 returns parsed packages7603 packages respond to name and external_ref accordingly7604Types::UploadType7605 is expected to require graphql authorizations :read_upload7606 has the expected fields7607Gitlab::Diff::InlineDiff7608 #inline_diffs7609 finds the inline diff7610 when lines have multiple changes7611 finds all inline diffs7612Types::ContainerExpirationPolicyKeepEnum7613 behaves like exposing container expiration policy option7614 exposes all options7615 uses all possible options from model7616Gitlab::BatchWorkerContext7617 #arguments7618 returns all the expected arguments in arrays7619 #context_for7620 returns the correct application context for the arguments7621Gitlab::Database::TransactionTimeoutSettings7622 # order random7623 #restore_timeouts7624 resets value7625 #disable_timeouts7626 sets timeouts to 07627Sidebars::Concerns::ContainerWithHtmlOptions7628 #container_html_options7629 includes by default aria-label attribute7630 #collapsed_container_html_options7631 includes by default aria-label attribute7632Types::Ci::TestReportSummaryType7633 is expected to eq "TestReportSummary"7634 contains attributes related to a pipeline test report summary7635Sidebars::Groups::SuperSidebarMenus::PlanMenu7636 # order random7637 has title and sprite_icon7638 defines list of NilMenuItem placeholders7639Sidebars::Projects::SuperSidebarMenus::CodeMenu7640 # order random7641 has title and sprite_icon7642 defines list of NilMenuItem placeholders7643Types::Tree::SubmoduleType7644 is expected to eq "Submodule"7645 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :tree_url7646Atlassian::JiraConnect::Serializers::BaseEntity7647 generates the update_sequence_id7648 with update_sequence_id option7649 uses the custom update_sequence_id7650CommitSignature7651 # order random7652 #signed_by_user7653 when class does not define the signed_by_user method7654 raises a NoMethodError with custom message7655TodosDestroyer::GroupPrivateWorker7656 calls the Todos::Destroy::GroupPrivateService with the params it was given7657Gitlab::Usage::Metrics::Instrumentations::IncomingEmailEncryptedSecretsEnabledMetric7658 # order random7659 behaves like a correct instrumented metric value7660 has correct value7661Sidebars::Projects::Context7662 sets project attribute reader7663TodosDestroyer::DestroyedIssuableWorker7664 calls the Todos::Destroy::DestroyedIssuableService7665#<Class:0x00007f67c1d0be90>7666 # order random7667 has the expected fields7668Gitlab::Usage::Metrics::NamesSuggestions::RelationParsers::HavingConstraints7669 # order random7670 #accept7671 builds correct constraints description7672Types::ContainerRepositoryStatusEnum7673 exposes all statuses7674Types::PermissionTypes::Ci::Runner7675 is expected to have graphql field :assign_runner7676Gitlab::GithubImport::ImportProtectedBranchWorker7677 # order random7678 #import7679 imports protected branch rule7680BulkImports::RetryPipelineError7681 #retry_delay7682 returns retry_delay7683Knapsack report was generated. Preview:7684{7685 "spec/lib/gitlab/git_access_spec.rb": 219.57452289500003,7686 "spec/lib/gitlab/import_export/project/tree_restorer_spec.rb": 115.29177333399997,7687 "spec/lib/gitlab/merge_requests/message_generator_spec.rb": 88.99585229000002,7688 "spec/services/projects/destroy_service_spec.rb": 76.96750154300003,7689 "spec/scripts/lib/glfm/update_specification_spec.rb": 55.91897328999994,7690 "spec/models/todo_spec.rb": 44.060410144,7691 "spec/models/ci/build_trace_chunk_spec.rb": 23.859512704000053,7692 "spec/models/design_management/design_spec.rb": 18.03729187800002,7693 "spec/services/alert_management/process_prometheus_alert_service_spec.rb": 16.75902177399996,7694 "spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb": 31.497577385,7695 "spec/models/sent_notification_spec.rb": 21.720780354000112,7696 "spec/models/design_management/design_at_version_spec.rb": 24.11021033899999,7697 "spec/lib/backup/repositories_spec.rb": 21.600041990999898,7698 "spec/models/resource_label_event_spec.rb": 17.076855988000034,7699 "spec/models/jira_import_state_spec.rb": 13.244440282000141,7700 "spec/lib/banzai/filter/references/user_reference_filter_spec.rb": 15.736254713000108,7701 "spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb": 13.193033811000078,7702 "spec/models/ci/build_dependencies_spec.rb": 13.54027780299998,7703 "spec/models/commit_collection_spec.rb": 16.951386119999825,7704 "spec/lib/api/entities/user_spec.rb": 10.476146255999993,7705 "spec/services/groups/create_service_spec.rb": 10.363853049,7706 "spec/lib/gitlab/database/transaction/observer_spec.rb": 16.223404414000015,7707 "spec/models/commit_range_spec.rb": 14.33947745599994,7708 "spec/lib/gitlab/json_spec.rb": 2.8495156999999836,7709 "spec/models/dev_ops_report/metric_spec.rb": 3.215346423000028,7710 "spec/finders/packages/build_infos_finder_spec.rb": 4.802129746999981,7711 "spec/finders/events_finder_spec.rb": 11.857221057999823,7712 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 8.909155080000119,7713 "spec/policies/work_item_policy_spec.rb": 3.408616807000044,7714 "spec/models/active_session_spec.rb": 5.276545082999974,7715 "spec/services/merge_requests/mergeability/detailed_merge_status_service_spec.rb": 9.125679539000203,7716 "spec/lib/gitlab/ci/config/entry/processable_spec.rb": 1.9268770379999296,7717 "spec/models/ci/build_trace_chunks/fog_spec.rb": 5.717189881999957,7718 "spec/services/ci/create_pipeline_service/parent_child_pipeline_spec.rb": 8.21904983100012,7719 "spec/finders/releases_finder_spec.rb": 6.525923397000042,7720 "spec/models/concerns/each_batch_spec.rb": 9.725382622000097,7721 "spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb": 6.509833928000035,7722 "spec/workers/container_registry/migration/guard_worker_spec.rb": 5.357471626000006,7723 "spec/finders/merge_requests/oldest_per_commit_finder_spec.rb": 8.82260227100005,7724 "spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb": 7.795544520000021,7725 "spec/initializers/load_balancing_spec.rb": 9.771779469999956,7726 "spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb": 7.393421303999958,7727 "spec/services/search/global_service_spec.rb": 8.34496335499989,7728 "spec/tasks/gitlab/artifacts/migrate_rake_spec.rb": 5.685696978000124,7729 "spec/lib/gitlab/jira_import_spec.rb": 2.50409453400016,7730 "spec/policies/ci/pipeline_policy_spec.rb": 7.240549826999995,7731 "spec/lib/grafana/client_spec.rb": 1.6708075149999786,7732 "spec/lib/gitlab/suggestions/commit_message_spec.rb": 3.907138668000016,7733 "spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb": 6.12883825799986,7734 "spec/workers/prune_old_events_worker_spec.rb": 6.541164250000065,7735 "spec/models/integrations/redmine_spec.rb": 1.419162957000026,7736 "spec/lib/gitlab/auth/current_user_mode_spec.rb": 1.9013056250000773,7737 "spec/lib/sidebars/projects/menus/analytics_menu_spec.rb": 2.6657162750000225,7738 "spec/graphql/mutations/container_expiration_policies/update_spec.rb": 3.673788238999805,7739 "spec/models/ci_platform_metric_spec.rb": 3.706936856000084,7740 "spec/models/ci/resource_spec.rb": 5.526413317000106,7741 "spec/policies/base_policy_spec.rb": 1.430186165999885,7742 "spec/finders/design_management/versions_finder_spec.rb": 2.341118126999845,7743 "spec/models/dependency_proxy/manifest_spec.rb": 2.5711785510000027,7744 "spec/lib/bulk_imports/ndjson_pipeline_spec.rb": 1.4294004159999076,7745 "spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb": 0.7915535910001381,7746 "spec/serializers/merge_request_metrics_helper_spec.rb": 4.76277194499994,7747 "spec/lib/gitlab/path_traversal_spec.rb": 1.1596262470000056,7748 "spec/lib/gitlab/ci/config/entry/service_spec.rb": 1.1498870349998924,7749 "spec/services/feature_flags/update_service_spec.rb": 2.1332779030001348,7750 "spec/workers/projects/post_creation_worker_spec.rb": 4.3942003780000505,7751 "spec/components/pajamas/banner_component_spec.rb": 1.0083836830001474,7752 "spec/services/ci/runners/bulk_delete_runners_service_spec.rb": 3.5386738670001705,7753 "spec/services/feature_flags/create_service_spec.rb": 1.832681655999977,7754 "spec/views/layouts/devise.html.haml_spec.rb": 2.3056179430000157,7755 "spec/services/ci/build_report_result_service_spec.rb": 2.697962885000152,7756 "spec/models/packages/debian/group_distribution_key_spec.rb": 0.9935503449999032,7757 "spec/models/concerns/sensitive_serializable_hash_spec.rb": 1.1760298469998816,7758 "spec/models/concerns/sanitizable_spec.rb": 1.0633976110000276,7759 "spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb": 0.8851214799999525,7760 "spec/services/projects/container_repository/destroy_service_spec.rb": 2.449270707000096,7761 "spec/lib/banzai/reference_parser/design_parser_spec.rb": 3.6965086200000314,7762 "spec/models/ci/build_need_spec.rb": 1.8908745530000033,7763 "spec/lib/gitlab/chat/output_spec.rb": 4.03763161400002,7764 "spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb": 4.1132785100001,7765 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb": 1.4834975009998743,7766 "spec/views/layouts/signup_onboarding.html.haml_spec.rb": 1.801319637000006,7767 "spec/workers/bulk_imports/export_request_worker_spec.rb": 1.1412755670000934,7768 "spec/lib/gitlab/ci/pipeline/logger_spec.rb": 1.172415735999948,7769 "spec/services/protected_branches/update_service_spec.rb": 1.1636947760000567,7770 "spec/workers/packages/cleanup/delete_orphaned_dependencies_worker_spec.rb": 0.8753069800000048,7771 "spec/lib/gitlab/ci/config/entry/rules_spec.rb": 0.6464611599999444,7772 "spec/services/clusters/agents/delete_expired_events_service_spec.rb": 2.6856729070000256,7773 "spec/lib/api/entities/release_spec.rb": 3.0811172690000603,7774 "spec/models/concerns/integrations/reset_secret_fields_spec.rb": 0.5676682039998013,7775 "spec/lib/safe_zip/extract_spec.rb": 0.6318888409998635,7776 "spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb": 3.2541437209999913,7777 "spec/models/integrations/chat_message/push_message_spec.rb": 0.6114814709999337,7778 "spec/lib/gitlab/memory/watchdog/event_reporter_spec.rb": 0.4815478080001867,7779 "spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb": 1.033417806999978,7780 "spec/lib/gitlab/github_import/importer/events/changed_label_spec.rb": 2.0445218840000052,7781 "spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb": 3.8705356259999917,7782 "spec/finders/repositories/tree_finder_spec.rb": 1.3492216659999485,7783 "spec/lib/gitlab/alert_management/alert_status_counts_spec.rb": 1.118418303999988,7784 "spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 3.1855557179999323,7785 "spec/serializers/test_suite_comparer_entity_spec.rb": 0.4490450159999,7786 "spec/serializers/base_discussion_entity_spec.rb": 5.1179904669997995,7787 "spec/lib/gitlab/ci/status/created_spec.rb": 0.3795790080000643,7788 "spec/lib/gitlab/slash_commands/global_slack_handler_spec.rb": 0.855822162999857,7789 "spec/lib/gitlab/database/background_migration_job_spec.rb": 0.7489105259999178,7790 "spec/models/concerns/optionally_search_spec.rb": 0.38680360800003655,7791 "spec/models/project_repository_spec.rb": 1.1734493419999126,7792 "spec/services/groups/group_links/destroy_service_spec.rb": 2.769419912000103,7793 "spec/helpers/branches_helper_spec.rb": 1.129225303999874,7794 "spec/lib/gitlab/request_context_spec.rb": 0.5467761320001046,7795 "spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb": 0.577650962000007,7796 "spec/workers/mail_scheduler/issue_due_worker_spec.rb": 1.0604765159998806,7797 "spec/serializers/trigger_variable_entity_spec.rb": 1.8530156409999563,7798 "spec/models/repository_language_spec.rb": 0.4020543879998968,7799 "spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb": 0.5884848209998381,7800 "spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb": 1.0926604050000606,7801 "spec/lib/gitlab/ci/config/entry/workflow_spec.rb": 0.747835546000033,7802 "spec/models/blob_viewer/package_json_spec.rb": 0.6321670499999072,7803 "spec/tasks/gitlab/sidekiq_rake_spec.rb": 2.1201475219997974,7804 "spec/services/discussions/capture_diff_note_positions_service_spec.rb": 1.7197371949998796,7805 "spec/lib/banzai/filter/markdown_filter_spec.rb": 0.52575501299998,7806 "spec/services/ci/runners/process_runner_version_update_service_spec.rb": 1.0793643459999203,7807 "spec/services/pages/destroy_deployments_service_spec.rb": 1.2582252289998905,7808 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.9267481910001152,7809 "spec/graphql/mutations/clusters/agent_tokens/revoke_spec.rb": 0.9303970799999206,7810 "spec/lib/gitlab/audit/ci_runner_token_author_spec.rb": 0.7316104760000144,7811 "spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb": 2.4280025719999685,7812 "spec/views/layouts/nav/sidebar/_profile.html.haml_spec.rb": 1.0486911559999044,7813 "spec/lib/gitlab/auth/crowd/authentication_spec.rb": 0.5584121120000418,7814 "spec/graphql/resolvers/saved_reply_resolver_spec.rb": 0.5764868810001644,7815 "spec/graphql/mutations/environments/stop_spec.rb": 1.1596016630001031,7816 "spec/lib/gitlab/zoom_link_extractor_spec.rb": 0.5209656330000598,7817 "spec/services/service_desk/custom_email_verifications/create_service_spec.rb": 1.6275163079999402,7818 "spec/lib/bulk_imports/pipeline/runner_spec.rb": 1.1202838440001415,7819 "spec/services/ci/job_token_scope/remove_project_service_spec.rb": 2.1581319019999228,7820 "spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb": 0.8788045119999879,7821 "spec/lib/gitlab/sidekiq_queue_spec.rb": 1.4010989850000897,7822 "spec/lib/sidebars/your_work/panel_spec.rb": 0.49901268400003573,7823 "spec/lib/gitlab/slash_commands/presenters/run_spec.rb": 0.3479715989999477,7824 "spec/lib/gitlab/grape_logging/loggers/urgency_logger_spec.rb": 0.34193363800000043,7825 "spec/lib/gitlab/ci/yaml_processor/dag_spec.rb": 0.2767135120000148,7826 "spec/services/system_hooks_service_spec.rb": 1.0713904459998957,7827 "spec/tooling/lib/tooling/fast_quarantine_spec.rb": 0.7105396179999843,7828 "spec/services/test_hooks/system_service_spec.rb": 1.2617081890000463,7829 "spec/rubocop/cop_todo_spec.rb": 0.6550156389998847,7830 "spec/lib/gitlab/slash_commands/issue_search_spec.rb": 2.0387800850000986,7831 "spec/services/snippets/update_repository_storage_service_spec.rb": 1.2023835910001708,7832 "spec/views/shared/nav/_sidebar.html.haml_spec.rb": 0.6756432580000364,7833 "spec/helpers/ci/catalog/resources_helper_spec.rb": 0.2961326399999962,7834 "spec/lib/gitlab/github_import/importer/pull_requests/merged_by_importer_spec.rb": 1.5082399320001514,7835 "spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb": 1.254622683999969,7836 "spec/lib/gitlab/import_export/design_repo_saver_spec.rb": 1.5722490189998553,7837 "spec/graphql/mutations/ci/pipeline_schedule/variable_input_type_spec.rb": 0.2725023380000948,7838 "spec/graphql/resolvers/deployments_resolver_spec.rb": 1.3809442680001212,7839 "spec/serializers/user_serializer_spec.rb": 1.5869568489999892,7840 "spec/services/captcha/captcha_verification_service_spec.rb": 0.3056095560000358,7841 "spec/lib/gitlab/uuid_spec.rb": 0.549620965000031,7842 "spec/services/ci/create_pipeline_service/merge_requests_spec.rb": 1.5449310509998213,7843 "spec/serializers/ci/downloadable_artifact_entity_spec.rb": 1.4707177630000388,7844 "spec/lib/gitlab/jira_import/labels_importer_spec.rb": 1.2036598949998734,7845 "spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb": 0.8789997100000164,7846 "spec/lib/gitlab/fogbugz_import/client_spec.rb": 0.27241786800004775,7847 "spec/models/integrations/external_wiki_spec.rb": 0.6336844709999241,7848 "spec/services/ci/pipeline_bridge_status_service_spec.rb": 2.35189695400004,7849 "spec/lib/gitlab/sql/recursive_cte_spec.rb": 0.5492862159999277,7850 "spec/lib/gitlab/route_map_spec.rb": 0.48035028799995416,7851 "spec/lib/gitlab/github_import/clients/proxy_spec.rb": 0.5005568080000558,7852 "spec/support_specs/helpers/stub_method_calls_spec.rb": 0.5039962269997886,7853 "spec/graphql/mutations/alert_management/http_integration/update_spec.rb": 0.8674879410000358,7854 "spec/support_specs/helpers/redis_commands/recorder_spec.rb": 0.4541992990000381,7855 "spec/lib/sidebars/admin/menus/ci_cd_menu_spec.rb": 0.4574901690000388,7856 "spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb": 0.702572519000114,7857 "spec/services/achievements/revoke_service_spec.rb": 1.1058810199999698,7858 "spec/lib/banzai/filter/truncate_source_filter_spec.rb": 0.4121470909999516,7859 "spec/lib/gitlab/import_export/avatar_saver_spec.rb": 1.0572814730001028,7860 "spec/lib/gitlab/database/partitioning/list/locking_configuration_spec.rb": 0.42633036200004426,7861 "spec/views/groups/milestones/index.html.haml_spec.rb": 0.5435346950000621,7862 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb": 0.42378843100004815,7863 "spec/lib/gitlab/diff/parallel_diff_spec.rb": 0.8966341799998645,7864 "spec/models/resource_events/abuse_report_event_spec.rb": 0.47950846799994906,7865 "spec/lib/bulk_imports/users_mapper_spec.rb": 0.46462876900000083,7866 "spec/lib/gitlab/sidekiq_signals_spec.rb": 0.42295275100013896,7867 "spec/components/pajamas/checkbox_tag_component_spec.rb": 0.3921866629998476,7868 "spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb": 0.7934299739999915,7869 "spec/models/users/banned_user_spec.rb": 0.686631319000071,7870 "spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb": 0.37865952300012395,7871 "spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb": 0.39918312200006767,7872 "spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb": 0.37981621299991275,7873 "spec/lib/gitlab/monitor/demo_projects_spec.rb": 0.5901739529999759,7874 "spec/models/resource_events/issue_assignment_event_spec.rb": 0.41263313100012056,7875 "spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb": 0.4049778819999119,7876 "spec/serializers/feature_flags_client_serializer_spec.rb": 0.5203487860001133,7877 "spec/lib/gitlab/ci/build/cache_spec.rb": 0.3497115150000809,7878 "spec/haml_lint/linter/inline_javascript_spec.rb": 0.32999654500008546,7879 "spec/lib/gitlab/github_gists_import/status_spec.rb": 0.4388708300000417,7880 "spec/graphql/types/duration_type_spec.rb": 0.33224892499993075,7881 "spec/lib/gitlab/ci/config/entry/id_token_spec.rb": 0.3261070359999394,7882 "spec/support_specs/helpers/active_record/query_recorder_spec.rb": 0.36329024399992704,7883 "spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb": 0.35562172400000236,7884 "spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb": 0.3103859860000284,7885 "spec/lib/api/github/entities_spec.rb": 0.4432797599999958,7886 "spec/lib/constraints/jira_encoded_url_constrainer_spec.rb": 0.3066518260000066,7887 "spec/serializers/import/github_failure_serializer_spec.rb": 0.3195453460000408,7888 "spec/serializers/integrations/harbor_serializers/artifact_entity_spec.rb": 0.5507083050001711,7889 "spec/views/groups/packages/index.html.haml_spec.rb": 0.32668614599992907,7890 "spec/models/blob_viewer/route_map_spec.rb": 0.3270306949998485,7891 "spec/lib/gitlab/database/migrations/observers/batch_details_spec.rb": 0.289031107000028,7892 "spec/services/clusters/build_service_spec.rb": 0.28744971700007227,7893 "spec/lib/gitlab/ci/ansi2json/result_spec.rb": 0.2802044669999759,7894 "spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb": 0.2966046369999731,7895 "spec/finders/achievements/achievements_finder_spec.rb": 0.32753789499997765,7896 "spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb": 0.2842361980001442,7897 "spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb": 0.29317129699984434,7898 "spec/graphql/types/upload_type_spec.rb": 0.2583691289999024,7899 "spec/lib/gitlab/diff/inline_diff_spec.rb": 0.2630863389999831,7900 "spec/graphql/types/container_expiration_policy_keep_enum_spec.rb": 0.25667562800003907,7901 "spec/lib/gitlab/batch_worker_context_spec.rb": 0.29095070700009273,7902 "spec/lib/gitlab/database/transaction_timeout_settings_spec.rb": 0.2654504879999422,7903 "spec/lib/sidebars/concerns/container_with_html_options_spec.rb": 0.2633389580000767,7904 "spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.25974271900008716,7905 "spec/lib/sidebars/groups/super_sidebar_menus/plan_menu_spec.rb": 0.26052761799996915,7906 "spec/lib/sidebars/projects/super_sidebar_menus/code_menu_spec.rb": 0.2576094280000234,7907 "spec/graphql/types/tree/submodule_type_spec.rb": 0.26234257900000557,7908 "spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb": 0.2631690880000406,7909 "spec/models/concerns/commit_signature_spec.rb": 0.27560826700005236,7910 "spec/workers/todos_destroyer/group_private_worker_spec.rb": 0.2269658600000639,7911 "spec/lib/gitlab/usage/metrics/instrumentations/incoming_email_encrypted_secrets_enabled_metric_spec.rb": 0.22691196999994645,7912 "spec/lib/sidebars/projects/context_spec.rb": 0.2442740489998414,7913 "spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb": 0.22985890999984804,7914 "spec/graphql/types/ci/project_variable_connection_type_spec.rb": 0.2236935309999808,7915 "spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/having_constraints_spec.rb": 0.2290560890000961,7916 "spec/graphql/types/container_repository_status_enum_spec.rb": 0.22825944000010168,7917 "spec/graphql/types/permission_types/ci/runner_spec.rb": 0.22323996999989504,7918 "spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb": 0.23492303900002298,7919 "spec/lib/bulk_imports/retry_pipeline_error_spec.rb": 0.222015179999971227920}7921Knapsack global time execution for tests: 21m 11s7922Pending: (Failures listed here are expected and do not affect your suite's status)7923 1) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes7924 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097925 # ./spec/lib/gitlab/git_access_spec.rb:8527926 2) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the exact protected branch has the correct permissions for admin_without_admin_modes7927 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097928 # ./spec/lib/gitlab/git_access_spec.rb:8527929 3) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes7930 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097931 # ./spec/lib/gitlab/git_access_spec.rb:8527932 4) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes7933 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097934 # ./spec/lib/gitlab/git_access_spec.rb:8527935 5) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes7936 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097937 # ./spec/lib/gitlab/git_access_spec.rb:8527938 6) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the exact protected branch has the correct permissions for admin_without_admin_modes7939 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097940 # ./spec/lib/gitlab/git_access_spec.rb:8527941 7) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feature protected branch has the correct permissions for admin_without_admin_modes7942 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097943 # ./spec/lib/gitlab/git_access_spec.rb:8527944 8) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes7945 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097946 # ./spec/lib/gitlab/git_access_spec.rb:8527947 9) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the wildcard protected branch has the correct permissions for admin_without_admin_modes7948 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097949 # ./spec/lib/gitlab/git_access_spec.rb:8527950 10) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes7951 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097952 # ./spec/lib/gitlab/git_access_spec.rb:8527953 11) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes7954 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097955 # ./spec/lib/gitlab/git_access_spec.rb:8527956 12) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes7957 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097958 # ./spec/lib/gitlab/git_access_spec.rb:8527959 13) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the wildcard protected branch has the correct permissions for admin_without_admin_modes7960 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097961 # ./spec/lib/gitlab/git_access_spec.rb:8527962 14) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feat* protected branch has the correct permissions for admin_without_admin_modes7963 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965097964 # ./spec/lib/gitlab/git_access_spec.rb:8527965 15) DesignManagement::Design behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank7966 # No reason given7967 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497968 16) DesignManagement::Design behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank7969 # No reason given7970 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577971 17) Ci::BuildNeed partitioning when using bulk_insert creates build needs successfully7972 # Skipping partitioning tests until `ci_builds` is partitioned7973 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'7974 RSpec::Core::Pending::SkipDeclaredInExample7975 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'7976 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'7977 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'7978 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'7979 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'7980Failures:7981 1) Gitlab::SidekiqMiddleware::DeferJobs#call when sidekiq_defer_jobs feature flag is enabled for a worker for the affected worker increments the counter7982 Failure/Error: expect(counter.get({ worker: "TestDeferredWorker" })).to eq(1)7983 expected: 17984 got: 3.07985 (compared using ==)7986 # ./spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb:50:in `block (5 levels) in <top (required)>'7987 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'7988 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'7989 # ./spec/spec_helper.rb:406:in `block (2 levels) in <top (required)>'7990 # ./spec/spec_helper.rb:402:in `block (3 levels) in <top (required)>'7991 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'7992 # ./spec/spec_helper.rb:402:in `block (2 levels) in <top (required)>'7993 # ./spec/spec_helper.rb:243:in `block (2 levels) in <top (required)>'7994 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7995 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'7996 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'7997 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'7998 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'7999Finished in 21 minutes 14 seconds (files took 43.08 seconds to load)80003389 examples, 1 failure, 17 pending8001Failed examples:8002rspec ./spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb:46 # Gitlab::SidekiqMiddleware::DeferJobs#call when sidekiq_defer_jobs feature flag is enabled for a worker for the affected worker increments the counter8003Randomized with seed 311888004[TEST PROF INFO] Time spent in factories: 12:18.965 (57.73% of total time)8005Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected8006RSpec exited with 1.8007RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg13_16_28_report.txt8008Retrying the failing examples in a new RSpec process...8009$ gem install junit_merge --no-document --version 0.1.28010Successfully installed nokogiri-1.15.2-x86_64-linux8011Successfully installed junit_merge-0.1.280122 gems installed8013==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 2 seconds.8014Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-4400964235.json --format RspecJunitFormatter --out rspec/rspec-retry-4400964235.xml --only-failures --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.rb"8015warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.8017Run options: include {:last_run_status=>"failed"}8018Test environment set up in 0.450517345 seconds8019Gitlab::SidekiqMiddleware::DeferJobs8020 # order random8021 #call8022 when sidekiq_defer_jobs feature flag is enabled for a worker8023 for the affected worker8024DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_TestDeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)8025DEPRECATION WARNING: Invalid Feature Flag defer_sidekiq_jobs_UndeferredWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)8026 increments the counter8027Finished in 2.85 seconds (files took 37.15 seconds to load)80281 example, 0 failures8029Randomized with seed 570848030[TEST PROF INFO] Time spent in factories: 00:00.024 (0.58% of total time)8031Loading rspec/rspec-4400964235.json...8032Merged rspec/rspec-retry-4400964235.json adding 5 results.8033Saved rspec/rspec-4400964235.json.8034A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...8035Flaky test was not part of this MR.8037Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8039Uploading artifacts...8040coverage/: found 5 matching artifact files and directories 8041crystalball/: found 2 matching artifact files and directories 8042deprecations/: found 5 matching artifact files and directories 8043knapsack/: found 4 matching artifact files and directories 8044WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8045rspec/: found 19 matching artifact files and directories 8046WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8047log/*.log: found 21 matching artifact files and directories 8048WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964235/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8049WARNING: Retrying... context=artifacts-uploader error=request redirected8050Uploading artifacts as "archive" to coordinator... 201 Created id=4400964235 responseStatus=201 Created token=64_heLNq8051Uploading artifacts...8052rspec/rspec-*.xml: found 2 matching artifact files and directories 8053WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964235/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8054WARNING: Retrying... context=artifacts-uploader error=request redirected8055Uploading artifacts as "junit" to coordinator... 201 Created id=4400964235 responseStatus=201 Created token=64_heLNq8057Job succeeded