rspec unit pg12 13/22
Passed Started
by
@dbalexandre

Douglas Barbosa Alexandre
1Running with gitlab-runner 14.7.0~beta.58.gfa48f33b (fa48f33b)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:84353f33e1def62bd8dfb09b10761c4ce651f5e5475e1ec53d5c918e29d96744 for postgres:12 with digest postgres@sha256:7984919d5b1d8bd22539118c671555b50cd3bb5fbc568645a49f61e5ab94b8f9 ...10Starting service redis:5.0-alpine ...11Pulling docker image redis:5.0-alpine ...12Using docker image sha256:1746b159f8934fe63cae3984643ee8c5651bcfc80ae107032a60f2871a0e7cdb for redis:5.0-alpine with digest redis@sha256:a04b57e05b784a406bc818f6b450233328c4115a1e1f104d84ce916eb1583925 ...13Waiting for services to be up and running...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...16Using docker image sha256:8138f36e34bc79c9e5ab676915a37672f25052a13a6e7b6801a0d5866a8e494c for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:cd14b6829dee854cdf4ce05c5e8cfd48f805945f17d115efa8a7d36dc4ac6d9b ...18Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1643989948-173ddd8d...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 119975, done. 25remote: Counting objects: 100% (119975/119975), done. 26remote: Compressing objects: 100% (79457/79457), done.27remote: Total 119975 (delta 54354), reused 82008 (delta 35960), pack-reused 0 28Receiving objects: 100% (119975/119975), 113.03 MiB | 29.89 MiB/s, done.29Resolving deltas: 100% (54354/54354), done.31 * [new ref] 075476b823110142086f2b93d474f8349e99b4a0 -> refs/pipelines/46383679932 * [new branch] master -> origin/master33Checking out 075476b8 as master...34Skipping Git submodules setup36Checking cache for ruby-gems-v1-9...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-v1-9...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2055931272)...44Downloading artifacts from coordinator... ok id=2055931272 responseStatus=200 OK token=zXasY4gr45Downloading artifacts for detect-tests (2055931277)...46Downloading artifacts from coordinator... ok id=2055931277 responseStatus=200 OK token=9WcSYqj747Downloading artifacts for retrieve-tests-metadata (2055931281)...48Downloading artifacts from coordinator... ok id=2055931281 responseStatus=200 OK token=HLyRKusZ49Downloading artifacts for setup-test-env (2055931275)...50Downloading artifacts from coordinator... ok id=2055931275 responseStatus=200 OK token=K6p64DvG52Using docker image sha256:8138f36e34bc79c9e5ab676915a37672f25052a13a6e7b6801a0d5866a8e494c for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:cd14b6829dee854cdf4ce05c5e8cfd48f805945f17d115efa8a7d36dc4ac6d9b ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh59Successfully installed bundler-2.3.6601 gem installed61Bundler version 2.3.662production:development63Settings are listed in order of priority. The top value will be used.64clean65Set for the current user (/root/.bundle/config): true66install_flags67Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"68path69Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor"70without71Set via BUNDLE_WITHOUT: [:production, :development]72$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check73Don't run Bundler as root. Bundler can ask for sudo if it is needed, and74installing your bundle as root will break this application for all non-root75users on this machine.76The Gemfile's dependencies are satisfied77==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 5 seconds.78$ bundle pristine pg79Installing pg 1.2.3 with native extensions80==> 'bundle pristine pg' succeeded in 10 seconds.81$ setup_db_user_only82CREATE ROLE83GRANT84==> 'setup_db_user_only' succeeded in 1 seconds.85$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee86Dropped database 'gitlabhq_test'87Dropped database 'gitlabhq_geo_test'88Created database 'gitlabhq_test'89Created database 'gitlabhq_geo_test'90DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23)91Dropped database 'gitlabhq_geo_test'92Created database 'gitlabhq_geo_test'93==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 28 seconds.94$ run_timed_command "gem install knapsack --no-document"95$ gem install knapsack --no-document96Successfully installed knapsack-4.0.0971 gem installed98==> 'gem install knapsack --no-document' succeeded in 0 seconds.99$ run_timed_command "scripts/gitaly-test-spawn"100$ scripts/gitaly-test-spawn101find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory102find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory103find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory104Don't run Bundler as root. Bundler can ask for sudo if it is needed, and105installing your bundle as root will break this application for all non-root106users on this machine.107Using abstract_type 0.0.7108Using concurrent-ruby 1.1.9109Using i18n 1.8.11110Using minitest 5.15.0111Using tzinfo 2.0.4112Using zeitwerk 2.5.3113Using activesupport 6.1.4.4114Using builder 3.2.4115Using erubi 1.10.0116Using mini_portile2 2.6.1117Using racc 1.6.0118Using nokogiri 1.12.5 (x86_64-linux)119Using rails-dom-testing 2.0.3120Using crass 1.0.6121Using loofah 2.13.0122Using rails-html-sanitizer 1.4.2123Using actionview 6.1.4.4124Using rack 2.2.3125Using rack-test 1.1.0126Using actionpack 6.1.4.4127Using ice_nine 0.11.2128Using thread_safe 0.3.6129Using memoizable 0.4.2130Using adamantium 0.2.0131Using public_suffix 4.0.6132Using addressable 2.7.0133Using ast 2.4.2134Using binding_ninja 0.2.3135Using bundler 2.1.4136Using charlock_holmes 0.7.7137Using coderay 1.1.2138Using equalizer 0.0.11139Using concord 0.1.5140Using diff-lcs 1.3141Using dotenv 2.7.6142Using escape_utils 1.2.1143Using factory_bot 5.0.2144Using multipart-post 2.1.1145Using faraday 1.0.1146Using ffi 1.15.3147Using json 2.6.1148Using gemojione 3.3.0149Using mini_mime 1.0.2150Using rugged 1.2.0151Using github-linguist 7.12.1152Using github-markup 1.7.0153Using mime-types-data 3.2020.1104154Using mime-types 3.3.1155Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1156Using rouge 3.27.0157Using sanitize 6.0.0158Using stringex 2.8.5159Using gitlab-gollum-lib 4.2.7.10.gitlab.2160Using google-protobuf 3.19.1 (x86_64-linux)161Using googleapis-common-protos-types 1.3.0162Using grpc 1.42.0 (x86_64-linux)163Using opentracing 0.5.0164Using thrift 0.15.0165Using jaeger-client 1.1.0166Using pg_query 2.1.1167Using redis 4.4.0168Using gitlab-labkit 0.21.2169Using rubyzip 2.3.2170Using thor 1.1.0171Using tomlrb 2.0.1172Using with_env 1.1.0173Using rexml 3.2.5174Using xml-simple 1.1.9175Using gitlab-license_finder 6.14.2.1176Using gitlab-markup 1.7.1177Using grpc-tools 1.42.0178Using sawyer 0.8.2179Using octokit 4.20.0180Using reverse_markdown 1.4.0181Using licensee 9.14.1182Using method_source 0.9.2183Using msgpack 1.3.3184Using optimist 3.0.1185Using parallel 1.19.2186Using parser 3.0.3.2187Using procto 0.0.3188Using unparser 0.4.7189Using proc_to_ast 0.1.0190Using pry 0.12.2191Using rainbow 3.0.0192Using rbtrace 0.4.14193Using rdoc 6.3.2194Using regexp_parser 1.8.1195Using rspec-support 3.8.0196Using rspec-core 3.8.0197Using rspec-expectations 3.8.3198Using rspec-mocks 3.8.0199Using rspec 3.8.0200Using rspec-parameterized 0.4.2201Using rubocop-ast 0.2.0202Using ruby-progressbar 1.10.1203Using unicode-display_width 1.7.0204Using rubocop 0.86.0205Using sentry-raven 3.0.4206Using timecop 0.9.1207Bundle complete! 22 Gemfile dependencies, 100 gems now installed.208Gems in the groups production and development were not installed.209Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`210Checking gitaly-ruby Gemfile...211Checking gitaly-ruby bundle...212The Gemfile's dependencies are satisfied213Trying to connect to gitaly: ................................................... OK214Trying to connect to gitaly2: .................................................................. OK215Trying to connect to praefect: ......... OK216==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds.217$ source ./scripts/rspec_helpers.sh218$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"219SKIP_FLAKY_TESTS_AUTOMATICALLY: true220RETRY_FAILED_TESTS_IN_NEW_PROCESS: false221KNAPSACK_GENERATE_REPORT: true222FLAKY_RSPEC_GENERATE_REPORT: true223KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,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.rb224KNAPSACK_LOG_LEVEL: debug225KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_13_22_report.json226FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json227FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_13_22_report.json228NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_13_22_report.json229SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_13_22_report.txt230RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_13_22_report.txt231CRYSTALBALL: 232Knapsack node specs:233spec/models/group_spec.rb234spec/models/packages/package_spec.rb235spec/models/project_team_spec.rb236spec/models/concerns/noteable_spec.rb237spec/services/merge_requests/squash_service_spec.rb238spec/models/project_wiki_spec.rb239spec/services/projects/destroy_service_spec.rb240spec/models/commit_status_spec.rb241spec/models/design_management/design_spec.rb242spec/lib/gitlab/asciidoc_spec.rb243spec/uploaders/attachment_uploader_spec.rb244spec/policies/wiki_page_policy_spec.rb245spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb246spec/services/projects/unlink_fork_service_spec.rb247spec/finders/group_descendants_finder_spec.rb248spec/services/design_management/copy_design_collection/copy_service_spec.rb249spec/lib/gitlab/github_import/user_finder_spec.rb250spec/lib/gitlab/import_export/import_export_equivalence_spec.rb251spec/models/notification_recipient_spec.rb252spec/services/system_notes/merge_requests_service_spec.rb253spec/lib/banzai/pipeline/gfm_pipeline_spec.rb254spec/lib/gitlab/email/message/repository_push_spec.rb255spec/services/clusters/applications/check_installation_progress_service_spec.rb256spec/models/packages/package_file_spec.rb257spec/models/wiki_page/meta_spec.rb258spec/models/concerns/project_api_compatibility_spec.rb259spec/services/clusters/applications/check_uninstall_progress_service_spec.rb260spec/services/alert_management/alerts/update_service_spec.rb261spec/lib/gitlab/utils/markdown_spec.rb262spec/lib/gitlab/import_export/import_failure_service_spec.rb263spec/models/terraform/state_spec.rb264spec/lib/gitlab/auth/ldap/person_spec.rb265spec/models/project_snippet_spec.rb266spec/services/milestones/promote_service_spec.rb267spec/services/serverless/associate_domain_service_spec.rb268spec/models/namespace/root_storage_statistics_spec.rb269spec/services/spam/spam_verdict_service_spec.rb270spec/lib/banzai/filter/external_link_filter_spec.rb271spec/models/concerns/redactable_spec.rb272spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb273spec/lib/banzai/filter/references/design_reference_filter_spec.rb274spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb275spec/models/ci/sources/pipeline_spec.rb276spec/models/snippet_input_action_spec.rb277spec/tasks/gitlab/cleanup_rake_spec.rb278spec/presenters/ci/stage_presenter_spec.rb279spec/services/todos/destroy/project_private_service_spec.rb280spec/lib/gitlab/slash_commands/command_spec.rb281spec/services/branches/delete_merged_service_spec.rb282spec/validators/addressable_url_validator_spec.rb283spec/services/deployments/older_deployments_drop_service_spec.rb284spec/models/ci/secure_file_spec.rb285spec/graphql/resolvers/environments_resolver_spec.rb286spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb287spec/finders/access_requests_finder_spec.rb288spec/lib/backup/repositories_spec.rb289spec/finders/packages/conan/package_file_finder_spec.rb290spec/lib/gitlab/import_export/base/relation_factory_spec.rb291spec/services/merge_requests/reload_diffs_service_spec.rb292spec/models/prometheus_alert_spec.rb293spec/graphql/types/terraform/state_version_type_spec.rb294spec/models/event_collection_spec.rb295spec/lib/gitlab/file_finder_spec.rb296spec/lib/gitlab/runtime_spec.rb297spec/models/integrations/slack_slash_commands_spec.rb298spec/finders/security/license_compliance_jobs_finder_spec.rb299spec/lib/gitlab/ci/ansi2json_spec.rb300spec/services/commits/commit_patch_service_spec.rb301spec/serializers/group_child_serializer_spec.rb302spec/services/commits/cherry_pick_service_spec.rb303spec/tasks/gitlab/web_hook_rake_spec.rb304spec/graphql/resolvers/group_issues_resolver_spec.rb305spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb306spec/workers/new_note_worker_spec.rb307spec/finders/packages/build_infos_finder_spec.rb308spec/models/pages/lookup_path_spec.rb309spec/lib/bulk_imports/projects/pipelines/issues_pipeline_spec.rb310spec/services/pages_domains/create_acme_order_service_spec.rb311spec/models/projects/topic_spec.rb312spec/graphql/resolvers/design_management/design_resolver_spec.rb313spec/services/milestones/closed_issues_count_service_spec.rb314spec/lib/gitlab/redis/boolean_spec.rb315spec/models/identity_spec.rb316spec/rubocop/cop/graphql/descriptions_spec.rb317spec/policies/alert_management/alert_policy_spec.rb318spec/models/integrations/chat_message/alert_message_spec.rb319spec/lib/gitlab/query_limiting/transaction_spec.rb320spec/services/merge_requests/add_context_service_spec.rb321spec/views/projects/merge_requests/edit.html.haml_spec.rb322spec/tasks/gitlab/gitaly_rake_spec.rb323spec/finders/design_management/designs_finder_spec.rb324spec/lib/container_registry/migration_spec.rb325spec/models/clusters/agents/activity_event_spec.rb326spec/lib/gitlab/slash_commands/presenters/access_spec.rb327spec/services/ci/job_token_scope/add_project_service_spec.rb328spec/lib/banzai/filter/inline_diff_filter_spec.rb329spec/models/ci/build_trace_spec.rb330spec/services/personal_access_tokens/last_used_service_spec.rb331spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb332spec/lib/gitlab/integrations/sti_type_spec.rb333spec/lib/gitlab/config/entry/composable_hash_spec.rb334spec/lib/gitlab/hook_data/base_builder_spec.rb335spec/lib/gitlab/marker_range_spec.rb336spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb337spec/services/members/projects/bulk_creator_service_spec.rb338spec/lib/api/entities/merge_request_approvals_spec.rb339spec/services/compare_service_spec.rb340spec/tooling/rspec_flaky/config_spec.rb341spec/finders/packages/go/module_finder_spec.rb342spec/rubocop/migration_helpers_spec.rb343spec/workers/clusters/applications/activate_service_worker_spec.rb344spec/workers/expire_job_cache_worker_spec.rb345spec/helpers/projects/terraform_helper_spec.rb346spec/lib/bitbucket_server/representation/comment_spec.rb347spec/models/snippets/repository_storage_move_spec.rb348spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb349spec/lib/gitlab/phabricator_import/issues/importer_spec.rb350spec/models/ref_matcher_spec.rb351spec/graphql/resolvers/recent_boards_resolver_spec.rb352spec/workers/external_service_reactive_caching_worker_spec.rb353spec/lib/gitlab/request_profiler/profile_spec.rb354spec/services/ci/ensure_stage_service_spec.rb355spec/graphql/mutations/ci/runner/delete_spec.rb356spec/models/dependency_proxy/image_ttl_group_policy_spec.rb357spec/graphql/mutations/clusters/agent_tokens/delete_spec.rb358spec/workers/object_pool/join_worker_spec.rb359spec/initializers/mail_encoding_patch_spec.rb360spec/finders/packages/go/package_finder_spec.rb361spec/validators/nested_attributes_duplicates_validator_spec.rb362spec/views/projects/hooks/index.html.haml_spec.rb363spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb364spec/services/packages/remove_tag_service_spec.rb365spec/lib/gitlab/ci/status/build/preparing_spec.rb366spec/lib/gitlab/ci/config/entry/hidden_spec.rb367spec/views/projects/settings/operations/show.html.haml_spec.rb368spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb369spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb370spec/presenters/packages/nuget/package_metadata_presenter_spec.rb371spec/graphql/resolvers/users/snippets_resolver_spec.rb372spec/lib/gitlab/data_builder/deployment_spec.rb373spec/lib/gitlab/database/background_migration_job_spec.rb374spec/models/concerns/cron_schedulable_spec.rb375spec/finders/projects/export_job_finder_spec.rb376spec/services/jira_connect/sync_service_spec.rb377spec/services/resource_events/change_milestone_service_spec.rb378spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb379spec/lib/bulk_imports/groups/transformers/member_attributes_transformer_spec.rb380spec/views/projects/blob/_viewer.html.haml_spec.rb381spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb382spec/models/integrations/zentao_spec.rb383spec/workers/project_destroy_worker_spec.rb384spec/validators/any_field_validator_spec.rb385spec/serializers/prometheus_alert_entity_spec.rb386spec/lib/constraints/group_url_constrainer_spec.rb387spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb388spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb389spec/workers/pages_worker_spec.rb390spec/serializers/container_tag_entity_spec.rb391spec/models/license_template_spec.rb392spec/lib/gitlab/import/metrics_spec.rb393spec/rubocop/cop/migration/update_column_in_batches_spec.rb394spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb395spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb396spec/lib/gitlab/import/merge_request_creator_spec.rb397spec/services/ci/generate_kubeconfig_service_spec.rb398spec/graphql/types/base_argument_spec.rb399spec/lib/gitlab/middleware/release_env_spec.rb400spec/lib/gitlab/view/presenter/factory_spec.rb401spec/lib/gitlab/sql/recursive_cte_spec.rb402spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb403spec/serializers/feature_flag_entity_spec.rb404spec/workers/clusters/cleanup/service_account_worker_spec.rb405spec/serializers/test_case_entity_spec.rb406spec/graphql/resolvers/clusters/agent_activity_events_resolver_spec.rb407spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb408spec/tasks/gitlab/lfs/check_rake_spec.rb409spec/rubocop/cop/migration/prevent_index_creation_spec.rb410spec/models/group_deploy_token_spec.rb411spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb412spec/graphql/types/ci/detailed_status_type_spec.rb413spec/tooling/rspec_flaky/example_spec.rb414spec/graphql/types/prometheus_alert_type_spec.rb415spec/lib/gitlab/lets_encrypt_spec.rb416spec/services/users/batch_status_cleaner_service_spec.rb417spec/lib/gitlab/github_import/milestone_finder_spec.rb418spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb419spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb420spec/lib/gitlab/submodule_links_spec.rb421spec/policies/group_deploy_keys_group_policy_spec.rb422spec/workers/jira_connect/sync_builds_worker_spec.rb423spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb424spec/lib/gitlab/template/metrics_dashboard_template_spec.rb425spec/graphql/graphql_triggers_spec.rb426spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb427spec/views/projects/issues/_related_branches.html.haml_spec.rb428spec/serializers/member_user_entity_spec.rb429spec/models/exported_protected_branch_spec.rb430spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb431spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb432spec/graphql/types/container_expiration_policy_type_spec.rb433spec/serializers/ci/dag_stage_entity_spec.rb434spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb435spec/workers/namespaces/invite_team_email_worker_spec.rb436spec/lib/gitlab/database/each_database_spec.rb437spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb438spec/rubocop/cop/migration/timestamps_spec.rb439spec/models/packages/pypi/metadatum_spec.rb440spec/serializers/ci/variable_entity_spec.rb441spec/services/projects/destroy_rollback_service_spec.rb442spec/graphql/types/container_repository_sort_enum_spec.rb443spec/lib/gitlab/ci/ansi2json/result_spec.rb444spec/lib/gitlab/auth/blocked_user_tracker_spec.rb445spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb446spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb447spec/models/integrations/jira_tracker_data_spec.rb448spec/serializers/group_deploy_key_entity_spec.rb449spec/lib/api/validations/validators/project_portable_spec.rb450spec/graphql/types/design_management/design_collection_type_spec.rb451spec/lib/gitlab/import_export/hash_util_spec.rb452spec/lib/banzai/pipeline/email_pipeline_spec.rb453spec/rubocop/cop/qa/element_with_pattern_spec.rb454spec/views/dashboard/projects/_nav.html.haml_spec.rb455spec/lib/api/helpers/graphql_helpers_spec.rb456spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb457spec/models/concerns/from_intersect_spec.rb458spec/graphql/types/alert_management/integration_type_spec.rb459spec/rubocop/cop/gitlab/avoid_uploaded_file_from_params_spec.rb460spec/graphql/types/ci/stage_type_spec.rb461spec/graphql/types/ci/config/config_type_spec.rb462spec/graphql/types/ci_configuration/sast/entity_input_type_spec.rb463spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb464spec/helpers/projects/security/configuration_helper_spec.rb465spec/workers/concerns/pipeline_queue_spec.rb466spec/lib/gitlab/no_cache_headers_spec.rb467spec/serializers/admin/user_serializer_spec.rb468spec/lib/api/helpers/pagination_spec.rb469spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb470spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb471spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb472spec/graphql/types/ci/recent_failures_type_spec.rb473spec/lib/api/entities/bulk_imports/entity_failure_spec.rb474spec/rubocop/cop/gitlab/change_timezone_spec.rb475spec/graphql/types/packages/package_dependency_link_type_spec.rb476spec/graphql/types/project_statistics_type_spec.rb477Filter specs:478Running specs:479Running all node tests without filter480spec/models/group_spec.rb481spec/models/packages/package_spec.rb482spec/models/project_team_spec.rb483spec/models/concerns/noteable_spec.rb484spec/services/merge_requests/squash_service_spec.rb485spec/models/project_wiki_spec.rb486spec/services/projects/destroy_service_spec.rb487spec/models/commit_status_spec.rb488spec/models/design_management/design_spec.rb489spec/lib/gitlab/asciidoc_spec.rb490spec/uploaders/attachment_uploader_spec.rb491spec/policies/wiki_page_policy_spec.rb492spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb493spec/services/projects/unlink_fork_service_spec.rb494spec/finders/group_descendants_finder_spec.rb495spec/services/design_management/copy_design_collection/copy_service_spec.rb496spec/lib/gitlab/github_import/user_finder_spec.rb497spec/lib/gitlab/import_export/import_export_equivalence_spec.rb498spec/models/notification_recipient_spec.rb499spec/services/system_notes/merge_requests_service_spec.rb500spec/lib/banzai/pipeline/gfm_pipeline_spec.rb501spec/lib/gitlab/email/message/repository_push_spec.rb502spec/services/clusters/applications/check_installation_progress_service_spec.rb503spec/models/packages/package_file_spec.rb504spec/models/wiki_page/meta_spec.rb505spec/models/concerns/project_api_compatibility_spec.rb506spec/services/clusters/applications/check_uninstall_progress_service_spec.rb507spec/services/alert_management/alerts/update_service_spec.rb508spec/lib/gitlab/utils/markdown_spec.rb509spec/lib/gitlab/import_export/import_failure_service_spec.rb510spec/models/terraform/state_spec.rb511spec/lib/gitlab/auth/ldap/person_spec.rb512spec/models/project_snippet_spec.rb513spec/services/milestones/promote_service_spec.rb514spec/services/serverless/associate_domain_service_spec.rb515spec/models/namespace/root_storage_statistics_spec.rb516spec/services/spam/spam_verdict_service_spec.rb517spec/lib/banzai/filter/external_link_filter_spec.rb518spec/models/concerns/redactable_spec.rb519spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb520spec/lib/banzai/filter/references/design_reference_filter_spec.rb521spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb522spec/models/ci/sources/pipeline_spec.rb523spec/models/snippet_input_action_spec.rb524spec/tasks/gitlab/cleanup_rake_spec.rb525spec/presenters/ci/stage_presenter_spec.rb526spec/services/todos/destroy/project_private_service_spec.rb527spec/lib/gitlab/slash_commands/command_spec.rb528spec/services/branches/delete_merged_service_spec.rb529spec/validators/addressable_url_validator_spec.rb530spec/services/deployments/older_deployments_drop_service_spec.rb531spec/models/ci/secure_file_spec.rb532spec/graphql/resolvers/environments_resolver_spec.rb533spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb534spec/finders/access_requests_finder_spec.rb535spec/lib/backup/repositories_spec.rb536spec/finders/packages/conan/package_file_finder_spec.rb537spec/lib/gitlab/import_export/base/relation_factory_spec.rb538spec/services/merge_requests/reload_diffs_service_spec.rb539spec/models/prometheus_alert_spec.rb540spec/graphql/types/terraform/state_version_type_spec.rb541spec/models/event_collection_spec.rb542spec/lib/gitlab/file_finder_spec.rb543spec/lib/gitlab/runtime_spec.rb544spec/models/integrations/slack_slash_commands_spec.rb545spec/finders/security/license_compliance_jobs_finder_spec.rb546spec/lib/gitlab/ci/ansi2json_spec.rb547spec/services/commits/commit_patch_service_spec.rb548spec/serializers/group_child_serializer_spec.rb549spec/services/commits/cherry_pick_service_spec.rb550spec/tasks/gitlab/web_hook_rake_spec.rb551spec/graphql/resolvers/group_issues_resolver_spec.rb552spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb553spec/workers/new_note_worker_spec.rb554spec/finders/packages/build_infos_finder_spec.rb555spec/models/pages/lookup_path_spec.rb556spec/lib/bulk_imports/projects/pipelines/issues_pipeline_spec.rb557spec/services/pages_domains/create_acme_order_service_spec.rb558spec/models/projects/topic_spec.rb559spec/graphql/resolvers/design_management/design_resolver_spec.rb560spec/services/milestones/closed_issues_count_service_spec.rb561spec/lib/gitlab/redis/boolean_spec.rb562spec/models/identity_spec.rb563spec/rubocop/cop/graphql/descriptions_spec.rb564spec/policies/alert_management/alert_policy_spec.rb565spec/models/integrations/chat_message/alert_message_spec.rb566spec/lib/gitlab/query_limiting/transaction_spec.rb567spec/services/merge_requests/add_context_service_spec.rb568spec/views/projects/merge_requests/edit.html.haml_spec.rb569spec/tasks/gitlab/gitaly_rake_spec.rb570spec/finders/design_management/designs_finder_spec.rb571spec/lib/container_registry/migration_spec.rb572spec/models/clusters/agents/activity_event_spec.rb573spec/lib/gitlab/slash_commands/presenters/access_spec.rb574spec/services/ci/job_token_scope/add_project_service_spec.rb575spec/lib/banzai/filter/inline_diff_filter_spec.rb576spec/models/ci/build_trace_spec.rb577spec/services/personal_access_tokens/last_used_service_spec.rb578spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb579spec/lib/gitlab/integrations/sti_type_spec.rb580spec/lib/gitlab/config/entry/composable_hash_spec.rb581spec/lib/gitlab/hook_data/base_builder_spec.rb582spec/lib/gitlab/marker_range_spec.rb583spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb584spec/services/members/projects/bulk_creator_service_spec.rb585spec/lib/api/entities/merge_request_approvals_spec.rb586spec/services/compare_service_spec.rb587spec/tooling/rspec_flaky/config_spec.rb588spec/finders/packages/go/module_finder_spec.rb589spec/rubocop/migration_helpers_spec.rb590spec/workers/clusters/applications/activate_service_worker_spec.rb591spec/workers/expire_job_cache_worker_spec.rb592spec/helpers/projects/terraform_helper_spec.rb593spec/lib/bitbucket_server/representation/comment_spec.rb594spec/models/snippets/repository_storage_move_spec.rb595spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb596spec/lib/gitlab/phabricator_import/issues/importer_spec.rb597spec/models/ref_matcher_spec.rb598spec/graphql/resolvers/recent_boards_resolver_spec.rb599spec/workers/external_service_reactive_caching_worker_spec.rb600spec/lib/gitlab/request_profiler/profile_spec.rb601spec/services/ci/ensure_stage_service_spec.rb602spec/graphql/mutations/ci/runner/delete_spec.rb603spec/models/dependency_proxy/image_ttl_group_policy_spec.rb604spec/graphql/mutations/clusters/agent_tokens/delete_spec.rb605spec/workers/object_pool/join_worker_spec.rb606spec/initializers/mail_encoding_patch_spec.rb607spec/finders/packages/go/package_finder_spec.rb608spec/validators/nested_attributes_duplicates_validator_spec.rb609spec/views/projects/hooks/index.html.haml_spec.rb610spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb611spec/services/packages/remove_tag_service_spec.rb612spec/lib/gitlab/ci/status/build/preparing_spec.rb613spec/lib/gitlab/ci/config/entry/hidden_spec.rb614spec/views/projects/settings/operations/show.html.haml_spec.rb615spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb616spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb617spec/presenters/packages/nuget/package_metadata_presenter_spec.rb618spec/graphql/resolvers/users/snippets_resolver_spec.rb619spec/lib/gitlab/data_builder/deployment_spec.rb620spec/lib/gitlab/database/background_migration_job_spec.rb621spec/models/concerns/cron_schedulable_spec.rb622spec/finders/projects/export_job_finder_spec.rb623spec/services/jira_connect/sync_service_spec.rb624spec/services/resource_events/change_milestone_service_spec.rb625spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb626spec/lib/bulk_imports/groups/transformers/member_attributes_transformer_spec.rb627spec/views/projects/blob/_viewer.html.haml_spec.rb628spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb629spec/models/integrations/zentao_spec.rb630spec/workers/project_destroy_worker_spec.rb631spec/validators/any_field_validator_spec.rb632spec/serializers/prometheus_alert_entity_spec.rb633spec/lib/constraints/group_url_constrainer_spec.rb634spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb635spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb636spec/workers/pages_worker_spec.rb637spec/serializers/container_tag_entity_spec.rb638spec/models/license_template_spec.rb639spec/lib/gitlab/import/metrics_spec.rb640spec/rubocop/cop/migration/update_column_in_batches_spec.rb641spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb642spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb643spec/lib/gitlab/import/merge_request_creator_spec.rb644spec/services/ci/generate_kubeconfig_service_spec.rb645spec/graphql/types/base_argument_spec.rb646spec/lib/gitlab/middleware/release_env_spec.rb647spec/lib/gitlab/view/presenter/factory_spec.rb648spec/lib/gitlab/sql/recursive_cte_spec.rb649spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb650spec/serializers/feature_flag_entity_spec.rb651spec/workers/clusters/cleanup/service_account_worker_spec.rb652spec/serializers/test_case_entity_spec.rb653spec/graphql/resolvers/clusters/agent_activity_events_resolver_spec.rb654spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb655spec/tasks/gitlab/lfs/check_rake_spec.rb656spec/rubocop/cop/migration/prevent_index_creation_spec.rb657spec/models/group_deploy_token_spec.rb658spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb659spec/graphql/types/ci/detailed_status_type_spec.rb660spec/tooling/rspec_flaky/example_spec.rb661spec/graphql/types/prometheus_alert_type_spec.rb662spec/lib/gitlab/lets_encrypt_spec.rb663spec/services/users/batch_status_cleaner_service_spec.rb664spec/lib/gitlab/github_import/milestone_finder_spec.rb665spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb666spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb667spec/lib/gitlab/submodule_links_spec.rb668spec/policies/group_deploy_keys_group_policy_spec.rb669spec/workers/jira_connect/sync_builds_worker_spec.rb670spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb671spec/lib/gitlab/template/metrics_dashboard_template_spec.rb672spec/graphql/graphql_triggers_spec.rb673spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb674spec/views/projects/issues/_related_branches.html.haml_spec.rb675spec/serializers/member_user_entity_spec.rb676spec/models/exported_protected_branch_spec.rb677spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb678spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb679spec/graphql/types/container_expiration_policy_type_spec.rb680spec/serializers/ci/dag_stage_entity_spec.rb681spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb682spec/workers/namespaces/invite_team_email_worker_spec.rb683spec/lib/gitlab/database/each_database_spec.rb684spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb685spec/rubocop/cop/migration/timestamps_spec.rb686spec/models/packages/pypi/metadatum_spec.rb687spec/serializers/ci/variable_entity_spec.rb688spec/services/projects/destroy_rollback_service_spec.rb689spec/graphql/types/container_repository_sort_enum_spec.rb690spec/lib/gitlab/ci/ansi2json/result_spec.rb691spec/lib/gitlab/auth/blocked_user_tracker_spec.rb692spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb693spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb694spec/models/integrations/jira_tracker_data_spec.rb695spec/serializers/group_deploy_key_entity_spec.rb696spec/lib/api/validations/validators/project_portable_spec.rb697spec/graphql/types/design_management/design_collection_type_spec.rb698spec/lib/gitlab/import_export/hash_util_spec.rb699spec/lib/banzai/pipeline/email_pipeline_spec.rb700spec/rubocop/cop/qa/element_with_pattern_spec.rb701spec/views/dashboard/projects/_nav.html.haml_spec.rb702spec/lib/api/helpers/graphql_helpers_spec.rb703spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb704spec/models/concerns/from_intersect_spec.rb705spec/graphql/types/alert_management/integration_type_spec.rb706spec/rubocop/cop/gitlab/avoid_uploaded_file_from_params_spec.rb707spec/graphql/types/ci/stage_type_spec.rb708spec/graphql/types/ci/config/config_type_spec.rb709spec/graphql/types/ci_configuration/sast/entity_input_type_spec.rb710spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb711spec/helpers/projects/security/configuration_helper_spec.rb712spec/workers/concerns/pipeline_queue_spec.rb713spec/lib/gitlab/no_cache_headers_spec.rb714spec/serializers/admin/user_serializer_spec.rb715spec/lib/api/helpers/pagination_spec.rb716spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb717spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb718spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb719spec/graphql/types/ci/recent_failures_type_spec.rb720spec/lib/api/entities/bulk_imports/entity_failure_spec.rb721spec/rubocop/cop/gitlab/change_timezone_spec.rb722spec/graphql/types/packages/package_dependency_link_type_spec.rb723spec/graphql/types/project_statistics_type_spec.rb724Running all node tests without filter725Running all node tests without filter726Knapsack report generator started!727Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}728==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.053281766 seconds...729Test environment set up in 0.909715303 seconds730Group731 associations732 is expected to have many projects733 is expected to have many group_members dependent => destroy734 is expected to have many users through group_members735 is expected to have many owners through group_members736 is expected to have many requesters dependent => destroy737 is expected to have many members_and_requesters738 is expected to have many project_group_links dependent => destroy739 is expected to have many shared_projects through project_group_links740 is expected to have many notification_settings dependent => destroy741 is expected to have many labels class_name => GroupLabel742 is expected to have many variables class_name => Ci::GroupVariable743 is expected to have many uploads744 is expected to have one chat_team745 is expected to have many custom_attributes class_name => GroupCustomAttribute746 is expected to have many badges class_name => GroupBadge747 is expected to have many cluster_groups class_name => Clusters::Group748 is expected to have many clusters class_name => Clusters::Cluster749 is expected to have many container_repositories750 is expected to have many milestones751 is expected to have many group_deploy_keys752 is expected to have many integrations753 is expected to have one dependency_proxy_setting754 is expected to have one dependency_proxy_image_ttl_policy755 is expected to have many dependency_proxy_blobs756 is expected to have many dependency_proxy_manifests757 is expected to have many debian_distributions class_name => Packages::Debian::GroupDistribution dependent => destroy758 is expected to have many daily_build_group_report_results class_name => Ci::DailyBuildGroupReportResult759 is expected to have many group_callouts class_name => Users::GroupCallout760 is expected to have many bulk_import_exports class_name => BulkImports::Export761 is expected to have many contacts class_name => CustomerRelations::Contact762 is expected to have many organizations class_name => CustomerRelations::Organization763 is expected to have one crm_settings764 #members & #requesters765 behaves like members and requesters associations766 #members_and_requesters767 includes members and requesters768 #members769 includes members and exclude requesters770 #requesters771 does not include requesters772 modules773 is expected to includes the Referable module774 validations775 is expected to validate that :name cannot be empty/falsy776 is expected not to allow :path to be ‹"colon:in:path"›777 is expected to allow :name to be ‹"group test_4"›778 is expected not to allow :name to be ‹"test/../foo"›779 is expected not to allow :name to be ‹"<script>alert(\"Attack!\")</script>"›780 is expected to validate that :path cannot be empty/falsy781 is expected not to validate that :owner cannot be empty/falsy782 is expected to validate that :two_factor_grace_period cannot be empty/falsy783 is expected to validate that :two_factor_grace_period looks like a number greater than or equal to 0784 validating the parent of a group785 when the group has no parent786 allows a group to have no parent associated with it787 when the group has a parent788 does not allow a group to have a namespace as its parent789 allows a group to have another group as its parent790 path validation791 rejects paths reserved on the root namespace when the group has no parent792 allows root paths when the group has a parent793 rejects any wildcard paths when not a top level group794 #notification_settings795 also gets notification settings from parent groups796 when sub group is deleted797 does not delete parent notification settings798 #notification_email_for799 when both group notification emails are set800 returns subgroup notification email801 when subgroup notification email is blank802 returns parent group notification email803 when only the parent group notification email is set804 returns parent group notification email805 #visibility_level_allowed_by_parent806 without a parent807 is valid808 with a parent809 when visibility of sub group is greater than the parent810 is invalid811 when visibility of sub group is lower or equal to the parent812 is valid813 is valid814 #visibility_level_allowed_by_projects815 when group has a lower visibility816 is invalid817 when group has a higher visibility818 is valid819 #visibility_level_allowed_by_sub_groups820 when parent group has a lower visibility821 is invalid822 when parent group has a higher visibility823 is valid824 #two_factor_authentication_allowed825 for a parent group826 is valid827 for a child group828 is valid when parent group allows829 is invalid when parent group blocks830 traversal_ids on create831 default traversal_ids832 is expected to eq [102]833 has a parent834 is expected to eq [103]835 is expected to eq [105, 106]836 has a parent update before save837 avoid traversal_ids race condition838 traversal_ids on update839 parent is updated840 behaves like update on column841 traversal_ids column updated842 parent is not updated843 behaves like no update on column844 traversal_ids column is not updated845 traversal_ids on ancestral update846 update multiple ancestors before save847 avoids traversal_ids race condition848 assign a new parent849 within the same hierarchy850 updates traversal_ids851 behaves like hierarchy with traversal_ids852 will be valid853 behaves like locked row854 has locked row855 to another hierarchy856 updates traversal_ids857 behaves like locked rows858 has locked rows859 old hierarchy860 behaves like hierarchy with traversal_ids861 will be valid862 new hierarchy863 behaves like hierarchy with traversal_ids864 will be valid865 from being a root ancestor866 updates traversal_ids867 behaves like locked rows868 has locked rows869 behaves like hierarchy with traversal_ids870 will be valid871 to being a root ancestor872 updates traversal_ids873 behaves like locked rows874 has locked rows875 behaves like hierarchy with traversal_ids876 will be valid877 assigning a new grandparent878 updates traversal_ids for all descendants879 traversal queries880 recursive881 behaves like namespace traversal882 #root_ancestor883 returns the correct root ancestor884 #recursive_root_ancestor885 is equivalent to #recursive_root_ancestor886 #self_and_hierarchy887 returns the correct tree888 #recursive_self_and_hierarchy889 behaves like recursive version890 is equivalent to #self_and_hierarchy891 makes a recursive query892 #ancestors893 returns the correct ancestors894 with asc hierarchy_order895 returns the correct ancestors896 with desc hierarchy_order897 returns the correct ancestors898 #recursive_ancestors899 behaves like recursive version900 is equivalent to #ancestors901 makes a recursive query902 #ancestor_ids903 returns the correct ancestor ids904 with asc hierarchy_order905 returns the correct ancestor ids906 with desc hierarchy_order907 returns the correct ancestor ids908 #recursive_ancestor_ids909 behaves like recursive version910 is equivalent to #ancestor_ids911 makes a recursive query912 #self_and_ancestors913 returns the correct ancestors914 with asc hierarchy_order915 returns the correct ancestors916 with desc hierarchy_order917 returns the correct ancestors918 #recursive_self_and_ancestors919 behaves like recursive version920 is equivalent to #self_and_ancestors921 makes a recursive query922 #self_and_ancestor_ids923 returns the correct ancestor ids924 with asc hierarchy_order925 returns the correct ancestor ids926 with desc hierarchy_order927 returns the correct ancestor ids928 #recursive_self_and_ancestor_ids929 behaves like recursive version930 is equivalent to #self_and_ancestor_ids931 makes a recursive query932 #ancestors_upto933 with use_traversal_ids_for_ancestors_upto enabled934 returns all ancestors when no namespace is given935DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated936and will be no longer quoted as id value in Rails 6.2.937 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)938 includes ancestors upto but excluding the given ancestor939 with asc hierarchy_order940 returns the correct ancestor ids941 with desc hierarchy_order942 returns the correct ancestor ids943 #recursive_self_and_ancestor_ids944DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated945and will be no longer quoted as id value in Rails 6.2.946 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)947DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated948and will be no longer quoted as id value in Rails 6.2.949 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)950 is equivalent to ancestors_upto951 makes a recursive query952 with use_traversal_ids_for_ancestors_upto disabled953 returns all ancestors when no namespace is given954DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated955and will be no longer quoted as id value in Rails 6.2.956 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)957 includes ancestors upto but excluding the given ancestor958 with asc hierarchy_order959 returns the correct ancestor ids960 with desc hierarchy_order961 returns the correct ancestor ids962 #recursive_self_and_ancestor_ids963DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated964and will be no longer quoted as id value in Rails 6.2.965 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)966DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated967and will be no longer quoted as id value in Rails 6.2.968 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)969 is equivalent to ancestors_upto970 makes a recursive query971 #descendants972 returns the correct descendants973 does not include project namespaces974 #recursive_descendants975 behaves like recursive version976 is equivalent to #descendants977 makes a recursive query978 #self_and_descendants979 returns the correct descendants980 does not include project namespaces981 #recursive_self_and_descendants982 behaves like recursive version983 is equivalent to #self_and_descendants984 makes a recursive query985 #self_and_descendant_ids986 is expected to contain exactly 159, 160, 161, and 162987 #recursive_self_and_descendant_ids988 behaves like recursive version989 is equivalent to #self_and_descendant_ids990 makes a recursive query991 #self_and_descendants992 is expected not to include "traversal_ids @>"993 #self_and_descendant_ids994 is expected not to include "traversal_ids @>"995 #descendants996 is expected not to include "traversal_ids @>"997 #self_and_hierarchy998 is expected not to include "traversal_ids @>"999 #ancestors1000 is expected not to include "traversal_ids <@"1001 #ancestors_upto1002 is expected not to include "WITH ORDINALITY"1003 linear1004 behaves like namespace traversal1005 #root_ancestor1006 returns the correct root ancestor1007 #recursive_root_ancestor1008 is equivalent to #recursive_root_ancestor1009 #self_and_hierarchy1010 returns the correct tree1011 #recursive_self_and_hierarchy1012 behaves like recursive version1013 is equivalent to #self_and_hierarchy1014 makes a recursive query1015 #ancestors1016 returns the correct ancestors1017 with asc hierarchy_order1018 returns the correct ancestors1019 with desc hierarchy_order1020 returns the correct ancestors1021 #recursive_ancestors1022 behaves like recursive version1023 is equivalent to #ancestors1024 makes a recursive query1025 #ancestor_ids1026 returns the correct ancestor ids1027 with asc hierarchy_order1028 returns the correct ancestor ids1029 with desc hierarchy_order1030 returns the correct ancestor ids1031 #recursive_ancestor_ids1032 behaves like recursive version1033 is equivalent to #ancestor_ids1034 makes a recursive query1035 #self_and_ancestors1036 returns the correct ancestors1037 with asc hierarchy_order1038 returns the correct ancestors1039 with desc hierarchy_order1040 returns the correct ancestors1041 #recursive_self_and_ancestors1042 behaves like recursive version1043 is equivalent to #self_and_ancestors1044 makes a recursive query1045 #self_and_ancestor_ids1046 returns the correct ancestor ids1047 with asc hierarchy_order1048 returns the correct ancestor ids1049 with desc hierarchy_order1050 returns the correct ancestor ids1051 #recursive_self_and_ancestor_ids1052 behaves like recursive version1053 is equivalent to #self_and_ancestor_ids1054 makes a recursive query1055 #ancestors_upto1056 with use_traversal_ids_for_ancestors_upto enabled1057 returns all ancestors when no namespace is given1058DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1059and will be no longer quoted as id value in Rails 6.2.1060 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)1061 includes ancestors upto but excluding the given ancestor1062 with asc hierarchy_order1063 returns the correct ancestor ids1064 with desc hierarchy_order1065 returns the correct ancestor ids1066 #recursive_self_and_ancestor_ids1067DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1068and will be no longer quoted as id value in Rails 6.2.1069 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)1070DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1071and will be no longer quoted as id value in Rails 6.2.1072 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)1073 is equivalent to ancestors_upto1074 makes a recursive query1075 with use_traversal_ids_for_ancestors_upto disabled1076 returns all ancestors when no namespace is given1077DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1078and will be no longer quoted as id value in Rails 6.2.1079 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)1080 includes ancestors upto but excluding the given ancestor1081 with asc hierarchy_order1082 returns the correct ancestor ids1083 with desc hierarchy_order1084 returns the correct ancestor ids1085 #recursive_self_and_ancestor_ids1086DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1087and will be no longer quoted as id value in Rails 6.2.1088 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)1089DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1090and will be no longer quoted as id value in Rails 6.2.1091 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126)1092 is equivalent to ancestors_upto1093 makes a recursive query1094 #descendants1095 returns the correct descendants1096 does not include project namespaces1097 #recursive_descendants1098 behaves like recursive version1099 is equivalent to #descendants1100 makes a recursive query1101 #self_and_descendants1102 returns the correct descendants1103 does not include project namespaces1104 #recursive_self_and_descendants1105 behaves like recursive version1106 is equivalent to #self_and_descendants1107 makes a recursive query1108 #self_and_descendant_ids1109 is expected to contain exactly 224, 225, 226, and 2271110 #recursive_self_and_descendant_ids1111 behaves like recursive version1112 is equivalent to #self_and_descendant_ids1113 makes a recursive query1114 #self_and_descendants1115 is expected to include "traversal_ids @>"1116 #self_and_descendant_ids1117 is expected to include "traversal_ids @>"1118 #descendants1119 is expected to include "traversal_ids @>"1120 #self_and_hierarchy1121 is expected to include "traversal_ids @>"1122 #ancestors1123 is expected to include "\"namespaces\".\"id\" = 157"1124 hierarchy order1125 ancestor linear queries feature flag disabled1126 is expected not to include "traversal_ids <@"1127 #ancestors_upto1128 is expected to include "WITH ORDINALITY"1129 when project namespace exists in the group1130 filters out project namespace1131 .without_integration1132 returns groups without integration1133 .public_or_visible_to_user1134 when user is nil1135 is expected to contain exactly #<Group id:294 @group279>1136 when user1137 when user does not have access to any private group1138 is expected to contain exactly #<Group id:299 @group284> and #<Group id:297 @group282>1139 when user is a member of private group1140 is expected to contain exactly #<Group id:302 @group286>, #<Group id:303 @group287>, and #<Group id:301 @group285>1141 when user is a member of private subgroup1142 is expected to contain exactly #<Group id:309 @group289/group291>, #<Group id:307 @group290>, and #<Group id:305 @group288>1143 scopes1144 public_only1145 is expected to eq [#<Group id:314 @group294>]1146 public_and_internal_only1147 is expected to contain exactly #<Group id:315 @group295> and #<Group id:311 @group293>1148 non_public_only1149 is expected to contain exactly #<Group id:310 @group292> and #<Group id:311 @group293>1150 private_only1151 is expected to contain exactly #<Group id:310 @group292>1152 with_onboarding_progress1153 joins onboarding_progress1154 for_authorized_group_members1155 is expected to contain exactly #<Group id:310 @group292>1156 for_authorized_project_members1157 is expected to contain exactly #<Group id:311 @group293>1158 by_ids_or_paths1159 returns matching records based on paths1160 returns matching records based on ids1161 returns matching records based on both paths and ids1162 #to_reference1163 returns a String reference to the object1164 #users1165 is expected to eq #<ActiveRecord::Associations::CollectionProxy []>1166 #human_name1167 is expected to eq "group307"1168 #add_user1169 is expected to include #<User id:29 @user23>1170 #add_users1171 updates the group permission1172 when `tasks_to_be_done` and `tasks_project_id` are passed1173 creates a member_task with the correct attributes1174 #avatar_type1175 is true if avatar is image1176 is false if avatar is html page1177 #avatar_url1178 when avatar file is uploaded1179 shows correct avatar url1180 .search1181 returns groups with a matching name1182 returns groups with a partially matching name1183 returns groups with a matching name regardless of the casing1184 returns groups with a matching path1185 returns groups with a partially matching path1186 returns groups with a matching path regardless of the casing1187 #has_owner?1188 is expected to be truthy1189 is expected to be falsey1190 is expected to be falsey1191 is expected to be falsey1192 is expected to be falsey1193 is expected to be falsey1194 is expected to be falsey1195 #has_maintainer?1196 is expected to be falsey1197 is expected to be truthy1198 is expected to be falsey1199 is expected to be falsey1200 is expected to be falsey1201 is expected to be falsey1202 is expected to be falsey1203 #last_owner?1204 is expected to be truthy1205 with two owners1206 is expected to be falsy1207 with owners from a parent1208 is expected to be falsy1209 #member_last_blocked_owner?1210 when last_blocked_owner is set1211 returns true1212 returns false1213 when last_blocked_owner is not set1214 is expected to equal true1215 with another active owner1216 is expected to equal false1217 with 2 blocked owners1218 is expected to equal false1219 with owners from a parent1220 is expected to equal false1221 when analyzing blocked owners1222 #single_blocked_owner?1223 when there is only one blocked owner1224 returns true1225 when there are multiple blocked owners1226 returns true1227 when there are no blocked owners1228 returns false1229 #blocked_owners1230 has only blocked owners1231 #single_owner?1232 when there is only one owner1233 returns true1234 when there are multiple owners1235 returns true1236 when there are no owners1237 returns false1238 #member_last_owner?1239 when last_owner is set1240 returns true1241 returns false1242 when last_owner is not set1243 returns true1244 #lfs_enabled?1245 LFS enabled globally1246 returns true when nothing is set1247 returns false when set to false1248 returns true when set to true1249 LFS disabled globally1250 returns false when nothing is set1251 returns false when set to false1252 returns false when set to true1253 #owners1254 returns the owners of a Group1255 #web_url1256 returns the canonical URL1257 nested group1258 is expected to include "groups/group382/group381"1259 nested group1260 is expected to be valid1261 is expected to be a kind of Group(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_at: d...abled: boolean, allow_descendants_override_disabled_shared_runners: boolean, traversal_ids: integer)1262 #max_member_access_for_user1263 with user in the group1264 returns correct access level1265 when user is nil1266 returns NO_ACCESS1267 evaluating admin access level1268 returns NO_ACCESS when only concrete membership should be considered1269 when admin mode is enabled1270 returns OWNER by default1271 when admin mode is disabled1272 returns NO_ACCESS1273 group shared with another group1274 with user in the group1275 returns correct access level1276 with lower group access level than max access level for share1277 returns correct access level1278 with user in the parent group1279 returns correct access level1280 with user in the child group1281 returns correct access level1282 unrelated project owner1283 returns correct access level1284 user without accepted access request1285 returns correct access level1286 multiple groups shared with group1287 returns correct access level1288 #direct_members1289 does not return members of the parent1290 returns the direct member of the group1291 group sharing1292 does not return members of the shared_with group1293 #members_with_parents1294 behaves like members_with_parents1295 returns parents members1296 group sharing1297 returns shared with group members1298 #authorizable_members_with_parents1299 behaves like members_with_parents1300 returns parents members1301 group sharing1302 returns shared with group members1303 members with associated user but also having invite_token1304 includes such members in the result1305 invited members1306 does not include such members in the result1307 members from group shares1308 an invited member that is part of the shared_with_group1309 does not include such members in the result1310 #members_from_self_and_ancestors_with_effective_access_level1311 returns effective access level for user1312 members-related methods1313 #direct_and_indirect_members1314 returns parents members1315 returns descendant members1316 #direct_and_indirect_members_with_inactive1317 returns parents members1318 returns descendant members1319 #users_with_descendants1320 returns member users on every nest level without duplication1321 user-related methods1322 #direct_and_indirect_users1323 returns member users on every nest level without duplication1324 does not return members of projects belonging to ancestor groups1325 #direct_and_indirect_users_with_inactive1326 returns member users on every nest level without duplication1327 returns members of projects belonging to group1328 #project_users_with_descendants1329 returns members of all projects in group and subgroups1330 #refresh_members_authorized_projects1331 users for which authorizations refresh is executed1332 processes authorizations refresh for all members of the group1333 when explicitly specified to run only for direct members1334 processes authorizations refresh only for direct members of the group1335 #users_ids_of_direct_members1336 does not return user ids of the members of the parent1337 returns the user ids of the direct member of the group1338 group sharing1339 does not return the user ids of members of the shared_with group1340 #user_ids_for_project_authorizations1341 returns the user IDs for which to refresh authorizations1342 group sharing1343 returns the user IDs for shared with group members1344 distinct user ids1345 returns only distinct user ids of users for which to refresh authorizations1346 #update_two_factor_requirement1347 group membership1348 is called when require_two_factor_authentication is changed1349 is called when two_factor_grace_period is changed1350 is not called when other attributes are changed1351 calls #update_two_factor_requirement on each group member1352 sub groups and projects1353 enables two_factor_requirement for group member1354 expanded group members1355 two_factor_requirement is enabled1356 two_factor_requirement is also enabled for ancestor group1357 enables two_factor_requirement for subgroup member1358 two_factor_requirement is disabled for ancestor group1359 enables two_factor_requirement for subgroup member1360 enable two_factor_requirement for ancestor group member1361 two_factor_requirement is disabled1362 two_factor_requirement is enabled for ancestor group1363 enables two_factor_requirement for subgroup member1364 two_factor_requirement is also disabled for ancestor group1365 disables two_factor_requirement for subgroup member1366 disables two_factor_requirement for ancestor group member1367 project members1368 does not enable two_factor_requirement for child project member1369 does not enable two_factor_requirement for subgroup child project member1370 #path_changed_hook1371 for a new group1372 does not trigger system hook1373 for an existing group1374 when the path is changed1375 triggers the rename system hook1376 when the path is not changed1377 does not trigger system hook1378 #ci_variables_for1379 memoizes the result by ref and environment1380 when the ref is not protected1381 contains only the CI variables1382 when the ref is a protected branch1383 behaves like ref is protected1384 contains all the variables1385 when the ref is a protected tag1386 behaves like ref is protected1387 contains all the variables1388 when environment name is specified1389 when environment scope is exactly matched1390 is expected to contain exactly #<Ci::GroupVariable id: 10, key: [FILTERED], value: nil, encrypted_value: "isiXM+JWRtleZuMk2cl31g==\n...7:02:57.478275872 +0000", masked: false, variable_type: "env_var", environment_scope: "review/name">1391 when environment scope is matched by wildcard1392 is expected to contain exactly #<Ci::GroupVariable id: 12, key: [FILTERED], value: nil, encrypted_value: "XappYmqyvUe+GwLL7gcsLw==\n...4 17:02:58.002510319 +0000", masked: false, variable_type: "env_var", environment_scope: "review/*">1393 when environment scope does not match1394 is expected not to contain exactly #<Ci::GroupVariable id: 14, key: [FILTERED], value: nil, encrypted_value: "VPFv0Szwk5Y3mSdH1rTp1w==\n...58.653454938 +0000", masked: false, variable_type: "env_var", environment_scope: "review/*/special">1395 when environment scope has _1396 does not treat it as wildcard1397 when environment name contains underscore1398 matches literally for _1399 when environment scope has %1400 does not treat it as wildcard1401 when environment name contains a percent1402 matches literally for %1403 when variables with the same name have different environment scopes1404 puts variables matching environment scope more in the end1405 when group has children1406 traversal queries1407 recursive1408 returns all variables belong to the group and parent groups1409 linear1410 returns all variables belong to the group and parent groups1411 #highest_group_member1412 when the user is not a member of any group in the hierarchy1413 returns nil1414 when the user is only a member of one group in the hierarchy1415 returns that group member1416 when the user is a member of several groups in the hierarchy1417 returns the group member with the highest access level1418 #bots1419 is expected to contain exactly #<User id:299 @user275>1420 is expected not to include #<User id:300 @user276>1421 #related_group_ids1422 returns id1423 returns ancestor id1424 returns shared with group id1425 with more than one ancestor group1426 returns all ancestor group ids1427 with more than one shared with group1428 returns all shared with group ids1429 with uploads1430 behaves like model with uploads1431 .destroy1432 with mounted uploader1433 deletes remote uploads1434 with not mounted uploads1435 with local files1436 deletes any FileUploader uploads which are not mounted1437 deletes local files1438 with remote files1439 deletes any FileUploader uploads which are not mounted1440 deletes remote files1441 #first_auto_devops_config1442 instance_value: true, group_value: nil, config: {:status=>true, :scope=>:instance}1443 is expected to eq {:scope=>:instance, :status=>true}1444 instance_value: true, group_value: true, config: {:status=>true, :scope=>:group}1445 is expected to eq {:scope=>:group, :status=>true}1446 instance_value: true, group_value: false, config: {:status=>false, :scope=>:group}1447 is expected to eq {:scope=>:group, :status=>false}1448 instance_value: false, group_value: nil, config: {:status=>false, :scope=>:instance}1449 is expected to eq {:scope=>:instance, :status=>false}1450 instance_value: false, group_value: true, config: {:status=>true, :scope=>:group}1451 is expected to eq {:scope=>:group, :status=>true}1452 instance_value: false, group_value: false, config: {:status=>false, :scope=>:group}1453 is expected to eq {:scope=>:group, :status=>false}1454 with parent groups1455 instance_value: true, parent_value: nil, group_value: nil, config: {:status=>true, :scope=>:instance}1456 is expected to eq {:scope=>:instance, :status=>true}1457 instance_value: true, parent_value: nil, group_value: true, config: {:status=>true, :scope=>:group}1458 is expected to eq {:scope=>:group, :status=>true}1459 instance_value: true, parent_value: nil, group_value: false, config: {:status=>false, :scope=>:group}1460 is expected to eq {:scope=>:group, :status=>false}1461 instance_value: true, parent_value: true, group_value: nil, config: {:status=>true, :scope=>:group}1462 is expected to eq {:scope=>:group, :status=>true}1463 instance_value: true, parent_value: true, group_value: true, config: {:status=>true, :scope=>:group}1464 is expected to eq {:scope=>:group, :status=>true}1465 instance_value: true, parent_value: true, group_value: false, config: {:status=>false, :scope=>:group}1466 is expected to eq {:scope=>:group, :status=>false}1467 instance_value: true, parent_value: false, group_value: nil, config: {:status=>false, :scope=>:group}1468 is expected to eq {:scope=>:group, :status=>false}1469 instance_value: true, parent_value: false, group_value: true, config: {:status=>true, :scope=>:group}1470 is expected to eq {:scope=>:group, :status=>true}1471 instance_value: true, parent_value: false, group_value: false, config: {:status=>false, :scope=>:group}1472 is expected to eq {:scope=>:group, :status=>false}1473 instance_value: false, parent_value: nil, group_value: nil, config: {:status=>false, :scope=>:instance}1474 is expected to eq {:scope=>:instance, :status=>false}1475 instance_value: false, parent_value: nil, group_value: true, config: {:status=>true, :scope=>:group}1476 is expected to eq {:scope=>:group, :status=>true}1477 instance_value: false, parent_value: nil, group_value: false, config: {:status=>false, :scope=>:group}1478 is expected to eq {:scope=>:group, :status=>false}1479 instance_value: false, parent_value: true, group_value: nil, config: {:status=>true, :scope=>:group}1480 is expected to eq {:scope=>:group, :status=>true}1481 instance_value: false, parent_value: true, group_value: true, config: {:status=>true, :scope=>:group}1482 is expected to eq {:scope=>:group, :status=>true}1483 instance_value: false, parent_value: true, group_value: false, config: {:status=>false, :scope=>:group}1484 is expected to eq {:scope=>:group, :status=>false}1485 instance_value: false, parent_value: false, group_value: nil, config: {:status=>false, :scope=>:group}1486 is expected to eq {:scope=>:group, :status=>false}1487 instance_value: false, parent_value: false, group_value: true, config: {:status=>true, :scope=>:group}1488 is expected to eq {:scope=>:group, :status=>true}1489 instance_value: false, parent_value: false, group_value: false, config: {:status=>false, :scope=>:group}1490 is expected to eq {:scope=>:group, :status=>false}1491 #auto_devops_enabled?1492 when auto devops is explicitly enabled on group1493 is expected to be truthy1494 when auto devops is explicitly disabled on group1495 is expected to be falsy1496 when auto devops is implicitly enabled or disabled1497 when auto devops is enabled on root group1498 is expected to be truthy1499 when auto devops is disabled on root group1500 is expected to be falsy1501 when auto devops is disabled on parent group and enabled on root group1502 is expected to be falsy1503 project_creation_level1504 outputs the default one if it is nil1505 subgroup_creation_level1506 defaults to maintainers1507 #access_request_approvers_to_be_notified1508 returns a maximum of ten owners of the group in recent_sign_in descending order1509 returns active, non_invited, non_requested owners of the group1510 .groups_including_descendants_by1511 behaves like returns the expected groups for a group and its descendants1512 is expected to contain exactly #<Group id:944 @group619>, #<Group id:945 @group620>, #<Group id:947 @group619/group622>, #<Group id:948 @group619/group623>, and #<Group id:949 @group620/group624>1513 .preset_root_ancestor_for1514 does noting for single group1515 sets the same root_ancestor for multiple groups1516 #update_shared_runners_setting!1517 enabled1518 group that its ancestors have shared runners disabled1519 raises exception1520 does not enable shared runners1521 root group with shared runners disabled1522 enables shared Runners only for itself1523 disabled_and_unoverridable1524 disables shared Runners for all descendant groups and projects1525 with override on self1526 disables it1527 disabled_with_override1528 top level group1529 enables allow descendants to override only for itself1530 group that its ancestors have shared Runners disabled but allows to override1531 enables allow descendants to override1532 when parent does not allow1533 raises exception1534 does not allow descendants to override1535 top level group that has shared Runners enabled1536 enables allow descendants to override & disables shared runners everywhere1537 #default_branch_name1538 when group.namespace_settings does not have a default branch name1539 returns nil1540 when group.namespace_settings has a default branch name1541 returns the default branch name1542 #membership_locked?1543 returns false1544 #first_owner1545 the group has owners1546 is the first owner1547 the group has a parent1548 is the first owner of the parent1549 we fallback to group.owner1550 is the group.owner1551 #parent_allows_two_factor_authentication?1552 returns true for top-level group1553 for subgroup1554 returns true if parent group allows two factor authentication for its descendants1555 returns true if parent group allows two factor authentication for its descendants1556 has_project_with_service_desk_enabled?1557 when service desk is enabled1558 for top level group1559 is expected to eq true1560 when service desk is not supported1561 is expected to eq false1562 for subgroup project1563 is expected to eq true1564 when none of group child projects has service desk enabled1565 is expected to eq false1566 with Debian Distributions1567 behaves like model with Debian distributions1568 removes distribution files on removal1569 .ids_with_disabled_email1570 behaves like returns namespaces with disabled email1571 is expected to eq #<Set: {1020}>1572 .timelogs1573 returns timelogs belonging to the group1574 .organizations1575 returns organizations belonging to the group1576 .contacts1577 returns contacts belonging to the group1578 #to_ability_name1579 returns group1580 #activity_path1581 returns the group activity_path1582 with export1583 #export_file_exists? returns true1584 #export_archive_exists? returns true1585 #open_issues_count1586 provides the issue count1587 invokes the count service with current_user1588 invokes the count service with no current_user1589 #open_merge_requests_count1590 provides the merge request count1591 invokes the count service with current_user1592 invokes the count service with no current_user1593 #dependency_proxy_image_prefix1594 converts uppercase letters to lowercase1595 removes the protocol1596 does not include /groups1597 #dependency_proxy_image_ttl_policy1598 builds a new policy if one does not exist1599 with existing policy1600 returns the policy if it already exists1601 #dependency_proxy_setting1602 builds a new policy if one does not exist1603 with existing policy1604 returns the policy if it already exists1605 #crm_enabled?1606 returns false where no crm_settings exist1607 returns false where crm_settings.state is disabled1608 returns true where crm_settings.state is enabled1609 .get_ids_by_ids_or_paths1610 returns ids matching records based on paths1611 returns ids matching records based on ids1612 returns ids matching records based on both paths and ids1613 #shared_with_group_links_visible_to_user1614 when user is admin1615 returns all existing shared group links1616 when user is nil1617 returns only link of public shared group1618 when user has no access to private shared group1619 returns links of internal and public shared groups1620 when user is member of private shared group1621 returns links of private, internal and public shared groups1622 when user is inherited member of private shared group1623 returns links of private, internal and public shared groups1624 #enforced_runner_token_expiration_interval and #effective_runner_token_expiration_interval1625 when there is no interval in group settings1626 behaves like no enforced expiration interval1627 is expected to be nil1628 behaves like no effective expiration interval1629 is expected to be nil1630 when there is a group interval1631 behaves like no enforced expiration interval1632 is expected to be nil1633 behaves like effective expiration interval1634 is expected to eq 3 days1635 when there is a site-wide enforced shared interval1636 behaves like no enforced expiration interval1637 is expected to be nil1638 behaves like no effective expiration interval1639 is expected to be nil1640 when there is a site-wide enforced group interval1641 behaves like enforced expiration interval1642 is expected to eq 5 days1643 behaves like effective expiration interval1644 is expected to eq 5 days1645 when there is a site-wide enforced project interval1646 behaves like no enforced expiration interval1647 is expected to be nil1648 behaves like no effective expiration interval1649 is expected to be nil1650 when there is a grandparent group enforced group interval1651 behaves like no enforced expiration interval1652 is expected to be nil1653 behaves like no effective expiration interval1654 is expected to be nil1655 when there is a grandparent group enforced subgroup interval1656 behaves like enforced expiration interval1657 is expected to eq 4 days1658 behaves like effective expiration interval1659 is expected to eq 4 days1660 when there is a grandparent group enforced project interval1661 behaves like no enforced expiration interval1662 is expected to be nil1663 behaves like no effective expiration interval1664 is expected to be nil1665 when there is a parent group enforced interval overridden by group interval1666 has human-readable expiration intervals1667 behaves like enforced expiration interval1668 is expected to eq 5 days1669 behaves like effective expiration interval1670 is expected to eq 4 days1671 when site-wide enforced interval overrides group interval1672 behaves like enforced expiration interval1673 is expected to eq 3 days1674 behaves like effective expiration interval1675 is expected to eq 3 days1676 when group interval overrides site-wide enforced interval1677 behaves like enforced expiration interval1678 is expected to eq 5 days1679 behaves like effective expiration interval1680 is expected to eq 4 days1681 when site-wide enforced interval overrides parent group enforced interval1682 behaves like enforced expiration interval1683 is expected to eq 3 days1684 behaves like effective expiration interval1685 is expected to eq 3 days1686 when parent group enforced interval overrides site-wide enforced interval1687 behaves like enforced expiration interval1688 is expected to eq 4 days1689 behaves like effective expiration interval1690 is expected to eq 4 days1691 when there is an enforced group interval in an unrelated group1692 behaves like no enforced expiration interval1693 is expected to be nil1694 behaves like no effective expiration interval1695 is expected to be nil1696 when there is an enforced group interval in a subgroup1697 behaves like no enforced expiration interval1698 is expected to be nil1699 behaves like no effective expiration interval1700 is expected to be nil1701Packages::Package1702 behaves like having unique enum values1703 has unique values in "package_type"1704 has unique values in "status"1705 relationships1706 is expected to belong to project required: false1707 is expected to belong to creator required: false1708 is expected to have many package_files dependent => destroy1709 is expected to have many dependency_links inverse_of => package1710 is expected to have many tags inverse_of => package1711 is expected to have many build_infos inverse_of => package1712 is expected to have one conan_metadatum inverse_of => package1713 is expected to have one maven_metadatum inverse_of => package1714 is expected to have one debian_publication class_name => Packages::Debian::Publication inverse_of => package1715 is expected to have one debian_distribution class_name => Packages::Debian::ProjectDistribution through debian_publication source => distribution inverse_of => packages1716 is expected to have one nuget_metadatum inverse_of => package1717 is expected to have one rubygems_metadatum inverse_of => package1718 is expected to have one npm_metadatum inverse_of => package1719 .with_debian_codename1720 is expected to contain exactly #<Packages::Package id: 1, project_id: 47, created_at: "2022-02-04 17:03:51.573030982 +0000", updated...0", name: "package-1", version: "1.0-1", package_type: "debian", creator_id: 354, status: "default">1721 .with_composer_target1722 selects packages with the specified sha1723 .sort_by_attribute1724 behaves like package sorting by attribute1725 sorting by name1726 ascending order1727 is expected to eq [#<Packages::Package id: 5, project_id: 52, created_at: "2022-02-04 17:03:53.467412662 +0000", update...0 +0000", name: "zzz", version: "1.1.1", package_type: "maven", creator_id: 359, status: "default">]1728 descending order1729 is expected to eq [#<Packages::Package id: 12, project_id: 52, created_at: "2022-02-03 17:03:54.000000000 +0000", updat... name: "@group755/foo1", version: "3.1.0", package_type: "npm", creator_id: 359, status: "default">]1730 behaves like package sorting by attribute1731 sorting by created_at1732 ascending order1733 is expected to eq [#<Packages::Package id: 16, project_id: 52, created_at: "2022-02-03 17:03:54.000000000 +0000", updat...name: "NugetPackage3", version: "2.0.4", package_type: "nuget", creator_id: 359, status: "default">]1734 descending order1735 is expected to eq [#<Packages::Package id: 18, project_id: 52, created_at: "2022-02-04 17:03:55.161596496 +0000", updat...0 +0000", name: "zzz", version: "1.1.1", package_type: "maven", creator_id: 359, status: "default">]1736 behaves like package sorting by attribute1737 sorting by version1738 ascending order1739 is expected to eq [#<Packages::Package id: 24, project_id: 52, created_at: "2022-02-03 17:03:55.000000000 +0000", updat... name: "@group755/foo1", version: "3.1.0", package_type: "npm", creator_id: 359, status: "default">]1740 descending order1741 is expected to eq [#<Packages::Package id: 25, project_id: 52, created_at: "2022-02-04 17:03:56.402330757 +0000", updat...0 +0000", name: "zzz", version: "1.1.1", package_type: "maven", creator_id: 359, status: "default">]1742 behaves like package sorting by attribute1743 sorting by type1744 ascending order1745 is expected to eq [#<Packages::Package id: 32, project_id: 52, created_at: "2022-02-03 17:03:57.000000000 +0000", updat...name: "NugetPackage7", version: "2.0.4", package_type: "nuget", creator_id: 359, status: "default">]1746 descending order1747 is expected to eq [#<Packages::Package id: 34, project_id: 52, created_at: "2022-02-04 17:03:57.850837566 +0000", updat...0 +0000", name: "zzz", version: "1.1.1", package_type: "maven", creator_id: 359, status: "default">]1748 behaves like package sorting by attribute1749 sorting by project_path1750 ascending order1751 is expected to eq [#<Packages::Package id: 37, project_id: 52, created_at: "2022-02-04 17:03:58.450597188 +0000", updat..., name: "@group755/bar", version: "3.1.0", package_type: "npm", creator_id: 369, status: "default">]1752 descending order1753 is expected to eq [#<Packages::Package id: 46, project_id: 64, created_at: "2022-02-04 17:04:00.371717887 +0000", updat... name: "@group755/foo1", version: "3.1.0", package_type: "npm", creator_id: 359, status: "default">]1754 .for_projects1755 returns package1 and package21756 validations1757 is expected to validate that :project cannot be empty/falsy1758 is expected to validate that :name is case-sensitively unique within the scope of :project_id, :version, and :package_type1759 #name1760 is expected to allow :name to be ‹"my/domain/com/my-app"›1761 is expected to allow :name to be ‹"my.app-11.07.2018"›1762 is expected not to allow :name to be ‹"my(dom$$$ain)com.my-app"›1763 conan package1764 is expected to allow :name to be ‹"foo+bar"›1765 is expected to allow :name to be ‹"foo_bar"›1766 is expected to allow :name to be ‹"foo.bar"›1767 is expected not to allow :name to be ‹"f_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_b"›1768 is expected not to allow :name to be ‹"+foobar"›1769 is expected not to allow :name to be ‹".foobar"›1770 is expected not to allow :name to be ‹"%foo%bar"›1771 debian package1772 is expected to allow :name to be ‹"0ad"›1773 is expected to allow :name to be ‹"g++"›1774 is expected not to allow :name to be ‹"a_b"›1775 debian incoming1776 is expected to allow :name to be ‹"incoming"›1777 is expected not to allow :name to be ‹"0ad"›1778 is expected not to allow :name to be ‹"g++"›1779 is expected not to allow :name to be ‹"a_b"›1780 generic package1781 is expected to allow :name to be ‹"123"›1782 is expected to allow :name to be ‹"foo"›1783 is expected to allow :name to be ‹"foo.bar.baz-2.0-20190901.47283-1"›1784 is expected not to allow :name to be ‹"../../foo"›1785 is expected not to allow :name to be ‹"..\\..\\foo"›1786 is expected not to allow :name to be ‹"%2f%2e%2e%2f%2essh%2fauthorized_keys"›1787 is expected not to allow :name to be ‹"$foo/bar"›1788 is expected not to allow :name to be ‹"my file name"›1789 is expected not to allow :name to be ‹"!!().for(:name)().for(:name)"›1790 helm package1791 is expected to allow :name to be ‹"prometheus"›1792 is expected to allow :name to be ‹"rook-ceph"›1793 is expected not to allow :name to be ‹"a+b"›1794 is expected not to allow :name to be ‹"Hé"›1795 nuget package1796 is expected to allow :name to be ‹"My.Package"›1797 is expected to allow :name to be ‹"My.Package.Mvc"›1798 is expected to allow :name to be ‹"MyPackage"›1799 is expected to allow :name to be ‹"My.23.Package"›1800 is expected to allow :name to be ‹"My23Package"›1801 is expected to allow :name to be ‹"runtime.my-test64.runtime.package.Mvc"›1802 is expected to allow :name to be ‹"my_package"›1803 is expected not to allow :name to be ‹"My/package"›1804 is expected not to allow :name to be ‹"../../../my_package"›1805 is expected not to allow :name to be ‹"%2e%2e%2fmy_package"›1806 npm package1807 is expected to allow :name to be ‹"@group-1/package"›1808 is expected to allow :name to be ‹"@any-scope/package"›1809 is expected to allow :name to be ‹"unscoped-package"›1810 is expected not to allow :name to be ‹"@inv@lid-scope/package"›1811 is expected not to allow :name to be ‹"@scope/../../package"›1812 is expected not to allow :name to be ‹"@scope%2e%2e%fpackage"›1813 is expected not to allow :name to be ‹"@scope/sub/package"›1814 terraform module package1815 is expected to allow :name to be ‹"my-module/my-system"›1816 is expected to allow :name to be ‹"my/module"›1817 is expected not to allow :name to be ‹"my-module"›1818 is expected not to allow :name to be ‹"My-Module"›1819 is expected not to allow :name to be ‹"my_module"›1820 is expected not to allow :name to be ‹"my.module"›1821 is expected not to allow :name to be ‹"../../../my-module"›1822 is expected not to allow :name to be ‹"%2e%2e%2fmy-module"›1823 #version1824 conan package1825 is expected to allow :version to be ‹"1.2"›1826 is expected to allow :version to be ‹"1.2.3-beta"›1827 is expected to allow :version to be ‹"1.2.3-pre1+build2"›1828 is expected not to allow :version to be ‹"1"›1829 is expected not to allow :version to be ‹"1.21.21.21.21.21.21.21.21.21.21.21.21.21.21.21.21.2"›1830 is expected not to allow :version to be ‹"1./2.3"›1831 is expected not to allow :version to be ‹".1.2.3"›1832 is expected not to allow :version to be ‹"+1.2.3"›1833 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1834 composer package1835 is expected to allow :version to be ‹"dev-master"›1836 is expected to allow :version to be ‹"2.x-dev"›1837 behaves like validating version to be SemVer compliant for1838 for composer_package1839 is expected to allow :version to be ‹"1.2.3"›1840 is expected to allow :version to be ‹"1.2.3-beta"›1841 is expected to allow :version to be ‹"1.2.3-alpha.3"›1842 is expected not to allow :version to be ‹"1"›1843 is expected not to allow :version to be ‹"1.2"›1844 is expected not to allow :version to be ‹"1./2.3"›1845 is expected not to allow :version to be ‹"../../../../../1.2.3"›1846 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1847 debian package1848 is expected to allow :version to be ‹"2:4.9.5+dfsg-5+deb10u1"›1849 is expected not to allow :version to be ‹"1_0"›1850 debian incoming1851 is expected to allow :version to be ‹nil›1852 is expected not to allow :version to be ‹"2:4.9.5+dfsg-5+deb10u1"›1853 is expected not to allow :version to be ‹"1_0"›1854 maven package1855 is expected to allow :version to be ‹"0"›1856 is expected to allow :version to be ‹"1"›1857 is expected to allow :version to be ‹"10"›1858 is expected to allow :version to be ‹"1.0"›1859 is expected to allow :version to be ‹"1.3.350.v20200505-1744"›1860 is expected to allow :version to be ‹"1.1-beta-2"›1861 is expected to allow :version to be ‹"1.2-SNAPSHOT"›1862 is expected to allow :version to be ‹"12.1.2-2-1"›1863 is expected to allow :version to be ‹"1.2.3-beta"›1864 is expected to allow :version to be ‹"10.2.3-beta"›1865 is expected to allow :version to be ‹"2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq"›1866 is expected to allow :version to be ‹"1.2-alpha-1-20050205.060708-1"›1867 is expected to allow :version to be ‹"703220b4e2cea9592caeb9f3013f6b1e5335c293"›1868 is expected to allow :version to be ‹"RELEASE"›1869 is expected not to allow :version to be ‹"..1.2.3"›1870 is expected not to allow :version to be ‹"1.2.3..beta"›1871 is expected not to allow :version to be ‹" 1.2.3"›1872 is expected not to allow :version to be ‹"1.2.3 \r\t"›1873 is expected not to allow :version to be ‹"\r\t 1.2.3"›1874 is expected not to allow :version to be ‹"1.2.3-4/../../"›1875 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›1876 is expected not to allow :version to be ‹"../../../../../1.2.3"›1877 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1878 pypi package1879 is expected to allow :version to be ‹"0.1"›1880 is expected to allow :version to be ‹"2.0"›1881 is expected to allow :version to be ‹"1.2.0"›1882 is expected to allow :version to be ‹"0100!0.0"›1883 is expected to allow :version to be ‹"00!1.2"›1884 is expected to allow :version to be ‹"1.0a"›1885 is expected to allow :version to be ‹"1.0-a"›1886 is expected to allow :version to be ‹"1.0.a1"›1887 is expected to allow :version to be ‹"1.0a1"›1888 is expected to allow :version to be ‹"1.0-a1"›1889 is expected to allow :version to be ‹"1.0alpha1"›1890 is expected to allow :version to be ‹"1.0b1"›1891 is expected to allow :version to be ‹"1.0beta1"›1892 is expected to allow :version to be ‹"1.0rc1"›1893 is expected to allow :version to be ‹"1.0pre1"›1894 is expected to allow :version to be ‹"1.0preview1"›1895 is expected to allow :version to be ‹"1.0.dev1"›1896 is expected to allow :version to be ‹"1.0.DEV1"›1897 is expected to allow :version to be ‹"1.0.post1"›1898 is expected to allow :version to be ‹"1.0.rev1"›1899 is expected to allow :version to be ‹"1.0.r1"›1900 is expected to allow :version to be ‹"1.0c2"›1901 is expected to allow :version to be ‹"2012.15"›1902 is expected to allow :version to be ‹"1.0+5"›1903 is expected to allow :version to be ‹"1.0+abc.5"›1904 is expected to allow :version to be ‹"1!1.1"›1905 is expected to allow :version to be ‹"1.0c3"›1906 is expected to allow :version to be ‹"1.0rc2"›1907 is expected to allow :version to be ‹"1.0c1"›1908 is expected to allow :version to be ‹"1.0b2-346"›1909 is expected to allow :version to be ‹"1.0b2.post345"›1910 is expected to allow :version to be ‹"1.0b2.post345.dev456"›1911 is expected to allow :version to be ‹"1.2.rev33+123456"›1912 is expected to allow :version to be ‹"1.1.dev1"›1913 is expected to allow :version to be ‹"1.0b1.dev456"›1914 is expected to allow :version to be ‹"1.0a12.dev456"›1915 is expected to allow :version to be ‹"1.0b2"›1916 is expected to allow :version to be ‹"1.0.dev456"›1917 is expected to allow :version to be ‹"1.0c1.dev456"›1918 is expected to allow :version to be ‹"1.0.post456"›1919 is expected to allow :version to be ‹"1.0.post456.dev34"›1920 is expected to allow :version to be ‹"1.2+123abc"›1921 is expected to allow :version to be ‹"1.2+abc"›1922 is expected to allow :version to be ‹"1.2+abc123"›1923 is expected to allow :version to be ‹"1.2+abc123def"›1924 is expected to allow :version to be ‹"1.2+1234.abc"›1925 is expected to allow :version to be ‹"1.2+123456"›1926 is expected to allow :version to be ‹"1.2.r32+123456"›1927 is expected to allow :version to be ‹"1!1.2.rev33+123456"›1928 is expected to allow :version to be ‹"1.0a12"›1929 is expected to allow :version to be ‹"1.2.3-45+abcdefgh"›1930 is expected to allow :version to be ‹"v1.2.3"›1931 is expected not to allow :version to be ‹"1.2.3-45-abcdefgh"›1932 is expected not to allow :version to be ‹"..1.2.3"›1933 is expected not to allow :version to be ‹" 1.2.3"›1934 is expected not to allow :version to be ‹"1.2.3 \r\t"›1935 is expected not to allow :version to be ‹"\r\t 1.2.3"›1936 is expected not to allow :version to be ‹"1./2.3"›1937 is expected not to allow :version to be ‹"1.2.3-4/../../"›1938 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›1939 is expected not to allow :version to be ‹"../../../../../1.2.3"›1940 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1941 generic package1942 is expected to validate that :version cannot be empty/falsy1943 is expected to allow :version to be ‹"1.2.3"›1944 is expected to allow :version to be ‹"1.3.350"›1945 is expected to allow :version to be ‹"1.3.350-20201230123456"›1946 is expected to allow :version to be ‹"1.2.3-rc1"›1947 is expected to allow :version to be ‹"1.2.3g"›1948 is expected to allow :version to be ‹"1.2"›1949 is expected to allow :version to be ‹"1.2.bananas"›1950 is expected to allow :version to be ‹"v1.2.4-build"›1951 is expected to allow :version to be ‹"d50d836eb3de6177ce6c7a5482f27f9c2c84b672"›1952 is expected to allow :version to be ‹"this_is_a_string_only"›1953 is expected not to allow :version to be ‹"..1.2.3"›1954 is expected not to allow :version to be ‹" 1.2.3"›1955 is expected not to allow :version to be ‹"1.2.3 \r\t"›1956 is expected not to allow :version to be ‹"\r\t 1.2.3"›1957 is expected not to allow :version to be ‹"1.2.3-4/../../"›1958 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›1959 is expected not to allow :version to be ‹"../../../../../1.2.3"›1960 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1961 is expected not to allow :version to be ‹""›1962 is expected not to allow :version to be ‹nil›1963 helm package1964 is expected not to allow :version to be ‹nil›1965 is expected not to allow :version to be ‹""›1966 is expected to allow :version to be ‹"v1.2.3"›1967 is expected to allow :version to be ‹"1.2.3"›1968 is expected not to allow :version to be ‹"v1.2"›1969 behaves like validating version to be SemVer compliant for1970 for npm_package1971 is expected to allow :version to be ‹"1.2.3"›1972 is expected to allow :version to be ‹"1.2.3-beta"›1973 is expected to allow :version to be ‹"1.2.3-alpha.3"›1974 is expected not to allow :version to be ‹"1"›1975 is expected not to allow :version to be ‹"1.2"›1976 is expected not to allow :version to be ‹"1./2.3"›1977 is expected not to allow :version to be ‹"../../../../../1.2.3"›1978 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1979 behaves like validating version to be SemVer compliant for1980 for terraform_module_package1981 is expected to allow :version to be ‹"1.2.3"›1982 is expected to allow :version to be ‹"1.2.3-beta"›1983 is expected to allow :version to be ‹"1.2.3-alpha.3"›1984 is expected not to allow :version to be ‹"1"›1985 is expected not to allow :version to be ‹"1.2"›1986 is expected not to allow :version to be ‹"1./2.3"›1987 is expected not to allow :version to be ‹"../../../../../1.2.3"›1988 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1989 nuget package1990 is expected to allow :version to be ‹"1.2"›1991 is expected to allow :version to be ‹"1.2.3"›1992 is expected to allow :version to be ‹"1.2.3.4"›1993 is expected to allow :version to be ‹"1.2.3-beta"›1994 is expected to allow :version to be ‹"1.2.3-alpha.3"›1995 is expected not to allow :version to be ‹"1"›1996 is expected not to allow :version to be ‹"1./2.3"›1997 is expected not to allow :version to be ‹"../../../../../1.2.3"›1998 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1999 #npm_package_already_taken2000 maven package2001 will allow a package of the same name2002 npm package2003 following the naming convention2004 with the second package in the project of the first package2005 with no duplicated name2006 behaves like validating the first package2007 validates the first package2008 behaves like validating the second package2009 validates the second package2010 with duplicated name2011 behaves like validating the first package2012 validates the first package2013 behaves like validating the second package2014 validates the second package2015 with duplicate name and duplicated version2016 behaves like validating the first package2017 validates the first package2018 behaves like not validating the second package2019 does not validate the second package2020 with the second package in a different project than the first package2021 with no duplicated name2022 behaves like validating the first package2023 validates the first package2024 behaves like validating the second package2025 validates the second package2026 with duplicated name2027 behaves like validating the first package2028 validates the first package2029 behaves like validating the second package2030 validates the second package2031 with duplicate name and duplicated version2032 behaves like validating the first package2033 validates the first package2034 behaves like not validating the second package2035 does not validate the second package2036 not following the naming convention2037 with the second package in the project of the first package2038 with no duplicated name2039 behaves like validating the first package2040 validates the first package2041 behaves like validating the second package2042 validates the second package2043 with duplicated name2044 behaves like validating the first package2045 validates the first package2046 behaves like validating the second package2047 validates the second package2048 with duplicate name and duplicated version2049 behaves like validating the first package2050 validates the first package2051 behaves like not validating the second package2052 does not validate the second package2053 with the second package in a different project than the first package2054 with no duplicated name2055 behaves like validating the first package2056 validates the first package2057 behaves like validating the second package2058 validates the second package2059 with duplicated name2060 behaves like validating the first package2061 validates the first package2062 behaves like validating the second package2063 validates the second package2064 with duplicate name and duplicated version2065 behaves like validating the first package2066 validates the first package2067 behaves like validating the second package2068 validates the second package2069 recipe uniqueness for conan packages2070 will allow a conan package with same project, name, version and package_type2071 will not allow a conan package with same recipe (name, version, metadatum.package_channel, metadatum.package_username, and package_type)2072 #unique_debian_package_name2073 will allow a Debian package with same project, name and version, but different distribution2074 will not allow a Debian package with same project, name, version and distribution2075 will allow a Debian package with same project, name, version, but no distribution2076 project id, name, version and package type uniqueness for package type maven2077 will not allow a maven package with same project, name, version and package_type2078 project id, name, version and package type uniqueness for package type npm2079 will not allow a npm package with same project, name, version and package_type2080 project id, name, version and package type uniqueness for package type nuget2081 will not allow a nuget package with same project, name, version and package_type2082 project id, name, version and package type uniqueness for package type pypi2083 will not allow a pypi package with same project, name, version and package_type2084 project id, name, version and package type uniqueness for package type composer2085 will not allow a composer package with same project, name, version and package_type2086 project id, name, version and package type uniqueness for package type generic2087 will not allow a generic package with same project, name, version and package_type2088 project id, name, version and package type uniqueness for package type golang2089 will not allow a golang package with same project, name, version and package_type2090 project id, name, version and package type uniqueness for package type rubygems2091 will not allow a rubygems package with same project, name, version and package_type2092 project id, name, version and package type uniqueness for package type helm2093 will not allow a helm package with same project, name, version and package_type2094 project id, name, version and package type uniqueness for package type terraform_module2095 will not allow a terraform_module package with same project, name, version and package_type2096 #destroy2097 affects project statistics2098 .by_name_and_file_name2099 finds a package with correct arguiments2100 will raise error if not found2101 .with_package_type2102 is expected to eq [#<Packages::Package id: 165, project_id: 181, created_at: "2022-02-04 17:05:07.182155535 +0000", upd...18/system", version: "1.0.0", package_type: "terraform_module", creator_id: 488, status: "default">]2103 .without_package_type2104 is expected to eq [#<Packages::Package id: 167, project_id: 183, created_at: "2022-02-04 17:05:08.151325774 +0000", upd...mespace368/package-21", version: "1.0.45", package_type: "npm", creator_id: 490, status: "default">]2105 version scopes2106 .last_of_each_version2107 includes only latest package per version2108 .has_version2109 includes only packages with version attribute2110 .with_version2111 includes only packages with specified version2112 .without_version_like2113 includes packages without the version pattern2114 conan scopes2115 .with_conan_channel2116 includes only packages with specified version2117 .with_conan_username2118 includes only packages with specified version2119 .without_nuget_temporary_name2120 does not include nuget temporary packages2121 .limit_recent2122 is expected to contain exactly #<Packages::Package id: 190, project_id: 206, created_at: "2022-02-04 17:05:19.491282479 +0000", upda...ame: "NugetPackage34", version: "1.0.25", package_type: "nuget", creator_id: 513, status: "default"> and #<Packages::Package id: 189, project_id: 205, created_at: "2022-02-04 17:05:19.125576432 +0000", upda...ame: "NugetPackage33", version: "1.0.24", package_type: "nuget", creator_id: 512, status: "default">2123 with several packages2124 .pluck_names2125 is expected to contain exactly "FooBar", "foobar", "@namespace394/package-34", and "@namespace395/package-35"2126 .pluck_versions2127 is expected to contain exactly "1.0.26", "1.0.27", "1.0.46", and "1.0.47"2128 .with_name_like2129 with downcase name2130 is expected to contain exactly #<Packages::Package id: 191, project_id: 207, created_at: "2022-02-04 17:05:19.780841251 +0000", upda...0000", name: "FooBar", version: "1.0.26", package_type: "nuget", creator_id: 514, status: "default"> and #<Packages::Package id: 192, project_id: 208, created_at: "2022-02-04 17:05:19.994159708 +0000", upda...0000", name: "foobar", version: "1.0.27", package_type: "nuget", creator_id: 515, status: "default">2131 with prefix wildcard2132 is expected to contain exactly #<Packages::Package id: 191, project_id: 207, created_at: "2022-02-04 17:05:19.780841251 +0000", upda...0000", name: "FooBar", version: "1.0.26", package_type: "nuget", creator_id: 514, status: "default"> and #<Packages::Package id: 192, project_id: 208, created_at: "2022-02-04 17:05:19.994159708 +0000", upda...0000", name: "foobar", version: "1.0.27", package_type: "nuget", creator_id: 515, status: "default">2133 with suffix wildcard2134 is expected to contain exactly #<Packages::Package id: 191, project_id: 207, created_at: "2022-02-04 17:05:19.780841251 +0000", upda...0000", name: "FooBar", version: "1.0.26", package_type: "nuget", creator_id: 514, status: "default"> and #<Packages::Package id: 192, project_id: 208, created_at: "2022-02-04 17:05:19.994159708 +0000", upda...0000", name: "foobar", version: "1.0.27", package_type: "nuget", creator_id: 515, status: "default">2135 with surrounding wildcards2136 is expected to contain exactly #<Packages::Package id: 191, project_id: 207, created_at: "2022-02-04 17:05:19.780841251 +0000", upda...0000", name: "FooBar", version: "1.0.26", package_type: "nuget", creator_id: 514, status: "default"> and #<Packages::Package id: 192, project_id: 208, created_at: "2022-02-04 17:05:19.994159708 +0000", upda...0000", name: "foobar", version: "1.0.27", package_type: "nuget", creator_id: 515, status: "default">2137 .search_by_name2138 is expected to contain exactly #<Packages::Package id: 191, project_id: 207, created_at: "2022-02-04 17:05:19.780841251 +0000", upda...0000", name: "FooBar", version: "1.0.26", package_type: "nuget", creator_id: 514, status: "default"> and #<Packages::Package id: 192, project_id: 208, created_at: "2022-02-04 17:05:19.994159708 +0000", upda...0000", name: "foobar", version: "1.0.27", package_type: "nuget", creator_id: 515, status: "default">2139 .with_normalized_pypi_name2140 is expected to contain exactly #<Packages::Package id: 195, project_id: 211, created_at: "2022-02-04 17:05:21.083594469 +0000", upda...e: "Foo.bAr---BAZ_buz", version: "1.0.64", package_type: "pypi", creator_id: 518, status: "default">2141 status scopes2142 .displayable2143 does not include non-displayable packages2144 .installable2145 does not include non-installable packages2146 includes installable packages2147 .with_status2148 returns packages with specified status2149 .select_distinct_name2150 returns only distinct names2151 sorting2152 orders packages by their projects name ascending2153 orders packages by their projects name descending2154 behaves like order_project_path scope2155 orders packages by their projects path asc, then package id asc2156 behaves like order_project_path_desc scope2157 orders packages by their projects path desc, then package id desc2158 .order_by_package_file2159 orders packages their associated package_file's created_at date2160 .keyset_pagination_order2161 is expected to raise NoMethodError2162 with valid params2163 ascending direction2164 is expected to eq "projects.name asc NULLS LAST, \"packages_packages\".\"id\" ASC"2165 descending direction2166 is expected to eq "projects.name desc NULLS FIRST, \"packages_packages\".\"id\" DESC"2167 #versions2168 returns other package versions of the same package name belonging to the project2169 does not return different packages2170 #pipeline2171 package without pipeline2172 returns nil if there is no pipeline2173 package with pipeline2174 returns the pipeline2175 #pipelines2176 package without pipeline2177 is expected to be empty2178 package with pipeline2179 is expected to contain exactly #<Ci::Pipeline id: 2, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil..._sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 2, locked: "artifacts_locked"> and #<Ci::Pipeline id: 3, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil..._sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 3, locked: "artifacts_locked">2180 #tag_names2181 is expected to eq []2182 with tags2183 is expected to contain exactly "tag1", "tag2", and "tag3"2184 #debian_incoming?2185 is expected to eq false2186 with debian_incoming2187 is expected to eq true2188 with debian_package2189 is expected to eq false2190 #debian_package?2191 is expected to eq false2192 with debian_incoming2193 is expected to eq false2194 with debian_package2195 is expected to eq true2196 #infrastructure_package?2197 is expected to eq false2198 with generic package2199 is expected to eq false2200 with terraform module package2201 is expected to eq true2202 plan_limits2203 File size limits for maven2204WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2205 plan_limits includes column maven_max_file_size2206 File size limits for npm2207WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2208 plan_limits includes column npm_max_file_size2209 File size limits for conan2210WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2211 plan_limits includes column conan_max_file_size2212 File size limits for nuget2213WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2214 plan_limits includes column nuget_max_file_size2215 File size limits for pypi2216WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2217 plan_limits includes column pypi_max_file_size2218 File size limits for generic2219WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2220 plan_limits includes column generic_packages_max_file_size2221 File size limits for golang2222WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2223 plan_limits includes column golang_max_file_size2224 File size limits for debian2225WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2226 plan_limits includes column debian_max_file_size2227 File size limits for rubygems2228WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2229 plan_limits includes column rubygems_max_file_size2230 File size limits for helm2231WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2232 plan_limits includes column helm_max_file_size2233 File size limits for terraform_module2234WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/models/packages/package_spec.rb:1127:in `block (5 levels) in <top (required)>'.2235 plan_limits includes column terraform_module_max_file_size2236 #original_build_info2237 without build_infos2238 returns nil2239 with build_infos2240 returns the first build info2241 #package_settings2242 returns the namespace package_settings2243 #sync_maven_metadata2244 enqueues a sync worker job2245 with no user2246 behaves like not enqueuing a sync worker job2247 does not enqueue a sync worker job2248 with a versionless maven package2249 behaves like not enqueuing a sync worker job2250 does not enqueue a sync worker job2251 with a non maven package2252 behaves like not enqueuing a sync worker job2253 does not enqueue a sync worker job2254 #mark_package_files_for_destruction2255 enqueues a sync worker job2256 for a package non pending destruction2257 does not enqueues a sync worker job2258 #create_build_infos!2259 with a valid build2260 creates a build info2261 with an already existing build info2262 does not create a build info2263 with a nil build2264 does not create a build info2265 with a build without a pipeline2266 does not create a build info2267ProjectTeam2268 personal project2269 members collection2270 is expected to include #<User id:590 @user315>2271 is expected not to include #<User id:596 @user320>2272 is expected not to include #<User id:599 @user322>2273 is expected not to include #<User id:605 @user327>2274 access methods2275 is expected to be truthy2276 is expected to be falsey2277 is expected to be falsey2278 is expected to be falsey2279 is expected to be falsey2280 is expected to be truthy2281 is expected to be truthy2282 is expected to be falsey2283 is expected to be falsey2284 group project2285 members collection2286 is expected to include #<User id:648 @user360>2287 is expected to include #<User id:652 @user363>2288 is expected to include #<User id:659 @user369>2289 is expected not to include #<User id:663 @user372>2290 is expected not to include #<User id:670 @user378>2291 access methods2292 is expected to be truthy2293 is expected to be truthy2294 is expected to be truthy2295 is expected to be falsey2296 is expected to be falsey2297 is expected to be falsey2298 is expected to be truthy2299 is expected to be truthy2300 is expected to be falsey2301 is expected to be falsey2302 owner methods2303 personal project2304 is expected to contain exactly #<User id:724 @namespace495>2305 is expected to be truthy2306 group project2307 is expected to contain exactly #<User id:726 @user422> and #<User id:727 @user423>2308 is expected to be truthy2309 is expected to be truthy2310 #fetch_members2311 personal project2312 returns project members2313 returns project members of a specified level2314 returns invited members of a group2315 returns invited members of a group of a specified level2316 group project2317 returns project members2318 returns project members of a specified level2319 #find_member2320 personal project2321 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)2322 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)2323 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)2324 is expected to be nil2325 is expected to be nil2326 group project2327 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)2328 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)2329 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)2330 is expected to be nil2331 is expected to be nil2332 #members_in_project_and_ancestors2333 group project2334 filters out users who are not members of the project2335 #members_with_access_levels2336 with access_levels2337 filters members who have given access levels2338 without access_levels2339 returns empty array2340 #add_users2341 add the given users to the team2342 when `tasks_to_be_done` and `tasks_project_id` are passed2343 creates a member_task with the correct attributes2344 #add_user2345 add the given user to the team2346 #human_max_access2347 returns Maintainer role2348 returns Owner role2349 #contributor?2350 when user is a member of project2351 is expected to equal false2352 is expected to equal false2353 is expected to equal false2354 when user has at least one merge request merged into default_branch2355 is expected to equal true2356 is expected to equal false2357 #max_member_access2358 personal project2359 when project is not shared with group2360 is expected to eq 402361 is expected to eq 202362 is expected to eq 102363 is expected to eq 02364 is expected to eq 02365 when project is shared with group2366 is expected to eq 302367 is expected to eq 202368 is expected to eq 02369 is expected to eq 02370 but share_with_group_lock is true2371 is expected to eq 02372 is expected to eq 02373 group project2374 is expected to eq 402375 is expected to eq 202376 is expected to eq 102377 is expected to eq 02378 is expected to eq 02379 #member?2380 returns false for no user2381 returns true for personal projects of the user2382 returns true for projects of groups the user is a member of2383 returns true for projects for which the user is a member of2384 returns true for projects shared on a group the user is a member of2385 checks for the correct minimum level access2386 #contribution_check_for_user_ids2387 does not perform extra queries when asked for users who have already been found2388 only requests the extra users when uncached users are passed2389 returns correct contributors2390 #max_member_access_for_user_ids2391 with RequestStore enabled2392 returns correct roles for different users2393 does not perform extra queries when asked for users who have already been found2394 only requests the extra users when uncached users are passed2395 with RequestStore disabled2396 returns correct roles for different users2397Noteable2398 #discussions2399 includes discussions for diff notes, commit diff notes, commit notes, and regular notes2400 #discussion_ids_relation2401 returns ordered discussion_ids2402 #discussion_root_note_ids2403 returns ordered discussion_ids and synthetic note ids2404 filters by comments only2405 filters by system notes only2406 #grouped_diff_discussions2407 includes active discussions2408 does not include outdated discussions2409 groups the discussions by line code2410 discussion status2411 #discussions_resolvable?2412 when all discussions are unresolvable2413 returns false2414 when some discussions are unresolvable and some discussions are resolvable2415 returns true2416 when all discussions are resolvable2417 returns true2418 #discussions_resolved?2419 when discussions are not resolvable2420 returns false2421 when discussions are resolvable2422 when all resolvable discussions are resolved2423 returns true2424 when some resolvable discussions are not resolved2425 returns false2426 #discussions_to_be_resolved2427 includes only discussions that need to be resolved2428 #discussions_can_be_resolved_by?2429 all discussions can be resolved by the user2430 allows a user to resolve the discussions2431 one discussion cannot be resolved by the user2432 allows a user to resolve the discussions2433 .replyable_types2434 exposes the replyable types2435 .resolvable_types2436 exposes the replyable types2437 .email_creatable_types2438 exposes the email creatable types2439 #capped_notes_count2440 notes number < 102441 the number of notes is returned2442 notes number > 102443 10 is returned2444 #has_any_diff_note_positions?2445 returns true when it has diff note positions2446 returns false when it has notes but no diff note positions2447 returns false when it has no notes2448 #creatable_note_email_address2449 incoming email enabled2450 returns the address to create a note2451 returns nil for unsupported types2452 incoming email disabled2453 returns nil2454MergeRequests::SquashService2455 #execute2456 when there is only one commit in the merge request2457 returns the squashed commit SHA2458 cleans up the temporary directory2459 does not keep the branch push event2460 when there is a single commit in the merge request2461 will still perform the squash2462 when squash message matches commit message2463 returns that commit SHA2464 does not perform any git actions2465 when squash message matches commit message but without trailing new line2466 returns that commit SHA2467 does not perform any git actions2468 the squashed commit2469 copies the author info from the merge request2470 sets the current user as the committer2471 has the same diff as the merge request, but a different SHA2472 has a default squash commit message if no message was provided2473 if a message was provided2474 has the same message as the message provided2475 when squashing only new files2476 returns the squashed commit SHA2477 cleans up the temporary directory2478 does not keep the branch push event2479 when there is a single commit in the merge request2480 will still perform the squash2481 when squash message matches commit message2482 returns that commit SHA2483 does not perform any git actions2484 when squash message matches commit message but without trailing new line2485 returns that commit SHA2486 does not perform any git actions2487 the squashed commit2488 copies the author info from the merge request2489 sets the current user as the committer2490 has the same diff as the merge request, but a different SHA2491 has a default squash commit message if no message was provided2492 if a message was provided2493 has the same message as the message provided2494 when squashing is disabled by default on the project2495 returns the squashed commit SHA2496 cleans up the temporary directory2497 does not keep the branch push event2498 when there is a single commit in the merge request2499 will still perform the squash2500 when squash message matches commit message2501 returns that commit SHA2502 does not perform any git actions2503 when squash message matches commit message but without trailing new line2504 returns that commit SHA2505 does not perform any git actions2506 the squashed commit2507 copies the author info from the merge request2508 sets the current user as the committer2509 has the same diff as the merge request, but a different SHA2510 has a default squash commit message if no message was provided2511 if a message was provided2512 has the same message as the message provided2513 when squashing is forbidden on the project2514 raises a squash error2515 when squashing is enabled by default on the project2516 returns the squashed commit SHA2517 cleans up the temporary directory2518 does not keep the branch push event2519 when there is a single commit in the merge request2520 will still perform the squash2521 when squash message matches commit message2522 returns that commit SHA2523 does not perform any git actions2524 when squash message matches commit message but without trailing new line2525 returns that commit SHA2526 does not perform any git actions2527 the squashed commit2528 copies the author info from the merge request2529 sets the current user as the committer2530 has the same diff as the merge request, but a different SHA2531 has a default squash commit message if no message was provided2532 if a message was provided2533 has the same message as the message provided2534 when squashing with files too large to display2535 returns the squashed commit SHA2536 cleans up the temporary directory2537 does not keep the branch push event2538 when there is a single commit in the merge request2539 will still perform the squash2540 when squash message matches commit message2541 returns that commit SHA2542 does not perform any git actions2543 when squash message matches commit message but without trailing new line2544 returns that commit SHA2545 does not perform any git actions2546 the squashed commit2547 copies the author info from the merge request2548 sets the current user as the committer2549 has the same diff as the merge request, but a different SHA2550 has a default squash commit message if no message was provided2551 if a message was provided2552 has the same message as the message provided2553 git errors2554 with an error in Gitaly UserSquash RPC2555 logs the error2556 returns an error2557 when any other exception is thrown2558 logs the error2559 returns an error2560 cleans up the temporary directory2561ProjectWiki2562 behaves like wiki model2563 container class includes HasWiki2564 is expected to delegate #storage to the #container object2565 is expected to delegate #repository_storage to the #container object2566 is expected to delegate #hashed_storage? to the #container object2567 behaves like model with repository2568 container class includes HasRepository2569 #commits_by2570 retrieves several commits from the repository by oid2571 #web_url2572 when given the only_path option2573 when only_path is false2574 returns the full web URL for this repo2575 when only_path is true2576 returns the relative web URL for this repo2577 when only_path is nil2578 returns the full web URL for this repo2579 when not given the only_path option2580 returns the full web URL for this repo2581 #url_to_repo2582 returns the SSH URL to the repository2583 #ssh_url_to_repo2584 returns the SSH URL to the repository2585 #http_url_to_repo2586 returns the HTTP URL to the repository2587 #repository2588 returns valid repo2589 uses the same container2590 #storage2591 returns valid storage2592 #full_path2593 returns valid full_path2594 #lfs_enabled?2595 returns the expected value2596 #empty_repo?2597 when the repo does not exist2598 returns true2599 when the repo exists2600 returns the empty state of the repository2601 #valid_repo?2602 is expected to equal false2603 is expected to equal true2604 #repository_exists?2605 is expected to equal false2606 is expected to equal true2607 #repo_exists?2608 is expected to equal false2609 is expected to equal true2610 #root_ref2611 is expected to equal true2612 is expected to equal false2613 is expected to equal false2614 Respond to2615 is expected to respond to #base_dir2616 is expected to respond to #disk_path2617 is expected to respond to #gitlab_shell2618 #change_head2619 delegates #change_head to repository2620 #after_repository_change_head2621 calls #reload_default_branch2622 .container_class2623 is set to the container class2624 .find_by_id2625 returns a wiki instance if the container is found2626 returns nil if the container is not found2627 #initialize2628 accepts a valid user2629 accepts a blank user2630 raises an error for invalid users2631 #run_after_commit2632 delegates to the container2633 #==2634 returns true for wikis from the same container2635 returns false for wikis from different containers2636 #id2637 returns the ID of the container2638 #to_global_id2639 returns a global ID2640 #repository2641 returns a wiki repository2642 #full_path2643 returns the container path with the .wiki extension2644 #wiki_base_path2645 returns the wiki base path2646 includes the relative URL root2647 #wiki2648 contains a Gitlab::Git::Wiki instance2649 creates a new wiki repo if one does not yet exist2650 creates a new wiki repo with a default commit message2651 when the repository cannot be created2652 raises CouldNotCreateWikiError2653 #empty?2654 when the wiki repository is empty2655 returns true2656 when the repository does not exist2657 returns true and does not create the repo2658 when the wiki has pages2659 #empty?2660 returns false2661 only instantiates a Wiki page once2662 #list_pages2663 returns an array of WikiPage instances2664 does not load WikiPage content by default2665 returns all pages by default2666 with limit option2667 returns limited set of pages2668 with sorting options2669 returns pages sorted by title by default2670 returns pages sorted by created_at2671 with load_content option2672 loads WikiPage content2673 #sidebar_entries2674 when the number of pages does not exceed the limit2675 returns all pages grouped by directory and limited is false2676 when the number of pages exceeds the limit2677 returns 15 pages grouped by directory and limited is true2678 #find_page2679 returns the latest version of the page if it exists2680 returns nil if the page or version does not exist2681 can find a page by slug2682 returns a WikiPage instance2683 pages with multibyte-character title2684 can find a page by slug2685 pages with invalidly-encoded content2686 can find the page2687 #find_sidebar2688 finds the page defined as _sidebar2689 #find_file2690 returns the latest version of the file if it exists2691 returns nil if the page does not exist2692 returns a Gitlab::Git::WikiFile instance2693 returns the whole file2694 when load_content is disabled2695 includes the file data in the Gitlab::Git::WikiFile2696 #create_page2697 creates a new wiki page2698 returns false when a duplicate page exists2699 stores an error message when a duplicate page exists2700 sets the correct commit message2701 sets the correct commit email2702 runs after_wiki_activity callbacks2703 #update_page2704 updates the content of the page2705 sets the correct commit message2706 sets the correct commit email2707 runs after_wiki_activity callbacks2708 #delete_page2709 deletes the page2710 sets the correct commit email2711 runs after_wiki_activity callbacks2712 when an error is raised2713 logs the error and returns false2714 #ensure_repository2715 if the repository exists2716 does not create the repository2717 if the repository does not exist2718 creates the repository2719 #hook_attrs2720 returns a hash with values2721 #default_branch2722 when repository is not created2723 returns the instance default branch2724 when repository is empty2725 returns the instance default branch2726 when repository is not empty2727 returns the repository default branch2728 #create_wiki_repository2729 when repository is not created2730 changes the HEAD reference to the default branch2731 when repository is empty2732 changes the HEAD reference to the default branch2733 when repository is not empty2734 does nothing when HEAD points to the right branch2735 when HEAD points to the wrong branch2736 rewrites HEAD with the right branch2737 #disk_path2738 returns the repository storage path2739 #after_wiki_activity2740 updates project activity2741 #after_post_receive2742 updates project activity and expires caches2743 behaves like can housekeep repository2744 with a clean redis state2745 #pushes_since_gc2746 without any pushes2747 returns 02748 with a number of pushes2749 returns the number of pushes2750 #increment_pushes_since_gc2751 increments the number of pushes since the last GC2752 #reset_pushes_since_gc2753 resets the number of pushes since the last GC2754 #pushes_since_gc_redis_shared_state_key2755 returns the proper redis key format2756 #git_garbage_collect_worker_klass2757 defines a git gargabe collect worker2758Projects::DestroyService2759 invalidates personal_project_count cache2760 deleting a project with merge requests2761 deletes merge request and related records2762 behaves like deleting the project2763 deletes the project2764 with running pipelines2765 bulks-fails with AbortPipelineService and then executes DestroyPipelineService for each pipelines2766 when project has remote mirrors2767 destroys them2768 when project has exports2769 destroys project and export2770 Sidekiq fake2771 is expected not to include #<Project id:668 user636/project852>>2772 is expected to be falsey2773 is expected to be truthy2774 when flushing caches fail due to Git errors2775 behaves like deleting the project2776 deletes the project2777 when flushing caches fail due to Redis2778 keeps project team intact upon an error2779 with async_execute2780 async delete of project with private issue visibility2781 behaves like deleting the project2782 deletes the project2783 behaves like deleting the project with pipeline and build2784 with pipeline and build related records2785 deletes build and pipeline related records2786 avoids N+1 queries2787 behaves like deleting the project2788 deletes the project2789 errors2790 when `remove_legacy_registry_tags` fails2791 behaves like handles errors thrown during async destroy2792 does not allow the error to bubble up2793 reports the error2794 unmarks the project as "pending deletion"2795 stores an error message in `projects.delete_error`2796 when `remove_repository` fails2797 behaves like handles errors thrown during async destroy2798 does not allow the error to bubble up2799 reports the error2800 unmarks the project as "pending deletion"2801 stores an error message in `projects.delete_error`2802 when `execute` raises expected error2803 behaves like handles errors thrown during async destroy2804 does not allow the error to bubble up2805 reports the error2806 unmarks the project as "pending deletion"2807 stores an error message in `projects.delete_error`2808 when `execute` raises unexpected error2809 allows error to bubble up and rolls back project deletion2810 for an archived project2811 behaves like deleting the project with pipeline and build2812 with pipeline and build related records2813 deletes build and pipeline related records2814 avoids N+1 queries2815 behaves like deleting the project2816 deletes the project2817 container registry2818 when there are regular container repositories2819 when image repository deletion succeeds2820 removes tags2821 when image repository deletion fails2822 raises an exception2823 when registry is disabled2824 does not attempting to remove any tags2825 when there are tags for legacy root repository2826 when image repository tags deletion succeeds2827 removes tags2828 when image repository tags deletion fails2829 raises an exception2830 for a forked project with LFS objects2831 destroys the fork2832 as the root of a fork network2833 updates the fork network with the project name2834 repository +deleted path removal2835 regular phase2836 schedules +deleted removal of existing repos2837 stale cleanup2838 schedules +deleted wiki and repo removal2839 snippets2840 does not include snippets when deleting in batches2841 calls the bulk snippet destroy service2842 when an error is raised deleting snippets2843 does not delete project2844 when project has webhooks2845 deletes webhooks and logs related to project2846 when an error is raised deleting webhooks2847 behaves like handles errors thrown during async destroy2848 does not allow the error to bubble up2849 reports the error2850 unmarks the project as "pending deletion"2851 stores an error message in `projects.delete_error`2852 when project has project bots2853 deletes bot user as well2854 when project has events2855 deletes events from the project2856 when an error is returned while deleting events2857 does not delete project2858 error while destroying2859 deletes on retry2860CommitStatus2861 is expected to belong to pipeline required: false2862 is expected to belong to user required: false2863 is expected to belong to project required: false2864 is expected to belong to auto_canceled_by required: false2865 is expected to validate that :name cannot be empty/falsy2866 is expected to validate that :status is either ‹"pending"›, ‹"running"›, ‹"failed"›, ‹"success"›, or ‹"canceled"›2867 is expected to delegate #sha to the #pipeline object2868 is expected to delegate #short_sha to the #pipeline object2869 is expected to respond to #success?2870 is expected to respond to #failed?2871 is expected to respond to #running?2872 is expected to respond to #pending?2873 behaves like having unique enum values2874 has unique values in "scheduling_type"2875 has unique values in "failure_reason"2876 #author2877 is expected to eq #<User id: @>2878 status state machine2879 invalidates the cache after a transition2880 transitioning to running2881 records the started at time2882 transitioning to created from skipped or manual2883 does not update user without parameter2884 updates user with user parameter2885 .updated_at_before2886 finds the relevant records2887 .created_at_before2888 finds the relevant records2889 .scheduled_at_before2890 is expected to contain exactly #<CommitStatus status: "success", finished_at: "2016-01-26 07:23:42.000000000 +0000", trace: nil, cre...id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: nil, id: 27, stage_id: 22>2891 #processed2892 processed state is always persisted2893 status is latest2894 is expected to be falsey2895 status is retried2896 is expected to be truthy2897 #started?2898 without started_at2899 is expected to be falsey2900 if commit status is running2901 is expected to be truthy2902 if commit status is success2903 is expected to be truthy2904 if commit status is failed2905 is expected to be truthy2906 if commit status is pending2907 is expected to be falsey2908 if commit status is canceled2909 is expected to be falsey2910 #active?2911 if commit_status.status is pending2912 is expected to be truthy2913 if commit_status.status is running2914 is expected to be truthy2915 if commit_status.status is success2916 is expected to be falsey2917 if commit_status.status is failed2918 is expected to be falsey2919 if commit_status.status is canceled2920 is expected to be falsey2921 #complete?2922 if commit_status.status is success2923 is expected to be truthy2924 if commit_status.status is failed2925 is expected to be truthy2926 if commit_status.status is canceled2927 is expected to be truthy2928 if commit_status.status is pending2929 is expected to be falsey2930 if commit_status.status is running2931 is expected to be falsey2932 #cancel2933 when status is scheduled2934 updates the status2935 #auto_canceled?2936 when it is canceled2937 when there is auto_canceled_by2938 is auto canceled2939 when there is no auto_canceled_by2940 is not auto canceled2941 #duration2942 is expected to eq 120.02943 if the building process has not started yet2944 is expected to be nil2945 if the building process has started2946 is expected to be a kind of Float2947 is expected to be > 0.02948 #queued_duration2949 when created, then enqueued, then started2950 is expected to eq 5.02951 when created but not yet enqueued2952 is expected to be nil2953 when enqueued, but not started2954 is expected to eq 1 minute2955 .latest2956 returns unique statuses2957 .retried2958 returns unique statuses2959 .retried_ordered2960 returns retried statuses in order2961 .running_or_pending2962 returns statuses that are running or pending2963 .after_stage2964 returns statuses from second and third stage2965 .exclude_ignored2966 returns statuses without what we want to ignore2967 .failed_but_allowed2968 returns statuses without what we want to ignore2969 .for_ref2970 returns statuses with the specified ref2971 .by_name2972 returns statuses with the specified name2973 .for_project_paths2974 with a single path2975 returns statuses for other_project2976 with array of paths2977 returns statuses for project2978 .status2979 when there are multiple statuses present2980 returns a correct compound status2981 when there are only allowed to fail commit statuses present2982 returns status that indicates success2983 when using a scope to select latest statuses2984 returns status according to the scope2985 .match_id_and_lock_version2986 returns statuses that match the given id and lock versions2987 #before_sha2988 when no before_sha is set for pipeline2989 returns blank sha2990 for before_sha set for pipeline2991 returns the set value2992 #commit2993 returns commit pipeline has been created for2994 #group_name2995 name: "rspec1", group_name: "rspec1"2996 rspec1 puts in rspec12997 name: "rspec1 0 1", group_name: "rspec1"2998 rspec1 0 1 puts in rspec12999 name: "rspec1 0/2", group_name: "rspec1"3000 rspec1 0/2 puts in rspec13001 name: "rspec:windows", group_name: "rspec:windows"3002 rspec:windows puts in rspec:windows3003 name: "rspec:windows 0", group_name: "rspec:windows 0"3004 rspec:windows 0 puts in rspec:windows 03005 name: "rspec:windows 0 2/2", group_name: "rspec:windows 0"3006 rspec:windows 0 2/2 puts in rspec:windows 03007 name: "rspec:windows 0 test", group_name: "rspec:windows 0 test"3008 rspec:windows 0 test puts in rspec:windows 0 test3009 name: "rspec:windows 0 test 2/2", group_name: "rspec:windows 0 test"3010 rspec:windows 0 test 2/2 puts in rspec:windows 0 test3011 name: "rspec:windows 0 1 2/2", group_name: "rspec:windows"3012 rspec:windows 0 1 2/2 puts in rspec:windows3013 name: "rspec:windows 0 1 [aws] 2/2", group_name: "rspec:windows"3014 rspec:windows 0 1 [aws] 2/2 puts in rspec:windows3015 name: "rspec:windows 0 1 name [aws] 2/2", group_name: "rspec:windows 0 1 name"3016 rspec:windows 0 1 name [aws] 2/2 puts in rspec:windows 0 1 name3017 name: "rspec:windows 0 1 name", group_name: "rspec:windows 0 1 name"3018 rspec:windows 0 1 name puts in rspec:windows 0 1 name3019 name: "rspec:windows 0 1 name 1/2", group_name: "rspec:windows 0 1 name"3020 rspec:windows 0 1 name 1/2 puts in rspec:windows 0 1 name3021 name: "rspec:windows 0/1", group_name: "rspec:windows"3022 rspec:windows 0/1 puts in rspec:windows3023 name: "rspec:windows 0/1 name", group_name: "rspec:windows 0/1 name"3024 rspec:windows 0/1 name puts in rspec:windows 0/1 name3025 name: "rspec:windows 0/1 name 1/2", group_name: "rspec:windows 0/1 name"3026 rspec:windows 0/1 name 1/2 puts in rspec:windows 0/1 name3027 name: "rspec:windows 0:1", group_name: "rspec:windows"3028 rspec:windows 0:1 puts in rspec:windows3029 name: "rspec:windows 0:1 name", group_name: "rspec:windows 0:1 name"3030 rspec:windows 0:1 name puts in rspec:windows 0:1 name3031 name: "rspec:windows 10000 20000", group_name: "rspec:windows"3032 rspec:windows 10000 20000 puts in rspec:windows3033 name: "rspec:windows 0 : / 1", group_name: "rspec:windows"3034 rspec:windows 0 : / 1 puts in rspec:windows3035 name: "rspec:windows 0 : / 1 name", group_name: "rspec:windows 0 : / 1 name"3036 rspec:windows 0 : / 1 name puts in rspec:windows 0 : / 1 name3037 name: "0 1 name ruby", group_name: "0 1 name ruby"3038 0 1 name ruby puts in 0 1 name ruby3039 name: "0 :/ 1 name ruby", group_name: "0 :/ 1 name ruby"3040 0 :/ 1 name ruby puts in 0 :/ 1 name ruby3041 name: "rspec: [aws]", group_name: "rspec"3042 rspec: [aws] puts in rspec3043 name: "rspec: [aws] 0/1", group_name: "rspec"3044 rspec: [aws] 0/1 puts in rspec3045 name: "rspec: [aws, max memory]", group_name: "rspec"3046 rspec: [aws, max memory] puts in rspec3047 name: "rspec:linux: [aws, max memory, data]", group_name: "rspec:linux"3048 rspec:linux: [aws, max memory, data] puts in rspec:linux3049 name: "rspec: [inception: [something, other thing], value]", group_name: "rspec"3050 rspec: [inception: [something, other thing], value] puts in rspec3051 name: "rspec:windows 0/1: [name, other]", group_name: "rspec:windows"3052 rspec:windows 0/1: [name, other] puts in rspec:windows3053 name: "rspec:windows: [name, other] 0/1", group_name: "rspec:windows"3054 rspec:windows: [name, other] 0/1 puts in rspec:windows3055 name: "rspec:windows: [name, 0/1] 0/1", group_name: "rspec:windows"3056 rspec:windows: [name, 0/1] 0/1 puts in rspec:windows3057 name: "rspec:windows: [0/1, name]", group_name: "rspec:windows"3058 rspec:windows: [0/1, name] puts in rspec:windows3059 name: "rspec:windows: [, ]", group_name: "rspec:windows"3060 rspec:windows: [, ] puts in rspec:windows3061 name: "rspec:windows: [name]", group_name: "rspec:windows"3062 rspec:windows: [name] puts in rspec:windows3063 name: "rspec:windows: [name,other]", group_name: "rspec:windows"3064 rspec:windows: [name,other] puts in rspec:windows3065 #detailed_status3066 returns a detailed status3067 #sortable_name3068 'karma' sorts as '["karma"]'3069 'karma 0 20' sorts as '["karma ", 0, " ", 20]'3070 'karma 10 20' sorts as '["karma ", 10, " ", 20]'3071 'karma 50:100' sorts as '["karma ", 50, ":", 100]'3072 'karma 1.10' sorts as '["karma ", 1, ".", 10]'3073 'karma 1.5.1' sorts as '["karma ", 1, ".", 5, ".", 1]'3074 'karma 1 a' sorts as '["karma ", 1, " a"]'3075 #locking_enabled?3076 when changing status3077 lock3078 raise exception when trying to update3079 when changing description3080 do not lock3081 save correctly3082 #drop3083 when failure_reason is nil3084 is expected to be unknown failure3085 behaves like incrementing failure reason counter3086 increments the counter with the failure_reason3087 when failure_reason is script_failure3088 is expected to be script failure3089 behaves like incrementing failure reason counter3090 increments the counter with the failure_reason3091 when failure_reason is unmet_prerequisites3092 is expected to be unmet prerequisites3093 behaves like incrementing failure reason counter3094 increments the counter with the failure_reason3095 when status is manual3096 is able to be dropped3097 when a failure reason is provided3098 when a failure reason is a symbol3099 correctly sets a failure reason3100 when a failure reason is an object3101 correctly sets a failure reason3102 ensure stage assignment3103 when commit status has a stage_id assigned3104 does not create a new stage3105 when commit status does not have a stage_id assigned3106 creates a new stage3107 when commit status does not have stage but it exists3108 uses existing stage3109 when commit status is being imported3110 does not create a new stage3111 #all_met_to_become_pending?3112 is expected to eq true3113 #enqueue3114 when initial state is :created3115 behaves like commit status enqueued3116 sets queued_at value when enqueued3117 when initial state is :skipped3118 behaves like commit status enqueued3119 sets queued_at value when enqueued3120 when initial state is :manual3121 behaves like commit status enqueued3122 sets queued_at value when enqueued3123 when initial state is :scheduled3124 behaves like commit status enqueued3125 sets queued_at value when enqueued3126 #present3127 is expected to be a kind of CommitStatusPresenter3128 #recoverable?3129 when commit status is failed3130 failure_reason: :script_failure, recoverable: false3131 when failure reason is script_failure3132 is expected to eq false3133 failure_reason: :missing_dependency_failure, recoverable: false3134 when failure reason is missing_dependency_failure3135 is expected to eq false3136 failure_reason: :archived_failure, recoverable: false3137 when failure reason is archived_failure3138 is expected to eq false3139 failure_reason: :scheduler_failure, recoverable: false3140 when failure reason is scheduler_failure3141 is expected to eq false3142 failure_reason: :data_integrity_failure, recoverable: false3143 when failure reason is data_integrity_failure3144 is expected to eq false3145 failure_reason: :unknown_failure, recoverable: true3146 when failure reason is unknown_failure3147 is expected to eq true3148 failure_reason: :api_failure, recoverable: true3149 when failure reason is api_failure3150 is expected to eq true3151 failure_reason: :stuck_or_timeout_failure, recoverable: true3152 when failure reason is stuck_or_timeout_failure3153 is expected to eq true3154 failure_reason: :runner_system_failure, recoverable: true3155 when failure reason is runner_system_failure3156 is expected to eq true3157 when commit status is not failed3158 is expected to eq false3159 #update_older_statuses_retried!3160 updates 'retried' and 'status' columns of the latest status with the same name in the same pipeline3161 .bulk_insert_tags!3162 delegates to bulk insert class3163 #expire_etag_cache!3164 expires the etag cache3165 loose foreign key on ci_builds.project_id3166 behaves like cleanup by a loose foreign key3167 cleans up (delete or nullify) the model3168DesignManagement::Design3169 behaves like AtomicInternalId3170 .has_internal_id3171 Module inclusion3172 is expected to includes the AtomicInternalId module3173 Validation3174 when presence validation is required3175 when creating an object3176 raises an error if the internal id is blank3177 when updating an object3178 raises an error if the internal id is blank3179 when presence validation is not required3180 when creating an object3181 does not raise an error if the internal id is blank (PENDING: No reason given)3182 when updating an object3183 does not raise an error if the internal id is blank (PENDING: No reason given)3184 Creating an instance3185 saves a new instance properly3186 internal id generation3187 calls InternalId.generate_next and sets internal id attribute3188 does not overwrite an existing internal id3189 when the instance has an internal ID set3190 calls InternalId.update_last_value and sets the `last_value` to that of the instance3191 unsetting the instance internal id on rollback3192 when the internal id has been changed3193 when the internal id is automatically set3194 clears it on the instance3195 when the internal id is manually set3196 does not clear it on the instance3197 when the internal id has not been changed3198 preserves the value on the instance3199 supply of internal ids3200 provides a persistent supply of IID values, sensitive to the current state3201 #reset_scope_internal_id_attribute3202 rewinds the allocated IID3203 allocates the same IID3204 behaves like a class that supports relative positioning3205 #scoped_items3206 includes all items with the same scope3207 #relative_siblings3208 includes all items with the same scope, except self3209 .move_nulls_to_end3210 moves items with null relative_position to the end3211 preserves relative position3212 moves the item near the start position when there are no existing positions3213 does not perform any moves if all items have their relative_position set3214 manages to move nulls to the end even if there is a sequence at the end3215 manages to move nulls to the end even if there is not enough space3216 manages to move nulls to the end, stacking if we cannot create enough space3217 manages to move nulls found in the relative scope3218 can move many nulls3219 does not have an N+1 issue3220 .move_nulls_to_start3221 moves items with null relative_position to the start3222 moves the item near the start position when there are no existing positions3223 preserves relative position3224 does not perform any moves if all items have their relative_position set3225 manages to move nulls to the start even if there is not enough space3226 manages to move nulls to the end, stacking if we cannot create enough space3227 #move_before3228 moves item before3229 can move the item before an item at the start3230 can move the item before an item at MIN_POSITION3231 can move the item before an item bunched up at MIN_POSITION3232 when there is no space3233 moves items correctly3234 leap-frogging to the left3235 can leap-frog STEPS times before needing to rebalance3236 there is no space to the left after moving STEPS times3237 rebalances to the right3238 #move_after3239 moves item after3240 can move the item after an item bunched up at MAX_POSITION3241 when there is no space3242 can move the item after an item at MAX_POSITION3243 moves items correctly3244 leap-frogging3245 rebalances after STEPS jumps3246 #move_to_start3247 places items at most IDEAL_DISTANCE from the start when the range is open3248 moves item to the end3249 positions the item at MIN_POSITION when there is only one space left3250 rebalances when there is already an item at the MIN_POSITION3251 deals with a run of elements at the start3252 #move_to_end3253 places items at most IDEAL_DISTANCE from the start when the range is open3254 moves item to the end3255 positions the item at MAX_POSITION when there is only one space left3256 rebalances when there is already an item at the MAX_POSITION3257 deals with a run of elements at the end3258 #move_between3259 positions item between two other3260 positions item between on top3261 positions item between to end3262 positions items even when after and before positions are the same3263 positions item in the middle of other two if distance is big enough3264 positions item closer to the middle if we are at the very top3265 positions item closer to the middle if we are at the very bottom3266 positions item in the middle of other two3267 positions item right if we pass non-sequential parameters3268 avoids N+1 queries when rebalancing other items3269 the two items are next to each other3270 behaves like moves item between3271 moves the middle item to between left and right3272 there is no space3273 behaves like moves item between3274 moves the middle item to between left and right3275 there is a bunch of items3276 handles bunches correctly3277 behaves like moves item between3278 moves the middle item to between left and right3279 relations3280 is expected to belong to project required: false3281 is expected to belong to issue required: false3282 is expected to have many actions3283 is expected to have many versions3284 is expected to have many authors3285 is expected to have many notes dependent => delete_all3286 is expected to have many user_mentions3287 #authors3288 returns unique version authors3289 validations3290 is expected to be valid3291 is expected to validate that :project cannot be empty/falsy3292 is expected to validate that :issue cannot be empty/falsy3293 is expected to validate that :filename cannot be empty/falsy3294 is expected to validate that the length of :filename is at most 2553295 is expected to validate that :filename is case-sensitively unique within the scope of :issue_id3296 validates that the extension is an image3297 validating files with .svg extension3298 allows .svg files when feature flag is enabled3299 does not allow .svg files when feature flag is disabled3300 scopes3301 .visible_at_version3302 at oldest version3303 finds the first design only3304 at version 23305 finds the first and second designs3306 at latest version3307 finds designs3308 when the argument is nil3309 finds all undeleted designs3310 one of the designs was deleted before the given version3311 is not returned3312 a re-created history3313 is returned, though other deleted events are not3314 dead or alive3315 can establish the history at any point3316 .ordered3317 sorts by relative position and ID in ascending order3318 .in_creation_order3319 sorts by ID in ascending order3320 .with_filename3321 returns correct design when passed a single filename3322 returns correct designs when passed an Array of filenames3323 .on_issue3324 returns correct designs when passed a single issue3325 returns correct designs when passed an Array of issues3326 .current3327 returns just the undeleted designs3328 .build_full_path3329 builds the full path for a design3330 #visible_in?3331 tells us when a design is visible3332 #to_ability_name3333 is expected to eq "design"3334 #status3335 the design is new3336 is expected to have attributes {:status => :new}3337 the design is current3338 is expected to have attributes {:status => :current}3339 the design has been deleted3340 is expected to have attributes {:status => :deleted}3341 #deleted?3342 the design is new3343 is falsy3344 the design is current3345 is falsy3346 the design has been deleted3347 is truthy3348 the design has been deleted, but was then re-created3349 is falsy3350 #participants3351 is expected to be empty3352 when participants can read the project3353 is expected to contain exactly #<User id:1236 @user643>, #<User id:1237 @user644>, and #<User id:1238 @user645>3354 #new_design?3355 is false when there are versions3356 is true when there are no versions3357 is false for deleted designs3358 does not cause extra queries when actions are loaded3359 implicitly caches values3360 queries again when the clear_version_cache trigger has been called3361 causes a single query when there versions are not loaded3362 #full_path3363 builds the full path for a design3364 #diff_refs3365 has no diff ref if new3366 there are several versions3367 builds diff refs based on the first commit and it's for the design3368 there is just one version3369 builds diff refs based on the empty tree if there was only one version3370 #repository3371 is a design repository3372 #note_etag_key3373 returns a correct etag key3374 #user_notes_count3375 returns a count of user-generated notes3376 #after_note_changed3377 calls #delete_cache on DesignUserNotesCountService for non-system notes3378 .for_reference3379 avoids extra queries when calling to_reference3380 #to_reference3381 when nil argument3382 uses the simple format3383 when full is true3384 returns complete path to the issue3385 when full is false3386 returns complete path to the issue3387 when same project argument3388 returns bare reference3389 reference_pattern3390 is nil3391 link_reference_pattern3392 is not nil3393 does not match the designs tab3394 intentionally ignores filenames with any special character3395 ext: "png"3396 matches the URL3397 the file is all upper case3398 extracts the encoded filename3399 ext: "PNG"3400 matches the URL3401 the file is all upper case3402 extracts the encoded filename3403 ext: "jpg"3404 matches the URL3405 the file is all upper case3406 extracts the encoded filename3407 ext: "JPG"3408 matches the URL3409 the file is all upper case3410 extracts the encoded filename3411 ext: "jpeg"3412 matches the URL3413 the file is all upper case3414 extracts the encoded filename3415 ext: "JPEG"3416 matches the URL3417 the file is all upper case3418 extracts the encoded filename3419 ext: "gif"3420 matches the URL3421 the file is all upper case3422 extracts the encoded filename3423 ext: "GIF"3424 matches the URL3425 the file is all upper case3426 extracts the encoded filename3427 ext: "bmp"3428 matches the URL3429 the file is all upper case3430 extracts the encoded filename3431 ext: "BMP"3432 matches the URL3433 the file is all upper case3434 extracts the encoded filename3435 ext: "tiff"3436 matches the URL3437 the file is all upper case3438 extracts the encoded filename3439 ext: "TIFF"3440 matches the URL3441 the file is all upper case3442 extracts the encoded filename3443 ext: "ico"3444 matches the URL3445 the file is all upper case3446 extracts the encoded filename3447 ext: "ICO"3448 matches the URL3449 the file is all upper case3450 extracts the encoded filename3451 ext: "webp"3452 matches the URL3453 the file is all upper case3454 extracts the encoded filename3455 ext: "WEBP"3456 matches the URL3457 the file is all upper case3458 extracts the encoded filename3459 ext: "svg"3460 matches the URL3461 the file is all upper case3462 extracts the encoded filename3463 ext: "SVG"3464 matches the URL3465 the file is all upper case3466 extracts the encoded filename3467 .by_issue_id_and_filename3468 behaves like a where_composite scope3469 we pass an empty array3470 returns a null relation3471 we pass nil3472 returns a null relation3473 we pass a singleton composite id3474 finds the first result3475 we pass group of ids3476 finds all the results3477 performance3478 is not O(N)3479Gitlab::Asciidoc3480 without project3481 converts the input using Asciidoctor and default options3482 with asciidoc_opts3483 merges the options with default ones3484 with requested path3485 ignores {docname} when not available3486 sets {docname} for root3487 sets {docname} for just a filename3488 sets {docname} for a directory3489 sets {docname} for a complete path3490 XSS3491 does not convert dangerous link with extra attribute into HTML3492 does not convert dangerous link with unsafe scheme into HTML3493 does not convert dangerous image with onerror into HTML3494asciidoctor: WARNING: <stdin>: line 1: unterminated listing block3495 does not convert dangerous fenced code with inline script into HTML3496 does not allow locked attributes to be overridden3497 images3498 does lazy load and link image3499 does not automatically link image if link is explicitly defined3500 with admonition3501 preserves classes3502 with passthrough3503 removes non heading ids3504 removes non footnote def ids3505 removes non footnote ref ids3506 with footnotes3507 preserves ids and links3508 with section anchors3509 preserves ids and links3510 with xrefs3511 preserves ids3512 with checklist3513 preserves classes3514 with marks3515 preserves classes3516 with fenced block3517 highlights syntax3518 with listing block3519 highlights syntax3520 with stem block3521 does not apply syntax highlighting3522 external links3523 adds the `rel` attribute to the link3524 LaTex code3525 adds class js-render-math to the output3526 outfilesuffix3527 defaults to adoc3528 with mermaid diagrams3529 adds class js-render-mermaid to the output3530 applies subs in diagram block3531 with Kroki enabled3532 converts a graphviz diagram to image3533 does not convert a blockdiag diagram to image3534 does not allow kroki-plantuml-include to be overridden3535 does not allow kroki-server-url to be overridden3536 with Kroki and BlockDiag (additional format) enabled3537 converts a blockdiag diagram to image3538 with project3539 include directive3540 cyclic imports3541 completes successfully3542 with path to non-existing file3543 renders Unresolved directive placeholder3544 with path to a binary file3545 does not read the blob3546 renders Unresolved directive placeholder3547 with path to file in external storage3548 does not read the blob3549 renders Unresolved directive placeholder3550 with path to a textual file3551 when requested path is a file in the repo3552 the file is specified by absolute path3553 includes content of the file3554 the file is specified by relative path3555 includes content of the file3556 the file is specified by relative path with leading ./3557 includes content of the file3558 the file is specified by relative path to a file up one directory3559 includes content of the file3560 the file is specified by relative path for a file up multiple directories3561 includes content of the file3562 without a commit (only ref)3563 the file is specified by absolute path3564 includes content of the file3565 the file is specified by relative path3566 includes content of the file3567 the file is specified by relative path with leading ./3568 includes content of the file3569 the file is specified by relative path to a file up one directory3570 includes content of the file3571 the file is specified by relative path for a file up multiple directories3572 includes content of the file3573 when requested path is a directory in the repo3574 the file is specified by absolute path3575 includes content of the file3576 the file is specified by relative path3577 includes content of the file3578 the file is specified by relative path with leading ./3579 includes content of the file3580 the file is specified by relative path to a file up one directory3581 includes content of the file3582 the file is specified by relative path for a file up multiple directories3583 includes content of the file3584 without a commit (only ref)3585 the file is specified by absolute path3586 includes content of the file3587 the file is specified by relative path3588 includes content of the file3589 the file is specified by relative path with leading ./3590 includes content of the file3591 the file is specified by relative path to a file up one directory3592 includes content of the file3593 the file is specified by relative path for a file up multiple directories3594 includes content of the file3595 when repository is passed into the context3596 when the file exists3597 is expected to include "<p>Content from wiki</p>"3598 when the file does not exist3599 is expected to include "[ERROR: include::wiki_file.adoc[] - unresolved directive]"3600 recursive includes with relative paths3601 includes content of the included files recursively3602AttachmentUploader3603 behaves like builds correct paths3604 #store_dir3605 behaves like matches the method pattern3606 is expected to match /uploads\/-\/system\/note\/attachment\//3607 #cache_dir3608 behaves like matches the method pattern3609 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3610 #work_dir3611 behaves like matches the method pattern3612 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3613 #upload_path3614 behaves like matches the method pattern3615 is expected to match /uploads\/-\/system\/note\/attachment\//3616 #relative_path3617 is relative3618 .absolute_path3619 behaves like matches the method pattern3620 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/note\/attachment\//3621 .base_dir3622 behaves like matches the method pattern3623 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3624 path traversal exploits3625 throws an exception3626 object_store is REMOTE3627 behaves like builds correct paths3628 #store_dir3629 behaves like matches the method pattern3630 is expected to match /note\/attachment\//3631 #cache_dir3632 behaves like matches the method pattern3633 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3634 #work_dir3635 behaves like matches the method pattern3636 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3637 #upload_path3638 behaves like matches the method pattern3639 is expected to match /note\/attachment\//3640 #relative_path3641 is relative3642 .absolute_path3643 behaves like matches the method pattern3644 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3645 .base_dir3646 behaves like matches the method pattern3647 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3648 path traversal exploits3649 throws an exception3650 #migrate!3651 behaves like migrates3652 returns corresponding file type3653 does nothing when migrating to the current store3654 migrate to the specified store3655 removes the original file after the migration3656 can access to the original file during migration3657 when migrate! is not occupied by another process3658 executes migrate!3659 executes use_file3660 when migrate! is occupied by another process3661 does not execute migrate!3662 does not execute use_file3663 migration is unsuccessful3664 when the store is not supported3665 does not update the object_store3666 does not delete the original file3667 upon a fog failure3668 does not update the object_store3669 does not delete the original file3670 upon a database failure3671 does not update the object_store3672 does not delete the original file3673 behaves like migrates3674 returns corresponding file type3675 does nothing when migrating to the current store3676 migrate to the specified store3677 removes the original file after the migration3678 can access to the original file during migration3679 when migrate! is not occupied by another process3680 executes migrate!3681 executes use_file3682 when migrate! is occupied by another process3683 does not execute migrate!3684 does not execute use_file3685 migration is unsuccessful3686 when the store is not supported3687 does not update the object_store3688 does not delete the original file3689 upon a fog failure3690 does not update the object_store3691 does not delete the original file3692 upon a database failure3693 does not update the object_store3694 does not delete the original file3695WikiPagePolicy3696 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13697 grants permission3698 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13699 grants permission3700 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13701 grants permission3702 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13703 grants permission3704 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13705 grants permission3706 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13707 grants permission3708 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13709 grants permission3710 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03711 grants permission3712 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13713 grants permission3714 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13715 grants permission3716 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03717 grants permission3718 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03719 grants permission3720 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03721 grants permission3722 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03723 grants permission3724 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03725 grants permission3726 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03727 grants permission3728 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13729 grants permission3730 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13731 grants permission3732 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13733 grants permission3734 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13735 grants permission3736 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13737 grants permission3738 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03739 grants permission3740 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13741 grants permission3742 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03743 grants permission3744 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13745 grants permission3746 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13747 grants permission3748 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03749 grants permission3750 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03751 grants permission3752 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03753 grants permission3754 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03755 grants permission3756 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03757 grants permission3758 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03759 grants permission3760 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13761 grants permission3762 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03763 grants permission3764 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13765 grants permission3766 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13767 grants permission3768 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03769 grants permission3770 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03771 grants permission3772 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03773 grants permission3774 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03775 grants permission3776 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03777 grants permission3778 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03779 grants permission3780Gitlab::SidekiqMiddleware::ServerMetrics3781 behaves like metrics middleware with worker attribution3782 when workers are not attributed3783 behaves like a metrics middleware3784 with mocked prometheus3785 .initialize_process_metrics3786 sets concurrency metrics3787 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3788 when the sidekiq_job_completion_metric_initialize feature flag is disabled3789 sets the concurrency metric3790 does not initialize sidekiq_jobs_completion_seconds3791 #call3792 yields block3793 calls BackgroundTransaction3794 sets queue specific metrics3795 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3796 sets the thread name if it was nil3797 when job_duration is not available3798 does not set the queue_duration_seconds histogram3799 when error is raised3800 sets sidekiq_jobs_failed_total and reraises3801 when job is retried3802 sets sidekiq_jobs_retried_total metric3803 with prometheus integrated3804 #call3805 yields block3806 when error is raised3807 sets sidekiq_jobs_failed_total and reraises3808 when a worker is wrapped into ActiveJob3809 behaves like a metrics middleware3810 with mocked prometheus3811 .initialize_process_metrics3812 sets concurrency metrics3813 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3814 when the sidekiq_job_completion_metric_initialize feature flag is disabled3815 sets the concurrency metric3816 does not initialize sidekiq_jobs_completion_seconds3817 #call3818 yields block3819 calls BackgroundTransaction3820 sets queue specific metrics3821 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3822 sets the thread name if it was nil3823 when job_duration is not available3824 does not set the queue_duration_seconds histogram3825 when error is raised3826 sets sidekiq_jobs_failed_total and reraises3827 when job is retried3828 sets sidekiq_jobs_retried_total metric3829 with prometheus integrated3830 #call3831 yields block3832 when error is raised3833 sets sidekiq_jobs_failed_total and reraises3834 when workers are attributed3835 high urgency3836 behaves like a metrics middleware3837 with mocked prometheus3838 .initialize_process_metrics3839 sets concurrency metrics3840 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3841 when the sidekiq_job_completion_metric_initialize feature flag is disabled3842 sets the concurrency metric3843 does not initialize sidekiq_jobs_completion_seconds3844 #call3845 yields block3846 calls BackgroundTransaction3847 sets queue specific metrics3848 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3849 sets the thread name if it was nil3850 when job_duration is not available3851 does not set the queue_duration_seconds histogram3852 when error is raised3853 sets sidekiq_jobs_failed_total and reraises3854 when job is retried3855 sets sidekiq_jobs_retried_total metric3856 with prometheus integrated3857 #call3858 yields block3859 when error is raised3860 sets sidekiq_jobs_failed_total and reraises3861 no urgency3862 behaves like a metrics middleware3863 with mocked prometheus3864 .initialize_process_metrics3865 sets concurrency metrics3866 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3867 when the sidekiq_job_completion_metric_initialize feature flag is disabled3868 sets the concurrency metric3869 does not initialize sidekiq_jobs_completion_seconds3870 #call3871 yields block3872 calls BackgroundTransaction3873 sets queue specific metrics3874 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3875 sets the thread name if it was nil3876 when job_duration is not available3877 does not set the queue_duration_seconds histogram3878 when error is raised3879 sets sidekiq_jobs_failed_total and reraises3880 when job is retried3881 sets sidekiq_jobs_retried_total metric3882 with prometheus integrated3883 #call3884 yields block3885 when error is raised3886 sets sidekiq_jobs_failed_total and reraises3887 external dependencies3888 behaves like a metrics middleware3889 with mocked prometheus3890 .initialize_process_metrics3891 sets concurrency metrics3892 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3893 when the sidekiq_job_completion_metric_initialize feature flag is disabled3894 sets the concurrency metric3895 does not initialize sidekiq_jobs_completion_seconds3896 #call3897 yields block3898 calls BackgroundTransaction3899 sets queue specific metrics3900 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3901 sets the thread name if it was nil3902 when job_duration is not available3903 does not set the queue_duration_seconds histogram3904 when error is raised3905 sets sidekiq_jobs_failed_total and reraises3906 when job is retried3907 sets sidekiq_jobs_retried_total metric3908 with prometheus integrated3909 #call3910 yields block3911 when error is raised3912 sets sidekiq_jobs_failed_total and reraises3913 cpu boundary3914 behaves like a metrics middleware3915 with mocked prometheus3916 .initialize_process_metrics3917 sets concurrency metrics3918 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3919 when the sidekiq_job_completion_metric_initialize feature flag is disabled3920 sets the concurrency metric3921 does not initialize sidekiq_jobs_completion_seconds3922 #call3923 yields block3924 calls BackgroundTransaction3925 sets queue specific metrics3926 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3927 sets the thread name if it was nil3928 when job_duration is not available3929 does not set the queue_duration_seconds histogram3930 when error is raised3931 sets sidekiq_jobs_failed_total and reraises3932 when job is retried3933 sets sidekiq_jobs_retried_total metric3934 with prometheus integrated3935 #call3936 yields block3937 when error is raised3938 sets sidekiq_jobs_failed_total and reraises3939 memory boundary3940 behaves like a metrics middleware3941 with mocked prometheus3942 .initialize_process_metrics3943 sets concurrency metrics3944 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3945 when the sidekiq_job_completion_metric_initialize feature flag is disabled3946 sets the concurrency metric3947 does not initialize sidekiq_jobs_completion_seconds3948 #call3949 yields block3950 calls BackgroundTransaction3951 sets queue specific metrics3952 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3953 sets the thread name if it was nil3954 when job_duration is not available3955 does not set the queue_duration_seconds histogram3956 when error is raised3957 sets sidekiq_jobs_failed_total and reraises3958 when job is retried3959 sets sidekiq_jobs_retried_total metric3960 with prometheus integrated3961 #call3962 yields block3963 when error is raised3964 sets sidekiq_jobs_failed_total and reraises3965 feature category3966 behaves like a metrics middleware3967 with mocked prometheus3968 .initialize_process_metrics3969 sets concurrency metrics3970 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3971 when the sidekiq_job_completion_metric_initialize feature flag is disabled3972 sets the concurrency metric3973 does not initialize sidekiq_jobs_completion_seconds3974 #call3975 yields block3976 calls BackgroundTransaction3977 sets queue specific metrics3978 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3979 sets the thread name if it was nil3980 when job_duration is not available3981 does not set the queue_duration_seconds histogram3982 when error is raised3983 sets sidekiq_jobs_failed_total and reraises3984 when job is retried3985 sets sidekiq_jobs_retried_total metric3986 with prometheus integrated3987 #call3988 yields block3989 when error is raised3990 sets sidekiq_jobs_failed_total and reraises3991 combined3992 behaves like a metrics middleware3993 with mocked prometheus3994 .initialize_process_metrics3995 sets concurrency metrics3996 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3997 when the sidekiq_job_completion_metric_initialize feature flag is disabled3998 sets the concurrency metric3999 does not initialize sidekiq_jobs_completion_seconds4000 #call4001 yields block4002 calls BackgroundTransaction4003 sets queue specific metrics4004 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics4005 sets the thread name if it was nil4006 when job_duration is not available4007 does not set the queue_duration_seconds histogram4008 when error is raised4009 sets sidekiq_jobs_failed_total and reraises4010 when job is retried4011 sets sidekiq_jobs_retried_total metric4012 with prometheus integrated4013 #call4014 yields block4015 when error is raised4016 sets sidekiq_jobs_failed_total and reraises4017 DB load balancing4018 #call4019 when worker declares data consistency4020 increments load balancing counter with defined data consistency4021 when worker does not declare data consistency4022 increments load balancing counter with default data consistency4023 feature attribution4024 when a worker has a feature category4025 uses that category for metrics4026 when a worker does not have a feature category4027 uses the category from the context for metrics4028Projects::UnlinkForkService4029 removes the link to the fork network4030 refreshes the forks count cache of the source project4031 with opened merge request on the source project4032 close all pending merge requests4033 does not close merge requests for the project being unlinked4034 when the original project was deleted4035 does not fail when the original project is deleted4036 when given project is a source of forks4037 removes its link to the fork network and updates direct network members4038 refreshes the forks count cache of the given project4039 with opened merge requests from fork back to root project4040 closes all pending merge requests4041 does not close merge requests that do not come from the project being unlinked4042 and is node with a parent4043 refreshes the forks count cache of the parent and the given project4044 removes its link to the fork network and updates direct network members4045 with opened merge requests from and to given project4046 close all pending merge requests4047 does not close merge requests which do not come from the project being unlinked4048 a project with pool repository4049 when unlinked leaves pool repository4050 when given project is not part of a fork network4051 does not raise errors4052GroupDescendantsFinder4053 #has_children?4054 is true when there are projects4055 when there are subgroups4056 is true when there are projects4057 #execute4058 includes projects4059 does not include archived projects4060 does not include projects aimed for deletion4061 sorts elements by name as default4062 does not include projects shared with the group4063 when archived is `true`4064 includes archived projects4065 when archived is `only`4066 includes only archived projects4067 with a filter4068 includes only projects matching the filter4069 sorting by name4070 sorts elements by name4071 with nested groups4072 sorts elements by name4073 with shared groups4074 without common ancestor4075 is expected to be empty4076 with common ancestor4077 querying under the common ancestor4078 is expected to be empty4079 querying the common ancestor4080 contains shared subgroups4081 with nested groups4082 #execute4083 contains projects and subgroups4084 does not include subgroups the user does not have access to4085 only includes public groups when no user is given4086 when archived is `true`4087 includes archived projects in the count of subgroups4088 with a filter4089 behaves like filter examples4090 contains only matching projects and subgroups4091 does not include subgroups the user does not have access to4092 with matching children4093 includes a group that has a subgroup matching the query and its parent4094 includes the parent of a matching project4095 does not include the parent itself4096 with a small page size4097 contains all the ancestors of a matching subgroup regardless the page size4098 when feature flag :linear_group_descendants_finder_upto is disabled4099 behaves like filter examples4100 contains only matching projects and subgroups4101 does not include subgroups the user does not have access to4102 with matching children4103 includes a group that has a subgroup matching the query and its parent4104 includes the parent of a matching project4105 does not include the parent itself4106 with a small page size4107 contains all the ancestors of a matching subgroup regardless the page size4108DesignManagement::CopyDesignCollection::CopyService4109 returns an error response4110 when user has permission to read the design collection4111 returns an error response4112 when the user also has permission to admin the target issue4113 returns an error response4114 when the target design collection has been queued4115 returns an error response4116 when design collection has designs4117 returns a success response4118 creates a design repository for the target project4119 copies the designs correctly4120 copies the design versions correctly4121 copies the design actions correctly4122 copies design notes correctly4123 links the LfsObjects4124 copies the Git repository data4125 creates a default branch if none previously existed4126 does not create default branch when one exists4127 leaves the design collection in the correct copy state4128 when target issue already has designs4129 returns an error response4130 when target project already has designs4131 sets IIDs for new designs above existing ones4132 does not allow for IID collisions4133 when the target project already has a design repository4134 returns a success response4135 rollback4136 returns an error response4137 rollsback all PostgreSQL data created4138 does not alter master branch4139 sets the design collection copy state4140 Alert if schema changes4141 is expected to contain exactly "id", "project_id", "issue_id", "filename", "relative_position", and "iid"4142 is expected to contain exactly "id", "design_id", "version_id", "event", and "image_v432x230"4143 is expected to contain exactly "id", "sha", "issue_id", "created_at", and "author_id"4144Gitlab::GithubImport::UserFinder4145 #author_id_for4146 returns the user ID for the author of an object4147 returns the ID of the project creator if no user ID could be found4148 returns the ID of the ghost user when the object has no user4149 returns the ID of the ghost user when the given object is nil4150 #assignee_id_for4151 returns the user ID for the assignee of an issuable4152 returns nil if the issuable does not have an assignee4153 #user_id_for4154 returns the user ID for the given user4155 does not fail with empty input4156 #find4157 without a cache4158 finds a GitLab user for a GitHub user ID4159 finds a GitLab user for a GitHub Email address4160 with a cache4161 returns the cached user ID4162 does not query the database if the cache key exists but is empty4163 #find_from_cache4164 retrieves a GitLab user ID for a GitHub user ID4165 retrieves a GitLab user ID for a GitHub Email address4166 does not query the cache for an Email address when none is given4167 #find_id_from_database4168 returns the GitLab user ID for a GitHub user ID4169 returns the GitLab user ID for a GitHub Email address4170 #email_for_github_username4171 when an Email address is cached4172 reads the Email address from the cache4173 when an Email address is not cached4174 retrieves the Email address from the GitHub API4175 caches the Email address when an Email address is available4176 returns nil if the user does not exist4177 shortens the timeout for Email address in cache when an Email address is private/nil from GitHub4178 #cached_id_for_github_id4179 reads a user ID from the cache4180 reads a non existing cache key4181 #cached_id_for_github_email4182 reads a user ID from the cache4183 reads a non existing cache key4184 #id_for_github_id4185 queries and caches the user ID for a given GitHub ID4186 caches a nil value if no ID could be found4187 when importing from github enterprise4188 does not look up the user by external id4189 #id_for_github_email4190 queries and caches the user ID for a given Email address4191 caches a nil value if no ID could be found4192 #query_id_for_github_id4193 returns the ID of the user for the given GitHub user ID4194 returns nil when no user ID could be found4195 #query_id_for_github_email4196 returns the ID of the user for the given Email address4197 returns nil if no user ID could be found4198 #read_id_from_cache4199 reads an ID from the cache4200 reads a cache key with an empty value4201 reads a cache key that does not exist4202Gitlab::ImportExport4203Elements checked:4204{:hashes=>468, :arrays=>{:direct=>0, :pairwise=>189, :fuzzy=>7}, :values=>2785}4205 yields the initial tree when importing and exporting it again4206NotificationRecipient4207 #notifiable?4208 when emails are disabled4209 returns false if group disabled4210 returns false if project disabled4211 when emails are enabled4212 returns true if group enabled4213 returns true if project enabled4214 #has_access?4215 user cannot read cross project4216 returns false4217 user cannot read build4218 returns false4219 user cannot read commit4220 returns false4221 target has no policy4222 returns true4223 #notification_setting4224 for child groups4225 when notification setting is global4226 considers notification setting from the first parent without global setting4227 when notification setting is not global4228 considers notification setting from lowest group member in hierarchy4229 #suitable_notification_level?4230 when notification level is mention4231 when type is mention4232 returns true4233 when type is not mention4234 returns false4235 when notification level is participating4236 when type is participating4237 returns true4238 when type is mention4239 returns true4240 with custom action4241 when action is failed_pipeline4242 returns true4243 when action is fixed_pipeline4244 returns true4245 when action is not fixed_pipeline or failed_pipeline4246 returns false4247 when notification level is custom4248 when type is participating4249 with custom event enabled4250 returns true4251 without custom event enabled4252 returns true4253 when type is mention4254 with custom event enabled4255 returns true4256 without custom event enabled4257 returns true4258 when type is watch4259 with custom event enabled4260 returns true4261 without custom event enabled4262 returns false4263 when custom_action is fixed_pipeline and success_pipeline event is enabled4264 returns true4265 with merge_when_pipeline_succeeds4266 custom event enabled4267 returns true4268 custom event disabled4269 returns false4270 when notification level is watch4271 when type is watch4272 without excluded watcher events4273 returns true4274 with excluded watcher events4275 returns false4276 when type is not watch4277 without excluded watcher events4278 returns true4279 with excluded watcher events4280 returns true4281SystemNotes::MergeRequestsService4282 .merge_when_pipeline_succeeds4283 posts the 'merge when pipeline succeeds' system note4284 behaves like a system note4285 has the correct attributes4286 .cancel_merge_when_pipeline_succeeds4287 posts the 'merge when pipeline succeeds' system note4288 behaves like a system note4289 has the correct attributes4290 .abort_merge_when_pipeline_succeeds4291 posts the 'merge when pipeline succeeds' system note4292 behaves like a system note4293 has the correct attributes4294 .handle_merge_request_draft4295 adding draft note4296 sets the note text4297 behaves like a system note4298 has the correct attributes4299 removing draft note4300 sets the note text4301 behaves like a system note4302 has the correct attributes4303 .add_merge_request_draft_from_commit4304 posts the 'marked this merge request as draft from commit' system note4305 behaves like a system note4306 has the correct attributes4307 .resolve_all_discussions4308 sets the note text4309 behaves like a system note4310 has the correct attributes4311 .diff_discussion_outdated4312 behaves like a system note4313 has the correct attributes4314 when the change_position is valid for the discussion4315 creates a new note in the discussion4316 links to the diff in the system note4317 discussion is on an image4318 links to the diff in the system note4319 when the change_position does not point to a valid version4320 creates a new note in the discussion4321 does not create a link4322 .change_branch4323 behaves like a system note4324 has the correct attributes4325 when target branch name changed4326 on update4327 sets the note text4328 on delete4329 sets the note text4330 for invalid event_type4331 raises exception4332 .change_branch_presence4333 behaves like a system note4334 has the correct attributes4335 when source branch deleted4336 sets the note text4337 .new_issue_branch4338 branch_project is set4339 behaves like a system note for new issue branch4340 behaves like a system note4341 has the correct attributes4342 when a branch is created from the new branch button4343 sets the note text4344 branch_project is not set4345 behaves like a system note for new issue branch4346 behaves like a system note4347 has the correct attributes4348 when a branch is created from the new branch button4349 sets the note text4350 .new_merge_request4351 sets the new merge request note text4352 behaves like a system note4353 has the correct attributes4354 .picked_into_branch4355 posts the 'picked merge request' system note4356 links the merge request and the cherry-pick commit4357 behaves like a system note4358 has the correct attributes4359 #approve_mr4360 behaves like a system note4361 has the correct attributes4362 when merge request approved4363 sets the note text4364Banzai::Pipeline::GfmPipeline4365 integration between parsing regular and external issue references4366 when internal issue tracker is enabled4367 executes :each_node only once for first reference filter4368 allows to use long external reference syntax for Redmine4369 parses cross-project references to regular issues4370 when shorthand pattern #ISSUE_ID is used4371 links an internal issues and keep updated nodes in result[:reference_filter_nodes]4372 when shorthand pattern #ISSUE_ID is used4373 links an internal issue if it exists4374 does not link any issue if it does not exist on GitLab4375 when internal issue tracker is disabled4376 allows to use shorthand external reference syntax for Redmine4377 allows to use long external reference syntax for Redmine4378 parses cross-project references to regular issues4379 markdown link or image urls having spaces4380 rewrites links with spaces in url4381 rewrites images with spaces in url4382 sanitizes the fixed link4383 emoji in references4384 renders a label reference with emoji inside4385 renders a milestone reference with emoji inside4386 asset proxy4387 replaces a lazy loaded img src4388 autolinks images to the proxy4389 properly adds tooltips to link for IDN images4390Gitlab::Email::Message::RepositoryPush4391 new commits have been pushed to repository4392 #project4393 is expected to eq #<Project id:1105 my_group/project1280>>4394 is expected to be an instance of Project4395 #project_namespace4396 is expected to eq #<Group id:3589 @my_group>4397 is expected to be a kind of Namespace(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_a...abled: boolean, allow_descendants_override_disabled_shared_runners: boolean, traversal_ids: integer)4398 #project_name_with_namespace4399 is expected to eq "my_group / project1284"4400 #author4401 is expected to eq #<User id:1613 @user782>4402 is expected to be an instance of User4403 #author_name4404 is expected to eq "Author"4405 #commits4406 is expected to be a kind of Array4407 is expected to all be an instance of Commit4408 #diffs4409 is expected to all be an instance of Gitlab::Diff::File4410 #diffs_count4411 is expected to eq 94412 #compare4413 is expected to be an instance of Compare4414 #compare_timeout4415 is expected to eq false4416 #reverse_compare?4417 is expected to eq false4418 #disable_diffs?4419 is expected to eq false4420 #send_from_committer_email?4421 is expected to eq true4422 #action_name4423 is expected to eq "pushed to"4424 #ref_name4425 is expected to eq "master"4426 #ref_type4427 is expected to eq "branch"4428 #target_url4429 is expected to include "compare"4430 is expected to include "2f63565e7aac07bcdadb654e253078b727143ec4"4431 is expected to include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4432 #subject4433 is expected to include "[Git][my_group/project1303]"4434 is expected to include "6 commits"4435 is expected to include "Ruby files modified"4436Clusters::Applications::CheckInstallationProgressService#execute4437 when application is updating4438 when installation raises a Kubeclient::HttpError4439 logs into kubernetes.log and Sentry4440 shows the response code from the error4441 behaves like a not yet terminated installation4442 when phase is Pending4443 when not timed_out4444 reschedule a new check4445 behaves like a not yet terminated installation4446 when phase is Running4447 when not timed_out4448 reschedule a new check4449 behaves like a not yet terminated installation4450 when phase is Unknown4451 when not timed_out4452 reschedule a new check4453 when installation POD succeeded4454 removes the installation POD4455 make the application installed4456 when installation POD failed4457 make the application errored4458 when timed out4459 make the application errored4460 when application is installing4461 when installation raises a Kubeclient::HttpError4462 logs into kubernetes.log and Sentry4463 shows the response code from the error4464 behaves like a not yet terminated installation4465 when phase is Pending4466 when not timed_out4467 reschedule a new check4468 behaves like a not yet terminated installation4469 when phase is Running4470 when not timed_out4471 reschedule a new check4472 behaves like a not yet terminated installation4473 when phase is Unknown4474 when not timed_out4475 reschedule a new check4476 when installation POD succeeded4477 removes the installation POD4478 make the application installed4479 tracks application install4480 when installation POD failed4481 make the application errored4482 when timed out4483 make the application errored4484Packages::PackageFile4485 behaves like having unique enum values4486 has unique values in "status"4487 behaves like destructible4488 .next_pending_destruction4489 returns the oldest item pending destruction based on updated_at4490 returns the oldest item pending destruction based on created_at4491 relationships4492 is expected to belong to package required: false4493 is expected to have one conan_file_metadatum4494 is expected to have many package_file_build_infos inverse_of => package_file4495 is expected to have one debian_file_metadatum class_name => Packages::Debian::FileMetadatum inverse_of => package_file4496 is expected to have one helm_file_metadatum class_name => Packages::Helm::FileMetadatum inverse_of => package_file4497 validations4498 is expected to validate that :package cannot be empty/falsy4499 with package filenames4500 .with_file_name4501 is expected to contain exactly #<Packages::PackageFile id: 378, package_id: 266, created_at: "2022-02-04 17:18:21.673188884 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4502 .with_file_name_like4503 is expected to contain exactly #<Packages::PackageFile id: 378, package_id: 266, created_at: "2022-02-04 17:18:21.673188884 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4504 .with_format4505 is expected to contain exactly #<Packages::PackageFile id: 380, package_id: 268, created_at: "2022-02-04 17:18:22.327870660 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4506 updating project statistics4507 when the package file has an explicit size4508 behaves like UpdateProjectStatistics4509 is expected to be a new record4510 when the package file does not have a size4511 behaves like UpdateProjectStatistics4512 is expected to be a new record4513 .for_package_ids4514 returns matching packages4515 .with_conan_package_reference4516 returns matching packages4517 .for_rubygem_with_file_name4518 returns the matching gem file only for ruby packages4519 Debian scopes4520 #with_debian_file_type4521 is expected to contain exactly #<Packages::PackageFile id: 387, package_id: 269, created_at: "2022-02-04 17:18:22.915403000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4522 #with_debian_component_name4523 is expected to contain exactly #<Packages::PackageFile id: 402, package_id: 269, created_at: "2022-02-04 17:18:26.278295666 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4524 #with_debian_architecture_name4525 is expected to contain exactly #<Packages::PackageFile id: 403, package_id: 269, created_at: "2022-02-04 17:18:26.302682814 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4526 .for_helm_with_channel4527 returns the matching file only for Helm packages4528 with package files pending destruction4529 does not return them4530 with packages_installable_package_files disabled4531 returns them4532 .most_recent!4533 is expected to eq #<Packages::PackageFile id: 387, package_id: 269, created_at: "2022-02-04 17:18:22.915403000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4534 .most_recent_for4535 package_input1: 1, package_input2: 2, package_input3: 3, package_input4: 44536 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4537 package_input1: 1, package_input2: 2, package_input3: 3, package_input4: nil4538 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4539 package_input1: 1, package_input2: 2, package_input3: nil, package_input4: 44540 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4541 package_input1: 1, package_input2: 2, package_input3: nil, package_input4: nil4542 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4543 package_input1: 1, package_input2: nil, package_input3: 3, package_input4: 44544 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4545 package_input1: 1, package_input2: nil, package_input3: 3, package_input4: nil4546 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4547 package_input1: 1, package_input2: nil, package_input3: nil, package_input4: 44548 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4549 package_input1: 1, package_input2: nil, package_input3: nil, package_input4: nil4550 is expected to contain exactly #<Packages::PackageFile id: 411, package_id: 283, created_at: "2022-02-04 17:18:27.412554000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4551 package_input1: nil, package_input2: 2, package_input3: 3, package_input4: 44552 is expected to contain exactly #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4553 package_input1: nil, package_input2: 2, package_input3: 3, package_input4: nil4554 is expected to contain exactly #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4555 package_input1: nil, package_input2: 2, package_input3: nil, package_input4: 44556 is expected to contain exactly #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4557 package_input1: nil, package_input2: 2, package_input3: nil, package_input4: nil4558 is expected to contain exactly #<Packages::PackageFile id: 421, package_id: 284, created_at: "2022-02-04 17:18:28.391815000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4559 package_input1: nil, package_input2: nil, package_input3: 3, package_input4: 44560 is expected to contain exactly #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4561 package_input1: nil, package_input2: nil, package_input3: 3, package_input4: nil4562 is expected to contain exactly #<Packages::PackageFile id: 417, package_id: 285, created_at: "2022-02-04 17:18:28.332134000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4563 package_input1: nil, package_input2: nil, package_input3: nil, package_input4: 44564 is expected to contain exactly #<Packages::PackageFile id: 414, package_id: 286, created_at: "2022-02-04 17:18:28.289782000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>4565 package_input1: nil, package_input2: nil, package_input3: nil, package_input4: nil4566 is expected to contain exactly4567 extra join and extra where4568 returns the most recent package for the selected channel4569 with package files pending destruction4570 does not return them4571 with packages_installable_package_files disabled4572 returns them4573 #pipelines4574 package_file without pipeline4575 is expected to be empty4576 package_file with pipeline4577 is expected to contain exactly #<Ci::Pipeline id: 75, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 58, locked: "artifacts_locked"> and #<Ci::Pipeline id: 76, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 59, locked: "artifacts_locked">4578 #update_file_store callback4579 updates metadata columns4580 update callbacks4581 with object storage disabled4582 behaves like executing the default callback4583 executes the default callback4584 with new_file_path set4585 behaves like executing the default callback4586 executes the default callback4587 with object storage enabled4588 behaves like executing the default callback4589 executes the default callback4590 with new_file_path set4591 executes the move_in_object_storage callback4592 status scopes4593 .installable4594 does not include non-displayable packages4595 .with_status4596 is expected to contain exactly #<Packages::PackageFile id: 435, package_id: 295, created_at: "2022-02-04 17:18:33.347578326 +0000", ...ification_state: 0, verification_started_at: nil, status: "pending_destruction", new_file_path: nil>4597WikiPage::Meta4598 Associations4599 is expected to belong to project required: false4600 is expected to have many slugs4601 is expected to have many events4602 can find slugs4603 Validations4604 is expected to validate that :project_id cannot be empty/falsy4605 is expected to validate that the length of :title is at most 2554606 is expected not to allow :title to be ‹nil›4607 is forbidden to have two records for the same project with the same canonical_slug4608 #canonical_slug4609 can be set on initialization4610 there are no slugs4611 is expected to have attributes {:canonical_slug => (be nil)}4612 we have some non-canonical slugs4613 is expected to have attributes {:canonical_slug => (be nil)}4614 issues at most one query4615 issues no queries if we already know the slug4616 we have a canonical slug4617 has the correct value4618 canonical_slug=4619 the slug is not known to us4620 changes it to the correct value4621 ensures the slug is in the db4622 issues at most N queries4623 issues fewer queries if we already know the current slug4624 the slug is already in the DB (but not canonical)4625 changes it to the correct value4626 ensures the slug is in the db4627 issues at most N queries4628 issues fewer queries if we already know the current slug4629 the slug is already in the DB (and canonical)4630 changes it to the correct value4631 ensures the slug is in the db4632 issues at most N queries4633 issues fewer queries if we already know the current slug4634 the slug is up to date and in the DB4635 changes it to the correct value4636 ensures the slug is in the db4637 issues at most N queries4638 issues fewer queries if we already know the current slug4639 .find_or_create4640 there are problems4641 the slug is too long4642 raises an error4643 a conflicting record exists4644 raises an error4645 the wiki page is not valid4646 raises an error4647 no existing record exists4648 establishes the correct state4649 makes a reasonable number of DB queries4650 the commit happened a day ago4651 establishes the correct state4652 makes a reasonable number of DB queries4653 the last_known_slug is the same as the current slug, as on creation4654 establishes the correct state4655 makes a reasonable number of DB queries4656 a record exists in the DB in the correct state4657 establishes the correct state4658 makes a reasonable number of DB queries4659 a record exists in the DB, but we need to update timestamps4660 establishes the correct state4661 makes a reasonable number of DB queries4662 we need to update the slug, but not the title4663 establishes the correct state4664 makes a reasonable number of DB queries4665 we need to update the title, but not the slug4666 establishes the correct state4667 makes a reasonable number of DB queries4668 we want to change the slug back to a previous version4669 establishes the correct state4670 makes a reasonable number of DB queries4671 we want to change the slug a bunch of times4672 establishes the correct state4673 makes a reasonable number of DB queries4674 we need to update the title and the slug4675 establishes the correct state4676 makes a reasonable number of DB queries4677ProjectAPICompatibility4678 converts build_git_strategy=fetch to build_allow_git_fetch=true4679 converts build_git_strategy=clone to build_allow_git_fetch=false4680 #auto_devops_enabled4681 initial: :missing, final: nil4682 sets the correct value4683 initial: :missing, final: false4684 sets the correct value4685 initial: :missing, final: true4686 sets the correct value4687 initial: nil, final: nil4688 sets the correct value4689 initial: nil, final: false4690 sets the correct value4691 initial: nil, final: true4692 sets the correct value4693 initial: false, final: nil4694 sets the correct value4695 initial: false, final: false4696 sets the correct value4697 initial: false, final: true4698 sets the correct value4699 initial: true, final: nil4700 sets the correct value4701 initial: true, final: false4702 sets the correct value4703 initial: true, final: true4704 sets the correct value4705 #auto_devops_deploy_strategy4706 initial: :missing, final: "continuous"4707 sets the correct value4708 initial: :missing, final: "manual"4709 sets the correct value4710 initial: :missing, final: "timed_incremental"4711 sets the correct value4712 initial: "continuous", final: "continuous"4713 sets the correct value4714 initial: "continuous", final: "manual"4715 sets the correct value4716 initial: "continuous", final: "timed_incremental"4717 sets the correct value4718 initial: "manual", final: "continuous"4719 sets the correct value4720 initial: "manual", final: "manual"4721 sets the correct value4722 initial: "manual", final: "timed_incremental"4723 sets the correct value4724 initial: "timed_incremental", final: "continuous"4725 sets the correct value4726 initial: "timed_incremental", final: "manual"4727 sets the correct value4728 initial: "timed_incremental", final: "timed_incremental"4729 sets the correct value4730Clusters::Applications::CheckUninstallProgressService4731 when application is uninstalling4732 behaves like a not yet terminated installation4733 when phase is Pending4734 when not timed_out4735 reschedule a new check4736 behaves like a not yet terminated installation4737 when phase is Running4738 when not timed_out4739 reschedule a new check4740 behaves like a not yet terminated installation4741 when phase is Unknown4742 when not timed_out4743 reschedule a new check4744 when installation POD succeeded4745 removes the installation POD4746 runs application post_uninstall4747 destroys the application4748 an error occurs while destroying4749 still removes the installation POD4750 makes the application uninstall_errored4751 when installation POD failed4752 make the application errored4753 when timed out4754 make the application errored4755 when installation raises a Kubeclient::HttpError4756 logs into kubernetes.log and Sentry4757 shows the response code from the error4758AlertManagement::Alerts::UpdateService4759 #execute4760 when the current_user is nil4761 behaves like error response4762 has an informative message4763 behaves like does not add a todo4764 is expected not to change `Todo.count`4765 behaves like does not add a system note4766 is expected not to change `Note.count`4767 when current_user does not have permission to update alerts4768 behaves like error response4769 has an informative message4770 behaves like does not add a todo4771 is expected not to change `Todo.count`4772 behaves like does not add a system note4773 is expected not to change `Note.count`4774 when no parameters are included4775 behaves like error response4776 has an informative message4777 behaves like does not add a todo4778 is expected not to change `Todo.count`4779 behaves like does not add a system note4780 is expected not to change `Note.count`4781 when an error occurs during update4782 behaves like error response4783 has an informative message4784 behaves like does not add a todo4785 is expected not to change `Todo.count`4786 behaves like does not add a system note4787 is expected not to change `Note.count`4788 when a model attribute is included without assignees4789 behaves like title update4790 updates the attribute4791 behaves like does not add a todo4792 is expected not to change `Todo.count`4793 behaves like does not add a system note4794 is expected not to change `Note.count`4795 when alert is resolved and another existing open alert4796 behaves like title update4797 updates the attribute4798 behaves like does not add a todo4799 is expected not to change `Todo.count`4800 behaves like does not add a system note4801 is expected not to change `Note.count`4802 when assignees are included4803 when the assignee is the current user4804 behaves like successful assignment4805 is expected to be success4806 behaves like adds a system note4807 is expected to change `alert.reload.notes.count` by 14808 behaves like adds a todo4809 is expected to eq #<User id:1860 @user964>4810 when the assignee has read permissions4811 behaves like successful assignment4812 is expected to be success4813 behaves like adds a system note4814 is expected to change `alert.reload.notes.count` by 14815 behaves like adds a todo4816 is expected to eq #<User id:1860 @user964>4817 when the assignee does not have read permissions4818 behaves like error response4819 has an informative message4820 behaves like does not add a todo4821 is expected not to change `Todo.count`4822 behaves like does not add a system note4823 is expected not to change `Note.count`4824 when user is already assigned4825 behaves like does not add a system note4826 is expected not to change `Note.count`4827 behaves like does not add a todo4828 is expected not to change `Todo.count`4829 with multiple users included4830 behaves like successful assignment4831 is expected to be success4832 behaves like adds a system note4833 is expected to change `alert.reload.notes.count` by 14834 behaves like adds a todo4835 is expected to eq #<User id:1860 @user964>4836 when a status is included4837 successfully changes the status4838 behaves like adds a system note4839 is expected to change `alert.reload.notes.count` by 14840 with unknown status4841 behaves like error response4842 has an informative message4843 behaves like does not add a todo4844 is expected not to change `Todo.count`4845 behaves like does not add a system note4846 is expected not to change `Note.count`4847 with resolving status4848 changes the status4849 resolves the current user's related todos4850 with an opening status and existing open alert4851 has an informative message4852 behaves like does not add a todo4853 is expected not to change `Todo.count`4854 behaves like does not add a system note4855 is expected not to change `Note.count`4856 fingerprints are blank4857 successfully changes the status4858 behaves like adds a system note4859 is expected to change `alert.reload.notes.count` by 14860 two existing closed alerts4861 successfully changes the status4862 behaves like adds a system note4863 is expected to change `alert.reload.notes.count` by 14864 with an associated issue4865 behaves like does not sync with the incident status4866 is expected to change `alert.acknowledged?` to true4867 when the issue is an incident4868 behaves like does not sync with the incident status4869 is expected to change `alert.acknowledged?` to true4870 when the incident has an escalation status4871 updates the incident escalation status with the new alert status4872 when the statuses match4873 behaves like does not sync with the incident status4874 is expected to change `alert.acknowledged?` to true4875 when feature flag is disabled4876 behaves like does not sync with the incident status4877 is expected to change `alert.acknowledged?` to true4878 when a status change reason is included4879 behaves like adds a system note4880 is expected to match /changed the status to \*\*Acknowledged\*\* by changing the incident status/4881Gitlab::Utils::Markdown4882 #string_to_anchor4883 converts string to anchor4884 when string has punctuation4885 removes punctuation4886 when string starts and ends with spaces4887 removes extra spaces4888 when string has multiple spaces and dashes in the middle4889 removes consecutive dashes4890 when string contains only digits4891 adds anchor prefix4892 when string has a product suffix4893 CORE4894 ignores a product suffix4895 with "*" around a product suffix4896 ignores a product suffix4897 CORE ONLY4898 ignores a product suffix4899 with "*" around a product suffix4900 ignores a product suffix4901 CORE SELF4902 ignores a product suffix4903 with "*" around a product suffix4904 ignores a product suffix4905 CORE SASS4906 ignores a product suffix4907 with "*" around a product suffix4908 ignores a product suffix4909 STARTER4910 ignores a product suffix4911 with "*" around a product suffix4912 ignores a product suffix4913 STARTER ONLY4914 ignores a product suffix4915 with "*" around a product suffix4916 ignores a product suffix4917 STARTER SELF4918 ignores a product suffix4919 with "*" around a product suffix4920 ignores a product suffix4921 STARTER SASS4922 ignores a product suffix4923 with "*" around a product suffix4924 ignores a product suffix4925 PREMIUM4926 ignores a product suffix4927 with "*" around a product suffix4928 ignores a product suffix4929 PREMIUM ONLY4930 ignores a product suffix4931 with "*" around a product suffix4932 ignores a product suffix4933 PREMIUM SELF4934 ignores a product suffix4935 with "*" around a product suffix4936 ignores a product suffix4937 PREMIUM SASS4938 ignores a product suffix4939 with "*" around a product suffix4940 ignores a product suffix4941 ULTIMATE4942 ignores a product suffix4943 with "*" around a product suffix4944 ignores a product suffix4945 ULTIMATE ONLY4946 ignores a product suffix4947 with "*" around a product suffix4948 ignores a product suffix4949 ULTIMATE SELF4950 ignores a product suffix4951 with "*" around a product suffix4952 ignores a product suffix4953 ULTIMATE SASS4954 ignores a product suffix4955 with "*" around a product suffix4956 ignores a product suffix4957 FREE4958 ignores a product suffix4959 with "*" around a product suffix4960 ignores a product suffix4961 FREE ONLY4962 ignores a product suffix4963 with "*" around a product suffix4964 ignores a product suffix4965 FREE SELF4966 ignores a product suffix4967 with "*" around a product suffix4968 ignores a product suffix4969 FREE SASS4970 ignores a product suffix4971 with "*" around a product suffix4972 ignores a product suffix4973 BRONZE4974 ignores a product suffix4975 with "*" around a product suffix4976 ignores a product suffix4977 BRONZE ONLY4978 ignores a product suffix4979 with "*" around a product suffix4980 ignores a product suffix4981 BRONZE SELF4982 ignores a product suffix4983 with "*" around a product suffix4984 ignores a product suffix4985 BRONZE SASS4986 ignores a product suffix4987 with "*" around a product suffix4988 ignores a product suffix4989 SILVER4990 ignores a product suffix4991 with "*" around a product suffix4992 ignores a product suffix4993 SILVER ONLY4994 ignores a product suffix4995 with "*" around a product suffix4996 ignores a product suffix4997 SILVER SELF4998 ignores a product suffix4999 with "*" around a product suffix5000 ignores a product suffix5001 SILVER SASS5002 ignores a product suffix5003 with "*" around a product suffix5004 ignores a product suffix5005 GOLD5006 ignores a product suffix5007 with "*" around a product suffix5008 ignores a product suffix5009 GOLD ONLY5010 ignores a product suffix5011 with "*" around a product suffix5012 ignores a product suffix5013 GOLD SELF5014 ignores a product suffix5015 with "*" around a product suffix5016 ignores a product suffix5017 GOLD SASS5018 ignores a product suffix5019 with "*" around a product suffix5020 ignores a product suffix5021 when string is empty5022 returns an empty string5023Gitlab::ImportExport::ImportFailureService5024 #log_import_failure5025 when importable is a group5026 behaves like log import failure5027 tracks error5028 saves data to ImportFailure5029 when importable is a project5030 behaves like log import failure5031 tracks error5032 saves data to ImportFailure5033 when ImportFailure does not support importable class5034 raise exception5035 #with_retry5036 when exceptions are retriable5037 exception: GRPC::DeadlineExceeded5038 when retry succeeds5039 retries and logs import failure once with correct params5040 when retry continues to fail with intermittent errors5041 retries the number of times allowed and raise exception5042 logs import failure each time and raise exception5043 exception: ActiveRecord::QueryCanceled5044 when retry succeeds5045 retries and logs import failure once with correct params5046 when retry continues to fail with intermittent errors5047 retries the number of times allowed and raise exception5048 logs import failure each time and raise exception5049 when exception is not retriable5050 raise the exception5051Terraform::State5052 is expected to belong to project required: false5053 is expected to belong to locked_by_user class_name => User required: false5054 is expected to validate that :name cannot be empty/falsy5055 is expected to validate that :project_id cannot be empty/falsy5056 is expected to validate that :name is case-sensitively unique within the scope of :project_id5057 scopes5058 .ordered_by_name5059 is expected to eq ["state_a", "state_b", "state_c", "state_d"]5060 .with_name5061 is expected to contain exactly #<Terraform::State id: 10, project_id: 1225, created_at: "2022-02-04 17:19:46.129265846 +0000", updat..._id: nil, uuid: "5b2ed49603260f5ffb176b5941938f5f", name: "matching-name", versioning_enabled: true>5062 #destroy5063 deletes when the state is unlocked5064 fails to delete when the state is locked5065 #latest_file5066 is expected to eq #<Terraform::StateUploader:0x00007ff3bdaf38a0 @model=#<Terraform::StateVersion id: 6, terraform_state...0x00007ff3bdaf36c0 @uploader=#<Terraform::StateUploader:0x00007ff3bdaf38a0 ...>, @cache_called=nil>>5067 but no version exists yet5068 is expected to be nil5069 #update_file!5070 versioning is enabled5071 creates a new version5072 versioning is disabled (migration to versioned in progress)5073 creates a new version, corrects the migrated version number, and marks the state as versioned5074 the current version cannot be determined5075 uses version - 1 to correct the migrated version number5076Gitlab::Auth::Ldap::Person5077 .normalize_dn5078 behaves like normalizes a DN5079 test_description: "strips extraneous whitespace", given: "uid =John Smith , ou = People, dc= example,dc =com", expected: "uid=john smith,ou=people,dc=example,dc=com"5080 normalizes the DN5081 test_description: "strips extraneous whitespace for a DN with a single RDN", given: "uid = John Smith", expected: "uid=john smith"5082 normalizes the DN5083 test_description: "unescapes non-reserved, non-special Unicode characters", given: "uid = Sebasti\\c3\\a1n\\ C.\\20Smith, ou=People (aka. \\22humans\\\") ,dc=example, dc=com", expected: "uid=sebastián c. smith,ou=people (aka. \\\"humans\\\"),dc=example,dc=com"5084 normalizes the DN5085 test_description: "downcases the whole string", given: "UID=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5086 normalizes the DN5087 test_description: "for a null DN (empty string), returns empty string and does not error", given: "", expected: ""5088 normalizes the DN5089 test_description: "does not strip an escaped leading space in an attribute value", given: "uid=\\ John Smith,ou=People,dc=example,dc=com", expected: "uid=\\ john smith,ou=people,dc=example,dc=com"5090 normalizes the DN5091 test_description: "does not strip an escaped leading space in the last attribute value", given: "uid=\\ John Smith", expected: "uid=\\ john smith"5092 normalizes the DN5093 test_description: "does not strip an escaped trailing space in an attribute value", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5094 normalizes the DN5095 test_description: "strips extraneous spaces after an escaped trailing space", given: "uid=John Smith\\ ,ou=People,dc=example,dc=com", expected: "uid=john smith\\ ,ou=people,dc=example,dc=com"5096 normalizes the DN5097 test_description: "strips extraneous spaces after an escaped trailing space at the end of the DN", given: "uid=John Smith,ou=People,dc=example,dc=com\\ ", expected: "uid=john smith,ou=people,dc=example,dc=com\\ "5098 normalizes the DN5099 test_description: "properly preserves escaped trailing space after unescaped trailing spaces", given: "uid=John Smith \\ ,ou=People,dc=example,dc=com", expected: "uid=john smith \\ ,ou=people,dc=example,dc=com"5100 normalizes the DN5101 test_description: "preserves multiple inner spaces in an attribute value", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5102 normalizes the DN5103 test_description: "preserves inner spaces after an escaped space", given: "uid=John\\ Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5104 normalizes the DN5105 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "uid=\\\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5106 normalizes the DN5107 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "uid=John Smith\\\n,ou=People,dc=example,dc=com", expected: "uid=john smith\\0a,ou=people,dc=example,dc=com"5108 normalizes the DN5109 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN?)", given: "uid=\nJohn Smith,ou=People,dc=example,dc=com", expected: "uid=\\0ajohn smith,ou=people,dc=example,dc=com"5110 normalizes the DN5111 test_description: "strips an unescaped trailing newline (actually an invalid DN?)", given: "uid=John Smith\n,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5112 normalizes the DN5113 test_description: "does not strip if no extraneous whitespace", given: "uid=John Smith,ou=People,dc=example,dc=com", expected: "uid=john smith,ou=people,dc=example,dc=com"5114 normalizes the DN5115 test_description: "does not modify an escaped equal sign in an attribute value", given: "uid= foo \\= bar", expected: "uid=foo \\= bar"5116 normalizes the DN5117 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: "uid= foo \\3D bar", expected: "uid=foo \\= bar"5118 normalizes the DN5119 test_description: "does not modify an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\, CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5120 normalizes the DN5121 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\2C CA", expected: "uid=john c. smith,ou=san francisco\\, ca"5122 normalizes the DN5123 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0DCA", expected: "uid=john c. smith,ou=san francisco\\,\\0dca"5124 normalizes the DN5125 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0aca"5126 normalizes the DN5127 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "uid= John C. Smith, ou=San Francisco\\,\\0D\\0ACA", expected: "uid=john c. smith,ou=san francisco\\,\\0d\\0aca"5128 normalizes the DN5129 test_description: "allows attribute type name OIDs", given: "0.9.2342.19200300.100.1.25=Example,0.9.2342.19200300.100.1.25=Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5130 normalizes the DN5131 test_description: "strips extraneous whitespace from attribute type name OIDs", given: "0.9.2342.19200300.100.1.25 = Example, 0.9.2342.19200300.100.1.25 = Com", expected: "0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com"5132 normalizes the DN5133 with an exception during normalization5134 returns the given DN unmodified5135 .normalize_uid5136 behaves like normalizes a DN attribute value5137 test_description: "strips extraneous whitespace", given: " John Smith ", expected: "john smith"5138 normalizes the DN attribute value5139 test_description: "unescapes non-reserved, non-special Unicode characters", given: "Sebasti\\c3\\a1n\\ C.\\20Smith", expected: "sebastián c. smith"5140 normalizes the DN attribute value5141 test_description: "downcases the whole string", given: "JoHn C. Smith", expected: "john c. smith"5142 normalizes the DN attribute value5143 test_description: "does not strip an escaped leading space in an attribute value", given: "\\ John Smith", expected: "\\ john smith"5144 normalizes the DN attribute value5145 test_description: "does not strip an escaped trailing space in an attribute value", given: "John Smith\\ ", expected: "john smith\\ "5146 normalizes the DN attribute value5147 test_description: "hex-escapes an escaped leading newline in an attribute value", given: "\\\nJohn Smith", expected: "\\0ajohn smith"5148 normalizes the DN attribute value5149 test_description: "hex-escapes and does not strip an escaped trailing newline in an attribute value", given: "John Smith\\\n", expected: "john smith\\0a"5150 normalizes the DN attribute value5151 test_description: "hex-escapes an unescaped leading newline (actually an invalid DN value?)", given: "\nJohn Smith", expected: "\\0ajohn smith"5152 normalizes the DN attribute value5153 test_description: "strips an unescaped trailing newline (actually an invalid DN value?)", given: "John Smith\n", expected: "john smith"5154 normalizes the DN attribute value5155 test_description: "does not strip if no extraneous whitespace", given: "John Smith", expected: "john smith"5156 normalizes the DN attribute value5157 test_description: "does not modify an escaped equal sign in an attribute value", given: " foo \\= bar", expected: "foo \\= bar"5158 normalizes the DN attribute value5159 test_description: "converts an escaped hex equal sign to an escaped equal sign in an attribute value", given: " foo \\3D bar", expected: "foo \\= bar"5160 normalizes the DN attribute value5161 test_description: "does not modify an escaped comma in an attribute value", given: "San Francisco\\, CA", expected: "san francisco\\, ca"5162 normalizes the DN attribute value5163 test_description: "converts an escaped hex comma to an escaped comma in an attribute value", given: "San Francisco\\2C CA", expected: "san francisco\\, ca"5164 normalizes the DN attribute value5165 test_description: "does not modify an escaped hex carriage return character in an attribute value", given: "San Francisco\\,\\0DCA", expected: "san francisco\\,\\0dca"5166 normalizes the DN attribute value5167 test_description: "does not modify an escaped hex line feed character in an attribute value", given: "San Francisco\\,\\0ACA", expected: "san francisco\\,\\0aca"5168 normalizes the DN attribute value5169 test_description: "does not modify an escaped hex CRLF in an attribute value", given: "San Francisco\\,\\0D\\0ACA", expected: "san francisco\\,\\0d\\0aca"5170 normalizes the DN attribute value5171 with an exception during normalization5172 returns the given UID unmodified5173 .ldap_attributes5174 returns a compact and unique array5175 #name5176 uses the configured name attribute and handles values as an array5177 #email5178 returns the value of mail, if present5179 returns the value of userPrincipalName, if mail and email are not present5180 #username5181 with default uid username attribute5182 returns the proper username value5183 with a different username attribute5184 returns the proper username value5185 with a non-standard username attribute5186 returns the proper username value5187 if lowercase_usernames setting is5188 enabled the username attribute is lower cased5189 disabled the username attribute is not lower cased5190ProjectSnippet5191 Associations5192 is expected to belong to project required: false5193 Validation5194 is expected to validate that :project cannot be empty/falsy5195 is expected to validate that :secret is ‹false›5196 #embeddable?5197 only returns true when both project and snippet are public5198 only returns true when both project and snippet are public5199 only returns true when both project and snippet are public5200 only returns true when both project and snippet are public5201 only returns true when both project and snippet are public5202 only returns true when both project and snippet are public5203 only returns true when both project and snippet are public5204 only returns true when both project and snippet are public5205 only returns true when both project and snippet are public5206 behaves like model with repository5207 container class includes HasRepository5208 #commits_by5209 retrieves several commits from the repository by oid5210 #web_url5211 when given the only_path option5212 when only_path is false5213 returns the full web URL for this repo5214 when only_path is true5215 returns the relative web URL for this repo5216 when only_path is nil5217 returns the full web URL for this repo5218 when not given the only_path option5219 returns the full web URL for this repo5220 #url_to_repo5221 returns the SSH URL to the repository5222 #ssh_url_to_repo5223 returns the SSH URL to the repository5224 #http_url_to_repo5225 returns the HTTP URL to the repository5226 #repository5227 returns valid repo5228 uses the same container5229 #storage5230 returns valid storage5231 #full_path5232 returns valid full_path5233 #lfs_enabled?5234 returns the expected value5235 #empty_repo?5236 when the repo does not exist5237 returns true5238 when the repo exists5239 returns the empty state of the repository5240 #valid_repo?5241 is expected to equal false5242 is expected to equal true5243 #repository_exists?5244 is expected to equal false5245 is expected to equal true5246 #repo_exists?5247 is expected to equal false5248 is expected to equal true5249 #root_ref5250 is expected to equal true5251 is expected to equal false5252 is expected to equal false5253 Respond to5254 is expected to respond to #base_dir5255 is expected to respond to #disk_path5256 is expected to respond to #gitlab_shell5257 #change_head5258 delegates #change_head to repository5259 #after_repository_change_head5260 calls #reload_default_branch5261Milestones::PromoteService5262 #execute5263 validations5264 raises error if milestone does not belong to a project5265 raises error if project does not belong to a group5266 does not promote milestone and update issuables if promoted milestone is not valid5267 without duplicated milestone titles across projects5268 promotes project milestone to group milestone5269 does not update issuables without milestone with the new promoted milestone5270 sets issuables with new promoted milestone5271 with duplicated milestone titles across projects5272 deletes project milestones with the same title5273 does not update issuables without milestone with the new promoted milestone5274 sets all issuables with new promoted milestone5275Serverless::AssociateDomainService5276 when the domain is unchanged5277 does not update creator5278 when domain is changed to nil5279 removes the association between knative and the domain5280 does not attempt to update creator5281 when a new domain is associated5282 creates an association with the domain5283 updates creator5284 when knative is not authorized to use the pages domain5285 sets pages_domain_id to nil5286 when knative hostname is nil5287 sets hostname to a placeholder value5288 when knative hostname exists5289 does not change hostname5290Namespace::RootStorageStatistics5291 is expected to belong to namespace required: false5292 is expected to have one route through namespace5293 is expected to delegate #all_projects to the #namespace object5294 scopes5295 .for_namespace_ids5296 returns only requested namespaces5297 #recalculate!5298 behaves like data refresh5299 aggregates project statistics5300 works when there are no projects5301 behaves like does not include personal snippets5302 is expected not to receive from_personal_snippets(*(any args)) 0 times5303 with subgroups5304 behaves like data refresh5305 aggregates project statistics5306 works when there are no projects5307 behaves like does not include personal snippets5308 is expected not to receive from_personal_snippets(*(any args)) 0 times5309 with a personal namespace5310 behaves like data refresh5311 aggregates project statistics5312 works when there are no projects5313 when user has personal snippets5314 aggregates personal and project snippets size5315 when personal snippets do not have statistics5316 does not raise any error5317Spam::SpamVerdictService5318 #execute5319 if all services return nil5320 renders ALLOW verdict5321 if only one service returns a verdict5322 and it is supported5323 renders that verdict5324 and it is unexpected5325 allows5326 if more than one service returns a verdict5327 and they are supported5328 renders the more restrictive verdict5329 and one is supported5330 renders the more restrictive verdict5331 and none are supported5332 renders the more restrictive verdict5333 and attribs - monitorMode is true5334 renders the more restrictive verdict5335 records metrics5336 verdict: "allow", error: false, label: "ALLOW"5337 records duration with labels5338 verdict: "allow", error: true, label: "ERROR"5339 records duration with labels5340 verdict: "conditional_allow", error: false, label: "CONDITIONAL_ALLOW"5341 records duration with labels5342 verdict: "block", error: false, label: "BLOCK"5343 records duration with labels5344 verdict: "disallow", error: false, label: "DISALLOW"5345 records duration with labels5346 verdict: "noop", error: false, label: "NOOP"5347 records duration with labels5348 #akismet_verdict5349 if Akismet is enabled5350 if Akismet considers it spam5351 if reCAPTCHA is enabled5352 returns conditionally allow verdict5353 if reCAPTCHA is not enabled5354 renders disallow verdict5355 if Akismet does not consider it spam5356 renders allow verdict5357 if Akismet is not enabled5358 renders allow verdict5359 #spamcheck_verdict5360 if a Spam Check endpoint enabled and set to a URL5361 if the endpoint is accessible5362 if the result is a NOOP verdict5363 returns the verdict5364 if attribs - monitorMode is true5365 returns the verdict5366 the result is a valid verdict5367 returns the verdict5368 when recaptcha is enabled5369 verdict_value: "allow", expected: "allow"5370 returns expected spam constant5371 verdict_value: "conditional_allow", expected: "conditional_allow"5372 returns expected spam constant5373 verdict_value: "disallow", expected: "disallow"5374 returns expected spam constant5375 verdict_value: "block", expected: "block"5376 returns expected spam constant5377 when recaptcha is disabled5378 returns expected spam constant5379 returns expected spam constant5380 returns expected spam constant5381 returns expected spam constant5382 the verdict is an unexpected value5383 returns the string5384 the verdict is an empty string5385 returns nil5386 the verdict is nil5387 returns nil5388 there is an error5389 returns nil5390 the requested is aborted5391 returns nil5392 the confused API endpoint returns both an error and a verdict5393 renders the verdict5394 if the endpoint times out5395 returns nil5396 if a Spam Check endpoint is not set5397 returns nil5398 if Spam Check endpoint is not enabled5399 returns nil5400Banzai::Filter::ExternalLinkFilter5401 ignores elements without an href attribute5402 ignores non-HTTP(S) links5403 skips internal links5404 for root links on document5405 behaves like an external link with rel attribute5406 adds rel="nofollow" to external links5407 adds rel="noreferrer" to external links5408 adds rel="noopener" to external links5409 for nested links on document5410 behaves like an external link with rel attribute5411 adds rel="nofollow" to external links5412 adds rel="noreferrer" to external links5413 adds rel="noopener" to external links5414 for invalid urls5415 adds rel and target attributes to broken hrefs5416 adds rel and target to improperly formatted mailtos5417 adds rel and target to improperly formatted autolinks5418 adds rel and target attributes to improperly formatted protocols5419 for links with a username5420 with a valid username5421 behaves like an external link with rel attribute5422 adds rel="nofollow" to external links5423 adds rel="noreferrer" to external links5424 adds rel="noopener" to external links5425 with an impersonated username5426 behaves like an external link with rel attribute5427 adds rel="nofollow" to external links5428 adds rel="noreferrer" to external links5429 adds rel="noopener" to external links5430 for non-lowercase scheme links5431 skips internal links5432 skips relative links5433 with http5434 behaves like an external link with rel attribute5435 adds rel="nofollow" to external links5436 adds rel="noreferrer" to external links5437 adds rel="noopener" to external links5438 with https5439 behaves like an external link with rel attribute5440 adds rel="nofollow" to external links5441 adds rel="noreferrer" to external links5442 adds rel="noopener" to external links5443 for protocol-relative links5444 behaves like an external link with rel attribute5445 adds rel="nofollow" to external links5446 adds rel="noreferrer" to external links5447 adds rel="noopener" to external links5448 links with RTLO character5449 escapes RTLO in link text5450 does not mangle the link text5451 behaves like an external link with rel attribute5452 adds rel="nofollow" to external links5453 adds rel="noreferrer" to external links5454 adds rel="noopener" to external links5455 for generated autolinks5456 with an IDN character5457 does not change the link text5458 uses punycode for emails5459 behaves like an external link with rel attribute5460 adds rel="nofollow" to external links5461 adds rel="noreferrer" to external links5462 adds rel="noopener" to external links5463 autolinked image5464 adds a toolip with punycode5465 behaves like an external link with rel attribute5466 adds rel="nofollow" to external links5467 adds rel="noreferrer" to external links5468 adds rel="noopener" to external links5469 for links that look malicious5470 with an IDN character5471 adds a toolip with punycode5472 with RTLO character5473 adds a toolip with punycode5474 for links that have `rel=license`5475 maintains rel license5476 behaves like an external link with rel attribute5477 adds rel="nofollow" to external links5478 adds rel="noreferrer" to external links5479 adds rel="noopener" to external links5480Redactable5481 when model is an issue5482 behaves like model with redactable field5483 redacts unsubscribe token5484 ignores not hexadecimal tokens5485 ignores not matching texts5486 redacts the field when saving the model before creating markdown cache5487 when model is a merge request5488 behaves like model with redactable field5489 redacts unsubscribe token5490 ignores not hexadecimal tokens5491 ignores not matching texts5492 redacts the field when saving the model before creating markdown cache5493 when model is a note5494 behaves like model with redactable field5495 redacts unsubscribe token5496 ignores not hexadecimal tokens5497 ignores not matching texts5498 redacts the field when saving the model before creating markdown cache5499 when model is a snippet5500 behaves like model with redactable field5501 redacts unsubscribe token5502 ignores not hexadecimal tokens5503 ignores not matching texts5504 redacts the field when saving the model before creating markdown cache5505Mutations::DependencyProxy::ImageTtlGroupPolicy::Update5506 is expected to require graphql authorizations :admin_dependency_proxy5507 #resolve5508 with existing dependency proxy image ttl policy5509 user_role: :maintainer, shared_examples_name: "updating the dependency proxy image ttl policy"5510 behaves like updating the dependency proxy image ttl policy5511 behaves like updating the dependency proxy image ttl policy attributes5512 updates the dependency proxy image ttl policy5513 behaves like not creating the dependency proxy image ttl policy5514 doesn't create the dependency proxy image ttl policy5515 behaves like returning a success5516 returns the dependency proxy image ttl group policy with no errors5517 with invalid params5518 doesn't create the dependency proxy image ttl policy5519 does not update5520 returns an error5521 user_role: :developer, shared_examples_name: "updating the dependency proxy image ttl policy"5522 behaves like updating the dependency proxy image ttl policy5523 behaves like updating the dependency proxy image ttl policy attributes5524 updates the dependency proxy image ttl policy5525 behaves like not creating the dependency proxy image ttl policy5526 doesn't create the dependency proxy image ttl policy5527 behaves like returning a success5528 returns the dependency proxy image ttl group policy with no errors5529 with invalid params5530 doesn't create the dependency proxy image ttl policy5531 does not update5532 returns an error5533 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5534 behaves like denying access to dependency proxy image ttl policy5535 raises Gitlab::Graphql::Errors::ResourceNotAvailable5536 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5537 behaves like denying access to dependency proxy image ttl policy5538 raises Gitlab::Graphql::Errors::ResourceNotAvailable5539 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5540 behaves like denying access to dependency proxy image ttl policy5541 raises Gitlab::Graphql::Errors::ResourceNotAvailable5542 without existing dependency proxy image ttl policy5543 user_role: :maintainer, shared_examples_name: "creating the dependency proxy image ttl policy"5544 behaves like creating the dependency proxy image ttl policy5545 creates a new package setting5546 saves the settings5547 behaves like returning a success5548 returns the dependency proxy image ttl group policy with no errors5549 user_role: :developer, shared_examples_name: "creating the dependency proxy image ttl policy"5550 behaves like creating the dependency proxy image ttl policy5551 creates a new package setting5552 saves the settings5553 behaves like returning a success5554 returns the dependency proxy image ttl group policy with no errors5555 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5556 behaves like denying access to dependency proxy image ttl policy5557 raises Gitlab::Graphql::Errors::ResourceNotAvailable5558 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5559 behaves like denying access to dependency proxy image ttl policy5560 raises Gitlab::Graphql::Errors::ResourceNotAvailable5561 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5562 behaves like denying access to dependency proxy image ttl policy5563 raises Gitlab::Graphql::Errors::ResourceNotAvailable5564Banzai::Filter::References::DesignReferenceFilter5565 does not error when we add redaction to the pipeline5566 .call5567 requires project context5568 #call5569 feature flags5570 design management is not enabled5571 behaves like a no-op filter5572 does nothing5573 wrapped in a <pre/>5574 behaves like a no-op filter5575 does nothing5576 wrapped in a <code/>5577 behaves like a no-op filter5578 does nothing5579 wrapped in a <a/>5580 behaves like a no-op filter5581 does nothing5582 wrapped in a <style/>5583 behaves like a no-op filter5584 does nothing5585 .identifier5586 filename: "simple.png"5587 can parse the reference5588 filename: "SIMPLE.PNG"5589 can parse the reference5590 filename: "has-hyphen.jpg"5591 can parse the reference5592 filename: "snake_case.svg"5593 can parse the reference5594 static properties5595 is expected to eq :design5596 #data_attributes_for5597 is expected to include {:issue => 158, :original => "Added http://localhost/namespace1171/project1466/-/issues/10/designs/homescreen-452.jpg", :project => 1293, :design => 490}5598 internal reference5599 behaves like a reference containing an element node5600 does not escape inner html5601 behaves like a good link reference5602 produces a good link5603 the filename contains invalid characters5604 filename: "with some spaces.png"5605 behaves like a no-op filter5606 does nothing5607 filename: "with <script>console.log(\"pwded\")<%2Fscript>.png"5608 behaves like a no-op filter5609 does nothing5610 filename: "foo\"bar.png"5611 behaves like a no-op filter5612 does nothing5613 filename: "A \"very\" good file.png"5614 behaves like a no-op filter5615 does nothing5616 the reference is to a non-existant design5617 behaves like a no-op filter5618 does nothing5619 design management is disabled for the referenced project5620 behaves like a no-op filter5621 does nothing5622 link pattern5623 matches5624 cross-project / cross-namespace complete reference5625 links to a valid reference5626 link has valid text5627 includes default classes5628 behaves like a reference containing an element node5629 does not escape inner html5630 behaves like a good link reference5631 produces a good link5632 design management is disabled for that project5633 behaves like a no-op filter5634 does nothing5635 the reference is invalid5636 behaves like a no-op filter5637 does nothing5638 performance5639 is linear in the number of projects with design management enabled each design refers to5640BulkImports::Projects::Pipelines::SnippetsRepositoryPipeline5641 extractor5642 is a GraphqlExtractor with Graphql::GetSnippetRepositoryQuery5643 #run5644 when a snippet is not matched5645 behaves like skippable snippet5646 does not create snippet repo5647 when httpUrlToRepo is empty5648 behaves like skippable snippet5649 does not create snippet repo5650 when a snippet matches5651 when snippet url is valid5652 creates snippet repo5653 updates snippets statistics5654 fetches snippet repo from url5655 when url is invalid5656 behaves like skippable snippet5657 does not create snippet repo5658 when snippet is invalid5659 does not leave a hanging SnippetRepository behind5660 does not call UpdateStatisticsService5661 behaves like skippable snippet5662 does not create snippet repo5663Ci::Sources::Pipeline5664 is expected to belong to project required: false5665 is expected to belong to pipeline required: false5666 is expected to belong to source_project required: false5667 is expected to belong to source_job required: false5668 is expected to belong to source_bridge required: false5669 is expected to belong to source_pipeline required: false5670 is expected to validate that :project cannot be empty/falsy5671 is expected to validate that :pipeline cannot be empty/falsy5672 is expected to validate that :source_project cannot be empty/falsy5673 is expected to validate that :source_job cannot be empty/falsy5674 is expected to validate that :source_pipeline cannot be empty/falsy5675 loose foreign key on ci_sources_pipelines.source_project_id5676 behaves like cleanup by a loose foreign key5677 cleans up (delete or nullify) the model5678 loose foreign key on ci_sources_pipelines.project_id5679 behaves like cleanup by a loose foreign key5680 cleans up (delete or nullify) the model5681SnippetInputAction5682 validations5683 action: :create, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5684 is expected to equal true5685 action: :move, file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5686 is expected to equal true5687 action: :delete, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5688 is expected to equal true5689 action: :update, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5690 is expected to equal true5691 action: :foo, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5692 is expected to include :action5693 action: "create", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5694 is expected to equal true5695 action: "move", file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5696 is expected to equal true5697 action: "delete", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5698 is expected to equal true5699 action: "update", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5700 is expected to equal true5701 action: "foo", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5702 is expected to include :action5703 action: nil, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5704 is expected to include :action5705 action: "", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5706 is expected to include :action5707 action: :move, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: false, invalid_field: :previous_path5708 is expected to include :previous_path5709 action: :move, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: false, invalid_field: :previous_path5710 is expected to include :previous_path5711 action: :move, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5712 is expected to include :file_path5713 action: :move, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5714 is expected to equal true5715 action: :move, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5716 is expected to equal true5717 action: :move, file_path: nil, content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5718 is expected to equal true5719 action: :move, file_path: "foobar", content: nil, previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5720 is expected to equal true5721 action: :move, file_path: "foobar", content: "", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5722 is expected to equal true5723 action: :create, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5724 is expected to include :content5725 action: :create, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5726 is expected to include :content5727 action: :create, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5728 is expected to equal true5729 action: :create, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5730 is expected to equal true5731 action: :update, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5732 is expected to include :content5733 action: :update, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5734 is expected to include :content5735 action: :update, file_path: "other", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5736 is expected to include :file_path5737 action: :update, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: true, invalid_field: nil5738 is expected to equal true5739 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: true, invalid_field: nil5740 is expected to equal true5741 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :update, is_valid: true, invalid_field: nil5742 is expected to equal true5743 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "update", is_valid: true, invalid_field: nil5744 is expected to equal true5745 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update], is_valid: true, invalid_field: nil5746 is expected to equal true5747 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update, :create], is_valid: true, invalid_field: nil5748 is expected to equal true5749 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :create, is_valid: false, invalid_field: :action5750 is expected to include :action5751 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "create", is_valid: false, invalid_field: :action5752 is expected to include :action5753 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:create], is_valid: false, invalid_field: :action5754 is expected to include :action5755 action: :foo, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :foo, is_valid: false, invalid_field: :action5756 is expected to include :action5757 #to_commit_action5758 transforms attributes to commit action5759 action is update5760 when previous_path is present5761 returns the existing previous_path5762 when previous_path is not present5763 assigns the file_path to the previous_path5764gitlab:cleanup rake tasks5765 cleanup:project_uploads5766 with a fixable orphaned project upload file5767 with DRY_RUN disabled5768 moves the file to its proper location5769 logs action as done5770 with DRY_RUN explicitly enabled5771 behaves like does not move the file5772 does not move the file5773 logs action as able to be done5774 with DRY_RUN set to an unknown value5775 behaves like does not move the file5776 does not move the file5777 logs action as able to be done5778 with DRY_RUN unset5779 behaves like does not move the file5780 does not move the file5781 logs action as able to be done5782 gitlab:cleanup:orphan_job_artifact_files5783 runs the task without errors5784 with DRY_RUN set to false5785 passes dry_run correctly5786 gitlab:cleanup:orphan_lfs_file_references5787 runs the task without errors5788 with DRY_RUN set to false5789 passes dry_run correctly5790 gitlab:cleanup:orphan_lfs_files5791 runs RemoveUnreferencedLfsObjectsWorker5792 sessions5793 gitlab:cleanup:sessions:active_sessions_lookup_keys5794 runs the task without errors5795 removes expired active session lookup keys5796Ci::StagePresenter5797 #latest_ordered_statuses5798 behaves like preloaded associations for CI status5799 preloads project5800 preloads build pipeline5801 preloads build tags5802 preloads build artifacts archive5803 preloads build artifacts metadata5804 #retried_ordered_statuses5805 behaves like preloaded associations for CI status5806 preloads project5807 preloads build pipeline5808 preloads build tags5809 preloads build artifacts archive5810 preloads build artifacts metadata5811Todos::Destroy::ProjectPrivateService5812 #execute5813 when a project set to private5814 removes issue todos for a user who is not a member5815 when project is not private5816 does not remove any todos5817Gitlab::SlashCommands::Command5818 #execute5819 when no command is available5820 displays 404 messages5821 when an unknown command is triggered5822 displays the help message5823 the user can not create an issue5824 rejects the actions5825 when trying to do deployment5826 and user can not create deployment5827 returns action5828 and user has deployment permission5829 returns action5830 when duplicate action exists5831 returns error5832 #match_command5833 IssueShow is triggered5834 is expected to eq Gitlab::SlashCommands::IssueShow5835 IssueCreate is triggered5836 is expected to eq Gitlab::SlashCommands::IssueNew5837 IssueSearch is triggered5838 is expected to eq Gitlab::SlashCommands::IssueSearch5839 IssueMove is triggered5840 is expected to eq Gitlab::SlashCommands::IssueMove5841 IssueComment is triggered5842 is expected to eq Gitlab::SlashCommands::IssueComment5843Branches::DeleteMergedService5844 #execute5845 deletes a branch that was merged5846 keeps branch that is unmerged5847 keeps "master"5848 keeps protected branches5849 keeps wildcard protected branches5850 ignores protected tags5851 user without rights5852 cannot execute5853 open merge requests5854 does not delete branches from open merge requests5855 #async_execute5856 calls DeleteMergedBranchesWorker async5857AddressableUrlValidator5858 #validate5859 with no options5860 allows http,https schemes by default5861 checks that the url structure is valid5862 with schemes5863 allows urls with the defined schemes5864 add error if the url scheme does not match the selected ones5865 validations5866 returns error when url is nil5867 returns error when url is empty5868 allows urls with encoded CR or LF characters5869 does not allow urls with CR or LF characters5870 provides all arguments to UrlBlock validate5871 by default5872 does not block urls pointing to localhost5873 does not block urls pointing to the local network5874 does block nil urls5875 does block blank urls5876 strips urls5877 allows urls that cannot be resolved5878 when message is set5879 does block nil url with provided error message5880 when blocked_message is set5881 blocks url with provided error message5882 when allow_nil is set to true5883 does not block nil urls5884 when allow_blank is set to true5885 does not block blank urls5886 when allow_localhost is set to false5887 blocks urls pointing to localhost5888 when allow_setting_local_requests is set to true5889 does not block urls pointing to localhost5890 when allow_local_network is set to false5891 blocks urls pointing to the local network5892 when allow_setting_local_requests is set to true5893 does not block urls pointing to local network5894 when ports is5895 empty5896 does not block any port5897 set5898 blocks urls with a different port5899 when enforce_user is5900 true5901 checks user format5902 false (default)5903 does not check user format5904 when ascii_only is5905 true5906 prevents unicode characters5907 false (default)5908 does not prevent unicode characters5909 when enforce_sanitization is5910 true5911 prevents unsafe urls5912 prevents unsafe internal urls5913 allows safe urls5914 false5915 allows unsafe urls5916 when dns_rebind_protection is5917 true5918 raises error5919 false5920 allows urls that cannot be resolved5921Deployments::OlderDeploymentsDropService5922 #execute5923 when deployment is nil5924 behaves like it does not drop any build5925 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5926 when a deployment is passed in5927 and there is no active deployment for the related environment5928 behaves like it does not drop any build5929 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5930 and there are active deployment for the related environment5931 and there is no older deployment than "deployment"5932 behaves like it does not drop any build5933 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5934 and there is an older deployment than "deployment"5935 drops that older deployment5936 when older deployable is a manual job5937 does not drop any builds nor track the exception5938 when deployable.drop raises RuntimeError5939 does not drop an older deployment and tracks the exception5940 when ActiveRecord::StaleObjectError is raised5941 resets the object via Gitlab::OptimisticLocking5942 and there is no deployable for that older deployment5943 behaves like it does not drop any build5944 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5945Ci::SecureFile5946 is expected to be a kind of FileStoreMounter5947 is expected to belong to project required: true5948 behaves like having unique enum values5949 has unique values in "permissions"5950 validations5951 is expected to validate that :checksum cannot be empty/falsy5952 is expected to validate that :file_store cannot be empty/falsy5953 is expected to validate that :name cannot be empty/falsy5954 is expected to validate that :permissions cannot be empty/falsy5955 is expected to validate that :project_id cannot be empty/falsy5956 #permissions5957 defaults to read_only file permssions5958 #checksum5959 computes SHA256 checksum on the file before encrypted5960 #checksum_algorithm5961 returns the configured checksum_algorithm5962 #file5963 returns the saved file5964Resolvers::EnvironmentsResolver5965 with a group5966 #resolve5967 finds all environments5968 with name5969 finds a specific environment with name5970 with search5971 searches environment by name5972 when the search term does not match any environments5973 is empty5974 with states5975 searches environments by state5976 returns error if requested state is invalid5977 when project is nil5978 is expected to be nil5979Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery5980 queries using specific time5981 metrics query context5982 project has Kubernetes service5983 when user configured kubernetes from CI/CD > Clusters5984 query context contains kube_namespace5985 behaves like query context containing environment slug and filter5986 contains ci_environment_slug5987 contains environment filter5988 project without Kubernetes service5989 query context contains empty kube_namespace5990 behaves like query context containing environment slug and filter5991 contains ci_environment_slug5992 contains environment filter5993 with one group where two metrics is found5994 some queries return results5995 return group data only for queries with results5996 with two groups with one metric each5997 both queries return results5998 return group data both queries5999 one query returns result6000 return group data only for query with results6001AccessRequestsFinder6002 #execute6003 when current user cannot see project access requests6004 behaves like a finder returning no results6005 raises Gitlab::Access::AccessDeniedError6006 behaves like a finder returning no results6007 raises Gitlab::Access::AccessDeniedError6008 when current user can see access requests6009 behaves like a finder returning access requesters6010 returns access requesters6011 behaves like a finder returning access requesters6012 returns access requesters6013 #execute!6014 when current user cannot see access requests6015 behaves like a finder raising Gitlab::Access::AccessDeniedError6016 raises Gitlab::Access::AccessDeniedError6017 behaves like a finder raising Gitlab::Access::AccessDeniedError6018 raises Gitlab::Access::AccessDeniedError6019 when current user can see access requests6020 behaves like a finder returning access requesters6021 returns access requesters6022 behaves like a finder returning access requesters6023 returns access requesters6024Backup::Repositories6025 #dump6026 hashed storage6027 behaves like creates repository bundles6028 calls enqueue for each repository type6029 legacy storage6030 behaves like creates repository bundles6031 calls enqueue for each repository type6032 no concurrency6033 creates the expected number of threads6034 avoids N+1 database queries6035 command failure6036 enqueue_project raises an error6037 project query raises an error6038 concurrency with a strategy without parallel enqueueing support6039 enqueues all projects sequentially6040 #restore6041 calls enqueue for each repository type6042 restoring object pools6043 schedules restoring of the pool6044 skips pools with no source project, :sidekiq_might_not_need_inline6045 cleanup snippets6046 shows the appropriate error6047 removes the snippets from the DB6048 removes the repository from disk6049Packages::Conan::PackageFileFinder6050 #execute6051 behaves like package file finder examples6052 is expected to eq #<Packages::PackageFile id: 436, package_id: 297, created_at: "2022-02-04 17:22:49.457070000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6053 with conan_file_type6054 is expected to eq "recipe_file"6055 with conan_package_reference6056 is expected to eq #<Packages::PackageFile id: 440, package_id: 297, created_at: "2022-02-04 17:22:49.522274000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6057 with file_name_like6058 is expected to eq #<Packages::PackageFile id: 436, package_id: 297, created_at: "2022-02-04 17:22:49.457070000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6059 behaves like not returning pending_destruction package files6060 returns the correct package file6061 with packages_installable_package_files disabled6062 returns the correct package file6063 with unknown file_name6064 is expected to be nil6065 #execute!6066 behaves like package file finder examples6067 is expected to eq #<Packages::PackageFile id: 436, package_id: 297, created_at: "2022-02-04 17:22:49.457070000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6068 with conan_file_type6069 is expected to eq "recipe_file"6070 with conan_package_reference6071 is expected to eq #<Packages::PackageFile id: 440, package_id: 297, created_at: "2022-02-04 17:22:49.522274000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6072 with file_name_like6073 is expected to eq #<Packages::PackageFile id: 436, package_id: 297, created_at: "2022-02-04 17:22:49.457070000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>6074 behaves like not returning pending_destruction package files6075 returns the correct package file6076 with packages_installable_package_files disabled6077 returns the correct package file6078 with unknown file_name6079 is expected to raise ActiveRecord::RecordNotFound6080Gitlab::ImportExport::Base::RelationFactory6081 #create6082 when relation is invalid6083 returns without creating new relations6084 when the relation is predefined6085 returns without creating a new relation6086 when author relation6087 returns author hash unchanged6088 when #setup_models is not implemented6089 raises NotImplementedError6090 when #setup_models is implemented6091 creates imported object6092 when relation contains user references6093 maps the right author to the imported note6094 when relation contains token attributes6095 removes token attributes6096 when relation contains encrypted attributes6097 removes encrypted attributes6098 .relation_class6099 when relation name is pluralized6100 returns constantized class6101 when relation name is singularized6102 returns constantized class6103MergeRequests::ReloadDiffsService6104 #execute6105 creates new merge request diff6106 calls update_diff_discussion_positions with correct params6107 does not change existing merge request diff6108 cache clearing6109 clears the cache for older diffs on the merge request6110 avoids N+1 queries6111PrometheusAlert6112 .distinct_projects6113 returns a count of all distinct projects which have an alert6114 operators6115 contains the correct equality operator6116 associations6117 is expected to belong to project required: false6118 is expected to belong to environment required: false6119 is expected to belong to prometheus_metric required: false6120 is expected to have many prometheus_alert_events6121 is expected to have many related_issues6122 is expected to have many alert_management_alerts6123 project validations6124 is expected to validate that :environment cannot be empty/falsy6125 is expected to validate that :project cannot be empty/falsy6126 is expected to validate that :prometheus_metric cannot be empty/falsy6127 is expected to validate that :operator cannot be empty/falsy6128 is expected to validate that :threshold cannot be empty/falsy6129 when environment and metric belongs same project6130 is expected to be valid6131 when environment belongs to different project6132 is expected not to be valid6133 when metric belongs to different project6134 is expected not to be valid6135 when metric is common6136 is expected to be valid6137 runbook validations6138 disallow invalid urls6139 allow valid urls6140 #full_query6141 returns the concatenated query6142 #to_param6143 returns the params of the prometheus alert6144Types::Terraform::StateVersionType6145 is expected to eq "TerraformStateVersion"6146 is expected to require graphql authorizations :read_terraform_state6147 fields6148 is expected to have graphql fields :id, :created_by_user, :job, :download_path, :serial, :created_at, and :updated_at6149 is expected to be non null6150 is expected not to be non null6151 is expected not to be non null6152 is expected not to be non null6153 is expected not to be non null6154 is expected to be non null6155 is expected to be non null6156 query6157 returns job of the latest version6158 behaves like returning latest version6159 returns latest version of terraform state6160 when user cannot read jobs6161 does not return job of the latest version6162 behaves like returning latest version6163 returns latest version of terraform state6164EventCollection6165 #to_a6166 with project events6167 returns an Array of events6168 includes the wiki page events when using to_a6169 includes the design events6170 includes the wiki page events when using all_project_events6171 applies a limit to the number of events6172 can paginate through events6173 returns an empty Array when crossing the maximum page number6174 allows filtering of events using an EventFilter, returning single item6175 allows filtering of events using an EventFilter, returning several items6176 allows filtering of events using an EventFilter, returning pushes6177 with group events6178 includes also group events6179 does not include events from inaccessible groups6180Gitlab::FileFinder6181 #find6182 does not cause N+1 query6183 behaves like file finder6184 finds by path6185 finds by content6186 with inclusive filters6187 filters by filename6188 filters by path6189 filters by extension6190 with exclusive filters6191 filters by filename6192 filters by path6193 filters by extension6194 with white space in the path6195 filters by path correctly6196Gitlab::Runtime6197 when unknown6198 .identify6199 raises an exception when trying to identify6200 .safe_identify6201 returns nil6202 on multiple matches6203 .identify6204 raises an exception when trying to identify6205 .safe_identify6206 returns nil6207 puma without cli_config6208 behaves like valid runtime6209 identifies itself6210 does not identify as others6211 reports its maximum concurrency6212 puma with cli_config6213 behaves like valid runtime6214 identifies itself6215 does not identify as others6216 reports its maximum concurrency6217 when ActionCable worker pool size is configured6218 behaves like valid runtime6219 identifies itself6220 does not identify as others6221 reports its maximum concurrency6222 .puma_in_clustered_mode?6223 when Puma is set up with workers > 06224 is expected to equal true6225 when Puma is set up with workers = 06226 is expected to equal false6227 sidekiq6228 behaves like valid runtime6229 identifies itself6230 does not identify as others6231 reports its maximum concurrency6232 console6233 behaves like valid runtime6234 identifies itself6235 does not identify as others6236 reports its maximum concurrency6237 test suite6238 behaves like valid runtime6239 identifies itself6240 does not identify as others6241 reports its maximum concurrency6242 geo log cursor6243 behaves like valid runtime6244 identifies itself6245 does not identify as others6246 reports its maximum concurrency6247 rails runner6248 behaves like valid runtime6249 identifies itself6250 does not identify as others6251 reports its maximum concurrency6252Integrations::SlackSlashCommands6253 behaves like Integrations::BaseSlashCommands6254 Associations6255 is expected to respond to #token6256 is expected to have many chat_names6257 #valid_token?6258 when the token is empty6259 is false6260 when there is a token6261 accepts equal tokens6262 #trigger6263 no token is passed6264 returns nil6265 with a token passed6266 no user can be found6267 when no url can be generated6268 responds with the authorize url6269 when an auth url can be generated6270 generates the url6271 when the user is authenticated6272 triggers the command6273 when user is blocked6274 behaves like blocks command execution6275 is expected to match "you do not have access to the GitLab project"6276 when user is deactivated6277 behaves like blocks command execution6278 is expected to match "your account has been deactivated by your administrator"6279 #trigger6280 when an auth url is generated6281 uses slack compatible links6282 #chat_responder6283 returns the responder to use for Slack6284Security::LicenseComplianceJobsFinder6285 behaves like Security::JobsFinder6286 #new6287 does not get initialized for unsupported job types6288 #execute6289 behaves like JobsFinder core functionality6290 when the pipeline has no jobs6291 is expected to be empty6292 when the pipeline has no Secure jobs6293 is expected to be empty6294 when the pipeline only has jobs without report artifacts6295 is expected to be empty6296 when the pipeline only has jobs with reports unrelated to Secure products6297 is expected to be empty6298 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports6299 is expected to be empty6300 when there is more than one pipeline6301 returns jobs associated with provided pipeline6302 #execute6303 returns only the license_scanning job6304Gitlab::Ci::Ansi2json6305 lines6306 prints non-ansi as-is6307 recognizes color changing ANSI sequences6308 recognizes color changing ANSI sequences across multiple lines6309 recognizes background and foreground colors6310 recognizes style changes within the same line6311 new lines6312 adds new line when encountering \n6313 adds new line when encountering \r\n6314 replace the current line when encountering \r6315 with section markers6316 marks the first line of the section as header6317 does not marks the other lines of the section as header6318 marks the last line of the section as footer6319 marks the first line as header and footer if is the only line in the section6320 does not add sections attribute to lines after the section is closed6321 ignores section_end marker if no section_start exists6322 prints HTML tags as is6323 when section name contains .-_ and capital letters6324 sanitizes the section name6325 when section name includes $6326 ignores the section6327 when section name includes <6328 ignores the section6329 with nested section6330 adds multiple sections to the lines inside the nested section6331 adds multiple sections to the lines inside the nested section and closes all sections together6332 with section options6333 provides section options when set6334 incremental updates6335 with split word6336 returns the full line6337 with split word on second line6338 returns all lines since last partially processed line6339 with split sequence across multiple lines6340 returns the line since last partially processed line6341 with split partial sequence6342 returns the line since last partially processed line6343 with split new line6344 returns a blank line and the next line6345 with split section6346 with split section body6347 returns the full line6348 with split section where header is also split6349 returns the full line6350 with split section end6351 returns the full line6352 trucates6353 returns truncated output6354 does not append output6355Commits::CommitPatchService6356 #execute6357 returns a successful result6358 is based off HEAD when no start ref is passed6359 when specifying a different start branch6360 is based of the correct branch6361 when the user does not have access6362 behaves like an error response6363 returns the correct error6364 when the patches are not valid6365 behaves like an error response6366 returns the correct error6367 when the new branch name is invalid6368 behaves like an error response6369 returns the correct error6370 when the patches do not apply6371 behaves like an error response6372 returns the correct error6373 when specifying a non existent start branch6374 behaves like an error response6375 returns the correct error6376GroupChildSerializer6377 #represent6378 for groups6379 can render a single group6380 can render a collection of groups6381 with a hierarchy6382 expands the subgroups6383 can render a nested tree6384 without a specified parent6385 can render a tree6386 for projects6387 can render a single project6388 can render a collection of projects6389 with a hierarchy6390 can render a nested tree6391 returns an array when an array of a single instance was given6392Commits::CherryPickService6393 #execute6394 behaves like successful cherry-pick6395 picks the commit into the branch6396 supports a custom commit message6397 when picking a merge-request6398 adds a system note6399 behaves like successful cherry-pick6400 picks the commit into the branch6401 supports a custom commit message6402gitlab:web_hook namespace rake tasks6403 gitlab:web_hook:add6404 adds a web hook to all projects6405 adds a web hook to projects in the specified namespace6406 raises an error if an unknown namespace is specified6407 gitlab:web_hook:rm6408 removes a web hook from all projects by URL6409 removes a web hook from projects in the specified namespace by URL6410 raises an error if an unknown namespace is specified6411 gitlab:web_hook:list6412 lists all web hooks6413 lists web hooks in a particular namespace6414Resolvers::GroupIssuesResolver6415 #resolve6416 finds all group issues6417 finds all group and subgroup issues6418 returns issues without the specified issue_type6419 confidential issues6420 when user is allowed to view confidential issues6421 returns all viewable issues by default6422 filtering for confidential issues6423 returns only the non-confidential issues for the group when filter is set to false6424 returns only the confidential issues for the group when filter is set to true6425 when user is not allowed to see confidential issues6426 returns all viewable issues by default6427 filtering for confidential issues6428 does not return the confidential issues when filter is set to false6429 does not return the confidential issues when filter is set to true6430 release_tag filter6431 returns an error when trying to filter by negated release_tag6432Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules6433 #perform!6434 when pipeline has been skipped by workflow configuration6435 does not save the pipeline6436 breaks the chain6437 attaches an error to the pipeline6438 saves workflow_rules_result6439 when pipeline has not been skipped by workflow configuration6440 continues the pipeline processing chain6441 does not skip the pipeline6442 attaches no errors6443 saves workflow_rules_result6444NewNoteWorker6445 when Note found6446 calls NotificationService#new_note6447 calls Notes::PostProcessService#execute6448 when Note not found6449 logs NewNoteWorker process skipping6450 does not raise errors6451 does not call NotificationService6452 does not call Notes::PostProcessService6453 when note does not require notification6454 does not create a new note notification6455 when Note author has been blocked6456 does not call NotificationService6457 when Note author has been deleted6458 does not call NotificationService6459Packages::BuildInfosFinder6460 #execute6461 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]6462 is expected to eq [#<Packages::BuildInfo id: 12, package_id: 302, pipeline_id: 145>, #<Packages::BuildInfo id: 11, pack...package_id: 302, pipeline_id: 142>, #<Packages::BuildInfo id: 8, package_id: 302, pipeline_id: 141>]6463 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 10, support_next_page: false, expected_build_infos_indexes: [4, 3, 2, 1, 0]6464 is expected to eq [#<Packages::BuildInfo id: 12, package_id: 302, pipeline_id: 145>, #<Packages::BuildInfo id: 11, pack...package_id: 302, pipeline_id: 142>, #<Packages::BuildInfo id: 8, package_id: 302, pipeline_id: 141>]6465 first: nil, last: nil, after_index: nil, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [4, 3]6466 is expected to eq [#<Packages::BuildInfo id: 12, package_id: 302, pipeline_id: 145>, #<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>]6467 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [4, 3]6468 is expected to eq [#<Packages::BuildInfo id: 12, package_id: 302, pipeline_id: 145>, #<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>]6469 first: 2, last: nil, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [4, 3, 2]6470 is expected to eq [#<Packages::BuildInfo id: 12, package_id: 302, pipeline_id: 145>, #<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>, #<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>]6471 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 1]6472 is expected to eq [#<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>, #<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>]6473 first: 2, last: nil, after_index: 3, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 1, 0]6474 is expected to eq [#<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>, #<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>, #<Packages::BuildInfo id: 8, package_id: 302, pipeline_id: 141>]6475 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [3, 2]6476 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>, #<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>]6477 first: 3, last: nil, after_index: 4, before_index: nil, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [3, 2, 1]6478 is expected to eq [#<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>, #<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>, #<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>]6479 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [0, 1]6480 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 302, pipeline_id: 141>, #<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>]6481 first: nil, last: 2, after_index: nil, before_index: nil, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [0, 1, 2]6482 is expected to eq [#<Packages::BuildInfo id: 8, package_id: 302, pipeline_id: 141>, #<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>]6483 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: false, expected_build_infos_indexes: [2, 3]6484 is expected to eq [#<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>, #<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>]6485 first: nil, last: 2, after_index: nil, before_index: 1, max_page_size: nil, support_next_page: true, expected_build_infos_indexes: [2, 3, 4]6486 is expected to eq [#<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>, #<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>, #<Packages::BuildInfo id: 12, package_id: 302, pipeline_id: 145>]6487 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: false, expected_build_infos_indexes: [1, 2]6488 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>]6489 first: nil, last: 3, after_index: nil, before_index: 0, max_page_size: 2, support_next_page: true, expected_build_infos_indexes: [1, 2, 3]6490 is expected to eq [#<Packages::BuildInfo id: 9, package_id: 302, pipeline_id: 142>, #<Packages::BuildInfo id: 10, package_id: 302, pipeline_id: 143>, #<Packages::BuildInfo id: 11, package_id: 302, pipeline_id: 144>]6491Pages::LookupPath6492 #project_id6493 delegates to Project#id6494 #access_control6495 delegates to Project#private_pages?6496 #https_only6497 when no domain provided6498 delegates to Project#pages_https_only?6499 when there is domain provided6500 takes into account the https setting of the domain6501 #source6502 returns nil6503 when there is pages deployment6504 uses deployment from object storage6505 when deployment is in the local storage6506 uses file protocol6507 when deployment were created during migration6508 uses deployment from object storage6509 #prefix6510 returns "/" for pages group root projects6511 returns the project full path with the provided prefix removed6512BulkImports::Projects::Pipelines::IssuesPipeline6513 #run6514 imports issue into destination project6515 zoom meetings6516 restores zoom meetings6517 sentry issue6518 restores sentry issue information6519 award emoji6520 has award emoji on an issue6521 issue state6522 restores issue state6523 labels6524 restores issue labels6525 milestone6526 restores issue milestone6527 timelogs6528 restores issue timelogs6529 notes6530 restores issue notes and their award emoji6531PagesDomains::CreateAcmeOrderService6532 saves order to database before requesting validation6533 generates and saves private key6534 properly saves order attributes6535 properly saves challenge attributes6536Projects::Topic6537 is expected to be valid6538 modules6539 is expected to includes the Avatarable module6540 associations6541 is expected to have many project_topics6542 is expected to have many projects6543 validations6544 is expected to validate that :name cannot be empty/falsy6545 is expected to validate that :name is case-sensitively unique6546 is expected to validate that the length of :name is at most 2556547 is expected to validate that the length of :description is at most 10246548 scopes6549 order_by_total_projects_count6550 sorts topics by total_projects_count6551 reorder_by_similarity6552 sorts topics by similarity6553 #search6554 returns topics with a matching name6555 returns topics with a partially matching name6556 returns topics with a matching name regardless of the casing6557 #avatar_type6558 is true if avatar is image6559 is false if avatar is html page6560 #avatar_url6561 when avatar file is uploaded6562 shows correct avatar url6563Resolvers::DesignManagement::DesignResolver6564 is expected to have nullable GraphQL type Design6565 #resolve6566 when the user cannot see designs6567 returns nothing6568 when no argument has been passed6569 raises an error6570 when both arguments have been passed6571 raises an error6572 by ID6573 returns the specified design6574 the ID belongs to a design on another issue6575 returns nothing6576 the ID does not belong to a design at all6577 complains meaningfully6578 by filename6579 returns the specified design6580 the filename belongs to a design on another issue6581 returns nothing6582Milestones::ClosedIssuesCountService6583 counts closed issues including confidential6584 behaves like a counter caching service6585 #count6586 caches the count6587 #refresh_cache6588 refreshes the cache6589 #delete_cache6590 removes the cache6591 #uncached_count6592 does not cache the count6593Gitlab::Redis::Boolean6594 #to_s6595 true6596 is expected to eq "_b:1"6597 false6598 is expected to eq "_b:0"6599 .encode6600 true6601 is expected to eq "_b:1"6602 false6603 is expected to eq "_b:0"6604 .decode6605 valid encoded bool6606 true6607 is expected to equal true6608 false6609 is expected to equal false6610 partially invalid bool6611 raises an error6612 invalid encoded bool6613 raises an error6614 .true?6615 valid encoded bool6616 true6617 is expected to equal true6618 false6619 is expected to equal false6620 partially invalid bool6621 raises an error6622 invalid encoded bool6623 raises an error6624 .false?6625 valid encoded bool6626 true6627 is expected to equal false6628 false6629 is expected to equal true6630 partially invalid bool6631 raises an error6632 invalid encoded bool6633 raises an error6634Identity6635 relations6636 is expected to belong to user required: false6637 fields6638 is expected to respond to #provider6639 is expected to respond to #extern_uid6640 validations6641 with existing user and provider6642 returns false for a duplicate entry6643 returns true when a different provider is used6644 with newly-created user6645 successfully validates even with a nil user_id6646 #is_ldap?6647 returns true if it is a ldap identity6648 returns false if it is not a ldap identity6649 .with_extern_uid6650 LDAP identity6651 finds the identity when the DN is formatted differently6652 any other provider6653 the extern_uid lookup is case insensitive6654 .with_any_extern_uid6655 provider with extern uid6656 finds any extern uids associated with a provider6657 provider with nil extern uid6658 has no results when there are no extern uids6659 no provider6660 has no results when there is no associated provider6661 callbacks6662 before_save6663 normalizes extern uid6664 if extern_uid changes6665 if current_uid is nil6666 if extern_uid changed and not nil6667 after_destroy6668 if user synced attributes metadada provider6669 matches the identity provider6670 removes the user synced attributes6671 does not matche the identity provider6672 does not remove the user synced attributes6673RuboCop::Cop::Graphql::Descriptions6674 with fields6675 adds an offense when there is no description6676 adds an offense when description does not end in a period6677 adds an offense when description begins with "A"6678 adds an offense when description begins with "The"6679 does not add an offense when description is correct6680 does not add an offense when there is a resolver6681 with arguments6682 adds an offense when there is no description6683 adds an offense when description does not end in a period6684 adds an offense when description begins with "A"6685 adds an offense when description begins with "The"6686 does not add an offense when description is correct6687 with enum values6688 adds an offense when there is no description6689 adds an offense when description does not end in a period6690 adds an offense when description begins with "The"6691 adds an offense when description begins with "A"6692 does not add an offense when description is correct (defined using `description:`)6693 does not add an offense when description is correct (defined as a second argument)6694 autocorrecting descriptions without periods6695 can autocorrect6696 can autocorrect a heredoc6697AlertManagement::AlertPolicy6698 rules6699 is expected to be disallowed :read_alert_management_alert6700 is expected to be disallowed :update_alert_management_alert6701 when developer6702 is expected to be allowed :read_alert_management_alert6703 is expected to be allowed :update_alert_management_alert6704Integrations::ChatMessage::AlertMessage6705 behaves like Integrations::ChatMessage6706 when input contains link markup6707 strips all link markup characters6708 #message6709 returns the correct message6710 #attachments6711 returns an array of one6712 contains the correct attributes6713 returns the correct color6714 returns the correct attachment fields6715 returns the correctly formatted time6716Gitlab::QueryLimiting::Transaction6717 .current6718 returns nil when there is no transaction6719 returns the transaction when present6720 .run6721 runs a transaction and returns it and its return value6722 removes the transaction from the current thread upon completion6723 #act_upon_results6724 when the query threshold is not exceeded6725 does nothing6726 when the query threshold is exceeded6727 raises an error when this is enabled6728 #increment6729 increments the number of executed queries6730 does not increment the number of executed queries when query limiting is disabled6731 #raise_error?6732 returns true in a test environment6733 returns false in a production environment6734 #threshold_exceeded?6735 returns false when the threshold is not exceeded6736 returns true when the threshold is exceeded6737 #error_message6738 returns the error message to display when the threshold is exceeded6739 includes a list of executed queries6740 indicates if the log is truncated6741 includes the action name in the error message when present6742MergeRequests::AddContextService6743 #execute6744 when admin mode is enabled6745 adds context commit6746 when admin mode is disabled6747 doesn't add context commit6748 when user doesn't have permission to update merge request6749 doesn't add context commit6750 when the commits array is empty6751 doesn't add context commit6752projects/merge_requests/edit.html.haml6753 when a merge request without fork6754 shows editable fields6755 when a merge request with an existing source project is closed6756 shows editable fields6757gitlab:gitaly namespace rake task6758 clone6759 no dir given6760 aborts and display a help message6761 no storage path given6762 aborts and display a help message6763 when an underlying Git command fail6764 aborts and display a help message6765 checkout or clone6766 calls checkout_or_clone_version with the right arguments6767 install6768 gmake/make6769 gmake is available6770 calls gmake in the gitaly directory6771 when gmake fails6772 aborts process6773 gmake is not available6774 calls make in the gitaly directory6775 when Rails.env is test6776 calls make in the gitaly directory with BUNDLE_DEPLOYMENT and GEM_HOME variables6777DesignManagement::DesignsFinder6778 #execute6779 when user can not read designs of an issue6780 returns no results6781 when user can read designs of an issue6782 when design management feature is disabled6783 returns no results6784 when design management feature is enabled6785 returns the designs sorted by their relative position6786 when argument is the ids of designs6787 is expected to eq [#<DesignManagement::Design id:504 namespace1428/project1731#1/designs[homescreen-467.jpg]>]6788 when argument is the filenames of designs6789 is expected to eq [#<DesignManagement::Design id:505 namespace1428/project1731#1/designs[homescreen-468.jpg]>]6790 when passed empty array6791 for filenames6792 is expected to be empty6793 for ids6794 is expected to be empty6795 returning designs that existed at a particular given version6796 when argument is the first version6797 is expected to eq [#<DesignManagement::Design id:504 namespace1428/project1731#1/designs[homescreen-467.jpg]>]6798 when arguments are version and id6799 when id is absent at version6800 is expected to eq []6801 when id is present at version6802 is expected to eq [#<DesignManagement::Design id:505 namespace1428/project1731#1/designs[homescreen-468.jpg]>]6803 when argument is the second version6804 is expected to contain exactly #<DesignManagement::Design id:504 namespace1428/project1731#1/designs[homescreen-467.jpg]> and #<DesignManagement::Design id:505 namespace1428/project1731#1/designs[homescreen-468.jpg]>6805ContainerRegistry::Migration6806 .enabled?6807 is expected to eq true6808 feature flag disabled6809 is expected to eq false6810 .enqueue_waiting_time6811 slow_enabled: false, fast_enabled: false, expected_result: 1 hour6812 is expected to eq 1 hour6813 slow_enabled: true, fast_enabled: false, expected_result: 6 hours6814 is expected to eq 6 hours6815 slow_enabled: false, fast_enabled: true, expected_result: 06816 is expected to eq 06817 slow_enabled: true, fast_enabled: true, expected_result: 06818 is expected to eq 06819 .capacity6820 ff_1_enabled: false, ff_10_enabled: false, ff_25_enabled: false, expected_result: 06821 is expected to eq 06822 ff_1_enabled: true, ff_10_enabled: false, ff_25_enabled: false, expected_result: 16823 is expected to eq 16824 ff_1_enabled: true, ff_10_enabled: true, ff_25_enabled: false, expected_result: 106825 is expected to eq 106826 ff_1_enabled: true, ff_10_enabled: true, ff_25_enabled: true, expected_result: 256827 is expected to eq 256828 ff_1_enabled: false, ff_10_enabled: true, ff_25_enabled: false, expected_result: 106829 is expected to eq 106830 ff_1_enabled: false, ff_10_enabled: true, ff_25_enabled: true, expected_result: 256831 is expected to eq 256832 ff_1_enabled: false, ff_10_enabled: false, ff_25_enabled: true, expected_result: 256833 is expected to eq 256834 ff_1_enabled: true, ff_10_enabled: false, ff_25_enabled: true, expected_result: 256835 is expected to eq 256836 .max_tags_count6837 returns the matching application_setting6838 .max_retries6839 returns the matching application_setting6840 .start_max_retries6841 returns the matching application_setting6842 .max_step_duration6843 returns the matching application_setting6844 .target_plan_name6845 returns the matching application_setting6846 .created_before6847 returns the matching application_setting6848Clusters::Agents::ActivityEvent6849 is expected to belong to agent class_name => Clusters::Agent required: true6850 is expected to belong to user optional: true6851 is expected to belong to agent_token class_name => Clusters::AgentToken optional: true6852 is expected to validate that :kind cannot be empty/falsy6853 is expected to validate that :level cannot be empty/falsy6854 is expected to validate that :recorded_at cannot be empty/falsy6855 is expected to nullify if blank :detail6856 scopes6857 .in_timeline_order6858 sorts by recorded_at: :desc, id: :desc6859 .recorded_before6860 returns only events recorded before the cutoff6861Gitlab::SlashCommands::Presenters::Access6862 #access_denied6863 is expected to be a kind of Hash6864 behaves like displays an error message6865 is expected to equal :ephemeral6866 #generic_access_denied6867 is expected to be a kind of Hash6868 behaves like displays an error message6869 is expected to equal :ephemeral6870 #deactivated6871 is expected to be a kind of Hash6872 behaves like displays an error message6873 is expected to equal :ephemeral6874 #not_found6875 is expected to be a kind of Hash6876 tells the user the resource was not found6877 #authorize6878 with an authorization URL6879 is expected to be a kind of Hash6880 tells the user to authorize6881 without authorization url6882 is expected to be a kind of Hash6883 tells the user to authorize6884Ci::JobTokenScope::AddProjectService6885 #execute6886 behaves like editable job token scope6887 when job token scope is disabled for the given project6888 behaves like returns error6889 returns an error response6890 when user does not have permissions to edit the job token scope6891 behaves like returns error6892 returns an error response6893 when user has permissions to edit the job token scope6894 when target project is not provided6895 behaves like returns error6896 returns an error response6897 when target project is provided6898 when user does not have permissions to read the target project6899 behaves like returns error6900 returns an error response6901 when user has permissions on source and target projects6902 adds the project to the scope6903 when target project is same as the source project6904 behaves like returns error6905 returns an error response6906Banzai::Filter::InlineDiffFilter6907 adds inline diff span tags for deletions when using square brackets6908 adds inline diff span tags for deletions when using curley braces6909 does not add inline diff span tags when a closing tag is not provided6910 adds inline span tags for additions when using square brackets6911 adds inline span tags for additions when using curley braces6912 does not add inline diff span tags when a closing addition tag is not provided6913 does not add inline diff span tags when the tags do not match6914 prevents user-land html being injected6915 preserves content inside pre tags6916 preserves content inside code tags6917 preserves content inside tt tags6918Ci::BuildTrace6919 returns formatted trace6920 behaves like delegates methods6921 is expected to delegate #state to the #trace object6922 is expected to delegate #append to the #trace object6923 is expected to delegate #truncated to the #trace object6924 is expected to delegate #offset to the #trace object6925 is expected to delegate #size to the #trace object6926 is expected to delegate #total to the #trace object6927 is expected to delegate #build_id to the #build object as #id6928 is expected to delegate #build_status to the #build object as #status6929 is expected to delegate #build_complete? to the #build object as #complete?6930 with invalid UTF-8 data6931 returns valid UTF-8 data6932PersonalAccessTokens::LastUsedService6933 #execute6934 when the personal access token has not been used recently6935 updates the last_used_at timestamp6936 does not run on read-only GitLab instances6937 when the personal access token has been used recently6938 does not update the last_used_at timestamp6939 when the last_used_at timestamp is nil6940 updates the last_used_at timestamp6941 when not a personal access token6942 does not execute6943Gitlab::Ci::Pipeline::Chain::Build::Associations6944 sets pipeline variables6945 when a bridge is passed in to the pipeline creation6946 links the pipeline to the upstream bridge job6947 behaves like does not break the chain6948 returns false6949 when a bridge is not passed in to the pipeline creation6950 leaves the source pipeline empty6951 behaves like does not break the chain6952 returns false6953 when project setting restrict_user_defined_variables is enabled6954 when user is developer6955 returns an error on variables_attributes6956 behaves like breaks the chain6957 returns true6958 when variables_attributes is not specified6959 assigns empty variables6960 behaves like does not break the chain6961 returns false6962 when user is maintainer6963 assigns variables_attributes6964 behaves like does not break the chain6965 returns false6966 with duplicate pipeline variables6967 returns an error for variables_attributes6968 behaves like breaks the chain6969 returns true6970Gitlab::Integrations::StiType6971 #serialize6972 SQL SELECT6973 forms SQL SELECT statements correctly6974 SQL CREATE6975 forms SQL CREATE statements correctly6976 SQL UPDATE6977 forms SQL UPDATE statements correctly6978 SQL DELETE6979 forms SQL DELETE statements correctly6980 #deserialize6981 it deserializes type correctly6982 #cast6983 casts type as model correctly6984 #changed?6985 detects changes correctly6986Gitlab::Config::Entry::ComposableHash6987 when ComposableHash is instantiated6988 behaves like composes a hash6989 #valid?6990 is valid6991 is invalid6992 is expected not to be valid6993 #value6994 when config is a hash6995 returns key value6996 #compose!6997 composes child entry with configured value6998 composes child entries with configured values6999 #descendants7000 creates descendant nodes7001 when ComposableHash entry is configured in the parent class7002 creates entry with configuration from parent class7003 behaves like composes a hash7004 #valid?7005 is valid7006 is invalid7007 is expected not to be valid7008 #value7009 when config is a hash7010 returns key value7011 #compose!7012 composes child entry with configured value7013 composes child entries with configured values7014 #descendants7015 creates descendant nodes7016Gitlab::HookData::BaseBuilder7017 #absolute_image_urls7018 with an upload prefix specified7019 relative image URL7020 is expected to eq ""7021 absolute upload URL7022 is expected to eq ""7023 absolute non-upload URL7024 is expected to eq ""7025 without an upload prefix specified7026 relative image URL7027 is expected to eq ""7028 absolute upload URL7029 is expected to eq ""7030 absolute non-upload URL7031 is expected to eq ""7032 HTTP URL7033 is expected to eq ""7034 HTTPS URL7035 is expected to eq ""7036 protocol-relative URL7037 is expected to eq ""7038 URL reference by title7039 is expected to eq "![foo]\n\n[foo]: foo.png"7040 URL reference by label7041 is expected to eq "![][foo]\n\n[foo]: foo.png"7042 in Markdown inline code block7043 is expected to eq "``"7044 in HTML tag on the same line7045 is expected to eq "<p></p>"7046 in Markdown multi-line code block7047 is expected to eq "```\n\n```"7048 in HTML tag on different lines7049 is expected to eq "<p>\n\n</p>"7050Gitlab::MarkerRange7051 is expected to eq 1..107052 behaves like a Range7053 #mode7054 is expected to be nil7055 when mode is provided7056 is expected to eq :deletion7057 #to_range7058 is expected to eq 1..107059 when mode is provided7060 is omitted during transformation7061 .from_range7062 converts Range to MarkerRange object7063 keeps correct range7064 when range excludes end7065 keeps correct range7066 when range is already a MarkerRange7067 is expected to equal 1, 2, 3, 4, 5, 6, 7, 8, 9, and 107068 #==7069 is expected to be truthy7070 when marker ranges have different modes7071 is expected to be falsey7072 when marker ranges have different ranges7073 is expected to be falsey7074 when marker ranges is a simple range7075 is expected to be falsey7076AuthorizedProjectUpdate::ProjectRecalculatePerUserService#execute7077 returns success7078 when there are no changes to be made7079 does not change authorizations7080 when there are changes to be made7081 when addition is required7082 adds a new authorization record for the specific user7083 does not add a new authorization record for the other user7084 adds a new authorization record with the correct access level for the specific user7085 when removal is required7086 removes the authorization record for the specific user7087 does not remove the authorization record for the other user7088 when an update in access level is required7089 updates the authorization of the specific user to the correct access level7090 does not update the authorization of the other user to the correct access level7091Members::Projects::BulkCreatorService7092 behaves like bulk member creation7093 #execute7094 raises an error when exiting_members is not passed in the args hash7095 .add_users7096 returns a Member objects7097 returns an empty array7098 supports different formats7099 with de-duplication7100 with the same user by id and user7101 with the same user sent more than once7102 when a member already exists7103 supports existing users as expected7104 when `tasks_to_be_done` and `tasks_project_id` are passed7105 creates a member_task with the correct attributes7106API::Entities::MergeRequestApprovals7107 serializes an approved merge request7108 serializes a merge request that is not approved7109CompareService7110 #execute7111 compare with base, like feature...fix7112 is expected to eq 17113 straight compare, like feature..fix7114 is expected to eq 37115 compare with target branch that does not exist7116 is expected to be nil7117 compare with source branch that does not exist7118 is expected to be nil7119RspecFlaky::Config7120 .generate_report?7121 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is not set7122 returns false7123 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is set7124 env_value: "1", result: true7125 returns false7126 env_value: "true", result: true7127 returns false7128 env_value: "foo", result: false7129 returns false7130 env_value: "0", result: false7131 returns false7132 env_value: "false", result: false7133 returns false7134 .suite_flaky_examples_report_path7135 when ENV['FLAKY_RSPEC_SUITE_REPORT_PATH'] is not set7136 returns the default path7137 when ENV['FLAKY_RSPEC_SUITE_REPORT_PATH'] is set7138 returns the value of the env variable7139 .flaky_examples_report_path7140 when ENV['FLAKY_RSPEC_REPORT_PATH'] is not set7141 returns the default path7142 when ENV['FLAKY_RSPEC_REPORT_PATH'] is set7143 returns the value of the env variable7144 .new_flaky_examples_report_path7145 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is not set7146 returns the default path7147 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is set7148 returns the value of the env variable7149 .skipped_flaky_tests_report_path7150 when ENV['SKIPPED_FLAKY_TESTS_REPORT_PATH'] is not set7151 returns the default path7152 when ENV['SKIPPED_FLAKY_TESTS_REPORT_PATH'] is set7153 returns the value of the env variable7154Packages::Go::ModuleFinder7155 #execute7156 with module name equal to project name7157 returns a module with empty path7158 with module name starting with project name and slash7159 returns a module with non-empty path7160 with a module name not equal to and not starting with project name7161 returns nil7162 with relative path component7163 behaves like an invalid path7164 #module_name7165 returns the expected name7166 #execute7167 returns nil7168 with many relative path components7169 behaves like an invalid path7170 #module_name7171 returns the expected name7172 #execute7173 returns nil7174RuboCop::MigrationHelpers7175 #in_migration?7176 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true7177 is expected to eq true7178 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true7179 is expected to eq true7180 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true7181 is expected to eq true7182 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true7183 is expected to eq true7184 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false7185 is expected to eq false7186 #in_post_deployment_migration?7187 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false7188 is expected to eq false7189 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true7190 is expected to eq true7191 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false7192 is expected to eq false7193 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true7194 is expected to eq true7195 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false7196 is expected to eq false7197 #version7198 is expected to eq 202002101844207199Clusters::Applications::ActivateServiceWorker#perform7200 cluster exists7201 prometheus integration7202 cluster type: group7203 ensures Prometheus integration is activated7204 cluster type: project7205 ensures Prometheus integration is activated7206 cluster type: instance7207 ensures Prometheus integration is activated7208 cluster does not exist7209WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/workers/clusters/applications/activate_service_worker_spec.rb:49:in `block (3 levels) in <top (required)>'.7210 does not raise Record Not Found error7211ExpireJobCacheWorker7212 #perform7213 with a job in the pipeline7214 behaves like an idempotent worker7215 is labeled as idempotent7216 performs multiple times sequentially without raising an exception7217 behaves like worker with data consistency7218 .get_data_consistency_feature_flag_enabled?7219 returns true7220 .get_data_consistency7221 returns correct data consistency7222 when there is no job in the pipeline7223 does not change the etag store7224Projects::TerraformHelper7225 #js_terraform_list_data7226 includes image path7227 includes project path7228 includes access token path7229 includes username7230 includes terraform state api url7231 indicates the user is a terraform admin7232 when current_user is not a terraform admin7233 indicates the user is not an admin7234 when current_user is missing7235 indicates the user is not an admin7236BitbucketServer::Representation::Comment7237 #id7238 is expected to eq 97239 #author_username7240 returns username7241 when username is absent7242 returns slug7243 when slug and username are absent7244 returns displayName7245 #author_email7246 is expected to eq "test.user@example.com"7247 #note7248 is expected to eq "is this a new line?"7249 #created_at7250 is expected to be a kind of Time7251 #updated_at7252 is expected to be a kind of Time7253 #comments7254 is expected to eq 47255 is expected to all be a kind of BitbucketServer::Representation::Comment7256 is expected to contain exactly "Hello world", "Ok", "hello", and "hi"7257 comments have the right parent7258Snippets::RepositoryStorageMove7259 behaves like handles repository moves7260 associations7261 is expected to belong to container required: false7262 validations7263 is expected to validate that :container cannot be empty/falsy7264 is expected to validate that :state cannot be empty/falsy7265 is expected to validate that :source_storage_name cannot be empty/falsy7266 is expected to validate that :destination_storage_name cannot be empty/falsy7267 source_storage_name inclusion7268 does not allow repository storages that don't match a label in the configuration7269 destination_storage_name inclusion7270 does not allow repository storages that don't match a label in the configuration7271 container repository read-only7272 does not allow the container to be read-only on create7273 defaults7274 destination_storage_name7275 can pick new storage7276 state transitions7277 when in the default state7278 and transits to scheduled7279 triggers the corresponding repository storage worker7280 when the transition fails7281 does not trigger the corresponding repository storage worker and adds an error7282 and transits to started7283 does not allow the transition7284 when started7285 and transits to replicated7286 marks the container as writable7287 updates the updated_at column of the container7288 and transits to failed7289 marks the container as writable7290Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildFinished7291 behaves like value stream analytics event7292 is expected to be a kind of String7293 is expected to be a kind of Symbol7294 is expected to include ApplicationRecord(abstract)7295 is expected to respond to #timestamp_projection7296 is expected to respond to #html_description7297 is expected to be a kind of Array7298 #apply_query_customization7299 expects an ActiveRecord::Relation object as argument and returns a modified version of it7300 #hash_code7301 returns a hash that uniquely identifies an event7302 does not differ when the same object is built with the same params7303 behaves like LEFT JOIN-able value stream analytics event7304 can use the event as LEFT JOIN7305 when looking at the record with data7306 contains the timestamp expression7307 when looking at the record without data7308 returns nil for the timestamp expression7309Gitlab::PhabricatorImport::Issues::Importer7310 #execute7311 imports each task in the response7312 stubbed task import7313 schedules the next batch if there is one7314 does not reschedule when there is no next page7315RefMatcher7316 #matching7317 when refs are strings7318 is expected to contain exactly "v1.0"7319 behaves like matching_refs7320 when there is no match7321 is expected to contain exactly7322 when ref pattern is a wildcard7323 is expected to contain exactly "v1.0" and "v1.1"7324 when refs are ref objects7325 is expected to contain exactly #<Double "tag">7326 behaves like matching_refs7327 when there is no match7328 is expected to contain exactly7329 when ref pattern is a wildcard7330 is expected to contain exactly #<Double "tag"> and #<Double "tag">7331 #matches?7332 is expected to be truthy7333 when ref_name is empty7334 is expected to be falsey7335 when ref pattern matches wildcard7336 is expected to be truthy7337 when ref pattern does not match wildcard7338 is expected to be falsey7339 #wildcard?7340 is expected to be falsey7341 when pattern is a wildcard7342 is expected to be truthy7343Resolvers::RecentBoardsResolver7344 #resolve7345 when there is no parent7346 returns none if parent is nil7347 when project boards7348 behaves like group and project recent boards resolver7349 calls ::Boards::VisitsFinder7350 avoids N+1 queries7351 returns most recent visited boards7352 returns a set number of boards7353 when group boards7354 behaves like group and project recent boards resolver7355 calls ::Boards::VisitsFinder7356 avoids N+1 queries7357 returns most recent visited boards7358 returns a set number of boards7359ExternalServiceReactiveCachingWorker7360 behaves like reactive cacheable worker7361 #perform7362 when reactive cache worker class is found7363 calls #exclusively_update_reactive_cache!7364 when ReactiveCaching::ExceededReactiveCacheLimit is raised7365 avoids failing the job and tracks via Gitlab::ErrorTracking7366 when reactive cache worker class is not found7367 raises no error7368 when reactive cache worker class is invalid7369 raises no error7370 worker context7371 sets the related class on the job7372 sets the related class on the job when it was passed as a class7373Gitlab::RequestProfiler::Profile7374 .new7375 using old filename7376 returns valid data7377 using new filename7378 returns valid data7379 #content_type7380 when using html file7381 returns valid data7382 when using text file7383 returns valid data7384 when file is unknown7385 returns valid data7386Ci::EnsureStageService#execute7387 when build has a stage assigned7388 does not create a new stage7389 when build does not have a stage assigned7390 creates a new stage7391 when build is invalid7392 does not create a new stage7393 when new stage can not be created because of an exception7394 retries up to two times7395Mutations::Ci::Runner::Delete7396 is expected to require graphql authorizations :delete_runner7397 #resolve7398 when the user cannot admin the runner7399 raises an error7400 with invalid params7401 raises an error7402 when required arguments are missing7403 raises an error7404 when user can delete owned runner7405 with one associated project7406 deletes runner7407 with more than one associated project7408 does not delete project runner7409 when admin can delete runner7410 deletes runner7411DependencyProxy::ImageTtlGroupPolicy7412 relationships7413 is expected to belong to group required: false7414 validations7415 is expected to validate that :group cannot be empty/falsy7416 #enabled7417 is expected to allow :enabled to be ‹true›7418 is expected to allow :enabled to be ‹false›7419 is expected not to allow :enabled to be ‹nil›7420 #ttl7421 is expected to validate that :ttl looks like a number greater than 0 as long as it is not nil7422 .enabled7423 returns policies that are enabled7424Mutations::Clusters::AgentTokens::Delete7425 is expected to eq "ClusterAgentTokenDelete"7426 is expected to require graphql authorizations :admin_cluster7427 #resolve7428 without user permissions7429 fails to delete the cluster agent7430 with user permissions7431 deletes a cluster agent7432 with invalid params7433 raises an error if the cluster agent id is invalid7434ObjectPool::JoinWorker7435 #perform7436 when the pool is not joinable7437 doesn't raise an error7438 when the pool has been joined before7439 succeeds in joining7440Mail quoted-printable transfer encoding patch and Unicode characters7441 with a text email7442 with a body that encodes to exactly 74 characters (final newline)7443 behaves like email encoding7444 enclosing in a new object does not change the encoded original7445 with a body that encodes to exactly 74 characters (no final newline)7446 behaves like email encoding7447 enclosing in a new object does not change the encoded original7448 with a body that encodes to exactly 75 characters7449 behaves like email encoding7450 enclosing in a new object does not change the encoded original7451 with an html email7452 with a body that encodes to exactly 74 characters (final newline)7453 behaves like email encoding7454 enclosing in a new object does not change the encoded original7455 with a body that encodes to exactly 74 characters (no final newline)7456 behaves like email encoding7457 enclosing in a new object does not change the encoded original7458 with a body that encodes to exactly 75 characters7459 behaves like email encoding7460 enclosing in a new object does not change the encoded original7461 a multipart email7462 behaves like email encoding7463 enclosing in a new object does not change the encoded original7464 with non UTF-8 charset7465 can be decoded back7466 behaves like email encoding7467 enclosing in a new object does not change the encoded original7468 with binary content7469 can be encoded with 'base64' content-transfer-encoding7470 binary contents are not modified7471 behaves like email encoding7472 enclosing in a new object does not change the encoded original7473 encoding fails with 'quoted-printable' content-transfer-encoding7474 content cannot be decoded back7475Packages::Go::PackageFinder7476 #exists?7477 with a valid name and version7478 executes SELECT 17479 is expected to eq true7480 with an invalid name7481 is expected to eq false7482 with an invalid version7483 is expected to eq false7484 #execute7485 with a valid name and version7486 executes a single query7487 is expected to eq #<Packages::Package id: 303, project_id: 1606, created_at: "2022-02-04 17:25:45.046887000 +0000", upd...pace1497/my-go-lib", version: "v1.0.1", package_type: "golang", creator_id: 2572, status: "default">7488 with an uninstallable package7489 is expected to eq nil7490 with an invalid name7491 is expected to eq nil7492 with an invalid version7493 is expected to eq nil7494NestedAttributesDuplicatesValidator7495 #validate_each7496 with no scope7497 does not have any errors7498 with duplicates7499 has a duplicate key error7500 with a scope attribute7501 does not have any errors7502 with duplicates7503 has a duplicate key error7504 with a child attribute7505 does not have any errors7506 when name is duplicated7507 has a duplicate error7508 when url is duplicated7509 has a duplicate error7510projects/hooks/index7511 renders webhooks page with "Project Hooks"7512 webhook is rate limited7513 renders "Disabled" badge7514 webhook is permanently disabled7515 renders "Failed to connect" badge7516 webhook is temporarily disabled7517 renders "Fails to connect" badge7518RuboCop::Cop::UsageData::InstrumentationSuperclass7519 with class definition7520 when inheriting from allowed superclass7521 does not register an offense7522 when inheriting from some other superclass7523 registers an offense7524 when not inheriting7525 does not register an offense7526 with dynamic class definition7527 when inheriting from allowed superclass7528 does not register an offense7529 when inheriting from some other superclass7530 registers an offense7531 when not inheriting7532 does not register an offense7533Packages::RemoveTagService7534 #execute7535 with existing tag7536 is expected to change `Packages::Tag.count` by -17537 with nil7538 is expected to raise ArgumentError7539Gitlab::Ci::Status::Build::Preparing7540 #illustration7541 is expected to include :image, :size, :title, and :content7542 .matches?7543 when build is preparing7544 is a correct match7545 when build is not preparing7546 does not match7547Gitlab::Ci::Config::Entry::Hidden7548 .matching?7549 when name starts with dot7550 is expected to be truthy7551 when name does not start with dot7552 is expected to be falsey7553 .new7554 validations7555 when entry config value is correct7556 #value7557 returns key value7558 #valid?7559 is valid7560 when entry value is not correct7561 when config is empty7562 #valid7563 is invalid7564 #leaf?7565 is a leaf7566 #relevant?7567 is not a relevant entry7568projects/settings/operations/show7569 Operations > Alerts7570 renders the Operations Settings page7571 Operations > Error Tracking7572 Settings page7573 renders the Operations Settings page7574 Operations > Prometheus7575 when settings_operations_prometheus_service flag is enabled7576 renders the Operations Settings page7577 when settings_operations_prometheus_service is disabled7578 renders the Operations Settings page7579 Operations > Tracing7580 Settings page7581 renders the Tracing Settings page7582Gitlab::MergeRequests::Mergeability::CheckResult7583 .default_payload7584 returns the expected defaults7585 .success7586 creates a success result7587 uses the default payload7588 when given a payload7589 uses the payload passed7590 .failed7591 creates a failure result7592 uses the default payload7593 when given a payload7594 uses the payload passed7595 .from_hash7596 returns the expected status and payload7597 #to_hash7598 returns the expected hash7599 #failed?7600 when it has failed7601 returns true7602 when it has succeeded7603 returns false7604 #success?7605 when it has failed7606 returns false7607 when it has succeeded7608 returns true7609Gitlab::Database::AsyncIndexes::PostgresAsyncIndex7610 is expected to be a kind of Gitlab::Database::SharedModel(abstract)7611 validations7612 is expected to validate that :name cannot be empty/falsy7613 is expected to validate that the length of :name is at most 637614 is expected to validate that :table_name cannot be empty/falsy7615 is expected to validate that the length of :table_name is at most 637616 is expected to validate that :definition cannot be empty/falsy7617 is expected to validate that the length of :definition is at most 20487618Packages::Nuget::PackageMetadataPresenter7619 #json_url7620 is expected to end with "/api/v4/projects/1613/packages/nuget/metadata/NugetPackage40/1.0.36.json"7621 #archive_url7622 is expected to end with "/api/v4/projects/1613/packages/nuget/download/NugetPackage40/1.0.36/NugetPackage40.1.0.36.nupkg"7623 with package files pending destruction7624 is expected not to include "pending_destruction.nupkg"7625 with packages_installable_package_files disabled7626 is expected to include "pending_destruction.nupkg"7627 #catalog_entry7628 returns an entry structure7629Resolvers::Users::SnippetsResolver7630 #resolve7631 calls SnippetsFinder7632 when using no filter7633 returns expected authored snippets7634 when using filters7635 returns the snippets by visibility7636 returns the snippets by type7637 returns the snippets by single gid7638 returns the snippets by array of gid7639 returns an error if the gid is invalid7640 when user profile is private7641 does not return snippets for that user7642Gitlab::DataBuilder::Deployment7643 .build7644 returns the object kind for a deployment7645 returns data for the given build7646 does not include the deployable URL when there is no deployable7647Gitlab::Database::BackgroundMigrationJob7648 is expected to be a kind of Gitlab::Database::SharedModel(abstract)7649 behaves like having unique enum values7650 has unique values in "status"7651 .for_migration_execution7652 returns jobs matching class_name and arguments7653 normalizes class names by removing leading ::7654 .for_partitioning_migration7655 returns jobs matching class_name and the table_name job argument7656 normalizes class names by removing leading ::7657 .mark_all_as_succeeded7658 marks all matching jobs as succeeded7659 normalizes class_names by removing leading ::7660 returns the number of jobs updated7661 when previous matching jobs have already succeeded7662 does not update non-pending jobs7663 #class_name=7664 when the class_name is given without the leading ::7665 sets the class_name to the given value7666 when the class_name is given with the leading ::7667 removes the leading :: when setting the class_name7668 when the value is nil7669 sets the class_name to nil7670 when the values is blank7671 sets the class_name to the given value7672CronSchedulable7673 for ci_pipeline_schedule7674 behaves like handles set_next_run_at7675 when schedule runs every minute7676 updates next_run_at to the worker's execution time7677 when there are two different schedules in the same time zones7678 sets the sames next_run_at7679 when cron is updated for existing schedules7680 updates next_run_at automatically7681Projects::ExportJobFinder7682 #execute7683 when queried for a project7684 scopes to the project7685 when queried by job id7686 filters records7687 when queried by status7688 filters records7689 when queried by invalid status7690 raises exception7691JiraConnect::SyncService7692 #execute7693 calls Atlassian::JiraConnect::Client#store_dev_info and logs the response7694 when a request returns an error7695 logs the response as an error7696ResourceEvents::ChangeMilestoneService7697 behaves like timebox(milestone or iteration) resource events creator7698 when milestone/iteration is added7699 creates the expected event record7700 when milestone/iteration is removed7701 creates the expected event records7702 behaves like timebox(milestone or iteration) resource events creator7703 when milestone/iteration is added7704 creates the expected event record7705 when milestone/iteration is removed7706 creates the expected event records7707Projects::ScheduleBulkRepositoryShardMovesWorker7708 behaves like schedules bulk repository shard moves7709 #perform7710 is labeled as idempotent7711 performs multiple times sequentially without raising an exception7712 schedules container repository storage moves7713BulkImports::Groups::Transformers::MemberAttributesTransformer7714 returns nil when receives no data7715 returns nil when no user is found7716 when the user is not confirmed7717 returns nil even when the primary email match7718 returns nil even when a secondary email match7719 when the user is confirmed7720 finds the user by the primary email7721 finds the user by the secondary email7722 format access level7723 ignores record if no access level is given7724 ignores record if is not a valid access level7725 source user id caching7726 when user gid is present7727 caches source user id7728 when user gid is missing7729 does not use caching7730projects/blob/_viewer.html.haml7731 when the viewer is loaded asynchronously7732 when there is no render error7733 adds a URL to the blob viewer element7734 renders the loading indicator7735 when there is a render error7736 renders the error7737 when the viewer is loaded synchronously7738 when there is no render error7739 prepares the viewer7740 renders the viewer7741 when there is a render error7742 renders the error7743Ci::PipelineArtifacts::CodeCoveragePresenter7744 #for_files7745 when code coverage has data7746 when filenames is empty7747 returns hash without coverage7748 when filenames do not match code coverage data7749 returns hash without coverage7750 when filenames matches code coverage data7751 when asking for one filename7752 returns coverage for the given filename7753 when asking for multiple filenames7754 returns coverage for a the given filenames7755Integrations::Zentao7756 #create7757 stores data in data_fields correctly7758 #fields7759 returns custom fields7760 #test7761 gets response from Gitlab::Zentao::Client#ping7762 #help7763 renders prompt information7764ProjectDestroyWorker7765 #perform7766 deletes the project7767 does not raise error when project could not be found7768 does not raise error when user could not be found7769AnyFieldValidator7770 when validation is instantiated correctly7771 raises an error if no fields are defined7772 validates if only one field is present7773 when validation is missing the fields parameter7774 raises an error7775PrometheusAlertEntity7776 when user can read prometheus alerts7777 exposes prometheus_alert attributes7778 exposes alert_path7779Constraints::GroupUrlConstrainer7780 #matches?7781 valid request7782 is expected to be truthy7783 valid request for nested group7784 is expected to be truthy7785 valid request for nested group with reserved top level name7786 is expected to be truthy7787 invalid request7788 is expected to be falsey7789 when the request matches a redirect route7790 for a root group7791 and is a GET request7792 is expected to be truthy7793 and is NOT a GET request7794 is expected to be falsey7795 for a nested group7796 is expected to be truthy7797Resolvers::Kas::AgentConfigurationsResolver7798 is expected to eq Types::Kas::AgentConfigurationType7799 is expected to be truthy7800 is expected to include {:calls_gitaly => true}7801 #resolve7802 returns agents configured for the project7803 an error is returned from the KAS client7804 raises a graphql error7805 user does not have permission7806 is expected to be empty7807BulkImports::Projects::Pipelines::PipelineSchedulesPipeline7808 imports schedule into destination project7809 is active7810 imports the schedule but active is false7811PagesWorker7812 calls UpdatePagesService7813ContainerTagEntity7814 exposes required informations7815 when user can manage repositories7816 exposes destroy_path7817 when user cannot manage repositories7818 does not expose destroy_path7819LicenseTemplate7820 #content7821 calls a proc exactly once if provided7822 returns a string if provided7823 #resolve!7824 updates placeholders in a copy of the template content7825Gitlab::Import::Metrics7826 #track_start_import7827 when project is not a github import7828 does not emit importer metrics7829 when project is a github import7830 emits importer metrics7831 #track_failed_import7832 when project is not a github import7833 does not emit importer metrics7834 when project is a github import7835 emits importer metrics7836 #track_finished_import7837 emits importer metrics7838 when project is not a github import7839 does not emit importer metrics7840 #issues_counter7841 creates a counter for issues7842 #merge_requests_counter7843 creates a counter for issues7844RuboCop::Cop::Migration::UpdateColumnInBatches7845 outside of a migration7846 does not register any offenses7847 when in migration7848 behaves like a migration file with no spec file7849 registers an offense when using update_column_in_batches7850 behaves like a migration file with a spec file7851 does not register any offenses7852 when in a post migration7853 behaves like a migration file with no spec file7854 registers an offense when using update_column_in_batches7855 behaves like a migration file with a spec file7856 does not register any offenses7857 EE migrations7858 when in a migration7859 behaves like a migration file with no spec file7860 registers an offense when using update_column_in_batches7861 behaves like a migration file with a spec file7862 does not register any offenses7863 when in a post migration7864 behaves like a migration file with no spec file7865 registers an offense when using update_column_in_batches7866 behaves like a migration file with a spec file7867 does not register any offenses7868Gitlab::SidekiqMiddleware::AdminMode::Server7869 yields block7870 job has no admin mode field7871 session is not bypassed7872 job has admin mode field7873 nil admin mode id7874 session is not bypassed7875 valid admin mode id7876 session is bypassed7877 admin mode setting disabled7878 yields block7879 session is not bypassed7880VulnerabilityFindingSignatureHelpers7881 #priority7882 returns numeric values of the priority string7883 #self.priority7884 returns the numeric value of the provided string7885Gitlab::Import::MergeRequestCreator7886 #execute7887 merge request already exists7888 updates the data7889 new merge request7890 creates a new merge request7891Ci::GenerateKubeconfigService7892 #execute7893 adds a cluster, and a user and context for each available agent7894Types::BaseArgument7895 adds a formatted `deprecated_reason` to the subject7896 appends to the description if given7897 does not append to the description if it is absent7898 adds information about the replacement if provided7899 supports named reasons: renamed7900 supports named reasons: discouraged7901 validations7902 raises an informative error if `deprecation_reason` is used7903 raises an error if a required property is missing7904 raises an error if milestone is not a String7905 required argument declarations7906 accepts nullable, required arguments7907 accepts required, non-nullable arguments7908 accepts non-required arguments7909 accepts no required argument declaration7910Gitlab::Middleware::ReleaseEnv7911 #call7912 calls the app and clears the env7913Gitlab::View::Presenter::Factory7914 #initialize7915 without optional parameters7916 takes a subject and optional params7917 with optional parameters7918 takes a subject and optional params7919 #fabricate!7920 detects the presenter based on the given subject7921 uses the presenter_class if given on #initialize7922Gitlab::SQL::RecursiveCTE7923 #to_arel7924 generates an Arel relation for the CTE body7925 #alias_to7926 returns an alias for the CTE7927 replaces dots with an underscore7928 #apply_to7929 applies a CTE to an ActiveRecord::Relation7930 behaves like CTE with MATERIALIZED keyword examples7931 adding MATERIALIZE to the CTE7932 when PG version is <127933 does not add MATERIALIZE keyword7934 when PG version is >=127935 adds MATERIALIZE keyword7936 when version is higher than 127937 adds MATERIALIZE keyword7938 when materialized is disabled7939 does not add MATERIALIZE keyword7940Gitlab::Ci::Reports::TestReportsComparer7941 #suite_comparers7942 when head and base reports include two test suites7943 returns test suite comparers with specified values7944 #total_status7945 when all tests cases are success in head suites7946 returns the total status7947 when there is a failed test case in head suites7948 returns the total status in head suite7949 when there is an error test case in head suites7950 returns the total status in head suite7951 #total_count7952 returns the total test counts in head suites7953 #resolved_count7954 when there is a resolved failure test case in head suites7955 returns the correct count7956 when there is a resolved error test case in head suites7957 returns the correct count7958 when there are no resolved test cases in head suites7959 returns the correct count7960 #failed_count7961 when there is a failed test case in head suites7962 returns the correct count7963 when there are no failed test cases in head suites7964 returns the correct count7965 #error_count7966 when there is an error test case in head suites7967 returns the correct count7968 when there are no error test cases in head suites7969 returns the correct count7970FeatureFlagEntity7971 has feature flag attributes7972Clusters::Cleanup::ServiceAccountWorker7973 #perform7974 when cluster.cleanup_status is cleanup_removing_service_account7975 calls Clusters::Cleanup::ServiceAccountService7976 when cluster.cleanup_status is not cleanup_removing_service_account7977 does not call Clusters::Cleanup::ServiceAccountService7978TestCaseEntity7979 #as_json7980 when test case is success7981 contains correct test case details7982 when test case is failed7983 contains correct test case details7984 when no test name is entered7985 contains correct test case details7986 when attachment is present7987 returns the attachment_url7988 when attachment is not present7989 returns a nil attachment_url7990Resolvers::Clusters::AgentActivityEventsResolver7991 is expected to eq Types::Clusters::AgentActivityEventType7992 is expected to be truthy7993 #resolve7994 returns events associated with the agent7995 user does not have permission7996 is expected to be empty7997BulkImports::Projects::Transformers::ProjectAttributesTransformer7998 #transform7999 transforms name to destination name8000 adds path as parameterized name8001 transforms visibility level8002 adds import type8003 converts all keys to symbols8004 namespace_id8005 when destination namespace is present8006 adds namespace_id8007 when destination namespace is blank8008 does not add namespace_id key8009gitlab:lfs rake tasks8010 check8011 outputs the integrity check for each batch8012 errors out about missing files on the file system8013 errors out about invalid checksum8014RuboCop::Cop::Migration::PreventIndexCreation8015 when in migration8016 when adding an index to a forbidden table8017 when table_name is a symbol8018 registers an offense when add_index is used8019 registers an offense when add_concurrent_index is used8020 when table_name is a string8021 registers an offense when add_index is used8022 registers an offense when add_concurrent_index is used8023 when table_name is a constant8024 registers an offense when add_concurrent_index is used8025 when adding an index to a regular table8026 does not register an offense8027 when using a constant8028 does not register an offense8029 when outside of migration8030 does not register an offense8031GroupDeployToken8032 relationships8033 is expected to belong to group required: false8034 is expected to belong to deploy_token required: false8035 validation8036 is expected to validate that :deploy_token cannot be empty/falsy8037 is expected to validate that :group cannot be empty/falsy8038 is expected to validate that :deploy_token_id is case-sensitively unique within the scope of :group_id8039 #has_access_to_group?8040 for itself8041 is expected to eq true8042 for a subgroup8043 is expected to eq true8044 for other group8045 is expected to eq false8046Resolvers::ProjectPipelineStatisticsResolver8047 is expected to have nullable GraphQL type PipelineAnalytics8048 #resolve8049 returns the pipelines statistics for a given project8050 when the user does not have access to the CI/CD analytics data8051 returns nil8052Types::Ci::DetailedStatusType8053 is expected to eq "DetailedStatus"8054 has all fields8055 id field8056 correctly renders the field8057 action field8058 correctly renders the field8059RspecFlaky::Example8060 #initialize8061 when given an Rspec::Core::Example that responds to #example8062 behaves like a valid Example instance8063 returns valid attributes8064 when given an Rspec::Core::Example that does not respond to #example8065 behaves like a valid Example instance8066 returns valid attributes8067 #uid8068 returns a hash of the full description8069 #example_id8070 returns the ID of the RSpec::Core::Example8071 #attempts8072 returns the attempts of the RSpec::Core::Example8073 #file8074 returns the metadata[:file_path] of the RSpec::Core::Example8075 #line8076 returns the metadata[:line_number] of the RSpec::Core::Example8077 #description8078 returns the metadata[:full_description] of the RSpec::Core::Example8079 #status8080 returns the execution_result.status of the RSpec::Core::Example8081 #exception8082 returns the execution_result.exception of the RSpec::Core::Example8083Types::PrometheusAlertType8084 is expected to eq "PrometheusAlert"8085 has the expected fields8086 is expected to require graphql authorizations :read_prometheus_alerts8087Gitlab::LetsEncrypt8088 .enabled?8089 when terms of service are accepted8090 is expected to eq true8091 when terms of service are not accepted8092 is expected to eq false8093 .terms_of_service_url8094 returns the url8095Users::BatchStatusCleanerService8096 cleans up scheduled user statuses8097 does not affect rows with future clear_status_at8098 does not affect rows without clear_status_at8099 batch_size8100 clears status in batches8101Gitlab::GithubImport::MilestoneFinder8102 #id_for8103 with a cache in place8104 returns the milestone ID of the given issuable8105 returns nil for an empty cache key8106 returns nil for an issuable with a non-existing milestone8107 without a cache in place8108 returns nil8109 #build_cache8110 builds the cache of all project milestones8111 #cache_key_for8112 returns the cache key for an IID8113Resolvers::Ci::RunnerSetupResolver8114 #resolve8115 with container platforms8116 returns install instructions8117 does not return register instructions8118 with regular platforms8119 returns install and register instructions8120Gitlab::Analytics::CycleAnalytics::Sorting8121 when invalid sorting params are given8122 falls back to end_event DESC sorting8123 sorting end_event8124 direction desc8125 is expected to eq [#<Arel::Nodes::Descending:0x00007ff3af55cdf0 @expr=#<struct Arel::Attributes::Attribute relation=#<A...nteger, removed_lines: integer, target_project_id: integer)>, @table_alias=nil>, name="merged_at">>]8126 direction asc8127 is expected to eq [#<Arel::Nodes::Ascending:0x00007ff3af2ef658 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar...nteger, removed_lines: integer, target_project_id: integer)>, @table_alias=nil>, name="merged_at">>]8128 sorting duration8129 direction desc8130 is expected to eq [#<Arel::Nodes::Descending:0x00007ff3af035408 @expr=#<Arel::Nodes::Subtraction:0x00007ff3af035430 @le...ger, merge_ref_sha: binary, draft: boolean)>, @table_alias=nil>, name="created_at">, @operator=:->>]8131 direction asc8132 is expected to eq [#<Arel::Nodes::Ascending:0x00007ff3aed5ef40 @expr=#<Arel::Nodes::Subtraction:0x00007ff3aed5ef68 @lef...ger, merge_ref_sha: binary, draft: boolean)>, @table_alias=nil>, name="created_at">, @operator=:->>]8133Gitlab::SubmoduleLinks8134 #for8135 when there is no .gitmodules file8136 returns no links8137 when the submodule is unknown8138 returns no links8139 when the submodule is known8140 returns links and caches the by ref8141 when ref name contains a dash8142 returns links8143 and the diff information is available8144 the returned links include the compare link8145 but the submodule url has changed8146 the returned links do not include the compare link8147GroupDeployKeysGroupPolicy8148 edit a group deploy key for a given group8149 is allowed when the user is an owner of this group8150 is not allowed when the user is not an owner of this group8151JiraConnect::SyncBuildsWorker8152 behaves like worker with data consistency8153 .get_data_consistency_feature_flag_enabled?8154 returns true8155 .get_data_consistency8156 returns correct data consistency8157 #perform8158 when pipeline exists8159 calls the Jira sync service8160 when pipeline does not exist8161 does not call the sync service8162Gitlab::Metrics::Dashboard::Stages::GrafanaFormatter8163 #transform!8164 when the query and resources are configured correctly8165 is expected to eq {:panel_groups=>[{:panels=>[{:metrics=>[{:id=>"In_0", :label=>"In", :prometheus_endpoint_path=>"/foo/...nstance=~\"localhost:9121\"}[1m]))"}], :title=>"Network I/O", :type=>"area-chart", :y_label=>""}]}]}8166 when a panelId is not included in the grafana_url8167 is expected to eq {:panel_groups=>[{:panels=>[{:metrics=>[{:id=>"In_0", :label=>"In", :prometheus_endpoint_path=>"/foo/...nstance=~\"localhost:9121\"}[1m]))"}], :title=>"Network I/O", :type=>"area-chart", :y_label=>""}]}]}8168 when there is also no valid panel in the dashboard8169 raises a processing error8170 when an input is invalid8171 raises a processing error8172Gitlab::Template::MetricsDashboardTemplate8173 .all8174 combines the globals and rest8175 #content8176 loads the full file8177 behaves like file template shared examples8178 .all8179 strips the .metrics-dashboard.yml suffix8180 ensures that the template name is used exactly once8181 .by_category8182 returns sorted results8183 .find8184 returns nil if the file does not exist8185 returns the corresponding object of a valid file8186 #<=>8187 sorts lexicographically8188GraphqlTriggers8189 .issuable_assignees_updated8190 triggers the issuableAssigneesUpdated subscription8191Gitlab::Database::PostgresIndexBloatEstimate8192 is expected to be a kind of Gitlab::Database::SharedModel(abstract)8193 #bloat_size8194 returns the bloat size in bytes8195 #bloat_size_bytes8196 is an alias of #bloat_size8197 #index8198 belongs to a PostgresIndex8199projects/issues/_related_branches8200 shows the related branches with their build status8201MemberUserEntity8202 matches json schema8203 correctly exposes `avatar_url`8204 correctly exposes `blocked`8205 correctly exposes `two_factor_enabled`8206 correctly exposes `status.emoji`8207ExportedProtectedBranch8208 Associations8209 is expected to have many push_access_levels8210 .push_access_levels8211 returns the correct push access levels8212Gitlab::Ci::Parsers::Codequality::CodeClimate8213 #parse!8214 when data is code_climate style JSON8215 when there are no degradations8216 returns a codequality report8217 when there are degradations8218 returns a codequality report8219 when data is not a valid JSON string8220 sets error_message8221 when degradations contain an invalid one8222 stops parsing the report8223Gitlab::Ci::Build::Rules::Rule::Clause8224 .fabricate8225 when type is valid8226 type: "changes", result: Gitlab::Ci::Build::Rules::Rule::Clause::Changes8227 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Changes8228 type: "exists", result: Gitlab::Ci::Build::Rules::Rule::Clause::Exists8229 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Exists8230 type: "if", result: Gitlab::Ci::Build::Rules::Rule::Clause::If8231 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::If8232 when type is invalid8233 is expected to be nil8234 when type is 'variables'8235 is expected to be nil8236Types::ContainerExpirationPolicyType8237 is expected to eq "ContainerExpirationPolicy"8238 is expected to eq "A tag expiration policy designed to keep only the images that matter most"8239 is expected to require graphql authorizations :destroy_container_image8240 older_than field8241 returns older_than enum8242 keep n field8243 returns keep enum8244 name_regex field8245 returns untrusted regexp type8246 name_regex_keep field8247 returns untrusted regexp type8248Ci::DagStageEntity8249 #as_json8250 contains valid name8251 contains the job groups8252 matches schema8253Gitlab::DependencyLinker::CargoTomlLinker8254 .support?8255 supports Cargo.toml8256 does not support other files8257 #link8258/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/8259 links dependencies8260/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/8261 does not contain metadata identified as package8262Namespaces::InviteTeamEmailWorker8263 sends the email8264 when user id is non-existent8265 does not send the email8266 when group id is non-existent8267 does not send the email8268Gitlab::Database::EachDatabase8269 .each_database_connection8270 yields each connection after connecting SharedModel8271 .each_model_connection8272 when the model inherits from SharedModel8273 yields each model with SharedModel connected to each database connection8274 when the model limits connection names8275 only yields the model with SharedModel connected to the limited connections8276 when the model does not inherit from SharedModel8277 yields each model after connecting SharedModel8278Tooling::Crystalball::CoverageLinesExecutionDetector8279 #detect8280 is expected to eq ["file.rb"]8281 with no changes8282 is expected to eq []8283 with previously uncovered file8284 is expected to eq ["file.rb"]8285 with path outside of root8286 is expected to eq []8287 with path in excluded prefix8288 is expected to eq []8289RuboCop::Cop::Migration::Timestamps8290 in migration8291 registers an offense when the "timestamps" method is used8292 does not register an offense when the "timestamps" method is not used8293 does not register an offense when the "timestamps_with_timezone" method is used8294 outside of migration8295 registers no offense8296Packages::Pypi::Metadatum8297 relationships8298 is expected to belong to package required: false8299 validations8300 is expected to validate that :package cannot be empty/falsy8301 #pypi_package_type8302 will not allow a package with a different package_type8303Ci::VariableEntity8304 #as_json8305 contains required fields8306Projects::DestroyRollbackService8307 #execute8308 restores the repositories8309Types::ContainerRepositorySortEnum8310 is expected to eq "ContainerRepositorySort"8311 exposes all the existing issue sort values8312 behaves like common sort values8313 exposes all the existing common sort values8314Gitlab::Ci::Ansi2json::Result8315 #size8316 when offset is at the start8317 returns the full size8318 when offset is not zero8319 returns the remaining size8320 #total8321 returns size of stread8322Gitlab::Auth::BlockedUserTracker8323 #log_blocked_user_activity!8324 when user is not blocked8325 does not log blocked user activity8326 when user is not blocked8327 logs blocked user activity8328Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumns8329 #array_aggregated_column_names8330 is expected to eq ["issues_relative_position_array", "issues_id_array"]8331 #original_column_names8332 is expected to eq ["relative_position", "id"]8333 #cursor_values8334 returns the keyset pagination cursor values from the column arrays as SQL expression8335RuboCop::Cop::Migration::ReferToIndexByName8336 when in migration8337 when existing indexes are referred to without an explicit name8338 registers an offense8339 when outside migration8340 registers no offenses8341Integrations::JiraTrackerData8342 associations8343 is expected to belong to integration required: false8344 deployment_type8345 is expected to define :deployment_type as an enum, backed by an integer, using a prefix of :deployment, with possible values ‹[:unknown, :server, :cloud]›8346 encrypted attributes8347 is expected to contain exactly :api_url, :password, :url, and :username8348GroupDeployKeyEntity8349 returns group deploy keys with a group a user can read8350 is expected to eq {:can_edit=>false, :created_at=>2022-02-04 17:26:58.331891771 +0000, :fingerprint=>"0a:c9:c7:83:2b:28..., :id=>2, :title=>"My title 1173", :updated_at=>2022-02-04 17:26:58.331891771 +0000, :user_id=>2683}8351API::Validations::Validators::ProjectPortable8352 valid portable8353 does not raise a validation error8354 empty params8355 raises a validation error8356 not portable8357 raises a validation error8358Types::DesignManagement::DesignCollectionType8359 is expected to require graphql authorizations :read_design8360 has the expected fields8361Gitlab::ImportExport::HashUtil8362 .deep_symbolize_array!8363 symbolizes keys8364 .deep_symbolize_array_with_date!8365 symbolizes keys8366 transforms date strings into Time objects8367Banzai::Pipeline::EmailPipeline8368 .filters8369 returns the expected type8370 excludes ImageLazyLoadFilter8371 shows punycode for autolinks8372RuboCop::Cop::QA::ElementWithPattern8373 in a QA file8374 registers an offense for elements with a pattern8375 does not register an offense for element without a pattern8376 outside of a migration spec file8377 does not register an offense8378dashboard/projects/_nav.html.haml8379 highlights All tab by default8380 highlights Personal tab personal param is present8381API::Helpers::GraphqlHelpers8382 run_graphql!8383 when transform function is provided8384 returns the expected result8385 when a transform function is not provided8386 returns the expected result8387Sidebars::Projects::Menus::ExternalIssueTrackerMenu8388 does not contain any sub menu8389 #render?8390 when active external issue tracker8391 is present8392 returns true8393 is not present8394 returns false8395FromIntersect8396 behaves like from set operator8397 #from_intersect8398 selects from the results of the INTERSECT8399 supports the use of a custom alias for the sub query8400 supports keeping duplicate rows8401Types::AlertManagement::IntegrationType8402 is expected to eq "AlertManagementIntegration"8403 exposes the expected fields8404RuboCop::Cop::Gitlab::AvoidUploadedFileFromParams8405 when using UploadedFile.from_params8406 flags its call8407Types::Ci::StageType8408 is expected to eq "CiStage"8409 exposes the expected fields8410Types::Ci::Config::ConfigType8411 is expected to eq "CiConfig"8412 exposes the expected fields8413Types::CiConfiguration::Sast::EntityInputType8414 is expected to eq "SastCiConfigurationEntityInput"8415 is expected to contain exactly "field", "defaultValue", and "value"8416Gitlab::SidekiqMiddleware::ExtraDoneLogMetadata8417 #call8418 merges Application#logging_extras in to job8419 does not raise when the worker does not respond to #done_log_extra_metadata8420Projects::Security::ConfigurationHelper8421 security_upgrade_path8422 is expected to eq "https://about.gitlab.com/pricing/"8423PipelineQueue8424 sets a default pipelines queue automatically8425Gitlab::NoCacheHeaders8426 #no_cache_headers8427 raises a RuntimeError8428Admin::UserSerializer8429 when there is a single object provided8430 contains important elements for the admin user table8431API::Helpers::Pagination8432 delegates to OffsetPagination8433Gitlab::Database::LoadBalancing::ActionCableCallbacks8434 .wrapper8435 uses primary and then releases the connection and clears the session8436 with an exception8437 releases the connection and clears the session8438Resolvers::Ci::RunnerPlatformsResolver8439 #resolve8440 returns all possible runner platforms8441Types::Admin::Analytics::UsageTrends::MeasurementIdentifierEnum8442 is expected to eq "MeasurementIdentifier"8443 exposes all the existing identifier values8444Types::Ci::RecentFailuresType8445 is expected to eq "RecentFailures"8446 contains attributes related to a recent failure history for a test case8447API::Entities::BulkImports::EntityFailure8448 has the correct attributes8449RuboCop::Cop::Gitlab::ChangeTimezone8450 Time.zone=8451 registers an offense with no 2nd argument8452Types::Packages::PackageDependencyLinkType8453 includes package file fields8454Types::ProjectStatisticsType8455 has all the required fields8456Knapsack report was generated. Preview:8457{8458 "spec/models/group_spec.rb": 219.07877911800006,8459 "spec/models/packages/package_spec.rb": 116.83182776499962,8460 "spec/models/project_team_spec.rb": 134.19823439999982,8461 "spec/models/concerns/noteable_spec.rb": 99.26520955199976,8462 "spec/services/merge_requests/squash_service_spec.rb": 57.72161644900007,8463 "spec/models/project_wiki_spec.rb": 44.30042815300021,8464 "spec/services/projects/destroy_service_spec.rb": 54.12172643800022,8465 "spec/models/commit_status_spec.rb": 30.96872451299987,8466 "spec/models/design_management/design_spec.rb": 20.003767983000216,8467 "spec/lib/gitlab/asciidoc_spec.rb": 35.4358967750004,8468 "spec/uploaders/attachment_uploader_spec.rb": 27.383511303999512,8469 "spec/policies/wiki_page_policy_spec.rb": 31.594077091000145,8470 "spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb": 6.164393322000251,8471 "spec/services/projects/unlink_fork_service_spec.rb": 36.13496169500013,8472 "spec/finders/group_descendants_finder_spec.rb": 22.83666347899998,8473 "spec/services/design_management/copy_design_collection/copy_service_spec.rb": 25.403082052000173,8474 "spec/lib/gitlab/github_import/user_finder_spec.rb": 21.34872810900015,8475 "spec/lib/gitlab/import_export/import_export_equivalence_spec.rb": 21.428380384000775,8476 "spec/models/notification_recipient_spec.rb": 19.65325761799977,8477 "spec/services/system_notes/merge_requests_service_spec.rb": 15.649983885999973,8478 "spec/lib/banzai/pipeline/gfm_pipeline_spec.rb": 16.645850394999798,8479 "spec/lib/gitlab/email/message/repository_push_spec.rb": 16.315859311000168,8480 "spec/services/clusters/applications/check_installation_progress_service_spec.rb": 16.833606119999786,8481 "spec/models/packages/package_file_spec.rb": 12.417845551000028,8482 "spec/models/wiki_page/meta_spec.rb": 7.690684598999724,8483 "spec/models/concerns/project_api_compatibility_spec.rb": 13.734454313000242,8484 "spec/services/clusters/applications/check_uninstall_progress_service_spec.rb": 16.32373771099992,8485 "spec/services/alert_management/alerts/update_service_spec.rb": 8.863206553000055,8486 "spec/lib/gitlab/utils/markdown_spec.rb": 4.062393077000706,8487 "spec/lib/gitlab/import_export/import_failure_service_spec.rb": 16.031228275000103,8488 "spec/models/terraform/state_spec.rb": 11.402543513999262,8489 "spec/lib/gitlab/auth/ldap/person_spec.rb": 2.3254892690001725,8490 "spec/models/project_snippet_spec.rb": 7.6323468730006425,8491 "spec/services/milestones/promote_service_spec.rb": 11.450199991999398,8492 "spec/services/serverless/associate_domain_service_spec.rb": 13.808049983999808,8493 "spec/models/namespace/root_storage_statistics_spec.rb": 10.180732096000611,8494 "spec/services/spam/spam_verdict_service_spec.rb": 3.2686834520000048,8495 "spec/lib/banzai/filter/external_link_filter_spec.rb": 2.480303086999811,8496 "spec/models/concerns/redactable_spec.rb": 11.360245417999977,8497 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 7.075414959000227,8498 "spec/lib/banzai/filter/references/design_reference_filter_spec.rb": 3.717112635000376,8499 "spec/lib/bulk_imports/projects/pipelines/snippets_repository_pipeline_spec.rb": 9.664290186000471,8500 "spec/models/ci/sources/pipeline_spec.rb": 6.830100299999685,8501 "spec/models/snippet_input_action_spec.rb": 2.003414406000047,8502 "spec/tasks/gitlab/cleanup_rake_spec.rb": 6.85464416800005,8503 "spec/presenters/ci/stage_presenter_spec.rb": 8.033911241000169,8504 "spec/services/todos/destroy/project_private_service_spec.rb": 6.659223913999995,8505 "spec/lib/gitlab/slash_commands/command_spec.rb": 8.370508583000628,8506 "spec/services/branches/delete_merged_service_spec.rb": 7.455826557999899,8507 "spec/validators/addressable_url_validator_spec.rb": 4.426915426999585,8508 "spec/services/deployments/older_deployments_drop_service_spec.rb": 6.482683408000412,8509 "spec/models/ci/secure_file_spec.rb": 5.470599150999988,8510 "spec/graphql/resolvers/environments_resolver_spec.rb": 7.7738782930000525,8511 "spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb": 9.166836276999675,8512 "spec/finders/access_requests_finder_spec.rb": 7.796210661000259,8513 "spec/lib/backup/repositories_spec.rb": 6.8449005279999255,8514 "spec/finders/packages/conan/package_file_finder_spec.rb": 2.747507265000422,8515 "spec/lib/gitlab/import_export/base/relation_factory_spec.rb": 5.515569987999697,8516 "spec/services/merge_requests/reload_diffs_service_spec.rb": 5.642511527000352,8517 "spec/models/prometheus_alert_spec.rb": 3.9247663979995195,8518 "spec/graphql/types/terraform/state_version_type_spec.rb": 2.4193140010002026,8519 "spec/models/event_collection_spec.rb": 3.7559806919998664,8520 "spec/lib/gitlab/file_finder_spec.rb": 5.710297411999818,8521 "spec/lib/gitlab/runtime_spec.rb": 1.5311393339998176,8522 "spec/models/integrations/slack_slash_commands_spec.rb": 3.4768177149999246,8523 "spec/finders/security/license_compliance_jobs_finder_spec.rb": 4.617780861000028,8524 "spec/lib/gitlab/ci/ansi2json_spec.rb": 1.5304854050000358,8525 "spec/services/commits/commit_patch_service_spec.rb": 4.724060751999787,8526 "spec/serializers/group_child_serializer_spec.rb": 4.947488794000492,8527 "spec/services/commits/cherry_pick_service_spec.rb": 5.779207556000074,8528 "spec/tasks/gitlab/web_hook_rake_spec.rb": 5.774304055999892,8529 "spec/graphql/resolvers/group_issues_resolver_spec.rb": 3.9378006370006915,8530 "spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb": 5.320324573999642,8531 "spec/workers/new_note_worker_spec.rb": 3.7745152899997265,8532 "spec/finders/packages/build_infos_finder_spec.rb": 2.9738416860000143,8533 "spec/models/pages/lookup_path_spec.rb": 3.9891570529998717,8534 "spec/lib/bulk_imports/projects/pipelines/issues_pipeline_spec.rb": 4.232471432999773,8535 "spec/services/pages_domains/create_acme_order_service_spec.rb": 2.3760657049997462,8536 "spec/models/projects/topic_spec.rb": 2.4007789529996444,8537 "spec/graphql/resolvers/design_management/design_resolver_spec.rb": 2.9985967140000866,8538 "spec/services/milestones/closed_issues_count_service_spec.rb": 4.090657454000393,8539 "spec/lib/gitlab/redis/boolean_spec.rb": 0.7074552020003466,8540 "spec/models/identity_spec.rb": 1.7867876039999828,8541 "spec/rubocop/cop/graphql/descriptions_spec.rb": 1.0431225839993203,8542 "spec/policies/alert_management/alert_policy_spec.rb": 2.50633652399938,8543 "spec/models/integrations/chat_message/alert_message_spec.rb": 3.109251634999964,8544 "spec/lib/gitlab/query_limiting/transaction_spec.rb": 0.9045087160002367,8545 "spec/services/merge_requests/add_context_service_spec.rb": 3.8616600229997857,8546 "spec/views/projects/merge_requests/edit.html.haml_spec.rb": 4.547740607000378,8547 "spec/tasks/gitlab/gitaly_rake_spec.rb": 1.1136859689995617,8548 "spec/finders/design_management/designs_finder_spec.rb": 2.7855301919998965,8549 "spec/lib/container_registry/migration_spec.rb": 0.8310020919998351,8550 "spec/models/clusters/agents/activity_event_spec.rb": 3.5097060719999718,8551 "spec/lib/gitlab/slash_commands/presenters/access_spec.rb": 0.7229969010004424,8552 "spec/services/ci/job_token_scope/add_project_service_spec.rb": 1.6701638430004095,8553 "spec/lib/banzai/filter/inline_diff_filter_spec.rb": 0.6850549340006182,8554 "spec/models/ci/build_trace_spec.rb": 0.7707231669992325,8555 "spec/services/personal_access_tokens/last_used_service_spec.rb": 1.0755129720000696,8556 "spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb": 3.1780295190001198,8557 "spec/lib/gitlab/integrations/sti_type_spec.rb": 2.903449252000428,8558 "spec/lib/gitlab/config/entry/composable_hash_spec.rb": 0.8221273130002373,8559 "spec/lib/gitlab/hook_data/base_builder_spec.rb": 0.8504364100008388,8560 "spec/lib/gitlab/marker_range_spec.rb": 0.674779113999648,8561 "spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb": 2.1043096879993755,8562 "spec/services/members/projects/bulk_creator_service_spec.rb": 2.737144105999505,8563 "spec/lib/api/entities/merge_request_approvals_spec.rb": 2.278436153000257,8564 "spec/services/compare_service_spec.rb": 2.177467882000201,8565 "spec/tooling/rspec_flaky/config_spec.rb": 0.7064272620000338,8566 "spec/finders/packages/go/module_finder_spec.rb": 1.1675647140000365,8567 "spec/rubocop/migration_helpers_spec.rb": 0.6218518780005979,8568 "spec/workers/clusters/applications/activate_service_worker_spec.rb": 2.3736006950002775,8569 "spec/workers/expire_job_cache_worker_spec.rb": 0.9923454879999554,8570 "spec/helpers/projects/terraform_helper_spec.rb": 0.9088390060005622,8571 "spec/lib/bitbucket_server/representation/comment_spec.rb": 0.7854884050002511,8572 "spec/models/snippets/repository_storage_move_spec.rb": 0.9766638699993564,8573 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_finished_spec.rb": 1.8662418470003104,8574 "spec/lib/gitlab/phabricator_import/issues/importer_spec.rb": 1.7706741550000515,8575 "spec/models/ref_matcher_spec.rb": 0.5438933049999832,8576 "spec/graphql/resolvers/recent_boards_resolver_spec.rb": 1.5063975459997891,8577 "spec/workers/external_service_reactive_caching_worker_spec.rb": 3.5530247090000557,8578 "spec/lib/gitlab/request_profiler/profile_spec.rb": 0.24850874900039344,8579 "spec/services/ci/ensure_stage_service_spec.rb": 2.2636052640000344,8580 "spec/graphql/mutations/ci/runner/delete_spec.rb": 2.6337133239994728,8581 "spec/models/dependency_proxy/image_ttl_group_policy_spec.rb": 0.6588117060000513,8582 "spec/graphql/mutations/clusters/agent_tokens/delete_spec.rb": 2.144476384000882,8583 "spec/workers/object_pool/join_worker_spec.rb": 1.2436253880005097,8584 "spec/initializers/mail_encoding_patch_spec.rb": 0.6852451840004505,8585 "spec/finders/packages/go/package_finder_spec.rb": 1.6157798279991766,8586 "spec/validators/nested_attributes_duplicates_validator_spec.rb": 0.5392298059996392,8587 "spec/views/projects/hooks/index.html.haml_spec.rb": 1.1547830859999522,8588 "spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb": 0.36808129899964115,8589 "spec/services/packages/remove_tag_service_spec.rb": 1.1999360319996413,8590 "spec/lib/gitlab/ci/status/build/preparing_spec.rb": 1.2563290570005847,8591 "spec/lib/gitlab/ci/config/entry/hidden_spec.rb": 0.46253788200010604,8592 "spec/views/projects/settings/operations/show.html.haml_spec.rb": 1.3230283009997947,8593 "spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb": 0.7743181370005914,8594 "spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb": 0.4550397430002704,8595 "spec/presenters/packages/nuget/package_metadata_presenter_spec.rb": 1.144643726999675,8596 "spec/graphql/resolvers/users/snippets_resolver_spec.rb": 2.6373897129997204,8597 "spec/lib/gitlab/data_builder/deployment_spec.rb": 2.6054032160000133,8598 "spec/lib/gitlab/database/background_migration_job_spec.rb": 1.1322488380001232,8599 "spec/models/concerns/cron_schedulable_spec.rb": 2.2017360589998134,8600 "spec/finders/projects/export_job_finder_spec.rb": 1.9723437580005339,8601 "spec/services/jira_connect/sync_service_spec.rb": 0.5956803510007376,8602 "spec/services/resource_events/change_milestone_service_spec.rb": 1.881147435999992,8603 "spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.1872987720007586,8604 "spec/lib/bulk_imports/groups/transformers/member_attributes_transformer_spec.rb": 0.9938706789998832,8605 "spec/views/projects/blob/_viewer.html.haml_spec.rb": 0.6163397090003855,8606 "spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb": 2.2624514839999392,8607 "spec/models/integrations/zentao_spec.rb": 2.4972338160005165,8608 "spec/workers/project_destroy_worker_spec.rb": 1.6693031029999474,8609 "spec/validators/any_field_validator_spec.rb": 0.503290958999969,8610 "spec/serializers/prometheus_alert_entity_spec.rb": 1.6903160109995952,8611 "spec/lib/constraints/group_url_constrainer_spec.rb": 2.147717654000189,8612 "spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb": 1.4388362219997362,8613 "spec/lib/bulk_imports/projects/pipelines/pipeline_schedules_pipeline_spec.rb": 1.2863842350006962,8614 "spec/workers/pages_worker_spec.rb": 1.2246807590008757,8615 "spec/serializers/container_tag_entity_spec.rb": 0.6779679049996048,8616 "spec/models/license_template_spec.rb": 0.17115464600010455,8617 "spec/lib/gitlab/import/metrics_spec.rb": 0.3690174899993508,8618 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 0.4488787330001287,8619 "spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb": 0.3694365500005006,8620 "spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb": 0.19044268500056205,8621 "spec/lib/gitlab/import/merge_request_creator_spec.rb": 1.8604986479995205,8622 "spec/services/ci/generate_kubeconfig_service_spec.rb": 1.8157352910002373,8623 "spec/graphql/types/base_argument_spec.rb": 0.7856377349999093,8624 "spec/lib/gitlab/middleware/release_env_spec.rb": 0.07780099400042673,8625 "spec/lib/gitlab/view/presenter/factory_spec.rb": 0.2676399780002612,8626 "spec/lib/gitlab/sql/recursive_cte_spec.rb": 0.4358238739996523,8627 "spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 0.533214226000382,8628 "spec/serializers/feature_flag_entity_spec.rb": 0.9408140730001833,8629 "spec/workers/clusters/cleanup/service_account_worker_spec.rb": 0.9839469789994837,8630 "spec/serializers/test_case_entity_spec.rb": 0.7866146860005756,8631 "spec/graphql/resolvers/clusters/agent_activity_events_resolver_spec.rb": 0.8906594769996445,8632 "spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb": 0.9205303540002205,8633 "spec/tasks/gitlab/lfs/check_rake_spec.rb": 0.9041401759996006,8634 "spec/rubocop/cop/migration/prevent_index_creation_spec.rb": 0.3685222700005397,8635 "spec/models/group_deploy_token_spec.rb": 0.9611351310004466,8636 "spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb": 0.795456364000529,8637 "spec/graphql/types/ci/detailed_status_type_spec.rb": 0.8351632410003731,8638 "spec/tooling/rspec_flaky/example_spec.rb": 0.5886382720000256,8639 "spec/graphql/types/prometheus_alert_type_spec.rb": 0.2016402029994424,8640 "spec/lib/gitlab/lets_encrypt_spec.rb": 0.997060027999396,8641 "spec/services/users/batch_status_cleaner_service_spec.rb": 0.8654409589998977,8642 "spec/lib/gitlab/github_import/milestone_finder_spec.rb": 0.5177488479994281,8643 "spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb": 0.6890576730002067,8644 "spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb": 0.4413335139997798,8645 "spec/lib/gitlab/submodule_links_spec.rb": 0.36126125999999203,8646 "spec/policies/group_deploy_keys_group_policy_spec.rb": 0.7452723890000925,8647 "spec/workers/jira_connect/sync_builds_worker_spec.rb": 0.4486260030007543,8648 "spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb": 0.6305570479999005,8649 "spec/lib/gitlab/template/metrics_dashboard_template_spec.rb": 0.4278458850003517,8650 "spec/graphql/graphql_triggers_spec.rb": 0.7367057199999181,8651 "spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb": 0.4738784510000187,8652 "spec/views/projects/issues/_related_branches.html.haml_spec.rb": 0.598566251000193,8653 "spec/serializers/member_user_entity_spec.rb": 0.4335426540001208,8654 "spec/models/exported_protected_branch_spec.rb": 0.9397801929999332,8655 "spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb": 0.2897887159997481,8656 "spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb": 0.3202362740003082,8657 "spec/graphql/types/container_expiration_policy_type_spec.rb": 0.23977347999971244,8658 "spec/serializers/ci/dag_stage_entity_spec.rb": 0.7242548409994924,8659 "spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb": 0.3405175319994669,8660 "spec/workers/namespaces/invite_team_email_worker_spec.rb": 0.3375102119998701,8661 "spec/lib/gitlab/database/each_database_spec.rb": 0.5053567280001516,8662 "spec/tooling/lib/tooling/crystalball/coverage_lines_execution_detector_spec.rb": 0.2910366370006159,8663 "spec/rubocop/cop/migration/timestamps_spec.rb": 0.23675051999998686,8664 "spec/models/packages/pypi/metadatum_spec.rb": 0.3643728300003204,8665 "spec/serializers/ci/variable_entity_spec.rb": 0.46230339300018386,8666 "spec/services/projects/destroy_rollback_service_spec.rb": 0.7773044159994242,8667 "spec/graphql/types/container_repository_sort_enum_spec.rb": 0.18205205499998556,8668 "spec/lib/gitlab/ci/ansi2json/result_spec.rb": 0.3234223630006454,8669 "spec/lib/gitlab/auth/blocked_user_tracker_spec.rb": 0.40390282699991076,8670 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb": 0.22764760100017156,8671 "spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb": 0.2452064799999789,8672 "spec/models/integrations/jira_tracker_data_spec.rb": 0.2613606679997247,8673 "spec/serializers/group_deploy_key_entity_spec.rb": 0.6096728299999086,8674 "spec/lib/api/validations/validators/project_portable_spec.rb": 0.36036968100052036,8675 "spec/graphql/types/design_management/design_collection_type_spec.rb": 0.26776053800040245,8676 "spec/lib/gitlab/import_export/hash_util_spec.rb": 0.21269866199963872,8677 "spec/lib/banzai/pipeline/email_pipeline_spec.rb": 0.2834931770003095,8678 "spec/rubocop/cop/qa/element_with_pattern_spec.rb": 0.20513623299939354,8679 "spec/views/dashboard/projects/_nav.html.haml_spec.rb": 0.2813896269999532,8680 "spec/lib/api/helpers/graphql_helpers_spec.rb": 0.12313155999981973,8681 "spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb": 0.3261454129997219,8682 "spec/models/concerns/from_intersect_spec.rb": 0.21526213299966912,8683 "spec/graphql/types/alert_management/integration_type_spec.rb": 0.15131681700040645,8684 "spec/rubocop/cop/gitlab/avoid_uploaded_file_from_params_spec.rb": 0.11318055100036872,8685 "spec/graphql/types/ci/stage_type_spec.rb": 0.22081165199961106,8686 "spec/graphql/types/ci/config/config_type_spec.rb": 0.14648514799955592,8687 "spec/graphql/types/ci_configuration/sast/entity_input_type_spec.rb": 0.12030288099958852,8688 "spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb": 0.2101307530001577,8689 "spec/helpers/projects/security/configuration_helper_spec.rb": 0.19323108400021738,8690 "spec/workers/concerns/pipeline_queue_spec.rb": 0.21934779200000776,8691 "spec/lib/gitlab/no_cache_headers_spec.rb": 0.09771290200023941,8692 "spec/serializers/admin/user_serializer_spec.rb": 0.22503083199990215,8693 "spec/lib/api/helpers/pagination_spec.rb": 0.1062403309997535,8694 "spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb": 0.19324220399994374,8695 "spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb": 0.10403023200069583,8696 "spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb": 0.3587922799997614,8697 "spec/graphql/types/ci/recent_failures_type_spec.rb": 0.1377071890001389,8698 "spec/lib/api/entities/bulk_imports/entity_failure_spec.rb": 0.2760974070006341,8699 "spec/rubocop/cop/gitlab/change_timezone_spec.rb": 0.15935551700022188,8700 "spec/graphql/types/packages/package_dependency_link_type_spec.rb": 0.17391373500049667,8701 "spec/graphql/types/project_statistics_type_spec.rb": 0.17290867499923488702}8703Knapsack global time execution for tests: 26m 52s8704Pending: (Failures listed here are expected and do not affect your suite's status)8705 1) DesignManagement::Design behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8706 # No reason given8707 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498708 2) DesignManagement::Design behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8709 # No reason given8710 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578711 3) AttachmentUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 8712 # No pattern provided, skipping.8713 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88714 4) AttachmentUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 8715 # No pattern provided, skipping.8716 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88717 5) AttachmentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8718 # No pattern provided, skipping.8719 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88720 6) AttachmentUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8721 # No pattern provided, skipping.8722 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88723 7) AttachmentUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8724 # No pattern provided, skipping.8725 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88726 8) AttachmentUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8727 # No pattern provided, skipping.8728 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88729 9) AttachmentUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8730 # No pattern provided, skipping.8731 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88732Finished in 26 minutes 55 seconds (files took 47.09 seconds to load)87333997 examples, 0 failures, 9 pending8734RSpec exited with 0.8735No examples to retry, congrats!8737Not uploading cache ruby-gems-v1-9 due to policy8738Not uploading cache gitaly-ruby-gems-v1-9 due to policy8740Uploading artifacts...8741coverage/: found 5 matching files and directories 8742crystalball/: found 2 matching files and directories 8743deprecations/: found 5 matching files and directories 8744knapsack/: found 3 matching files and directories 8745rspec/: found 8 matching files and directories 8746WARNING: tmp/capybara/: no matching files 8747tmp/memory_test/: found 2 matching files and directories 8748log/*.log: found 17 matching files and directories 8749Uploading artifacts as "archive" to coordinator... 201 Created id=2055931379 responseStatus=201 Created token=-9ucFzu18750Uploading artifacts...8751rspec/junit_rspec.xml: found 1 matching files and directories 8752Uploading artifacts as "junit" to coordinator... 201 Created id=2055931379 responseStatus=201 Created token=-9ucFzu18754Job succeeded