rspec unit pg13-as-if-foss single-db-ci-connection 14/28
Passed Started
by
@fabiopitino
Fabio Pitino
1Running with gitlab-runner 16.1.0~beta.5.gf131a6a2 (f131a6a2)2 on blue-2.shared-gitlab-org.runners-manager.gitlab.com/default NL4gfoBe, system ID: s_74c3e13161643 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-nl4gfobe-project-278964-concurrent-0 via runner-nl4gfobe-shared-gitlab-org-1685686594-54c368f2...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 139970, done. 31remote: Counting objects: 100% (139970/139970), done. 32remote: Compressing objects: 100% (94736/94736), done. 33remote: Total 139970 (delta 61223), reused 92025 (delta 39894), pack-reused 0 34Receiving objects: 100% (139970/139970), 123.36 MiB | 29.13 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 as-if-foss (4400964017)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964017 responseStatus=200 OK token=64_LXxur48Downloading artifacts for detect-tests (4400964025)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964025 responseStatus=200 OK token=64_LXxur50Downloading artifacts for retrieve-tests-metadata (4400964028)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964028 responseStatus=200 OK token=64_LXxur52Downloading artifacts for setup-test-env (4400964019)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964019 responseStatus=200 OK token=64_LXxur55Using 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_ONLY57158$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb59$ export GOPATH=$CI_PROJECT_DIR/.go60$ mkdir -p $GOPATH61$ source scripts/utils.sh62$ source scripts/prepare_build.sh720Using decomposed database config (config/database.yml.postgresql)721Geo DB won't be set up.722Embedding 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: 752FLAKY_RSPEC_GENERATE_REPORT: 753KNAPSACK_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-as-if-foss_single-db-ci-connection_14_28_report.json756FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json757FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13-as-if-foss_single-db-ci-connection_14_28_report.json758NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db-ci-connection_14_28_report.json759SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13-as-if-foss_single-db-ci-connection_14_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-4400964678.json --format RspecJunitFormatter --out rspec/rspec-4400964678.xml --tag ~quarantine --tag ~level:background_migration -- spec/finders/merge_requests_finder_spec.rb spec/lib/gitlab/background_migration/backfill_environment_tiers_spec.rb spec/models/concerns/issuable_spec.rb spec/models/integration_spec.rb spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb spec/policies/wiki_page_policy_spec.rb spec/finders/notes_finder_spec.rb spec/lib/gitlab/background_migration/batched_migration_job_spec.rb spec/lib/gitlab/conflict/file_spec.rb spec/lib/gitlab/background_migration/backfill_imported_issue_search_data_spec.rb spec/services/packages/npm/generate_metadata_service_spec.rb spec/lib/gitlab/bitbucket_server_import/importer_spec.rb spec/models/clusters/agent_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb spec/services/merge_requests/reopen_service_spec.rb spec/lib/gitlab/import_export/project/object_builder_spec.rb spec/finders/group_projects_finder_spec.rb spec/models/work_item_spec.rb spec/models/route_spec.rb spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_spec.rb spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb spec/serializers/issue_entity_spec.rb spec/lib/gitlab/ci/runner/backoff_spec.rb spec/helpers/todos_helper_spec.rb spec/lib/gitlab/import_export/import_failure_service_spec.rb spec/lib/gitlab/database/migrations/runner_spec.rb spec/lib/gitlab/ci/templates/npm_spec.rb spec/services/issues/export_csv_service_spec.rb spec/services/clusters/create_service_spec.rb spec/workers/pipeline_schedule_worker_spec.rb spec/routing/import_routing_spec.rb spec/services/deployments/link_merge_requests_service_spec.rb spec/lib/gitlab/ci/config/external/context_spec.rb spec/models/project_import_state_spec.rb spec/services/milestones/destroy_service_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb spec/lib/generators/gitlab/partitioning/foreign_keys_generator_spec.rb spec/services/merge_requests/assign_issues_service_spec.rb spec/services/ci/process_build_service_spec.rb spec/services/merge_requests/export_csv_service_spec.rb spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb spec/lib/gitlab/search_context/builder_spec.rb spec/graphql/types/snippet_type_spec.rb spec/services/projects/auto_devops/disable_service_spec.rb spec/rubocop/code_reuse_helpers_spec.rb spec/serializers/ci/dag_job_entity_spec.rb spec/workers/jira_connect/sync_project_worker_spec.rb spec/lib/gitlab/gitaly_client/ref_service_spec.rb spec/views/admin/application_settings/general.html.haml_spec.rb spec/lib/gitlab/ci/status/composite_spec.rb spec/services/clusters/cleanup/project_namespace_service_spec.rb spec/services/repositories/housekeeping_service_spec.rb spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb spec/services/ci/play_manual_stage_service_spec.rb spec/lib/gitlab/github_import/representation/diff_note_spec.rb spec/lib/gitlab/data_builder/pipeline_spec.rb spec/services/packages/composer/create_package_service_spec.rb spec/support_specs/helpers/graphql_helpers_spec.rb spec/finders/joined_groups_finder_spec.rb spec/services/ci/create_pipeline_service/rate_limit_spec.rb spec/models/packages/debian/group_component_file_spec.rb spec/services/ci/play_bridge_service_spec.rb spec/graphql/mutations/releases/delete_spec.rb spec/graphql/mutations/issues/set_severity_spec.rb spec/lib/gitlab/ci/variables/collection/sort_spec.rb spec/lib/gitlab/repository_url_builder_spec.rb spec/models/concerns/featurable_spec.rb spec/services/award_emojis/add_service_spec.rb spec/serializers/import/github_failure_entity_spec.rb spec/initializers/active_record_locking_spec.rb spec/services/ci/run_scheduled_build_service_spec.rb spec/lib/kramdown/parser/atlassian_document_format_spec.rb spec/lib/gitlab/github_import_spec.rb spec/serializers/entity_date_helper_spec.rb spec/lib/gitlab/database/health_status/indicators/patroni_apdex_spec.rb spec/services/prometheus/proxy_service_spec.rb spec/lib/gitlab/diff/highlight_spec.rb spec/services/packages/debian/sign_distribution_service_spec.rb spec/services/uploads/destroy_service_spec.rb spec/lib/gitlab/github_import/representation/protected_branch_spec.rb spec/lib/gitlab/patch/prependable_spec.rb spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb spec/lib/api/entities/merge_request_changes_spec.rb spec/lib/gitlab/ci/status/build/common_spec.rb spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb spec/lib/gitlab/metrics/global_search_slis_spec.rb spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb spec/lib/gitlab/graphql/markdown_field_spec.rb spec/lib/gitlab/usage_data/topology_spec.rb spec/services/packages/rpm/repository_metadata/update_xml_service_spec.rb spec/services/award_emojis/toggle_service_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb spec/services/alert_management/http_integrations/update_service_spec.rb spec/presenters/event_presenter_spec.rb spec/helpers/dashboard_helper_spec.rb spec/lib/gitlab/graphql/loaders/lazy_relation_loader_spec.rb spec/lib/gitlab/themes_spec.rb spec/workers/new_note_worker_spec.rb spec/services/work_items/parent_links/destroy_service_spec.rb spec/lib/gitlab/metrics/boot_time_tracker_spec.rb spec/initializers/pages_storage_check_spec.rb spec/finders/bulk_imports/entities_finder_spec.rb spec/services/authorized_project_update/periodic_recalculate_service_spec.rb spec/graphql/types/repository_type_spec.rb spec/lib/sidebars/user_profile/menus/followers_menu_spec.rb spec/tooling/danger/sidekiq_args_spec.rb spec/policies/application_setting/term_policy_spec.rb spec/lib/gitlab/lazy_spec.rb spec/services/jira_import/users_importer_spec.rb spec/services/bulk_imports/file_download_service_spec.rb spec/lib/gitlab/database/loose_foreign_keys_spec.rb spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb spec/models/group_label_spec.rb spec/graphql/resolvers/alert_management/alert_resolver_spec.rb spec/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers_spec.rb spec/workers/container_expiration_policy_worker_spec.rb spec/lib/sidebars/projects/menus/deployments_menu_spec.rb spec/serializers/import/bitbucket_provider_repo_entity_spec.rb spec/services/packages/composer/version_parser_service_spec.rb spec/workers/build_success_worker_spec.rb spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb spec/components/pajamas/checkbox_component_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_setting_enabled_metric_spec.rb spec/services/audit_events/build_service_spec.rb spec/helpers/environments_helper_spec.rb spec/graphql/resolvers/incident_management/timeline_event_tags_resolver_spec.rb spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb spec/graphql/resolvers/repository_branch_names_resolver_spec.rb spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb spec/workers/rebase_worker_spec.rb spec/models/concerns/from_set_operator_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb spec/lib/backup/file_backup_error_spec.rb spec/haml_lint/linter/no_plain_nodes_spec.rb spec/lib/gitlab/ci/trace/metrics_spec.rb spec/services/container_expiration_policies/cleanup_service_spec.rb spec/services/merge_requests/pushed_branches_service_spec.rb spec/serializers/ci/dag_job_group_entity_spec.rb spec/lib/gitlab/health_checks/probes/collection_spec.rb spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb spec/helpers/keyset_helper_spec.rb spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb spec/lib/gitlab/anonymous_session_spec.rb spec/lib/gitlab/error_tracking/stack_trace_highlight_decorator_spec.rb spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb spec/rubocop/cop/database/disable_referential_integrity_spec.rb spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb spec/presenters/milestone_presenter_spec.rb spec/graphql/types/customer_relations/contact_type_spec.rb spec/validators/named_ecdsa_key_validator_spec.rb spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb spec/lib/gitlab/exclusive_lease_helpers_spec.rb spec/models/synthetic_note_spec.rb spec/helpers/wiki_page_version_helper_spec.rb spec/services/users/unblock_service_spec.rb spec/services/ci/update_pending_build_service_spec.rb spec/serializers/runner_entity_spec.rb spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb spec/models/concerns/triggerable_hooks_spec.rb spec/graphql/resolvers/user_discussions_count_resolver_spec.rb spec/models/legacy_diff_note_spec.rb spec/lib/gitlab/github_import/importer/pull_requests/review_request_importer_spec.rb spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb spec/workers/bulk_imports/stuck_import_worker_spec.rb spec/workers/projects/update_repository_storage_worker_spec.rb spec/services/issuable/process_assignees_spec.rb spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb spec/serializers/group_link/group_group_link_entity_spec.rb spec/services/packages/ml_model/find_or_create_package_service_spec.rb spec/workers/pipeline_hooks_worker_spec.rb spec/lib/gitlab/github_import/label_finder_spec.rb spec/services/protected_branches/api_service_spec.rb spec/lib/gitlab/slash_commands/presenters/issue_comment_spec.rb spec/lib/slack/block_kit/incident_management/incident_modal_opened_spec.rb spec/lib/gitlab/database/migration_spec.rb spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb spec/workers/schedule_merge_request_cleanup_refs_worker_spec.rb spec/lib/gitlab/database/schema_cleaner_spec.rb spec/workers/user_status_cleanup/batch_worker_spec.rb spec/services/ide/schemas_config_service_spec.rb spec/models/packages/pypi/metadatum_spec.rb spec/workers/integrations/execute_worker_spec.rb spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb spec/lib/gitlab/database/migrations/runner_backoff/active_record_mixin_spec.rb spec/validators/js_regex_validator_spec.rb spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb spec/lib/gitlab/template/gitignore_template_spec.rb spec/lib/gitlab/submodule_links_spec.rb spec/models/shard_spec.rb spec/graphql/types/container_repository_details_type_spec.rb spec/workers/concerns/cronjob_queue_spec.rb spec/support_specs/matchers/exceed_redis_call_limit_spec.rb spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb spec/workers/jira_connect/send_uninstalled_hook_worker_spec.rb spec/workers/metrics/global_metrics_update_worker_spec.rb spec/policies/packages/package_policy_spec.rb spec/workers/ssh_keys/update_last_used_at_worker_spec.rb spec/lib/gitlab/ci/config/entry/tags_spec.rb spec/helpers/projects/google_cloud/cloudsql_helper_spec.rb spec/lib/bulk_imports/projects/pipelines/service_desk_setting_pipeline_spec.rb spec/views/devise/shared/_error_messages.html.haml_spec.rb spec/lib/generators/model/model_generator_spec.rb spec/services/metrics/global_metrics_update_service_spec.rb spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb spec/services/integrations/slack_interactions/incident_management/incident_modal_closed_service_spec.rb spec/workers/gitlab/github_import/import_note_worker_spec.rb spec/graphql/types/projects/jira_service_type_spec.rb spec/graphql/types/alert_management/alert_status_count_type_spec.rb spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb spec/workers/gitlab/github_import/stage/import_lfs_objects_worker_spec.rb spec/policies/concerns/archived_abilities_spec.rb spec/graphql/types/work_items/widgets/current_user_todos_input_type_spec.rb spec/graphql/types/ci/config/job_type_spec.rb spec/graphql/types/ci/test_report_total_type_spec.rb spec/serializers/diff_line_serializer_spec.rb spec/graphql/types/work_items/widgets/notifications_update_input_type_spec.rb spec/services/base_container_service_spec.rb spec/graphql/types/member_access_level_enum_spec.rb spec/graphql/types/ci_configuration/sast/input_type_spec.rb spec/graphql/types/commit_action_mode_enum_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/gitlab_dedicated_metric_spec.rb spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb spec/initializers/mailer_retries_spec.rb spec/graphql/types/packages/package_type_enum_spec.rb spec/serializers/evidences/evidence_serializer_spec.rb spec/graphql/types/packages/package_sort_enum_spec.rb spec/services/gravatar_service_spec.rb spec/models/concerns/faster_cache_keys_spec.rb spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb spec/lib/gitlab/database/schema_validation/validators/extra_indexes_spec.rb spec/helpers/tooling/visual_review_helper_spec.rb spec/helpers/abuse_reports_helper_spec.rbwarning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.765Run options: exclude {:quarantine=>true, :level=>"background_migration"}766Test environment set up in 0.594767458 seconds767MergeRequestsFinder768 multiple projects with merge requests769 #execute770 filters by scope771 filters by project_id772 filters by projects773 filters by non_archived774 filters by source project id775 filters by state776 does not raise any exception with complex filters777 filtering by author778 using OR779 returns merge requests created by any of the given users780 when feature flag is disabled781 does not add any filter782 with nonexistent author ID and MR term using CTE for search783 returns no results784 filtering by not author ID785 returns merge requests not created by that user786 filters by commit sha787 when commit belongs to the merge request788 filters by commit sha789 when commit is a squash commit790 filters by commit sha791 when commit is a merge commit792 filters by commit sha793 filters by merged_at date794 merged_after795 is expected to eq [#<MergeRequest id:58 group1/project-1!1>]796 merged_before797 is expected to eq [#<MergeRequest id:63 group1/project-1!2>]798 when both merged_after and merged_before is given799 is expected to eq [#<MergeRequest id:67 group1/project-1!2>]800 when project_id is given801 is expected to eq [#<MergeRequest id:71 group1/project-1!2>]802 queries merge_request_metrics.target_project_id table803 filtering by group804 includes all merge requests when user has access excluding merge requests from projects the user does not have access to805 filters by group including subgroups806 filters by group projects including subgroups807 :iid parameter808 behaves like scalar or array parameter809 takes scalar values810 takes array values811 source_branch parameter812 behaves like scalar or array parameter813 takes scalar values814 takes array values815 target_branch parameter816 behaves like scalar or array parameter817 takes scalar values818 takes array values819 :label_name parameter820 accepts a single label821 accepts an array of labels, all of which must match822 draft state823 returns all items if no valid draft param exists824 behaves like draft MRs filtering825 filters by draft => 1826 behaves like draft MRs filtering827 filters by draft => 1828 behaves like draft MRs filtering829 filters by draft => true830 behaves like draft MRs filtering831 filters by draft => true832 behaves like draft MRs filtering833 filters by draft => yes834 behaves like draft MRs filtering835 filters by draft => 0836 behaves like draft MRs filtering837 filters by draft => 0838 behaves like draft MRs filtering839 filters by draft => false840 behaves like draft MRs filtering841 filters by draft => false842 behaves like draft MRs filtering843 filters by draft => no844 behaves like draft MRs filtering845 filters by draft => 1846 behaves like draft MRs filtering847 filters by draft => 1848 behaves like draft MRs filtering849 filters by draft => true850 behaves like draft MRs filtering851 filters by draft => true852 behaves like draft MRs filtering853 filters by draft => yes854 behaves like draft MRs filtering855 filters by draft => 0856 behaves like draft MRs filtering857 filters by draft => 0858 behaves like draft MRs filtering859 filters by draft => false860 behaves like draft MRs filtering861 filters by draft => false862 behaves like draft MRs filtering863 filters by draft => no864 behaves like draft MRs filtering865 filters by draft => 1866 behaves like draft MRs filtering867 filters by draft => 1868 behaves like draft MRs filtering869 filters by draft => true870 behaves like draft MRs filtering871 filters by draft => true872 behaves like draft MRs filtering873 filters by draft => yes874 behaves like draft MRs filtering875 filters by draft => 0876 behaves like draft MRs filtering877 filters by draft => 0878 behaves like draft MRs filtering879 filters by draft => false880 behaves like draft MRs filtering881 filters by draft => false882 behaves like draft MRs filtering883 filters by draft => no884 behaves like draft MRs filtering885 filters by draft => 1886 behaves like draft MRs filtering887 filters by draft => 1888 behaves like draft MRs filtering889 filters by draft => true890 behaves like draft MRs filtering891 filters by draft => true892 behaves like draft MRs filtering893 filters by draft => yes894 behaves like draft MRs filtering895 filters by draft => 0896 behaves like draft MRs filtering897 filters by draft => 0898 behaves like draft MRs filtering899 filters by draft => false900 behaves like draft MRs filtering901 filters by draft => false902 behaves like draft MRs filtering903 filters by draft => no904 filter by deployment905 returns the relevant merge requests906 when a deployment does not contain any merge requests907 returns an empty result908 .scalar_params909 contains scalar params related to merge requests910 assignee filtering911 behaves like assignee ID filter912 returns issuables assigned to that user913 behaves like assignee NOT ID filter914 returns issuables not assigned to that user915 behaves like assignee username filter916 returns issuables assigned to those users917 behaves like assignee NOT username filter918 returns issuables not assigned to those users919 behaves like no assignee filter920 returns issuables not assigned to any assignee921 returns issuables not assigned to any assignee922 behaves like any assignee filter924 returns issuables assigned to any assignee925 returns issuables assigned to any assignee926 reviewer filtering927 by reviewer_id928 is expected to contain exactly #<MergeRequest id:342 group1/project-1!1> and #<MergeRequest id:343 group1/project-1!2>929 by NOT reviewer_id930 is expected to contain exactly #<MergeRequest id:348 group169/project-182!1>, #<MergeRequest id:349 group170/project-183!1>, and #<MergeRequest id:1 group1/group2/project-2!1>931 by reviewer_username932 is expected to contain exactly #<MergeRequest id:350 group1/project-1!1> and #<MergeRequest id:351 group1/project-1!2>933 by NOT reviewer_username934 is expected to contain exactly #<MergeRequest id:356 group173/project-186!1>, #<MergeRequest id:357 group174/project-187!1>, and #<MergeRequest id:1 group1/group2/project-2!1>935 by reviewer_id=None936 is expected to contain exactly #<MergeRequest id:361 group176/project-189!1> and #<MergeRequest id:1 group1/group2/project-2!1>937 by reviewer_id=Any938 is expected to contain exactly #<MergeRequest id:362 group1/project-1!1>, #<MergeRequest id:363 group1/project-1!2>, and #<MergeRequest id:364 group177/project-190!1>939 by reviewer_id with unknown user940 is expected to be empty941 by NOT reviewer_id with unknown user942 is expected to be empty943 filtering by group milestone944 returns merge requests assigned to that group milestone945 using NOT946 returns MRs not assigned to that group milestone947 filtering by approved948 when flag `mr_approved_filter` is disabled949 for approved950 for not approved951 when flag `mr_approved_filter` is enabled952 for approved953 for not approved954 filtering by approved by username955 sort: nil956 returns merge requests approved by that user957 sort: "milestone"958 returns merge requests approved by that user959 sort: "merged_at"960 returns merge requests approved by that user961 sort: "merged_at_desc"962 returns merge requests approved by that user963 sort: "closed_at"964 returns merge requests approved by that user965 sort: "closed_at_desc"966 returns merge requests approved by that user967 not filter968 returns merge requests not approved by that user969 when filtering by author and not approved by970 returns merge requests authored by user and not approved by user2971 filtering by approved by user ID972 returns merge requests approved by that user973 with sorting by milestone974 returns merge requests approved by that user975 filtering by created_at/updated_at976 filters by created_after977 filters by created_before978 filters by created_after and created_before979 filters by updated_after980 filters by updated_before981 filters by updated_after and updated_before982 filtering by the merge request deployments983 filters merge requests deployed to a given environment984 filters merge requests deployed before a given date985 filters merge requests ignoring empty deployed_before986 filters merge requests ignoring invalid deployed_before987 filters merge requests deployed after a given date988 filters merge requests ignoring empty deployed_after989 filters merge requests ignoring invalid deployed_after990 filtering by search text991 returns matching merge requests992 #row_count993 returns the number of rows for the default state994 returns the number of rows for a given state995 returns -1 if the query times out996 external authorization997 behaves like a finder with external authorization service998 finds the subject999 with an external authorization service1000 does not include the subject when no project was given1001 includes the subject when a project id was given1002 when projects require different access levels for merge requests1003 with admin user1004 when admin mode is enabled1005 returns all merge requests1006 when admin mode is disabled1007 returns public and internal merge requests1008 when project restricts merge requests1009 returns nothing to to non members1010 with external user1011 returns only public merge requests1012 with authenticated user1013 returns public and internal merge requests1014 being added to the private project1015 as a guest1016 does not return merge requests from the private project1017 as a developer1018 returns merge requests from the private project1019 being added to the public project with private repo access1020 as a guest1021 returns merge requests from the project1022 as a reporter1023 returns merge requests from the project1024 being added to the internal project with private repo access1025 as a guest1026 returns merge requests from the project1027 as a reporter1028 returns merge requests from the project1029 #count_by_state1030 when filtering by multiple labels1031 returns the correnct counts1032 when filtering by approved_by_usernames1033 returns the correnct counts1034 when the author of a merge request is banned1035 is expected not to include #<MergeRequest id:606 namespace27/project-279!1>1036 when the user is an admin1037 is expected to include #<MergeRequest id:606 namespace27/project-279!1>1038 when the `hide_merge_requests_from_banned_users` feature flag is disabled1039 is expected to include #<MergeRequest id:606 namespace27/project-279!1>1040Issuable1041 Associations1042 is expected to belong to project required: false1043 is expected to belong to author required: false1044 is expected to have many notes dependent => destroy1045 is expected to have many todos1046 is expected to have many labels1047 Notes1048 indicates if the notes have their authors loaded1049 note_authors1050 is expected to have many note_authors through notes1051 user_note_authors1052 filters the authors to those of user notes1053 Included modules1054 is expected to includes the Awardable module1055 Validation1056 general validations1057 is expected to validate that :project cannot be empty/falsy1058 is expected to validate that :author cannot be empty/falsy1059 is expected to validate that :title cannot be empty/falsy1060 is expected to validate that the length of :title is at most 2551061 behaves like validates description length with custom validation1062 when Issuable is a new record1063 when description exceeds the maximum size1064 adds a description too long error1065 when description is within the allowed limits1066 does not add a validation error1067 when Issuable is an existing record1068 when record already had a valid description1069 when new description exceeds the maximum size1070 adds a description too long error1071 when new description is within the allowed limits1072 does not add a validation error1073 when record existed with an invalid description1074 when description is not changed1075 does not add a validation error1076 when new description exceeds the maximum size1077 allows updating descriptions that already existed above the limit1078 when new description is within the allowed limits1079 does not add a validation error1080 behaves like truncates the description to its allowed maximum length on import1081 truncates the description to its allowed maximum length1082 #validate_assignee_length1083 will not exceed the assignee limit1084 Scope1085 is expected to respond to #opened1086 is expected to respond to #closed1087 is expected to respond to #assigned1088 .includes_for_bulk_update1089 includes available associations1090 author_name1091 is delegated to author1092 returns nil when author is nil1093 .initialize1094 maps the state to the right state_id1095 maps a string version of the state to the right state_id1096 gives preference to state_id if present1097 .any_label1098 returns an issuable with at least one label1099 for custom sorting1100 returns an issuable with at least one label1101 .search1102 returns issues with a matching title1103 returns issues with a partially matching title1104 returns issues with a matching title regardless of the casing1105 returns issues with a fuzzy matching title1106 returns issues with a matching title for a query shorter than 3 chars1107 .full_search1108 returns issues with a matching title1109 returns issues with a partially matching title1110 returns issues with a matching title regardless of the casing1111 returns issues with a fuzzy matching title1112 returns issues with a matching description1113 returns issues with a partially matching description1114 returns issues with a matching description regardless of the casing1115 returns issues with a fuzzy matching description1116 returns issues with a matching description for a query shorter than 3 chars1117 returns issues with a fuzzy matching description for a query shorter than 3 chars if told to do so1118 returns issues with a fuzzy matching title for a query shorter than 3 chars if told to do so1119 when matching columns is "title"1120 returns issues with a matching title1121 returns no issues with a matching description1122 when matching columns is "description"1123 returns no issues with a matching title1124 returns issues with a matching description1125 when matching columns is "title,description"1126 returns issues with a matching title1127 returns issues with a matching description1128 when matching columns is nil"1129 returns issues with a matching title1130 returns issues with a matching description1131 when matching columns is "invalid"1132 returns issues with a matching title1133 returns issues with a matching description1134 when matching columns is "title,invalid"1135 returns issues with a matching title1136 returns no issues with a matching description1137 .to_ability_name1138 is expected to eq "issue"1139 is expected to eq "merge_request"1140 #sort_by_attribute1141 by milestone due date1142 sorts desc1143 sorts asc1144 when all of the results are level on the sort key1145 has no duplicates across pages1146 by title1147 sorts asc1148 sorts desc1149 #subscribed?1150 user is not a participant in the issue1151 returns false when no subcription exists1152 returns true when a subcription exists and subscribed is true1153 returns false when a subcription exists and subscribed is false1154 user is a participant in the issue1155 returns false when no subcription exists1156 returns true when a subcription exists and subscribed is true1157 returns false when a subcription exists and subscribed is false1158 #time_estimate=1159 coerces the value below Gitlab::Database::MAX_INT_VALUE1160 skips coercion for not Integer values1161 #to_hook_data1162 when old_associations is empty1163 delegates to Gitlab::DataBuilder::Issuable#build and does not set labels, assignees, nor total_time_spent1164 labels are updated1165 delegates to Gitlab::DataBuilder::Issuable#build1166 total_time_spent is updated1167 delegates to Gitlab::DataBuilder::Issuable#build1168 issue is assigned1169 delegates to Gitlab::DataBuilder::Issuable#build1170 merge_request is assigned1171 delegates to Gitlab::DataBuilder::Issuable#build1172 merge_request update reviewers1173 delegates to Gitlab::DataBuilder::Issuable#build1174 incident severity is updated1175 delegates to Gitlab::DataBuilder::Issuable#build1176 escalation status is updated1177 delegates to Gitlab::DataBuilder::Issuable#build1178 #labels_array1179 loads the association and returns it as an array1180 #labels_hook_attrs1181 returns a list of label hook attributes1182 .labels_hash1183 maps issue ids to labels titles1184 works on relations filtered by multiple labels1185 with a NULL label ID in the link1186 filters out bad labels1187 #user_notes_count1188 counts the user notes1189 votes1190 returns correct values1191 .order_due_date_and_labels_priority1192 sorts issues in order of milestone due date, then label priority1193 .order_labels_priority1194 is expected to eq 21195 .with_label1196 finds the correct issue containing just enhancement label1197 finds the correct issues containing the same label1198 finds the correct issues containing only both labels1199 #spend_time1200 adding time1201 updates the total time spent1202 stores the time change1203 updates issues updated_at1204 subtracting time1205 updates the total time spent1206 stores negative time change1207 when time to subtract exceeds the total time spent1208 raise a validation error1209 #first_contribution?1210 for merge requests1211 is true when you don't have any merged MR1212 handles multiple projects separately1213 for issues1214 is false even without merged MR1215 #matches_cross_reference_regex?1216 issue description with long path string1217 behaves like matches_cross_reference_regex? fails fast1218 fails fast for long strings1219 note with long path string1220 behaves like matches_cross_reference_regex? fails fast1221 fails fast for long strings1222 note with long path string1223 behaves like matches_cross_reference_regex? fails fast1224 fails fast for long strings1225 #supports_time_tracking?1226 issuable_type: :issue, supports_time_tracking: true1227 is expected to eq true1228 issuable_type: :incident, supports_time_tracking: true1229 is expected to eq true1230 issuable_type: :merge_request, supports_time_tracking: true1231 is expected to eq true1232 #supports_severity?1233 issuable_type: :issue, supports_severity: false1234 is expected to eq false1235 issuable_type: :incident, supports_severity: true1236 is expected to eq true1237 issuable_type: :merge_request, supports_severity: false1238 is expected to eq false1239 #supports_escalation?1240 issuable_type: :issue, supports_escalation: false1241 is expected to eq false1242 issuable_type: :incident, supports_escalation: true1243 is expected to eq true1244 issuable_type: :merge_request, supports_escalation: false1245 is expected to eq false1246 #incident_type_issue?1247 issuable_type: :issue, incident: false1248 is expected to eq false1249 issuable_type: :incident, incident: true1250 is expected to eq true1251 issuable_type: :merge_request, incident: false1252 is expected to eq false1253 #supports_issue_type?1254 issuable_type: :issue, supports_issue_type: true1255 is expected to eq true1256 issuable_type: :merge_request, supports_issue_type: false1257 is expected to eq false1258 #supports_confidentiality?1259 issuable_type: :issue, supports_confidentiality: true1260 is expected to eq true1261 issuable_type: :incident, supports_confidentiality: true1262 is expected to eq true1263 issuable_type: :merge_request, supports_confidentiality: false1264 is expected to eq false1265 #severity1266 when issuable is not an incident1267 issuable_type: :issue, severity: "unknown"1268 is expected to eq "unknown"1269 issuable_type: :merge_request, severity: "unknown"1270 is expected to eq "unknown"1271 when issuable type is an incident1272 when incident does not have issuable_severity1273 returns default serverity1274 when incident has issuable_severity1275 returns issuable serverity1276Integration1277 Associations1278 is expected to belong to project required: false inverse_of => integrations1279 is expected to belong to group required: false inverse_of => integrations1280 is expected to have one issue_tracker_data class_name => Integrations::IssueTrackerData inverse_of => integration1281 is expected to have one jira_tracker_data class_name => Integrations::JiraTrackerData inverse_of => integration1282 default values1283 is expected to be alert events1284 is expected to be commit events1285 is expected to be confidential issues events1286 is expected to be confidential note events1287 is expected to be issues events1288 is expected to be job events1289 is expected to be merge requests events1290 is expected to be note events1291 is expected to be pipeline events1292 is expected to be push events1293 is expected to be tag push events1294 is expected to be wiki page events1295 is expected not to be active1296 is expected not to be incident events1297 is expected to eq :common1298 validations1299 is expected to validate that :type cannot be empty/falsy1300 is expected to validate that :type is neither ‹"Integrations::BaseChatNotification"›, ‹"Integrations::BaseCi"›, ‹"Integrations::BaseIssueTracker"›, ‹"Integrations::BaseMonitoring"›, ‹"Integrations::BaseSlackNotification"›, ‹"Integrations::BaseSlashCommands"›, nor ‹"Integrations::BaseThirdPartyWiki"›1301 project_id: 1, group_id: nil, instance: false, valid: true1302 validates the integration1303 project_id: nil, group_id: 1, instance: false, valid: true1304 validates the integration1305 project_id: nil, group_id: nil, instance: true, valid: true1306 validates the integration1307 project_id: nil, group_id: nil, instance: false, valid: false1308 validates the integration1309 project_id: 1, group_id: 1, instance: false, valid: false1310 validates the integration1311 project_id: 1, group_id: nil, instance: false, valid: true1312 validates the integration1313 project_id: 1, group_id: nil, instance: true, valid: false1314 validates the integration1315 project_id: nil, group_id: 1, instance: false, valid: true1316 validates the integration1317 project_id: nil, group_id: 1, instance: true, valid: false1318 validates the integration1319 with existing integrations1320 allows only one instance integration per type1321 allows only one project integration per type1322 allows only one group integration per type1323 Scopes1324 .third_party_wikis1325 returns the right group integration1326 .with_default_settings1327 returns the correct integrations1328 .with_custom_settings1329 returns the correct integrations1330 .by_type1331 when type is "Integrations::JiraService"1332 is expected to contain exactly #<Integrations::Jira id: 12, project_id: 414, created_at: "2023-06-02 06:28:42.819897034 +0000", upda...crypted_properties_iv: "\x87\xAF\xAB$\xDAw\xA4:\xCF\xEB_,", incident_events: false, properties: nil> and #<Integrations::Jira id: 13, project_id: 417, created_at: "2023-06-02 06:28:43.205871203 +0000", upda...pted_properties_iv: "A\x1C\xF3\xC7@\xF3\xCF2\xBA\x850\xD7", incident_events: false, properties: nil>1333 when type is "Integrations::Redmine"1334 is expected to contain exactly #<Integrations::Redmine id: 17, project_id: 420, created_at: "2023-06-02 06:28:44.647141575 +0000", u...crypted_properties_iv: "\x89\xC3\x94/\xD0\x0Fw?\x89DH\xD1", incident_events: false, properties: nil>1335 .for_group1336 returns the right group integration1337 .confidential_note_hooks1338 includes services where confidential_note_events is true1339 excludes services where confidential_note_events is false1340 .alert_hooks1341 includes services where alert_events is true1342 excludes services where alert_events is false1343 .archive_trace_hooks1344 includes services where archive_trace_events is true1345 excludes services where archive_trace_events is false1346 .incident_hooks1347 includes services where incident_events is true1348 excludes services where incident_events is false1349 #operating?1350 is false when the integration is not active1351 is false when the integration is not persisted1352 is true when the integration is active and persisted1353 #testable?1354 when integration is project-level1355 is expected to be testable1356 when integration is not project-level1357 is expected not to be testable1358 #test1359 calls #execute1360 returns a result1361 #project_level?1362 is true when integration has a project1363 is false when integration has no project1364 #group_level?1365 is true when integration has a group1366 is false when integration has no group1367 #instance_level?1368 is true when integration has instance-level integration1369 is false when integration does not have instance-level integration1370 #chat?1371 is true when integration is chat integration1372 is false when integration is not chat integration1373 .find_or_initialize_non_project_specific_integration1374 returns the right integration1375 does not create a new integration1376 .find_or_initialize_all_non_project_specific1377 behaves like integration instances1378 returns the available integration instances1379 does not create integration instances1380 with all existing instances1381 behaves like integration instances1382 returns the available integration instances1383 does not create integration instances1384 with a previous existing integration (:mock_ci) and a new integration (:asana)1385 behaves like integration instances1386 returns the available integration instances1387 does not create integration instances1388 with a few existing instances1389 behaves like integration instances1390 returns the available integration instances1391 does not create integration instances1392 #inheritable?1393 is true for an instance integration1394 is true for a group integration1395 is false for a project integration1396 .build_from_integration1397 when integration is invalid1398 sets integration to inactive1399 when integration is an instance-level integration1400 sets inherit_from_id from integration1401 when integration is a group-level integration1402 sets inherit_from_id from integration1403 build issue tracker from an integration1404 when data is stored in properties1405 behaves like integration creation from an integration1406 creates a correct integration for a project integration1407 creates a correct integration for a group integration1408 when data are stored in separated fields1409 behaves like integration creation from an integration1410 creates a correct integration for a project integration1411 creates a correct integration for a group integration1412 when data are stored in both properties and separated fields1413 behaves like integration creation from an integration1414 creates a correct integration for a project integration1415 creates a correct integration for a group integration1416 .default_integration1417 with an instance-level integration1418 returns the instance integration1419 returns nil for nonexistent integration type1420 with a group integration1421 returns the group integration for a project1422 returns the instance integration for a group1423 with a subgroup1424 returns the closest group integration for a project1425 returns the closest group integration for a subgroup1426 having a integration with custom settings1427 returns the closest group integration for a project1428 having a integration inheriting settings1429 returns the closest group integration which does not inherit from its parent for a project1430 .create_from_active_default_integrations1431 with an active instance-level integration1432 creates an integration from the instance-level integration1433 passing a group1434 creates an integration from the instance-level integration1435 with an active group-level integration1436 creates an integration from the group-level integration1437 there are multiple inheritable integrations, and a duplicate1438 returns the number of successfully created integrations1439 passing a group1440 creates an integration from the group-level integration1441 with an active subgroup1442 creates an integration from the subgroup-level integration1443 passing a group1444 traversal queries1445 recursive1446 creates an integration from the subgroup-level integration1447 having an integration inheriting settings1448 creates an integration from the group-level integration1449 linear1450 creates an integration from the subgroup-level integration1451 having an integration inheriting settings1452 creates an integration from the group-level integration1453 .inherited_descendants_from_self_or_ancestors_from1454 returns the groups and projects inheriting from integration ancestors1455 .integration_name_to_type1456 handles a simple case1457 raises an error if the name is unknown1458 handles all available_integration_names1459 .integration_name_to_model1460 raises an error if integration name is invalid1461 {property}_changed?1462 returns false when the property has not been assigned a new value1463 returns true when the property has been assigned a different value1464 returns true when the property has been assigned a different value twice1465 returns false when the property has been re-assigned the same value1466 returns false when the property has been assigned a new value then saved1467 #properties=1468 supports indifferent access1469 #properties1470 is not mutable1471 {property}_touched?1472 returns false when the property has not been assigned a new value1473 returns true when the property has been assigned a different value1474 returns true when the property has been assigned a different value twice1475 returns true when the property has been re-assigned the same value1476 returns false when the property has been assigned a new value then saved1477 {property}_was1478 returns nil when the property has not been assigned a new value1479 returns the previous value when the property has been assigned a different value1480 returns initial value when the property has been re-assigned the same value1481 returns initial value when the property has been assigned multiple values1482 returns nil when the property has been assigned a new value then saved1483 initialize integration with no properties1484 does not raise error1485 sets data correctly1486 field definitions1487 when the class overrides #fields1488 behaves like #fields1489 does not return the same array1490 behaves like #api_field_names1491 filters out secret fields1492 behaves like #form_fields1493 filters out API only fields1494 when the class uses the field DSL1495 behaves like #fields1496 does not return the same array1497 behaves like #api_field_names1498 filters out secret fields1499 behaves like #form_fields1500 filters out API only fields1501 logging1502 logs info messages using json logger1503 logs error messages using json logger1504 when project is nil1505 logs info messages using json logger1506 logging exceptions1507 logs exceptions using json logger1508 logs exceptions using json logger with a custom message1509 .available_integration_names1510 is expected to include "foo", "bar", and "baz"1511 when `include_project_specific` is false1512 is expected to include "foo" and "baz"1513 is expected not to include "bar"1514 when `include_dev` is false1515 is expected to include "foo" and "bar"1516 is expected not to include "baz"1517 .project_specific_integration_names1518 is expected to include "apple_app_store", "google_play", "jenkins", and "shimo"1519 #secret_fields1520 returns all fields with type `password`1521 returns an empty array if no secret fields exist1522 #to_database_hash1523 does not include the properties key1524 does not include certain attributes1525 saves correctly using insert_all1526 decrypts encrypted properties correctly1527 when the properties are empty1528 is part of the to_database_hash1529 saves correctly using insert_all1530 field DSL1531 checks the value of storage1532 provides prop_accessors1533 provides boolean accessors for checkbox fields1534 provides data fields1535 registers fields in the fields list1536 fields have expected attributes1537 boolean_accessor1538 returns values when initialized without input1539 input: true, method_result: true, predicate_method_result: true1540 has the correct value1541 when using data fields1542 has the correct value1543 input: false, method_result: false, predicate_method_result: false1544 has the correct value1545 when using data fields1546 has the correct value1547 input: 1, method_result: true, predicate_method_result: true1548 has the correct value1549 when using data fields1550 has the correct value1551 input: 0, method_result: false, predicate_method_result: false1552 has the correct value1553 when using data fields1554 has the correct value1555 input: "1", method_result: true, predicate_method_result: true1556 has the correct value1557 when using data fields1558 has the correct value1559 input: "0", method_result: false, predicate_method_result: false1560 has the correct value1561 when using data fields1562 has the correct value1563 input: "true", method_result: true, predicate_method_result: true1564 has the correct value1565 when using data fields1566 has the correct value1567 input: "false", method_result: false, predicate_method_result: false1568 has the correct value1569 when using data fields1570 has the correct value1571 input: "foobar", method_result: nil, predicate_method_result: false1572 has the correct value1573 when using data fields1574 has the correct value1575 input: "", method_result: nil, predicate_method_result: false1576 has the correct value1577 when using data fields1578 has the correct value1579 input: nil, method_result: nil, predicate_method_result: false1580 has the correct value1581 when using data fields1582 has the correct value1583 input: "on", method_result: true, predicate_method_result: true1584 has the correct value1585 when using data fields1586 has the correct value1587 input: "off", method_result: false, predicate_method_result: false1588 has the correct value1589 when using data fields1590 has the correct value1591 input: "yes", method_result: true, predicate_method_result: true1592 has the correct value1593 when using data fields1594 has the correct value1595 input: "no", method_result: false, predicate_method_result: false1596 has the correct value1597 when using data fields1598 has the correct value1599 input: "n", method_result: false, predicate_method_result: false1600 has the correct value1601 when using data fields1602 has the correct value1603 input: "y", method_result: true, predicate_method_result: true1604 has the correct value1605 when using data fields1606 has the correct value1607 input: "t", method_result: true, predicate_method_result: true1608 has the correct value1609 when using data fields1610 has the correct value1611 input: "f", method_result: false, predicate_method_result: false1612 has the correct value1613 when using data fields1614 has the correct value1615 when getter is not defined1616 defines a prop_accessor1617 #attributes1618 does not include properties1619 can be used in assign_attributes without nullifying properties1620 #dup1621 results in distinct ciphertexts, but identical properties1622 when the model supports data-fields1623 creates distinct but identical data-fields1624 #async_execute1625 queues a Integrations::ExecuteWorker1626 when the event is not supported1627 does not queue a worker1628WikiPagePolicy1629 when user is a direct project member1630 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 11631 grants the expected permissions1632 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 11633 grants the expected permissions1634 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 11635 grants the expected permissions1636 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 11637 grants the expected permissions1638 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 11639 grants the expected permissions1640 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 11641 grants the expected permissions1642 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11643 grants the expected permissions1644 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01645 grants the expected permissions1646 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11647 grants the expected permissions1648 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11649 grants the expected permissions1650 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01651 grants the expected permissions1652 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01653 grants the expected permissions1654 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01655 grants the expected permissions1656 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01657 grants the expected permissions1658 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01659 grants the expected permissions1660 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01661 grants the expected permissions1662 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 11663 grants the expected permissions1664 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 11665 grants the expected permissions1666 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 11667 grants the expected permissions1668 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 11669 grants the expected permissions1670 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 11671 grants the expected permissions1672 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 01673 grants the expected permissions1674 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11675 grants the expected permissions1676 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01677 grants the expected permissions1678 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11679 grants the expected permissions1680 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11681 grants the expected permissions1682 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01683 grants the expected permissions1684 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01685 grants the expected permissions1686 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01687 grants the expected permissions1688 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01689 grants the expected permissions1690 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01691 grants the expected permissions1692 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01693 grants the expected permissions1694 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11695 grants the expected permissions1696 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01697 grants the expected permissions1698 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11699 grants the expected permissions1700 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11701 grants the expected permissions1702 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01703 grants the expected permissions1704 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01705 grants the expected permissions1706 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01707 grants the expected permissions1708 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01709 grants the expected permissions1710 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01711 grants the expected permissions1712 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01713 grants the expected permissions1714 when user is an inherited member from the group1715 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 11716 grants the expected permissions1717 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 11718 grants the expected permissions1719 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 11720 grants the expected permissions1721 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 11722 grants the expected permissions1723 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 11724 grants the expected permissions1725 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 11726 grants the expected permissions1727 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11728 grants the expected permissions1729 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01730 grants the expected permissions1731 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11732 grants the expected permissions1733 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11734 grants the expected permissions1735 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01736 grants the expected permissions1737 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01738 grants the expected permissions1739 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01740 grants the expected permissions1741 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01742 grants the expected permissions1743 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01744 grants the expected permissions1745 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01746 grants the expected permissions1747 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 11748 grants the expected permissions1749 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 11750 grants the expected permissions1751 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 11752 grants the expected permissions1753 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 11754 grants the expected permissions1755 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 11756 grants the expected permissions1757 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 01758 grants the expected permissions1759 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11760 grants the expected permissions1761 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01762 grants the expected permissions1763 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11764 grants the expected permissions1765 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11766 grants the expected permissions1767 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01768 grants the expected permissions1769 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01770 grants the expected permissions1771 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01772 grants the expected permissions1773 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01774 grants the expected permissions1775 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01776 grants the expected permissions1777 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01778 grants the expected permissions1779 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11780 grants the expected permissions1781 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01782 grants the expected permissions1783 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11784 grants the expected permissions1785 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11786 grants the expected permissions1787 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01788 grants the expected permissions1789 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01790 grants the expected permissions1791 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01792 grants the expected permissions1793 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01794 grants the expected permissions1795 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01796 grants the expected permissions1797 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01798 grants the expected permissions1799NotesFinder1800 #execute1801 finds notes on merge requests1802 finds notes on snippets1803 excludes notes on commits the author can't download1804 succeeds when no notes found1805 when notes filter is present1806 returns only user notes when using only_comments filter1807 returns only system notes when using only_activity filters1808 gets all notes1809 on restricted projects1810 publicly excludes notes on merge requests1811 publicly excludes notes on issues1812 publicly excludes notes on snippets1813 for notes on public issue in public project1814 shows all notes when the current_user has reporter access1815 shows only public notes when the current_user has guest access1816 for notes from users who have been banned1817 when :hidden_notes feature is not enabled1818 when user is not an admin1819 is expected to include #<Note id: 28, note: [FILTERED], noteable_type: "Issue", author_id: 490, created_at: "2023-06-02 06:3...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1820 when @current_user is nil1821 is expected to be empty1822 when :hidden_notes feature is enabled1823 when user is an admin1824 is expected to include #<Note id: 30, note: [FILTERED], noteable_type: "Issue", author_id: 490, created_at: "2023-06-02 06:3...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1825 when user is not an admin1826 is expected not to include #<Note id: 31, note: [FILTERED], noteable_type: "Issue", author_id: 490, created_at: "2023-06-02 06:3...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1827 when @current_user is nil1828 is expected to be empty1829 for target type1830 finds only notes for the selected type1831 for target1832 finds all notes1833 finds notes on merge requests1834 finds notes on snippets1835 raises an exception for an invalid target_type1836 filters out old notes1837 confidential issue notes1838 returns notes if user can see the issue1839 raises an error if user can not see the issue1840 raises an error for project members with guest role1841 when targeting personal_snippet1842 snippet_visibility: 0, current_user: author, access: true1843 returns the proper access1844 snippet_visibility: 0, current_user: admin, access: true1845 returns the proper access1846 snippet_visibility: 0, current_user: user, access: false1847 returns the proper access1848 snippet_visibility: 20, current_user: author, access: true1849 returns the proper access1850 snippet_visibility: 20, current_user: user, access: true1851 returns the proper access1852 for explicit target1853 returns the expected notes1854 returns the expected notes when last_fetched_at is given1855 fails when nil is provided1856 sorting1857 allows sorting1858 defaults to sort by .fresh1859 .search1860 returns notes with matching content1861 returns notes with matching content regardless of the casing1862 returns commit notes user can access1863 confidential issues1864 returns notes with matching content if user can see the issue1865 does not return notes with matching content if user can not see the issue1866 does not return notes with matching content for project members with guest role1867 does not return notes with matching content for unauthenticated users1868 inlines SQL filters on subqueries for performance1869 project_id check1870 search filter1871 #target1872 for a issue target1873 returns the issue1874 for a merge request target1875 returns the merge_request1876 for a snippet target1877 returns the snippet1878 for a commit target1879 returns the commit1880 user does not have permission to read_code1881 returns nil1882 target_iid1883 finds issues by iid1884 finds merge requests by iid1885 returns nil if both target_id and target_iid are not given1886 prioritizes target_id over target_iid1887Gitlab::Conflict::File1888 delegates1889 is expected to delegate #type to the #raw object1890 is expected to delegate #content to the #raw object1891 is expected to delegate #path to the #raw object1892 is expected to delegate #ancestor_path to the #raw object1893 is expected to delegate #their_path to the #raw object1894 is expected to delegate #our_path to the #raw object1895 is expected to delegate #our_mode to the #raw object1896 is expected to delegate #our_blob to the #raw object1897 is expected to delegate #repository to the #raw object1898 #resolve_lines1899 raises ResolutionError when passed a hash without resolutions for all sections1900 when resolving everything to the same side1901 has the correct number of lines1902 has content matching the chosen lines1903 with mixed resolutions1904 has the correct number of lines1905 returns a file containing only the chosen parts of the resolved sections1906 #highlight_lines!1907 is called implicitly when rich_text is accessed on a line1908 sets the rich_text of the lines matching the text content1909 highlights the lines correctly1910 #diff_lines_for_serializer1911 assigns conflict types to the diff lines1912 swaps the new and old positions around1913 does not add a match line to the end of the section1914 when there are unchanged trailing lines1915 assign conflict types and adds match line to the end of the section1916 #sections1917 only inserts match lines when there is a gap between sections1918 sets conflict to false for sections with only unchanged lines1919 only includes a maximum of CONTEXT_LINES (plus an optional match line) in context sections1920 sets conflict to true for sections with only changed lines1921 adds unique IDs to conflict sections, and not to other sections1922 with an example file1923 sets the correct match line headers1924 does not add match lines where they are not needed1925 creates context sections of the correct length1926 #as_json1927 includes the blob path for the file1928 includes the blob icon for the file1929 with the full_content option passed1930 includes the full content of the conflict1931 #conflict_type1932 ancestor_path: "/ancestor/path", their_path: "/their/path", our_path: "/our/path", renamed_file?: false, result: :both_modified1933 is expected to eq :both_modified1934 ancestor_path: "/ancestor/path", their_path: "", our_path: "/our/path", renamed_file?: false, result: :modified_source_removed_target1935 is expected to eq :modified_source_removed_target1936 ancestor_path: "/ancestor/path", their_path: "/their/path", our_path: "", renamed_file?: false, result: :modified_target_removed_source1937 is expected to eq :modified_target_removed_source1938 ancestor_path: "", their_path: "/their/path", our_path: "/our/path", renamed_file?: false, result: :both_added1939 is expected to eq :both_added1940 ancestor_path: "", their_path: "", our_path: "/our/path", renamed_file?: false, result: :removed_target_renamed_source1941 is expected to eq :removed_target_renamed_source1942 ancestor_path: "", their_path: "", our_path: "/our/path", renamed_file?: true, result: :renamed_same_file1943 is expected to eq :renamed_same_file1944 ancestor_path: "", their_path: "/their/path", our_path: "", renamed_file?: false, result: :removed_source_renamed_target1945 is expected to eq :removed_source_renamed_target1946Packages::Npm::GenerateMetadataService1947 # order random1948 #versions1949 has_dependencies: true, has_metadatum: true1950 is expected to be a kind of Hash1951 is expected to match schema "public_api/v4/packages/npm_package_version"1952 is expected to match schema "public_api/v4/packages/npm_package_version"1953 is expected to be blank1954 avoids N+1 database queries1955 for dependencies1956 is expected to be any1957 is expected to equal nil1958 is expected to be any1959 is expected to equal nil1960 is expected to be any1961 is expected to equal nil1962 is expected to be any1963 is expected to equal nil1964 for metadatum1965 is expected not to equal nil1966 is expected to equal nil1967 is expected not to equal nil1968 is expected to equal nil1969 is expected not to equal nil1970 is expected to equal nil1971 is expected not to equal nil1972 is expected to equal nil1973 is expected not to equal nil1974 is expected to equal nil1975 is expected not to equal nil1976 is expected to equal nil1977 has_dependencies: false, has_metadatum: true1978 is expected to be a kind of Hash1979 is expected to match schema "public_api/v4/packages/npm_package_version"1980 is expected to match schema "public_api/v4/packages/npm_package_version"1981 is expected to be blank1982 avoids N+1 database queries1983 for dependencies1984 is expected to equal nil1985 is expected to equal nil1986 is expected to equal nil1987 is expected to equal nil1988 is expected to equal nil1989 is expected to equal nil1990 is expected to equal nil1991 is expected to equal nil1992 for metadatum1993 is expected not to equal nil1994 is expected to equal nil1995 is expected not to equal nil1996 is expected to equal nil1997 is expected not to equal nil1998 is expected to equal nil1999 is expected not to equal nil2000 is expected to equal nil2001 is expected not to equal nil2002 is expected to equal nil2003 is expected not to equal nil2004 is expected to equal nil2005 has_dependencies: true, has_metadatum: false2006 is expected to be a kind of Hash2007 is expected to match schema "public_api/v4/packages/npm_package_version"2008 is expected to match schema "public_api/v4/packages/npm_package_version"2009 is expected to be blank2010 avoids N+1 database queries2011 for dependencies2012 is expected to be any2013 is expected to equal nil2014 is expected to be any2015 is expected to equal nil2016 is expected to be any2017 is expected to equal nil2018 is expected to be any2019 is expected to equal nil2020 for metadatum2021 is expected to equal nil2022 is expected to equal nil2023 is expected to equal nil2024 is expected to equal nil2025 is expected to equal nil2026 is expected to equal nil2027 is expected to equal nil2028 is expected to equal nil2029 is expected to equal nil2030 is expected to equal nil2031 is expected to equal nil2032 is expected to equal nil2033 has_dependencies: false, has_metadatum: false2034 is expected to be a kind of Hash2035 is expected to match schema "public_api/v4/packages/npm_package_version"2036 is expected to match schema "public_api/v4/packages/npm_package_version"2037 is expected to be blank2038 avoids N+1 database queries2039 for dependencies2040 is expected to equal nil2041 is expected to equal nil2042 is expected to equal nil2043 is expected to equal nil2044 is expected to equal nil2045 is expected to equal nil2046 is expected to equal nil2047 is expected to equal nil2048 for metadatum2049 is expected to equal nil2050 is expected to equal nil2051 is expected to equal nil2052 is expected to equal nil2053 is expected to equal nil2054 is expected to equal nil2055 is expected to equal nil2056 is expected to equal nil2057 is expected to equal nil2058 is expected to equal nil2059 is expected to equal nil2060 is expected to equal nil2061 with package files pending destruction2062 does not return them2063 #dist_tags2064 for packages without tags2065 is expected to be a kind of Hash2066 is expected to eq "2.0.11"2067 avoids N+1 database queries2068 for packages with tags2069 is expected to be a kind of Hash2070 is expected to eq "2.0.4"2071 is expected to eq "2.0.4"2072 is expected to eq "2.0.6"2073 is expected to eq "2.0.11"2074 is expected to eq "2.0.11"2075 avoids N+1 database queries2076 when passing only_dist_tags: true2077 returns only dist tags2078Gitlab::BitbucketServerImport::Importer2079 #import_repository2080 adds a remote2081 raises a Gitlab::Git::CommandError in the fetch2082 raises an unhandled exception in the fetch2083 #import_pull_requests2084 imports merge event2085 falls back to comments if diff comments fail to validate2086 reports an error if an exception is raised2087 pull request author user mapping2088 when bitbucket_server_user_mapping_by_username feature flag is disabled2089 when email is not present2090 maps user2091 when email is present2092 maps user2093 when bitbucket_server_user_mapping_by_username feature flag is enabled2094 when username is not present2095 maps user2096 when username is present2097 maps user2098 when user is not found2099 maps importer user2100 comments2101 when bitbucket_server_user_mapping_by_username feature flag is disabled2102 imports comments2103 when bitbucket_server_user_mapping_by_username feature flag is enabled2104 imports comments2105 when username is not present2106 defaults to import user2107 when username is present2108 maps by username2109 metrics2110 counts and measures duration of imported projects2111 counts imported pull requests2112 threaded discussions2113 when bitbucket_server_user_mapping_by_username feature flag is disabled2114 imports threaded discussions2115 when bitbucket_server_user_mapping_by_username feature flag is enabled2116 imports threaded discussions2117 when username is not present2118 defaults to import user2119 when user is not found2120 maps importer user2121 import pull requests with caching2122 only imports one Merge Request, as the other on is in the cache2123 inaccessible branches2124 #restore_branches2125 #delete_temp_branches2126 lfs files2127 downloads lfs objects if lfs_enabled is enabled for project2128 adds the error message when the lfs download fails2129Clusters::Agent2130 is expected to belong to created_by_user class_name => User optional: true2131 is expected to belong to project class_name => ::Project required: false2132 is expected to have many agent_tokens class_name => Clusters::AgentToken order => #<Arel::Nodes::NullsLast:0x00007f3e3084eb10>2133 is expected to have many active_agent_tokens class_name => Clusters::AgentToken order => #<Arel::Nodes::NullsLast:0x00007f3e57a96748>2134 is expected to have many ci_access_group_authorizations class_name => Clusters::Agents::Authorizations::CiAccess::GroupAuthorization2135 is expected to have many ci_access_authorized_groups through ci_access_group_authorizations2136 is expected to have many ci_access_project_authorizations class_name => Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization2137 is expected to have many ci_access_authorized_projects class_name => ::Project through ci_access_project_authorizations2138 is expected to have many environments class_name => ::Environment2139 is expected to validate that :name cannot be empty/falsy2140 is expected to validate that the length of :name is at most 632141 is expected to validate that :name is case-sensitively unique within the scope of :project_id2142 scopes2143 .ordered_by_name2144 is expected to eq ["agent-a", "agent-b", "agent-c", "agent-d"]2145 .with_name2146 is expected to contain exactly #<Clusters::Agent id: 17, created_at: "2023-06-02 06:32:17.160114094 +0000", updated_at: "2023-06-02 ...+0000", project_id: 667, name: "matching-name", created_by_user_id: 749, has_vulnerabilities: false>2147 .has_vulnerabilities2148 when value is not provided2149 returns agents which have vulnerabilities2150 when value is provided2151 as true2152 returns agents which have vulnerabilities2153 as false2154 returns agents which do not have vulnerabilities2155 validation2156 name validation2157 rejects names that do not conform to RFC 11232158 accepts valid names2159 #has_access_to?2160 has access to own project2161 does not have access to other projects2162 #connected?2163 agent has never connected2164 is expected to be falsey2165 agent has connected, but not recently2166 is expected to be falsey2167 agent has connected recently2168 is expected to be truthy2169 agent token has been revoked2170 is expected to be falsey2171 agent has multiple tokens2172 is expected to be truthy2173 #activity_event_deletion_cutoff2174 is expected to within one second of 2023-06-02 04:32:20 UTC2175 #ci_access_authorized_for?2176 is expected to eq false2177 with project-level authorization2178 user_role: :guest, allowed: false2179 is expected to eq false2180 user_role: :reporter, allowed: false2181 is expected to eq false2182 user_role: :developer, allowed: true2183 is expected to eq true2184 user_role: :maintainer, allowed: true2185 is expected to eq true2186 user_role: :owner, allowed: true2187 is expected to eq true2188 when expose_authorized_cluster_agents feature flag is disabled2189 is expected to eq false2190 with group-level authorization2191 user_role: :guest, allowed: false2192 is expected to eq false2193 user_role: :reporter, allowed: false2194 is expected to eq false2195 user_role: :developer, allowed: true2196 is expected to eq true2197 user_role: :maintainer, allowed: true2198 is expected to eq true2199 user_role: :owner, allowed: true2200 is expected to eq true2201 when expose_authorized_cluster_agents feature flag is disabled2202 is expected to eq false2203 #user_access_authorized_for?2204 is expected to eq false2205 with project-level authorization2206 user_role: :guest, allowed: false2207 is expected to eq false2208 user_role: :reporter, allowed: false2209 is expected to eq false2210 user_role: :developer, allowed: true2211 is expected to eq true2212 user_role: :maintainer, allowed: true2213 is expected to eq true2214 user_role: :owner, allowed: true2215 is expected to eq true2216 when expose_authorized_cluster_agents feature flag is disabled2217 is expected to eq false2218 with group-level authorization2219 user_role: :guest, allowed: false2220 is expected to eq false2221 user_role: :reporter, allowed: false2222 is expected to eq false2223 user_role: :developer, allowed: true2224 is expected to eq true2225 user_role: :maintainer, allowed: true2226 is expected to eq true2227 user_role: :owner, allowed: true2228 is expected to eq true2229 when expose_authorized_cluster_agents feature flag is disabled2230 is expected to eq false2231 #user_access_config2232 is expected to be nil2233 with user_access project authorizations2234 is expected to eq {}2235 when access_as keyword exists2236 is expected to eq {"access_as"=>{"agent"=>{}}}2237 with user_access group authorizations2238 is expected to eq {}2239 when access_as keyword exists2240 is expected to eq {"access_as"=>{"agent"=>{}}}2241MergeRequests::ReopenService2242 #execute2243 caches merge request closing issues2244 updates metrics2245 calls the merge request activity counter2246 refreshes the number of open merge requests for a valid MR2247 behaves like cache counters invalidator2248 invalidates counter cache for assignees2249 behaves like merge request reviewers cache counters invalidator2250 invalidates counter cache for reviewers2251 valid params2252 is expected to be valid2253 is expected to be opened2254 executes hooks with reopen action2255 sends email to user2 about reopen of merge_request2256 destroys cleanup schedule record2257 clears the cached merge_ref_sha2258 note creation2259 creates resource state event about merge_request reopen2260 current user is not authorized to reopen merge request2261 does not reopen the merge request2262Gitlab::ImportExport::Project::ObjectBuilder2263 request store is not active2264 ignore cache initialize2265 request store is active2266 initialize cache in memory2267 cache object when first time find the object2268 read from cache when object has been cached2269 labels2270 finds the existing group label2271 finds the existing group label in root ancestor2272 creates a new project label2273 milestones2274 finds the existing group milestone2275 finds the existing group milestone in root ancestor2276 creates a new milestone2277 with clashing iid2278 creates milestone and claims iid for the new milestone2279 merge_request2280 finds the existing merge_request2281 creates a new merge_request2282 merge request diff commit users2283 finds the existing user2284 creates a new user2285 merge request diff commits2286 when the "committer" object is present2287 uses this object as the committer2288 when the "committer" object is missing2289 creates one from the committer name and Email2290 when the "commit_author" object is present2291 uses this object as the author2292 when the "commit_author" object is missing2293 creates one from the author name and Email2294 #find_or_create_diff_commit_user2295 caches the results2296 when the user already exists2297 returns the existing user2298 when the user does not exist2299 creates the user2300GroupProjectsFinder2301 with a group member current user2302 only shared2303 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, and #<Project id:720 namespace521/3>>2304 with ancestor groups projects2305 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, and #<Project id:720 namespace521/3>>2306 with subgroups projects2307 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, and #<Project id:720 namespace521/3>>2308 only owned2309 with subgroups projects2310 is expected to contain exactly #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:723 group404/group405/group406/6>>, and #<Project id:724 group404/group405/group406/7>>2311 with ancestor group projects2312 is expected to contain exactly #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:725 group404/8>>, #<Project id:726 group404/9>>, and #<Project id:727 group404/10>>2313 with ancestor groups and subgroups projects2314 is expected to contain exactly #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:725 group404/8>>, #<Project id:726 group404/9>>, #<Project id:727 group404/10>>, #<Project id:724 group404/group405/group406/7>>, and #<Project id:723 group404/group405/group406/6>>2315 without subgroups and ancestor group projects2316 is expected to contain exactly #<Project id:719 group404/group405/2>> and #<Project id:718 group404/group405/1>>2317 when user is member only of a subgroup2318 with ancestor groups and subgroups projects2319 does not return parent group projects2320 all2321 with subgroups projects2322 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, #<Project id:720 namespace521/3>>, #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:723 group404/group405/group406/6>>, and #<Project id:724 group404/group405/group406/7>>2323 without subgroups projects2324 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, #<Project id:720 namespace521/3>>, #<Project id:719 group404/group405/2>>, and #<Project id:718 group404/group405/1>>2325 with min access level2326 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, #<Project id:720 namespace521/3>>, #<Project id:719 group404/group405/2>>, and #<Project id:718 group404/group405/1>>2327 without group member current_user2328 only shared2329 without external user2330 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, and #<Project id:720 namespace521/3>>2331 with external user2332 is expected to contain exactly #<Project id:721 namespace522/4>> and #<Project id:720 namespace521/3>>2333 only owned2334 without external user2335 with subgroups projects2336 is expected to contain exactly #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:723 group404/group405/group406/6>>, and #<Project id:724 group404/group405/group406/7>>2337 with ancestor groups projects2338 is expected to contain exactly #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:725 group404/8>>, and #<Project id:726 group404/9>>2339 with ancestor groups and subgroups projects2340 is expected to contain exactly #<Project id:719 group404/group405/2>>, #<Project id:718 group404/group405/1>>, #<Project id:726 group404/9>>, #<Project id:725 group404/8>>, #<Project id:724 group404/group405/group406/7>>, and #<Project id:723 group404/group405/group406/6>>2341 without subgroups projects2342 is expected to contain exactly #<Project id:719 group404/group405/2>> and #<Project id:718 group404/group405/1>>2343 with external user2344 with subgroups projects2345 is expected to contain exactly #<Project id:718 group404/group405/1>> and #<Project id:723 group404/group405/group406/6>>2346 with ancestor groups projects2347 is expected to contain exactly #<Project id:718 group404/group405/1>> and #<Project id:725 group404/8>>2348 with ancestor groups and subgroups projects2349 is expected to contain exactly #<Project id:718 group404/group405/1>>, #<Project id:725 group404/8>>, and #<Project id:723 group404/group405/group406/6>>2350 without subgroups projects2351 is expected to eq [#<Project id:718 group404/group405/1>>]2352 all2353 with subgroups projects2354 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, #<Project id:720 namespace521/3>>, #<Project id:718 group404/group405/1>>, and #<Project id:723 group404/group405/group406/6>>2355 without subgroups projects2356 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, #<Project id:720 namespace521/3>>, and #<Project id:718 group404/group405/1>>2357 with an admin current user2358 when admin mode is enabled2359 only shared2360 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, and #<Project id:720 namespace521/3>>2361 only owned2362 is expected to contain exactly #<Project id:719 group404/group405/2>> and #<Project id:718 group404/group405/1>>2363 all2364 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:721 namespace522/4>>, #<Project id:720 namespace521/3>>, #<Project id:719 group404/group405/2>>, and #<Project id:718 group404/group405/1>>2365 when admin mode is disabled2366 only shared2367 is expected to contain exactly #<Project id:722 namespace523/5>> and #<Project id:720 namespace521/3>>2368 only owned2369 is expected to contain exactly #<Project id:718 group404/group405/1>>2370 all2371 is expected to contain exactly #<Project id:722 namespace523/5>>, #<Project id:720 namespace521/3>>, and #<Project id:718 group404/group405/1>>2372 no user2373 only shared2374 is expected to contain exactly #<Project id:722 namespace523/5>> and #<Project id:720 namespace521/3>>2375 only owned2376 with subgroups projects2377 is expected to contain exactly #<Project id:718 group404/group405/1>> and #<Project id:723 group404/group405/group406/6>>2378 without subgroups projects2379 is expected to eq [#<Project id:718 group404/group405/1>>]2380 feature availability2381 without issues and merge request enabled2382 is expected to contain exactly #<Project id:718 group404/group405/1>>, #<Project id:720 namespace521/3>>, #<Project id:722 namespace523/5>>, #<Project id:729 namespace530/9>>, and #<Project id:730 namespace531/10>>2383 with issues enabled2384 is expected to contain exactly #<Project id:718 group404/group405/1>>, #<Project id:720 namespace521/3>>, #<Project id:722 namespace523/5>>, and #<Project id:732 namespace533/10>>2385 with merge request enabled2386 is expected to contain exactly #<Project id:718 group404/group405/1>>, #<Project id:720 namespace521/3>>, #<Project id:722 namespace523/5>>, and #<Project id:733 namespace534/9>>2387 with issues and merge request enabled2388 is expected to contain exactly #<Project id:718 group404/group405/1>>, #<Project id:720 namespace521/3>>, and #<Project id:722 namespace523/5>>2389 limiting2390 without limiting2391 returns all projects2392 with limiting2393 returns only the number of projects specified by the limit2394WorkItem2395 associations2396 is expected to belong to namespace required: false2397 is expected to have one work_item_parent class_name => WorkItem2398 has one `parent_link`2399 has many `work_item_children`2400 has many `work_item_children_by_relative_position`2401 has many `child_links`2402 .work_item_children_by_relative_position2403 when ordered by relative position and created_at2404 oldest_item_position: nil, middle_item_position: nil, newest_item_position: nil, expected_order: lazy { [oldest_item, middle_item, newest_item] }2405 is expected to eq [#<WorkItem id:182 namespace538/project-752#2>, #<WorkItem id:183 namespace538/project-752#3>, #<WorkItem id:184 namespace538/project-752#4>]2406 oldest_item_position: nil, middle_item_position: nil, newest_item_position: 1, expected_order: lazy { [newest_item, oldest_item, middle_item] }2407 is expected to eq [#<WorkItem id:184 namespace538/project-752#4>, #<WorkItem id:182 namespace538/project-752#2>, #<WorkItem id:183 namespace538/project-752#3>]2408 oldest_item_position: nil, middle_item_position: 1, newest_item_position: 2, expected_order: lazy { [middle_item, newest_item, oldest_item] }2409 is expected to eq [#<WorkItem id:183 namespace538/project-752#3>, #<WorkItem id:184 namespace538/project-752#4>, #<WorkItem id:182 namespace538/project-752#2>]2410 oldest_item_position: 2, middle_item_position: 3, newest_item_position: 1, expected_order: lazy { [newest_item, oldest_item, middle_item] }2411 is expected to eq [#<WorkItem id:184 namespace538/project-752#4>, #<WorkItem id:182 namespace538/project-752#2>, #<WorkItem id:183 namespace538/project-752#3>]2412 oldest_item_position: 1, middle_item_position: 2, newest_item_position: 3, expected_order: lazy { [oldest_item, middle_item, newest_item] }2413 is expected to eq [#<WorkItem id:182 namespace538/project-752#2>, #<WorkItem id:183 namespace538/project-752#3>, #<WorkItem id:184 namespace538/project-752#4>]2414 #noteable_target_type_name2415 returns `issue` as the target name2416 #widgets2417 returns instances of supported widgets2418 #get_widget2419 returns widget object2420 when widget does not exist2421 returns nil2422 #supports_assignee?2423 is expected to eq true2424 is expected to eq true2425 is expected to eq false2426 is expected to eq false2427 is expected to eq true2428 is expected to eq true2429 is expected to eq true2430 #supported_quick_action_commands2431 returns quick action commands supported for all work items2432 when work item supports the assignee widget2433 returns assignee related quick action commands2434 when work item does not the assignee widget2435 omits assignee related quick action commands2436 when work item supports the labels widget2437 returns labels related quick action commands2438 when work item does not support the labels widget2439 omits labels related quick action commands2440 when work item supports the start and due date widget2441 returns due date related quick action commands2442 when work item does not support the start and due date widget2443 omits due date related quick action commands2444 transform_quick_action_params2445 correctly separates widget params from regular params2446 callbacks2447 record_create_action2448 records the creation action after saving2449 behaves like issue_edit snowplow tracking2450 behaves like Snowplow event tracking with RedisHLL context2451 behaves like Snowplow event tracking2452 is emitted2453 work item namespace2454 sets the namespace_id2455 when work item is saved2456 sets the namespace_id2457 when existing work item is saved2458 sets the namespace id2459 validations2460 issue_type2461 when a valid type2462 is expected to eq true2463 empty type2464 is expected to eq false2465 confidentiality2466 when parent and child are confidential2467 does not allow to make child non-confidential2468 allows to make parent non-confidential2469 when parent and child are non-confidential2470 does not allow to make parent confidential2471 allows to make child confidential2472 when creating new child2473 does not allow to set confidential parent2474 #link_reference_pattern2475 with work item url2476 matches with expected attributes2477 with hierarchy2478 #ancestors2479 returns all ancestors in ascending order2480 returns an empty array if there are no ancestors2481 #same_type_base_and_ancestors2482 returns self and all ancestors of the same type in ascending order2483 returns self if there are no ancestors of the same type2484 #same_type_descendants_depth2485 returns max descendants depth including self2486 returns 1 if there are no descendants2487 #allowed_work_item_type_change2488 is possible to change between all types2489 with ParentLink relation2490 with hierarchy restrictions2491 when child items restrict the type change2492 when child items are compatible with the new type2493 allows to change types2494 when child items are not compatible with the new type2495 does not allow to change types2496 when the parent restricts the type change2497 does not allow to change types2498 with hierarchy depth restriction2499 with the highest ancestor2500 behaves like validates the depth correctly2501 when it is valid2502 allows to change types2503 when it is not valid2504 does not allow to change types2505 with a child item2506 behaves like validates the depth correctly2507 when it is valid2508 allows to change types2509 when it is not valid2510 does not allow to change types2511 with the last child item2512 behaves like validates the depth correctly2513 when it is valid2514 allows to change types2515 when it is not valid2516 does not allow to change types2517 when ancestor is still the old type2518 when it exceeds maximum depth2519 does not allow to change types2520 when it does not exceed maximum depth2521 does allow to change types2522Route2523 relationships2524 is expected to belong to source required: false2525 is expected to belong to namespace required: false2526 validations2527 is expected to validate that :source cannot be empty/falsy2528 is expected to validate that :path cannot be empty/falsy2529 is expected to validate that :path is case-insensitively unique2530 callbacks2531 after update2532 calls #create_redirect_for_old_path2533 calls #delete_conflicting_redirects2534 after create2535 calls #delete_conflicting_redirects2536 .inside_path2537 returns correct routes2538 .for_routable_type2539 returns correct routes2540 #rename_descendants2541 path update2542 when route name is set2543 updates children routes with new path2544 when route name is nil2545 does not fail2546 when conflicting redirects exist2547 deletes the conflicting redirects2548 name update2549 updates children routes with new path2550 handles a rename from nil2551 #create_redirect_for_old_path2552 if the path changed2553 creates a RedirectRoute for the old path2554 #create_redirect2555 creates a RedirectRoute with the same source2556 when the source is a Project2557 creates a RedirectRoute2558 when the source is not a project2559 creates a RedirectRoute2560 #delete_conflicting_redirects2561 deletes the redirect2562 when a redirect route with the same path exists2563 when the redirect route has matching case2564 deletes the redirect2565 when redirect routes with paths descending from the route path exists2566 deletes all redirects with paths that descend from the route path2567 when the redirect route is differently cased2568 deletes the redirect2569 #conflicting_redirects2570 returns an ActiveRecord::Relation2571 returns the redirect routes2572 when a redirect route with the same path exists2573 when the redirect route has matching case2574 returns the redirect route2575 when redirect routes with paths descending from the route path exists2576 returns the redirect routes2577 when the redirect route is differently cased2578 returns the redirect route2579 conflicting routes validation2580 when there is a conflicting route2581 fails validation2582 when deleting the conflicting route2583 does not delete the original route2584 when there are no conflicting routes2585 passes validation2586Gitlab::GithubImport::Importer::PullRequestImporter2587 #execute2588 imports the pull request2589 #create_merge_request2590 when the author could be found2591 imports the pull request with the pull request author as the merge request author2592 returns the created merge request2593 when the source and target branch are identical2594 uses a generated source branch name for the merge request2595 when the import fails due to a foreign key error2596 does not raise any errors2597 when the merge request already exists2598 returns the existing merge request2599 when the author could not be found2600 imports the pull request with the project creator as the merge request author2601 when merge request is invalid2602 fails validation2603 #set_merge_request_assignees2604 when pull request has an assignee2605 sets merge request assignees2606 when pull request does not have any assignees2607 does not set merge request assignees2608 #insert_git_data2609 does not create the source branch if merge request is merged2610 creates a merge request diff and sets it as the latest2611 creates the merge request diff commits2612 when merge request is open2613 creates the source branch2614 is able to retry on pre-receive errors2615 ignores Git command errors when creating a branch2616 ignores Git PreReceive errors when creating a branch2617 when the merge request exists2618 creates the merge request diffs if they do not yet exist2619Gitlab::Database::BackgroundMigration::BatchedMigration2620 is expected to be a kind of Gitlab::Database::SharedModel(abstract)2621 associations2622 is expected to have many batched_jobs2623 #last_job2624 returns the batched job with highest max_value2625 validations2626 is expected to validate that :job_arguments is case-sensitively unique within the scope of :job_class_name, :table_name, and :column_name2627 when there are failed jobs2628 raises an exception2629 when the jobs are completed2630 finishes the migration2631 state machine2632 when a migration is executed2633 updates the started_at2634 #pause!2635 when an invalid transition is applied2636 raises an exception2637 raises an exception2638 raises an exception2639 when a valid transition is applied2640 moves to pause2641 moves to pause2642 #execute!2643 when an invalid transition is applied2644 raises an exception2645 raises an exception2646 when a valid transition is applied2647 moves to active2648 moves to active2649 moves to active2650 #finish!2651 when an invalid transition is applied2652 raises an exception2653 when a valid transition is applied2654 moves to active2655 moves to active2656 moves to active2657 moves to active2658 #failure!2659 when an invalid transition is applied2660 raises an exception2661 raises an exception2662 when a valid transition is applied2663 moves to active2664 moves to active2665 moves to active2666 .valid_status2667 returns valid status2668 .queue_order2669 returns batched migrations ordered by their id2670 .ordered_by_created_at_desc2671 returns batched migrations ordered by created_at (DESC)2672 .find_executable2673 when the migration does not exist2674 returns nil2675 when the migration is not active2676 returns nil2677 when the migration is on hold2678 returns nil2679 when the migration is not available for the current connection2680 returns nil2681 when ther migration exists and is executable2682 returns the migration2683 .active_migrations_distinct_on_table2684 returns one pending executable migration per table2685 returns epmty collection when there are no pending executable migrations2686 .created_after2687 only returns migrations created after the specified time2688 .queued2689 returns active and paused migrations2690 .finalizing2691 returns only finalizing migrations2692 .successful_rows_counts2693 returns totals from successful jobs2694 #reset_attempts_of_blocked_jobs!2695 sets the number of attempts to zero for blocked jobs2696 #interval_elapsed?2697 when the migration has no last_job2698 returns true2699 when the migration has a last_job2700 when the last_job is less than an interval old2701 returns false2702 when the last_job is exactly an interval old2703 returns true2704 when the last_job is more than an interval old2705 returns true2706 when an interval variance is given2707 when the last job is less than an interval with variance old2708 returns false2709 when the last job is more than an interval with variance old2710 returns true2711 #create_batched_job!2712 creates a batched_job with the correct batch configuration2713 #next_min_value2714 when a previous job exists2715 returns the next value after the previous maximum2716 when a previous job does not exist2717 returns the migration minimum value2718 #job_class2719 returns the class of the job for the migration2720 #batch_class2721 returns the class of the batch strategy for the migration2722 #retry_failed_jobs!2723 when there are failed migration jobs2724 moves the status of the migration to active2725 changes the number of attempts to 02726 when there are no failed migration jobs2727 moves the status of the migration to active2728 #should_stop?2729 when the started_at is nil2730 is expected to be falsey2731 when the number of jobs is lesser than the MINIMUM_JOBS2732 is expected to be falsey2733 when the calculated value is greater than the threshold2734 is expected to be truthy2735 when the calculated value is lesser than the threshold2736 is expected to be falsey2737 #job_class_name=2738 behaves like an attr_writer that assigns class names2739 when a module name exists2740 keeps the class with module name2741 removes leading namespace resolution operator2742 when a module name does not exist2743 does not change the given class name2744 #batch_class_name=2745 behaves like an attr_writer that assigns class names2746 when a module name exists2747 keeps the class with module name2748 removes leading namespace resolution operator2749 when a module name does not exist2750 does not change the given class name2751 #migrated_tuple_count2752 sums the batch_size of succeeded jobs2753 #prometheus_labels2754 returns a hash with labels for the migration2755 #smoothed_time_efficiency2756 when there are not enough jobs2757 returns nil2758 when there are enough jobs2759 example 1: increasing trend, but only recently crossed threshold2760 returns the smoothed time efficiency2761 example 2: increasing trend, crossed threshold a while ago2762 returns the smoothed time efficiency2763 example 3: decreasing trend, but only recently crossed threshold2764 returns the smoothed time efficiency2765 example 4: latest run spiked2766 returns the smoothed time efficiency2767 with preloaded batched migration2768 avoids N+12769 #optimize!2770 calls the BatchOptimizer2771 #hold!2772 updates on_hold_until property2773 defaults to 10 minutes2774 #on_hold?2775 returns false if no on_hold_until is set2776 returns false if on_hold_until has passed2777 returns true if on_hold_until is in the future2778 #progress2779 when the migration is completed2780 returns 1002781 when the status is finished2782 returns 1002783 when the migration does not have jobs2784 returns zero2785 when the `total_tuple_count` is zero2786 returns nil2787 when migration has completed jobs2788 calculates the progress2789 .for_configuration2790 finds the migration matching the given configuration parameters2791 filters by gitlab schemas available for the connection2792 doesn not filter by gitlab schemas available for the connection if the column is nor present2793 .find_for_configuration2794 returns nill if such migration does not exists2795 returns the migration when it exists2796 .for_gitlab_schema2797 finds the migrations matching the given gitlab schema2798Gitlab::Ci::Config::Entry::Rules::Rule2799 .new2800 with a when: value but no clauses2801 is expected to be valid2802 with an allow_failure: value but no clauses2803 is expected to be valid2804 when specifying an if: clause2805 is expected to be valid2806 #when2807 is expected to eq "manual"2808 #allow_failure2809 is expected to eq true2810 using a list of multiple expressions2811 is expected not to be valid2812 reports an error about invalid format2813 when specifying an invalid if: clause expression2814 is expected not to be valid2815 reports an error about invalid statement2816 when specifying an if: clause expression with an invalid token2817 is expected not to be valid2818 reports an error about invalid statement2819 when using invalid regex in an if: clause2820 reports an error about invalid expression2821 when using an if: clause with lookahead regex character "?"2822 is expected not to be valid2823 reports an error about invalid expression syntax2824 when using a changes: clause2825 is expected to be valid2826 when using a string as an invalid changes: clause2827 is expected not to be valid2828 reports an error about invalid policy2829 when using a list as an invalid changes: clause2830 is expected not to be valid2831 returns errors2832 when using a long list as an invalid changes: clause2833 is expected not to be valid2834 returns errors2835 when using a exists: clause2836 is expected to be valid2837 when using a string as an invalid exists: clause2838 is expected not to be valid2839 reports an error about invalid policy2840 when using a list as an invalid exists: clause2841 is expected not to be valid2842 returns errors2843 when using a long list as an invalid exists: clause2844 is expected not to be valid2845 returns errors2846 specifying a delayed job2847 is expected to be valid2848 sets attributes for the job delay2849 without a when: key2850 is expected not to be valid2851 returns an error about the disallowed key2852 without a start_in: key2853 is expected not to be valid2854 returns an error about start_in being blank2855 when start_in value is longer than a week2856 is expected not to be valid2857 returns an error about start_in exceeding the limit2858 when specifying unknown policy2859 is expected not to be valid2860 returns error about invalid key2861 when clause is empty2862 is expected not to be valid2863 is not a valid configuration2864 when policy strategy does not match2865 is expected not to be valid2866 returns information about errors2867 when: validation2868 with an invalid boolean when:2869 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule2870 is expected not to be valid2871 returns an error about invalid when:2872 when composed2873 is expected not to be valid2874 returns an error about invalid when:2875 with an invalid string when:2876 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule2877 is expected not to be valid2878 returns an error about invalid when:2879 when composed2880 is expected not to be valid2881 returns an error about invalid when:2882 with a string passed in metadata but not allowed in the class2883 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule2884 is expected not to be valid2885 returns an error about invalid when:2886 when composed2887 is expected not to be valid2888 returns an error about invalid when:2889 with a string allowed in the class but not passed in metadata2890 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule2891 is expected not to be valid2892 returns an error about invalid when:2893 when composed2894 is expected not to be valid2895 returns an error about invalid when:2896 with an invalid variables2897 is expected not to be valid2898 returns an error about invalid variables:2899 allow_failure: validation2900 with an invalid string allow_failure:2901 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule2902 is expected not to be valid2903 returns an error about invalid allow_failure:2904 when composed2905 is expected not to be valid2906 returns an error about invalid allow_failure:2907 #value2908 when specifying an if: clause2909 stores the expression as "if"2910 when using a changes: clause2911 is expected to eq {:changes=>{:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}}2912 when using changes with paths2913 is expected to eq {:changes=>{:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}}2914 when using changes with paths and compare_to2915 is expected to eq {:changes=>{:compare_to=>"branch1", :paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}}2916 when default value has been provided2917 does not set a default value2918 does not add to provided configuration2919 when using a exists: clause2920 is expected to eq {:exists=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}2921 .default2922 does not have default value2923IssueEntity2924 has Issuable attributes2925 has time estimation attributes2926 web_url2927 when issue is of type task2928 has a work item path with iid2929 type2930 has an issue type2931 current_user2932 has the exprected permissions2933 when issue got moved2934 when user cannot read target project2935 does not return moved_to_id2936 when user can read target project2937 returns moved moved_to_id2938 when issue got duplicated2939 when user cannot read new issue2940 does not return duplicated_to_id2941 when user can read target project2942 returns duplicated duplicated_to_id2943 when issuable in active or archived project2944 when project is active2945 returns archived false2946 returns nil for archived project doc2947 when project is archived2948 returns archived true2949 returns archived project doc2950 behaves like issuable entity current_user properties2951 can_create_confidential_note2952 when user can create confidential notes2953 is expected to equal true2954 when user cannot create confidential notes2955 is expected to eq false2956 when issue has email participants2957 with anonymous user2958 returns obfuscated email participants email2959 with signed in user2960 when user has no role in project2961 returns obfuscated email participants email2962 when user has guest role in project2963 returns obfuscated email participants email2964 when user has (at least) reporter role in project2965 returns full email participants email2966Gitlab::Ci::Runner::Backoff2967 #duration2968 returns backoff duration from start2969 returns an integer value2970 returns the smallest number greater than or equal to duration2971 #slot2972 started: 0, slot: 02973 falls into an appropaite backoff slot2974 started: 0.1, slot: 02975 falls into an appropaite backoff slot2976 started: 0.9, slot: 02977 falls into an appropaite backoff slot2978 started: 1, slot: 02979 falls into an appropaite backoff slot2980 started: 1.1, slot: 02981 falls into an appropaite backoff slot2982 started: 1.9, slot: 02983 falls into an appropaite backoff slot2984 started: 2, slot: 02985 falls into an appropaite backoff slot2986 started: 2.9, slot: 02987 falls into an appropaite backoff slot2988 started: 3, slot: 02989 falls into an appropaite backoff slot2990 started: 4, slot: 12991 falls into an appropaite backoff slot2992 started: 5, slot: 12993 falls into an appropaite backoff slot2994 started: 6, slot: 12995 falls into an appropaite backoff slot2996 started: 7, slot: 12997 falls into an appropaite backoff slot2998 started: 8, slot: 22999 falls into an appropaite backoff slot3000 started: 9, slot: 23001 falls into an appropaite backoff slot3002 started: 9.9, slot: 23003 falls into an appropaite backoff slot3004 started: 10, slot: 23005 falls into an appropaite backoff slot3006 started: 15, slot: 23007 falls into an appropaite backoff slot3008 started: 16, slot: 33009 falls into an appropaite backoff slot3010 started: 31, slot: 33011 falls into an appropaite backoff slot3012 started: 32, slot: 43013 falls into an appropaite backoff slot3014 started: 63, slot: 43015 falls into an appropaite backoff slot3016 started: 64, slot: 53017 falls into an appropaite backoff slot3018 started: 127, slot: 53019 falls into an appropaite backoff slot3020 started: 128, slot: 63021 falls into an appropaite backoff slot3022 started: 250, slot: 63023 falls into an appropaite backoff slot3024 started: 310, slot: 73025 falls into an appropaite backoff slot3026 started: 520, slot: 83027 falls into an appropaite backoff slot3028 started: 999, slot: 83029 falls into an appropaite backoff slot3030 #to_seconds3031 started: 0, backoff: 13032 calculates backoff based on an appropriate slot3033 started: 0.1, backoff: 13034 calculates backoff based on an appropriate slot3035 started: 0.9, backoff: 13036 calculates backoff based on an appropriate slot3037 started: 1, backoff: 13038 calculates backoff based on an appropriate slot3039 started: 1.1, backoff: 13040 calculates backoff based on an appropriate slot3041 started: 1.9, backoff: 13042 calculates backoff based on an appropriate slot3043 started: 2, backoff: 13044 calculates backoff based on an appropriate slot3045 started: 3, backoff: 13046 calculates backoff based on an appropriate slot3047 started: 4, backoff: 23048 calculates backoff based on an appropriate slot3049 started: 5, backoff: 23050 calculates backoff based on an appropriate slot3051 started: 6, backoff: 23052 calculates backoff based on an appropriate slot3053 started: 6.5, backoff: 23054 calculates backoff based on an appropriate slot3055 started: 7, backoff: 23056 calculates backoff based on an appropriate slot3057 started: 8, backoff: 43058 calculates backoff based on an appropriate slot3059 started: 9, backoff: 43060 calculates backoff based on an appropriate slot3061 started: 9.9, backoff: 43062 calculates backoff based on an appropriate slot3063 started: 10, backoff: 43064 calculates backoff based on an appropriate slot3065 started: 15, backoff: 43066 calculates backoff based on an appropriate slot3067 started: 16, backoff: 83068 calculates backoff based on an appropriate slot3069 started: 31, backoff: 83070 calculates backoff based on an appropriate slot3071 started: 32, backoff: 163072 calculates backoff based on an appropriate slot3073 started: 63, backoff: 163074 calculates backoff based on an appropriate slot3075 started: 64, backoff: 323076 calculates backoff based on an appropriate slot3077 started: 127, backoff: 323078 calculates backoff based on an appropriate slot3079 started: 128, backoff: 643080 calculates backoff based on an appropriate slot3081 started: 250, backoff: 643082 calculates backoff based on an appropriate slot3083 started: 310, backoff: 643084 calculates backoff based on an appropriate slot3085 started: 520, backoff: 643086 calculates backoff based on an appropriate slot3087 started: 999, backoff: 643088 calculates backoff based on an appropriate slot3089TodosHelper3090 #todos_count_format3091 shows fuzzy count for 100 or more items3092 shows exact count for 99 or fewer items3093 #todo_target_name3094 when given a design3095 references the filename of the design3096 #todo_target_title3097 when the target does not exist3098 returns an empty string3099 when given a design todo3100 returns an empty string3101 when given a non-design todo3102 returns the title3103 #todo_target_path3104 when given a design3105 responds with an appropriate path3106 when given an alert3107 responds with an appropriate path3108 when given a task3109 responds with an appropriate path using iid3110 when given an issue with a note anchor3111 responds with an appropriate path3112 when a user requests access to group3113 responds with access requests tab3114 when a user requests access to project3115 responds with access requests tab3116 #todo_target_aria_label3117 when given a design todo3118 is expected to eq "Design #1[homescreen-1.jpg]"3119 when given an alert todo3120 is expected to eq "Alert ^alert#1001"3121 when given a task todo3122 is expected to eq "Task #3"3123 when given an issue todo3124 is expected to eq "Issue #1"3125 when given a merge request todo3126 is expected to eq "Merge Request !1"3127 #todo_types_options3128 includes a match for a design todo3129 #todo_target_state_pill3130 merge request todo3131 behaves like no state pill3132 is expected to eq nil3133 closed MR3134 behaves like a rendered state pill3135 returns expected html3136 merged MR3137 behaves like a rendered state pill3138 returns expected html3139 issue todo3140 behaves like no state pill3141 is expected to eq nil3142 closed issue3143 behaves like a rendered state pill3144 returns expected html3145 alert todo3146 behaves like no state pill3147 is expected to eq nil3148 resolved alert3149 behaves like a rendered state pill3150 returns expected html3151 #no_todos_messages3152 when getting todos messages3153 return these sentences3154 #todo_author_display?3155 action: 3, result: false3156 is expected to eq false3157 action: 6, result: false3158 is expected to eq false3159 action: 1, result: true3160 is expected to eq true3161 #todos_filter_params3162 state: "done", result: "done"3163 is expected to eq "done"3164 state: "pending", result: "pending"3165 is expected to eq "pending"3166 state: "", result: nil3167 is expected to eq nil3168 #todo_action_name3169 action: 1, self_added?: false, expected_action_name: "assigned you"3170 is expected to eq "assigned you"3171 action: 1, self_added?: true, expected_action_name: "assigned"3172 is expected to eq "assigned"3173 action: 9, self_added?: true, expected_action_name: "requested a review"3174 is expected to eq "requested a review"3175 action: 2, self_added?: true, expected_action_name: "mentioned yourself"3176 is expected to eq "mentioned yourself"3177 action: 2, self_added?: false, expected_action_name: "mentioned you"3178 is expected to eq "mentioned you"3179 action: 7, self_added?: true, expected_action_name: "mentioned yourself"3180 is expected to eq "mentioned yourself"3181 action: 7, self_added?: false, expected_action_name: "mentioned you"3182 is expected to eq "mentioned you"3183 action: 3, self_added?: true, expected_action_name: "The pipeline failed"3184 is expected to eq "The pipeline failed"3185 action: 4, self_added?: true, expected_action_name: "added a to-do item"3186 is expected to eq "added a to-do item"3187 action: 5, self_added?: true, expected_action_name: "set yourself as an approver"3188 is expected to eq "set yourself as an approver"3189 action: 5, self_added?: false, expected_action_name: "set you as an approver"3190 is expected to eq "set you as an approver"3191 action: 6, self_added?: true, expected_action_name: "Could not merge"3192 is expected to eq "Could not merge"3193 action: 8, self_added?: true, expected_action_name: "Removed from Merge Train"3194 is expected to eq "Removed from Merge Train"3195 member access requested3196 when target is group3197 returns group access message3198 when target is project3199 returns project access message3200 #todo_due_date3201 due date is today3202 is expected to match "Due today"3203 due date is not today3204 is expected to match "Due Jun 3, 2023"3205 #todo_parent_path3206 when todo resource parent is a group3207 is expected to eq "Group 1"3208 when todo resource parent is not a group3209 returns project title with namespace3210Gitlab::ImportExport::ImportFailureService3211 #log_import_failure3212 when importable is a group3213 behaves like log import failure3214 tracks error3215 saves data to ImportFailure3216 when importable is a project3217 behaves like log import failure3218 tracks error3219 saves data to ImportFailure3220 when ImportFailure does not support importable class3221 raise exception3222 #with_retry3223 when exceptions are retriable3224 exception: GRPC::DeadlineExceeded3225 when retry succeeds3226 retries and logs import failure once with correct params3227 when retry continues to fail with intermittent errors3228 retries the number of times allowed and raise exception3229 logs import failure each time and raise exception3230 exception: ActiveRecord::QueryCanceled3231 when retry succeeds3232 retries and logs import failure once with correct params3233 when retry continues to fail with intermittent errors3234 retries the number of times allowed and raise exception3235 logs import failure each time and raise exception3236 when exception is not retriable3237 raise the exception3238Gitlab::Database::Migrations::Runner3239 main database3240 creates the results dir when one does not exist3241 .up3242 result directory3243 uses the /up subdirectory3244 migrations to run3245 is the list of pending migrations3246 running migrations3247 runs the unapplied migrations in regular/post order, then version order3248 writes a metadata file with the current schema version and database name3249 runs the unapplied migrations on the correct database3250 .down3251 writes a metadata file with the current schema version3252 result directory3253 is the /down subdirectory3254 migrations to run3255 is the list of migrations that are up and on this branch3256 running migrations3257 runs the applied migrations for the current branch in reverse order3258 .background_migrations3259 is a TestBackgroundRunner3260 is configured with a result dir of /background_migrations3261 .batched_background_migrations3262 is a TestBatchedBackgroundRunner3263 choosing the database to test against3264 chooses the provided database3265 throws an error with an invalid name3266 includes the database name in the result dir3267 legacy mode3268 does not include the database name in the path3269 .batched_migrations_last_id3270 matches the expected runner class3271 main database (legacy mode)3272 creates the results dir when one does not exist3273 .up3274 result directory3275 uses the /up subdirectory3276 migrations to run3277 is the list of pending migrations3278 running migrations3279 runs the unapplied migrations in regular/post order, then version order3280 writes a metadata file with the current schema version and database name3281 runs the unapplied migrations on the correct database3282 .down3283 writes a metadata file with the current schema version3284 result directory3285 is the /down subdirectory3286 migrations to run3287 is the list of migrations that are up and on this branch3288 running migrations3289 runs the applied migrations for the current branch in reverse order3290 .background_migrations3291 is a TestBackgroundRunner3292 is configured with a result dir of /background_migrations3293 .batched_background_migrations3294 is a TestBatchedBackgroundRunner3295 choosing the database to test against3296 chooses the provided database3297 throws an error with an invalid name3298 includes the database name in the result dir3299 legacy mode3300 does not include the database name in the path3301 .batched_migrations_last_id3302 matches the expected runner class3303 ci database3304 creates the results dir when one does not exist (PENDING: Skipping because ci is shared or doesn't not exist)3305 .up3306 result directory3307 uses the /up subdirectory (PENDING: Skipping because ci is shared or doesn't not exist)3308 migrations to run3309 is the list of pending migrations (PENDING: Skipping because ci is shared or doesn't not exist)3310 running migrations3311 runs the unapplied migrations in regular/post order, then version order (PENDING: Skipping because ci is shared or doesn't not exist)3312 writes a metadata file with the current schema version and database name (PENDING: Skipping because ci is shared or doesn't not exist)3313 runs the unapplied migrations on the correct database (PENDING: Skipping because ci is shared or doesn't not exist)3314 .down3315 writes a metadata file with the current schema version (PENDING: Skipping because ci is shared or doesn't not exist)3316 result directory3317 is the /down subdirectory (PENDING: Skipping because ci is shared or doesn't not exist)3318 migrations to run3319 is the list of migrations that are up and on this branch (PENDING: Skipping because ci is shared or doesn't not exist)3320 running migrations3321 runs the applied migrations for the current branch in reverse order (PENDING: Skipping because ci is shared or doesn't not exist)3322 .background_migrations3323 is a TestBackgroundRunner (PENDING: Skipping because ci is shared or doesn't not exist)3324 is configured with a result dir of /background_migrations (PENDING: Skipping because ci is shared or doesn't not exist)3325 .batched_background_migrations3326 is a TestBatchedBackgroundRunner (PENDING: Skipping because ci is shared or doesn't not exist)3327 choosing the database to test against3328 chooses the provided database (PENDING: Skipping because ci is shared or doesn't not exist)3329 throws an error with an invalid name (PENDING: Skipping because ci is shared or doesn't not exist)3330 includes the database name in the result dir (PENDING: Skipping because ci is shared or doesn't not exist)3331 legacy mode3332 does not include the database name in the path (PENDING: Skipping because ci is shared or doesn't not exist)3333 .batched_migrations_last_id3334 matches the expected runner class (PENDING: Skipping because ci is shared or doesn't not exist)3335npm.gitlab-ci.yml3336 the created pipeline3337 on default branch3338 when package.json has been changed3339 behaves like publish job created3340 creates a pipeline with a single job: publish3341 when package.json does not exist or has not been changed3342 behaves like no pipeline created3343 does not create a pipeline because the only job (publish) is not created3344 when the branch name is v1.0.03345 behaves like publish job created3346 creates a pipeline with a single job: publish3347 when the tag name is v1.0.03348 behaves like publish job created3349 creates a pipeline with a single job: publish3350 when the branch name is v2.1.0-alpha3351 behaves like publish job created3352 creates a pipeline with a single job: publish3353 when the tag name is v2.1.0-alpha3354 behaves like publish job created3355 creates a pipeline with a single job: publish3356 when the branch name is patch-13357 behaves like no pipeline created3358 does not create a pipeline because the only job (publish) is not created3359 when the tag name is patch-13360 behaves like no pipeline created3361 does not create a pipeline because the only job (publish) is not created3362 when the branch name is my-feature-branch3363 behaves like no pipeline created3364 does not create a pipeline because the only job (publish) is not created3365 when the tag name is my-feature-branch3366 behaves like no pipeline created3367 does not create a pipeline because the only job (publish) is not created3368 when the branch name is v13369 behaves like no pipeline created3370 does not create a pipeline because the only job (publish) is not created3371 when the tag name is v13372 behaves like no pipeline created3373 does not create a pipeline because the only job (publish) is not created3374 when the branch name is v1.03375 behaves like no pipeline created3376 does not create a pipeline because the only job (publish) is not created3377 when the tag name is v1.03378 behaves like no pipeline created3379 does not create a pipeline because the only job (publish) is not created3380 when the branch name is 2.1.03381 behaves like no pipeline created3382 does not create a pipeline because the only job (publish) is not created3383 when the tag name is 2.1.03384 behaves like no pipeline created3385 does not create a pipeline because the only job (publish) is not created3386Issues::ExportCsvService3387 renders csv to string3388 #email3389 emails csv3390 renders with a target filesize3391 includes3392 with export_csv_preload_in_batches feature flag disabled3393 behaves like exports CSVs for issues3394 includes the columns required for import3395 returns two issues3396 iid3397 url3398 title3399 state3400 description3401 author name3402 author username3403 assignee name3404 assignee username3405 confidential3406 milestone3407 labels3408 due_date3409 created_at3410 updated_at3411 closed_at3412 discussion_locked3413 weight3414 time estimate3415 time spent3416 with issues filtered by labels and project3417 returns only filtered objects3418 with label links3419 does not run a query for each label link3420 returns the labels in sorted order3421 with export_csv_preload_in_batches feature flag enabled3422 behaves like exports CSVs for issues3423 includes the columns required for import3424 returns two issues3425 iid3426 url3427 title3428 state3429 description3430 author name3431 author username3432 assignee name3433 assignee username3434 confidential3435 milestone3436 labels3437 due_date3438 created_at3439 updated_at3440 closed_at3441 discussion_locked3442 weight3443 time estimate3444 time spent3445 with issues filtered by labels and project3446 returns only filtered objects3447 with label links3448 does not run a query for each label link3449 returns the labels in sorted order3450 with minimal details3451 renders labels as nil3452Clusters::CreateService3453 when provider is gcp3454 when project has no clusters3455 when correct params3456 creates a cluster object3457 when invalid params3458 returns an error3459 when project has a cluster3460 creates another cluster3461 when another cluster exists3462 when correct params3463 creates a cluster object3464 when invalid params3465 returns an error3466 when params includes :management_project_id3467 management_project is non-existent3468 does not persist the cluster and adds errors3469 project cluster3470 when user is authorized to adminster manangement_project3471 persists the cluster3472 when user is not authorized to adminster manangement_project3473 does not persist the cluster and adds errors3474 when manangement_project is outside of the namespace scope3475 does not persist the cluster3476 group cluster3477 when user is authorized to adminster manangement_project3478 persists the cluster3479 when user is not authorized to adminster manangement_project3480 does not persist the cluster and adds errors3481 when manangement_project is outside of the namespace scope3482 does not persist the cluster3483 instance cluster3484 when user is authorized to adminster manangement_project3485 persists the cluster3486 when user is not authorized to adminster manangement_project3487 does not persist the cluster and adds errors3488PipelineScheduleWorker3489 when the schedule is runnable by the user3490 when there is a scheduled pipeline within next_run_at3491 behaves like successful scheduling3492 creates a new pipeline3493 updates next_run_at3494 does not change active status3495 when the latest commit contains [ci skip]3496 behaves like successful scheduling3497 creates a new pipeline3498 updates next_run_at3499 does not change active status3500 when the schedule is deactivated3501 does not creates a new pipeline3502 when gitlab-ci.yml is corrupted3503 does not creates a new pipeline3504 when the schedule is not runnable by the user3505 does not deactivate the schedule3506 does not create a pipeline3507 does not raise an exception3508 when .gitlab-ci.yml is missing in the project3509 does not create a pipeline3510 does not raise an exception3511 when the project is missing3512 does not raise an exception3513 when max retry attempts reach3514 does not raise error3515Import::GithubController routing3516 to #personal_access_token3517 to #cancel_all3518 to #counts3519 behaves like importer routing3520 to #create3521 to #new3522 to #status3523 to #callback3524 to #jobs3525 to #realtime_changes3526Import::GiteaController routing3527 to #personal_access_token3528 behaves like importer routing3529 to #create3530 to #new3531 to #status3532 to #callback3533 to #jobs3534 to #realtime_changes3535Import::BitbucketController routing3536 behaves like importer routing3537 to #create3538 to #new3539 to #status3540 to #callback3541 to #jobs3542 to #realtime_changes3543Import::BitbucketServerController routing3544 behaves like importer routing3545 to #create3546 to #new3547 to #status3548 to #callback3549 to #jobs3550 to #realtime_changes3551Import::FogbugzController routing3552 to #callback3553 to #new_user_map3554 to #create_user_map3555 behaves like importer routing3556 to #create3557 to #new3558 to #status3559 to #callback3560 to #jobs3561 to #realtime_changes3562Import::GitlabProjectsController routing3563 to #create3564 to #new3565Import::GithubGroupsController routing3566 to #status3567Deployments::LinkMergeRequestsService3568 #execute3569 when the deployment is for a review environment3570 does nothing3571 when the deployment is for one of the production environments3572 links merge requests3573 when the deployment failed3574 does nothing3575 when there is a previous deployment3576 links all merge requests merged since the previous deployment3577 when there are no previous deployments3578 links all merged merge requests3579 #link_merge_requests_for_range3580 links merge requests3581 links picked merge requests3582 doesn't link the same merge_request twice3583 #link_all_merged_merge_requests3584 links all merged merge requests targeting the deployed branch3585Gitlab::Ci::Config::External::Context3586 attributes3587 with values3588 is expected to have attributes {:pipeline_config => #<InstanceDouble(Gitlab::Ci::ProjectConfig) (anonymous)>, :project => #<Project id: ...{:key => "a", :value => "b", :public => true, :file => false, :masked => false, :raw => false}>]}, @errors=nil>}3589 is expected to eq []3590 is expected to eq 03591 is expected to be an instance of Gitlab::Ci::Variables::Collection3592 is expected to be an instance of ActiveSupport::HashWithIndifferentAccess3593 is expected to include {"a" => "b"}3594 is expected to eq #<InstanceDouble(Gitlab::Ci::ProjectConfig) (anonymous)>3595 without values3596 is expected to have attributes {:project => nil, :sha => nil, :user => nil}3597 is expected to eq []3598 is expected to eq 03599 is expected to be an instance of Gitlab::Ci::Variables::Collection3600 is expected to be an instance of ActiveSupport::HashWithIndifferentAccess3601 is expected to be nil3602 max_includes3603 returns the default value of application setting `ci_max_includes`3604 when application setting `ci_max_includes` is changed3605 returns the new value of application setting `ci_max_includes`3606 #set_deadline3607 with a float value3608 updates execution_deadline3609 with nil as a value3610 updates execution_deadline3611 #check_execution_time!3612 when execution is expired3613 raises an error3614 when execution is not expired3615 does not raises any errors3616 without setting a deadline3617 does not raises any errors3618 #mutate3619 with attributes3620 behaves like a mutated context3621 is expected not to eq #<Gitlab::Ci::Config::External::Context:0x00007f3e38c54248 @project=#<Project id: namespace709/projec...andset=[:a_file], @execution_deadline=1162.630881182, @logger=#<Double "logger">, @max_includes=150>3622 is expected to be a kind of Gitlab::Ci::Config::External::Context3623 is expected to have attributes {:project => #<Project id: namespace714/project-923>>, :sha => "56789", :user => #<Double (anonymous)>}3624 is expected to eq [:a_file]3625 is expected to eq 1162.820034343626 is expected to eq #<Double "logger">3627 without attributes3628 behaves like a mutated context3629 is expected not to eq #<Gitlab::Ci::Config::External::Context:0x00007f3e30df70a8 @project=#<Project id: namespace721/projec...andset=[:a_file], @execution_deadline=1162.917270914, @logger=#<Double "logger">, @max_includes=150>3630 is expected to be a kind of Gitlab::Ci::Config::External::Context3631 is expected to have attributes {}3632 is expected to eq [:a_file]3633 is expected to eq 1163.0896633963634 is expected to eq #<Double "logger">3635 #sentry_payload3636 is expected to match (a hash including :project and :user)3637 #internal_include?3638 when pipeline_config is provided3639 value: true3640 returns the value of .internal_include_prepended?3641 value: false3642 returns the value of .internal_include_prepended?3643 when pipeline_config is not provided3644 returns false3645ProjectImportState3646 associations3647 is expected to belong to project required: false3648 validations3649 is expected to validate that :project cannot be empty/falsy3650 checksums attribute3651 when the checksums attribute has invalid fields3652 adds errors3653 when the checksums attribute has valid fields3654 does not add errors3655 Project import job3656 imports a project3657 records job and correlation IDs3658 #relation_hard_failures3659 returns hard relation failures related to this import3660 limits returned collection to given maximum3661 #mark_as_failed3662 logs error when update column fails3663 updates last_error with error message3664 removes project import data3665 #human_status_name3666 when import_state exists3667 returns the humanized status name3668 #expire_etag_cache3669 when project import type has realtime changes endpoint3670 expires revelant etag cache3671 when project import type does not have realtime changes endpoint3672 does not touch etag caches3673 import state transitions3674 state transition: [:started] => [:finished]3675 resets last_error3676 enqueues housekeeping when an import of a fresh project is completed3677 does not perform housekeeping when project repository does not exist3678 does not enqueue housekeeping when project does not have a valid import type3679 state transition: [:none, :scheduled, :started] => [:canceled]3680 updates the import status3681 unsets the JID3682 removes import data3683 state transition: started: [:finished, :canceled, :failed]3684 import_type: "github", import_status: :started, transition: :finish, expected_checksums: {"fetched"=>{}, "imported"=>{}}3685 updates (or does not update) checksums3686 import_type: "github", import_status: :started, transition: :cancel, expected_checksums: {"fetched"=>{}, "imported"=>{}}3687 updates (or does not update) checksums3688 import_type: "github", import_status: :started, transition: :fail_op, expected_checksums: {"fetched"=>{}, "imported"=>{}}3689 updates (or does not update) checksums3690 import_type: "github", import_status: :scheduled, transition: :cancel, expected_checksums: {}3691 updates (or does not update) checksums3692 import_type: "gitlab_project", import_status: :started, transition: :cancel, expected_checksums: {}3693 updates (or does not update) checksums3694 clearing `jid` after finish3695 without an JID3696 does nothing3697 with a JID3698 unsets the JID3699 callbacks3700 after_commit :expire_etag_cache3701 expires etag cache3702Milestones::DestroyService3703 #execute3704 deletes milestone3705 logs destroy event3706 with an existing merge request3707 deletes milestone id from issuables3708 group milestones3709 is expected to eq #<Milestone id:37 %"My title 790">3710 deletes milestone id from issuables3711 does not log destroy event3712 when a release is tied to a milestone3713 destroys the milestone but not the associated release3714Gitlab::Ci::Build::Rules::Rule::Clause::Changes3715 #satisfied_by?3716 a glob matching rule3717 exact top-level match3718 is expected to eq true3719 exact top-level no match3720 is expected to eq false3721 pattern top-level match3722 is expected to eq true3723 pattern top-level no match3724 is expected to eq false3725 exact nested match3726 is expected to eq true3727 exact nested no match3728 is expected to eq false3729 pattern nested match3730 is expected to eq true3731 pattern nested no match3732 is expected to eq false3733 ext top-level match3734 is expected to eq true3735 ext nested no match3736 is expected to eq false3737 ext slash no match3738 is expected to eq false3739 when pipeline is nil3740 is expected to be truthy3741 when using variable expansion3742 when context is nil3743 is expected to be falsey3744 when modified paths are nil3745 is expected to be truthy3746 when context has the specified variables3747 is expected to be truthy3748 when variable expansion does not match3749 is expected to be truthy3750 when using compare_to3751 when compare_to is branch or tag3752 pipeline_ref: "feature_1", compare_to: "master", paths: ["file1.txt"], result: true3753 is expected to eq true3754 pipeline_ref: "feature_1", compare_to: "master", paths: ["README.md"], result: false3755 is expected to eq false3756 pipeline_ref: "feature_1", compare_to: "master", paths: ["xyz.md"], result: false3757 is expected to eq false3758 pipeline_ref: "feature_2", compare_to: "master", paths: ["file1.txt"], result: true3759 is expected to eq true3760 pipeline_ref: "feature_2", compare_to: "master", paths: ["file2.txt"], result: true3761 is expected to eq true3762 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file1.txt"], result: false3763 is expected to eq false3764 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file2.txt"], result: true3765 is expected to eq true3766 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file1.txt"], result: false3767 is expected to eq false3768 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file2.txt"], result: true3769 is expected to eq true3770 pipeline_ref: "feature_2", compare_to: "tag_1", paths: ["file2.txt"], result: true3771 is expected to eq true3772 when compare_to is a sha3773 is expected to be truthy3774 when compare_to is not a valid ref3775 raises ParseError3776Gitlab::Partitioning::ForeignKeysGenerator3777 # order random3778 with one FK3779 generates foreign key migrations3780 without foreign keys3781 does not generate migrations3782 with many FKs3783 generates migrations for the selected FK3784MergeRequests::AssignIssuesService3785 finds unassigned issues fixed in merge request3786 ignores issues the user cannot update assignee on3787 ignores issues already assigned to any user3788 ignores all issues unless current_user is merge_request.author3789 accepts precomputed data for closes_issues3790 assigns these to the merge request owner3791 ignores external issues3792Ci::ProcessBuildService#execute3793 for single build3794 trait: nil, conditions: {:when=>:on_success}, current_status: "success", after_status: "pending", retry_after_status: "pending"3795 updates the job status to after_status3796 when build is set to enqueue immediately3797 updates the job status to retry_after_status3798 trait: nil, conditions: {:when=>:on_success}, current_status: "skipped", after_status: "pending", retry_after_status: "pending"3799 updates the job status to after_status3800 when build is set to enqueue immediately3801 updates the job status to retry_after_status3802 trait: nil, conditions: {:when=>:on_success}, current_status: "failed", after_status: "skipped", retry_after_status: "skipped"3803 updates the job status to after_status3804 when build is set to enqueue immediately3805 updates the job status to retry_after_status3806 trait: nil, conditions: {:when=>:on_failure}, current_status: "success", after_status: "skipped", retry_after_status: "skipped"3807 updates the job status to after_status3808 when build is set to enqueue immediately3809 updates the job status to retry_after_status3810 trait: nil, conditions: {:when=>:on_failure}, current_status: "skipped", after_status: "skipped", retry_after_status: "skipped"3811 updates the job status to after_status3812 when build is set to enqueue immediately3813 updates the job status to retry_after_status3814 trait: nil, conditions: {:when=>:on_failure}, current_status: "failed", after_status: "pending", retry_after_status: "pending"3815 updates the job status to after_status3816 when build is set to enqueue immediately3817 updates the job status to retry_after_status3818 trait: nil, conditions: {:when=>:always}, current_status: "success", after_status: "pending", retry_after_status: "pending"3819 updates the job status to after_status3820 when build is set to enqueue immediately3821 updates the job status to retry_after_status3822 trait: nil, conditions: {:when=>:always}, current_status: "skipped", after_status: "pending", retry_after_status: "pending"3823 updates the job status to after_status3824 when build is set to enqueue immediately3825 updates the job status to retry_after_status3826 trait: nil, conditions: {:when=>:always}, current_status: "failed", after_status: "pending", retry_after_status: "pending"3827 updates the job status to after_status3828 when build is set to enqueue immediately3829 updates the job status to retry_after_status3830 trait: :actionable, conditions: {:when=>:manual}, current_status: "success", after_status: "manual", retry_after_status: "pending"3831 updates the job status to after_status3832 when build is set to enqueue immediately3833 updates the job status to retry_after_status3834 trait: :actionable, conditions: {:when=>:manual}, current_status: "skipped", after_status: "manual", retry_after_status: "pending"3835 updates the job status to after_status3836 when build is set to enqueue immediately3837 updates the job status to retry_after_status3838 trait: :actionable, conditions: {:when=>:manual}, current_status: "failed", after_status: "skipped", retry_after_status: "skipped"3839 updates the job status to after_status3840 when build is set to enqueue immediately3841 updates the job status to retry_after_status3842 trait: :schedulable, conditions: {:when=>:delayed}, current_status: "success", after_status: "scheduled", retry_after_status: "pending"3843 updates the job status to after_status3844 when build is set to enqueue immediately3845 updates the job status to retry_after_status3846 trait: :schedulable, conditions: {:when=>:delayed}, current_status: "skipped", after_status: "scheduled", retry_after_status: "pending"3847 updates the job status to after_status3848 when build is set to enqueue immediately3849 updates the job status to retry_after_status3850 trait: :schedulable, conditions: {:when=>:delayed}, current_status: "failed", after_status: "skipped", retry_after_status: "skipped"3851 updates the job status to after_status3852 when build is set to enqueue immediately3853 updates the job status to retry_after_status3854 when build is scheduled with DAG3855 trait: nil, build_when: :on_success, current_status: "success", after_status: "pending", retry_after_status: "pending"3856 updates the job status to after_status3857 when build is set to enqueue immediately3858 updates the job status to retry_after_status3859 trait: nil, build_when: :on_success, current_status: "skipped", after_status: "skipped", retry_after_status: "skipped"3860 updates the job status to after_status3861 when build is set to enqueue immediately3862 updates the job status to retry_after_status3863 trait: nil, build_when: :manual, current_status: "success", after_status: "manual", retry_after_status: "pending"3864 updates the job status to after_status3865 when build is set to enqueue immediately3866 updates the job status to retry_after_status3867 trait: nil, build_when: :manual, current_status: "skipped", after_status: "skipped", retry_after_status: "skipped"3868 updates the job status to after_status3869 when build is set to enqueue immediately3870 updates the job status to retry_after_status3871 trait: nil, build_when: :delayed, current_status: "success", after_status: "manual", retry_after_status: "pending"3872 updates the job status to after_status3873 when build is set to enqueue immediately3874 updates the job status to retry_after_status3875 trait: nil, build_when: :delayed, current_status: "skipped", after_status: "skipped", retry_after_status: "skipped"3876 updates the job status to after_status3877 when build is set to enqueue immediately3878 updates the job status to retry_after_status3879 trait: :schedulable, build_when: :delayed, current_status: "success", after_status: "scheduled", retry_after_status: "pending"3880 updates the job status to after_status3881 when build is set to enqueue immediately3882 updates the job status to retry_after_status3883 trait: :schedulable, build_when: :delayed, current_status: "skipped", after_status: "skipped", retry_after_status: "skipped"3884 updates the job status to after_status3885 when build is set to enqueue immediately3886 updates the job status to retry_after_status3887MergeRequests::ExportCsvService3888 csv_data3889 contains the correct information3890 assignees3891 when assigned3892 contains the names of assignees3893 contains the usernames of assignees3894 when not assigned3895 returns empty strings3896 approvers3897 when approved3898 contains the names of approvers separated by a comma3899 contains the usernames of approvers separated by a comma3900 when not approved3901 returns empty strings3902 merged user3903 MR is merged3904 is merged3905 has a merged user3906 MR is not merged3907 returns empty strings3908 milestone3909 milestone is assigned3910 contains the milestone ID3911 no milestone is assigned3912 returns an empty string3913 #email3914 emails csv3915 renders with a target filesize3916Ci::ResourceGroups::AssignResourceFromResourceGroupService3917 #execute3918 when there is an available resource3919 requests resource3920 when failed to request resource3921 has a build waiting for resource3922 when the build has already retained a resource3923 has a pending build3924 when process mode is oldest_first3925 requests resource3926 when the other job exists in the newer pipeline3927 requests resource for the job in the oldest pipeline3928 when build is not `waiting_for_resource` state3929 attempts to request a resource3930 does not change the job status3931 when process mode is newest_first3932 requests resource3933 when the other job exists in the newer pipeline3934 requests resource for the job in the newest pipeline3935 when build is not `waiting_for_resource` state3936 attempts to request a resource3937 does not change the job status3938 when parallel services are running3939 can run the same command in parallel3940 when there are no available resources3941 does not request resource3942 when there is a stale build assigned to a resource3943 releases the resource from the stale build and assignes to the waiting build3944Gitlab::SearchContext::Builder3945 #with_project3946 behaves like has a fluid interface3947 is expected to be an instance of Gitlab::SearchContext::Builder3948 #build!3949 when a project is not owned by a group3950 is expected to be for project3951 is expected to have attributes {:group => nil, :group_metadata => {}, :project => #<Project id:949 namespace805/project-1014>>, :project_m...sts"), :issues_disabled => false}), :ref => nil, :search_url => "/search?project_id=949", :snippets => []}3952 when a project is owned by a group3953 delegates to `#with_group`3954 is expected to have attributes {:group => #<Group id:2691 @group422>, :group_metadata => (a hash including {:group_path => "group422", :...sts"), :issues_disabled => false}), :ref => nil, :search_url => "/search?project_id=951", :snippets => []}3955 #with_snippet3956 when there is a single snippet3957 behaves like has a fluid interface3958 is expected to be an instance of Gitlab::SearchContext::Builder3959 #build!3960 is expected to be for snippet3961 is expected to have attributes {:group => nil, :group_metadata => {}, :project => nil, :project_metadata => {}, :ref => nil, :search_url => "/search", :snippets => [#<Snippet id:12 $12>]}3962 when there are multiple snippets3963 #build!3964 is expected to be for snippet3965 is expected to have attributes {:group => nil, :group_metadata => {}, :project => nil, :project_metadata => {}, :ref => nil, :search_url => "/search", :snippets => [#<Snippet id:16 $16>, #<Snippet id:17 $17>, #<Snippet id:18 $18>]}3966 #with_group3967 behaves like has a fluid interface3968 is expected to be an instance of Gitlab::SearchContext::Builder3969 #build!3970 is expected to be for group3971 is expected to have attributes {:group => #<Group id:2706 @group425>, :group_metadata => (a hash including {:group_path => "group425", :...project => nil, :project_metadata => {}, :ref => nil, :search_url => "/search?group_id=2706", :snippets => []}3972 with group scope3973 returns nil without groups controller action3974 when on issues scope3975 search context returns issues scope3976 when on merge requests scope3977 search context returns issues scope3978 #with_ref3979 behaves like has a fluid interface3980 is expected to be an instance of Gitlab::SearchContext::Builder3981 #build!3982 is expected to have attributes {:group => nil, :group_metadata => {}, :project => nil, :project_metadata => {}, :ref => "4b825dc642cb6eb9a060e54bf8d69288fbee4904", :search_url => "/search", :snippets => []}3983 #build!3984 is expected to be a kind of Gitlab::SearchContext3985Types::SnippetType3986 has the correct fields3987 blobs field3988 returns blobs3989 #user_permissions3990 can resolve the snippet permissions3991 when restricted visibility level is set to public3992 returns snippet author3993 when user is not logged in3994 returns snippet author as nil3995 authorizations3996 is expected to require graphql authorizations :read_snippet3997 Repository URLs3998 when RequestStore is disabled3999 behaves like snippets with repositories4000 when snippet has repository4001 responds with repository URLs4002 behaves like snippets without repositories4003 when snippet does not have a repository4004 behaves like response without repository URLs4005 does not respond with repository URLs4006 when RequestStore is enabled4007 behaves like snippets with repositories4008 when snippet has repository4009 responds with repository URLs4010 behaves like snippets without repositories4011 when snippet does not have a repository4012 behaves like response without repository URLs4013 does not respond with repository URLs4014 #blobs4015 when snippet does not have a repository4016 contains the first blob from the snippet4017 behaves like an array4018 returns an array of snippet blobs4019 when snippet has repository4020 contains all the blobs from the repository4021 behaves like an array4022 returns an array of snippet blobs4023 when specific path is set4024 returns specific files4025 behaves like an array4026 returns an array of snippet blobs4027Projects::AutoDevops::DisableService#execute4028 when Auto DevOps disabled at instance level4029 is expected to be falsy4030 when Auto DevOps enabled at instance level4031 when Auto DevOps explicitly enabled on project4032 is expected to be falsy4033 when Auto DevOps explicitly disabled on project4034 is expected to be falsy4035 when Auto DevOps is implicitly enabled4036 when is the first pipeline failure4037 disables Auto DevOps for project4038 when it is not the first pipeline failure4039 explicitly disables Auto DevOps for project4040 when an Auto DevOps pipeline has succeeded before4041 does not disable Auto DevOps for project4042 when project does not have an Auto DevOps record related4043 disables Auto DevOps for project4044 creates a ProjectAutoDevops record4045RuboCop::CodeReuseHelpers4046 # order random4047 delegates jh? to GitlabEdition4048 delegates ee? to GitlabEdition4049 #each_send_node4050 yields every send node to the supplied block4051 #in_worker?4052 returns true for a node in the workers directory4053 returns false for a node outside the workers directory4054 #name_of_constant4055 returns the name of a constant4056 #in_app_directory?4057 returns true for a directory in the CE app/ directory4058 returns true for a directory in the EE app/ directory4059 returns false for a directory in the lib/ directory4060 #in_spec?4061 returns true for a node in the spec directory4062 returns true for a node in the ee/spec directory4063 returns false for a node outside the spec directory4064 #send_to_constant?4065 returns true when sending to a constant4066 returns false when sending to something other than a constant4067 #in_finder?4068 returns true for a node in the finders directory4069 returns false for a node outside the finders directory4070 #in_lib_directory?4071 returns true for a directory in the CE lib/ directory4072 returns true for a directory in the EE lib/ directory4073 returns false for a directory in the app/ directory4074 #in_model?4075 returns true for a node in the models directory4076 returns false for a node outside the models directory4077 #send_receiver_name_ends_with?4078 returns true when the receiver ends with a suffix4079 returns false when the receiver is the same as a suffix4080 #in_graphql?4081 returns true for a node in the FOSS GraphQL directory4082 returns true for a node in the EE GraphQL directory4083 returns false for a node outside the GraphQL directory4084 #in_graphql_directory?4085 returns true for a directory in the FOSS app/graphql directory4086 returns true for a directory in the EE app/graphql directory4087 returns true for a directory in the EE app/graphql/ee directory4088 returns false for a directory in the FOSS app/graphql directory4089 returns false for a directory in the EE app/graphql directory4090 returns false for a directory in the EE app/graphql/ee directory4091 #in_serializer?4092 returns true for a node in the serializers directory4093 returns false for a node outside the serializers directory4094 #in_presenter?4095 returns true for a node in the presenters directory4096 returns false for a node outside the presenters directory4097 #in_service_class?4098 returns true for a node in the services directory4099 returns false for a node outside the services directory4100 #disallow_send_to4101 disallows sending a message to a constant4102 #in_api?4103 returns true for a node in the API directory4104 returns false for a node outside the API directory4105 #each_class_method4106 yields every class method to the supplied block4107 #name_of_receiver4108 returns the name of a send receiver4109 #file_path_for_node4110 returns the file path of a node4111Ci::DagJobEntity4112 #as_json4113 contains the name4114 behaves like matches schema4115 matches schema4116 when job is stage scheduled4117 contains the name scheduling_type4118 does not expose needs4119 behaves like matches schema4120 matches schema4121 when job is dag scheduled4122 contains the name scheduling_type4123 behaves like matches schema4124 matches schema4125 when job has needs4126 exposes the array of needs4127 behaves like matches schema4128 matches schema4129 when job has empty needs4130 exposes an empty array of needs4131 behaves like matches schema4132 matches schema4133JiraConnect::SyncProjectWorker4134 behaves like worker with data consistency4135 .get_data_consistency_feature_flag_enabled?4136 returns true4137 .get_data_consistency4138 returns correct data consistency4139 #perform4140 avoids N+1 database queries4141 when the project is not found4142 does not raise an error4143 with branches to sync4144 on a single branch4145 sends the request with custom update_sequence_id4146 on multiple branches4147 does not requests a lot from Gitaly4148 when the number of items to sync is higher than the limit4149 syncs only the most recent merge requests and branches within the limit4150Gitlab::GitalyClient::RefService4151 #branches4152 sends a find_all_branches message4153 #remote_branches4154 sends a find_all_remote_branches message4155 concatenates and returns the response branches as Gitlab::Git::Branch objects4156 #merged_branches4157 sends a find_all_branches message4158 #find_branch4159 sends a find_branch message4160 when Gitaly returns a ambiguios reference error4161 raises an UnknownRef error4162 #find_tag4163 sends a find_tag message4164 when tag is empty4165 does not send a fing_tag message4166 when Gitaly returns an Internal error4167 raises an Internal error4168 when Gitaly returns a tag_not_found error4169 raises an UnknownRef error4170 #default_branch_name4171 sends a find_default_branch_name message4172 #local_branches4173 when local_branches variable is not set4174 behaves like common examples4175 sends a find_local_branches message4176 parses and sends the sort parameter4177 translates known mismatches on sort param values4178 uses default sort by name4179 when local_branches variable is set4180 behaves like common examples4181 sends a find_local_branches message4182 parses and sends the sort parameter4183 translates known mismatches on sort param values4184 uses default sort by name4185 #tags4186 sends a find_all_tags message4187 with sorting option4188 sends a correct find_all_tags message4189 with semantic version sorting4190 sends a correct find_all_tags message4191 when sorting option is invalid4192 uses default sort by name4193 with pagination option4194 sends a correct find_all_tags message4195 #branch_names_contains_sha4196 sends a list_branch_names_containing_commit message4197 #get_tag_messages4198 sends a get_tag_messages message4199 #get_tag_signatures4200 sends a get_tag_signatures message4201 #ref_exists?4202 sends a ref_exists message4203 #delete_refs4204 sends a delete_refs message4205 with a references locked error4206 raises ReferencesLockedError4207 with a invalid format error4208 raises InvalidRefFormatError4209 #list_refs4210 sends a list_refs message4211 accepts a patterns argument4212 accepts a pointing_at_oids argument4213 accepts a peel_tags argument4214 #find_refs_by_oid4215 sends a find_refs_by_oid message4216 filters by ref_patterns4217admin/application_settings/general.html.haml4218 sourcegraph integration4219 when sourcegraph feature is enabled4220 show the form4221 when sourcegraph feature is disabled4222 show the form4223 prompt user about registration features4224 when service ping is enabled4225 behaves like does not render registration features prompt4226 does not render a placeholder input with registration features message4227 with no license and service ping disabled4228 behaves like renders registration features prompt4229 renders a placeholder input with registration features message4230 add license4231 does not show the Add License section4232 jira connect settings4233 shows the jira connect settings section4234 sign-up restrictions4235 renders js-signup-form tag4236 error tracking integration4237 with error tracking feature flag enabled4238 expects error tracking settings to be available4239 expects display token and reset token to be available4240 with error tracking feature flag disabled4241 expects error tracking settings to not be avaiable4242Gitlab::Ci::Status::Composite4243 .initialize4244 when passing a single status4245 raises ArgumentError4246 #status4247 allow_failure: false4248 build_statuses: [:skipped], dag: false, result: "skipped", has_warnings: false4249 behaves like compares status and warnings4250 returns status and warnings?4251 build_statuses: [:skipped, :success], dag: false, result: "success", has_warnings: false4252 behaves like compares status and warnings4253 returns status and warnings?4254 build_statuses: [:skipped, :success], dag: true, result: "skipped", has_warnings: false4255 behaves like compares status and warnings4256 returns status and warnings?4257 build_statuses: [:created], dag: false, result: "created", has_warnings: false4258 behaves like compares status and warnings4259 returns status and warnings?4260 build_statuses: [:preparing], dag: false, result: "preparing", has_warnings: false4261 behaves like compares status and warnings4262 returns status and warnings?4263 build_statuses: [:canceled, :success, :skipped], dag: false, result: "canceled", has_warnings: false4264 behaves like compares status and warnings4265 returns status and warnings?4266 build_statuses: [:canceled, :success, :skipped], dag: true, result: "skipped", has_warnings: false4267 behaves like compares status and warnings4268 returns status and warnings?4269 build_statuses: [:pending, :created, :skipped], dag: false, result: "pending", has_warnings: false4270 behaves like compares status and warnings4271 returns status and warnings?4272 build_statuses: [:pending, :created, :skipped, :success], dag: false, result: "running", has_warnings: false4273 behaves like compares status and warnings4274 returns status and warnings?4275 build_statuses: [:running, :created, :skipped, :success], dag: false, result: "running", has_warnings: false4276 behaves like compares status and warnings4277 returns status and warnings?4278 build_statuses: [:pending, :created, :skipped], dag: true, result: "skipped", has_warnings: false4279 behaves like compares status and warnings4280 returns status and warnings?4281 build_statuses: [:pending, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false4282 behaves like compares status and warnings4283 returns status and warnings?4284 build_statuses: [:running, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false4285 behaves like compares status and warnings4286 returns status and warnings?4287 build_statuses: [:success, :waiting_for_resource], dag: false, result: "waiting_for_resource", has_warnings: false4288 behaves like compares status and warnings4289 returns status and warnings?4290 build_statuses: [:success, :manual], dag: false, result: "manual", has_warnings: false4291 behaves like compares status and warnings4292 returns status and warnings?4293 build_statuses: [:success, :scheduled], dag: false, result: "scheduled", has_warnings: false4294 behaves like compares status and warnings4295 returns status and warnings?4296 build_statuses: [:created, :preparing], dag: false, result: "preparing", has_warnings: false4297 behaves like compares status and warnings4298 returns status and warnings?4299 build_statuses: [:created, :success, :pending], dag: false, result: "running", has_warnings: false4300 behaves like compares status and warnings4301 returns status and warnings?4302 build_statuses: [:skipped, :success, :failed], dag: false, result: "failed", has_warnings: false4303 behaves like compares status and warnings4304 returns status and warnings?4305 build_statuses: [:skipped, :success, :failed], dag: true, result: "skipped", has_warnings: false4306 behaves like compares status and warnings4307 returns status and warnings?4308 build_statuses: [:success, :manual], dag: true, result: "manual", has_warnings: false4309 behaves like compares status and warnings4310 returns status and warnings?4311 build_statuses: [:success, :failed, :created], dag: true, result: "running", has_warnings: false4312 behaves like compares status and warnings4313 returns status and warnings?4314 allow_failure: true4315 build_statuses: [:manual], dag: false, result: "skipped", has_warnings: false4316 behaves like compares status and warnings4317 returns status and warnings?4318 build_statuses: [:skipped, :failed], dag: false, result: "success", has_warnings: true4319 behaves like compares status and warnings4320 returns status and warnings?4321 build_statuses: [:skipped, :failed], dag: true, result: "skipped", has_warnings: true4322 behaves like compares status and warnings4323 returns status and warnings?4324 build_statuses: [:success, :manual], dag: true, result: "skipped", has_warnings: false4325 behaves like compares status and warnings4326 returns status and warnings?4327 build_statuses: [:success, :manual], dag: false, result: "success", has_warnings: false4328 behaves like compares status and warnings4329 returns status and warnings?4330 build_statuses: [:created, :failed], dag: false, result: "created", has_warnings: true4331 behaves like compares status and warnings4332 returns status and warnings?4333 build_statuses: [:preparing, :manual], dag: false, result: "preparing", has_warnings: false4334 behaves like compares status and warnings4335 returns status and warnings?4336Clusters::Cleanup::ProjectNamespaceService4337 #execute4338 when cluster has namespaces to be deleted4339 deletes namespaces from cluster4340 deletes namespaces from database4341 schedules ::ServiceAccountWorker4342 logs all events4343 when cluster.kubeclient is nil4344 schedules ::ServiceAccountWorker4345 deletes namespaces from database4346 when cluster has no namespaces4347 schedules Clusters::Cleanup::ServiceAccountWorker4348 transitions to cleanup_removing_service_account4349 does not try to delete namespaces4350 when there is a Kubeclient::HttpError4351 schedules ::ServiceAccountWorker with accepted errors4352 schedules ::ServiceAccountWorker with accepted errors4353 schedules ::ServiceAccountWorker with accepted errors4354 raises error with unaccepted errors4355Repositories::HousekeepingService4356 behaves like housekeeps repository4357 with a clean redis state4358 #execute4359 enqueues a sidekiq job4360 yields the block if given4361 resets counter after execution4362 runs the task specifically requested4363 when no lease can be obtained4364 does not enqueue a job4365 does not reset pushes_since_gc4366 does not yield4367 task type4368 goes through all three housekeeping tasks, executing only the highest task when there is overlap4369 #needed?4370 when the count is low enough4371 when the count is high enough4372 when incremental repack period is not multiple of gc period4373 #increment!4374 increments the pushes_since_gc counter4375 behaves like housekeeps repository4376 with a clean redis state4377 #execute4378 enqueues a sidekiq job4379 yields the block if given4380 resets counter after execution4381 runs the task specifically requested4382 when no lease can be obtained4383 does not enqueue a job4384 does not reset pushes_since_gc4385 does not yield4386 task type4387 goes through all three housekeeping tasks, executing only the highest task when there is overlap4388 #needed?4389 when the count is low enough4390 when the count is high enough4391 when incremental repack period is not multiple of gc period4392 #increment!4393 increments the pushes_since_gc counter4394Gitlab::GithubImport::Importer::SingleEndpointIssueNotesImporter4395 is expected to includes the Gitlab::GithubImport::ParallelScheduling module4396 is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module4397 is expected to eq Gitlab::GithubImport::Representation::Note4398 is expected to eq Gitlab::GithubImport::Importer::NoteImporter4399 is expected to eq :issue_comments4400 is expected to eq :note4401 is expected to eq 14402 #each_object_to_import4403 fetches data4404 skips cached pages4405 skips cached merge requests4406Ci::PlayManualStageService#execute4407 when pipeline has manual processables4408 starts manual processables from pipeline4409 updates manual processables4410 when pipeline has no manual processables4411 does not update the processables4412 when user does not have permission on a specific processable4413 logs the error4414Gitlab::GithubImport::Representation::DiffNote4415 .from_api_response4416 behaves like a DiffNote representation4417 returns an instance of DiffNote4418 the returned DiffNote4419 includes the number of the merge request4420 includes the file path of the diff4421 includes the commit ID4422 includes the created timestamp4423 includes the updated timestamp4424 includes the GitHub ID4425 returns the noteable type4426 #diff_hash4427 returns a Hash containing the diff details4428 #diff_position4429 when the diff is an addition4430 returns a Gitlab::Diff::Position4431 when the diff is an deletion4432 returns a Gitlab::Diff::Position4433 #github_identifiers4434 returns a hash with needed identifiers4435 #line_code4436 generates the proper line code4437 when comment on file4438 generates line code for first line4439 #note and #contains_suggestion?4440 includes the note body4441 when the note have a suggestion4442 returns the suggestion formatted in the note4443 when the note have a multiline suggestion4444 returns the multi-line suggestion formatted in the note4445 #author4446 includes the user details4447 when the author is empty4448 does not set the user if the response did not include a user4449 #discussion_id4450 finds or generates discussion_id value4451 .from_json_hash4452 behaves like a DiffNote representation4453 returns an instance of DiffNote4454 the returned DiffNote4455 includes the number of the merge request4456 includes the file path of the diff4457 includes the commit ID4458 includes the created timestamp4459 includes the updated timestamp4460 includes the GitHub ID4461 returns the noteable type4462 #diff_hash4463 returns a Hash containing the diff details4464 #diff_position4465 when the diff is an addition4466 returns a Gitlab::Diff::Position4467 when the diff is an deletion4468 returns a Gitlab::Diff::Position4469 #github_identifiers4470 returns a hash with needed identifiers4471 #line_code4472 generates the proper line code4473 when comment on file4474 generates line code for first line4475 #note and #contains_suggestion?4476 includes the note body4477 when the note have a suggestion4478 returns the suggestion formatted in the note4479 when the note have a multiline suggestion4480 returns the multi-line suggestion formatted in the note4481 #author4482 includes the user details4483 when the author is empty4484 does not set the user if the response did not include a user4485Gitlab::DataBuilder::Pipeline4486 .build4487 has correct attributes4488 build with runner4489 has runner attributes4490 pipeline without variables4491 has empty variables hash4492 pipeline with variables4493 is expected to be a kind of Array4494 is expected to contain exactly {:key=>"TRIGGER_KEY_1", :value=>"TRIGGER_VALUE_1"}4495 when pipeline is a detached merge request pipeline4496 returns a source ref4497 returns merge request4498 when pipeline has retried builds4499 does not contain retried builds in payload4500 contains retried builds if requested4501 build with environment4502 has environment attributes4503 when the pipeline has an upstream4504 in same project4505 behaves like source pipeline attributes4506 has source pipeline attributes4507 in different project4508 is expected not to eq 10104509 behaves like source pipeline attributes4510 has source pipeline attributes4511 avoids N+1 database queries4512 with multiple builds4513 with multiple retried builds4514 .build failed4515 has failure_reason4516Packages::Composer::CreatePackageService4517 #execute4518 without an existing package4519 with a branch4520 creates the package4521 behaves like assigns the package creator4522 assigns the package creator4523 behaves like assigns build to package4524 with build info4525 assigns the pipeline to the package4526 behaves like assigns status to package4527 with status param4528 assigns the status to the package4529 with a tag4530 creates the package4531 behaves like assigns the package creator4532 assigns the package creator4533 behaves like assigns build to package4534 with build info4535 assigns the pipeline to the package4536 behaves like assigns status to package4537 with status param4538 assigns the status to the package4539 with an existing package4540 belonging to the same project4541 does not create a new package4542 belonging to another project4543 fails with an error4544 with pending_destruction package4545 creates the package4546 same name but of different type4547 creates the package4548GraphqlHelpers4549 a_graphql_entity_for4550 when no arguments are passed4551 raises an error4552 when the model is nil, with no properties4553 raises an error4554 when the model is nil, any fields are passed4555 raises an error4556 with no model4557 behaves like hash-inclusion with camel-casing4558 with just a model4559 only considers the ID4560 with a model and some method names4561 also considers the method names4562 with a model and some other properties4563 behaves like the superset4564 with a model, method names, and some other properties4565 behaves like the superset4566 graphql_dig_at4567 transforms symbol keys to graphql field names4568 supports integer indexing4569 gracefully degrades to nil4570 supports implicitly flat-mapping traversals4571 does not omit nils at the leaves4572 supports fields with leading underscore4573 var4574 allocates a fresh name for each var4575 can be used to construct correct signatures4576 can be used to pass arguments to fields4577 can associate values with variables4578 does not mutate the variable when providing a value4579 can associate many values with variables4580 .query_nodes4581 can produce a basic connection selection4582 allows greater depth4583 accepts fields4584 accepts arguments4585 accepts arguments and fields4586 accepts explicit type name4587 can optionally provide pagination info4588 .query_graphql_path4589 can build nested paths4590 can insert arguments at any point4591 .attributes_to_graphql4592 can serialize hashes to literal arguments4593 .all_graphql_fields_for4594 returns a FieldSelection4595 returns nil if the depth is too shallow4596 can select just the scalar fields4597 selects only as far as 3 levels by default4598 selects only as far as requested4599 omits fields that have required arguments4600 .graphql_mutation4601 when fields argument is passed4602 behaves like correct mutation definition4603 returns correct mutation definition4604 when block is passed4605 behaves like correct mutation definition4606 returns correct mutation definition4607 when both fields and a block are passed4608 raises an ArgumentError4609 .fieldnamerize4610 makes an underscored string look like a fieldname4611 when field has a leading underscore4612 skips a transformation4613JoinedGroupsFinder4614 #execute4615 without a user4616 only shows public groups from profile owner4617 with a user4618 when the profile visitor is in the private group4619 only shows groups where both users are authorized to see4620 if profile visitor is in one of the private group projects4621 shows group4622 external users4623 if not a member4624 does not show internal groups4625 if authorized4626 shows internal groups if authorized4627Ci::CreatePipelineService4628 rate limiting4629 when user is under the limit4630 allows pipeline creation4631 when user is over the limit4632 blocks pipeline creation4633 with different users4634 allows other members to create pipelines4635 with different commits4636 allows user to create pipeline4637 with different projects4638 allows user to create pipeline4639Packages::Debian::GroupComponentFile4640 behaves like Debian Component File4641 relationships4642 with stubbed uploader4643 is expected to belong to component class_name => Packages::Debian::GroupComponent required: false inverse_of => files4644 with packages file_type4645 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture required: false inverse_of => files4646 with :sources file_type4647 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture inverse_of => files optional: true4648 validations4649 #component4650 is expected to validate that :component cannot be empty/falsy4651 #architecture4652 with packages file_type4653 is expected to validate that :architecture cannot be empty/falsy4654 with :sources file_type4655 is expected to validate that :architecture is empty/falsy4656 #file_type4657 is expected to validate that :file_type cannot be empty/falsy4658 is expected to allow :file_type to be ‹:packages›4659 #compression_type4660 is expected not to validate that :compression_type cannot be empty/falsy4661 is expected to allow :compression_type to be ‹nil›4662 is expected to allow :compression_type to be ‹:gz›4663 #file4664 the uploader api4665 is expected to respond to #store_dir4666 is expected to respond to #cache_dir4667 is expected to respond to #work_dir4668 #file_store4669 is expected to validate that :file_store cannot be empty/falsy4670 #file_sha2564671 is expected to validate that :file_sha256 cannot be empty/falsy4672 scopes4673 .with_container4674 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-06-02 06:38:20.370086829 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4675 .with_codename_or_suite4676 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-06-02 06:38:20.370086829 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4677 .with_component_name4678 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 3, created_at: "2023-06-02 06:38:20.348282823 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4679 .with_file_type4680 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2023-06-02 06:38:20.378700000 +0000", upda..._type: nil, file_store: 1, file: "Sources", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4681 .with_architecture4682 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-06-02 06:38:20.340215644 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4683 .with_architecture_name4684 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-06-02 06:38:20.340215644 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4685 .with_compression_type4686 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 4, created_at: "2023-06-02 06:38:20.355732352 +0000", upda...ype: "xz", file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4687 .with_file_sha2564688 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 5, created_at: "2023-06-02 06:38:20.362886420 +0000", upda...pe: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "other_sha256">4689 .updated_before4690 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 9, created_at: "2023-06-02 06:38:21.446733475 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::GroupComponentFile id: 10, created_at: "2023-06-02 06:38:21.455381644 +0000", upd...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4691 callbacks4692 updates metadata columns4693 #relative_path4694 with a Packages file_type4695 is expected to eq "qui1/binary-sunt1/Packages"4696 with a Source file_type4697 is expected to eq "qui1/source/Sources"4698 with a DI Packages file_type4699 is expected to eq "qui1/debian-installer/binary-sunt1/Packages"4700 with an xz compression_type4701 is expected to eq "qui1/binary-sunt1/Packages.xz"4702 #empty?4703 with a non-empty component4704 is expected to be falsey4705 with an empty component4706 is expected to be truthy4707Ci::PlayBridgeService#execute4708 when user can run the bridge4709 marks the bridge pending4710 updates bridge's user4711 enqueues Ci::CreateDownstreamPipelineWorker4712 when a subsequent job is skipped4713 marks the subsequent job as processable4714 when bridge is not playable4715 raises StateMachines::InvalidTransition4716 when user can not run the bridge4717 allows user with developer role to play a bridge4718Mutations::Releases::Delete4719 #resolve4720 when the current user has access to create releases4721 deletes the release4722 returns the deleted release4723 does not remove the Git tag associated with the deleted release4724 returns no errors4725 with protected tag4726 when user has access to the protected tag4727 does not have errors4728 when user does not have access to the protected tag4729 has an access error4730 validation4731 when the release does not exist4732 returns the release as nil4733 returns an errors-at-data message4734 when the project does not exist4735 behaves like unauthorized or not found error4736 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error4737 when the current user doesn't have access to update releases4738 when the user is a reporter4739 behaves like unauthorized or not found error4740 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error4741 when the user is a non-project member4742 behaves like unauthorized or not found error4743 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error4744Mutations::Issues::SetSeverity4745 is expected to require graphql authorizations :update_issue and :admin_issue4746 #resolve4747 as guest4748 raises an error4749 and also author4750 raises an error4751 and also assignee4752 raises an error4753 as reporter4754 when issue type is incident4755 when severity has a correct value4756 updates severity4757 returns no errors4758 when severity has an unsuported value4759 sets severity to default4760 returns no errorsr4761 when issue type is not incident4762 does not update the issue4763Gitlab::Ci::Variables::Collection::Sort4764 #initialize with non-Collection value4765 raises ArgumentError4766 #errors4767 table tests4768 empty array4769 errors matches expected errors4770 valid? matches expected errors4771 does not raise4772 simple expansions4773 errors matches expected errors4774 valid? matches expected errors4775 does not raise4776 cyclic dependency4777 errors matches expected errors4778 valid? matches expected errors4779 does not raise4780 array with raw variable4781 errors matches expected errors4782 valid? matches expected errors4783 does not raise4784 variable containing escaped variable reference4785 errors matches expected errors4786 valid? matches expected errors4787 does not raise4788 #tsort4789 table tests4790 empty array4791 returns correctly sorted variables4792 simple expansions, no reordering needed4793 returns correctly sorted variables4794 complex expansion, reordering needed4795 returns correctly sorted variables4796 unused variables4797 returns correctly sorted variables4798 missing variable4799 returns correctly sorted variables4800 complex expansions with missing variable4801 returns correctly sorted variables4802 raw variable does not get resolved4803 returns correctly sorted variables4804 variable containing escaped variable reference4805 returns correctly sorted variables4806 cyclic dependency4807 raises TSort::Cyclic4808 with overridden variables4809 preserves relative order of overridden variables4810Gitlab::RepositoryUrlBuilder4811 .build4812 factory: :project, path_generator: ->(project) { project.full_path }4813 when passing SSH protocol4814 returns the SSH URL to the repository4815 when passing HTTP protocol4816 returns the HTTP URL to the repo without a username4817 includes the custom HTTP clone root if set4818 when passing an unsupported protocol4819 raises an exception4820 factory: :project_snippet, path_generator: ->(snippet) { "#{snippet.project.full_path}/snippets/#{snippet.id}" }4821 when passing SSH protocol4822 returns the SSH URL to the repository4823 when passing HTTP protocol4824 returns the HTTP URL to the repo without a username4825 includes the custom HTTP clone root if set4826 when passing an unsupported protocol4827 raises an exception4828 factory: :project_wiki, path_generator: ->(wiki) { "#{wiki.container.full_path}.wiki" }4829 when passing SSH protocol4830 returns the SSH URL to the repository4831 when passing HTTP protocol4832 returns the HTTP URL to the repo without a username4833 includes the custom HTTP clone root if set4834 when passing an unsupported protocol4835 raises an exception4836 factory: :personal_snippet, path_generator: ->(snippet) { "snippets/#{snippet.id}" }4837 when passing SSH protocol4838 returns the SSH URL to the repository4839 when passing HTTP protocol4840 returns the HTTP URL to the repo without a username4841 includes the custom HTTP clone root if set4842 when passing an unsupported protocol4843 raises an exception4844Featurable4845 .set_available_features4846 is expected to contain exactly :feature1, :feature2, and :feature34847 #*_enabled?4848 is expected to be falsey4849 is expected to be truthy4850 .quoted_access_level_column4851 returns the table name and quoted column name for a feature4852 .access_level_attribute4853 is expected to eq :feature1_access_level4854 raises error for unspecified feature4855 #access_level4856 returns access level4857 #feature_available?4858 when features are disabled4859 returns false4860 when features are enabled only for team members4861 when user is not present4862 returns false4863 when user can read all resources4864 returns true4865 when user cannot read all resources4866 raises NotImplementedError exception4867 when feature is enabled for everyone4868 returns true4869AwardEmojis::AddService4870 #execute4871 when user is not authorized4872 does not add an emoji4873 returns an error state4874 when user is authorized4875 creates an award emoji4876 returns the award emoji4877 return a success status4878 sets the correct properties on the award emoji4879 marking Todos as done4880 type: :issue, expectation: true4881 is expected to eq true4882 type: :merge_request, expectation: true4883 is expected to eq true4884 type: :project_snippet, expectation: false4885 is expected to eq false4886 for notes4887 regular Notes4888 marks the Todo as done4889 PersonalSnippet Notes4890 does not mark the Todo as done4891 when the awardable cannot have emoji awarded to it4892 does not add an emoji4893 returns an error status4894 when the awardable is invalid4895 does not add an emoji4896 returns an error status4897 returns an error message4898Import::GithubFailureEntity4899 # order random4900 exposes correct attributes4901 with `issue_event` failure4902 behaves like import failure entity4903 exposes required fields for import entity4904 with `note` failure4905 behaves like import failure entity4906 exposes required fields for import entity4907 with `release` failure4908 behaves like import failure entity4909 exposes required fields for import entity4910 with `pull_request_merged_by` failure4911 behaves like import failure entity4912 exposes required fields for import entity4913 with `label` failure4914 behaves like import failure entity4915 exposes required fields for import entity4916 with an invalid import_url4917 behaves like import failure entity4918 exposes required fields for import entity4919 with `protected_branch` failure4920 behaves like import failure entity4921 exposes required fields for import entity4922 with `pull_request` failure4923 behaves like import failure entity4924 exposes required fields for import entity4925 with `milestone` failure4926 behaves like import failure entity4927 exposes required fields for import entity4928 with `issue_attachment` failure4929 behaves like import failure entity4930 exposes required fields for import entity4931 with `diff_note` failure4932 behaves like import failure entity4933 exposes required fields for import entity4934 with `release_attachment` failure4935 behaves like import failure entity4936 exposes required fields for import entity4937 with `pull_request_review` failure4938 behaves like import failure entity4939 exposes required fields for import entity4940 with `merge_request_attachment` failure4941 behaves like import failure entity4942 exposes required fields for import entity4943 with `collaborator` failure4944 behaves like import failure entity4945 exposes required fields for import entity4946 with `lfs_object` failure4947 behaves like import failure entity4948 exposes required fields for import entity4949 with `pull_request_review_request` failure4950 behaves like import failure entity4951 exposes required fields for import entity4952 with unknown failure4953 behaves like import failure entity4954 exposes required fields for import entity4955 with `note_attachment` failure4956 behaves like import failure entity4957 exposes required fields for import entity4958 with `issue` failure4959 behaves like import failure entity4960 exposes required fields for import entity4961ActiveRecord locking4962 when lock_version is NULL4963 behaves like locked model4964 can be updated4965 can be deleted4966 when lock_version is 04967 behaves like locked model4968 can be updated4969 can be deleted4970 when lock_version is 14971 behaves like locked model4972 can be updated4973 can be deleted4974Ci::RunScheduledBuildService4975 when user can update build4976 when build is scheduled4977 when scheduled_at is expired4978 can run the build4979 when build requires resource4980 transits to waiting for resource status4981 when scheduled_at is not expired4982 can not run the build4983 when build is not scheduled4984 can not run the build4985 when user can not update build4986 when build is scheduled4987 can not run the build4988Kramdown::Parser::AtlassianDocumentFormat4989 markdown render4990 renders header id to html4991 logs an error with invalid json4992 logs an error if no valid document node4993 invalid node gets ignored4994 behaves like render elements to markdown4995 renders blockquote4996 behaves like render elements to markdown4997 renders bullet_list4998 behaves like render elements to markdown4999 renders code_block5000 behaves like render elements to markdown5001 renders emoji5002 behaves like render elements to markdown5003 renders hard_break5004 behaves like render elements to markdown5005 renders heading5006 behaves like render elements to markdown5007 renders inline_card5008 behaves like render elements to markdown5009 renders media_group5010 behaves like render elements to markdown5011 renders media_single5012 behaves like render elements to markdown5013 renders mention5014 behaves like render elements to markdown5015 renders ordered_list5016 behaves like render elements to markdown5017 renders panel5018 behaves like render elements to markdown5019 renders paragraph5020 behaves like render elements to markdown5021 renders rule5022 behaves like render elements to markdown5023 renders table5024 behaves like render elements to markdown5025 renders strong_em_mark5026 behaves like render elements to markdown5027 renders code_mark5028 behaves like render elements to markdown5029 renders link_mark5030 behaves like render elements to markdown5031 renders strike_sup_sub_mark5032 behaves like render elements to markdown5033 renders underline_text_color_mark5034 behaves like render elements to markdown5035 renders complex_document5036Gitlab::GithubImport5037 github.com5038 returns a new Client with a custom token5039 returns a new Client with a token stored in the import data5040 returns the ID of the ghost user5041 caches the ghost user ID5042 GitHub Enterprise5043 returns a new Client with a custom token5044 returns a new Client with a token stored in the import data5045 returns the ID of the ghost user5046 caches the ghost user ID5047 formats the import url5048 .per_page5049 when project group is present5050 when github_importer_lower_per_page_limit is enabled5051 returns lower per page value5052 when github_importer_lower_per_page_limit is disabled5053 returns default per page value5054 when project group is missing5055 returns default per page value5056EntityDateHelper5057 converts 0 seconds5058 converts 40 seconds5059 converts 60 seconds5060 converts 70 seconds5061 converts 3600 seconds5062 converts 3750 seconds5063 converts 86400 seconds5064 converts 86560 seconds5065 converts 86760 seconds5066 converts 986760 seconds5067 #remaining_days_in_words5068 when less than 31 days remaining5069 returns days remaining5070 when milestone due date is today5071 returns today5072 when milestone due date is tomorrow5073 returns 1 day remaining5074 when queried mid-day5075 returns 1 day remaining5076 when less than 1 year and more than 30 days remaining5077 returns months remaining5078 when more than 1 year remaining5079 returns years remaining5080 when milestone is expired5081 returns "Past due"5082 when milestone has start_date in the future5083 returns "Upcoming"5084 when milestone has start_date in the past5085 returns days elapsed5086Gitlab::Database::HealthStatus::Indicators::PatroniApdex5087 # order random5088 #evaluate5089 behaves like Patroni Apdex Evaluator5090 with main schema5091 returns NoSignal signal in case the feature flag is disabled5092 returns Normal signal when Patroni apdex SLI is above SLO5093 returns Stop signal when Patroni apdex is below SLO5094 without database_apdex_settings5095 returns Unknown signal5096 when Prometheus client is not ready5097 returns Unknown signal5098 when apdex SLI query is not configured5099 returns Unknown signal5100 when slo is not configured5101 returns Unknown signal5102 when Patroni apdex can not be calculated5103 result: nil5104 returns Unknown signal5105 result: []5106 returns Unknown signal5107 result: [{}]5108 returns Unknown signal5109 result: [{"value"=>1}]5110 returns Unknown signal5111 result: [{"value"=>[1]}]5112 returns Unknown signal5113 behaves like Patroni Apdex Evaluator5114 with ci schema5115 returns NoSignal signal in case the feature flag is disabled5116 returns Normal signal when Patroni apdex SLI is above SLO5117 returns Stop signal when Patroni apdex is below SLO5118 without database_apdex_settings5119 returns Unknown signal5120 when Prometheus client is not ready5121 returns Unknown signal5122 when apdex SLI query is not configured5123 returns Unknown signal5124 when slo is not configured5125 returns Unknown signal5126 when Patroni apdex can not be calculated5127 result: nil5128 returns Unknown signal5129 result: []5130 returns Unknown signal5131 result: [{}]5132 returns Unknown signal5133 result: [{"value"=>1}]5134 returns Unknown signal5135 result: [{"value"=>[1]}]5136 returns Unknown signal5137Prometheus::ProxyService5138 configuration5139 ReactiveCaching refresh is not needed5140 #initialize5141 initializes attributes5142 converts ActionController::Parameters into hash5143 with unknown params5144 filters unknown params5145 with series method5146 allows match, start and end parameters5147 #execute5148 when prometheus_adapter is nil5149 returns error5150 when prometheus_adapter cannot query5151 returns error5152 cannot proxy5153 returns error5154 with caching5155 when value present in cache5156 returns cached value5157 when value not present in cache5158 returns nil5159 call prometheus api5160 connection to prometheus server succeeds5161 returns the http status code and body from prometheus5162 connection to prometheus server fails5163 prometheus client raises Gitlab::PrometheusClient::Error5164 returns error5165 with series API5166 calls PrometheusClient with given parameters5167 .from_cache5168 initializes an instance of ProxyService class5169Gitlab::Diff::Highlight5170 #highlight5171 with a diff file5172 returns Gitlab::Diff::Line elements5173 does not modify "match" lines5174 highlights and marks unchanged lines5175 highlights and marks removed lines5176 highlights and marks added lines5177 when no diff_refs5178 when no inline diffs5179 behaves like without inline diffs5180 returns html escaped diff text5181 with diff lines5182 returns Gitlab::Diff::Line elements5183 does not modify "match" lines5184 marks unchanged lines5185 marks removed lines5186 marks added lines5187 when the inline diff marker has an invalid range5188 keeps the original rich line5189 reports to Sentry if configured5190 when no inline diffs5191 behaves like without inline diffs5192 returns html escaped diff text5193 when blob is too large5194 blobs are highlighted as plain text without loading all data5195Packages::Debian::SignDistributionService5196 behaves like Sign Distribution5197 for project detach=false5198 #execute5199 without an existing key5200 raises ArgumentError5201 with an existing key5202 returns the content signed5203 behaves like Sign Distribution5204 for project detach=true5205 #execute5206 without an existing key5207 raises ArgumentError5208 with an existing key5209 returns the content signed5210 behaves like Sign Distribution5211 for group detach=false5212 #execute5213 without an existing key5214 raises ArgumentError5215 with an existing key5216 returns the content signed5217 behaves like Sign Distribution5218 for group detach=true5219 #execute5220 without an existing key5221 raises ArgumentError5222 with an existing key5223 returns the content signed5224Uploads::DestroyService5225 #execute5226 when user is nil5227 behaves like upload not found5228 does not delete any upload5229 returns an error5230 when user cannot destroy upload5231 behaves like upload not found5232 does not delete any upload5233 returns an error5234 when user can destroy upload5235 deletes the upload5236 returns success response5237 when upload is not found5238 behaves like upload not found5239 does not delete any upload5240 returns an error5241 when upload secret is not found5242 behaves like upload not found5243 does not delete any upload5244 returns an error5245 when upload secret has invalid format5246 behaves like upload not found5247 does not delete any upload5248 returns an error5249 when unknown model is used5250 raises an error5251 when upload belongs to other model5252 behaves like upload not found5253 does not delete any upload5254 returns an error5255 when upload destroy fails5256 returns error5257Gitlab::GithubImport::Representation::ProtectedBranch5258 # order random5259 .from_json_hash5260 behaves like a ProtectedBranch rule5261 returns an instance of ProtectedBranch5262 with ProtectedBranch5263 includes the protected branch ID (name) attribute5264 includes the protected branch allow_force_pushes attribute5265 includes the protected branch required_conversation_resolution attribute5266 includes the protected branch required_pull_request_reviews5267 includes the protected branch require_code_owner_reviews5268 includes the protected branch allowed_to_push_users5269 .from_api_response5270 behaves like a ProtectedBranch rule5271 returns an instance of ProtectedBranch5272 with ProtectedBranch5273 includes the protected branch ID (name) attribute5274 includes the protected branch allow_force_pushes attribute5275 includes the protected branch required_conversation_resolution attribute5276 includes the protected branch required_pull_request_reviews5277 includes the protected branch require_code_owner_reviews5278 includes the protected branch allowed_to_push_users5279Gitlab::Patch::Prependable5280 a class including a concern prepending a concern5281 returns values from prepended module ee5282 has the expected ancestors5283 prepends only once even if called twice5284 overriding methods5285 returns values from the class5286 a class prepending a concern prepending a concern5287 returns values from prepended module ee5288 has the expected ancestors5289 prepends only once5290 a class prepending a concern5291 returns values from prepended module ee5292 has the expected ancestors5293 prepends only once5294 simple case5295 class methods5296 has a method5297 can execute a method5298 instance methods5299 has a method5300 chains a method execution5301 having two prepended blocks5302 raises an error5303 the extra hack for override verification5304 when ENV["STATIC_VERIFICATION"] is not defined5305 does not extend ClassMethods onto the defining module5306 when ENV["STATIC_VERIFICATION"] is defined5307 does extend ClassMethods onto the defining module5308Gitlab::Ci::Reports::CodequalityReportsComparer5309 #status5310 when head report has an error5311 returns status failed5312 when head report does not have errors5313 returns status success5314 when head report does not exist5315 returns status not found5316 when base report does not exist5317 returns status success5318 #errors_count5319 when head report has an error5320 returns the number of new errors5321 when head report does not have an error5322 returns zero5323 #resolved_count5324 when base report has an error and head has a different error5325 counts the base report error as resolved5326 when base report has errors head has no errors5327 counts the base report errors as resolved5328 when base report has errors and head has the same error5329 returns zero5330 when base report does not have errors and head has errors5331 returns zero5332 when base report is nil5333 returns zero5334 #total_count5335 when base report has an error5336 returns zero5337 when head report has an error5338 includes the head report error in the count5339 when base report has errors and head report has errors5340 includes errors in the count5341 when base report has errors and head report has the same error5342 includes errors in the count5343 when base report is nil5344 returns zero5345 #existing_errors5346 when base report has errors and head has the same error5347 includes the base report errors sorted by severity5348 when base report has errors and head has a different error5349 returns an empty array5350 when base report does not have errors and head has errors5351 returns an empty array5352 when base report is nil5353 returns an empty array5354 #new_errors5355 when base report has errors and head has more errors5356 includes errors not found in the base report sorted by severity5357 when base report has an error and head has no errors5358 returns an empty array5359 when base report does not have errors and head has errors5360 returns the head report error5361 when base report is nil5362 returns an empty array5363 #resolved_errors5364 when base report errors are still found in the head report5365 returns an empty array5366 when base report has errors and head has a different error5367 returns the base report errors not found in the head report, sorted by severity5368 when base report does not have errors and head has errors5369 returns an empty array5370 when base report is nil5371 returns an empty array5372API::Entities::MergeRequestChanges5373 exposes basic entity fields5374 when #expose_raw_diffs? returns false5375 does not access merge_request.raw_diffs5376 when #expose_raw_diffs? returns true5377 does not access merge_request.raw_diffs5378 :overflow field5379 when :access_raw_diffs is true5380 reports false5381Gitlab::Ci::Status::Build::Common5382 #has_action?5383 is expected not to have action5384 #has_details?5385 when user has access to read build5386 is expected to have details5387 when user does not have access to read build5388 is expected not to have details5389 #details_path5390 links to the build details page5391 #illustration5392 provides a fallback empty state illustration5393Gitlab::ImportExport::Base::RelationObjectSaver5394 #save5395 saves relation object5396 when subrelation is present5397 saves relation object with subrelations5398 when subrelation is not a collection5399 saves subrelation as part of the relation object itself5400 when subrelation collection count is small5401 saves subrelation as part of the relation object itself5402 when some subrelations are invalid5403 saves valid subrelations and logs invalid subrelation5404 when invalid subrelation can still be persisted5405 saves the subrelation5406 when importable is group5407 saves relation without invalid subrelations5408Packages::Nuget::PackagesMetadataPresenter5409 #count5410 is expected to eq 15411 #items5412 avoids N+1 database queries5413 returns an array5414 returns a summary structure5415 returns the catalog entries5416Gitlab::Metrics::GlobalSearchSlis5417 # order random5418 #initialize_slis!5419 initializes Apdex SLIs for global_search5420 initializes ErrorRate SLIs for global_search5421 when initializeing for limited types5422 api: true, web: true5423 only initializes for the relevant endpoints5424 api: true, web: false5425 only initializes for the relevant endpoints5426 api: false, web: true5427 only initializes for the relevant endpoints5428 api: false, web: false5429 only initializes for the relevant endpoints5430 #record_error_rate5431 calls increment on the error rate SLI5432 #record_apdex5433 search_type: "basic", code_search: false, duration_target: 8.8125434 increments the global_search SLI as a success if the elapsed time is within the target5435 increments the global_search SLI as a failure if the elapsed time is not within the target5436 search_type: "basic", code_search: true, duration_target: 27.5385437 increments the global_search SLI as a success if the elapsed time is within the target5438 increments the global_search SLI as a failure if the elapsed time is not within the target5439 search_type: "advanced", code_search: false, duration_target: 2.4525440 increments the global_search SLI as a success if the elapsed time is within the target5441 increments the global_search SLI as a failure if the elapsed time is not within the target5442 search_type: "advanced", code_search: true, duration_target: 15.525443 increments the global_search SLI as a success if the elapsed time is within the target5444 increments the global_search SLI as a failure if the elapsed time is not within the target5445projects/merge_requests/creations/_new_submit.html.haml5446 when there are pipelines for merge request but no pipeline for last commit5447 shows <<Pipelines>> tab and hides <<Builds>> tab5448Gitlab::Graphql::MarkdownField5449 .markdown_field5450 creates the field with some default attributes5451 developer warnings5452 raises when passing a resolver5453 resolving markdown5454 renders markdown from the same property as the field name without the `_html` suffix5455 when a `method` argument is passed5456 renders markdown from a specific property5457 when a block is passed for the resolved object5458 renders markdown from the same property as the field name without the `_html` suffix5459 basic verification that references work5460 renders markdown correctly5461 when the issue is not publicly accessible5462 hides the references from users that are not allowed to see the reference5463 shows the reference to users that are allowed to see it5464Gitlab::UsageData::Topology5465 #topology_usage_data5466 can reach a ready Prometheus client5467 behaves like query topology data from Prometheus5468 tracking node metrics5469 contains node level metrics for each instance5470 and some node memory metrics are missing5471 removes the respective entries and includes the failures5472 and services run on the same node but report different instance values5473 normalizes equivalent instance values and maps them to the same node5474 and node metrics are missing but service metrics exist5475 still reports service metrics5476 and unknown services are encountered5477 filters out unknown service data and reports the unknown services as a failure5478 and an error is raised when querying Prometheus5479 without timeout failures5480 returns empty result and executes subsequent queries as usual5481 with timeout failures5482 exception: Errno::ETIMEDOUT5483 returns empty result and cancelled subsequent queries5484 exception: Net::OpenTimeout5485 returns empty result and cancelled subsequent queries5486 exception: Net::ReadTimeout5487 returns empty result and cancelled subsequent queries5488 can not reach a ready Prometheus client5489 behaves like returns empty result with no failures5490 is expected to eq {:duration_s=>0, :failures=>[]}5491 when top-level function raises error5492 returns empty result with generic failure5493Packages::Rpm::RepositoryMetadata::UpdateXmlService5494 # order random5495 #execute5496 when building empty xml5497 behaves like handling not implemented xml filename5498 raise error5499 for 'primary' xml file5500 behaves like generating empty xml5501 generate expected xml5502 for 'other' xml file5503 behaves like generating empty xml5504 generate expected xml5505 for 'filelist' xml file5506 behaves like generating empty xml5507 generate expected xml5508 when updating xml file5509 behaves like handling not implemented xml filename5510 raise error5511 for 'primary' xml file5512 behaves like updating rpm xml file5513 when updating existing xml5514 generate valid xml add expected xml node to existing xml5515 when empty xml5516 behaves like changing root tag attribute5517 increment previous 'packages' value by 15518 when xml has children5519 when node with given 'pkgid' does not exist yet5520 has children nodes5521 behaves like changing root tag attribute5522 increment previous 'packages' value by 15523 when node with given 'pkgid' already exist5524 has children nodes5525 replace existing node with new data5526 for 'other' xml file5527 behaves like updating rpm xml file5528 when updating existing xml5529 generate valid xml add expected xml node to existing xml5530 when empty xml5531 behaves like changing root tag attribute5532 increment previous 'packages' value by 15533 when xml has children5534 when node with given 'pkgid' does not exist yet5535 has children nodes5536 behaves like changing root tag attribute5537 increment previous 'packages' value by 15538 when node with given 'pkgid' already exist5539 has children nodes5540 replace existing node with new data5541 for 'filelist' xml file5542 behaves like updating rpm xml file5543 when updating existing xml5544 generate valid xml add expected xml node to existing xml5545 when empty xml5546 behaves like changing root tag attribute5547 increment previous 'packages' value by 15548 when xml has children5549 when node with given 'pkgid' does not exist yet5550 has children nodes5551 behaves like changing root tag attribute5552 increment previous 'packages' value by 15553 when node with given 'pkgid' already exist5554 has children nodes5555 replace existing node with new data5556AwardEmojis::ToggleService5557 #execute5558 when user has awarded an emoji5559 calls AwardEmojis::DestroyService5560 destroys an AwardEmoji5561 returns the result of DestroyService#execute5562 when user has not awarded an emoji5563 calls AwardEmojis::AddService5564 creates an AwardEmoji5565 returns the result of AddService#execute5566Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches5567 .build5568 with non-evaluable operands5569 creates a new instance of the token5570 with evaluable operands5571 creates a new instance of the token5572 .type5573 is an operator5574 .precedence5575 has a precedence5576 #evaluate5577 when left and right do not match5578 is expected to eq true5579 when left and right match5580 is expected to eq false5581 when left is nil5582 is expected to eq true5583 when right is nil5584 is expected to eq true5585 when left and right are nil5586 is expected to eq true5587 when left is an empty string5588 is expected to eq true5589 when left and right are empty strings5590 is expected to eq false5591 when left is a multiline string and matches right5592 is expected to eq false5593 when left is a multiline string and does not match right5594 is expected to eq true5595 when a matching pattern uses regex flags5596 is expected to eq false5597 when a non-matching pattern uses regex flags5598 is expected to eq true5599 when right value is a regexp string5600 when matching5601 is expected to eq false5602 when not matching5603 is expected to eq true5604AlertManagement::HttpIntegrations::UpdateService5605 #execute5606 when the current_user is anonymous5607 behaves like error response5608 has an informative message5609 when current_user does not have permission to create integrations5610 behaves like error response5611 has an informative message5612 when an error occurs during update5613 behaves like error response5614 has an informative message5615 with name param5616 successfully updates the integration5617 with active param5618 successfully updates the integration5619 with regenerate_token flag5620 successfully updates the integration5621EventPresenter5622 #resource_parent_name5623 with group event5624 is expected to eq "group466"5625 with project label5626 is expected to eq "group466 / Project-1198 Name"5627 #target_link_options5628 with group event5629 is expected to eq [#<Group id:3092 @group466>, #<Milestone id:42 group466/project-1198%"My title 972">]5630 with project label5631 is expected to eq [#<Project id:1083 group466/project-1198>>, #<Milestone id:42 group466/project-1198%"My title 972">]5632 #target_type_name5633 returns design for a design event5634 returns project for a project event5635 returns milestone for a milestone event5636 returns the issue_type for issue events5637 returns the issue_type for work item events5638 #note_target_type_name5639 returns design for an event on a comment on a design5640 returns nil for an event without a target5641 returns issue for an issue comment event5642DashboardHelper5643 #dashboard_nav_links5644 has all the expected links by default5645 does not contain cross project elements when the user cannot read cross project5646 #feature_entry5647 when implicitly enabled5648 behaves like a feature is enabled5649 is expected to include "<p aria-label=\"Demo: status on\">"5650 when explicitly enabled5651 without links5652 behaves like a feature is enabled5653 is expected to include "<p aria-label=\"Demo: status on\">"5654 behaves like a feature without link5655 is expected not to have visible link "Documentation"5656 with configure link5657 behaves like a feature with configuration5658 is expected to have visible link "Demo" with href "demo.link"5659 with configure and documentation links5660 behaves like a feature with configuration5661 is expected to have visible link "Demo" with href "demo.link"5662 behaves like a feature with documentation5663 is expected to have visible link "Documentation" with href "doc.link"5664 when disabled5665 behaves like a feature is disabled5666 is expected to include "<p aria-label=\"Demo: status off\">"5667 behaves like a feature without link5668 is expected not to have visible link "Documentation"5669 .has_start_trial?5670 is expected to eq false5671 #reviewer_mrs_dashboard_path5672 is expected to eq "/dashboard/merge_requests?reviewer_username=user774"5673Gitlab::Graphql::Loaders::LazyRelationLoader5674 # order random5675 #load5676 when the association is has many5677 is expected to be an instance of Gitlab::Graphql::Loaders::LazyRelationLoader::RelationProxy5678 #relation5679 without arguments5680 is expected to contain exactly #<Issue id:283 namespace1001/project-1209#1> and #<Issue id:284 namespace1001/project-1209#2>5681 with arguments5682 is expected to contain exactly #<Issue id:283 namespace1001/project-1209#1>5683 using the same context for different records5684 does not mix associated records5685 does not cause N+1 queries5686 using Active Record querying methods5687 is expected to equal 15688 using Active Record finder methods5689 is expected to contain exactly #<Issue id:283 namespace1001/project-1209#1> and #<Issue id:284 namespace1001/project-1209#2>5690 calling a method that returns a non relation object5691 is expected to equal 15692 calling a prohibited method5693 raises a `PrematureQueryExecutionTriggered` error5694 when the association is has one5695 is expected to eq #<ProjectSetting project_id: 1084, created_at: "2023-06-02 06:39:32.193045836 +0000", updated_at: "20..._analytics_clickhouse_connection_string: nil, product_analytics_configurator_connection_string: nil>5696 when the association is belongs to5697 raises error5698Gitlab::Themes5699 .body_classes5700 returns a space-separated list of class names5701 .by_id5702 returns a Theme by its ID5703 .default5704 returns the default application theme5705 prevents an infinite loop when configuration default is invalid5706 .each5707 passes the block to the THEMES Array5708 theme.css_filename5709 for Indigo5710 returns an existing CSS filename5711 for Light Indigo5712 returns an existing CSS filename5713 for Blue5714 returns an existing CSS filename5715 for Light Blue5716 returns an existing CSS filename5717 for Green5718 returns an existing CSS filename5719 for Light Green5720 returns an existing CSS filename5721 for Red5722 returns an existing CSS filename5723 for Light Red5724 returns an existing CSS filename5725 for Gray5726 returns an existing CSS filename5727 for Light Gray5728 returns an existing CSS filename5729NewNoteWorker5730 when Note found5731 calls NotificationService#new_note5732 calls Notes::PostProcessService#execute5733 when Note not found5734 logs NewNoteWorker process skipping5735 does not raise errors5736 does not call NotificationService5737 does not call Notes::PostProcessService5738 when note does not require notification5739 does not create a new note notification5740 when Note author has been blocked5741 does not call NotificationService5742 when Note author has been deleted5743 does not call NotificationService5744WorkItems::ParentLinks::DestroyService5745 #execute5746 when user has permissions to update work items5747 removes relation and creates notes5748 returns success message5749 when note creation fails for some reason5750 still records the link event5751 still records the link event5752 when user has insufficient permissions5753 does not remove relation5754 returns error message5755Gitlab::Metrics::BootTimeTracker5756 #track_boot_time!5757 when called on puma for the first time5758 set the startup_time5759 records the current process runtime5760 logs the application boot time5761 tracks boot time in a prometheus gauge5762 on subsequent calls5763 does nothing5764 when called on sidekiq for the first time5765 set the startup_time5766 records the current process runtime5767 logs the application boot time5768 tracks boot time in a prometheus gauge5769 on subsequent calls5770 does nothing5771 when called on console for the first time5772 set the startup_time5773 records the current process runtime5774 logs the application boot time5775 tracks boot time in a prometheus gauge5776 on subsequent calls5777 does nothing5778 when called on other runtimes5779 does nothing5780 #startup_time5781 returns 0 when boot time not tracked5782pages storage check5783 when local store does not exist yet5784 is expected to be truthy5785 when pages is not enabled5786 is expected to be truthy5787 when pages is enabled5788 local_storage_enabled: false, object_storage_enabled: false, raises_exception: true5789 validates pages storage configuration5790 local_storage_enabled: false, object_storage_enabled: true, raises_exception: false5791 validates pages storage configuration5792 local_storage_enabled: true, object_storage_enabled: false, raises_exception: false5793 validates pages storage configuration5794 local_storage_enabled: true, object_storage_enabled: true, raises_exception: false5795 validates pages storage configuration5796 local_storage_enabled: 1, object_storage_enabled: 0, raises_exception: false5797 validates pages storage configuration5798 local_storage_enabled: nil, object_storage_enabled: nil, raises_exception: true5799 validates pages storage configuration5800BulkImports::EntitiesFinder5801 #execute5802 returns a list of import entities associated with user5803 when bulk import is specified5804 returns a list of import entities filtered by bulk import5805 when specified import is not associated with user5806 does not return entities5807 when status is specified5808 returns a list of import entities filtered by status5809 when invalid status is specified5810 does not filter entities by status5811 when bulk import and status are specified5812 returns matched import entities5813 when order is specifed5814 when order is specified as asc5815 returns entities sorted ascending5816 when order is specified as desc5817 returns entities sorted descending5818AuthorizedProjectUpdate::PeriodicRecalculateService5819 #execute5820 calls AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker5821Types::RepositoryType5822 is expected to eq "Repository"5823 is expected to require graphql authorizations :read_code5824 is expected to have graphql field :root_ref5825 is expected to have graphql field :tree5826 is expected to have graphql field :paginated_tree and {:calls_gitaly?=>true, :max_page_size=>100}5827 is expected to have graphql field :exists and {:calls_gitaly?=>true, :complexity=>2}5828 is expected to have graphql field :blobs5829 is expected to have graphql field :branch_names and {:calls_gitaly?=>true, :complexity=>170}5830 is expected to have graphql field :disk_path5831Sidebars::UserProfile::Menus::FollowersMenu5832 # order random5833 behaves like User profile menu5834 does not contain any sub menu5835 renders the correct link5836 renders the correct title5837 renders the correct icon5838 defines correct active route5839 renders if user is logged in5840 when viewed user is blocked5841 when user is not logged in5842 is not allowed to view the menu item5843 when current user has permission5844 is allowed to view the menu item5845 when current user does not have permission5846 is not allowed to view the menu item5847 when viewed user is banned5848 when user is not logged in5849 is not allowed to view the menu item5850 when current user has permission5851 is allowed to view the menu item5852 when current user does not have permission5853 is not allowed to view the menu item5854 behaves like Followers/followees counts5855 when there are items5856 renders the pill5857 returns the count5858 when there are no items5859 does not render the pill5860Tooling::Danger::SidekiqArgs5861 # order random5862 #changed_worker_files5863 returns added, modified, and renamed_after files by default5864 with include_ee: :exclude5865 returns spec files without EE-specific files5866 with include_ee: :only5867 returns EE-specific spec files only5868 #add_comment_for_matched_line5869 when args are changed5870 adds suggestion at the correct lines5871 when args are not changed5872 does not add suggestion5873 #args_changed?5874 before: " - def perform", after: " + def perform(abc)", result: true5875 returns correct result5876 before: " - def perform", after: " + def perform(abc)", result: true5877 returns correct result5878 before: " - def perform(abc)", after: " + def perform(def)", result: true5879 returns correct result5880 before: " - def perform(abc, def)", after: " + def perform(abc)", result: true5881 returns correct result5882 before: " - def perform(abc, def)", after: " + def perform(def, abc)", result: true5883 returns correct result5884 before: " - def perform", after: " - def perform", result: false5885 returns correct result5886 before: " + def perform", after: " + def perform", result: false5887 returns correct result5888 before: " - def perform(abc)", after: " - def perform(abc)", result: false5889 returns correct result5890 before: " + def perform(abc)", after: " + def perform(abc)", result: false5891 returns correct result5892 before: " - def perform(abc)", after: " + def perform_foo(abc)", result: false5893 returns correct result5894ApplicationSetting::TermPolicy5895 has the correct permissions5896 for anonymous users5897 has the correct permissions5898 when the terms are not current5899 has the correct permissions5900 when the user already accepted the terms5901 has the correct permissions5902Gitlab::Lazy5903 when not calling any methods5904 does not call the supplied block5905 when calling a method on the object5906 lazy loads the value returned by the block5907 #respond_to?5908 returns true for a method defined on the wrapped object5909 returns false for a method not defined on the wrapped object5910JiraImport::UsersImporter5911 #execute5912 when Jira import is not configured properly5913 returns an error5914 when Jira instance is of Server deployment type5915 behaves like maps Jira users to GitLab users5916 when Jira import is configured correctly5917 when users mapper service raises an error5918 returns an error response5919 when users mapper service returns result5920 when users mapper service returns an empty array5921 returns nil payload5922 when Jira client returns any users5923 returns the mapped users5924 when Jira instance is of Cloud deployment type5925 behaves like maps Jira users to GitLab users5926 when Jira import is configured correctly5927 when users mapper service raises an error5928 returns an error response5929 when users mapper service returns result5930 when users mapper service returns an empty array5931 returns nil payload5932 when Jira client returns any users5933 returns the mapped users5934BulkImports::FileDownloadService5935 #execute5936 downloads file5937 when content-type is application/gzip5938 downloads file5939 when url is not valid5940 raises an error5941 when content-type is not valid5942 raises an error5943 when content-length is not valid5944 when content-length exceeds limit5945 raises an error5946 when content-length is missing5947 raises an error5948 when content-length is equals the file size limit5949 does not raise an error5950 when partially downloaded file exceeds limit5951 raises an error5952 when chunk code is not 2005953 raises an error5954 when chunk code is redirection5955 does not write a redirection chunk5956 when redirection chunk appears at a later stage of the download5957 raises an error5958 remote content validation5959 on redirect chunk5960 does not run content type & length validations5961 when there is one data chunk5962 validates content type & length5963 when there are multiple data chunks5964 validates content type & length only once5965 when file is a symlink5966 raises an error and removes the file5967 when dir is not in tmpdir5968 raises an error5969 when dir path is being traversed5970 raises an error5971 when using the remote filename5972 when no filename is given5973 raises an error when the filename is not provided in the request header5974 with a given filename5975 uses the given filename5976 when the filename is a path5977 raises an error when the filename is not provided in the request header5978 when the filename is longer the the limit5979 raises an error when the filename is not provided in the request header5980Gitlab::Database::LooseForeignKeys5981 verify all definitions5982 all definitions have assigned a known gitlab_schema and on_delete5983 ensure keys are sorted5984 does not have any keys that are out of order5985 ensure no duplicates are found5986 does not have duplicate tables defined5987 does not have duplicate column definitions5988 ensuring database integrity5989 all `to_table` tables are present5990 all `from_table` tables are present5991 all tables have correct triggers installed5992 all YAML tables do have `track_record_deletions` installed5993 no extra tables have `track_record_deletions` installed5994 .build_definition5995 when child table schema is not defined5996 raises Gitlab::Database::GitlabSchema::UnknownSchemaError error5997Gitlab::UsageDataCounters::KubernetesAgentCounter5998 behaves like a redis usage counter5999 .count(gitops_sync)6000 increments the Kubernetes Agent gitops_sync counter by 16001 .read(gitops_sync)6002 returns the total number of gitops_sync events6003 behaves like a redis usage counter with totals6004 totals6005 can report all totals6006 unknown events6007 cannot increment6008 cannot read6009 behaves like a redis usage counter6010 .count(k8s_api_proxy_request)6011 increments the Kubernetes Agent k8s_api_proxy_request counter by 16012 .read(k8s_api_proxy_request)6013 returns the total number of k8s_api_proxy_request events6014 behaves like a redis usage counter with totals6015 totals6016 can report all totals6017 unknown events6018 cannot increment6019 cannot read6020 .increment_event_counts6021 increments the specified counters by the new increment amount6022 with empty events6023 is expected not to change `Gitlab::UsageDataCounters::KubernetesAgentCounter.totals`6024 event is unknown6025 raises an ArgumentError6026 increment is negative6027 raises an ArgumentError6028GroupLabel6029 relationships6030 is expected to belong to group required: false6031 validations6032 is expected to validate that :group cannot be empty/falsy6033 #subject6034 aliases group to subject6035 #to_reference6036 using id6037 returns a String reference to the object6038 using name6039 returns a String reference to the object6040 uses id when name contains double quote6041 cross-project6042 returns a String reference to the object6043 using invalid format6044 raises error6045 #preloaded_parent_container6046 when group is loaded6047 does not invoke a DB query6048 when parent_container is loaded6049 does not invoke a DB query6050 when none of them are loaded6051 invokes a DB query6052Resolvers::AlertManagement::AlertResolver6053 user does not have permission6054 is expected to eq #<ActiveRecord::Relation []>6055 user has permission6056 is expected to contain exactly #<AlertManagement::Alert id:2 namespace1012/project-1221^alert#1> and #<AlertManagement::Alert id:3 namespace1012/project-1221^alert#2>6057 finding by iid6058 is expected to contain exactly #<AlertManagement::Alert id:2 namespace1012/project-1221^alert#1>6059 finding by status6060 is expected to contain exactly #<AlertManagement::Alert id:3 namespace1012/project-1221^alert#2>6061 filtering by domain6062 is expected to contain exactly #<AlertManagement::Alert id:2 namespace1012/project-1221^alert#1>, #<AlertManagement::Alert id:3 namespace1012/project-1221^alert#2>, and #<AlertManagement::Alert id:7 namespace1012/project-1221^alert#5>6063 sorting6064 when sorting by events count6065 sorts alerts ascending6066 sorts alerts descending6067Gitlab::Database::PartitioningMigrationHelpers::ForeignKeyHelpers6068 #add_concurrent_partitioned_foreign_key6069 when the foreign key does not exist on the parent table6070 creates the foreign key on each partition, and the parent table6071 with validate: false option6072 creates the foreign key only on partitions6073 when the foreign key exists on the parent table6074 does not attempt to create any foreign keys6075 when additional foreign key options are given6076 forwards them to the foreign key helper methods6077 when run inside a transaction block6078 raises an error6079 #validate_partitioned_foreign_key6080 when run inside a transaction block6081 raises an error6082 when run outside a transaction block6083 validates FK for each partition6084ContainerExpirationPolicyWorker6085 #perform6086 process cleanups6087 calls the limited capacity worker6088 with exclusive lease taken6089 does not do anything6090 process stale ongoing cleanups6091 set them as unfinished6092 policies without container repositories6093 disables them6094 counts logging6095 logs all the counts6096 with load balancing enabled6097 reads the counts from the replica6098Sidebars::Projects::Menus::DeploymentsMenu6099 behaves like not serializable as super_sidebar_menu_args6100 returns nil6101 #render?6102 when menu does not have any menu items6103 returns false6104 when menu has menu items6105 returns true6106 Menu Items6107 Feature flags6108 behaves like access rights checks6109 is expected not to be nil6110 when the user does not have access6111 is expected to be nil6112 when the feature is disabled6113 is expected to be nil6114 Environments6115 behaves like access rights checks6116 is expected not to be nil6117 when the user does not have access6118 is expected to be nil6119 when the feature is disabled6120 is expected to be nil6121 Releases6122 behaves like access rights checks6123 is expected not to be nil6124 when the user does not have access6125 is expected to be nil6126 when the feature is disabled6127 is expected to be nil6128Import::BitbucketProviderRepoEntity6129 behaves like exposes required fields for import entity6130 exposes required fields6131 correctly exposes id6132 correctly exposes full name6133 correctly exposes sanitized name6134 correctly exposes provider link6135Packages::Composer::VersionParserService6136 #execute6137 tagname: nil, branchname: "master", expected_version: "dev-master"6138 is expected to eq "dev-master"6139 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"6140 is expected to eq "dev-my-feature"6141 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"6142 is expected to eq "dev-12-feature"6143 tagname: nil, branchname: "v1", expected_version: "1.x-dev"6144 is expected to eq "1.x-dev"6145 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"6146 is expected to eq "1.x-dev"6147 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"6148 is expected to eq "1.7.x-dev"6149 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"6150 is expected to eq "1.7.x-dev"6151 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"6152 is expected to eq "1.7.x-dev"6153 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"6154 is expected to eq "1.0.0"6155 tagname: "v1.0", branchname: nil, expected_version: "1.0"6156 is expected to eq "1.0"6157 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"6158 is expected to eq "1.0.1+meta"6159 tagname: "1.0", branchname: nil, expected_version: "1.0"6160 is expected to eq "1.0"6161 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"6162 is expected to eq "1.0.2"6163 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"6164 is expected to eq "1.0.2-beta2"6165 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"6166 is expected to eq "1.0.1+meta"6167BuildSuccessWorker6168 #perform6169 when build exists6170 when the build will stop an environment6171 stops the environment6172 when the build fails6173 does not stop the environment6174 when build does not exist6175 does not raise exception6176Gitlab::UsageDataCounters::DesignsCounter6177 behaves like a redis usage counter6178 .count(create)6179 increments the Designs create counter by 16180 .read(create)6181 returns the total number of create events6182 behaves like a redis usage counter6183 .count(update)6184 increments the Designs update counter by 16185 .read(update)6186 returns the total number of update events6187 behaves like a redis usage counter6188 .count(delete)6189 increments the Designs delete counter by 16190 .read(delete)6191 returns the total number of delete events6192 behaves like a redis usage counter with totals6193 totals6194 can report all totals6195 unknown events6196 cannot increment6197 cannot read6198Pajamas::CheckboxComponent6199 with default options6200 renders unchecked checkbox with value of `1`6201 does not render help text6202 renders hidden input with value of `0`6203 with custom options6204 renders help text6205 renders checked checkbox with value of `yes`6206 adds CSS class to label6207 renders hidden input with value of `no`6208 with `label` slot6209 renders unchecked checkbox with value of `1`6210 with `help_text` slot6211 renders unchecked checkbox with value of `1`6212 renders help text6213 with `label` and `help_text` slots6214 renders unchecked checkbox with value of `1`6215 renders help text6216Gitlab::Usage::Metrics::Instrumentations::DormantUserSettingEnabledMetric6217 # order random6218 deactivate_dormant_users_enabled: 0, expected_value: 06219 behaves like a correct instrumented metric value6220 has correct value6221 deactivate_dormant_users_enabled: 1, expected_value: 16222 behaves like a correct instrumented metric value6223 has correct value6224AuditEvents::BuildService6225 #execute6226 sets correct attributes6227 when IP address is not provided6228 uses author current_sign_in_ip6229 when overriding target details6230 uses correct target details6231 when deploy token is passed as author6232 expect author to be user6233 when deploy key is passed as author6234 expect author to be deploy key6235 when author is passed as UnauthenticatedAuthor6236 sets author as unauthenticated user6237 when attributes are missing6238 when author is missing6239 is expected to raise AuditEvents::BuildService::MissingAttributeError6240 when scope is missing6241 is expected to raise AuditEvents::BuildService::MissingAttributeError6242 when target is missing6243 is expected to raise AuditEvents::BuildService::MissingAttributeError6244 when message is missing6245 is expected to raise AuditEvents::BuildService::MissingAttributeError6246EnvironmentsHelper6247 #metrics_data6248 returns data6249 without admin_operations permission6250 is expected to include {"can_access_operations_settings" => "false"}6251 with metrics_setting6252 adds external_dashboard_url6253 when the environment is not available6254 is expected to include {"environment_state" => "stopped"}6255 when request is from project scoped metrics path6256 /:namespace/:project/-/metrics6257 uses correct path for metrics_dashboard_base_path6258 /:namespace/:project/-/metrics/some_custom_dashboard.yml6259 uses correct path for metrics_dashboard_base_path6260 when metrics dashboard feature is unavailable6261 does not return data6262 #custom_metrics_available?6263 returns true6264 #environment_logs_data6265 returns logs data6266 #environment_data6267 returns the environment as JSON6268Resolvers::IncidentManagement::TimelineEventTagsResolver6269 # order random6270 returns timeline event tags6271 is expected to have nullable GraphQL type TimelineEventTagTypeConnection6272 when timeline event is nil6273 returns no timeline event tags6274 when there is no timeline event tag link6275 returns no timeline event tags6276 when user does not have permissions6277 returns no timeline event tags6278Metrics::Dashboard::ClusterDashboardService6279 .valid_params?6280 is expected to be truthy6281 with matching dashboard_path6282 is expected to be truthy6283 missing cluster without dashboard_path6284 is expected to be falsey6285 #get_dashboard6286 behaves like valid dashboard service response6287 behaves like valid dashboard service response for schema6288 returns a json representation of the dashboard6289 behaves like caches the unprocessed dashboard for subsequent calls6290 is expected to receive load_raw!(*(any args)) 1 time6291 behaves like refreshes cache when dashboard_version is changed6292 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/cluster_metrics.yml>) 2 times6293 behaves like dashboard_version contains SHA256 hash of dashboard file content6294 is expected to eq "e1a4f8cc2c044cf32273af2cd775eb484729baac0995db687d81d92686bf588e"6295 when called with a non-system dashboard6296 behaves like valid dashboard service response6297 behaves like valid dashboard service response for schema6298 returns a json representation of the dashboard6299Resolvers::RepositoryBranchNamesResolver6300 #resolve6301 with empty search pattern6302 returns nil6303 with a valid search pattern6304 returns matching branches6305 properly offsets and limits branch name results6306Gitlab::Ci::Build::Artifacts::Metadata6307 metadata file exists6308 #find_entries! empty string6309 matches correct paths6310 matches metadata for every path6311 return Hashes for each metadata6312 #find_entries! other_artifacts_0.1.2/6313 matches correct paths6314 #find_entries! other_artifacts_0.1.2/another-subdirectory/6315 matches correct paths6316 #find_entries! recursively for other_artifacts_0.1.2/6317 matches correct paths6318 #to_entry6319 is expected to be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6320 #full_version6321 is expected to eq "GitLab Build Artifacts Metadata 0.0.1"6322 #version6323 is expected to eq "0.0.1"6324 #errors6325 is expected to eq {}6326 metadata file does not exist6327 #find_entries!6328 raises error6329 metadata file is invalid6330 #find_entries!6331 raises error6332 generated metadata6333 #find_entries!6334 reads expected number of entries6335RebaseWorker#perform6336 when rebasing an MR from a fork where upstream has protected branches6337 sets the correct project for running hooks6338FromSetOperator6339 when set operator method already exists6340 is expected to raise RuntimeError6341 with members6342 as array6343 is expected not to make queries6344 behaves like set operator called with correct members6345 is expected to receive new([#<ActiveRecord::Relation [#<Group id:3210 @group484>]>, #<ActiveRecord::Relation [#<Group id:3211 @group485>]>], anything) 1 time6346 as multiple parameters6347 is expected not to make queries6348 behaves like set operator called with correct members6349 is expected to receive new([#<ActiveRecord::Relation [#<Group id:3210 @group484>]>, #<ActiveRecord::Relation [#<Group id:3211 @group485>]>], anything) 1 time6350Gitlab::Usage::Metrics::Instrumentations::CountImportedProjectsTotalMetric6351 with all time frame6352 behaves like a correct instrumented metric value and query6353 behaves like a correct instrumented metric value6354 has correct value6355 behaves like a correct instrumented metric query6356 has correct generate query6357 for 28d time frame6358 behaves like a correct instrumented metric value and query6359 behaves like a correct instrumented metric value6360 has correct value6361 behaves like a correct instrumented metric query6362 has correct generate query6363Gitlab::Ci::Reports::CoverageReportGenerator6364 #report6365 when pipeline has multiple builds with coverage reports6366 behaves like having a coverage report6367 returns coverage reports with collected data6368 and it is a child pipeline6369 returns empty coverage report6370 when builds are retried6371 does not take retried builds into account6372 when pipeline does not have any builds with coverage reports6373 returns empty coverage reports6374 when pipeline has child pipeline with builds that have coverage reports6375 behaves like having a coverage report6376 returns coverage reports with collected data6377 when both parent and child pipeline have builds with coverage reports6378 behaves like having a coverage report6379 returns coverage reports with collected data6380Backup::FileBackupError6381 with lfs file6382 behaves like includes backup path6383 is expected to respond to #app_files_dir6384 is expected to respond to #backup_tarball6385 expects exception message to include file backup path location6386 expects exception message to include file being back-up6387 with uploads file6388 behaves like includes backup path6389 is expected to respond to #app_files_dir6390 is expected to respond to #backup_tarball6391 expects exception message to include file backup path location6392 expects exception message to include file being back-up6393HamlLint::Linter::NoPlainNodes6394 reports when a tag has an inline plain node6395 is expected to report a lint with message '`Hello Tanuki` is a plain node. Please use an i18n method like `= _('Hello Tanuki')`'6396 reports when a tag has multiline plain nodes6397 is expected to report a lint6398 reports when a tag has an inline plain node with interpolation6399 is expected to report a lint6400 does not report when a tag has an inline script6401 is expected not to report a lint6402 does not report when a tag is empty6403 is expected not to report a lint6404 reports multiple when a tag has multiline plain nodes split by non-text nodes6405 is expected to report a lint6406 does not report when a html entity6407 is expected not to report a lint6408 does report when something that looks like a html entity6409 is expected to report a lint6410 does not report multiline when one or more html entities6411 with >6412 is expected not to report a lint6413 with ©6414 is expected not to report a lint6415 with »6416 is expected not to report a lint6417 does report multiline when one or more html entities amidst plain text6418 with Test6419 is expected to report a lint6420 with Test>6421 is expected to report a lint6422 with ©Hello6423 is expected to report a lint6424 with Hello»6425 is expected to report a lint6426Gitlab::Ci::Trace::Metrics6427 #increment_trace_bytes6428 when incrementing by more than one6429 increments a single counter6430 #increment_error_counter6431 when the error reason is known6432 increments the counter6433 when the error reason is unknown6434 raises an exception6435ContainerExpirationPolicies::CleanupService6436 #execute6437 with a successful cleanup tags service execution6438 completely clean up the repository6439 without a successful cleanup tags service execution6440 partially clean up the repository6441 with a truncated cleanup tags service response6442 partially clean up the repository6443 with no repository6444 returns an error response6445 with an invalid policy6446 returns an error response6447 with a network error6448 raises an error6449 next run scheduling6450 with cleanups started_at before policy next_run_at6451 behaves like not scheduling the next run6452 does not scheduled the next run6453 with cleanups started_at around policy next_run_at6454 behaves like not scheduling the next run6455 does not scheduled the next run6456 with only the current repository started_at before the policy next_run_at6457 behaves like scheduling the next run6458 schedules the next run6459 with cleanups started_at after policy next_run_at6460 behaves like scheduling the next run6461 schedules the next run6462 with a future policy next_run_at6463 behaves like not scheduling the next run6464 does not scheduled the next run6465MergeRequests::PushedBranchesService6466 when branches pushed6467 returns only branches which have a open and closed merge request6468 when tags pushed6469 returns empty result without any SQL query performed6470Ci::DagJobGroupEntity6471 #as_json6472 when group contains 1 job6473 exposes a name6474 exposes the size6475 exposes the jobs6476 matches schema6477 when group contains multiple parallel jobs6478 exposes a name6479 exposes the size6480 exposes the jobs6481 matches schema6482Gitlab::HealthChecks::Probes::Collection6483 #execute6484 with all checks6485 responds with readiness checks data6486 when Redis fails6487 responds with failure6488 when check raises exception not handled inside the check6489 responds with failure including the exception info6490 when some checks are not available6491 asks for check availability6492 does not call `readiness` on checks that are not available6493 does not fail collection check6494 without checks6495 responds with success6496BulkImports::Groups::Extractors::SubgroupsExtractor6497 #extract6498 returns ExtractedData response6499KeysetHelper6500 with admin mode6501 when no users are present6502 does not render pagination links6503 when one user is present6504 does not render pagination links6505 when more users are present6506 when on the first page6507 renders the next and last links6508 when at the last page6509 renders the prev and first links6510 when at the second page6511 renders all links6512Gitlab::GrapeLogging::Loggers::CloudflareLogger6513 #parameters6514 with no Cloudflare headers6515 returns an empty hash6516 with Cloudflare headers6517 returns the correct duration in seconds6518Gitlab::AnonymousSession6519 removes obsolete lookup through ip entries6520 #store_session_ip6521 adds session id to proper key6522 adds expiration time to key6523 when there is already one session6524 increments the session count6525 #stored_sessions6526 returns all anonymous sessions per ip6527Gitlab::ErrorTracking::StackTraceHighlightDecorator6528 .decorate6529 does not change issue_id6530 does not change date_received6531 decorates the stack trace context6532Ci::PipelineArtifacts::CoverageReportWorker6533 #perform6534 when pipeline exists6535 calls the pipeline coverage report service6536 when the pipeline is part of a hierarchy6537 when all pipelines is complete6538 calls the pipeline coverage report service on the root ancestor pipeline6539 when the pipeline hierarchy has incomplete pipeline6540 does not call pipeline coverage report service6541 when pipeline does not exist6542 does not call pipeline create artifact service6543RuboCop::Cop::Database::DisableReferentialIntegrity6544 # order random6545 flags the use of disable_referential_integrity when passing a block6546 flags the use of disable_referential_integrity with a nil receiver6547 does not flag the use of disable_referential_integrity with a send receiver6548 flags the use of disable_referential_integrity with a full definition6549Gitlab::Search::AbuseValidators::NoAbusiveCoercionFromStringValidator6550 attribute_value: ["this is an arry"], valid?: false6551 is expected to receive message chain errors.add6552 attribute_value: {:this=>"is a hash"}, valid?: false6553 is expected to receive message chain errors.add6554 attribute_value: 123, valid?: false6555 is expected to receive message chain errors.add6556 attribute_value: 456.78, valid?: false6557 is expected to receive message chain errors.add6558 attribute_value: "now this is a string", valid?: true6559 is expected not to receive errors(*(any args)) 0 times6560MilestonePresenter6561 #milestone_path6562 returns correct path6563Types::CustomerRelations::ContactType6564 is expected to eq "CustomerRelationsContact"6565 is expected to have graphql fields "id", "organization", "first_name", "last_name", "phone", "email", "description", "active", "created_at", and "updated_at"6566 is expected to require graphql authorizations :read_crm_contact6567NamedEcdsaKeyValidator6568 with empty value6569 does not add any error if value is empty6570 when key is not EC6571 does not add any error6572 with ECDSA certificate with named curve6573 does not add any error6574 with ECDSA certificate with explicit curve params6575 adds errors6576Gitlab::GithubImport::Stage::FinishImportWorker6577 #perform6578 marks the import as finished and reports import statistics6579Gitlab::ExclusiveLeaseHelpers6580 #in_lock6581 when unique key is not set6582 raises an error6583 when the lease is not obtained yet6584 calls the given block6585 calls the given block continuously6586 cancels the exclusive lease after the block6587 when the lease is obtained already6588 retries to obtain a lease and raises an error6589 when ttl is specified6590 receives the specified argument6591 when retry count is specified6592 retries for the specified times6593 when lease is granted after retry6594 yields block with true6595 when we specify no retries6596 never sleeps6597 when sleep second is specified6598 receives the specified argument6599 when sleep second is specified as a lambda6600 receives the specified argument6601SyntheticNote6602 #to_ability_name6603 is expected to eq "note"6604WikiPageVersionHelper6605 #wiki_page_version_author_url6606 when user exists6607 returns the link to the user profile6608 when user does not exist6609 returns the mailto link6610 #wiki_page_version_author_avatar6611 returns the user avatar6612 #wiki_page_version_author_header6613 when user exists6614 renders commit header with user info6615 when user does not exist6616 renders commit header with info from commit6617 when user info has XSS6618 sets the right href and escapes HTML chars6619Users::UnblockService6620 # order random6621 #execute6622 when successful6623 is expected to eq true6624 change the user's state6625 saves a custom attribute6626 when failed6627 returns error result6628 does not change the user's state6629Ci::UpdatePendingBuildService6630 #execute6631 validations6632 when model is invalid6633 raises an error6634 when params is invalid6635 raises an error6636 when model is a group with pending builds6637 updates all pending builds6638 when model is a project with pending builds6639 updates all pending builds6640RunnerEntity6641 #as_json6642 contains required fields6643 without admin permissions6644 does not contain admin_path field6645 with admin permissions6646 contains admin_path field6647Gitlab::SidekiqVersioning::Middleware6648 #call6649 sets worker.job_version6650 yields6651 when worker is not ApplicationWorker6652 does not err6653TriggerableHooks6654 scopes6655 defines a scope for each of the requested triggers6656 .hooks_for6657 the model has the required trigger scope6658 returns the record6659 the model does not have the required trigger scope6660 returns an empty relation6661 the stock scope ".all" is accepted6662 returns the record6663 .select_active6664 returns hooks that match the active filter6665 returns empty list if no hooks match the active filter6666Resolvers::UserDiscussionsCountResolver6667 #resolve6668 is expected to have nullable GraphQL type Int6669 when counting discussions from a public issue6670 returns the number of discussions for the issue6671 when a user has permission to view discussions6672 returns the number of non-system discussions for the issue6673 when a user does not have permission to view discussions6674 returns no discussions6675LegacyDiffNote6676 #to_ability_name6677 is expected to eq "note"6678 callbacks6679 #set_diff6680 when not importing6681 updates st_diff6682 when importing6683 does not update st_diff6684 when st_diff is blank6685 updates st_diff6686Gitlab::GithubImport::Importer::PullRequests::ReviewRequestImporter6687 # order random6688 imports merge request reviewers that were found6689Gitlab::Ci::Config::Entry::Inherit::Default6690 validations6691 config: true, valid: true6692 is expected to eq true6693 config: false, valid: true6694 is expected to eq true6695 config: ["image"], valid: true6696 is expected to eq true6697 config: ["unknown"], valid: false6698 is expected to eq false6699 config: [:image], valid: false6700 is expected to eq false6701 config: [true], valid: false6702 is expected to eq false6703 config: "string", valid: false6704 is expected to eq false6705 #inherit?6706 config: true, inherit: true6707 is expected to eq true6708 config: false, inherit: false6709 is expected to eq false6710 config: ["image"], inherit: true6711 is expected to eq true6712 config: ["before_script"], inherit: false6713 is expected to eq false6714Gitlab::Usage::Metrics::NameSuggestion6715 #for6716 for count with nil column6717 behaves like name suggestion6718 return correct name6719 for count with column :id6720 behaves like name suggestion6721 return correct name6722 for count distinct with column defined metrics6723 behaves like name suggestion6724 return correct name6725 joined relations6726 counted attribute comes from source relation6727 behaves like name suggestion6728 return correct name6729 strips off time period constraint6730 behaves like name suggestion6731 return correct name6732 for sum metrics6733 behaves like name suggestion6734 return correct name6735 for average metrics6736 behaves like name suggestion6737 return correct name6738 for redis metrics6739 behaves like name suggestion6740 return correct name6741 for alt_usage_data metrics6742 behaves like name suggestion6743 return correct name6744 for metrics with `having` keyword6745 behaves like name suggestion6746 return correct name6747BulkImports::StuckImportWorker6748 perform6749 updates the status of bulk imports to timeout6750 updates the status of bulk import entities to timeout6751 updates the status of stale entities trackers to timeout6752 does not update the status of non-stale records6753Projects::UpdateRepositoryStorageWorker6754 behaves like an update storage move worker6755 has the `until_executed` deduplicate strategy6756 #perform6757 without repository storage move6758 calls the update repository storage service6759 with repository storage move6760 calls the update repository storage service6761Issuable::ProcessAssignees6762 #execute6763 returns assignee_ids when add_assignee_ids and remove_assignee_ids are not specified6764 combines other ids when assignee_ids is nil6765 combines other ids when both add_assignee_ids and remove_assignee_ids are not empty6766 combines other ids when remove_assignee_ids is not empty6767 combines other ids when add_assignee_ids is not empty6768 combines ids when existing_assignee_ids and extra_assignee_ids are omitted6769 handles mixed string and integer arrays6770Resolvers::GroupMembers::NotificationEmailResolver6771 #resolve6772 is expected to have nullable GraphQL type String6773 when current_user is admin6774 returns email6775 when current_user is not admin6776 raises ResourceNotAvailable error6777GroupLink::GroupGroupLinkEntity6778 matches json schema6779 source6780 exposes `source`6781 is_direct_member6782 exposes `is_direct_member` as true for corresponding group6783 exposes `is_direct_member` as false for other source6784 when current user has `:admin_group_member` permissions6785 when direct_member? is true6786 exposes `can_update` and `can_remove` as `true`6787 when direct_member? is false6788 exposes `can_update` and `can_remove` as `true`6789Packages::MlModel::FindOrCreatePackageService6790 # order random6791 #execute6792 when model does not exist6793 creates the model6794 when build is provided6795 creates package and package build info6796 when model already exists6797 does not create a new model6798PipelineHooksWorker6799 #perform6800 when pipeline exists6801 executes hooks for the pipeline6802 when pipeline does not exist6803 does not raise exception6804 when the user is blocked6805 returns early without executing6806 behaves like worker with data consistency6807 .get_data_consistency_feature_flag_enabled?6808 returns true6809 .get_data_consistency6810 returns correct data consistency6811Gitlab::GithubImport::LabelFinder6812 #id_for6813 with a cache in place6814 returns the ID of the given label6815 returns nil for an empty cache key6816 returns nil for a non existing label name6817 without a cache in place6818 returns nil for a label6819 #build_cache6820 builds the cache of all project labels6821 #cache_key_for6822 returns the cache key for a label name6823ProtectedBranches::ApiService6824 # order random6825 with entity group6826 behaves like execute with entity6827 creates a protected branch with prefilled defaults6828 updates a protected branch without prefilled defaults6829 with entity project6830 behaves like execute with entity6831 creates a protected branch with prefilled defaults6832 updates a protected branch without prefilled defaults6833Gitlab::SlashCommands::Presenters::IssueComment6834 #present6835 is expected to be a kind of Hash6836 sets ephemeral response type6837 sets the title6838 sets the fallback text6839 sets the fields6840 sets the color6841Slack::BlockKit::IncidentManagement::IncidentModalOpened6842 # order random6843 #build6844 generates blocks for modal6845 sets projects in the project selection6846 sets initial project option as the first project path6847 truncates the path value if more than 75 chars6848Gitlab::Database::Migration6849 .[]6850 version: 1.06851 inherits from ActiveRecord::Migration[6.1]6852 includes migration helpers version 26853 includes LockRetriesConcern6854 unknown version6855 raises an error6856 .current_version6857 includes current ActiveRecord migration class6858 Gitlab::Database::Migration::LockRetriesConcern6859 when not explicitly called6860 does not disable lock retries by default6861 when explicitly disabled6862 does not disable lock retries by default6863SystemCheck::App::GitUserDefaultSSHConfigCheck6864 only whitelists safe files6865 #skip?6866 user_exists: true, home_dir_exists: true6867 is expected to eq false6868 user_exists: true, home_dir_exists: false6869 is expected to eq true6870 user_exists: false, home_dir_exists: true6871 is expected to eq true6872 user_exists: false, home_dir_exists: false6873 is expected to eq true6874 #check?6875 fails if a forbidden file exists6876 succeeds if the SSH directory doesn't exist6877 succeeds if all the whitelisted files exist6878 #show_error6879 outputs error information6880Gitlab::Ci::Status::Pipeline::Blocked6881 #text6882 overrides status text6883 #label6884 overrides status label6885 .matches?6886 when pipeline is blocked6887 is a correct match6888 when pipeline is not blocked6889 does not match6890ScheduleMergeRequestCleanupRefsWorker6891 #perform6892 does nothing if the database is read-only6893 retries stuck cleanup schedules6894 is labeled as idempotent6895 performs multiple times sequentially without raising an exception6896 schedules MergeRequestCleanupRefsWorker to be performed with capacity6897 when merge_request_refs_cleanup flag is disabled6898 does not schedule any merge request clean ups6899Gitlab::Database::SchemaCleaner6900 removes comments on extensions6901 no assumption about public being the default schema6902 cleans up all the gitlab_schema_prevent_write table triggers6903 keeps the lock_writes trigger functions6904 cleans up the full schema as expected (blackbox test with example)6905UserStatusCleanup::BatchWorker6906 is labeled as idempotent6907 performs multiple times sequentially without raising an exception6908 #perform6909 cleans up the records6910 when no records are scheduled for cleanup6911 does nothing6912Ide::SchemasConfigService6913 #execute6914 when no predefined schema exists for the given filename6915 returns an empty object6916 when a predefined schema exists for the given filename6917 uses predefined schema matches6918Packages::Pypi::Metadatum6919 relationships6920 is expected to belong to package required: false6921 validations6922 is expected to validate that :package cannot be empty/falsy6923 is expected to allow :required_python to be ‹""›6924 is expected not to allow :required_python to be ‹nil›6925 is expected not to allow :required_python to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6926 #pypi_package_type6927 will not allow a package with a different package_type6928Integrations::ExecuteWorker#perform6929 executes integration with given data6930 logs error messages6931 when integration cannot be found6932 completes silently and does not log an error6933Gitlab::Pagination::Keyset::CursorPager6934 #paginate6935 returns the limited relation6936 #finalize6937 passes information about next page to request6938 when retrieving the last page6939 does not build information about the next page6940 when retrieving an empty page6941 does not build information about the next page6942Gitlab::Database::Migrations::RunnerBackoff::ActiveRecordMixin6943 # order random6944 Gitlab::Database::Migrations::RunnerBackoff::ActiveRecordMixin::ActiveRecordMigratorRunnerBackoff6945 with runner backoff disabled6946 calls super method6947 with runner backoff enabled6948 calls super method6949 Gitlab::Database::Migrations::RunnerBackoff::ActiveRecordMixin::ActiveRecordMigrationProxyRunnerBackoff6950 #enable_runner_backoff?6951 delegates to #migration6952 returns false if migration does not implement it6953 .patch!6954 patches MigrationProxy6955 patches Migrator6956JsRegexValidator6957 #validates_each6958 user_default_internal_regex: nil, result: []6959 generates correct errors6960 user_default_internal_regex: "", result: []6961 generates correct errors6962 user_default_internal_regex: "(?#comment)", result: ["Regex Pattern (?#comment) can not be expressed in Javascript"]6963 generates correct errors6964 user_default_internal_regex: "(?(a)b|c)", result: ["invalid conditional pattern: /(?(a)b|c)/i"]6965 generates correct errors6966Gitlab::DependencyLinker::CartfileLinker6967 .support?6968 supports Cartfile6969 supports Cartfile.private6970 does not support other files6971 #link6972 links dependencies6973 links Git repos6974 links binary-only frameworks6975Gitlab::Template::GitignoreTemplate6976 .all6977 strips the gitignore suffix6978 combines the globals and rest6979 .find6980 returns nil if the file does not exist6981 returns the Gitignore object of a valid file6982 #content6983 loads the full file6984Gitlab::SubmoduleLinks6985 #for6986 when there is no .gitmodules file6987 returns no links6988 when the submodule is unknown6989 returns no links6990 when the submodule is known6991 returns links and caches the by ref6992 when ref name contains a dash6993 returns links6994 and the diff information is available6995 the returned links include the compare link6996 but the submodule url has changed6997 the returned links do not include the compare link6998Shard6999 .populate!7000 creates shards based on the config file7001 .by_name7002 returns an existing shard7003 creates a new shard7004 returns existing record if creation races7005Types::ContainerRepositoryDetailsType7006 is expected to eq "ContainerRepositoryDetails"7007 is expected to eq "Details of a container repository"7008 is expected to require graphql authorizations :read_container_image7009 is expected to have graphql fields :id, :name, :path, :location, :created_at, :updated_at, :expiration_policy_started_at, :status, :tags_count, :can_delete, :expiration_policy_cleanup_status, :tags, :size, :project, :migration_state, and :last_cleanup_deleted_tags_count7010 tags field7011 returns tags connection type7012CronjobQueue7013 disables retrying of failed jobs7014 automatically clears project, user and namespace from the context7015 gets scheduled with caller_id set to Cronjob7016 gets root_caller_id from the cronjob7017 does not set the caller_id if there was already one in the context7018RedisCommand matchers7019 # order random7020 verifies minimum number of Redis calls7021 verifies maximum number of Redis calls7022 with Recorder matching only some Redis calls7023 counts only Redis calls captured by Recorder7024 when expect part is a function7025 automatically enables RedisCommand::Recorder for it7026Gitlab::Ci::Config::External::Mapper::Matcher7027 # order random7028 #process7029 with ci_include_components FF disabled7030 returns an array of file objects7031 with ci_include_components FF enabled7032 returns an array of file objects7033 when a location is not valid7034 raises an error7035 when the invalid location includes a masked variable7036 raises an error with a masked sentence7037 when a location is ambiguous7038 raises an error7039JiraConnect::SendUninstalledHookWorker7040 # order random7041 #perform7042 is labeled as idempotent7043 performs multiple times sequentially without raising an exception7044 calls the ProxyLifecycleEventService service7045Metrics::GlobalMetricsUpdateWorker7046 # order random7047 #perform7048 delegates to ::Metrics::GlobalMetricsUpdateService7049 for an idempotent worker7050 is labeled as idempotent7051 performs multiple times sequentially without raising an exception7052 exports metrics7053Packages::PackagePolicy7054 when the user is part of the project7055 allows read_package7056 when the user is not part of the project7057 disallows read_package for any Package7058SshKeys::UpdateLastUsedAtWorker7059 # order random7060 behaves like an idempotent worker7061 is labeled as idempotent7062 performs multiple times sequentially without raising an exception7063 #perform7064 updates last_used_at column7065 does not update updated_at column7066Gitlab::Ci::Config::Entry::Tags7067 validation7068 when tags config value is correct7069 #value7070 returns tags configuration7071 #valid?7072 is valid7073 when entry value is not correct7074 #errors7075 when tags config is not an array of strings7076 reports error7077 when tags limit is reached7078 reports error7079Projects::GoogleCloud::CloudsqlHelper7080 # order random7081 #TIERS7082 is an array7083 #VERSIONS7084 returns versions for :postgres7085 returns versions for :mysql7086 returns versions for :sqlserver7087BulkImports::Projects::Pipelines::ServiceDeskSettingPipeline7088 #run7089 imports project feature7090devise/shared/_error_messages7091 # order random7092 Error messages7093 with errors7094 shows errors7095 without errors7096 does not show errors7097Model::ModelGenerator7098 when generating a model7099 create db/migrate/20230602064118_create_model_generator_test_foos.rb7100 create app/models/model_generator_test_foo.rb7101 invoke rspec7102 create spec/models/model_generator_test_foo_spec.rb7103 creates the model file with the right content7104 create db/migrate/20230602064118_create_model_generator_test_foos.rb7105 create app/models/model_generator_test_foo.rb7106 invoke rspec7107 create spec/models/model_generator_test_foo_spec.rb7108 creates the migration file with the right content7109 create db/migrate/20230602064118_create_model_generator_test_foos.rb7110 create app/models/model_generator_test_foo.rb7111 invoke rspec7112 create spec/models/model_generator_test_foo_spec.rb7113 creates the spec file with the right content7114Metrics::GlobalMetricsUpdateService7115 # order random7116 #execute7117 sets gitlab_maintenance_mode gauge metric7118Gitlab::MergeRequests::Mergeability::ResultsStore7119 #read7120 calls #retrieve_check on the interface7121 when #retrieve_check returns nil7122 returns nil7123 #write7124 calls #save_check on the interface7125Gitlab::GithubImport::ImportIssueEventWorker7126 #import7127 imports an issue event7128Integrations::SlackInteractions::IncidentManagement::IncidentModalClosedService7129 # order random7130 #execute7131 when executed7132 makes the POST call and closes the modal7133 when the POST call raises an HTTP exception7134 tracks the exception and returns an error response7135 when response is not ok7136 returns error response and tracks the exception7137Gitlab::GithubImport::ImportNoteWorker7138 #import7139 imports a note7140Types::Projects::Services::JiraServiceType7141 is expected to eq "JiraService"7142 has basic expected fields7143 is expected to require graphql authorizations :admin_project7144Types::AlertManagement::AlertStatusCountsType7145 is expected to eq "AlertManagementAlertStatusCountsType"7146 exposes the expected fields7147Glfm::VerifyAllGeneratedFilesAreUpToDate#process7148 # order random7149 when repo is dirty7150 raises an error7151 when repo is clean7152 when all generated files are up to date7153 does not raise an error7154 when generated file(s) are not up to date7155ERROR: The following files were modified by running GLFM scripts. Please review, verify, and commit the changes:7156M /builds/gitlab-org/gitlab/glfm_specification/output_example_snapshots7157See the CI artifacts for the modified version of the files.7158This is the output of `git diff`:7159 raises an error7160Gitlab::GithubImport::Stage::ImportLfsObjectsWorker7161 #import7162 imports all the lfs objects7163ArchivedAbilities7164 # order random7165 .archived_features7166 returns an array of features to be prevented when archived7167 .archived_abilities7168 returns an array of abilities to be prevented when archived7169Types::WorkItems::Widgets::CurrentUserTodosInputType7170 # order random7171 is expected to eq "WorkItemWidgetCurrentUserTodosInput"7172 is expected to contain exactly "action" and "todoId"7173Types::Ci::Config::JobType7174 is expected to eq "CiConfigJob"7175 exposes the expected fields7176Types::Ci::TestReportTotalType7177 is expected to eq "TestReportTotal"7178 contains attributes related to a pipeline test report summary7179DiffLineSerializer7180 #to_json7181 matches the schema7182 when lines are parallel7183 matches the schema7184Types::WorkItems::Widgets::NotificationsUpdateInputType7185 # order random7186 is expected to eq "WorkItemWidgetNotificationsUpdateInput"7187 is expected to contain exactly "subscribed"7188BaseContainerService7189 #initialize7190 accepts container and current_user7191 treats current_user as optional7192Types::MemberAccessLevelEnum7193 # order random7194 exposes all the existing access levels7195 is expected to eq "MemberAccessLevel"7196Types::CiConfiguration::Sast::InputType7197 is expected to eq "SastCiConfigurationInput"7198 is expected to contain exactly "global", "pipeline", and "analyzers"7199Types::CommitActionModeEnum7200 is expected to eq "CommitActionMode"7201 exposes all the existing commit actions7202Gitlab::Usage::Metrics::Instrumentations::GitlabDedicatedMetric7203 # order random7204 behaves like a correct instrumented metric value7205 has correct value7206Resolvers::Ci::RunnerPlatformsResolver7207 #resolve7208 returns all possible runner platforms7209Mailer retries7210 sets retries for mailers to 37211Types::Packages::PackageTypeEnum7212 exposes all package types7213Evidences::EvidenceSerializer7214 represents an EvidenceEntity entity7215Types::Packages::PackageSortEnum7216 exposes all package sort values7217GravatarService7218 #execute7219 replaces the placeholders7220FasterCacheKeys7221 #cache_key7222 returns a String7223Gitlab::GithubImport::Importer::IssueAndLabelLinksImporter7224 #execute7225 imports an issue and its labels7226Gitlab::Database::SchemaValidation::Validators::ExtraIndexes7227 # order random7228 returns index inconsistencies7229Tooling::VisualReviewHelper7230 #visual_review_toolbar_options7231 returns the correct params7232AbuseReportsHelper7233 # order random7234 #valid_image_mimetypes7235 is expected to eq "image/png, image/jpg, image/jpeg, image/gif, image/bmp, image/tiff, image/ico or image/webp"7236Pending: (Failures listed here are expected and do not affect your suite's status)7237 1) Gitlab::Database::Migrations::Runner ci database creates the results dir when one does not exist7238 # Skipping because ci is shared or doesn't not exist7239 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1037240 2) Gitlab::Database::Migrations::Runner ci database .up result directory uses the /up subdirectory7241 # Skipping because ci is shared or doesn't not exist7242 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1137243 3) Gitlab::Database::Migrations::Runner ci database .up migrations to run is the list of pending migrations7244 # Skipping because ci is shared or doesn't not exist7245 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1217246 4) Gitlab::Database::Migrations::Runner ci database .up running migrations runs the unapplied migrations in regular/post order, then version order7247 # Skipping because ci is shared or doesn't not exist7248 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1297249 5) Gitlab::Database::Migrations::Runner ci database .up running migrations writes a metadata file with the current schema version and database name7250 # Skipping because ci is shared or doesn't not exist7251 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1367252 6) Gitlab::Database::Migrations::Runner ci database .up running migrations runs the unapplied migrations on the correct database7253 # Skipping because ci is shared or doesn't not exist7254 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1457255 7) Gitlab::Database::Migrations::Runner ci database .down writes a metadata file with the current schema version7256 # Skipping because ci is shared or doesn't not exist7257 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1777258 8) Gitlab::Database::Migrations::Runner ci database .down result directory is the /down subdirectory7259 # Skipping because ci is shared or doesn't not exist7260 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1577261 9) Gitlab::Database::Migrations::Runner ci database .down migrations to run is the list of migrations that are up and on this branch7262 # Skipping because ci is shared or doesn't not exist7263 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1637264 10) Gitlab::Database::Migrations::Runner ci database .down running migrations runs the applied migrations for the current branch in reverse order7265 # Skipping because ci is shared or doesn't not exist7266 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1697267 11) Gitlab::Database::Migrations::Runner ci database .background_migrations is a TestBackgroundRunner7268 # Skipping because ci is shared or doesn't not exist7269 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1887270 12) Gitlab::Database::Migrations::Runner ci database .background_migrations is configured with a result dir of /background_migrations7271 # Skipping because ci is shared or doesn't not exist7272 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:1927273 13) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations is a TestBatchedBackgroundRunner7274 # Skipping because ci is shared or doesn't not exist7275 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2007276 14) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations choosing the database to test against chooses the provided database7277 # Skipping because ci is shared or doesn't not exist7278 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2057279 15) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations choosing the database to test against throws an error with an invalid name7280 # Skipping because ci is shared or doesn't not exist7281 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2137282 16) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations choosing the database to test against includes the database name in the result dir7283 # Skipping because ci is shared or doesn't not exist7284 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2187285 17) Gitlab::Database::Migrations::Runner ci database .batched_background_migrations legacy mode does not include the database name in the path7286 # Skipping because ci is shared or doesn't not exist7287 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2267288 18) Gitlab::Database::Migrations::Runner ci database .batched_migrations_last_id matches the expected runner class7289 # Skipping because ci is shared or doesn't not exist7290 # ./spec/lib/gitlab/database/migrations/runner_spec.rb:2377291Finished in 18 minutes 9 seconds (files took 1 minute 2.77 seconds to load)72923278 examples, 0 failures, 18 pending7293Randomized with seed 216437294[TEST PROF INFO] Time spent in factories: 10:12.020 (54.73% of total time)7295RSpec exited with 0.7296No examples to retry, congrats!7298Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7300Uploading artifacts...7301coverage/: found 5 matching artifact files and directories 7302crystalball/: found 2 matching artifact files and directories 7303WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7304knapsack/: found 4 matching artifact files and directories 7305WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7306rspec/: found 14 matching artifact files and directories 7307WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7308log/*.log: found 19 matching artifact files and directories 7309WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964678/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7310WARNING: Retrying... context=artifacts-uploader error=request redirected7311Uploading artifacts as "archive" to coordinator... 201 Created id=4400964678 responseStatus=201 Created token=64_LXxur7312Uploading artifacts...7313rspec/rspec-*.xml: found 1 matching artifact files and directories 7314WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964678/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7315WARNING: Retrying... context=artifacts-uploader error=request redirected7316Uploading artifacts as "junit" to coordinator... 201 Created id=4400964678 responseStatus=201 Created token=64_LXxur7318Job succeeded