rspec unit pg12 13/20
Passed Started
by
@ntepluhina

Natalia Tepluhina
1Running with gitlab-runner 14.3.0-rc1 (ed15bfbf)2 on docker-auto-scale-com 1d6b581d3 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.31-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:91d892a67245e889ee058993bb08077e9980b16e08991c8b172adadee015594f for postgres:12 with digest postgres@sha256:5afbf72bfdb224f9ad3b29dd570747b4752ab2e81e9c25145847004f8a350e60 ...10Starting service redis:5.0-alpine ...11Pulling docker image redis:5.0-alpine ...12Using docker image sha256:a0a8ec67111be1ffa9ee627aa0ef080c8281aba0f31a4a67f2b550f8e1e0b022 for redis:5.0-alpine with digest redis@sha256:fea243676a4d2d67f5990ddcbd4a56db9423b7f25e55758491e39988efc1cfbe ...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.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...16Using docker image sha256:4cc2f63f50a93772721d8b8586f6fe8c920262e1302e0e8b6c12a1040960cfab for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-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:eef05654d1ff5d68556b37c53250a692ec3a5fa299726f5bd1cbb4738b738976 ...18Running on runner-1d6b581d-project-278964-concurrent-0 via runner-1d6b581d-gsrm-1632296273-718dda94...20$ eval "$CI_PRE_CLONE_SCRIPT"21Downloading archived master...22Connecting to storage.googleapis.com (172.217.193.128:443)23saving to '/tmp/gitlab.tar.gz'24gitlab.tar.gz 60% |******************* | 208M 0:00:00 ETA25gitlab.tar.gz 100% |********************************| 346M 0:00:00 ETA26'/tmp/gitlab.tar.gz' saved27Extracting tarball into /builds/gitlab-org/gitlab...28Fetching changes with git depth set to 20...29Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/30Created fresh repository.31remote: Enumerating objects: 153, done. 32remote: Counting objects: 100% (131/131), done. 33remote: Compressing objects: 100% (47/47), done. 34remote: Total 57 (delta 41), reused 18 (delta 8), pack-reused 0 36 * [new ref] 2459b1529cac1ac0ad101b0164c2a64d868d8db8 -> refs/pipelines/37511528137 * [new branch] master -> origin/master38Checking out 2459b152 as master...39Skipping Git submodules setup41Checking cache for ruby-gems-v1-4...42Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-v1-4 43Successfully extracted cache44Checking cache for gitaly-ruby-gems-v1-4...45Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-v1-4 46Successfully extracted cache48Downloading artifacts for compile-test-assets (1612163134)...49Downloading artifacts from coordinator... ok id=1612163134 responseStatus=200 OK token=qFixL5uF50Downloading artifacts for retrieve-tests-metadata (1612163145)...51Downloading artifacts from coordinator... ok id=1612163145 responseStatus=200 OK token=TZTMsZuv52Downloading artifacts for setup-test-env (1612163139)...53Downloading artifacts from coordinator... ok id=1612163139 responseStatus=200 OK token=pjMJYLcz55Using docker image sha256:4cc2f63f50a93772721d8b8586f6fe8c920262e1302e0e8b6c12a1040960cfab for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-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:eef05654d1ff5d68556b37c53250a692ec3a5fa299726f5bd1cbb4738b738976 ...56$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb57$ export GOPATH=$CI_PROJECT_DIR/.go58$ mkdir -p $GOPATH59$ source scripts/utils.sh60$ source scripts/prepare_build.sh61Bundler version 2.1.462production:development63Settings are listed in order of priority. The top value will be used.64path65Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor"66clean67Set for the current user (/root/.bundle/config): "true"68without69Set via BUNDLE_WITHOUT: [:production, :development]70install_flags71Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"72$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check73The Gemfile's dependencies are satisfied74==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.75$ bundle pristine pg76Installing pg 1.2.3 with native extensions77==> 'bundle pristine pg' succeeded in 10 seconds.78$ setup_db_user_only79CREATE ROLE80GRANT81==> 'setup_db_user_only' succeeded in 0 seconds.82$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee83Dropped database 'gitlabhq_test'84Created database 'gitlabhq_test'85DEPRECATION 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)86Dropped database 'gitlabhq_geo_test'87Created database 'gitlabhq_geo_test'88==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 123 seconds.89$ run_timed_command "gem install knapsack --no-document"90$ gem install knapsack --no-document91Successfully installed knapsack-4.0.0921 gem installed93==> 'gem install knapsack --no-document' succeeded in 0 seconds.94$ run_timed_command "scripts/gitaly-test-spawn"95$ scripts/gitaly-test-spawn96Settings are listed in order of priority. The top value will be used.97jobs98Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): 499retry100Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): 3101path102Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"103deployment104Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): true105without106Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config): [:production, :development]107Set via BUNDLE_WITHOUT: [:production, :development]108app_config109Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle"110gemfile111Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"112Don't run Bundler as root. Bundler can ask for sudo if it is needed, and113installing your bundle as root will break this application for all non-root114users on this machine.115Using abstract_type 0.0.7116Using concurrent-ruby 1.1.9117Using i18n 1.8.10118Using minitest 5.14.4119Using tzinfo 2.0.4120Using zeitwerk 2.4.2121Using activesupport 6.1.3.2122Using builder 3.2.4123Using erubi 1.10.0124Using mini_portile2 2.5.1125Using racc 1.5.2126Using nokogiri 1.11.7 (x86_64-linux)127Using rails-dom-testing 2.0.3128Using crass 1.0.6129Using loofah 2.10.0130Using rails-html-sanitizer 1.3.0131Using actionview 6.1.3.2132Using rack 2.2.3133Using rack-test 1.1.0134Using actionpack 6.1.3.2135Using ice_nine 0.11.2136Using thread_safe 0.3.6137Using memoizable 0.4.2138Using adamantium 0.2.0139Using public_suffix 4.0.6140Using addressable 2.7.0141Using ast 2.4.1142Using binding_ninja 0.2.3143Using bundler 2.1.4144Using charlock_holmes 0.7.7145Using coderay 1.1.2146Using equalizer 0.0.11147Using concord 0.1.5148Using diff-lcs 1.3149Using dotenv 2.7.6150Using escape_utils 1.2.1151Using factory_bot 5.0.2152Using multipart-post 2.1.1153Using faraday 1.0.1154Using ffi 1.15.3155Using json 2.5.1156Using gemojione 3.3.0157Using mini_mime 1.0.2158Using rugged 1.1.0159Using github-linguist 7.12.1160Using github-markup 1.7.0161Using mime-types-data 3.2020.1104162Using mime-types 3.3.1163Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1164Using rouge 3.26.0165Using nokogumbo 1.5.0166Using sanitize 4.6.6167Using stringex 2.8.5168Using gitlab-gollum-lib 4.2.7.10.gitlab.1169Using google-protobuf 3.17.3 (x86_64-linux)170Using googleapis-common-protos-types 1.1.0171Using grpc 1.30.2 (x86_64-linux)172Using opentracing 0.5.0173Using thrift 0.14.1174Using jaeger-client 1.1.0175Using pg_query 2.1.0176Using redis 4.2.5177Using gitlab-labkit 0.20.0178Using gitlab-markup 1.7.1179Using grpc-tools 1.30.2180Using sawyer 0.8.2181Using octokit 4.20.0182Using reverse_markdown 1.4.0183Using thor 1.1.0184Using licensee 9.14.1185Using method_source 0.9.2186Using msgpack 1.3.3187Using optimist 3.0.1188Using parallel 1.19.2189Using parser 2.7.2.0190Using procto 0.0.3191Using unparser 0.4.7192Using proc_to_ast 0.1.0193Using pry 0.12.2194Using rainbow 3.0.0195Using rbtrace 0.4.14196Using rdoc 6.3.2197Using regexp_parser 1.8.1198Using rexml 3.2.4199Using rspec-support 3.8.0200Using rspec-core 3.8.0201Using rspec-expectations 3.8.3202Using rspec-mocks 3.8.0203Using rspec 3.8.0204Using rspec-parameterized 0.4.2205Using rubocop-ast 0.2.0206Using ruby-progressbar 1.10.1207Using unicode-display_width 1.7.0208Using rubocop 0.86.0209Using sentry-raven 3.0.4210Using timecop 0.9.1211Bundle complete! 21 Gemfile dependencies, 96 gems now installed.212Gems in the groups production and development were not installed.213Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`214Checking gitaly-ruby Gemfile...215Checking gitaly-ruby bundle...216The Gemfile's dependencies are satisfied217Trying to connect to gitaly: ................................................... OK218Trying to connect to gitaly2: ................................................................. OK219Trying to connect to praefect: ......... OK220==> 'scripts/gitaly-test-spawn' succeeded in 15 seconds.221$ source ./scripts/rspec_helpers.sh222$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"223KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb224Knapsack node specs:225spec/finders/merge_requests_finder_spec.rb226spec/services/quick_actions/interpret_service_spec.rb227spec/services/git/branch_push_service_spec.rb228spec/services/projects/alerting/notify_service_spec.rb229spec/uploaders/design_management/design_v432x230_uploader_spec.rb230spec/services/projects/overwrite_project_service_spec.rb231spec/services/projects/create_service_spec.rb232spec/finders/deployments_finder_spec.rb233spec/lib/banzai/filter/repository_link_filter_spec.rb234spec/services/issuable/bulk_update_service_spec.rb235spec/lib/gitlab/background_migration/wrongfully_confirmed_email_unconfirmer_spec.rb236spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb237spec/presenters/project_presenter_spec.rb238spec/models/design_management/design_at_version_spec.rb239spec/lib/gitlab/user_access_spec.rb240spec/lib/gitlab/email/handler/create_note_handler_spec.rb241spec/models/integrations/bamboo_spec.rb242spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb243spec/services/search_service_spec.rb244spec/models/environment_status_spec.rb245spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb246spec/lib/gitlab/ci/status/build/failed_spec.rb247spec/finders/group_descendants_finder_spec.rb248spec/services/ci/unlock_artifacts_service_spec.rb249spec/presenters/merge_request_presenter_spec.rb250spec/services/git/process_ref_changes_service_spec.rb251spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb252spec/models/prometheus_metric_spec.rb253spec/services/packages/debian/extract_metadata_service_spec.rb254spec/lib/gitlab/ssh_public_key_spec.rb255spec/graphql/mutations/merge_requests/set_wip_spec.rb256spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb257spec/workers/repository_fork_worker_spec.rb258spec/lib/gitlab/gitaly_client/ref_service_spec.rb259spec/models/namespace/package_setting_spec.rb260spec/helpers/user_callouts_helper_spec.rb261spec/lib/gitlab/ci/templates/npm_spec.rb262spec/lib/backup/manager_spec.rb263spec/lib/gitlab/ci/pipeline/chain/command_spec.rb264spec/models/clusters/agent_spec.rb265spec/models/packages/debian/group_component_file_spec.rb266spec/lib/gitlab/search/found_blob_spec.rb267spec/lib/gitlab/github_import/representation/issue_spec.rb268spec/lib/gitlab/ci/config/entry/processable_spec.rb269spec/services/upload_service_spec.rb270spec/models/discussion_spec.rb271spec/presenters/packages/npm/package_presenter_spec.rb272spec/lib/gitlab/ci/build/image_spec.rb273spec/lib/gitlab/i18n/translation_entry_spec.rb274spec/lib/gitlab/http_io_spec.rb275spec/models/concerns/prometheus_adapter_spec.rb276spec/lib/gitlab/ci/config/external/processor_spec.rb277spec/services/integrations/test/project_service_spec.rb278spec/models/clusters/kubernetes_namespace_spec.rb279spec/lib/gitlab/instrumentation_helper_spec.rb280spec/finders/concerns/finder_methods_spec.rb281spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb282spec/lib/gitlab/git/object_pool_spec.rb283spec/lib/gitlab/slash_commands/command_spec.rb284spec/services/packages/conan/search_service_spec.rb285spec/serializers/ci/trigger_entity_spec.rb286spec/lib/gitlab/utils/override_spec.rb287spec/views/groups/edit.html.haml_spec.rb288spec/services/packages/composer/create_package_service_spec.rb289spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb290spec/lib/gitlab/middleware/same_site_cookies_spec.rb291spec/models/ci/build_trace_metadata_spec.rb292spec/models/issue_link_spec.rb293spec/lib/gitlab/file_finder_spec.rb294spec/finders/security/license_compliance_jobs_finder_spec.rb295spec/presenters/group_member_presenter_spec.rb296spec/models/zoom_meeting_spec.rb297spec/lib/sidebars/menu_spec.rb298spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb299spec/lib/gitlab/shell_spec.rb300spec/services/repository_archive_clean_up_service_spec.rb301spec/graphql/resolvers/snippets_resolver_spec.rb302spec/policies/clusters/instance_policy_spec.rb303spec/lib/banzai/filter/references/reference_cache_spec.rb304spec/services/files/delete_service_spec.rb305spec/models/concerns/spammable_spec.rb306spec/tasks/gitlab/smtp_rake_spec.rb307spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb308spec/models/integrations/youtrack_spec.rb309spec/helpers/admin/user_actions_helper_spec.rb310spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb311spec/services/packages/update_package_file_service_spec.rb312spec/rubocop/cop/avoid_return_from_blocks_spec.rb313spec/models/concerns/bulk_insert_safe_spec.rb314spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb315spec/views/notify/pipeline_fixed_email.text.erb_spec.rb316spec/services/bulk_imports/file_download_service_spec.rb317spec/lib/banzai/filter/math_filter_spec.rb318spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb319spec/lib/gitlab/metrics/transaction_spec.rb320spec/lib/gitlab/hook_data/key_builder_spec.rb321spec/lib/gitlab/health_checks/redis/shared_state_check_spec.rb322spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb323spec/services/packages/create_package_file_service_spec.rb324spec/lib/gitlab/checks/diff_check_spec.rb325spec/lib/gitlab/database/partitioning/partition_manager_spec.rb326spec/models/concerns/ci/has_ref_spec.rb327spec/models/aws/role_spec.rb328spec/graphql/resolvers/project_packages_resolver_spec.rb329spec/graphql/resolvers/users/snippets_resolver_spec.rb330spec/presenters/ci/legacy_stage_presenter_spec.rb331spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb332spec/graphql/mutations/boards/issues/issue_move_list_spec.rb333spec/lib/gitlab/visibility_level_checker_spec.rb334spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb335spec/models/analytics/cycle_analytics/project_value_stream_spec.rb336spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb337spec/helpers/appearances_helper_spec.rb338spec/lib/bitbucket/representation/repo_spec.rb339spec/workers/ci/drop_pipeline_worker_spec.rb340spec/lib/gitlab/time_tracking_formatter_spec.rb341spec/lib/gitlab/serverless/service_spec.rb342spec/models/dependency_proxy/manifest_spec.rb343spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb344spec/lib/gitlab/omniauth_initializer_spec.rb345spec/finders/ci/auth_job_finder_spec.rb346spec/lib/gitlab/ci/reports/security/reports_spec.rb347spec/models/description_version_spec.rb348spec/lib/api/helpers/related_resources_helpers_spec.rb349spec/services/award_emojis/toggle_service_spec.rb350spec/finders/releases/evidence_pipeline_finder_spec.rb351spec/finders/packages/package_file_finder_spec.rb352spec/lib/gitlab/changelog/generator_spec.rb353spec/graphql/mutations/merge_requests/set_subscription_spec.rb354spec/services/merge_requests/add_context_service_spec.rb355spec/services/metrics/users_starred_dashboards/create_service_spec.rb356spec/lib/gitlab/changelog/release_spec.rb357spec/serializers/job_artifact_report_entity_spec.rb358spec/workers/repository_remove_remote_worker_spec.rb359spec/models/integrations/campfire_spec.rb360spec/services/bulk_import_service_spec.rb361spec/lib/constraints/admin_constrainer_spec.rb362spec/models/alert_management/alert_user_mention_spec.rb363spec/lib/sidebars/projects/menus/project_information_menu_spec.rb364spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb365spec/lib/gitlab/slash_commands/issue_show_spec.rb366spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb367spec/finders/groups/user_groups_finder_spec.rb368spec/graphql/types/untrusted_regexp_spec.rb369spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb370spec/models/chat_name_spec.rb371spec/workers/namespaces/onboarding_issue_created_worker_spec.rb372spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb373spec/presenters/alert_management/alert_presenter_spec.rb374spec/lib/gitlab/sherlock/file_sample_spec.rb375spec/workers/pipeline_hooks_worker_spec.rb376spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb377spec/lib/gitlab/config/entry/simplifiable_spec.rb378spec/helpers/dev_ops_report_helper_spec.rb379spec/models/releases/source_spec.rb380spec/models/blob_viewer/license_spec.rb381spec/graphql/mutations/custom_emoji/destroy_spec.rb382spec/rubocop/cop/migration/drop_table_spec.rb383spec/lib/mattermost/team_spec.rb384spec/lib/gitlab/ci/status/build/erased_spec.rb385spec/uploaders/workers/object_storage/background_move_worker_spec.rb386spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb387spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb388spec/lib/gitlab/github_import/markdown_text_spec.rb389spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb390spec/workers/environments/canary_ingress/update_worker_spec.rb391spec/graphql/resolvers/user_resolver_spec.rb392spec/presenters/project_hook_presenter_spec.rb393spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb394spec/workers/cluster_wait_for_app_update_worker_spec.rb395spec/lib/gitlab/usage_data_counters/base_counter_spec.rb396spec/lib/gitlab/git/lfs_pointer_file_spec.rb397spec/graphql/types/container_repository_details_type_spec.rb398spec/workers/design_management/copy_design_collection_worker_spec.rb399spec/services/projects/prometheus/metrics/destroy_service_spec.rb400spec/views/projects/services/edit.html.haml_spec.rb401spec/lib/gitlab/string_placeholder_replacer_spec.rb402spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb403spec/helpers/git_helper_spec.rb404spec/rubocop/cop/scalability/file_uploads_spec.rb405spec/serializers/test_report_entity_spec.rb406spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb407spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb408spec/finders/packages/group_or_project_package_finder_spec.rb409spec/workers/self_monitoring_project_create_worker_spec.rb410spec/models/preloaders/merge_request_diff_preloader_spec.rb411spec/graphql/resolvers/ci/test_suite_resolver_spec.rb412spec/lib/gitlab/metrics/subscribers/action_view_spec.rb413spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb414spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb415spec/lib/gitlab/database/reindexing_spec.rb416spec/models/concerns/presentable_spec.rb417spec/presenters/tree_entry_presenter_spec.rb418spec/lib/gitlab/ci/config/entry/paths_spec.rb419spec/tasks/config_lint_spec.rb420spec/services/packages/helm/extract_file_metadata_service_spec.rb421spec/lib/gitlab/view/presenter/factory_spec.rb422spec/workers/object_pool/join_worker_spec.rb423spec/models/projects/ci_feature_usage_spec.rb424spec/serializers/linked_project_issue_entity_spec.rb425spec/lib/gitlab/graphql/pagination/keyset/last_items_spec.rb426spec/workers/packages/rubygems/extraction_worker_spec.rb427spec/lib/gitlab/ci/status/scheduled_spec.rb428spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb429spec/workers/clusters/cleanup/service_account_worker_spec.rb430spec/support_specs/database/prevent_cross_joins_spec.rb431spec/models/blob_viewer/markup_spec.rb432spec/graphql/types/member_interface_spec.rb433spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb434spec/services/todos/allowed_target_filter_service_spec.rb435spec/lib/gitlab/git/lfs_changes_spec.rb436spec/serializers/feature_flag_entity_spec.rb437spec/services/projects/open_merge_requests_count_service_spec.rb438spec/tasks/gitlab/packages/migrate_rake_spec.rb439spec/workers/upload_checksum_worker_spec.rb440spec/lib/gitlab/patch/legacy_database_config_spec.rb441spec/lib/bulk_imports/groups/pipelines/group_avatar_pipeline_spec.rb442spec/rubocop/cop/migration/add_index_spec.rb443spec/lib/gitlab/kubernetes/service_account_spec.rb444spec/finders/feature_flags_user_lists_finder_spec.rb445spec/models/project_custom_attribute_spec.rb446spec/workers/namespaces/onboarding_progress_worker_spec.rb447spec/lib/api/github/entities_spec.rb448spec/workers/gitlab_shell_worker_spec.rb449spec/workers/delete_user_worker_spec.rb450spec/lib/gitlab/ci/pipeline/expression/token_spec.rb451spec/graphql/types/ci_configuration/sast/entity_type_spec.rb452spec/serializers/board_simple_entity_spec.rb453spec/lib/gitlab/ci/reports/security/link_spec.rb454spec/workers/file_hook_worker_spec.rb455spec/lib/banzai/filter/plantuml_filter_spec.rb456spec/serializers/feature_flags_client_serializer_spec.rb457spec/lib/mattermost/client_spec.rb458spec/graphql/types/ci/group_type_spec.rb459spec/lib/api/entities/deploy_key_spec.rb460spec/services/groups/deploy_tokens/destroy_service_spec.rb461spec/lib/gitlab/ci/pipeline/chain/pipeline/process_spec.rb462spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb463spec/graphql/types/ci/config/stage_type_spec.rb464spec/graphql/types/dependency_proxy/manifest_type_spec.rb465spec/lib/api/helpers/pagination_spec.rb466spec/serializers/ci/group_variable_entity_spec.rb467spec/lib/api/validations/validators/absence_spec.rb468spec/graphql/types/packages/composer/json_type_spec.rb469spec/graphql/types/container_repository_status_enum_spec.rb470spec/lib/gitlab/ci/status/extended_spec.rb471spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb472spec/workers/gitlab/github_import/import_note_worker_spec.rb473spec/lib/gitlab/word_diff/line_processor_spec.rb474spec/serializers/ci/downloadable_artifact_serializer_spec.rb475spec/serializers/serverless/domain_entity_spec.rb476spec/serializers/ci/codequality_mr_diff_entity_spec.rb477spec/graphql/types/ci_configuration/sast/ui_component_size_enum_spec.rb478spec/lib/gitlab/api_authentication/token_type_builder_spec.rb479Filter specs:480Running specs:481Running all node tests without filter482spec/finders/merge_requests_finder_spec.rb483spec/services/quick_actions/interpret_service_spec.rb484spec/services/git/branch_push_service_spec.rb485spec/services/projects/alerting/notify_service_spec.rb486spec/uploaders/design_management/design_v432x230_uploader_spec.rb487spec/services/projects/overwrite_project_service_spec.rb488spec/services/projects/create_service_spec.rb489spec/finders/deployments_finder_spec.rb490spec/lib/banzai/filter/repository_link_filter_spec.rb491spec/services/issuable/bulk_update_service_spec.rb492spec/lib/gitlab/background_migration/wrongfully_confirmed_email_unconfirmer_spec.rb493spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb494spec/presenters/project_presenter_spec.rb495spec/models/design_management/design_at_version_spec.rb496spec/lib/gitlab/user_access_spec.rb497spec/lib/gitlab/email/handler/create_note_handler_spec.rb498spec/models/integrations/bamboo_spec.rb499spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb500spec/services/search_service_spec.rb501spec/models/environment_status_spec.rb502spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb503spec/lib/gitlab/ci/status/build/failed_spec.rb504spec/finders/group_descendants_finder_spec.rb505spec/services/ci/unlock_artifacts_service_spec.rb506spec/presenters/merge_request_presenter_spec.rb507spec/services/git/process_ref_changes_service_spec.rb508spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb509spec/models/prometheus_metric_spec.rb510spec/services/packages/debian/extract_metadata_service_spec.rb511spec/lib/gitlab/ssh_public_key_spec.rb512spec/graphql/mutations/merge_requests/set_wip_spec.rb513spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb514spec/workers/repository_fork_worker_spec.rb515spec/lib/gitlab/gitaly_client/ref_service_spec.rb516spec/models/namespace/package_setting_spec.rb517spec/helpers/user_callouts_helper_spec.rb518spec/lib/gitlab/ci/templates/npm_spec.rb519spec/lib/backup/manager_spec.rb520spec/lib/gitlab/ci/pipeline/chain/command_spec.rb521spec/models/clusters/agent_spec.rb522spec/models/packages/debian/group_component_file_spec.rb523spec/lib/gitlab/search/found_blob_spec.rb524spec/lib/gitlab/github_import/representation/issue_spec.rb525spec/lib/gitlab/ci/config/entry/processable_spec.rb526spec/services/upload_service_spec.rb527spec/models/discussion_spec.rb528spec/presenters/packages/npm/package_presenter_spec.rb529spec/lib/gitlab/ci/build/image_spec.rb530spec/lib/gitlab/i18n/translation_entry_spec.rb531spec/lib/gitlab/http_io_spec.rb532spec/models/concerns/prometheus_adapter_spec.rb533spec/lib/gitlab/ci/config/external/processor_spec.rb534spec/services/integrations/test/project_service_spec.rb535spec/models/clusters/kubernetes_namespace_spec.rb536spec/lib/gitlab/instrumentation_helper_spec.rb537spec/finders/concerns/finder_methods_spec.rb538spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb539spec/lib/gitlab/git/object_pool_spec.rb540spec/lib/gitlab/slash_commands/command_spec.rb541spec/services/packages/conan/search_service_spec.rb542spec/serializers/ci/trigger_entity_spec.rb543spec/lib/gitlab/utils/override_spec.rb544spec/views/groups/edit.html.haml_spec.rb545spec/services/packages/composer/create_package_service_spec.rb546spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb547spec/lib/gitlab/middleware/same_site_cookies_spec.rb548spec/models/ci/build_trace_metadata_spec.rb549spec/models/issue_link_spec.rb550spec/lib/gitlab/file_finder_spec.rb551spec/finders/security/license_compliance_jobs_finder_spec.rb552spec/presenters/group_member_presenter_spec.rb553spec/models/zoom_meeting_spec.rb554spec/lib/sidebars/menu_spec.rb555spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb556spec/lib/gitlab/shell_spec.rb557spec/services/repository_archive_clean_up_service_spec.rb558spec/graphql/resolvers/snippets_resolver_spec.rb559spec/policies/clusters/instance_policy_spec.rb560spec/lib/banzai/filter/references/reference_cache_spec.rb561spec/services/files/delete_service_spec.rb562spec/models/concerns/spammable_spec.rb563spec/tasks/gitlab/smtp_rake_spec.rb564spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb565spec/models/integrations/youtrack_spec.rb566spec/helpers/admin/user_actions_helper_spec.rb567spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb568spec/services/packages/update_package_file_service_spec.rb569spec/rubocop/cop/avoid_return_from_blocks_spec.rb570spec/models/concerns/bulk_insert_safe_spec.rb571spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb572spec/views/notify/pipeline_fixed_email.text.erb_spec.rb573spec/services/bulk_imports/file_download_service_spec.rb574spec/lib/banzai/filter/math_filter_spec.rb575spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb576spec/lib/gitlab/metrics/transaction_spec.rb577spec/lib/gitlab/hook_data/key_builder_spec.rb578spec/lib/gitlab/health_checks/redis/shared_state_check_spec.rb579spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb580spec/services/packages/create_package_file_service_spec.rb581spec/lib/gitlab/checks/diff_check_spec.rb582spec/lib/gitlab/database/partitioning/partition_manager_spec.rb583spec/models/concerns/ci/has_ref_spec.rb584spec/models/aws/role_spec.rb585spec/graphql/resolvers/project_packages_resolver_spec.rb586spec/graphql/resolvers/users/snippets_resolver_spec.rb587spec/presenters/ci/legacy_stage_presenter_spec.rb588spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb589spec/graphql/mutations/boards/issues/issue_move_list_spec.rb590spec/lib/gitlab/visibility_level_checker_spec.rb591spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb592spec/models/analytics/cycle_analytics/project_value_stream_spec.rb593spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb594spec/helpers/appearances_helper_spec.rb595spec/lib/bitbucket/representation/repo_spec.rb596spec/workers/ci/drop_pipeline_worker_spec.rb597spec/lib/gitlab/time_tracking_formatter_spec.rb598spec/lib/gitlab/serverless/service_spec.rb599spec/models/dependency_proxy/manifest_spec.rb600spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb601spec/lib/gitlab/omniauth_initializer_spec.rb602spec/finders/ci/auth_job_finder_spec.rb603spec/lib/gitlab/ci/reports/security/reports_spec.rb604spec/models/description_version_spec.rb605spec/lib/api/helpers/related_resources_helpers_spec.rb606spec/services/award_emojis/toggle_service_spec.rb607spec/finders/releases/evidence_pipeline_finder_spec.rb608spec/finders/packages/package_file_finder_spec.rb609spec/lib/gitlab/changelog/generator_spec.rb610spec/graphql/mutations/merge_requests/set_subscription_spec.rb611spec/services/merge_requests/add_context_service_spec.rb612spec/services/metrics/users_starred_dashboards/create_service_spec.rb613spec/lib/gitlab/changelog/release_spec.rb614spec/serializers/job_artifact_report_entity_spec.rb615spec/workers/repository_remove_remote_worker_spec.rb616spec/models/integrations/campfire_spec.rb617spec/services/bulk_import_service_spec.rb618spec/lib/constraints/admin_constrainer_spec.rb619spec/models/alert_management/alert_user_mention_spec.rb620spec/lib/sidebars/projects/menus/project_information_menu_spec.rb621spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb622spec/lib/gitlab/slash_commands/issue_show_spec.rb623spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb624spec/finders/groups/user_groups_finder_spec.rb625spec/graphql/types/untrusted_regexp_spec.rb626spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb627spec/models/chat_name_spec.rb628spec/workers/namespaces/onboarding_issue_created_worker_spec.rb629spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb630spec/presenters/alert_management/alert_presenter_spec.rb631spec/lib/gitlab/sherlock/file_sample_spec.rb632spec/workers/pipeline_hooks_worker_spec.rb633spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb634spec/lib/gitlab/config/entry/simplifiable_spec.rb635spec/helpers/dev_ops_report_helper_spec.rb636spec/models/releases/source_spec.rb637spec/models/blob_viewer/license_spec.rb638spec/graphql/mutations/custom_emoji/destroy_spec.rb639spec/rubocop/cop/migration/drop_table_spec.rb640spec/lib/mattermost/team_spec.rb641spec/lib/gitlab/ci/status/build/erased_spec.rb642spec/uploaders/workers/object_storage/background_move_worker_spec.rb643spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb644spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb645spec/lib/gitlab/github_import/markdown_text_spec.rb646spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb647spec/workers/environments/canary_ingress/update_worker_spec.rb648spec/graphql/resolvers/user_resolver_spec.rb649spec/presenters/project_hook_presenter_spec.rb650spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb651spec/workers/cluster_wait_for_app_update_worker_spec.rb652spec/lib/gitlab/usage_data_counters/base_counter_spec.rb653spec/lib/gitlab/git/lfs_pointer_file_spec.rb654spec/graphql/types/container_repository_details_type_spec.rb655spec/workers/design_management/copy_design_collection_worker_spec.rb656spec/services/projects/prometheus/metrics/destroy_service_spec.rb657spec/views/projects/services/edit.html.haml_spec.rb658spec/lib/gitlab/string_placeholder_replacer_spec.rb659spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb660spec/helpers/git_helper_spec.rb661spec/rubocop/cop/scalability/file_uploads_spec.rb662spec/serializers/test_report_entity_spec.rb663spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb664spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb665spec/finders/packages/group_or_project_package_finder_spec.rb666spec/workers/self_monitoring_project_create_worker_spec.rb667spec/models/preloaders/merge_request_diff_preloader_spec.rb668spec/graphql/resolvers/ci/test_suite_resolver_spec.rb669spec/lib/gitlab/metrics/subscribers/action_view_spec.rb670spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb671spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb672spec/lib/gitlab/database/reindexing_spec.rb673spec/models/concerns/presentable_spec.rb674spec/presenters/tree_entry_presenter_spec.rb675spec/lib/gitlab/ci/config/entry/paths_spec.rb676spec/tasks/config_lint_spec.rb677spec/services/packages/helm/extract_file_metadata_service_spec.rb678spec/lib/gitlab/view/presenter/factory_spec.rb679spec/workers/object_pool/join_worker_spec.rb680spec/models/projects/ci_feature_usage_spec.rb681spec/serializers/linked_project_issue_entity_spec.rb682spec/lib/gitlab/graphql/pagination/keyset/last_items_spec.rb683spec/workers/packages/rubygems/extraction_worker_spec.rb684spec/lib/gitlab/ci/status/scheduled_spec.rb685spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb686spec/workers/clusters/cleanup/service_account_worker_spec.rb687spec/support_specs/database/prevent_cross_joins_spec.rb688spec/models/blob_viewer/markup_spec.rb689spec/graphql/types/member_interface_spec.rb690spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb691spec/services/todos/allowed_target_filter_service_spec.rb692spec/lib/gitlab/git/lfs_changes_spec.rb693spec/serializers/feature_flag_entity_spec.rb694spec/services/projects/open_merge_requests_count_service_spec.rb695spec/tasks/gitlab/packages/migrate_rake_spec.rb696spec/workers/upload_checksum_worker_spec.rb697spec/lib/gitlab/patch/legacy_database_config_spec.rb698spec/lib/bulk_imports/groups/pipelines/group_avatar_pipeline_spec.rb699spec/rubocop/cop/migration/add_index_spec.rb700spec/lib/gitlab/kubernetes/service_account_spec.rb701spec/finders/feature_flags_user_lists_finder_spec.rb702spec/models/project_custom_attribute_spec.rb703spec/workers/namespaces/onboarding_progress_worker_spec.rbKnapsack report generator started!704Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}705==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.070964491 seconds...706Test environment set up in 0.712815984 seconds707MergeRequestsFinder708 multiple projects with merge requests709 #execute710 filters by scope711 filters by project_id712 filters by projects713 filters by non_archived714 filters by source project id715 filters by state716 does not raise any exception with complex filters717 filtering by author718 using OR719 returns merge requests created by any of the given users720 when feature flag is disabled721 does not add any filter722 with nonexistent author ID and MR term using CTE for search723 returns no results724 filtering by not author ID725 returns merge requests not created by that user726 filters by commit sha727 when commit belongs to the merge request728 filters by commit sha729 when commit is a squash commit730 filters by commit sha731 when commit is a merge commit732 filters by commit sha733 filters by merged_at date734 merged_after735 is expected to eq [#<MergeRequest id:58 group1/project1!1>]736 merged_before737 is expected to eq [#<MergeRequest id:63 group1/project1!2>]738 when both merged_after and merged_before is given739 is expected to eq [#<MergeRequest id:67 group1/project1!2>]740 when project_id is given741 is expected to eq [#<MergeRequest id:71 group1/project1!2>]742 queries merge_request_metrics.target_project_id table743 filtering by group744 includes all merge requests when user has access excluding merge requests from projects the user does not have access to745 filters by group including subgroups746 filters by group projects including subgroups747 :iid parameter748 behaves like scalar or array parameter749 takes scalar values750 takes array values751 source_branch parameter752 behaves like scalar or array parameter753 takes scalar values754 takes array values755 target_branch parameter756 behaves like scalar or array parameter757 takes scalar values758 takes array values759 :label_name parameter760 accepts a single label761 accepts an array of labels, all of which must match762 draft state763 filters by wip764 filters by not wip765 returns all items if no valid wip param exists766 filters by draft767 filters by not draft768 returns all items if no valid draft param exists769 filter by deployment770 returns the relevant merge requests771 when a deployment does not contain any merge requests772 returns an empty result773 .scalar_params774 contains scalar params related to merge requests775 assignee filtering776 behaves like assignee ID filter777 returns issuables assigned to that user778 behaves like assignee NOT ID filter779 returns issuables not assigned to that user780 behaves like assignee username filter781 returns issuables assigned to those users782 behaves like assignee NOT username filter783 returns issuables not assigned to those users784 behaves like no assignee filter785 returns issuables not assigned to any assignee786 returns issuables not assigned to any assignee787 behaves like any assignee filter789 returns issuables assigned to any assignee790 returns issuables assigned to any assignee791 reviewer filtering792 by reviewer_id793 is expected to contain exactly #<MergeRequest id:269 group1/project1!1> and #<MergeRequest id:270 group1/project1!2>794 by NOT reviewer_id795 is expected to contain exactly #<MergeRequest id:275 group99/project118!1>, #<MergeRequest id:276 group100/project119!1>, and #<MergeRequest id:1 group1/group2/project2!1>796 by reviewer_username797 is expected to contain exactly #<MergeRequest id:277 group1/project1!1> and #<MergeRequest id:278 group1/project1!2>798 by NOT reviewer_username799 is expected to contain exactly #<MergeRequest id:283 group103/project122!1>, #<MergeRequest id:284 group104/project123!1>, and #<MergeRequest id:1 group1/group2/project2!1>800 by reviewer_id=None801 is expected to contain exactly #<MergeRequest id:288 group106/project125!1> and #<MergeRequest id:1 group1/group2/project2!1>802 by reviewer_id=Any803 is expected to contain exactly #<MergeRequest id:289 group1/project1!1>, #<MergeRequest id:290 group1/project1!2>, and #<MergeRequest id:291 group107/project126!1>804 by reviewer_id with unknown user805 is expected to be empty806 by NOT reviewer_id with unknown user807 is expected to be empty808 filtering by group milestone809 returns merge requests assigned to that group milestone810 using NOT811 returns MRs not assigned to that group milestone812 filtering by approved by813 returns merge requests approved by that user814 not filter815 returns merge requests not approved by that user816 when filtering by author and not approved by817 returns merge requests authored by user and not approved by user2818 filtering by created_at/updated_at819 filters by created_after820 filters by created_before821 filters by created_after and created_before822 filters by updated_after823 filters by updated_before824 filters by updated_after and updated_before825 filtering by the merge request deployments826 filters merge requests deployed to a given environment827 filters merge requests deployed before a given date828 filters merge requests deployed after a given date829 filtering by search text830 with anonymous user831 with disable_anonymous_search feature flag enabled832 does not perform search833 with disable_anonymous_search feature flag disabled834 returns matching merge requests835 #row_count836 returns the number of rows for the default state837 returns the number of rows for a given state838 returns -1 if the query times out839 external authorization840 behaves like a finder with external authorization service841 finds the subject842 with an external authorization service843 does not include the subject when no project was given844 includes the subject when a project id was given845 when projects require different access levels for merge requests846 with admin user847 when admin mode is enabled848 returns all merge requests849 when admin mode is disabled850 returns public and internal merge requests851 when project restricts merge requests852 returns nothing to to non members853 with external user854 returns only public merge requests855 with authenticated user856 returns public and internal merge requests857 being added to the private project858 as a guest859 does not return merge requests from the private project860 as a developer861 returns merge requests from the private project862 being added to the public project with private repo access863 as a guest864 returns merge requests from the project865 as a reporter866 returns merge requests from the project867 being added to the internal project with private repo access868 as a guest869 returns merge requests from the project870 as a reporter871 returns merge requests from the project872 #count_by_state873 when filtering by multiple labels874 returns the correnct counts875 when filtering by approved_by_usernames876 returns the correnct counts877QuickActions::InterpretService878 #execute879 limits to commands passed880 preserves leading whitespace881 tracks MAU for commands882 move issue command883 returns the move issue message884 returns move issue failure message when the referenced issue is not found885 behaves like reopen command886 returns state_event: "reopen" if content contains /reopen887 returns the reopen message888 behaves like reopen command889 returns state_event: "reopen" if content contains /reopen890 returns the reopen message891 behaves like close command892 returns state_event: "close" if content contains /close893 returns the close message894 behaves like close command895 returns state_event: "close" if content contains /close896 returns the close message897 merge command898 behaves like merge immediately command899 runs merge command if content contains /merge900 returns them merge message901 when the head pipeline of merge request is running902 behaves like merge automatically command903 runs merge command if content contains /merge and returns merge message904 can not be merged when logged user does not have permissions905 behaves like failed command906 populates {} if content contains an unsupported command907 returns Could not apply merge command. message908 can not be merged when sha does not match909 behaves like failed command910 populates {} if content contains an unsupported command911 returns Could not apply merge command. message912 when sha is missing913 precheck passes and returns merge command914 issue can not be merged915 behaves like failed command916 populates {} if content contains an unsupported command917 returns Could not apply merge command. message918 non persisted merge request cant be merged919 behaves like failed command920 populates {} if content contains an unsupported command921 returns Could not apply merge command. message922 not persisted merge request can not be merged923 behaves like failed command924 populates {} if content contains an unsupported command925 returns Could not apply merge command. message926 behaves like title command927 populates title: "A brand new title" if content contains /title A brand new title928 returns the title message929 behaves like title command930 populates title: "A brand new title" if content contains /title A brand new title931 returns the title message932 behaves like failed command933 populates {} if content contains an unsupported command934 returns an empty message935 assign command with one user936 behaves like assign command937 assigns to a single user938 returns the assign message939 behaves like assign command940 assigns to a single user941 returns the assign message942 behaves like assign command943 assigns to a single user944 returns the assign message945 assign command with multiple assignees946 behaves like assigns to one of the two users947 assigns to a single user948 behaves like assigns to one of the two users949 assigns to a single user950 assign command with me alias951 behaves like assign command952 assigns to a single user953 returns the assign message954 behaves like assign command955 assigns to a single user956 returns the assign message957 assign command with me alias and whitespace958 behaves like assign command959 assigns to a single user960 returns the assign message961 behaves like assign command962 assigns to a single user963 returns the assign message964 behaves like failed command965 populates {} if content contains an unsupported command966 returns Failed to assign a user because no user was found. message967 behaves like failed command968 populates {} if content contains an unsupported command969 returns Failed to assign a user because no user was found. message970 assign_reviewer command971 with one user972 behaves like assign_reviewer command973 assigns a reviewer to a single user974 with an issue instead of a merge request975 behaves like failed command976 populates {} if content contains an unsupported command977 returns Could not apply assign_reviewer command. message978 assign command with multiple assignees979 assigns to one of the two users980 assigns to a single reviewer981 with "me" alias982 behaves like assign_reviewer command983 assigns a reviewer to a single user984 with an alias and whitespace985 behaves like assign_reviewer command986 assigns a reviewer to a single user987 with an incorrect user988 behaves like failed command989 populates {} if content contains an unsupported command990 returns Failed to assign a reviewer because no user was found. message991 with the "reviewer" alias992 behaves like assign_reviewer command993 assigns a reviewer to a single user994 with the "request_review" alias995 behaves like assign_reviewer command996 assigns a reviewer to a single user997 with no user998 behaves like failed command999 populates {} if content contains an unsupported command1000 returns Failed to assign a reviewer because no user was found. message1001 includes only the user reference with extra text1002 behaves like assign_reviewer command1003 assigns a reviewer to a single user1004 unassign_reviewer command1005 with one user1006 behaves like unassign_reviewer command1007 removes a single reviewer1008 with an issue instead of a merge request1009 behaves like failed command1010 populates {} if content contains an unsupported command1011 returns Could not apply unassign_reviewer command. message1012 with anything after the command1013 behaves like unassign_reviewer command1014 removes a single reviewer1015 with the "remove_reviewer" alias1016 behaves like unassign_reviewer command1017 removes a single reviewer1018 with no user1019 behaves like unassign_reviewer command1020 removes a single reviewer1021 unassign command1022 Issue1023 populates assignee_ids: [] if content contains /unassign1024 returns the unassign message for all the assignee if content contains /unassign1025 Merge Request1026 populates assignee_ids: [] if content contains /unassign1027 returns the unassign message for all the assignee if content contains /unassign1028 project milestones1029 behaves like milestone command1030 fetches milestone and populates milestone_id if content contains /milestone1031 returns the milestone message1032 returns empty milestone message when milestone is wrong1033 behaves like milestone command1034 fetches milestone and populates milestone_id if content contains /milestone1035 returns the milestone message1036 returns empty milestone message when milestone is wrong1037 only group milestones available1038 behaves like milestone command1039 fetches milestone and populates milestone_id if content contains /milestone1040 returns the milestone message1041 returns empty milestone message when milestone is wrong1042 behaves like milestone command1043 fetches milestone and populates milestone_id if content contains /milestone1044 returns the milestone message1045 returns empty milestone message when milestone is wrong1046 behaves like remove_milestone command1047 populates milestone_id: nil if content contains /remove_milestone1048 returns removed milestone message1049 behaves like remove_milestone command1050 populates milestone_id: nil if content contains /remove_milestone1051 returns removed milestone message1052 behaves like label command1053 fetches label ids and populates add_label_ids if content contains /label1054 returns the label message1055 behaves like label command1056 fetches label ids and populates add_label_ids if content contains /label1057 returns the label message1058 behaves like multiple label command1059 fetches label ids and populates add_label_ids if content contains multiple /label1060 behaves like multiple label with same argument1061 prevents duplicate label ids and populates add_label_ids if content contains multiple /label1062 behaves like multiword label name starting without ~1063 fetches label ids and populates add_label_ids if content contains /label1064 behaves like multiword label name starting without ~1065 fetches label ids and populates add_label_ids if content contains /label1066 behaves like label name is included in the middle of another label name1067 ignores the sublabel when the content contains the includer label name1068 behaves like label name is included in the middle of another label name1069 ignores the sublabel when the content contains the includer label name1070 behaves like unlabel command1071 fetches label ids and populates remove_label_ids if content contains /unlabel1072 returns the unlabel message1073 behaves like unlabel command1074 fetches label ids and populates remove_label_ids if content contains /unlabel1075 returns the unlabel message1076 behaves like multiple unlabel command1077 fetches label ids and populates remove_label_ids if content contains mutiple /unlabel1078 behaves like unlabel command with no argument1079 populates label_ids: [] if content contains /unlabel with no arguments1080 behaves like unlabel command with no argument1081 populates label_ids: [] if content contains /unlabel with no arguments1082 behaves like relabel command1083 populates label_ids: [] if content contains /relabel1084 returns the relabel message1085 behaves like relabel command1086 populates label_ids: [] if content contains /relabel1087 returns the relabel message1088 behaves like done command1089 populates todo_event: "done" if content contains /done1090 returns the done message1091 behaves like done command1092 populates todo_event: "done" if content contains /done1093 returns the done message1094 behaves like subscribe command1095 populates subscription_event: "subscribe" if content contains /subscribe1096 returns the subscribe message1097 behaves like subscribe command1098 populates subscription_event: "subscribe" if content contains /subscribe1099 returns the subscribe message1100 behaves like unsubscribe command1101 populates subscription_event: "unsubscribe" if content contains /unsubscribe1102 returns the unsubscribe message1103 behaves like unsubscribe command1104 populates subscription_event: "unsubscribe" if content contains /unsubscribe1105 returns the unsubscribe message1106 behaves like failed command1107 populates {} if content contains an unsupported command1108 returns Could not apply due command. message1109 behaves like remove_due_date command1110 populates due_date: nil if content contains /remove_due_date1111 returns Removed the due date1112 behaves like draft command1113 returns wip_event: "wip" if content contains /draft1114 returns the wip message1115 behaves like undraft command1116 returns wip_event: "unwip" if content contains /draft1117 returns the unwip message1118 behaves like failed command1119 populates {} if content contains an unsupported command1120 returns Could not apply remove_due_date command. message1121 behaves like estimate command1122 populates time_estimate: 3600 if content contains /estimate 1h1123 returns the time_estimate formatted message1124 behaves like failed command1125 populates {} if content contains an unsupported command1126 returns an empty message1127 behaves like failed command1128 populates {} if content contains an unsupported command1129 returns an empty message1130 behaves like spend command1131 populates spend_time: 3600 if content contains /spend 1h1132 behaves like spend command1133 populates spend_time: 3600 if content contains /spend 1h1134 behaves like spend command with negative time1135 populates spend_time: -7200 if content contains -120m1136 returns the spend_time message including the formatted duration and verb1137 behaves like spend command with negative time1138 populates spend_time: -7200 if content contains -120m1139 returns the spend_time message including the formatted duration and verb1140 behaves like spend command with valid date1141 populates spend time: 1800 with date in date type format1142 behaves like spend command with valid date1143 populates spend time: 1800 with date in date type format1144 behaves like spend command with invalid date1145 will not create any note and timelog1146 behaves like spend command with invalid date1147 will not create any note and timelog1148 behaves like spend command with future date1149 will not create any note and timelog1150 behaves like spend command with future date1151 will not create any note and timelog1152 behaves like failed command1153 populates {} if content contains an unsupported command1154 returns an empty message1155 behaves like failed command1156 populates {} if content contains an unsupported command1157 returns an empty message1158 behaves like failed command1159 populates {} if content contains an unsupported command1160 returns an empty message1161 behaves like failed command1162 populates {} if content contains an unsupported command1163 returns an empty message1164 behaves like remove_estimate command1165 populates time_estimate: 0 if content contains /remove_estimate1166 returns the remove_estimate message1167 behaves like remove_time_spent command1168 populates spend_time: :reset if content contains /remove_time_spent1169 returns the remove_time_spent message1170 behaves like confidential command1171 marks issue as confidential if content contains /confidential1172 returns the confidential message1173 when issuable is already confidential1174 returns an error message1175 is not part of the available commands1176 behaves like confidential command1177 marks issue as confidential if content contains /confidential1178 returns the confidential message1179 when issuable is already confidential1180 returns an error message1181 is not part of the available commands1182 behaves like lock command1183 returns discussion_locked: true if content contains /lock1184 returns the lock discussion message1185 behaves like lock command1186 returns discussion_locked: true if content contains /lock1187 returns the lock discussion message1188 behaves like unlock command1189 returns discussion_locked: true if content contains /unlock1190 returns the unlock discussion message1191 behaves like unlock command1192 returns discussion_locked: true if content contains /unlock1193 returns the unlock discussion message1194 /todo1195 if issuable is an Issue1196 behaves like todo command1197 populates todo_event: "add" if content contains /todo1198 returns the todo message1199 if issuable is a MergeRequest1200 behaves like todo command1201 populates todo_event: "add" if content contains /todo1202 returns the todo message1203 if issuable is a Commit1204 behaves like failed command1205 populates {} if content contains an unsupported command1206 returns Could not apply todo command. message1207 /due command1208 returns invalid date format message when the due date is invalid1209 behaves like due command1210 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281211 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281212 behaves like due command1213 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281214 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281215 behaves like due command1216 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281217 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281218 behaves like due command1219 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-281220 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-281221 /copy_metadata command1222 is available when the user is a developer1223 when the user does not have permission1224 is not available1225 behaves like failed command1226 populates {} if content contains an unsupported command1227 returns an empty message1228 behaves like copy_metadata command1229 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1230 returns the copy metadata message1231 behaves like copy_metadata command1232 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1233 returns the copy metadata message1234 when the parent issuable has a milestone1235 behaves like copy_metadata command1236 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1237 returns the copy metadata message1238 when more than one issuable is passed1239 behaves like copy_metadata command1240 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference1241 returns the copy metadata message1242 cross project references1243 behaves like failed command1244 populates {} if content contains an unsupported command1245 returns an empty message1246 behaves like failed command1247 populates {} if content contains an unsupported command1248 returns an empty message1249 behaves like failed command1250 populates {} if content contains an unsupported command1251 returns an empty message1252 /duplicate command1253 behaves like duplicate command1254 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference1255 returns the duplicate message1256 behaves like failed command1257 populates {} if content contains an unsupported command1258 returns an empty message1259 cross project references1260 behaves like duplicate command1261 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference1262 returns the duplicate message1263 behaves like failed command1264 populates {} if content contains an unsupported command1265 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1266 behaves like failed command1267 populates {} if content contains an unsupported command1268 returns Failed to mark this issue as a duplicate because referenced issue was not found. message1269 when current_user cannot :admin_issue1270 behaves like failed command1271 populates {} if content contains an unsupported command1272 returns Could not apply assign command. message1273 behaves like failed command1274 populates {} if content contains an unsupported command1275 returns Could not apply unassign command. message1276 behaves like failed command1277 populates {} if content contains an unsupported command1278 returns Could not apply milestone command. message1279 behaves like failed command1280 populates {} if content contains an unsupported command1281 returns Could not apply remove_milestone command. message1282 behaves like failed command1283 populates {} if content contains an unsupported command1284 returns Could not apply label command. message1285 behaves like failed command1286 populates {} if content contains an unsupported command1287 returns Could not apply unlabel command. message1288 behaves like failed command1289 populates {} if content contains an unsupported command1290 returns Could not apply relabel command. message1291 behaves like failed command1292 populates {} if content contains an unsupported command1293 returns Could not apply due command. message1294 behaves like failed command1295 populates {} if content contains an unsupported command1296 returns Could not apply remove_due_date command. message1297 behaves like failed command1298 populates {} if content contains an unsupported command1299 returns Could not apply confidential command. message1300 behaves like failed command1301 populates {} if content contains an unsupported command1302 returns Could not apply lock command. message1303 behaves like failed command1304 populates {} if content contains an unsupported command1305 returns Could not apply unlock command. message1306 /award command1307 behaves like award command1308 toggle award 100 emoji if content contains /award :100:1309 returns the award message1310 behaves like award command1311 toggle award 100 emoji if content contains /award :100:1312 returns the award message1313 ignores command with no argument1314 behaves like failed command1315 populates {} if content contains an unsupported command1316 returns an empty message1317 ignores non-existing / invalid emojis1318 behaves like failed command1319 populates {} if content contains an unsupported command1320 returns an empty message1321 behaves like failed command1322 populates {} if content contains an unsupported command1323 returns an empty message1324 if issuable is a Commit1325 behaves like failed command1326 populates {} if content contains an unsupported command1327 returns Could not apply award command. message1328 /shrug command1329 behaves like shrug command1330 appends ¯\_(ツ)_/¯ to the comment1331 behaves like shrug command1332 appends ¯\_(ツ)_/¯ to the comment1333 /tableflip command1334 behaves like tableflip command1335 appends (╯°□°)╯︵ ┻━┻ to the comment1336 behaves like tableflip command1337 appends (╯°□°)╯︵ ┻━┻ to the comment1338 /target_branch command1339 updates target_branch if /target_branch command is executed1340 handles blanks around param1341 returns the target_branch message1342 ignores command with no argument1343 behaves like failed command1344 populates {} if content contains an unsupported command1345 returns Could not apply target_branch command. message1346 ignores non-existing target branch1347 behaves like failed command1348 populates {} if content contains an unsupported command1349 returns Could not apply target_branch command. message1350 /board_move command1351 populates remove_label_ids for all current board columns1352 populates add_label_ids with the id of the given label1353 does not include the given label id in remove_label_ids1354 does not remove label ids that are not lists on the board1355 returns board_move message1356 if the project has multiple boards1357 behaves like failed command1358 populates {} if content contains an unsupported command1359 returns Could not apply board_move command. message1360 if the given label does not exist1361 behaves like failed command1362 populates {} if content contains an unsupported command1363 returns Failed to move this issue because label was not found. message1364 if multiple labels are given1365 behaves like failed command1366 populates {} if content contains an unsupported command1367 returns Failed to move this issue because only a single label can be provided. message1368 if the given label is not a list on the board1369 behaves like failed command1370 populates {} if content contains an unsupported command1371 returns Failed to move this issue because label was not found. message1372 if issuable is not an Issue1373 behaves like failed command1374 populates {} if content contains an unsupported command1375 returns Could not apply board_move command. message1376 /tag command1377 ignores command with no argument1378 behaves like failed command1379 populates {} if content contains an unsupported command1380 returns an empty message1381 tags a commit with a tag name1382 behaves like tag command1383 tags a commit1384 returns the tag message1385 tags a commit with a tag name and message1386 behaves like tag command1387 tags a commit1388 returns the tag message1389 /create_merge_request command1390 populates create_merge_request with branch_name and issue iid1391 returns the create_merge_request message1392 if issuable is not an Issue1393 behaves like failed command1394 populates {} if content contains an unsupported command1395 returns Could not apply create_merge_request command. message1396 when logged user cannot create_merge_requests in the project1397 behaves like failed command1398 populates {} if content contains an unsupported command1399 returns Could not apply create_merge_request command. message1400 when logged user cannot push code to the project1401 behaves like failed command1402 populates {} if content contains an unsupported command1403 returns Could not apply create_merge_request command. message1404 submit_review command1405 note: "I like it"1406 submits the users current review1407 note: "/submit_review"1408 submits the users current review1409 relate command1410 user is member of group1411 relate a single issue1412 behaves like relate command1413 relates issues1414 relate multiple issues at once1415 behaves like relate command1416 relates issues1417 empty relate command1418 behaves like relate command1419 relates issues1420 already having related issues1421 behaves like relate command1422 relates issues1423 cross project1424 relate a cross project issue1425 behaves like relate command1426 relates issues1427 relate multiple cross projects issues at once1428 behaves like relate command1429 relates issues1430 relate a non-existing issue1431 behaves like relate command1432 relates issues1433 relate a private issue1434 behaves like relate command1435 relates issues1436 invite_email command1437 behaves like failed command1438 populates {} if content contains an unsupported command1439/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1440/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1441 returns No email participants were added. Either none were provided, or they already exist. message1442 with existing email participant1443 behaves like failed command1444/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1445/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1446 populates {} if content contains an unsupported command1447/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1448/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1449 returns No email participants were added. Either none were provided, or they already exist. message1450 with new email participants1451/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1452/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1453 returns message1454/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1455/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1456 adds 2 participants1457 with mixed case email1458/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1459/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1460 returns correctly cased message1461 with invalid email1462/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1463/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1464 only adds valid emails1465 with existing email1466/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1467/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1468 only adds new emails1469/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1470/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1471 only adds new (case insensitive) emails1472 with duplicate email1473/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1474/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1475 only adds unique new emails1476 with more than 6 emails1477/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS1478/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:247: warning: previous definition of MAX_NUMBER_OF_EMAILS was here1479 only adds 6 new emails1480 with feature flag disabled1481 does not add any participants1482 severity command1483 behaves like failed command1484 populates {} if content contains an unsupported command1485 returns No severity matches the provided parameter message1486 when quick action is used on creation1487 behaves like updates the severity1488 is expected to change `issuable.severity` from "unknown" to "medium"1489 issuable does not support severity1490 behaves like failed command1491 populates {} if content contains an unsupported command1492 returns message1493 severity given with S format1494 behaves like updates the severity1495 is expected to change `issuable.severity` from "unknown" to "medium"1496 severity given with number format1497 behaves like updates the severity1498 is expected to change `issuable.severity` from "unknown" to "medium"1499 severity given with text format1500 behaves like updates the severity1501 is expected to change `issuable.severity` from "unknown" to "medium"1502 an issuable that does not support severity1503 behaves like failed command1504 populates {} if content contains an unsupported command1505 returns Could not apply severity command. message1506 approve command1507 approves the current merge request1508 when the user can't approve1509 does not approve the MR1510 behaves like approve command unavailable1511 is not part of the available commands1512 unapprove command1513 unapproves the current merge request1514 when the user can't unapprove1515 does not unapprove the MR1516 behaves like unapprove command unavailable1517 is not part of the available commands1518 #explain1519 close command1520 includes issuable name1521 reopen command1522 includes issuable name1523 title command1524 includes new title1525 assign command1526 includes only the user reference1527 unassign command1528 includes current assignee reference1529 unassign_reviewer command1530 includes current assignee reference1531 assign_reviewer command1532 includes only the user reference1533 milestone command1534 is empty when milestone reference is wrong1535 remove milestone command1536 includes current milestone name1537 label command1538 is empty when there are no correct labels1539 unlabel command1540 says all labels if no parameter provided1541 relabel command1542 includes label name1543 subscribe command1544 includes issuable name1545 unsubscribe command1546 includes issuable name1547 due command1548 includes the date1549 draft command1550 includes the new status1551 award command1552 includes the emoji1553 estimate command1554 includes the formatted duration1555 spend command1556 includes the formatted duration and proper verb when using /spend1557 includes the formatted duration and proper verb when using /spent1558 target branch command1559 includes the branch name1560 board move command1561 includes the label name1562 move issue to another project command1563 includes the project name1564 tag a commit1565 with a tag name1566 without a message1567 includes the tag name only1568 with an empty message1569 includes the tag name only1570 with a tag name and message1571 includes the tag name and message1572 create a merge request1573 with no branch name1574 uses the default branch name1575 returns the execution message using the default branch name1576 with a branch name1577 uses the given branch name1578 returns the execution message using the given branch name1579 #commands_executed_count1580 counts commands executed1581Git::BranchPushService1582 Push branches1583 new branch1584 is expected to be truthy1585 calls the after_push_commit hook1586 calls the after_create_branch hook1587 existing branch1588 is expected to be truthy1589 calls the after_push_commit hook1590 rm branch1591 is expected to be truthy1592 calls the after_push_commit hook1593 calls the after_remove_branch hook1594 Pipelines1595 creates a pipeline with the right parameters1596 creates a new pipeline1597 when pipeline has errors1598 reports an error1599 with push options1600 sanitizes push options1601 when .gitlab-ci.yml file is invalid1602 persists an error pipeline1603 Updates merge requests1604 when pushing a new branch for the first time1605 Updates git attributes1606 for default branch1607 calls the copy attributes method for the first push to the default branch1608 calls the copy attributes method for changes to the default branch1609 for non-default branch1610 does not call copy attributes method1611 Webhooks1612 execute webhooks1613 when pushing a branch for the first time1614 when pushing a branch for the first time with default branch protection disabled1615 when pushing a branch for the first time with default branch protection set to 'developers can push'1616 when pushing a branch for the first time with an existing branch permission configured1617 when pushing a branch for the first time with default branch protection set to 'developers can merge'1618 when pushing new commits to existing branch1619 cross-reference notes1620 creates a note if a pushed commit mentions an issue1621 only creates a cross-reference note if one doesn't already exist1622 defaults to the pushing user if the commit's author is not known1623 finds references in the first push to a non-default branch1624 issue metrics1625 while saving the 'first_mentioned_in_commit_at' metric for an issue1626 sets the metric for referenced issues1627 does not set the metric for non-referenced issues1628 closing issues from pushed commits containing a closing reference1629 to default branches1630 closes issues1631 adds a note indicating that the issue is now closed1632 doesn't create additional cross-reference notes1633 to non-default branches1634 creates cross-reference notes1635 doesn't close issues1636 for jira issue tracker1637 mentioning an issue1638 initiates one api call to jira server to mention the issue1639 closing an issue1640 using right markdown1641 initiates one api call to jira server to close the issue1642 initiates one api call to jira server to comment on the issue1643 using internal issue reference1644 when internal issues are disabled1645 does not initiates one api call to jira server to close the issue1646 does not initiates one api call to jira server to comment on the issue1647 when internal issues are enabled1648 initiates one api call to jira server to close the jira issue1649 initiates one api call to jira server to comment on the jira issue1650 closes the internal issue1651 adds a note indicating that the issue is now closed1652 empty project1653 push to first branch updates HEAD1654 housekeeping1655 does not perform housekeeping when not needed1656 increments the push counter1657 when housekeeping is needed1658 performs housekeeping1659 does not raise an exception1660 CI environments1661 create branch1662 does nothing1663 update branch1664 does nothing1665 delete branch1666 stops environments1667 artifacts1668 create branch1669 does nothing1670 update branch1671 does nothing1672 delete branch1673 unlocks artifacts1674 Hooks1675 run on a branch1676 delegates to Git::BranchHooksService1677 run on a tag1678 does nothing1679 Jira Connect hooks1680 with a Jira subscription1681 branch name contains Jira issue key1682 behaves like enqueues Jira sync worker1683 aggregate_failures1684 commit message contains Jira issue key1685 behaves like enqueues Jira sync worker1686 aggregate_failures1687 branch name and commit message does not contain Jira issue key1688 behaves like does not enqueue Jira sync worker1689 is expected not to change `Array#size`1690 without a Jira subscription1691 behaves like does not enqueue Jira sync worker1692 is expected not to change `Array#size`1693Projects::Alerting::NotifyService1694 #execute1695 with HTTP integration1696 with valid token1697 with valid payload1698 passes the integration to alert processing1699 behaves like processes new firing alert1700 behaves like creates an alert management alert or errors1701 is expected to be success1702 creates AlertManagement::Alert1703 executes the alert service hooks1704 and fails to save1705 writes a warning to the log1706 behaves like alerts service responds with an error1707 is expected to eq :bad_request1708 behaves like creates expected system notes for alert1709 for new_alert1710 behaves like processes incident issues if enabled1711 is expected to be success1712 with incident setting disabled1713 behaves like does not process incident issues1714 is expected not to receive perform_async(*(any args)) 0 times1715 behaves like sends alert notification emails if enabled1716 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1717 with email setting disabled1718 behaves like does not send alert notification emails1719 is expected not to receive new(*(any args)) 0 times1720 for an existing alert with the same fingerprint1721 which is triggered1722 behaves like adds an alert management alert event1723 is expected to be success1724 behaves like does not create an alert management alert1725 is expected not to change `AlertManagement::Alert.count`1726 behaves like sends alert notification emails if enabled1727 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1728 with email setting disabled1729 behaves like does not send alert notification emails1730 is expected not to receive new(*(any args)) 0 times1731 behaves like processes incident issues if enabled1732 is expected to be success1733 with incident setting disabled1734 behaves like does not process incident issues1735 is expected not to receive perform_async(*(any args)) 0 times1736 behaves like does not create an alert management alert1737 is expected not to change `AlertManagement::Alert.count`1738 behaves like does not create a system note for alert1739 is expected not to change `Note.count`1740 with an existing resolved alert as well1741 behaves like adds an alert management alert event1742 is expected to be success1743 behaves like does not create an alert management alert1744 is expected not to change `AlertManagement::Alert.count`1745 behaves like sends alert notification emails if enabled1746 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1747 with email setting disabled1748 behaves like does not send alert notification emails1749 is expected not to receive new(*(any args)) 0 times1750 behaves like processes incident issues if enabled1751 is expected to be success1752 with incident setting disabled1753 behaves like does not process incident issues1754 is expected not to receive perform_async(*(any args)) 0 times1755 behaves like does not create an alert management alert1756 is expected not to change `AlertManagement::Alert.count`1757 behaves like does not create a system note for alert1758 is expected not to change `Note.count`1759 which is acknowledged1760 behaves like adds an alert management alert event1761 is expected to be success1762 behaves like does not create an alert management alert1763 is expected not to change `AlertManagement::Alert.count`1764 behaves like processes incident issues if enabled1765 is expected to be success1766 with incident setting disabled1767 behaves like does not process incident issues1768 is expected not to receive perform_async(*(any args)) 0 times1769 behaves like does not create an alert management alert1770 is expected not to change `AlertManagement::Alert.count`1771 behaves like does not create a system note for alert1772 is expected not to change `Note.count`1773 behaves like does not send alert notification emails1774 is expected not to receive new(*(any args)) 0 times1775 which is ignored1776 behaves like adds an alert management alert event1777 is expected to be success1778 behaves like does not create an alert management alert1779 is expected not to change `AlertManagement::Alert.count`1780 behaves like processes incident issues if enabled1781 is expected to be success1782 with incident setting disabled1783 behaves like does not process incident issues1784 is expected not to receive perform_async(*(any args)) 0 times1785 behaves like does not create an alert management alert1786 is expected not to change `AlertManagement::Alert.count`1787 behaves like does not create a system note for alert1788 is expected not to change `Note.count`1789 behaves like does not send alert notification emails1790 is expected not to receive new(*(any args)) 0 times1791 which is resolved1792 behaves like creates an alert management alert or errors1793 is expected to be success1794 creates AlertManagement::Alert1795 executes the alert service hooks1796 and fails to save1797 writes a warning to the log1798 behaves like alerts service responds with an error1799 is expected to eq :bad_request1800 behaves like creates expected system notes for alert1801 for new_alert1802 behaves like processes incident issues if enabled1803 is expected to be success1804 with incident setting disabled1805 behaves like does not process incident issues1806 is expected not to receive perform_async(*(any args)) 0 times1807 behaves like sends alert notification emails if enabled1808 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1809 with email setting disabled1810 behaves like does not send alert notification emails1811 is expected not to receive new(*(any args)) 0 times1812 behaves like properly assigns the alert properties1813 is expected to match {"project_id"=>284, "title"=>"alert title", "started_at"=>Wed, 22 Sep 2021 10:27:19.000000000 UTC +00:00, "severity"=>"low", "status"=>0, "events"=>1, "domain"=>"operations", "hosts"=>["1.1.1.1", "2.2.2.2"], "payload"=>{"title"=>"alert title", "start_time"=>"2021-09-22T10:27:19Z", "end_time"=>nil, "severity"=>"low", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "description"=>"Very detailed description", "hosts"=>["1.1.1.1", "2.2.2.2"], "fingerprint"=>"testing", "gitlab_environment_name"=>"environment4"}, "issue_id"=>nil, "description"=>"Very detailed description", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "fingerprint"=>"dc724af18fbdd4e59189f5fe768a5f8311527050", "environment_id"=>10, "ended_at"=>nil, "prometheus_alert_id"=>nil}1814 with partial payload1815 assigns the alert properties1816 behaves like creates an alert management alert or errors1817 is expected to be success1818 creates AlertManagement::Alert1819 executes the alert service hooks1820 and fails to save1821 writes a warning to the log1822 behaves like alerts service responds with an error1823 is expected to eq :bad_request1824 behaves like creates expected system notes for alert1825 for new_alert1826 behaves like processes incident issues if enabled1827 is expected to be success1828 with incident setting disabled1829 behaves like does not process incident issues1830 is expected not to receive perform_async(*(any args)) 0 times1831 behaves like sends alert notification emails if enabled1832 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1833 with email setting disabled1834 behaves like does not send alert notification emails1835 is expected not to receive new(*(any args)) 0 times1836 with existing alert with matching payload1837 behaves like creates an alert management alert or errors1838 is expected to be success1839 creates AlertManagement::Alert1840 executes the alert service hooks1841 and fails to save1842 writes a warning to the log1843 behaves like alerts service responds with an error1844 is expected to eq :bad_request1845 behaves like creates expected system notes for alert1846 for new_alert1847 behaves like processes incident issues if enabled1848 is expected to be success1849 with incident setting disabled1850 behaves like does not process incident issues1851 is expected not to receive perform_async(*(any args)) 0 times1852 behaves like sends alert notification emails if enabled1853 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1854 with email setting disabled1855 behaves like does not send alert notification emails1856 is expected not to receive new(*(any args)) 0 times1857 with resolving payload1858 behaves like processes recovery alert1859 seen for the first time1860 resolves the alert1861 behaves like creates an alert management alert or errors1862 is expected to be success1863 creates AlertManagement::Alert1864 executes the alert service hooks1865 and fails to save1866 writes a warning to the log1867 behaves like alerts service responds with an error1868 is expected to eq :bad_request1869 behaves like creates expected system notes for alert1870 for new_alert, recovery_alert, resolve_alert1871 behaves like sends alert notification emails if enabled1872 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1873 with email setting disabled1874 behaves like does not send alert notification emails1875 is expected not to receive new(*(any args)) 0 times1876 behaves like does not process incident issues1877 is expected not to receive perform_async(*(any args)) 0 times1878 behaves like writes a warning to the log for a failed alert status update1879 is expected to be success1880 for an existing alert with the same fingerprint1881 which is triggered1882 behaves like resolves an existing alert management alert1883 sets the end time and status1884 behaves like creates expected system notes for alert1885 for recovery_alert, resolve_alert1886 behaves like sends alert notification emails if enabled1887 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1888 with email setting disabled1889 behaves like does not send alert notification emails1890 is expected not to receive new(*(any args)) 0 times1891 behaves like closes related incident if enabled1892 with issue1893 is expected to change `alert.issue.reload.closed?` from false to true1894 is expected to change `ResourceStateEvent.count` by 11895 without issue1896 is expected not to change `alert.reload.issue`1897 is expected not to change `ResourceStateEvent.count`1898 with incident setting disabled1899 behaves like does not close related incident1900 with issue1901 is expected not to change `alert.issue.reload.state`1902 is expected not to change `ResourceStateEvent.count`1903 without issue1904 is expected not to change `alert.reload.issue`1905 is expected not to change `ResourceStateEvent.count`1906 behaves like writes a warning to the log for a failed alert status update1907 is expected to be success1908 behaves like does not create an alert management alert1909 is expected not to change `AlertManagement::Alert.count`1910 behaves like does not process incident issues1911 is expected not to receive perform_async(*(any args)) 0 times1912 behaves like does not add an alert management alert event1913 is expected not to change `alert.reload.events`1914 which is ignored1915 behaves like resolves an existing alert management alert1916 sets the end time and status1917 behaves like creates expected system notes for alert1918 for recovery_alert, resolve_alert1919 behaves like sends alert notification emails if enabled1920 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1921 with email setting disabled1922 behaves like does not send alert notification emails1923 is expected not to receive new(*(any args)) 0 times1924 behaves like closes related incident if enabled1925 with issue1926 is expected to change `alert.issue.reload.closed?` from false to true1927 is expected to change `ResourceStateEvent.count` by 11928 without issue1929 is expected not to change `alert.reload.issue`1930 is expected not to change `ResourceStateEvent.count`1931 with incident setting disabled1932 behaves like does not close related incident1933 with issue1934 is expected not to change `alert.issue.reload.state`1935 is expected not to change `ResourceStateEvent.count`1936 without issue1937 is expected not to change `alert.reload.issue`1938 is expected not to change `ResourceStateEvent.count`1939 behaves like writes a warning to the log for a failed alert status update1940 is expected to be success1941 behaves like does not create an alert management alert1942 is expected not to change `AlertManagement::Alert.count`1943 behaves like does not process incident issues1944 is expected not to receive perform_async(*(any args)) 0 times1945 behaves like does not add an alert management alert event1946 is expected not to change `alert.reload.events`1947 which is acknowledged1948 behaves like resolves an existing alert management alert1949 sets the end time and status1950 behaves like creates expected system notes for alert1951 for recovery_alert, resolve_alert1952 behaves like sends alert notification emails if enabled1953 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1954 with email setting disabled1955 behaves like does not send alert notification emails1956 is expected not to receive new(*(any args)) 0 times1957 behaves like closes related incident if enabled1958 with issue1959 is expected to change `alert.issue.reload.closed?` from false to true1960 is expected to change `ResourceStateEvent.count` by 11961 without issue1962 is expected not to change `alert.reload.issue`1963 is expected not to change `ResourceStateEvent.count`1964 with incident setting disabled1965 behaves like does not close related incident1966 with issue1967 is expected not to change `alert.issue.reload.state`1968 is expected not to change `ResourceStateEvent.count`1969 without issue1970 is expected not to change `alert.reload.issue`1971 is expected not to change `ResourceStateEvent.count`1972 behaves like writes a warning to the log for a failed alert status update1973 is expected to be success1974 behaves like does not create an alert management alert1975 is expected not to change `AlertManagement::Alert.count`1976 behaves like does not process incident issues1977 is expected not to receive perform_async(*(any args)) 0 times1978 behaves like does not add an alert management alert event1979 is expected not to change `alert.reload.events`1980 which is resolved1981 resolves the alert1982 behaves like creates an alert management alert or errors1983 is expected to be success1984 creates AlertManagement::Alert1985 executes the alert service hooks1986 and fails to save1987 writes a warning to the log1988 behaves like alerts service responds with an error1989 is expected to eq :bad_request1990 behaves like creates expected system notes for alert1991 for new_alert, recovery_alert, resolve_alert1992 behaves like sends alert notification emails if enabled1993 is expected to receive prometheus_alerts_fired(*(any args)) 1 time1994 with email setting disabled1995 behaves like does not send alert notification emails1996 is expected not to receive new(*(any args)) 0 times1997 behaves like does not process incident issues1998 is expected not to receive perform_async(*(any args)) 0 times1999 behaves like writes a warning to the log for a failed alert status update2000 is expected to be success2001 with overlong payload2002 behaves like alerts service responds with an error and takes no actions2003 is expected to eq :bad_request2004 behaves like does not create an alert management alert2005 is expected not to change `AlertManagement::Alert.count`2006 behaves like does not create a system note for alert2007 is expected not to change `Note.count`2008 behaves like does not process incident issues2009 is expected not to receive perform_async(*(any args)) 0 times2010 behaves like does not send alert notification emails2011 is expected not to receive new(*(any args)) 0 times2012 with inactive integration2013 behaves like alerts service responds with an error and takes no actions2014 is expected to eq :forbidden2015 behaves like does not create an alert management alert2016 is expected not to change `AlertManagement::Alert.count`2017 behaves like does not create a system note for alert2018 is expected not to change `Note.count`2019 behaves like does not process incident issues2020 is expected not to receive perform_async(*(any args)) 0 times2021 behaves like does not send alert notification emails2022 is expected not to receive new(*(any args)) 0 times2023 with invalid token2024 behaves like alerts service responds with an error and takes no actions2025 is expected to eq :unauthorized2026 behaves like does not create an alert management alert2027 is expected not to change `AlertManagement::Alert.count`2028 behaves like does not create a system note for alert2029 is expected not to change `Note.count`2030 behaves like does not process incident issues2031 is expected not to receive perform_async(*(any args)) 0 times2032 behaves like does not send alert notification emails2033 is expected not to receive new(*(any args)) 0 times2034 without HTTP integration2035 behaves like alerts service responds with an error and takes no actions2036 is expected to eq :forbidden2037 behaves like does not create an alert management alert2038 is expected not to change `AlertManagement::Alert.count`2039 behaves like does not create a system note for alert2040 is expected not to change `Note.count`2041 behaves like does not process incident issues2042 is expected not to receive perform_async(*(any args)) 0 times2043 behaves like does not send alert notification emails2044 is expected not to receive new(*(any args)) 0 times2045DesignManagement::DesignV432x230Uploader2046 resizes images2047 behaves like builds correct paths2048 #store_dir2049 behaves like matches the method pattern2050 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//2051 #cache_dir2052 behaves like matches the method pattern2053 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2054 #work_dir2055 behaves like matches the method pattern2056 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2057 #upload_path2058 behaves like matches the method pattern2059 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//2060 #relative_path2061 is relative (PENDING: Path not set, skipping.)2062 .absolute_path2063 behaves like matches the method pattern2064 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//2065 .base_dir2066 behaves like matches the method pattern2067 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2068 path traversal exploits2069 throws an exception2070 object_store is REMOTE2071 behaves like builds correct paths2072 #store_dir2073 behaves like matches the method pattern2074 is expected to match /design_management\/action\/image_v432x230\//2075 #cache_dir2076 behaves like matches the method pattern2077 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2078 #work_dir2079 behaves like matches the method pattern2080 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2081 #upload_path2082 behaves like matches the method pattern2083 is expected to match /design_management\/action\/image_v432x230\//2084 #relative_path2085 is relative (PENDING: Path not set, skipping.)2086 .absolute_path2087 behaves like matches the method pattern2088 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2089 .base_dir2090 behaves like matches the method pattern2091 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2092 path traversal exploits2093 throws an exception2094 #migrate!2095 behaves like migrates2096 returns corresponding file type2097 does nothing when migrating to the current store2098 migrate to the specified store2099 removes the original file after the migration2100 can access to the original file during migration2101 when migrate! is not occupied by another process2102 executes migrate!2103 executes use_file2104 when migrate! is occupied by another process2105 does not execute migrate!2106 does not execute use_file2107 migration is unsuccessful2108 when the store is not supported2109 does not update the object_store2110 does not delete the original file2111 upon a fog failure2112 does not update the object_store2113 does not delete the original file2114 upon a database failure2115 does not update the object_store2116 does not delete the original file2117 behaves like migrates2118 returns corresponding file type2119 does nothing when migrating to the current store2120 migrate to the specified store2121 removes the original file after the migration2122 can access to the original file during migration2123 when migrate! is not occupied by another process2124 executes migrate!2125 executes use_file2126 when migrate! is occupied by another process2127 does not execute migrate!2128 does not execute use_file2129 migration is unsuccessful2130 when the store is not supported2131 does not update the object_store2132 does not delete the original file2133 upon a fog failure2134 does not update the object_store2135 does not delete the original file2136 upon a database failure2137 does not update the object_store2138 does not delete the original file2139 accept whitelist file content type2140 mime_type: "image/png"2141 behaves like accepted carrierwave upload2142 will accept upload2143 will cache uploaded file2144 mime_type: "image/jpeg"2145 behaves like accepted carrierwave upload2146 will accept upload2147 will cache uploaded file2148 mime_type: "image/bmp"2149 behaves like accepted carrierwave upload2150 will accept upload2151 will cache uploaded file2152 mime_type: "image/gif"2153 behaves like accepted carrierwave upload2154 will accept upload2155 will cache uploaded file2156 upload non-whitelisted file content type2157 behaves like denied carrierwave upload2158 will deny upload2159 upload misnamed non-whitelisted file content type2160 behaves like denied carrierwave upload2161 will deny upload2162Projects::OverwriteProjectService2163 #execute2164 when project does not have any relation2165 behaves like overwrite actions2166 moves deploy keys2167 moves notification settings2168 moves users stars2169 moves project group links2170 moves memberships and authorizations2171 removes the original project2172 renames the project2173 moves lfs objects relationships2174 is expected to eq 32175 when project with elements2176 behaves like overwrite actions2177 moves deploy keys2178 moves notification settings2179 moves users stars2180 moves project group links2181 moves memberships and authorizations2182 removes the original project2183 renames the project2184 moves lfs objects relationships2185 is expected to eq 32186 forks2187 when moving a root forked project2188 moves the descendant forks2189 updates the fork network2190 when moving a intermediate forked project2191 moves the descendant forks2192 moves the ascendant fork2193 does not update fork network2194 if an exception is raised2195 rollbacks changes2196 tries to restore the original project repositories2197Projects::CreateService#execute2198 calls the passed block2199 writes project full path to .git/config2200 triggers PostCreationWorker2201 with labels2202 creates labels on project creation2203 using gitlab project import2204 does not creates labels on project creation2205 setting name and path2206 when both are set2207 keeps them as specified2208 when path is set2209 sets name == path2210 when name is a valid path2211 sets path == name2212 when name is not a valid path2213 parameterizes the name2214 topics2215 with 'topics' parameter2216 keeps them as specified2217 with 'topic_list' parameter2218 keeps them as specified2219 with 'tag_list' parameter (deprecated)2220 keeps them as specified2221 user namespace2222 is expected to eq #<Namespace id: 810, name: "John Doe443", path: "user191", owner_id: 531, created_at: "2021-09-22 10:...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>2223 after create actions2224 invalidate personal_projects_count caches2225 builds associated project settings2226 behaves like storing arguments in the application context2227 places the expected params in the application context2228 admin creates project with other user's namespace_id2229 when admin mode is enabled2230 sets the correct permissions2231 when admin mode is disabled2232 is not allowed2233 group namespace2234 is expected to include #<Project id:554 group280/GitLab>>2235 group sharing2236 updates authorization2237 membership overrides2238 membership is higher from group hierarchy2239 updates authorization2240 membership is higher from group share2241 share max access level is not limiting2242 updates authorization2243 share max access level is limiting2244 updates authorization2245 error handling2246 handles invalid options2247 wiki_enabled creates repository directory2248 wiki_enabled true creates wiki repository directory2249 is expected to be truthy2250 wiki_enabled false does not create wiki repository directory2251 is expected to be falsey2252 import data2253 does not write repository config2254 stores import data and URL2255 tracks for the combined_registration experiment2256 builds_enabled global setting2257 global builds_enabled false does not enable CI by default2258 is expected to be falsey2259 global builds_enabled true does enable CI by default2260 is expected to be truthy2261 default visibility level2262 in public group2263 creates project with correct visibility level2264 in internal group2265 creates project with correct visibility level2266 in private group2267 creates project with correct visibility level2268 restricted visibility level2269 when visibility is project based2270 does not allow a restricted visibility level for non-admins2271 does not allow a restricted visibility level for admins when admin mode is disabled2272 allows a restricted visibility level for admins when admin mode is enabled2273 when visibility is overridden2274 does not allow a restricted visibility level for non-admins2275 does not allow a restricted visibility level for admins when admin mode is disabled2276 allows a restricted visibility level for admins when admin mode is enabled2277 when visibility is misspelled2278 does not restrict project creation2279 repository creation2280 synchronously creates the repository2281 when another repository already exists on disk2282 with legacy storage2283 does not allow to create a project when path matches existing repository on disk2284 does not allow to import project when path matches existing repository on disk2285 with hashed storage2286 does not allow to create a project when path matches existing repository on disk2287 when readme initialization is requested2288 behaves like creates README.md2289 is expected to equal 12290 is expected to eql "README.md"2291 is expected to include "# GitLab"2292 and a default_branch_name is specified2293 creates README.md within the specified branch rather than master2294 behaves like creates README.md2295 is expected to equal 12296 is expected to eql "README.md"2297 is expected to include "# GitLab"2298 advanced readme content2299 includes advanced content in the README.md2300 behaves like creates README.md2301 is expected to equal 12302 is expected to eql "README.md"2303 is expected to include "# GitLab"2304 and readme_template is specified2305 creates README.md with specified template2306 behaves like creates README.md2307 is expected to equal 12308 is expected to eql "README.md"2309 is expected to include "# GitLab"2310 create integration for the project2311 with an active instance-level integration2312 creates an integration from the instance-level integration2313 with an active group-level integration2314 creates an integration from the group-level integration2315 with an active subgroup2316 creates an integration from the subgroup-level integration2317 when skip_disk_validation is used2318 sets the project attribute2319 with external authorization enabled2320 does not save the project with an error if the service denies access2321 saves the project when the user has access to the label2322 does not save the project when the user has no access to the default label and no label is provided2323 behaves like measurable service2324 when measurement is enabled2325 measure service execution with Gitlab::Utils::Measuring2326 when measurement is disabled2327 does not measure service execution2328 with specialized project_authorization workers2329 updates authorization for current_user2330 schedules authorization update for users with access to group2331 shared Runners config2332 when parent group is present2333 default value based on parent group setting2334 shared_runners_setting: "enabled", desired_config_for_new_project: nil, expected_result_for_project: true2335 creates project following the parent config2336 shared_runners_setting: "disabled_with_override", desired_config_for_new_project: nil, expected_result_for_project: false2337 creates project following the parent config2338 shared_runners_setting: "disabled_and_unoverridable", desired_config_for_new_project: nil, expected_result_for_project: false2339 creates project following the parent config2340 parent group is present and allows desired config2341 shared_runners_setting: "enabled", desired_config_for_new_project: true, expected_result_for_project: true2342 creates project following the parent config2343 shared_runners_setting: "enabled", desired_config_for_new_project: false, expected_result_for_project: false2344 creates project following the parent config2345 shared_runners_setting: "disabled_with_override", desired_config_for_new_project: false, expected_result_for_project: false2346 creates project following the parent config2347 shared_runners_setting: "disabled_with_override", desired_config_for_new_project: true, expected_result_for_project: true2348 creates project following the parent config2349 shared_runners_setting: "disabled_and_unoverridable", desired_config_for_new_project: false, expected_result_for_project: false2350 creates project following the parent config2351 parent group is present and disallows desired config2352 shared_runners_setting: "disabled_and_unoverridable", desired_config_for_new_project: true2353 does not create project2354 parent group is not present2355 desired_config: true, expected_result: true2356 follows desired config2357 desired_config: false, expected_result: false2358 follows desired config2359 desired_config: nil, expected_result: true2360 follows desired config2361DeploymentsFinder2362 validation2363 when both updated_at and finished_at filters are specified2364 raises an error2365 when updated_at filter and id sorting2366 raises an error2367 when finished_at filter and id sorting2368 raises an error2369 when finished_at filter with failed status filter2370 raises an error2371 when environment filter with non-project scope2372 raises an error2373 #execute2374 when project or group is missing2375 returns nothing2376 at project scope2377 filtering2378 when updated_at filters are specified2379 returns deployments with matched updated_at2380 when the environment name is specified2381 returns deployments for the given environment2382 when the deployment status is specified2383 returns deployments for the given environment2384 when using an invalid deployment status2385 raises ArgumentError2386 ordering2387 order_by: "created_at", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2388 returns the deployments ordered2389 order_by: "created_at", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]2390 returns the deployments ordered2391 order_by: "id", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2392 returns the deployments ordered2393 order_by: "id", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]2394 returns the deployments ordered2395 order_by: "iid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2396 returns the deployments ordered2397 order_by: "iid", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]2398 returns the deployments ordered2399 order_by: "ref", sort: "asc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]2400 returns the deployments ordered2401 order_by: "ref", sort: "desc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]2402 returns the deployments ordered2403 order_by: "updated_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError2404 returns the deployments ordered2405 order_by: "updated_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError2406 returns the deployments ordered2407 order_by: "finished_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError2408 returns the deployments ordered2409 order_by: "finished_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError2410 returns the deployments ordered2411 order_by: "invalid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2412 returns the deployments ordered2413 order_by: "iid", sort: "err", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]2414 returns the deployments ordered2415 transform `created_at` sorting to `id` sorting2416 sorts by only one column2417 sorts by `id`2418 transform `iid` sorting to `id` sorting2419 sorts by only one column2420 sorts by `id`2421 tie-breaker for `updated_at` sorting2422 sorts by two columns2423 adds `id` sorting as the second order column2424 uses the `id ASC` as tie-breaker when ordering2425 when sort direction is desc2426 uses the `id DESC` as tie-breaker when ordering2427 enforce sorting to `updated_at` sorting2428 sorts by only one column2429 sorts by `updated_at`2430 when filtering by finished time2431 when filtering by finished_after and finished_before2432 is expected to contain exactly #<Deployment id: 66, iid: 1, project_id: 609, environment_id: 67, ref: "master", tag: false, sha: "b8...: "success", finished_at: "2021-09-20 10:31:06.735956607 +0000", cluster_id: nil, deployable_id: 70>2433 when the finished_before parameter is missing2434 is expected to contain exactly #<Deployment id: 69, iid: 1, project_id: 609, environment_id: 70, ref: "master", tag: false, sha: "b8...: "success", finished_at: "2021-09-20 10:31:08.066624257 +0000", cluster_id: nil, deployable_id: 73> and #<Deployment id: 71, iid: 3, project_id: 609, environment_id: 72, ref: "master", tag: false, sha: "b8...: "success", finished_at: "2021-09-22 05:31:08.875329599 +0000", cluster_id: nil, deployable_id: 75>2435 when finished_after is missing2436 is expected to contain exactly #<Deployment id: 73, iid: 2, project_id: 609, environment_id: 74, ref: "master", tag: false, sha: "b8...: "success", finished_at: "2021-09-18 10:31:09.767557648 +0000", cluster_id: nil, deployable_id: 77>2437 at group scope2438 avoids N+1 queries2439 ordering2440 order_by: "created_at", sort: "asc"2441 returns the deployments unordered2442 order_by: "created_at", sort: "desc"2443 returns the deployments unordered2444 order_by: "id", sort: "asc"2445 returns the deployments unordered2446 order_by: "id", sort: "desc"2447 returns the deployments unordered2448 order_by: "iid", sort: "asc"2449 returns the deployments unordered2450 order_by: "iid", sort: "desc"2451 returns the deployments unordered2452 order_by: "ref", sort: "asc"2453 returns the deployments unordered2454 order_by: "ref", sort: "desc"2455 returns the deployments unordered2456 order_by: "invalid", sort: "asc"2457 returns the deployments unordered2458 order_by: "iid", sort: "err"2459 returns the deployments unordered2460Banzai::Filter::RepositoryLinkFilter2461 does not trigger a gitaly n+12462 does not raise an exception on invalid URIs2463 does not raise an exception on URIs containing invalid utf-8 byte sequences2464 does not raise an exception on URIs containing invalid utf-8 byte sequences in context requested path2465 does not raise an exception with a garbled path2466 does not explode with an escaped null byte2467 ignores ref if commit is passed2468 with a wiki2469 does not modify any relative URL in anchor2470 does not modify any relative URL in image2471 does not modify any relative URL in video2472 does not modify any relative URL in audio2473 without a repository2474 does not modify any relative URL in anchor2475 does not modify any relative URL in image2476 does not modify any relative URL in video2477 does not modify any relative URL in audio2478 with an empty repository2479 does not modify any relative URL in anchor2480 does not modify any relative URL in image2481 does not modify any relative URL in video2482 does not modify any relative URL in audio2483 without project repository access2484 does not modify any relative URL in anchor2485 does not modify any relative URL in image2486 does not modify any relative URL in video2487 does not modify any relative URL in audio2488 with a valid commit2489 handles Gitaly unavailable exceptions gracefully2490 handles Gitaly timeout exceptions gracefully2491 rebuilds absolute URL for a file in the repo2492 does not modify relative URLs in system notes2493 ignores absolute URLs with two leading slashes2494 rebuilds relative URL for a file in the repo2495 rebuilds relative URL for a missing file in the repo2496 rebuilds relative URL for a file in the repo with leading ./2497 rebuilds relative URL for a file in the repo up one directory2498 rebuilds relative URL for a file in the repo up multiple directories2499 rebuilds relative URL for a file in the repository root2500 rebuilds relative URL for a file in the repo with an anchor2501 rebuilds relative URL for a directory in the repo2502 rebuilds relative URL for an image in the repo2503 rebuilds relative URL for link to an image in the repo2504 rebuilds relative URL for a video in the repo2505 rebuilds relative URL for audio in the repo2506 does not modify relative URL with an anchor only2507 does not modify absolute URL2508 does not call gitaly2509 supports Unicode filenames2510 when requested path is a file in the repo2511 rebuilds URL relative to the containing directory2512 when requested path is a directory in the repo2513 rebuilds URL relative to the directory2514 when ref name contains percent sign2515 correctly escapes the ref2516 when ref name contains special chars2517 correctly escapes the ref2518 when requested path is a directory with space in the repo2519 does not escape the space twice2520 with a valid ref2521 handles Gitaly unavailable exceptions gracefully2522 handles Gitaly timeout exceptions gracefully2523 rebuilds absolute URL for a file in the repo2524 does not modify relative URLs in system notes2525 ignores absolute URLs with two leading slashes2526 rebuilds relative URL for a file in the repo2527 rebuilds relative URL for a missing file in the repo2528 rebuilds relative URL for a file in the repo with leading ./2529 rebuilds relative URL for a file in the repo up one directory2530 rebuilds relative URL for a file in the repo up multiple directories2531 rebuilds relative URL for a file in the repository root2532 rebuilds relative URL for a file in the repo with an anchor2533 rebuilds relative URL for a directory in the repo2534 rebuilds relative URL for an image in the repo2535 rebuilds relative URL for link to an image in the repo2536 rebuilds relative URL for a video in the repo2537 rebuilds relative URL for audio in the repo2538 does not modify relative URL with an anchor only2539 does not modify absolute URL2540 does not call gitaly2541 supports Unicode filenames2542 when requested path is a file in the repo2543 rebuilds URL relative to the containing directory2544 when requested path is a directory in the repo2545 rebuilds URL relative to the directory2546 when ref name contains percent sign2547 correctly escapes the ref2548 when ref name contains special chars2549 correctly escapes the ref2550 when requested path is a directory with space in the repo2551 does not escape the space twice2552Issuable::BulkUpdateService2553 with issuables at a project level2554 with unpermitted attributes2555 does not update the issues2556 close issues2557 succeeds and returns the correct number of issues updated2558 closes all the issues passed2559 behaves like scheduling cached group count clear2560 schedules worker2561 reopen issues2562 succeeds and returns the correct number of issues updated2563 reopens all the issues passed2564 behaves like scheduling cached group count clear2565 schedules worker2566 updating merge request assignee2567 when the new assignee ID is a valid user2568 succeeds2569 updates the assignee to the user ID passed2570 when the new assignee ID is 02571 unassigns the issues2572 when the new assignee ID is not present2573 does not unassign2574 updating issue assignee2575 when the new assignee ID is a valid user2576 succeeds2577 updates the assignee to the user ID passed2578 when the new assignee ID is 02579 unassigns the issues2580 when the new assignee ID is not present2581 does not unassign2582 updating milestones2583 behaves like updates milestones2584 succeeds2585 updates the issuables milestone2586 behaves like not scheduling cached group count clear2587 does not schedule worker2588 updating labels2589 behaves like updating labels2590 when add_label_ids are passed2591 adds those label IDs to all issues passed2592 does not update issues not passed in2593 when remove_label_ids are passed2594 removes those label IDs from all issues passed2595 does not update issues not passed in2596 when add_label_ids and remove_label_ids are passed2597 adds the label IDs to all issues passed2598 removes the label IDs from all issues passed2599 does not update issues not passed in2600 subscribe to issues2601 subscribes the given user2602 unsubscribe from issues2603 unsubscribes the given user2604 updating issues from external project2605 updates only issues that belong to the parent project2606 with issuables at a group level2607 updating milestones2608 when issues2609 behaves like updates milestones2610 succeeds2611 updates the issuables milestone2612 when merge requests2613 behaves like updates milestones2614 succeeds2615 updates the issuables milestone2616 updating labels2617 behaves like updating labels2618 when add_label_ids are passed2619 adds those label IDs to all issues passed2620 does not update issues not passed in2621 when remove_label_ids are passed2622 removes those label IDs from all issues passed2623 does not update issues not passed in2624 when add_label_ids and remove_label_ids are passed2625 adds the label IDs to all issues passed2626 removes the label IDs from all issues passed2627 does not update issues not passed in2628 with issues from external group2629 updates issues that belong to the parent group or descendants2630Packages::Maven::Metadata::CreateVersionsXmlService2631 #execute2632 with same versions in both sides2633 returns no changes2634 with more versions2635 in the xml side2636 behaves like returning an xml with versions in the database2637 returns an metadata versions xml with versions in the database2638 in the database side2639 behaves like returning an xml with versions in the database2640 returns an metadata versions xml with versions in the database2641 with completely different versions2642 behaves like returning an xml with versions in the database2643 returns an metadata versions xml with versions in the database2644 with no versions in the database2645 returns a success2646 with an xml without a release version2647 returns a success2648 with differences in both sides2649 behaves like returning an xml with versions in the database2650 returns an metadata versions xml with versions in the database2651 with a new release and latest from the database2652 behaves like returning an xml with2653 returns an xml with the updated release and latest versions2654 with a latest in the xml2655 behaves like returning an xml with2656 returns an xml with the updated release and latest versions2657 with release and latest not existing in the database2658 behaves like returning an xml with2659 returns an xml with the updated release and latest versions2660 with added versions in the database side no more recent than release2661 behaves like returning an xml with2662 returns an xml with the updated release and latest versions2663 with a latest in the xml2664 behaves like returning an xml with2665 returns an xml with the updated release and latest versions2666 only snapshot versions are in the database2667 returns an xml without any release element2668 behaves like returning an xml with2669 returns an xml with the updated release and latest versions2670 last updated timestamp2671 updates the last updated timestamp2672 with an incomplete metadata content2673 behaves like returning an error service response2674 returns an error service response2675 with an invalid metadata content2676 behaves like returning an error service response2677 returns an error service response2678 behaves like handling metadata content pointing to a file for the create xml service2679 with metadata content pointing to a file2680 with valid content2681 returns no changes2682 with invalid content2683 behaves like returning an error service response2684 returns an error service response2685 with no content2686 behaves like returning an error service response2687 returns an error service response2688 behaves like handling invalid parameters for create xml service2689 with no package2690 behaves like returning an error service response2691 returns an error service response2692 with no metadata content2693 behaves like returning an error service response2694 returns an error service response2695ProjectPresenter2696 #license_short_name2697 when project.repository has a license_key2698 returns the nickname of the license if present2699 returns the name of the license if nickname is not present2700 when project.repository has no license_key but a license_blob2701 returns LICENSE2702 #default_view2703 user not signed in2704 when repository is empty2705 returns wiki if user has repository access and can read wiki, which exists2706 returns activity if user has repository access and can read wiki, which does not exist2707 returns issues if user does not have repository access, but can read issues2708 returns activity if user can read neither wiki nor issues2709 when repository is not empty2710 returns files and readme if user has repository access2711 returns wiki if user does not have repository access and can read wiki, which exists2712 returns activity if user does not have repository or wiki access2713 returns releases anchor2714 user signed in2715 when the user is allowed to see the code2716 returns the project view2717 with wikis enabled and the right policy for the user2718 returns wiki if the user has the right policy and the wiki exists2719 returns activity if the user does not have the right policy2720 with issues as a feature available2721 return issues2722 with no activity, no wikies and no issues2723 returns activity as default2724 #can_current_user_push_code?2725 empty repo2726 returns true if user can push_code2727 returns false if user cannot push_code2728 not empty repo2729 returns true if user can push to default branch2730 returns false if default branch is protected2731 if no current user2732 returns false2733 statistics anchors (empty repo)2734 #files_anchor_data2735 returns files data2736 #storage_anchor_data2737 returns storage data2738 #releases_anchor_data2739 does not return release count2740 #commits_anchor_data2741 returns commits data2742 #branches_anchor_data2743 returns branches data2744 #tags_anchor_data2745 returns tags data2746 statistics anchors2747 #files_anchor_data2748 returns files data2749 #storage_anchor_data2750 returns storage data2751 #releases_anchor_data2752 returns release count if user can read release2753 returns nil if user cannot read release2754 user not signed in2755 returns nil if user is signed out2756 #commits_anchor_data2757 returns commits data2758 #branches_anchor_data2759 returns branches data2760 #tags_anchor_data2761 returns tags data2762 #new_file_anchor_data2763 returns new file data if user can push2764 returns nil if user cannot push2765 when the project is empty2766 is empty for a developer2767 #readme_anchor_data2768 when user can push and README does not exists2769 returns anchor data2770 when README exists2771 returns anchor data2772 #changelog_anchor_data2773 when user can push and CHANGELOG does not exist2774 returns anchor data2775 when CHANGELOG exists2776 returns anchor data2777 #license_anchor_data2778 when user can push and LICENSE does not exist2779 returns anchor data2780 when LICENSE exists2781 returns anchor data2782 #contribution_guide_anchor_data2783 when user can push and CONTRIBUTING does not exist2784 returns anchor data2785 when CONTRIBUTING exists2786 returns anchor data2787 #autodevops_anchor_data2788 when Auto Devops is enabled2789 returns anchor data2790 when user can admin pipeline and CI yml does not exist2791 returns anchor data2792 #kubernetes_cluster_anchor_data2793 when user can create Kubernetes cluster2794 returns link to cluster if only one exists2795 returns link to clusters page if more than one exists2796 returns link to create a cluster if no cluster exists2797 when user cannot create Kubernetes cluster2798 returns nil2799 #upload_anchor_data2800 with empty_repo_upload enabled2801 user can push to branch2802 returns upload_anchor_data2803 user cannot push to branch2804 returns nil2805 with empty_repo_upload disabled2806 returns nil2807 #statistics_buttons2808 orders the items correctly2809 #repo_statistics_buttons2810 empty repo2811 includes a button to configure integrations for maintainers2812 does not include a button if not a maintainer2813 for a guest user2814 orders the items correctly2815 for a developer2816 orders the items correctly2817 when not in the upload experiment2818 does not include upload button2819 initialized repo2820 orders the items correctly2821 #can_setup_review_app?2822 when the ci/cd file is missing2823 is expected to be truthy2824 when the ci/cd file is not missing2825 and the user can create a cluster2826 and there is no cluster associated to this project2827 is expected to be truthy2828 and there is already a cluster associated to this project2829 is expected to be falsey2830 when a group cluster is instantiated2831 and the project belongs to this group2832 is expected to be falsey2833 and the project does not belong to this group2834 is expected to be truthy2835 and there is already an instance cluster2836 is false2837 and the user cannot create a cluster2838 is expected to be falsey2839 #add_code_quality_ci_yml_path2840 is expected to match /code_quality_walkthrough=true.*template=Code-Quality/2841 empty_repo_upload_experiment?2842 returns false when upload_anchor_data is nil2843 returns true when upload_anchor_data exists2844DesignManagement::DesignAtVersion2845 #id2846 combines design.id and version.id2847 #==2848 identifies objects created with the same parameters as equal2849 identifies unequal objects as unequal, by virtue of their version2850 identifies unequal objects as unequal, by virtue of their design2851 rejects objects with the same id and the wrong class2852 expects objects to be of the same type, not subtypes2853 status methods2854 a design before it has been created2855 is not deleted2856 has the status :not_created_yet2857 a design as of its creation2858 is not deleted2859 has the status :current2860 a design after it has been created, but before deletion2861 is not deleted2862 has the status :current2863 a design as of its modification2864 is not deleted2865 has the status :current2866 a design as of its deletion2867 is deleted2868 has the status :deleted2869 a design after its deletion2870 is deleted2871 has the status :deleted2872 a design on its recreation2873 is not deleted2874 has the status :current2875 validations2876 is expected to be valid2877 a design-at-version without a design2878 is expected to be invalid2879 mentions the design in the errors2880 a design-at-version without a version2881 is expected to be invalid2882 mentions the version in the errors2883 design_and_version_belong_to_the_same_issue2884 both design and version are supplied2885 the design belongs to the same issue as the version2886 is expected to be valid2887 the design does not belong to the same issue as the version2888 is expected to be invalid2889 the factory is just supplied with a design2890 is expected to be valid2891 the factory is just supplied with a version2892 is expected to be valid2893 design_and_version_have_issue_id2894 the design has no issue_id, because it is being imported2895 is expected to be invalid2896 the version has no issue_id, because it is being imported2897 is expected to be invalid2898 both the design and the version are being imported2899 is expected to be invalid2900 .lazy_find2901 issues fewer queries than the naive approach would2902 .find2903 invalid ids2904 #count2905 counts 0 records2906 #empty?2907 is empty2908 #to_a2909 finds no records2910 valid ids2911 #count2912 counts 2 records2913 issues at most two queries2914 #to_a2915 finds 6 records2916 only returns records with matching IDs2917 only returns valid records2918 issues at most two queries2919Gitlab::UserAccess2920 #can_push_to_branch?2921 push to none protected branch2922 returns true if user is a maintainer2923 returns true if user is a developer2924 returns false if user is a reporter2925 push to branch in an internal project2926 will not infinitely loop when a project is internal2927 push to empty project2928 returns true if user is maintainer2929 when admin mode is enabled2930 returns true for admins2931 when admin mode is disabled2932 returns false for admins2933 when the user is a developer2934 default_branch_protection_level: 0, result: true2935 is expected to eq true2936 default_branch_protection_level: 1, result: true2937 is expected to eq true2938 default_branch_protection_level: 3, result: false2939 is expected to eq false2940 default_branch_protection_level: 2, result: false2941 is expected to eq false2942 push to protected branch2943 returns true if user is a maintainer2944 returns false if user is a developer2945 returns false if user is a reporter2946 returns false if branch does not exist2947 when admin mode is enabled2948 returns true for admins2949 when admin mode is disabled2950 returns false for admins2951 push to protected branch if allowed for developers2952 returns true if user is a maintainer2953 returns true if user is a developer2954 returns false if user is a reporter2955 allowing pushes to maintainers of forked projects2956 allows users that have push access to the canonical project to push to the MR branch2957 does not allow the user to push to other branches2958 does not allow the user to push if they do not have push access to the canonical project2959 merge to protected branch if allowed for developers2960 returns true if user is a maintainer2961 returns true if user is a developer2962 returns false if user is a reporter2963 when skip_collaboration_check is true2964 does not call Project#branch_allows_collaboration?2965 #can_create_tag?2966 push to none protected tag2967 returns true if user is a maintainer2968 returns true if user is a developer2969 returns false if user is a reporter2970 push to protected tag2971 returns true if user is a maintainer2972 returns false if user is a developer2973 returns false if user is a reporter2974 push to protected tag if allowed for developers2975 returns true if user is a maintainer2976 returns true if user is a developer2977 returns false if user is a reporter2978 #can_delete_branch?2979 delete unprotected branch2980 returns true if user is a maintainer2981 returns true if user is a developer2982 returns false if user is a reporter2983 delete protected branch2984 returns true if user is a maintainer2985 returns false if user is a developer2986 returns false if user is a reporter2987 #can_push_for_ref?2988 when user cannot push_code to a project repository (eg. as a guest)2989 is false2990 when user can push_code to a project repository (eg. as a developer)2991 is true2992Gitlab::Email::Handler::CreateNoteHandler2993 behaves like reply_processing_shared_examples2994 when the user could not be found2995 raises a UserNotFoundError2996 when the user is not authorized to the project2997 raises a ProjectNotFound2998 behaves like note_handler_shared_examples2999 when the noteable could not be found3000 raises a NoteableNotFoundError3001 when the note could not be saved3002 raises an InvalidNoteError3003 because the note was update commands only3004 and current user cannot update noteable3005 does not raise an error3006 and current user can update noteable3007 does not raise an error3008 when the note contains quick actions3009 and current user cannot update the noteable3010 only executes the commands that the user can perform3011 and current user can update noteable3012 posts a note and updates the noteable3013 when the reply is blank3014 raises an EmptyEmailError3015 when discussion is locked3016 behaves like checks_permissions_on_noteable_examples3017 when user has access3018 creates a comment3019 when user does not have access3020 raises UserNotAuthorizedError3021 when everything is fine3022 adds all attachments3023 when the service desk3024 is enabled3025 when issues are enabled for everyone3026 creates a comment3027 when quick actions are present3028 when author is a support_bot3029 encloses quick actions with code span markdown3030 when issues are protected members only3031 creates a comment3032 when issues are disabled3033 does not create a comment3034 is disabled3035 does not create a comment3036 when the recipient address does not include a mail key3037 raises a UnknownIncomingEmail3038 when no sent notification for the mail key could be found3039 raises a SentNotificationNotFoundError3040 when issue is confidential3041 behaves like checks_permissions_on_noteable_examples3042 when user has access3043 creates a comment3044 when user does not have access3045 raises UserNotAuthorizedError3046 when everything is fine3047 behaves like a reply to existing comment3048 creates a discussion3049 when sub-addressing is not supported3050 mail key is in the References header3051 behaves like an email that contains a mail key3052 fetches the mail key from the References header and creates a comment3053 mail key is in the References header with a comma3054 behaves like an email that contains a mail key3055 fetches the mail key from the References header and creates a comment3056 when email contains reply3057 when noteable is not an issue3058 behaves like no content message3059 when email contains quoted text only3060 raises an EmptyEmailError3061 when email contains quoted text and quick commands only3062 does not create a discussion3063 when email contains text, quoted text and quick commands3064 creates a discussion without appended reply3065 when noteable is an issue3066 behaves like no content message3067 when email contains quoted text only3068 raises an EmptyEmailError3069 when email contains quoted text and quick commands only3070 does not create a discussion3071 when email contains text, quoted text and quick commands3072 creates a discussion with appended reply3073 when note is not a discussion3074 behaves like a reply to existing comment3075 creates a discussion3076Integrations::Bamboo3077 Validations3078 when active3079 is expected to validate that :build_key cannot be empty/falsy3080 is expected to validate that :bamboo_url cannot be empty/falsy3081 behaves like issue tracker integration URL attribute3082 is expected to allow :bamboo_url to be ‹"https://example.com"›3083 is expected not to allow :bamboo_url to be ‹"example.com"›3084 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›3085 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›3086 #username3087 does not validate the presence of username if password is nil3088 validates the presence of username if password is present3089 #password3090 does not validate the presence of password if username is nil3091 validates the presence of password if username is present3092 when inactive3093 is expected not to validate that :build_key cannot be empty/falsy3094 is expected not to validate that :bamboo_url cannot be empty/falsy3095 is expected not to validate that :username cannot be empty/falsy3096 is expected not to validate that :password cannot be empty/falsy3097 Callbacks3098 before_validation :reset_password3099 saves password if new url is set together with password when no password was previously set3100 when a password was previously set3101 resets password if url changed3102 does not reset password if username changed3103 does not reset password if new url is set together with password, even if it's the same password3104 #execute3105 runs update and build action3106 #build_page3107 returns the contents of the reactive cache3108 #commit_status3109 returns the contents of the reactive cache3110 #calculate_reactive_cache3111 when Bamboo API returns single result3112 behaves like reactive cache calculation3113 #build_page3114 returns a specific URL when status is 5003115 returns a specific URL when response has no results3116 returns a build URL when bamboo_url has no trailing slash3117 bamboo_url has trailing slash3118 returns a build URL3119 #commit_status3120 sets commit status to :error when status is 5003121 sets commit status to "pending" when status is 4043122 sets commit status to "pending" when response has no results3123 sets commit status to "success" when build state contains Success3124 sets commit status to "failed" when build state contains Failed3125 sets commit status to "pending" when build state contains Pending3126 sets commit status to :error when build state is unknown3127 sets commit status to :error with a Net::OpenTimeout error3128 sets commit status to :error with a Net::ReadTimeout error3129 sets commit status to :error with a Net::WriteTimeout error3130 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3131 sets commit status to :error with a EOFError error3132 sets commit status to :error with a SocketError error3133 sets commit status to :error with a OpenSSL::SSL::SSLError error3134 sets commit status to :error with a OpenSSL::OpenSSLError error3135 sets commit status to :error with a Errno::ECONNRESET error3136 sets commit status to :error with a Errno::ECONNREFUSED error3137 sets commit status to :error with a Errno::EHOSTUNREACH error3138 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3139 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3140 when Bamboo API returns an array of results and we only consider the last one3141 behaves like reactive cache calculation3142 #build_page3143 returns a specific URL when status is 5003144 returns a specific URL when response has no results3145 returns a build URL when bamboo_url has no trailing slash3146 bamboo_url has trailing slash3147 returns a build URL3148 #commit_status3149 sets commit status to :error when status is 5003150 sets commit status to "pending" when status is 4043151 sets commit status to "pending" when response has no results3152 sets commit status to "success" when build state contains Success3153 sets commit status to "failed" when build state contains Failed3154 sets commit status to "pending" when build state contains Pending3155 sets commit status to :error when build state is unknown3156 sets commit status to :error with a Net::OpenTimeout error3157 sets commit status to :error with a Net::ReadTimeout error3158 sets commit status to :error with a Net::WriteTimeout error3159 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3160 sets commit status to :error with a EOFError error3161 sets commit status to :error with a SocketError error3162 sets commit status to :error with a OpenSSL::SSL::SSLError error3163 sets commit status to :error with a OpenSSL::OpenSSLError error3164 sets commit status to :error with a Errno::ECONNRESET error3165 sets commit status to :error with a Errno::ECONNREFUSED error3166 sets commit status to :error with a Errno::EHOSTUNREACH error3167 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3168 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3169Gitlab::ImportExport::FastHashSerializer3170 saves the correct hash3171 has approvals_before_merge set3172 has milestones3173 has merge requests3174 has merge request's milestones3175 has merge request's source branch SHA3176 has merge request's target branch SHA3177 has events3178 has snippets3179 has snippet notes3180 has releases3181 has no author on releases3182 has the author ID on releases3183 has issues3184 has issue comments3185 has issue assignees3186 has author on issue comments3187 has project members3188 has merge requests diffs3189 has merge request diff files3190 has merge request diff commits3191 has merge requests comments3192 has author on merge requests comments3193 has pipeline stages3194 has pipeline statuses3195 has pipeline builds3196 has pipeline commits3197 has ci pipeline notes3198 has labels with no associations3199 has labels associated to records3200 has project and group labels3201 has priorities associated to labels3202 has issue resource label events3203 has merge request resource label events3204 has project feature3205 has custom attributes3206 has badges3207 does not complain about non UTF-8 characters in MR diff files3208 has a board and a list3209 project attributes3210 does not contain the runners token3211 relation ordering3212 orders exported pipelines by primary key3213SearchService3214 #project3215 when the project is accessible3216 returns the project3217 returns the project for guests3218 when the project is not accessible3219 returns nil3220 when there is no project_id3221 returns nil3222 #group3223 when the group is accessible3224 returns the group3225 when the group is not accessible3226 returns nil3227 when there is no group_id3228 returns nil3229 #show_snippets?3230 when :snippets is 'true'3231 returns true3232 when :snippets is not 'true'3233 returns false3234 when :snippets is missing3235 returns false3236 #scope3237 with accessible project_id3238 and allowed scope3239 returns the specified scope3240 and disallowed scope3241 returns the default scope3242 and no scope3243 returns the default scope3244 with 'true' snippets3245 and allowed scope3246 returns the specified scope3247 and disallowed scope3248 returns the default scope3249 and no scope3250 returns the default scope3251 with no project_id, no snippets3252 and allowed scope3253 returns the specified scope3254 and disallowed scope3255 returns the default scope3256 and no scope3257 returns the default scope3258 #search_results3259 with accessible project_id3260 returns an instance of Gitlab::ProjectSearchResults3261 with accessible project_id and 'true' snippets3262 returns an instance of Gitlab::ProjectSearchResults3263 with 'true' snippets3264 returns an instance of Gitlab::SnippetSearchResults3265 with no project_id and no snippets3266 returns an instance of Gitlab::SearchResults3267 #search_objects3268 per_page: parameter3269 when nil3270 defaults to 203271 when empty string3272 defaults to 203273 when negative3274 defaults to 203275 when present3276 converts to integer and passes to search results3277 when greater than 2003278 passes 2003279 page: parameter3280 when < 13281 defaults to 13282 when nil3283 defaults to 13284 with accessible project_id3285 returns objects in the project3286 with accessible project_id and 'true' snippets3287 returns objects in the project3288 with 'true' snippets3289 returns objects in snippets3290 with accessible group_id3291 returns objects in the group3292 with no project_id, group_id or snippets3293 returns objects in global3294 redacting search results3295 issues3296 redacts the inaccessible issue3297 notes3298 redacts the inaccessible note3299 merge_requests3300 redacts the inaccessible merge request3301 with :with_api_entity_associations3302 behaves like redaction limits N+1 queries3303 does not exceed the query limit3304 project repository blobs3305 redacts the inaccessible blob3306 project wiki blobs3307 redacts the inaccessible blob3308 project snippets3309 redacts the inaccessible snippet3310 with :with_api_entity_associations3311 behaves like redaction limits N+1 queries3312 does not exceed the query limit3313 personal snippets3314 redacts the inaccessible snippet3315 with :with_api_entity_associations3316 behaves like redaction limits N+1 queries3317 does not exceed the query limit3318 commits3319 redacts the inaccessible commit3320 users3321 passes the users through3322EnvironmentStatus3323 is expected to delegate #id to the #environment object3324 is expected to delegate #name to the #environment object3325 is expected to delegate #deployed_at to the #deployment object3326 is expected to delegate #status to the #deployment object3327 #project3328 is expected to eq #<Project id:1058 namespace697/project989>>3329 #merge_request3330 is expected to eq #<MergeRequest id:633 namespace699/project991!1>3331 #deployment3332 is expected to eq #<Deployment id: 113, iid: 1, project_id: 1062, environment_id: 113, ref: "pages-deploy", tag: false,... "success", finished_at: "2021-09-22 10:35:36.560240376 +0000", cluster_id: nil, deployable_id: 119>3333 #changes3334 contains only added and modified public pages3335 .for_merge_request3336 is based on merge_request.diff_head_sha3337 .for_deployed_merge_request3338 when a merge request has no explicitly linked deployments3339 returns the statuses based on the CI pipelines3340 when a merge request has explicitly linked deployments3341 returns the statuses based on the linked deployments3342 excludes environments the user can not see3343 excludes deployments that have the status "created"3344 .build_environments_status3345 when environment is created on a forked project3346 returns environment status3347 when environment is created on a target project3348 returns environment status3349 when the build stops an environment3350 does not return environment status3351 when user does not have a permission to see the environment3352 does not return environment status3353 when multiple deployments with the same SHA in different environments3354 returns deployments related to the head pipeline3355 when multiple deployments in the same pipeline for the same environments3356 returns unique entries3357 when there is a deployment in a child pipeline3358 returns both parent and child entries3359 when environment is stopped3360 does not return environment status3361Gitlab::Graphql::Pagination::Keyset::Connection3362 With generic keyset order support3363 behaves like a connection with collection methods3364 responds to to_a3365 responds to size3366 responds to include?3367 responds to empty?3368 behaves like a redactable connection3369 no redactor set3370 contains the unwanted item3371 does not redact more than once3372 redactor is set3373 does not contain the unwanted item3374 does not redact more than once3375 #cursor_for3376 returns an encoded ID3377 when an order is specified3378 returns the encoded value of the order3379 when multiple orders are specified3380 returns the encoded value of the order3381 #sliced_nodes3382 when before is passed3383 only returns the project before the selected one3384 when the sort order is descending3385 returns the correct nodes3386 when after is passed3387 only returns the project before the selected one3388 when the sort order is descending3389 returns the correct nodes3390 when both before and after are passed3391 returns the expected set3392 when multiple orders with nil values are defined3393 when ascending3394 behaves like nodes are in ascending order3395 when no cursor is passed3396 returns projects in ascending order3397 when before cursor value is not NULL3398 returns all projects before the cursor3399 when after cursor value is not NULL3400 returns all projects after the cursor3401 when before and after cursor3402 returns all projects after the cursor3403 when before cursor value is NULL3404 returns all projects before the cursor3405 when after cursor value is NULL3406 returns all projects after the cursor3407 when descending3408 behaves like nodes are in descending order3409 when no cursor is passed3410 only returns projects in descending order3411 when before cursor value is not NULL3412 returns all projects before the cursor3413 when after cursor value is not NULL3414 returns all projects after the cursor3415 when before and after cursor3416 returns all projects after the cursor3417 when before cursor value is NULL3418 returns all projects before the cursor3419 when after cursor value is NULL3420 returns all projects after the cursor3421 when ordering by similarity3422 behaves like nodes are in descending order3423 when no cursor is passed3424 only returns projects in descending order3425 when before cursor value is not NULL3426 returns all projects before the cursor3427 when after cursor value is not NULL3428 returns all projects after the cursor3429 when before and after cursor3430 returns all projects after the cursor3431 when an invalid cursor is provided3432 raises an error3433 #nodes3434 behaves like connection with paged nodes3435 returns the collection limited to max page size3436 is a loaded memoized array3437 when `first` is passed3438 returns only the first elements3439 when `last` is passed3440 returns only the last elements3441 when both are passed3442 raises an error3443 when primary key is not in original order3444 is added to end3445 when there is no primary key3446 raises an error3447 #has_previous_page and #has_next_page3448 when default query3449 has no previous, but a next3450 when before is first item3451 has no previous, but a next3452 using `before`3453 when before is the last item3454 has no previous, but a next3455 when before and last specified3456 has a previous and a next3457 when before and last does request all remaining nodes3458 has a previous and a next3459 using `after`3460 when after is the first item3461 has a previous, and a next3462 when after and first specified3463 has a previous and a next3464 when before and last does request all remaining nodes3465 has a previous but no next3466Gitlab::Ci::Status::Build::Failed3467 #text3468 does not override status text3469 #icon3470 does not override status icon3471 #group3472 does not override status group3473 #favicon3474 does not override status label3475 #label3476 does not override label3477 #badge_tooltip3478 does override badge_tooltip3479 #status_tooltip3480 does override status_tooltip3481 .matches?3482 with a failed build3483 returns true3484 with any other type of build3485 returns false3486 covers all failure reasons3487 unknown_failure3488 is a valid status3489 script_failure3490 is a valid status3491 api_failure3492 is a valid status3493 stuck_or_timeout_failure3494 is a valid status3495 runner_system_failure3496 is a valid status3497 missing_dependency_failure3498 is a valid status3499 runner_unsupported3500 is a valid status3501 stale_schedule3502 is a valid status3503 job_execution_timeout3504 is a valid status3505 archived_failure3506 is a valid status3507 unmet_prerequisites3508 is a valid status3509 scheduler_failure3510 is a valid status3511 data_integrity_failure3512 is a valid status3513 forward_deployment_failure3514 is a valid status3515 user_blocked3516 is a valid status3517 project_deleted3518 is a valid status3519 ci_quota_exceeded3520 is a valid status3521 pipeline_loop_detected3522 is a valid status3523 no_matching_runner3524 is a valid status3525 trace_size_exceeded3526 is a valid status3527 builds_disabled3528 is a valid status3529 insufficient_bridge_permissions3530 is a valid status3531 downstream_bridge_project_not_found3532 is a valid status3533 invalid_bridge_trigger3534 is a valid status3535 bridge_pipeline_is_child_pipeline3536 is a valid status3537 downstream_pipeline_creation_failed3538 is a valid status3539 secrets_provider_not_found3540 is a valid status3541 reached_max_descendant_pipelines_depth3542 is a valid status3543 protected_environment_failure3544 is a valid status3545 upstream_bridge_project_not_found3546 is a valid status3547 insufficient_upstream_permissions3548 is a valid status3549 invalid failure message3550 is an invalid status3551GroupDescendantsFinder3552 #has_children?3553 is true when there are projects3554 when there are subgroups3555 is true when there are projects3556 #execute3557 includes projects3558 does not include archived projects3559 sorts elements by name as default3560 does not include projects shared with the group3561 when archived is `true`3562 includes archived projects3563 when archived is `only`3564 includes only archived projects3565 with a filter3566 includes only projects matching the filter3567 sorting by name3568 sorts elements by name3569 with nested groups3570 sorts elements by name3571 with shared groups3572 without common ancestor3573 is expected to be empty3574 with common ancestor3575 querying under the common ancestor3576 is expected to be empty3577 querying the common ancestor3578 contains shared subgroups3579 with nested groups3580 #execute3581 contains projects and subgroups3582 does not include subgroups the user does not have access to3583 only includes public groups when no user is given3584 when archived is `true`3585 includes archived projects in the count of subgroups3586 with a filter3587 contains only matching projects and subgroups3588 does not include subgroups the user does not have access to3589 with matching children3590 includes a group that has a subgroup matching the query and its parent3591 includes the parent of a matching project3592 does not include the parent itself3593 with a small page size3594 contains all the ancestors of a matching subgroup regardless the page size3595Ci::UnlockArtifactsService3596 #execute3597 when tag is true3598 when running on a ref before a pipeline3599 unlocks artifacts from older pipelines3600 does not unlock artifacts for tag or branch with same name as ref3601 does not unlock artifacts from newer pipelines3602 does not lock artifacts from old unlocked pipelines3603 does not unlock artifacts from the same pipeline3604 does not unlock artifacts for other refs3605 does not unlock artifacts for child pipeline3606 when running on just the ref3607 unlocks artifacts from older pipelines3608 unlocks artifacts from newer pipelines3609 unlocks artifacts from the same pipeline3610 does not unlock artifacts for tag or branch with same name as ref3611 does not lock artifacts from old unlocked pipelines3612 does not unlock artifacts for other refs3613 when tag is false3614 when running on a ref before a pipeline3615 unlocks artifacts from older pipelines3616 does not unlock artifacts for tag or branch with same name as ref3617 does not unlock artifacts from newer pipelines3618 does not lock artifacts from old unlocked pipelines3619 does not unlock artifacts from the same pipeline3620 does not unlock artifacts for other refs3621 does not unlock artifacts for child pipeline3622 when running on just the ref3623 unlocks artifacts from older pipelines3624 unlocks artifacts from newer pipelines3625 unlocks artifacts from the same pipeline3626 does not unlock artifacts for tag or branch with same name as ref3627 does not lock artifacts from old unlocked pipelines3628 does not unlock artifacts for other refs3629MergeRequestPresenter3630 #ci_status3631 when no head pipeline3632 return status from Ci integration3633 when head pipeline present3634 success with warnings3635 returns "success-with-warnings"3636 pipeline HAS status AND its not success with warnings3637 returns pipeline status3638 pipeline has NO status AND its not success with warnings3639 returns "preparing"3640 #conflict_resolution_path3641 when MR cannot be resolved in UI3642 does not return conflict resolution path3643 when conflicts cannot be resolved by user3644 does not return conflict resolution path3645 when able to access conflict resolution UI3646 does return conflict resolution path3647 issues links3648 #closing_issues_links3649 presents closing issues links3650 does not present related issues links3651 appends status when closing issue is already closed3652 #mentioned_issues_links3653 presents related issues links3654 does not present closing issues links3655 appends status when mentioned issue is already closed3656 #assign_to_closing_issues_link3657 single closing issue3658 returns correct link with correct text3659 multiple closing issues3660 returns correct link with correct text3661 no closing issue3662 returns correct link with correct text3663 #cancel_auto_merge_path3664 when can cancel mwps3665 returns path3666 when cannot cancel mwps3667 returns nil3668 #merge_path3669 when can be merged by user3670 returns path3671 when cannot be merged by user3672 returns nil3673 #create_issue_to_resolve_discussions_path3674 when can create issue and issues enabled3675 returns path3676 when cannot create issue3677 returns nil3678 when issues disabled3679 returns nil3680 #remove_wip_path3681 when merge request enabled and has permission3682 has remove_wip_path3683 when has no permission3684 returns nil3685 #target_branch_commits_path3686 when target branch exists3687 returns path3688 when target branch does not exist3689 returns nil3690 #source_branch_commits_path3691 when source branch exists3692 returns path3693 when source branch does not exist3694 returns nil3695 #target_branch_tree_path3696 when target branch exists3697 returns path3698 when target branch does not exist3699 returns nil3700 #source_branch_path3701 when source branch exists3702 returns path3703 when source branch does not exist3704 returns nil3705 #target_branch_path3706 when target branch exists3707 returns path3708 when target branch does not exist3709 returns nil3710 #source_branch_link3711 when source branch exists3712 returns link3713 when source branch does not exist3714 returns text3715 #target_branch_link3716 when target branch exists3717 returns link3718 when target branch does not exist3719 returns text3720 #source_branch_with_namespace_link3721 returns link3722 escapes html, when source_branch does not exist3723 #rebase_path3724 when can rebase3725 returns path3726 when cannot rebase3727 when rebase in progress3728 returns nil3729 when user cannot merge3730 returns nil3731 should not be rebased3732 returns nil3733 #can_push_to_source_branch3734 when source branch exists AND user can push to source branch3735 returns true3736 when source branch does not exists3737 returns false3738 when user cannot push to source branch3739 returns false3740 #api_approvals_path3741 is expected to eq "/api/v4/projects/1220/merge_requests/1/approvals"3742 #api_approve_path3743 is expected to eq "/api/v4/projects/1220/merge_requests/1/approve"3744 #api_unapprove_path3745 is expected to eq "/api/v4/projects/1220/merge_requests/1/unapprove"3746Git::ProcessRefChangesService3747 branch changes3748 behaves like service for processing ref changes3749 calls Git::BranchPushService3750 changes exceed push_event_hooks_limit3751 calls Git::BranchPushService with execute_project_hooks set to false3752 changes exceed push_event_activities_limit per action3753 calls Git::BranchPushService with create_push_event set to false3754 creates events per action3755 pipeline creation3756 with valid .gitlab-ci.yml3757 when git_push_create_all_pipelines is disabled3758 creates pipeline for branches and tags3759 creates exactly 4 pipelines3760 when git_push_create_all_pipelines is enabled3761 creates all pipelines3762 with invalid .gitlab-ci.yml3763 does not create a pipeline3764 when there are merge requests associated with branches3765 schedules job for existing merge requests3766 tag changes3767 behaves like service for processing ref changes3768 calls Git::TagPushService3769 changes exceed push_event_hooks_limit3770 calls Git::TagPushService with execute_project_hooks set to false3771 changes exceed push_event_activities_limit per action3772 calls Git::TagPushService with create_push_event set to false3773 creates events per action3774 pipeline creation3775 with valid .gitlab-ci.yml3776 when git_push_create_all_pipelines is disabled3777 creates pipeline for branches and tags3778 creates exactly 4 pipelines3779 when git_push_create_all_pipelines is enabled3780 creates all pipelines3781 with invalid .gitlab-ci.yml3782 does not create a pipeline3783Gitlab::Database::WithLockRetriesOutsideTransaction3784 #run3785 requires block3786 when DISABLE_LOCK_RETRIES is set3787 executes the passed block without retrying3788 when lock retry is enabled3789 lock_fiber3790 acquires lock successfully3791 after 3 iterations3792 behaves like retriable exclusive lock on `projects`3793 succeeds executing the given block3794 setting the idle transaction timeout3795 when there is no outer transaction: disable_ddl_transaction! is set in the migration3796 does not disable the idle transaction timeout3797 when there is outer transaction: disable_ddl_transaction! is not set in the migration3798 disables the idle transaction timeout so the code can sleep and retry3799 after the retries are exhausted3800 disables the lock_timeout3801 after the retries, without setting lock_timeout3802 behaves like retriable exclusive lock on `projects`3803 succeeds executing the given block3804 after the retries, when requested to raise an error3805 raises an error instead of waiting indefinitely for the lock3806 when statement timeout is reached3807 raises StatementInvalid error3808 restore local database variables3809 is expected not to change `ActiveRecord::Base.connection.execute("SHOW lock_timeout").to_a`3810 is expected not to change `ActiveRecord::Base.connection.execute("SHOW idle_in_transaction_session_timeout").to_a`3811 casting durations correctly3812 executes `SET lock_timeout` using the configured timeout value in milliseconds3813 calls `sleep` after the first iteration fails, using the configured sleep time3814PrometheusMetric3815 is expected to belong to project required:3816 is expected to validate that :title cannot be empty/falsy3817 is expected to validate that :query cannot be empty/falsy3818 is expected to validate that :group cannot be empty/falsy3819 is expected to validate that :identifier is case-sensitively unique within the scope of :project_id as long as it is not nil3820 behaves like having unique enum values3821 has unique values in "group"3822 common metrics3823 common: false, with_project: true, result: true3824 is expected to eq true3825 common: false, with_project: false, result: false3826 is expected to eq false3827 common: true, with_project: true, result: false3828 is expected to eq false3829 common: true, with_project: false, result: true3830 is expected to eq true3831 #query_series3832 legend: "Some other legend", type: NilClass3833 is expected to be a kind of NilClass3834 legend: "Status Code", type: Array3835 is expected to be a kind of Array3836 #group_title3837 behaves like group_title3838 returns text Response metrics (NGINX Ingress VTS) for group nginx_ingress_vts3839 behaves like group_title3840 returns text Response metrics (NGINX Ingress) for group nginx_ingress3841 behaves like group_title3842 returns text Response metrics (HA Proxy) for group ha_proxy3843 behaves like group_title3844 returns text Response metrics (AWS ELB) for group aws_elb3845 behaves like group_title3846 returns text Response metrics (NGINX) for group nginx3847 behaves like group_title3848 returns text System metrics (Kubernetes) for group kubernetes3849 behaves like group_title3850 returns text Business metrics (Custom) for group business3851 behaves like group_title3852 returns text Response metrics (Custom) for group response3853 behaves like group_title3854 returns text System metrics (Custom) for group system3855 behaves like group_title3856 returns text Cluster Health for group cluster_health3857 #priority3858 group: :nginx_ingress_vts, priority: 103859 is expected to eq 103860 group: :nginx_ingress, priority: 103861 is expected to eq 103862 group: :ha_proxy, priority: 103863 is expected to eq 103864 group: :aws_elb, priority: 103865 is expected to eq 103866 group: :nginx, priority: 103867 is expected to eq 103868 group: :kubernetes, priority: 53869 is expected to eq 53870 group: :business, priority: 03871 is expected to eq 03872 group: :response, priority: -53873 is expected to eq -53874 group: :system, priority: -103875 is expected to eq -103876 group: :cluster_health, priority: 103877 is expected to eq 103878 #required_metrics3879 group: :nginx_ingress_vts, required_metrics: ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]3880 is expected to eq ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]3881 group: :nginx_ingress, required_metrics: ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]3882 is expected to eq ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]3883 group: :ha_proxy, required_metrics: ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]3884 is expected to eq ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]3885 group: :aws_elb, required_metrics: ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]3886 is expected to eq ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]3887 group: :nginx, required_metrics: ["nginx_server_requests", "nginx_server_requestMsec"]3888 is expected to eq ["nginx_server_requests", "nginx_server_requestMsec"]3889 group: :kubernetes, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3890 is expected to eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3891 group: :business, required_metrics: []3892 is expected to eq []3893 group: :response, required_metrics: []3894 is expected to eq []3895 group: :system, required_metrics: []3896 is expected to eq []3897 group: :cluster_health, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3898 is expected to eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]3899 #to_query_metric3900 converts to queryable metric object3901 queryable metric object has title3902 queryable metric object has y_label3903 queryable metric has no required_metric3904 queryable metrics has query description3905 #to_metric_hash3906 returns a hash suitable for inclusion on a metrics dashboard3907Packages::Debian::ExtractMetadataService3908 with invalid3909 behaves like Test Debian ExtractMetadata Service3910 returns file_type :unknown3911 returns architecture nil3912 returns fields nil3913 with source3914 behaves like Test Debian ExtractMetadata Service3915 returns file_type :source3916 returns architecture nil3917 returns fields nil3918 with dsc3919 behaves like Test Debian ExtractMetadata Service3920 returns file_type :dsc3921 returns architecture nil3922 returns fields including {"Binary"=>"sample-dev, libsample0, sample-udeb"}3923 with deb3924 behaves like Test Debian ExtractMetadata Service3925 returns file_type :deb3926 returns architecture "amd64"3927 returns fields including {"Multi-Arch"=>"same"}3928 with udeb3929 behaves like Test Debian ExtractMetadata Service3930 returns file_type :udeb3931 returns architecture "amd64"3932 returns fields including {"Package"=>"sample-udeb"}3933 with buildinfo3934 behaves like Test Debian ExtractMetadata Service3935 returns file_type :buildinfo3936 returns architecture nil3937 returns fields including {"Architecture"=>"amd64 source", "Build-Architecture"=>"amd64"}3938 with changes3939 behaves like Test Debian ExtractMetadata Service3940 returns file_type :changes3941 returns architecture nil3942 returns fields including {"Architecture"=>"source amd64", "Binary"=>"libsample0 sample-dev sample-udeb"}3943 with invalid package file3944 raise error3945Gitlab::SSHPublicKey3946 .technology(name)3947 returns nil for an unrecognised name3948 name: :rsa3949 is expected to eq :rsa3950 is expected to eq :rsa3951 name: :dsa3952 is expected to eq :dsa3953 is expected to eq :dsa3954 name: :ecdsa3955 is expected to eq :ecdsa3956 is expected to eq :ecdsa3957 name: :ed255193958 is expected to eq :ed255193959 is expected to eq :ed255193960 .supported_sizes(name)3961 name: :rsa, sizes: [1024, 2048, 3072, 4096]3962 is expected to eq [1024, 2048, 3072, 4096]3963 is expected to eq [1024, 2048, 3072, 4096]3964 name: :dsa, sizes: [1024, 2048, 3072]3965 is expected to eq [1024, 2048, 3072]3966 is expected to eq [1024, 2048, 3072]3967 name: :ecdsa, sizes: [256, 384, 521]3968 is expected to eq [256, 384, 521]3969 is expected to eq [256, 384, 521]3970 name: :ed25519, sizes: [256]3971 is expected to eq [256]3972 is expected to eq [256]3973 .sanitize(key_content)3974 when key has blank space characters3975 removes the extra blank space characters3976 when key doesn't have blank space characters3977 doesn't modify the content3978 when key is invalid3979 returns the original content3980 #valid?3981 with a valid SSH key3982 factory: :rsa_key_20483983 is expected to be valid3984 factory: :rsa_key_40963985 is expected to be valid3986 factory: :rsa_key_51203987 is expected to be valid3988 factory: :rsa_key_81923989 is expected to be valid3990 factory: :dsa_key_20483991 is expected to be valid3992 factory: :ecdsa_key_2563993 is expected to be valid3994 factory: :ed25519_key_2563995 is expected to be valid3996 with an invalid SSH key3997 is expected not to be valid3998 #type3999 factory: :rsa_key_2048, type: :rsa4000 is expected to eq :rsa4001 factory: :dsa_key_2048, type: :dsa4002 is expected to eq :dsa4003 factory: :ecdsa_key_256, type: :ecdsa4004 is expected to eq :ecdsa4005 factory: :ed25519_key_256, type: :ed255194006 is expected to eq :ed255194007 with an invalid SSH key4008 is expected to be nil4009 #bits4010 factory: :rsa_key_2048, bits: 20484011 is expected to eq 20484012 factory: :rsa_key_4096, bits: 40964013 is expected to eq 40964014 factory: :rsa_key_5120, bits: 51204015 is expected to eq 51204016 factory: :rsa_key_8192, bits: 81924017 is expected to eq 81924018 factory: :dsa_key_2048, bits: 20484019 is expected to eq 20484020 factory: :ecdsa_key_256, bits: 2564021 is expected to eq 2564022 factory: :ed25519_key_256, bits: 2564023 is expected to eq 2564024 with an invalid SSH key4025 is expected to be nil4026 #fingerprint4027 factory: :rsa_key_2048, fingerprint: "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"4028 is expected to eq "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"4029 factory: :rsa_key_4096, fingerprint: "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"4030 is expected to eq "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"4031 factory: :rsa_key_5120, fingerprint: "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"4032 is expected to eq "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"4033 factory: :rsa_key_8192, fingerprint: "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"4034 is expected to eq "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"4035 factory: :dsa_key_2048, fingerprint: "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"4036 is expected to eq "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"4037 factory: :ecdsa_key_256, fingerprint: "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"4038 is expected to eq "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"4039 factory: :ed25519_key_256, fingerprint: "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"4040 is expected to eq "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"4041 with an invalid SSH key4042 is expected to be nil4043 #fingerprint in SHA256 format4044 factory: :rsa_key_2048, fingerprint_sha256: "GdtgO0eHbwLB+mK47zblkoXujkqKRZjgMQrHH6Kks3E"4045 is expected to eq "GdtgO0eHbwLB+mK47zblkoXujkqKRZjgMQrHH6Kks3E"4046 factory: :rsa_key_4096, fingerprint_sha256: "ByDU7hQ1JB95l6p53rHrffc4eXvEtqGUtQhS+Dhyy7g"4047 is expected to eq "ByDU7hQ1JB95l6p53rHrffc4eXvEtqGUtQhS+Dhyy7g"4048 factory: :rsa_key_5120, fingerprint_sha256: "PCCupLbFHScm4AbEufbGDvhBU27IM0MVAor715qKQK8"4049 is expected to eq "PCCupLbFHScm4AbEufbGDvhBU27IM0MVAor715qKQK8"4050 factory: :rsa_key_8192, fingerprint_sha256: "CtHFQAS+9Hb8z4vrv4gVQPsHjNN0WIZhWODaB1mQLs4"4051 is expected to eq "CtHFQAS+9Hb8z4vrv4gVQPsHjNN0WIZhWODaB1mQLs4"4052 factory: :dsa_key_2048, fingerprint_sha256: "+a3DQ7cU5GM+gaYOfmc0VWNnykHQSuth3VRcCpWuYNI"4053 is expected to eq "+a3DQ7cU5GM+gaYOfmc0VWNnykHQSuth3VRcCpWuYNI"4054 factory: :ecdsa_key_256, fingerprint_sha256: "C+I5k3D+IGeM6k5iBR1ZsphqTKV+7uvL/XZ5hcrTr7g"4055 is expected to eq "C+I5k3D+IGeM6k5iBR1ZsphqTKV+7uvL/XZ5hcrTr7g"4056 factory: :ed25519_key_256, fingerprint_sha256: "DCKAjzxWrdOTjaGKBBjtCW8qY5++GaiAJflrHPmp6W0"4057 is expected to eq "DCKAjzxWrdOTjaGKBBjtCW8qY5++GaiAJflrHPmp6W0"4058 with an invalid SSH key4059 is expected to be nil4060 #key_text4061 carries the unmodified key data4062Mutations::MergeRequests::SetWip4063 is expected to require graphql authorizations :update_merge_request4064 #resolve4065 behaves like permission level for merge request mutation is correctly verified4066 when the user is not a project member4067 behaves like when the user does not have access to the resource4068 raises an error4069 even if assigned to the merge request4070 does not modify merge request4071 even if reviewer of the merge request4072 raises an error4073 even if author of the merge request4074 raises an error4075 when the user is a project member4076 with guest role4077 behaves like when the user does not have access to the resource4078 raises an error4079 even if assigned to the merge request4080 does not modify merge request4081 even if reviewer of the merge request4082 raises an error4083 even if author of the merge request4084 raises an error4085 with reporter role4086 behaves like when the user does not have access to the resource4087 raises an error4088 even if assigned to the merge request4089 does not modify merge request4090 even if reviewer of the merge request4091 raises an error4092 even if author of the merge request4093 raises an error4094 when the user can update the merge request4095 returns the merge request as a wip4096 returns errors merge request could not be updated4097 when passing wip as false4098 removes `wip` from the title4099 does not do anything if the title did not start with wip4100Gitlab::UsageMetricDefinitionGenerator4101 Creating metric definition file4102 without ee option4103 creates a metric definition file using the template4104 with ee option4105 creates a metric definition file using the template4106 Validation4107 does not raise an error4108 with a missing directory4109 raises an error4110 with an invalid directory4111 raises an error4112 with an already existing metric with the same key_path4113 raises an error4114 Name suggestions4115 adds name key to metric definition4116RepositoryForkWorker4117 modules4118 includes ProjectImportOptions4119 #perform4120 only project ID passed4121 behaves like RepositoryForkWorker performing4122 creates a new repository from a fork4123 protects the default branch4124 flushes various caches4125 handles bad fork4126 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects4127 handles LFS objects link failure4128 when a worker was reset without cleanup4129 creates a new repository from a fork4130 project ID, storage and repo paths passed4131 behaves like RepositoryForkWorker performing4132 creates a new repository from a fork4133 protects the default branch4134 flushes various caches4135 handles bad fork4136 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects4137 handles LFS objects link failure4138 when a worker was reset without cleanup4139 creates a new repository from a fork4140Gitlab::GitalyClient::RefService4141 #branches4142 sends a find_all_branches message4143 #remote_branches4144 sends a find_all_remote_branches message4145 concatenates and returns the response branches as Gitlab::Git::Branch objects4146 #merged_branches4147 sends a find_all_branches message4148 #branch_names4149 sends a find_all_branch_names message4150 #tag_names4151 sends a find_all_tag_names message4152 #find_branch4153 sends a find_branch message4154 #find_tag4155 sends a find_tag message4156 when tag is empty4157 does not send a fing_tag message4158 #default_branch_name4159 sends a find_default_branch_name message4160 #local_branches4161 sends a find_local_branches message4162 parses and sends the sort parameter4163 translates known mismatches on sort param values4164 raises an argument error if an invalid sort_by parameter is passed4165 #tags4166 sends a find_all_tags message4167 with sorting option4168 sends a correct find_all_tags message4169 #branch_names_contains_sha4170 sends a list_branch_names_containing_commit message4171 #get_tag_messages4172 sends a get_tag_messages message4173 #get_tag_signatures4174 sends a get_tag_signatures message4175 #ref_exists?4176 finds the master branch ref4177 returns false for an illegal tag name ref4178 raises an argument error if the ref name parameter does not start with refs/4179 #delete_refs4180 sends a delete_refs message4181 #pack_refs4182 sends a pack_refs message4183Namespace::PackageSetting4184 relationships4185 is expected to belong to namespace required:4186 validations4187 is expected to validate that :namespace cannot be empty/falsy4188 #maven_duplicates_allowed4189 is expected to allow :maven_duplicates_allowed to be ‹true›4190 is expected to allow :maven_duplicates_allowed to be ‹false›4191 is expected not to allow :maven_duplicates_allowed to be ‹nil›4192 is expected to allow :generic_duplicates_allowed to be ‹true›4193 is expected to allow :generic_duplicates_allowed to be ‹false›4194 is expected not to allow :generic_duplicates_allowed to be ‹nil›4195 regex values4196 is expected to allow :maven_duplicate_exception_regex to be ‹"SNAPSHOT"›4197 is expected to allow :maven_duplicate_exception_regex to be ‹".*"›4198 is expected to allow :maven_duplicate_exception_regex to be ‹"v.+"›4199 is expected to allow :maven_duplicate_exception_regex to be ‹"v10.1.*"›4200 is expected to allow :maven_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP)"›4201 is expected not to allow :maven_duplicate_exception_regex to be ‹"["›4202 is expected not to allow :maven_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP"›4203 is expected to allow :generic_duplicate_exception_regex to be ‹"SNAPSHOT"›4204 is expected to allow :generic_duplicate_exception_regex to be ‹".*"›4205 is expected to allow :generic_duplicate_exception_regex to be ‹"v.+"›4206 is expected to allow :generic_duplicate_exception_regex to be ‹"v10.1.*"›4207 is expected to allow :generic_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP)"›4208 is expected not to allow :generic_duplicate_exception_regex to be ‹"["›4209 is expected not to allow :generic_duplicate_exception_regex to be ‹"(?:v.+|SNAPSHOT|TEMP"›4210 #duplicates_allowed?4211 package types with package_settings4212 duplicates_allowed: true, duplicate_exception_regex: "", result: true4213 for maven_package4214 is expected to equal true4215 duplicates_allowed: false, duplicate_exception_regex: "", result: false4216 for maven_package4217 is expected to equal false4218 duplicates_allowed: false, duplicate_exception_regex: ".*", result: true4219 for maven_package4220 is expected to equal true4221 duplicates_allowed: false, duplicate_exception_regex: "fo.*", result: true4222 for maven_package4223 is expected to equal true4224 duplicates_allowed: false, duplicate_exception_regex: "be.*", result: true4225 for maven_package4226 is expected to equal true4227 duplicates_allowed: true, duplicate_exception_regex: "", result: true4228 for generic_package4229 is expected to equal true4230 duplicates_allowed: false, duplicate_exception_regex: "", result: false4231 for generic_package4232 is expected to equal false4233 duplicates_allowed: false, duplicate_exception_regex: ".*", result: true4234 for generic_package4235 is expected to equal true4236 duplicates_allowed: false, duplicate_exception_regex: "fo.*", result: true4237 for generic_package4238 is expected to equal true4239 duplicates_allowed: false, duplicate_exception_regex: "be.*", result: true4240 for generic_package4241 is expected to equal true4242 package types without package_settings4243 raises an error4244 raises an error4245 raises an error4246 raises an error4247 raises an error4248 raises an error4249 raises an error4250UserCalloutsHelper4251 .show_gke_cluster_integration_callout?4252 when user can create a cluster4253 when user has not dismissed4254 when active_nav_link is in the operations section4255 is expected to equal true4256 when active_nav_link is not in the operations section4257 is expected to equal false4258 when user dismissed4259 is expected to equal false4260 when user can not create a cluster4261 is expected to equal false4262 .show_customize_homepage_banner?4263 when user has not dismissed4264 when user is on the default dashboard4265 is expected to equal true4266 when user is not on the default dashboard4267 is expected to equal false4268 when user dismissed4269 is expected to equal false4270 .render_flash_user_callout4271 renders the flash_user_callout partial4272 .show_feature_flags_new_version?4273 when the feature flags new version info has not been dismissed4274 is expected to be truthy4275 when the feature flags new version has been dismissed4276 is expected to be falsy4277 .show_registration_enabled_user_callout?4278 when on gitlab.com4279 is expected to equal false4280 when `current_user` is not an admin4281 is expected to equal false4282 when signup is disabled4283 is expected to equal false4284 when user has dismissed callout4285 is expected to equal false4286 when not gitlab.com, `current_user` is an admin, signup is enabled, and user has not dismissed callout4287 is expected to equal true4288 .show_unfinished_tag_cleanup_callout?4289 when user has not dismissed4290 is expected to equal true4291 when user dismissed4292 is expected to equal false4293 .show_invite_banner?4294 when user has the admin ability for the group4295 when the invite_members_banner has not been dismissed4296 is expected to eq true4297 when a user has dismissed this banner via cookies already4298 is expected to eq false4299 creates the callout from cookie4300 when the group was just created4301 is expected to eq false4302 with concerning multiple members4303 on current group4304 is expected to eq false4305 on current group that is a subgroup4306 with only one user on parent and this group4307 is expected to eq true4308 when another user is on this group4309 is expected to eq false4310 when another user is on the parent group4311 is expected to eq false4312 when the invite_members_banner has been dismissed4313 is expected to eq false4314 when user does not have admin ability for the group4315 is expected to eq false4316npm.gitlab-ci.yml4317 the created pipeline4318 on default branch4319 when package.json has been changed4320 behaves like publish job created4321 creates a pipeline with a single job: publish4322 when package.json does not exist or has not been changed4323 behaves like no pipeline created4324 does not create a pipeline because the only job (publish) is not created4325 when the branch name is v1.0.04326 behaves like publish job created4327 creates a pipeline with a single job: publish4328 when the tag name is v1.0.04329 behaves like publish job created4330 creates a pipeline with a single job: publish4331 when the branch name is v2.1.0-alpha4332 behaves like publish job created4333 creates a pipeline with a single job: publish4334 when the tag name is v2.1.0-alpha4335 behaves like publish job created4336 creates a pipeline with a single job: publish4337 when the branch name is patch-14338 behaves like no pipeline created4339 does not create a pipeline because the only job (publish) is not created4340 when the tag name is patch-14341 behaves like no pipeline created4342 does not create a pipeline because the only job (publish) is not created4343 when the branch name is my-feature-branch4344 behaves like no pipeline created4345 does not create a pipeline because the only job (publish) is not created4346 when the tag name is my-feature-branch4347 behaves like no pipeline created4348 does not create a pipeline because the only job (publish) is not created4349 when the branch name is v14350 behaves like no pipeline created4351 does not create a pipeline because the only job (publish) is not created4352 when the tag name is v14353 behaves like no pipeline created4354 does not create a pipeline because the only job (publish) is not created4355 when the branch name is v1.04356 behaves like no pipeline created4357 does not create a pipeline because the only job (publish) is not created4358 when the tag name is v1.04359 behaves like no pipeline created4360 does not create a pipeline because the only job (publish) is not created4361 when the branch name is 2.1.04362 behaves like no pipeline created4363 does not create a pipeline because the only job (publish) is not created4364 when the tag name is 2.1.04365 behaves like no pipeline created4366 does not create a pipeline because the only job (publish) is not created4367Backup::Manager4368 #pack4369 executes tar4370 when BACKUP is set4371 uses the given value as tar file name4372 when skipped is set in backup_information.yml4373 executes tar4374 when a directory does not exist4375 executes tar4376 #remove_tmp4377 removes backups/tmp dir4378 prints running task with a done confirmation4379 #remove_old4380 when keep_time is zero4381 removes no files4382 prints a skipped message4383 when no valid file is found4384 removes no files4385 prints a done message4386 when there are no files older than keep_time4387 removes no files4388 prints a done message4389 when keep_time is set to remove files4390 removes matching files with a human-readable versioned timestamp4391 removes matching files with a human-readable versioned timestamp with tagged EE4392 removes matching files with a human-readable non-versioned timestamp4393 removes matching files without a human-readable timestamp4394 does not remove files that are not old enough4395 does not remove non-matching files4396 prints a done message4397 when removing a file fails4398 removes the remaining expected files4399 sets the correct removed count4400 prints the error from file that could not be removed4401 verify_backup_version4402 on version mismatch4403 stops the process4404 on version match4405 does nothing4406 #unpack4407 when there are no backup files in the directory4408 fails the operation and prints an error4409 when there are two backup files in the directory and BACKUP variable is not set4410 prints the list of available backups4411 fails the operation and prints an error4412 when BACKUP variable is set to a non-existing file4413 fails the operation and prints an error4414 when BACKUP variable is set to a correct file4415 unpacks the file4416 when there is a non-tarred backup in the directory4417 selects the non-tarred backup to restore from4418 #upload4419 target path4420 uses the tar filename by default4421 adds the DIRECTORY environment variable if present4422 with AWS with server side encryption4423 with SSE-S3 without using storage_options4424 sets encryption attributes4425 with SSE-C (customer-provided keys) options4426 sets encryption attributes4427 with SSE-KMS options4428 sets encryption attributes4429 with Google provider4430 does not attempt to set ACL4431 with AzureRM provider4432 loads the provider4433Gitlab::Ci::Pipeline::Chain::Command4434 #initialize4435 properly initialises object from hash4436 handling of origin_ref4437 #branch_exists?4438 for existing branch4439 is expected to eq true4440 for fully described tag ref4441 is expected to eq false4442 for fully described branch ref4443 is expected to eq true4444 for invalid branch4445 is expected to eq false4446 #tag_exists?4447 for existing ref4448 is expected to eq true4449 for fully described tag ref4450 is expected to eq true4451 for fully described branch ref4452 is expected to eq false4453 for invalid ref4454 is expected to eq false4455 #merge_request_ref_exists?4456 for existing merge request ref4457 is expected to eq true4458 for branch ref4459 is expected to eq false4460 #ref4461 for regular ref4462 is expected to eq "master"4463 for branch ref4464 is expected to eq "master"4465 for tag ref4466 is expected to eq "1.0.0"4467 for other refs4468 is expected to eq "refs/merge-requests/11/head"4469 #sha4470 when invalid checkout_sha is specified4471 returns empty value4472 when a valid checkout_sha is specified4473 returns checkout_sha4474 when a valid after_sha is specified4475 returns after_sha4476 when a valid origin_ref is specified4477 returns SHA for given ref4478 #origin_sha4479 when using checkout_sha and after_sha4480 uses checkout_sha4481 when using after_sha only4482 uses after_sha4483 #before_sha4484 when using checkout_sha and before_sha4485 uses before_sha4486 when using checkout_sha only4487 uses checkout_sha4488 when checkout_sha and before_sha are empty4489 uses BLANK_SHA4490 #source_sha4491 when source_sha is specified4492 returns the specified value4493 #target_sha4494 when target_sha is specified4495 returns the specified value4496 #protected_ref?4497 when a ref is protected4498 is expected to eq true4499 when a ref is unprotected4500 is expected to eq false4501 #ambiguous_ref4502 when ref is not ambiguous4503 is expected to eq false4504 when ref is ambiguous4505 is expected to eq true4506 #creates_child_pipeline?4507 when bridge is present4508 when bridge triggers a child pipeline4509 is expected to be truthy4510 when bridge triggers a multi-project pipeline4511 is expected to be falsey4512 when bridge is not present4513 is expected to be falsey4514 #increment_pipeline_failure_reason_counter4515 increments the error metric4516 when the reason is nil4517 increments the error metric with unknown_failure4518 #observe_step_duration4519 when ci_pipeline_creation_step_duration_tracking is enabled4520 adds the duration to the step duration histogram4521 when ci_pipeline_creation_step_duration_tracking is disabled4522 does nothing4523Clusters::Agent4524 is expected to belong to created_by_user class_name => User optional: true4525 is expected to belong to project class_name => ::Project required:4526 is expected to have many agent_tokens class_name => Clusters::AgentToken4527 is expected to have many last_used_agent_tokens class_name => Clusters::AgentToken4528 is expected to have many group_authorizations class_name => Clusters::Agents::GroupAuthorization4529 is expected to have many authorized_groups through group_authorizations4530 is expected to have many project_authorizations class_name => Clusters::Agents::ProjectAuthorization4531 is expected to have many authorized_projects class_name => ::Project through project_authorizations4532 is expected to validate that :name cannot be empty/falsy4533 is expected to validate that the length of :name is at most 634534 is expected to validate that :name is case-sensitively unique within the scope of :project_id4535 scopes4536 .ordered_by_name4537 is expected to eq ["agent-a", "agent-b", "agent-c", "agent-d"]4538 .with_name4539 is expected to contain exactly #<Clusters::Agent id: 16, created_at: "2021-09-22 10:39:44.060231664 +0000", updated_at: "2021-09-22 10:39:44.060231664 +0000", project_id: 1402, name: "matching-name", created_by_user_id: 1658>4540 validation4541 name validation4542 rejects names that do not conform to RFC 11234543 accepts valid names4544 #has_access_to?4545 has access to own project4546 does not have access to other projects4547Packages::Debian::GroupComponentFile4548 behaves like Debian Component File4549 relationships4550 with stubbed uploader4551 is expected to belong to component class_name => Packages::Debian::GroupComponent required: inverse_of => files4552 with packages file_type4553 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture required: inverse_of => files4554 with :source file_type4555 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture inverse_of => files optional: true4556 validations4557 #component4558 is expected to validate that :component cannot be empty/falsy4559 #architecture4560 with packages file_type4561 is expected to validate that :architecture cannot be empty/falsy4562 with :source file_type4563 is expected to validate that :architecture is empty/falsy4564 #file_type4565 is expected to validate that :file_type cannot be empty/falsy4566 is expected to allow :file_type to be ‹:packages›4567 #compression_type4568 is expected not to validate that :compression_type cannot be empty/falsy4569 is expected to allow :compression_type to be ‹nil›4570 is expected to allow :compression_type to be ‹:gz›4571 #file4572 the uploader api4573 is expected to respond to #store_dir4574 is expected to respond to #cache_dir4575 is expected to respond to #work_dir4576 #file_store4577 is expected to validate that :file_store cannot be empty/falsy4578 #file_md54579 is expected to validate that :file_md5 cannot be empty/falsy4580 #file_sha2564581 is expected to validate that :file_sha256 cannot be empty/falsy4582 scopes4583 .with_container4584 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2021-09-22 10:39:46.479185028 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4585 .with_codename_or_suite4586 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2021-09-22 10:39:46.479185028 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4587 .with_component_name4588 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 3, created_at: "2021-09-22 10:39:46.459202651 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4589 .with_file_type4590 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 8, created_at: "2021-09-22 10:39:46.484511000 +0000", upda... 1, file: "Source", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4591 .with_architecture4592 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2021-09-22 10:39:46.453903061 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4593 .with_architecture_name4594 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2021-09-22 10:39:46.453903061 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4595 .with_compression_type4596 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 4, created_at: "2021-09-22 10:39:46.464320080 +0000", upda..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4597 .with_file_sha2564598 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2021-09-22 10:39:46.474310339 +0000", upda...ion_type: nil, file_store: 1, file: "Packages", file_md5: "12345abcde", file_sha256: "other_sha256">4599 .updated_before4600 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 10, created_at: "2021-09-22 10:39:48.865550617 +0000", upd..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::GroupComponentFile id: 11, created_at: "2021-09-22 10:39:48.877823076 +0000", upd..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4601 callbacks4602 updates metadata columns4603 #relative_path4604 with a Packages file_type4605 is expected to eq "group-component-1/binary-group-arch-1/Packages"4606 with a Source file_type4607 is expected to eq "group-component-1/source/Source"4608 with a DI Packages file_type4609 is expected to eq "group-component-1/debian-installer/binary-group-arch-1/Packages"4610 with an xz compression_type4611 is expected to eq "group-component-1/binary-group-arch-1/Packages.xz"4612Gitlab::Search::FoundBlob4613 parsing content results4614 returns a valid FoundBlob4615 does not parse content if not needed4616 parses content only once when needed4617 when the matching filename contains a colon4618 returns a valid FoundBlob4619 when the matching content contains a number surrounded by colons4620 returns a valid FoundBlob4621 when the matching content contains multiple null bytes4622 returns a valid FoundBlob4623 when the search result ends with an empty line4624 returns a valid FoundBlob that ends with an empty line4625 when the search returns non-ASCII data4626 with UTF-84627 returns results as UTF-84628 with UTF-8 in the filename4629 returns results as UTF-84630 with ISO-8859-14631 returns results as UTF-84632 when filename has extension4633 is expected to eq "CONTRIBUTE.md"4634 is expected to eq "CONTRIBUTE"4635 when file is under directory4636 is expected to eq "a/b/c.md"4637 is expected to eq "a/b/c"4638 parsing title results4639 when file is under directory4640 is expected to eq "a/b/c.md"4641 is expected to eq "a/b/c"4642 when filename has multiple extensions4643 is expected to eq "a/b/c.whatever"4644 policy4645 works with policy4646Gitlab::GithubImport::Representation::Issue4647 .from_api_response4648 does not set the user if the response did not include a user4649 behaves like an Issue4650 returns an instance of Issue4651 the returned Issue4652 includes the issue number4653 includes the issue title4654 includes the issue description4655 includes the milestone number4656 includes the issue state4657 includes the issue assignees4658 includes the label names4659 includes the author details4660 includes the created timestamp4661 includes the updated timestamp4662 is not a pull request4663 .from_json_hash4664 does not convert the author if it was not specified4665 behaves like an Issue4666 returns an instance of Issue4667 the returned Issue4668 includes the issue number4669 includes the issue title4670 includes the issue description4671 includes the milestone number4672 includes the issue state4673 includes the issue assignees4674 includes the label names4675 includes the author details4676 includes the created timestamp4677 includes the updated timestamp4678 is not a pull request4679 #labels?4680 returns true when the issue has labels assigned4681 returns false when the issue has no labels assigned4682 #pull_request?4683 returns false for an issue4684 returns true for a pull request4685 #truncated_title4686 truncates the title to 255 characters4687 does not truncate the title if it is shorter than 255 characters4688Gitlab::Ci::Config::Entry::Processable4689 validations4690 when entry config value is correct4691 #valid?4692 is valid4693 when job name is empty4694 reports error4695 when entry value is not correct4696 incorrect config value type4697 #errors4698 reports error about a config type4699 when config is empty4700 #valid4701 is invalid4702 when extends key is not a string4703 returns error about wrong value type4704 when resource_group key is not a string4705 returns error about wrong value type4706 when it uses both "when:" and "rules:"4707 returns an error about when: being combined with rules4708 when only: is used with rules:4709 returns error about mixing only: with rules:4710 and only: is blank4711 returns error about mixing only: with rules:4712 and rules: is blank4713 returns error about mixing only: with rules:4714 when except: is used with rules:4715 returns error about mixing except: with rules:4716 and except: is blank4717 returns error about mixing except: with rules:4718 and rules: is blank4719 returns error about mixing except: with rules:4720 when only: and except: are both used with rules:4721 returns errors about mixing both only: and except: with rules:4722 when only: and except: as both blank4723 returns errors about mixing both only: and except: with rules:4724 when rules: is blank4725 returns errors about mixing both only: and except: with rules:4726 #relevant?4727 is a relevant entry4728 #compose!4729 with workflow rules4730 name: "uses default only", has_workflow_rules?: false, only: nil, rules: nil, result: {:refs=>["branches", "tags"]}4731 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesDefaultOnlyHasWorkflowRulesFalseOnlyNilRulesNilResultRefsBranchesTags4732 name: "uses user only", has_workflow_rules?: false, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4733 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesFalseOnlyBranchesRulesNilResultRefsBranches4734 name: "does not define only", has_workflow_rules?: false, only: nil, rules: [], result: nil4735 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesFalseOnlyNilRulesResultNil4736 name: "does not define only", has_workflow_rules?: true, only: nil, rules: nil, result: nil4737 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesNilResultNil4738 name: "uses user only", has_workflow_rules?: true, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4739 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesTrueOnlyBranchesRulesNilResultRefsBranches4740 name: "does not define only", has_workflow_rules?: true, only: nil, rules: [], result: nil4741 RSpec::ExampleGroups::GitlabCiConfigEntryProcessable::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesResultNil4742 when workflow rules is used4743 when rules are used4744 does not define only4745 when rules are not used and only is defined4746 keeps only entry4747 when workflow rules is not used4748 when rules are valid4749 when last rule contains only `when`4750 and its value is not `never`4751 raises a warning4752 and its value is `never`4753 behaves like has no warnings4754 does not raise the warning4755 when last rule does not contain only `when`4756 behaves like has no warnings4757 does not raise the warning4758 when rules are invalid4759 behaves like has no warnings4760 does not raise the warning4761 when workflow rules is used4762 when last rule contains only `when4763 behaves like has no warnings4764 does not raise the warning4765 with resource group4766 resource_group: "iOS", result: "iOS"4767 is expected to eq "iOS"4768 resource_group: "review/$CI_COMMIT_REF_NAME", result: "review/$CI_COMMIT_REF_NAME"4769 is expected to eq "review/$CI_COMMIT_REF_NAME"4770 resource_group: nil, result: nil4771 is expected to eq nil4772 with inheritance4773 of default:tags4774 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: nil, result: ["a", "b"]4775 is expected to eq ["a", "b"]4776 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: true, result: ["a", "b"]4777 is expected to eq ["a", "b"]4778 name: "only local tags", default_tags: nil, tags: ["a", "b"], inherit_default: false, result: ["a", "b"]4779 is expected to eq ["a", "b"]4780 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: nil, result: ["a", "b"]4781 is expected to eq ["a", "b"]4782 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: true, result: ["a", "b"]4783 is expected to eq ["a", "b"]4784 name: "global and local tags", default_tags: ["b", "c"], tags: ["a", "b"], inherit_default: false, result: ["a", "b"]4785 is expected to eq ["a", "b"]4786 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: nil, result: ["b", "c"]4787 is expected to eq ["b", "c"]4788 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: true, result: ["b", "c"]4789 is expected to eq ["b", "c"]4790 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: false, result: nil4791 is expected to eq nil4792 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: ["image"], result: nil4793 is expected to eq nil4794 name: "only global tags", default_tags: ["b", "c"], tags: nil, inherit_default: ["tags"], result: ["b", "c"]4795 is expected to eq ["b", "c"]4796 when composed4797 #value4798 when entry is correct4799 returns correct value4800UploadService4801 File service4802 for valid gif file4803 is expected to have key :alt4804 is expected to have key :url4805 is expected to have value "banana_sample"4806 is expected to match "banana_sample.gif"4807 for valid png file4808 is expected to have key :alt4809 is expected to have key :url4810 is expected to have value "dk"4811 is expected to match "dk.png"4812 for valid jpg file4813 is expected to have key :alt4814 is expected to have key :url4815 is expected to have value "rails_sample"4816 is expected to match "rails_sample.jpg"4817 for txt file4818 is expected to have key :alt4819 is expected to have key :url4820 is expected to have value "doc_sample.txt"4821 is expected to match "doc_sample.txt"4822 for too large a file4823 is expected to eq {}4824 #override_max_attachment_size4825 allows the upload4826 disallows the upload4827Discussion4828 .lazy_find4829 batches requests4830 .build4831 returns a discussion of the right type4832 .build_collection4833 returns an array of discussions of the right type4834 authorization4835 delegates to the first note4836 #cache_key4837 returns the cache key4838 when discussion is resolved4839 returns the cache key with resolved at4840Packages::Npm::PackagePresenter4841 #versions4842 for packages without dependencies4843 is expected to be a kind of Hash4844 is expected to match schema "public_api/v4/packages/npm_package_version"4845 is expected to match schema "public_api/v4/packages/npm_package_version"4846 is expected to equal nil4847 is expected to equal nil4848 is expected to equal nil4849 is expected to equal nil4850 is expected to equal nil4851 is expected to equal nil4852 is expected to equal nil4853 is expected to equal nil4854 avoids N+1 database queries4855 for packages with dependencies4856 is expected to be a kind of Hash4857 is expected to match schema "public_api/v4/packages/npm_package_version"4858 is expected to match schema "public_api/v4/packages/npm_package_version"4859 is expected to be any4860 is expected to be any4861 is expected to be any4862 is expected to be any4863 avoids N+1 database queries4864 #dist_tags4865 for packages without tags4866 is expected to be a kind of Hash4867 is expected to eq "2.0.11"4868 avoids N+1 database queries4869 for packages with tags4870 is expected to be a kind of Hash4871 is expected to eq "2.0.4"4872 is expected to eq "2.0.4"4873 is expected to eq "2.0.6"4874 is expected to eq "2.0.11"4875 is expected to eq "2.0.11"4876 avoids N+1 database queries4877Gitlab::Ci::Build::Image4878 #from_image4879 when image is defined in job4880 when image is defined as string4881 fabricates an object of the proper class4882 populates fabricated object with the proper name attribute4883 does not populate the ports4884 when image is defined as hash4885 fabricates an object of the proper class4886 populates fabricated object with the proper attributes4887 populates the ports4888 when image name is empty4889 does not fabricate an object4890 when image is not defined in job4891 does not fabricate an object4892 #from_services4893 when services are defined in job4894 when service is defined as string4895 fabricates an non-empty array of objects4896 populates fabricated objects with the proper name attributes4897 does not populate the ports4898 when service is defined as hash4899 fabricates an non-empty array of objects4900 populates fabricated objects with the proper attributes4901 when service image name is empty4902 fabricates an empty array4903 when services are not defined in job4904 fabricates an empty array4905Gitlab::I18n::TranslationEntry4906 #singular_translation4907 returns the normal `msgstr` for translations without plural4908 returns the first string for entries with plurals4909 #all_translations4910 returns all translations for singular translations4911 returns all translations when including plural translations4912 #plural_translations4913 returns all translations if there is only one plural4914 returns all translations except for the first one if there are multiple4915 #has_singular_translation?4916 has a singular when the translation is not pluralized4917 has a singular when plural and singular are separately defined4918 does not have a separate singular if the plural string only has one translation4919 #msgid_contains_newlines4920 is true when the msgid is an array4921 #plural_id_contains_newlines4922 is true when the msgid is an array4923 #translations_contain_newlines4924 is true when the msgid is an array4925 #contains_unescaped_chars4926 is true when the msgid is an array4927 is false when the `%` char is escaped4928 is false when using an unnamed variable4929 is false when using a named variable4930 is true when an unnamed variable is not closed4931 is true when the string starts with a `%`4932 #msgid_contains_unescaped_chars4933 is true when the msgid contains a `%`4934 #plural_id_contains_unescaped_chars4935 is true when the plural msgid contains a `%`4936 #translations_contain_unescaped_chars4937 is true when the translation contains a `%`4938 #msgid_contains_potential_html?4939 when there are no angle brackets in the msgid4940 returns false4941 when there are angle brackets in the msgid4942 returns true4943 #plural_id_contains_potential_html?4944 when there are no angle brackets in the plural_id4945 returns false4946 when there are angle brackets in the plural_id4947 returns true4948 #translations_contain_potential_html?4949 when there are no angle brackets in the translations4950 returns false4951 when there are angle brackets in the translations4952 returns true4953Gitlab::HttpIO4954 #close4955 is expected to be nil4956 #binmode4957 is expected to be nil4958 #binmode?4959 is expected to be truthy4960 #path4961 is expected to be nil4962 #url4963 is expected to eq "http://object-storage/trace"4964 #seek4965 when moves pos to end of the file4966 is expected to eq 1924414967 when moves pos to middle of the file4968 is expected to eq 962204969 when moves pos around4970 matches the result4971 #eof?4972 when current pos is at end of the file4973 is expected to be truthy4974 when current pos is not at end of the file4975 is expected to be falsey4976 #each_line4977 yields lines4978 when buckets on GCS4979 when BUFFER_SIZE is larger than file size4980 calls get_chunk only once4981 #read4982 when there are no network issue4983 when read whole size4984 when BUFFER_SIZE is smaller than file size4985 reads a trace4986 when BUFFER_SIZE is larger than file size4987 reads a trace4988 when read only first 100 bytes4989 when BUFFER_SIZE is smaller than file size4990 reads a trace4991 when BUFFER_SIZE is larger than file size4992 reads a trace4993 when tries to read oversize4994 when BUFFER_SIZE is smaller than file size4995 reads a trace4996 when BUFFER_SIZE is larger than file size4997 reads a trace4998 when tries to read 0 bytes4999 when BUFFER_SIZE is smaller than file size5000 reads a trace5001 when BUFFER_SIZE is larger than file size5002 reads a trace5003 when there is anetwork issue5004 reads a trace5005 #readline5006 when there is anetwork issue5007 reads a trace5008 when BUFFER_SIZE is smaller than file size5009 behaves like all line matching5010 reads a line5011 when BUFFER_SIZE is larger than file size5012 behaves like all line matching5013 reads a line5014 when pos is at middle of the file5015 reads from pos5016 #write5017 is expected to raise NotImplementedError5018 #truncate5019 is expected to raise NotImplementedError5020 #flush5021 is expected to raise NotImplementedError5022 #present?5023 is expected to be truthy5024 #send5025 does not set the "accept-encoding" header5026PrometheusAdapter5027 #query5028 validate_query5029 with valid data5030 returns query data5031 environment5032 with valid data5033 returns reactive data5034 matched_metrics5035 with valid data5036 returns reactive data5037 deployment5038 with valid data5039 returns reactive data5040 additional_metrics5041 with valid data5042 returns reactive data5043 #calculate_reactive_cache5044 when integration is inactive5045 is expected to be nil5046 when Prometheus responds with valid data5047 is expected to eq "{\"success\":true,\"data\":{\"memory_values\":[{\"metric\":{},\"values\":[[1488758662.506,\"0.000029...lue\":[1488772511.004,\"0.000041021495238095323\"]}]},\"last_update\":\"2021-09-22T10:40:47.000Z\"}"5048 when Prometheus responds with 4045049 is expected to eq {:result=>"404 - \"QUERY FAILED!\"", :success=>false}5050 when Prometheus responds with 5005051 is expected to eq {:result=>"500 - \"QUERY FAILED!\"", :success=>false}5052 #build_query_args5053 when active record models are included5054 serializes by id5055 when args are safe for serialization5056 does nothing5057Gitlab::Ci::Config::External::Processor5058 #perform5059 when no external files defined5060 returns the same values5061 when an invalid local file is defined5062 raises an error5063 when an invalid remote file is defined5064 raises an error5065 with a valid remote external file is defined5066 appends the file to the values5067 removes the 'include' keyword5068 with a valid local external file is defined5069 appends the file to the values5070 removes the 'include' keyword5071 with multiple external files are defined5072 appends the files to the values5073 removes the 'include' keyword5074 when external files are defined but not valid5075 raises an error5076 when both external files and values defined the same key5077 takes precedence5078 when a nested includes are defined5079 when project is public5080 properly expands all includes5081 when user is reporter of another project5082 properly expands all includes5083 when user is not allowed5084 raises an error5085 when too many includes is included5086 raises an error5087 when config includes an external configuration file via SSL web request5088 with an acceptable certificate5089 is expected to include {:image => "ruby:2.6"}5090 with a self-signed certificate5091 returns a reportable configuration error5092 when a valid project file is defined5093 appends the file to the values5094 when valid project files are defined in a single include5095 appends the file to the values5096 when local file path has wildcard5097 fetches the matched files5098Integrations::Test::ProjectService5099 #execute5100 without event specified5101 tests the integration with default data5102 with Integrations::PipelinesEmail5103 behaves like tests for integration with pipeline data5104 tests the integration with pipeline data5105 with event specified5106 event not supported by integration5107 returns error message5108 push5109 executes integration5110 tag_push5111 executes integration5112 note5113 returns error message if not enough data5114 executes integration5115 issue5116 behaves like a test of an integration that operates on issues5117 returns error message if not enough data5118 executes integration5119 confidential_issue5120 behaves like a test of an integration that operates on issues5121 returns error message if not enough data5122 executes integration5123 merge_request5124 returns error message if not enough data5125 executes integration5126 deployment5127 returns error message if not enough data5128 executes integration5129 pipeline5130 returns error message if not enough data5131 executes integration5132 wiki_page5133 returns error message if wiki disabled5134 returns error message if not enough data5135 executes integration5136Clusters::KubernetesNamespace5137 is expected to belong to cluster_project required:5138 is expected to belong to project required:5139 is expected to belong to cluster required:5140 is expected to have one platform_kubernetes5141 has_service_account_token5142 namespace has service_account_token5143 is expected to include #<Clusters::KubernetesNamespace id: 1, cluster_id: 10, project_id: 1494, cluster_project_id: 5, creat..._account_name: "project1484-1494--service-account", environment_id: nil, service_account_token: nil>5144 namespace has no service_account_token5145 is expected not to include #<Clusters::KubernetesNamespace id: 2, cluster_id: 13, project_id: 1495, cluster_project_id: 6, creat..._account_name: "project1485-1495--service-account", environment_id: nil, service_account_token: nil>5146 .with_environment_name5147 there is no associated environment5148 is expected to be empty5149 there is an assicated environment5150 with a matching name5151 is expected to eq [#<Clusters::KubernetesNamespace id: 4, cluster_id: 15, project_id: 1497, cluster_project_id: nil, cr...me: "project1487-1497-production-service-account", environment_id: 132, service_account_token: nil>]5152 without a matching name5153 is expected to be empty5154 namespace uniqueness validation5155 when cluster is using the namespace5156 is expected not to be valid5157 when cluster is not using the namespace5158 is expected to be valid5159 #predefined_variables5160 sets the variables5161Gitlab::InstrumentationHelper5162 .add_instrumentation_data5163 includes DB counts5164 logs cpu_s duration5165 logs the process ID5166 includes DB counts5167 when Gitaly calls are made5168 adds Gitaly data and omits Redis data5169 when Redis calls are made5170 adds Redis data and omits Gitaly data5171 when the request matched a Rack::Attack safelist5172 logs the safelist name5173 when logging memory allocations5174 logs memory usage metrics5175 when replica caught up search was made5176 includes related metrics5177 when only a single counter was updated5178 includes only that counter into logging5179 .queue_duration_for_job5180 enqueued_at: "2019-06-01T00:00:00.000+0000", created_at: nil, time_now: "2019-06-01T02:00:00.000+0000", expected_duration: 7200.05181 returns the correct duration5182 enqueued_at: "2019-06-01T02:00:00.000+0000", created_at: nil, time_now: "2019-06-01T02:00:00.001+0000", expected_duration: 0.0015183 returns the correct duration5184 enqueued_at: "2019-06-01T02:00:00.000+0000", created_at: "2019-05-01T02:00:00.000+0000", time_now: "2019-06-01T02:00:01.000+0000", expected_duration: 15185 returns the correct duration5186 enqueued_at: nil, created_at: "2019-06-01T02:00:00.000+0000", time_now: "2019-06-01T02:00:00.001+0000", expected_duration: 0.0015187 returns the correct duration5188 enqueued_at: nil, created_at: nil, time_now: "2019-06-01T02:00:00.001+0000", expected_duration: nil5189 returns the correct duration5190 enqueued_at: "2019-06-01T02:00:00.000+0200", created_at: nil, time_now: "2019-06-01T02:00:00.000-0200", expected_duration: 14400.05191 returns the correct duration5192 enqueued_at: 1571825569.998168, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: 26.0018325193 returns the correct duration5194 enqueued_at: 1571825569, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: 275195 returns the correct duration5196 enqueued_at: "invalid_date", created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5197 returns the correct duration5198 enqueued_at: "", created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5199 returns the correct duration5200 enqueued_at: 0, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5201 returns the correct duration5202 enqueued_at: -1, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5203 returns the correct duration5204 enqueued_at: "2019-06-01T02:00:00.000+0000", created_at: nil, time_now: "2019-06-01T00:00:00.000+0000", expected_duration: 05205 returns the correct duration5206 enqueued_at: 2019-10-25 10:27:13 +0000, created_at: nil, time_now: "2019-10-25T12:29:16.000+0200", expected_duration: 1235207 returns the correct duration5208FinderMethods5209 #find_by!5210 returns the project if the user has access5211 raises not found when the project is not found5212 raises not found the user does not have access5213 ignores ordering5214 #find5215 returns the project if the user has access5216 raises not found when the project is not found5217 raises not found the user does not have access5218 #find_by5219 returns the project if the user has access5220 returns nil when the project is not found5221 returns nil when the user does not have access5222 ignores ordering5223Gitlab::Kubernetes::Helm::V2::InstallCommand5224 behaves like helm command generator5225 #generate_script5226 returns appropriate command5227 when rbac is true5228 behaves like helm command generator5229 #generate_script5230 returns appropriate command5231 when there is a pre-install script5232 behaves like helm command generator5233 #generate_script5234 returns appropriate command5235 when there is a post-install script5236 behaves like helm command generator5237 #generate_script5238 returns appropriate command5239 when there is no version5240 behaves like helm command generator5241 #generate_script5242 returns appropriate command5243 behaves like helm command5244 HELM_VERSION5245 is expected to match /\d+\.\d+\.\d+/5246 #env5247 is expected to be a kind of Hash5248 #rbac?5249 rbac is enabled5250 is expected to be truthy5251 rbac is not enabled5252 is expected to be falsey5253 #pod_resource5254 rbac is enabled5255 is expected to be an instance of Kubeclient::Resource5256 generates a pod that uses the tiller serviceAccountName5257 rbac is not enabled5258 is expected to be an instance of Kubeclient::Resource5259 generates a pod that uses the default serviceAccountName5260 #config_map_resource5261 returns a KubeClient resource with config map content for the application5262 #service_account_resource5263 rbac is enabled5264 generates a Kubeclient resource for the tiller ServiceAccount5265 rbac is not enabled5266 generates nothing5267 #cluster_role_binding_resource5268 rbac is enabled5269 generates a Kubeclient resource for the ClusterRoleBinding for tiller5270 binds the account in #service_account_resource5271 rbac is not enabled5272 generates nothing5273Gitlab::Git::ObjectPool5274 #storage5275 equals the pool repository's shard name5276 #create5277 when the pool doesn't exist yet5278 creates the pool5279 when the pool already exists5280 raises an FailedPrecondition5281 #exists?5282 when the object pool doesn't exist5283 returns false5284 when the object pool exists5285 returns true5286 #link5287 when linked for the first time5288 sets a remote5289 when the remote is already set5290 doesn't raise an error5291 #fetch5292 when the object's pool repository exists5293 does not raise an error5294 when the object's pool repository does not exist5295 re-creates the object pool's repository5296 does not raise an error5297 fetches objects from the source repository5298Gitlab::SlashCommands::Command5299 #execute5300 when no command is available5301 displays 404 messages5302 when an unknown command is triggered5303 displays the help message5304 the user can not create an issue5305 rejects the actions5306 when trying to do deployment5307 and user can not create deployment5308 returns action5309 and user has deployment permission5310 returns action5311 when duplicate action exists5312 returns error5313 #match_command5314 IssueShow is triggered5315 is expected to eq Gitlab::SlashCommands::IssueShow5316 IssueCreate is triggered5317 is expected to eq Gitlab::SlashCommands::IssueNew5318 IssueSearch is triggered5319 is expected to eq Gitlab::SlashCommands::IssueSearch5320 IssueMove is triggered5321 is expected to eq Gitlab::SlashCommands::IssueMove5322 IssueComment is triggered5323 is expected to eq Gitlab::SlashCommands::IssueComment5324Packages::Conan::SearchService5325 #execute5326 with wildcard5327 makes a wildcard query5328 with only wildcard5329 returns empty5330 with no wildcard5331 makes a search using the beginning of the recipe5332 with full recipe match5333 makes an exact search5334 with malicious query5335 returns empty5336Ci::TriggerEntity5337 #as_json5338 contains required fields5339 contains user fields5340 when current user can manage triggers5341 returns short_token as token5342 contains project_trigger_path5343 does not contain edit_project_trigger_path5344 returns has_token_exposed5345 when current user is the owner of the trigger5346 returns token as token5347 contains project_trigger_path5348 contains edit_project_trigger_path5349 returns has_token_exposed5350Gitlab::Utils::Override5351 #override5352 when instance is klass.new(0)5353 when STATIC_VERIFICATION is set5354 when subject is a class5355 behaves like checking as intended5356 checks ok for overriding method5357 checks ok for overriding method using negative arity5358 raises NotImplementedError when it is not overriding anything5359 raises NotImplementedError when overriding a method with different arity5360 when subject is a module, and class is prepending it5361 behaves like checking as intended5362 checks ok for overriding method5363 checks ok for overriding method using negative arity5364 raises NotImplementedError when it is not overriding anything5365 raises NotImplementedError when overriding a method with different arity5366 when subject is a module, and class is including it5367 behaves like checking as intended, nothing was overridden5368 raises NotImplementedError because it is not overriding it5369 raises NotImplementedError when it is not overriding anything5370 when ActiveSupport::Concern and class_methods are used5371 when it is defining a overriding method5372 verifies5373 when it is not defining a overriding method5374 raises NotImplementedError5375 when STATIC_VERIFICATION is not set5376 when subject is a class5377 behaves like nothing happened5378 does not complain when it is overriding something5379 does not complain when it is not overriding anything5380 when subject is a module, and class is prepending it5381 behaves like nothing happened5382 does not complain when it is overriding something5383 does not complain when it is not overriding anything5384 when subject is a module, and class is including it5385 does not complain when it is overriding something5386 does not complain when it is not overriding anything5387 when instance is klass5388 when STATIC_VERIFICATION is set5389 when subject is a module, and class is prepending it5390 behaves like checking as intended5391 checks ok for overriding method5392 checks ok for overriding method using negative arity5393 raises NotImplementedError when it is not overriding anything5394 raises NotImplementedError when overriding a method with different arity5395 when subject is a module, and class is extending it5396 behaves like checking as intended, nothing was overridden5397 raises NotImplementedError because it is not overriding it5398 raises NotImplementedError when it is not overriding anything5399groups/edit.html.haml5400 "Share with group lock" setting5401 for a root group5402 behaves like "Share with group lock" setting5403 has the correct label, help text, and checkbox options5404 for a subgroup5405 when the root_group has "Share with group lock" disabled5406 when the subgroup has "Share with group lock" disabled5407 as the root_owner5408 behaves like "Share with group lock" setting5409 has the correct label, help text, and checkbox options5410 as the sub_owner5411 behaves like "Share with group lock" setting5412 has the correct label, help text, and checkbox options5413 when the subgroup has "Share with group lock" enabled5414 as the root_owner5415 behaves like "Share with group lock" setting5416 has the correct label, help text, and checkbox options5417 as the sub_owner5418 behaves like "Share with group lock" setting5419 has the correct label, help text, and checkbox options5420 when the root_group has "Share with group lock" enabled5421 when the subgroup has "Share with group lock" disabled (parent overridden)5422 as the root_owner5423 behaves like "Share with group lock" setting5424 has the correct label, help text, and checkbox options5425 as the sub_owner5426 behaves like "Share with group lock" setting5427 has the correct label, help text, and checkbox options5428 when the subgroup has "Share with group lock" enabled (same as parent)5429 as the root_owner5430 behaves like "Share with group lock" setting5431 has the correct label, help text, and checkbox options5432 as the sub_owner5433 behaves like "Share with group lock" setting5434 has the correct label, help text, and checkbox options5435Packages::Composer::CreatePackageService5436 #execute5437 without an existing package5438 with a branch5439 creates the package5440 behaves like assigns the package creator5441 assigns the package creator5442 behaves like assigns build to package5443 with build info5444 assigns the pipeline to the package5445 behaves like assigns status to package5446 with status param5447 assigns the status to the package5448 behaves like using the cache update worker5449 with remove_composer_v1_cache_code enabled5450 does not enqueue a cache update job5451 with remove_composer_v1_cache_code disabled5452 enqueues a cache update job5453 with a tag5454 creates the package5455 behaves like assigns the package creator5456 assigns the package creator5457 behaves like assigns build to package5458 with build info5459 assigns the pipeline to the package5460 behaves like assigns status to package5461 with status param5462 assigns the status to the package5463 behaves like using the cache update worker5464 with remove_composer_v1_cache_code enabled5465 does not enqueue a cache update job5466 with remove_composer_v1_cache_code disabled5467 enqueues a cache update job5468 with an existing package5469 belonging to the same project5470 does not create a new package5471 behaves like using the cache update worker5472 with remove_composer_v1_cache_code enabled5473 does not enqueue a cache update job5474 with remove_composer_v1_cache_code disabled5475 enqueues a cache update job5476 belonging to another project5477 fails with an error5478 same name but of different type5479 creates the package5480 behaves like using the cache update worker5481 with remove_composer_v1_cache_code enabled5482 does not enqueue a cache update job5483 with remove_composer_v1_cache_code disabled5484 enqueues a cache update job5485Gitlab::Ci::Badge::Pipeline::Metadata5486 behaves like badge metadata5487 #to_html5488 points to link5489 contains clickable image5490 #to_markdown5491 is expected to include "http://localhost/namespace1231/project1558/badges/feature/pipeline.svg"5492 is expected to include "http://localhost/namespace1232/project1559/-/commits/feature"5493 #to_asciidoc5494 is expected to include "http://localhost/namespace1233/project1560/badges/feature/pipeline.svg"5495 is expected to include "http://localhost/namespace1234/project1561/-/commits/feature"5496 is expected to include "image:"5497 is expected to include "link="5498 is expected to include "title="5499 #title5500 returns build status title5501 #image_url5502 returns valid url5503 #link_url5504 returns valid link5505Gitlab::Middleware::SameSiteCookies5506 #call5507 without SSL enabled5508 with cookie5509 does not add headers to cookies5510 with SSL enabled5511 with no cookies5512 does not add headers5513 with different browsers5514 description: "iOS 12", user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1", expected: false5515 returns expected SameSite status5516 description: "macOS 10.14 + Safari", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15", expected: false5517 returns expected SameSite status5518 description: "macOS 10.14 + Opera", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.55", expected: false5519 returns expected SameSite status5520 description: "macOS 10.14 + Chrome v80", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36", expected: true5521 returns expected SameSite status5522 description: "Chrome v41", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", expected: true5523 returns expected SameSite status5524 description: "Chrome v50", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2348.1 Safari/537.36", expected: true5525 returns expected SameSite status5526 description: "Chrome v51", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2718.15 Safari/537.36", expected: false5527 returns expected SameSite status5528 description: "Chrome v62", user_agent: "Mozilla/5.0 (Macintosh; Intel NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36", expected: false5529 returns expected SameSite status5530 description: "Chrome v66", user_agent: "Mozilla/5.0 (Linux; Android 4.4.2; Avvio_793 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36", expected: false5531 returns expected SameSite status5532 description: "Chrome v67", user_agent: "Mozilla/5.0 (Linux; Android 7.1.1; SM-J510F Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3371.0 Mobile Safari/537.36", expected: true5533 returns expected SameSite status5534 description: "Chrome v85", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", expected: true5535 returns expected SameSite status5536 description: "Chromium v66", user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 HeadlessChrome/66.0.3359.181 Safari/537.36", expected: false5537 returns expected SameSite status5538 description: "Chromium v85", user_agent: "Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/85.0.4183.59 Chrome/85.0.4183.59 Safari/537.36", expected: true5539 returns expected SameSite status5540 description: "UC Browser 12.0.4", user_agent: "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-CN; A31 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.0.4.986 Mobile Safari/537.36", expected: false5541 returns expected SameSite status5542 description: "UC Browser 12.13.0", user_agent: "Mozilla/5.0 (Linux; U; Android 7.1.1; en-US; SM-C9000 Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.0.1207 Mobile Safari/537.36", expected: false5543 returns expected SameSite status5544 description: "UC Browser 12.13.2", user_agent: "Mozilla/5.0 (Linux; U; Android 9; en-US; Redmi Note 7 Build/PQ3B.190801.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.2.1208 Mobile Safari/537.36", expected: true5545 returns expected SameSite status5546 description: "UC Browser 12.13.5", user_agent: "Mozilla/5.0 (Linux; U; Android 5.1.1; en-US; PHICOMM C630 (CLUE L) Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.5.1209 Mobile Safari/537.36", expected: true5547 returns expected SameSite status5548 description: "Playstation", user_agent: "Mozilla/5.0 (PlayStation 4 2.51) AppleWebKit/537.73 (KHTML, like Gecko)", expected: true5549 returns expected SameSite status5550 with single cookie5551 adds required headers5552 multiple cookies5553 adds required headers5554 multiple cookies with some missing headers5555 adds missing headers5556 multiple cookies with all headers present5557 does not add new headers5558Ci::BuildTraceMetadata5559 is expected to belong to build required:5560 is expected to belong to trace_artifact required:5561 is expected to validate that :build cannot be empty/falsy5562 is expected to validate that :archival_attempts cannot be empty/falsy5563 #can_attempt_archival_now?5564 when archival_attempts is over the limit5565 is expected to be falsey5566 when last_archival_attempt_at is not set5567 is expected to be truthy5568 when last_archival_attempt_at is set5569 is expected to be truthy5570 when last_archival_attempt_at is too close5571 is expected to be falsey5572 #archival_attempts_available?5573 when archival_attempts is over the limit5574 is expected to be falsey5575 when archival_attempts is at the limit5576 is expected to be truthy5577 #increment_archival_attempts!5578 increments the attempts5579 updates the last_archival_attempt_at timestamp5580 #track_archival!5581 stores the artifact id and timestamp5582 .find_or_upsert_for!5583 creates a new record5584 with existing records5585 returns the existing record5586IssueLink5587 Associations5588 is expected to belong to source class_name => Issue required:5589 is expected to belong to target class_name => Issue required:5590 link_type5591 is expected to define :link_type as an enum, backed by an integer, with possible values ‹{relates_to: 0, blocks: 1}›5592 provides the "related" as default link_type5593 Validation5594 is expected to validate that :source cannot be empty/falsy5595 is expected to validate that :target cannot be empty/falsy5596 is expected to validate that :source is case-sensitively unique within the scope of :target_id, producing a custom validation error on failure5597 is not valid if an opposite link already exists5598 when it relates to itself5599 cannot be validated5600 does not invalidate object with self relation error5601 can be invalidated5602 invalidates object5603Gitlab::FileFinder5604 #find5605 does not cause N+1 query5606 behaves like file finder5607 finds by path5608 finds by content5609 with inclusive filters5610 filters by filename5611 filters by path5612 filters by extension5613 with exclusive filters5614 filters by filename5615 filters by path5616 filters by extension5617 with white space in the path5618 filters by path correctly5619Security::LicenseComplianceJobsFinder5620 behaves like Security::JobsFinder5621 #new5622 does not get initialized for unsupported job types5623 #execute5624 behaves like JobsFinder core functionality5625 when the pipeline has no jobs5626 is expected to be empty5627 when the pipeline has no Secure jobs5628 is expected to be empty5629 when the pipeline only has jobs without report artifacts5630 is expected to be empty5631 when the pipeline only has jobs with reports unrelated to Secure products5632 is expected to be empty5633 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports5634 is expected to be empty5635 when there is more than one pipeline5636 returns jobs associated with provided pipeline5637 #execute5638 returns only the license_scanning job5639GroupMemberPresenter5640 #can_resend_invite?5641 when group_member is invited5642 and user can admin_group_member5643 is expected to eq true5644 and user cannot admin_group_member5645 is expected to eq false5646 when group_member is not invited5647 and user can admin_group_member5648 is expected to eq false5649 and user cannot admin_group_member5650 is expected to eq false5651 #can_update?5652 when user can update_group_member5653 is expected to eq true5654 when user cannot update_group_member5655 is expected to eq false5656 #can_remove?5657 when user can destroy_group_member5658 is expected to eq true5659 when user cannot destroy_group_member5660 is expected to eq false5661 #can_approve?5662 when group_member has request an invite5663 when user can update_group_member5664 is expected to eq true5665 when user cannot update_group_member5666 is expected to eq false5667 when group_member did not request an invite5668 when user can update_group_member5669 is expected to eq false5670 when user cannot update_group_member5671 is expected to eq false5672 behaves like #valid_level_roles5673 returns all roles when no parent member is present5674 returns higher roles when a parent member is present5675ZoomMeeting5676 Factory5677 is expected to be valid5678 Associations5679 is expected to belong to project required:5680 is expected to belong to issue required:5681 scopes5682 .added_to_issue5683 gets only added meetings5684 .removed_from_issue5685 gets only removed meetings5686 Validations5687 is expected to validate that :project cannot be empty/falsy5688 is expected to validate that :issue cannot be empty/falsy5689 when importing5690 is expected not to validate that :project cannot be empty/falsy5691 is expected not to validate that :issue cannot be empty/falsy5692 url5693 is expected to validate that :url cannot be empty/falsy5694 is expected to validate that the length of :url is at most 2555695 with non-Zoom URL5696 is expected to contain exactly "must contain one valid Zoom URL"5697 with multiple Zoom-URLs5698 is expected to contain exactly "must contain one valid Zoom URL"5699 issue association5700 for the same project5701 is expected to be valid5702 for a different project5703 is expected to contain exactly "must associate the same project"5704 limit number of meetings per issue5705 without meetings5706 behaves like can add meetings5707 can add new Zoom meetings5708 when no other meeting is added5709 behaves like can add meetings5710 can add new Zoom meetings5711 when meeting is added5712 behaves like cannot add meetings5713 fails to add a new meeting5714 when meeting is added to another issue5715 behaves like can add meetings5716 can add new Zoom meetings5717 when second meeting is removed5718 behaves like can remove meetings5719 can remove Zoom meetings5720Sidebars::Menu5721 #all_active_routes5722 gathers all active routes of items and the current menu5723 #render?5724 when the menus has no items5725 returns false5726 when menu has a partial5727 returns true5728 when the menu has items5729 returns true5730 when menu items are NilMenuItem5731 returns false5732 #has_items?5733 returns true when there are regular menu items5734 returns true when there are nil menu items5735 #has_renderable_items?5736 returns true when there are regular menu items5737 returns false when there are nil menu items5738 returns true when there are both regular and nil menu items5739 #renderable_items5740 returns only regular menu items5741 #insert_element_before5742 adds element before the specific element class5743 does not add nil elements5744 when reference element does not exist5745 adds the element to the top of the list5746 #insert_element_after5747 adds element after the specific element class5748 does not add nil elements5749 when reference element does not exist5750 adds the element to the end of the list5751 #container_html_options5752 when menu can be rendered5753 when menu has renderable items5754 contains the special class5755 when menu already has other classes5756 appends special class5757 when menu does not have renderable items5758 does not contain the special class5759 when menu cannot be rendered5760 does not contain special class5761 #link5762 returns first visible menu item link5763 returns nil if there are no visible menu items5764Ci::PipelineArtifacts::DestroyAllExpiredService5765 .execute5766 when timeout happens5767 returns 0 and does not continue destroying5768 when there are no artifacts5769 does not raise error5770 when the loop limit is reached5771 destroys one artifact5772 reports the number of destroyed artifacts5773 when there are artifacts more than batch sizes5774 destroys all expired artifacts5775 reports the number of destroyed artifacts5776 when artifacts are not expired5777 does not destroy pipeline artifacts5778 reports the number of destroyed artifacts5779 when pipeline is locked5780 does not destroy pipeline artifacts5781 reports the number of destroyed artifacts5782 .destroy_artifacts_batch5783 returns a falsy value without artifacts5784Gitlab::Shell5785 is expected to respond to #remove_repository5786 memoized secret_token5787 creates and links the secret token file5788 projects commands5789 #remove_repository5790 returns true when the command succeeds5791 keeps the namespace directory5792 #mv_repository5793 returns true when the command succeeds5794 returns false when the command fails5795 namespace actions5796 #add_namespace5797 creates a namespace5798 #repository_exists?5799 when the repository does not exist5800 returns false5801 when the repository exists5802 returns true5803 #remove5804 removes the namespace5805 #mv_namespace5806 renames the namespace5807RepositoryArchiveCleanUpService5808 #execute (new archive locations)5809 removes outdated archives and directories in a new-style path5810 removes outdated archives and directories in a versioned path5811 does not remove directories when they contain outdated non-archives5812 does not remove in-date archives in a new-style path5813 #execute (legacy archive locations)5814 when the downloads directory does not exist5815 does not remove any archives5816 when the downloads directory exists5817 removes files older than 2 hours that matches valid archive extensions5818 with files older than 2 hours that does not matches valid archive extensions5819 behaves like invalid archive files5820 does not remove files and directory5821 with files older than 2 hours inside invalid directories5822 behaves like invalid archive files5823 does not remove files and directory5824 with files newer than 2 hours that matches valid archive extensions5825 behaves like invalid archive files5826 does not remove files and directory5827 with files newer than 2 hours that does not matches valid archive extensions5828 behaves like invalid archive files5829 does not remove files and directory5830 with files newer than 2 hours inside invalid directories5831 behaves like invalid archive files5832 does not remove files and directory5833Resolvers::SnippetsResolver5834 #resolve5835 calls SnippetsFinder5836 when using no filter5837 returns expected snippets5838 when using filters5839 returns the snippets by type5840 returns the snippets by visibility5841 returns snippets to explore5842 returns the snippets by single gid5843 returns the snippets by array of gid5844 returns an error if the id cannot be coerced5845 returns an error if both project and author are provided5846 by author id5847 returns the snippets5848 returns an error if the param id is invalid5849 by project id5850 returns the snippets5851 returns an error if the param id is invalid5852Clusters::InstancePolicy5853 rules5854 when user5855 is expected to be disallowed :read_cluster5856 is expected to be disallowed :add_cluster5857 is expected to be disallowed :create_cluster5858 is expected to be disallowed :update_cluster5859 is expected to be disallowed :admin_cluster5860 when admin5861 when admin mode is enabled5862 is expected to be allowed :read_cluster5863 is expected to be allowed :add_cluster5864 is expected to be allowed :create_cluster5865 is expected to be allowed :update_cluster5866 is expected to be allowed :admin_cluster5867 when admin mode is disabled5868 is expected to be disallowed :read_cluster5869 is expected to be disallowed :add_cluster5870 is expected to be disallowed :create_cluster5871 is expected to be disallowed :update_cluster5872 is expected to be disallowed :admin_cluster5873Banzai::Filter::References::ReferenceCache5874 #load_references_per_parent5875 loads references grouped per parent paths5876 #load_parent_per_reference5877 returns a Hash containing projects grouped per parent paths5878 #load_records_per_parent5879 returns a Hash containing projects grouped per parent paths5880 #initialize_reference_cache5881 does not have an N+1 query problem with cross projects5882 #find_for_paths5883 with RequestStore disabled5884 returns a list of Projects for a list of paths5885 return an empty array for paths that do not exist5886 with RequestStore enabled5887 returns a list of Projects for a list of paths5888 when no project with that path exists5889 returns no value5890 adds the ref to the project refs cache5891 #current_parent_path5892 returns the path of the current parent5893 #current_project_namespace_path5894 returns the path of the current project namespace5895 #full_project_path5896 returns current parent path when no ref specified5897 returns combined namespace and project ref5898 returns uses default namespace and project ref when namespace nil5899 #full_group_path5900 returns current parent path when no group ref specified5901 returns group ref5902Files::DeleteService5903 #execute5904 when the file's last commit sha does not match the supplied last_commit_sha5905 returns a hash with the correct error message and a :error status5906 when the file's last commit sha does match the supplied last_commit_sha5907 behaves like successfully deletes the file5908 returns a hash with the :success status5909 deletes the file5910 uses the commit email5911 when the last_commit_sha is not supplied5912 behaves like successfully deletes the file5913 returns a hash with the :success status5914 deletes the file5915 uses the commit email5916Spammable5917 Associations5918 is expected to have one user_agent_detail dependent => destroy5919 ClassMethods5920 returns correct attr_spammable5921 InstanceMethods5922 is invalid if spam5923 #check_for_spam?5924 returns true for public project5925 returns false for other visibility levels5926 #invalidate_if_spam5927 when the model is spam5928 has an error related to spam on the model5929 when the model needs recaptcha5930 has an error related to spam on the model5931 if the model is spam and also needs recaptcha5932 has an error related to spam on the model5933 when the model is not spam nor needs recaptcha5934 returns no error5935 if recaptcha is not enabled and the model needs recaptcha5936 has no errors5937 spam flags5938 #spam!5939 adds only `spam` flag5940 #needs_recaptcha!5941 adds `needs_recaptcha` flag5942 #render_recaptcha?5943 when recaptcha is not enabled5944 returns false5945 when recaptcha is enabled5946 when there are two or more errors5947 returns false5948 when there are less than two errors5949 when spammable does not need recaptcha5950 returns false5951 when spammable needs recaptcha5952 returns false5953 #clear_spam_flags!5954 clears spam and recaptcha flags5955 #submittable_as_spam_by?5956 tests if the user can submit spam5957gitlab:smtp:secret rake tasks5958 :show5959 displays error when file does not exist5960 displays error when key does not exist5961 displays error when key is changed5962 outputs the unencrypted content when present5963 edit5964# password: '123'5965# user_name: 'gitlab-inst'5966 creates encrypted file5967 displays error when key does not exist5968 displays error when key is changed5969 displays error when write directory does not exist5970somevalue shows a warning when content is invalid5971 displays error when $EDITOR is not set5972 write5973 creates encrypted file from stdin5974 displays error when key does not exist5975 displays error when write directory does not exist5976somevalue shows a warning when content is invalid5977Gitlab::Ci::Pipeline::Chain::Build::Associations5978 sets pipeline variables5979 when a bridge is passed in to the pipeline creation5980 links the pipeline to the upstream bridge job5981 behaves like does not break the chain5982 returns false5983 when a bridge is not passed in to the pipeline creation5984 leaves the source pipeline empty5985 behaves like does not break the chain5986 returns false5987 when project setting restrict_user_defined_variables is enabled5988 when user is developer5989 returns an error on variables_attributes5990 behaves like breaks the chain5991 returns true5992 when variables_attributes is not specified5993 assigns empty variables5994 behaves like does not break the chain5995 returns false5996 when user is maintainer5997 assigns variables_attributes5998 behaves like does not break the chain5999 returns false6000 with duplicate pipeline variables6001 returns an error for variables_attributes6002 behaves like breaks the chain6003 returns true6004Integrations::Youtrack6005 Validations6006 when integration is active6007 is expected to validate that :project_url cannot be empty/falsy6008 is expected to validate that :issues_url cannot be empty/falsy6009 behaves like issue tracker integration URL attribute6010 is expected to allow :project_url to be ‹"https://example.com"›6011 is expected not to allow :project_url to be ‹"example.com"›6012 is expected not to allow :project_url to be ‹"ftp://example.com"›6013 is expected not to allow :project_url to be ‹"herp-and-derp"›6014 behaves like issue tracker integration URL attribute6015 is expected to allow :issues_url to be ‹"https://example.com"›6016 is expected not to allow :issues_url to be ‹"example.com"›6017 is expected not to allow :issues_url to be ‹"ftp://example.com"›6018 is expected not to allow :issues_url to be ‹"herp-and-derp"›6019 when integration is inactive6020 is expected not to validate that :project_url cannot be empty/falsy6021 is expected not to validate that :issues_url cannot be empty/falsy6022 .reference_pattern6023 does allow project prefix on the reference6024 allows lowercase project key on the reference6025 behaves like allows project key on reference pattern6026 allows underscores in the project name6027 allows numbers in the project name6028 requires the project name to begin with A-Z6029 does not allow issue number to finish with a letter6030Admin::UserActionsHelper6031 #admin_actions6032 the user is a bot6033 is expected to be empty6034 the current user and user are the same6035 is expected to contain exactly "edit"6036 the user is a standard user6037 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6038 the user is an admin user6039 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6040 the user is blocked by LDAP6041 is expected to contain exactly "edit", "ldap", "delete", and "delete_with_contributions"6042 the user is blocked pending approval6043 is expected to contain exactly "edit", "approve", and "reject"6044 the user is blocked6045 is expected to contain exactly "edit", "unblock", "delete", and "delete_with_contributions"6046 the user is deactivated6047 is expected to contain exactly "edit", "block", "ban", "activate", "delete", and "delete_with_contributions"6048 the user is locked6049 is expected to contain exactly "edit", "block", "ban", "deactivate", "unlock", "delete", and "delete_with_contributions"6050 the user is banned6051 is expected to contain exactly "edit", "unban", "delete", and "delete_with_contributions"6052 the current_user does not have permission to delete the user6053 is expected to contain exactly "edit", "block", "ban", and "deactivate"6054 the user is a sole owner of a group6055DEPRECATION WARNING: Merging ("members"."access_level" != $1) and ("members"."access_level" = $1) no longer maintain both conditions, and will be replaced by the latter in Rails 6.2. To migrate to Rails 6.2's behavior, use `relation.merge(other, rewhere: true)`. (called from solo_owned_groups at /builds/gitlab-org/gitlab/app/models/user.rb:1322)6056 is expected to contain exactly "edit", "block", "ban", "deactivate", and "delete_with_contributions"6057 the user is a bot6058 is expected to contain exactly6059 when `ban_user_feature_flag` is disabled6060 the user is a standard user6061 is expected not to include "ban"6062 the user is banned6063 is expected not to include "unban"6064TokenAuthenticatableStrategies::Encrypted6065 #find_token_authenticatable6066 when encryption is required6067 finds the encrypted resource by cleartext6068 when encryption is optional6069 finds the encrypted resource by cleartext6070 uses insecure strategy when encrypted token cannot be found6071 when encryption is migrating6072 finds the cleartext resource by cleartext6073 returns nil if resource cannot be found6074 #get_token6075 when encryption is required6076 returns decrypted token when an encrypted with static iv token is present6077 returns decrypted token when an encrypted token is present6078 when encryption is optional6079 returns decrypted token when an encrypted token is present6080 returns decrypted token when an encrypted with static iv token is present6081 returns the plaintext token when encrypted token is not present6082 when encryption is migrating6083 returns cleartext token when an encrypted token is present6084 returns the cleartext token when encrypted token is not present6085 #set_token6086 when encryption is required6087 writes encrypted token and returns it6088 when encryption is optional6089 writes encrypted token and removes plaintext token and returns it6090 when encryption is migrating6091 writes encrypted token and writes plaintext token6092Packages::UpdatePackageFileService6093 #execute6094 with object storage disabled6095 behaves like updating package file with valid parameters6096 with both parameters set6097 updates the package file accordingly6098 with only file_name set6099 updates the package file accordingly6100 with only package_id set6101 updates the package file accordingly6102 behaves like not updating package with invalid parameters6103 with blank parameters6104 raise an argument error6105 with non persisted package file6106 raise an argument error6107 with object storage enabled6108 behaves like updating package file with valid parameters6109 with both parameters set6110 updates the package file accordingly6111 with only file_name set6112 updates the package file accordingly6113 with only package_id set6114 updates the package file accordingly6115 behaves like not updating package with invalid parameters6116 with blank parameters6117 raise an argument error6118 with non persisted package file6119 raise an argument error6120RuboCop::Cop::AvoidReturnFromBlocks6121 flags violation for return inside a block6122 doesn't create more than one offense for nested blocks6123 flags violation for return inside included > def > block6124 doesn't flag violation for return inside a lambda6125 doesn't flag violation for return used inside a method definition6126 doesn't flag violation for next inside a block6127 doesn't flag violation for break inside a block6128 doesn't check when block is empty6129 behaves like examples with whitelisted method6130 doesn't flag violation for return inside each6131 behaves like examples with whitelisted method6132 doesn't flag violation for return inside each_filename6133 behaves like examples with whitelisted method6134 doesn't flag violation for return inside times6135 behaves like examples with whitelisted method6136 doesn't flag violation for return inside loop6137 behaves like examples with def methods6138 doesn't flag violation for return inside define_method6139 behaves like examples with def methods6140 doesn't flag violation for return inside lambda6141BulkInsertSafe6142-- create_table(:bulk_insert_parent_items, {:force=>true})6143 -> 0.0052s6144-- create_table(:bulk_insert_items, {:force=>true})6145 -> 0.0083s6146-- create_table(:bulk_insert_items_with_composite_pk, {:id=>false, :force=>true})6147 -> 0.0031s6148-- execute("ALTER TABLE bulk_insert_items_with_composite_pk ADD PRIMARY KEY (id,name);")6149 -> 0.0020s6150 BulkInsertItem6151 behaves like a BulkInsertSafe model6152 when calling class methods directly6153 raises an error when method is not bulk-insert safe6154 does not raise an error when method is bulk-insert safe6155 .bulk_insert!6156 when all items are valid6157 inserts them all6158 returns an empty array6159 when some items are invalid6160 does not insert any of them and raises an error6161 inserts them anyway when bypassing validations6162 when inheriting class methods6163 raises an error when method is not bulk-insert safe6164 does not raise an error when method is bulk-insert safe6165 primary keys6166 raises error if primary keys are set prior to insertion6167 .bulk_insert!6168 inserts items in the given number of batches6169 inserts items with belongs_to association6170 items can be properly fetched from database6171 rolls back the transaction when any item is invalid6172 does nothing and returns an empty array when items are empty6173 with returns option set6174 when is set to :ids6175 return an array with the primary key values for all inserted records6176 when is set to nil6177 returns an empty array6178 when is set to anything else6179 raises an error6180 when duplicate items are to be inserted6181 .bulk_insert!6182 when skip_duplicates is set to false6183 raises an exception6184 when skip_duplicates is set to true6185 does not update existing object6186 .bulk_upsert!6187 updates existing object6188 when a model with composite primary key is inserted6189WARNING: Active Record does not support composite primary key.6190bulk_insert_items_with_composite_pk has composite primary key. Composite primary key is ignored.6191 successfully inserts an item6192-- drop_table(:bulk_insert_items, {:force=>true})6193 -> 0.0245s6194-- drop_table(:bulk_insert_parent_items, {:force=>true})6195 -> 0.0020s6196-- drop_table(:bulk_insert_items_with_composite_pk, {:force=>true})6197 -> 0.0016s6198Metrics::Dashboard::ClusterMetricsEmbedService6199 .valid_params?6200 is expected to be truthy6201 returns false with missing param6202 returns false with missing param6203 returns false with missing param6204 returns false with missing param6205 returns false with missing param6206 missing all params6207 is expected to be falsy6208 #get_dashboard6209 returns one panel6210 returns panel by title and y_label6211 behaves like valid embedded dashboard service response6212 behaves like valid dashboard service response for schema6213 returns a json representation of the dashboard6214 behaves like caches the unprocessed dashboard for subsequent calls6215 is expected to receive load_raw!(*(any args)) 1 time6216notify/pipeline_fixed_email.text.erb6217 behaves like pipeline status changes email6218 when the pipeline contains a failed job6219 behaves like renders the pipeline status changes email correctly6220 pipeline with user6221 renders the email correctly6222 behaves like correct pipeline information for pipelines for merge requests6223 when pipeline for merge request6224 renders a source ref of the pipeline6225 pipeline without user6226 renders the email correctly6227 when the latest failed job is a bridge job6228 behaves like renders the pipeline status changes email correctly6229 pipeline with user6230 renders the email correctly6231 behaves like correct pipeline information for pipelines for merge requests6232 when pipeline for merge request6233 renders a source ref of the pipeline6234 pipeline without user6235 renders the email correctly6236BulkImports::FileDownloadService6237 #execute6238 downloads file6239 when content-type is application/gzip6240 downloads file6241 when url is not valid6242 raises an error6243 when content-type is not valid6244 raises an error6245 when content-length is not valid6246 when content-length exceeds limit6247 raises an error6248 when content-length is missing6249 raises an error6250 when content-length is equals the file size limit6251 does not raise an error6252 when partially downloaded file exceeds limit6253 raises an error6254 when chunk code is not 2006255 raises an error6256 when file is a symlink6257 raises an error and removes the file6258 when dir is not in tmpdir6259 raises an error6260 when using the remote filename6261 when no filename is given6262 raises an error when the filename is not provided in the request header6263 with a given filename6264 uses the given filename6265 when the filename is a path6266 raises an error when the filename is not provided in the request header6267 when the filename is longer the the limit6268 raises an error when the filename is not provided in the request header6269Banzai::Filter::MathFilter6270 leaves regular inline code unchanged6271 removes surrounding dollar signs and adds class code, math and js-render-math6272 only removes surrounding dollar signs6273 only removes surrounding single dollar sign6274 adds data-math-style inline attribute to inline math6275 adds class code and math to inline math6276 adds js-render-math class to inline math6277 ignores cases with missing dolar sign at the end6278 ignores cases with missing dolar sign at the beginning6279 ignores dollar signs if it is not adjacent6280 ignores dollar signs if they are inside another element6281 adds data-math-style display attribute to display math6282 adds js-render-math class to display math6283 ignores code blocks that are not math6284 requires the pre to contain both code and math6285 dollar signs around to display math6286Ci::CreatePipelineService6287 when the variable is set6288 uses the evaluated variable6289 when the tag is composed by two variables6290 uses the evaluated variables6291 when the variable is not set6292 uses the variable as a regular string6293 when the tag uses group variables6294 uses the evaluated variables6295 when the tag has the same variable name defined for both group and project6296 uses the project variable instead of group due to variable precedence6297 with parallel:matrix config6298 uses the evaluated variables6299Gitlab::Metrics::Transaction6300 #method_call_for6301 returns a MethodCall6302 #run6303 is expected to raise NotImplementedError6304 #add_event6305 adds a metric6306 allows tracking of custom tags6307 with sensitive tags6308 filters tags6309 #increment6310 adds a metric6311 with block6312 overrides docstring6313 overrides labels6314 filters sensitive tags6315 #set6316 adds a metric6317 with block6318 overrides docstring6319 overrides labels6320 filters sensitive tags6321 #observe6322 adds a metric6323 with block6324 overrides docstring6325 overrides labels6326 filters sensitive tags6327Gitlab::HookData::KeyBuilder6328 #build6329 for keys that belong to a user6330 data6331 on create6332 is expected to eq "key_create"6333 is expected to eq "user696"6334 behaves like includes the required attributes6335 includes the required attributes6336 on destroy6337 is expected to eq "key_destroy"6338 is expected to eq "user696"6339 behaves like includes the required attributes6340 includes the required attributes6341 for keys that do not belong to a user6342 data6343 on create6344 is expected to eq "key_create"6345 behaves like includes the required attributes6346 includes the required attributes6347 on destroy6348 is expected to eq "key_destroy"6349 behaves like includes the required attributes6350 includes the required attributes6351Gitlab::HealthChecks::Redis::SharedStateCheck6352 #metrics6353 Check is passing6354 is expected to include (have attributes {:name => "redis_shared_state_ping_success", :value => 1})6355 is expected to include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 0})6356 is expected to include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})6357 Check is misbehaving6358 is expected to include (have attributes {:name => "redis_shared_state_ping_success", :value => 0})6359 is expected to include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 0})6360 is expected to include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})6361 Check is timeouting6362 is expected to include (have attributes {:name => "redis_shared_state_ping_success", :value => 0})6363 is expected to include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 1})6364 is expected to include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})6365 #readiness6366 Check returns ok6367 is expected to have attributes {:success => true}6368 Check is misbehaving6369 is expected to have attributes {:message => "unexpected Shared_state check result: error!", :success => false}6370 Check is timeouting6371 is expected to have attributes {:message => "Shared_state check timed out", :success => false}6372 Check is raising an unhandled exception6373 is expected to have attributes {:message => "unexpected Shared_state check result: unexpected error", :success => false}6374Jobs/Build.gitlab-ci.yml6375 the created pipeline6376 on master6377 creates the build job6378 on another branch6379 creates the build job6380 on tag6381 creates the build job6382 on merge request6383 has no jobs6384Packages::CreatePackageFileService6385 #execute6386 with valid params6387 creates a new package file6388 behaves like assigns build to package file6389 with build info6390 assigns the pipeline to the package6391 creates a new PackageFileBuildInfo record6392 file is missing6393 raises an error6394Gitlab::Checks::DiffCheck6395 #validate!6396 when commits is empty6397 does not call find_changed_paths6398 when commits is not empty6399 when deletion is true6400 does not call find_changed_paths6401 with LFS not enabled6402 does not invoke :lfs_file_locks_validation6403 with LFS enabled6404 when change is sent by a different user6405 raises an error if the user is not allowed to update the file6406 when change is sent by the author of the lock6407 doesn't raise any error6408Gitlab::Database::Partitioning::PartitionManager6409 creating partitions (mocked)6410 creates the partition6411 when an error occurs during partition management6412 does not raise an error6413 creating partitions6414 creates partitions6415 detaching partitions (mocked)6416 with the partition_pruning feature flag enabled6417 detaches each extra partition6418 with the partition_pruning feature flag disabled6419 returns immediately6420 #detach_partitions6421 detaches exactly one partition6422 detaches the old partition6423 deletes zero tables6424 creates the appropriate PendingPartitionDrop entry6425 when the model is the target of a foreign key6426 does not detach partitions with a referenced foreign key6427 creating and then detaching partitions for a table6428 creates partitions for the future then drops the oldest one after a month6429Ci::HasRef6430 #branch?6431 is not a tag6432 return true when tag is set to false6433 when it was triggered by merge request6434 returns false6435 is not a tag6436 return false when tag is set to true6437 #git_ref6438 when tag is true6439 returns a tag ref6440 when tag is false6441 returns a branch ref6442 when tag is nil6443 returns a branch ref6444 when it is triggered by a merge request6445 returns nil6446Aws::Role6447 is expected to belong to user required:6448 is expected to validate that the length of :role_external_id is between 1 and 646449 custom validations6450 :role_arn6451 length is zero6452 is expected to be falsey6453 length is longer than 20486454 is expected to be falsey6455 ARN is valid6456 is expected to be truthy6457 ARN is nil6458 is expected to be truthy6459 callbacks6460 #ensure_role_external_id!6461 for a new record6462 calls #ensure_role_external_id!6463 for an existing record6464 does not call #ensure_role_external_id!6465 #ensure_role_external_id!6466 role_external_id is blank6467 generates an external ID and assigns it to the record6468 role_external_id is already set6469 does not change the existing external id6470Resolvers::ProjectPackagesResolver6471 #resolve6472 behaves like group and projects packages resolver6473 without sort6474 is expected to contain exactly #<Packages::Package id: 315, project_id: 1687, created_at: "2021-09-22 10:44:11.691609389 +0000", upd.../app/my-app", version: "1.117-SNAPSHOT", package_type: "maven", creator_id: 2073, status: "default">6475 with sorting and filtering6476 created_desc6477 is expected to eq [#<Packages::Package id: 319, project_id: 1687, created_at: "2021-09-22 09:44:12.121853805 +0000", up... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2073, status: "default">]6478 name_desc6479 is expected to eq [#<Packages::Package id: 319, project_id: 1687, created_at: "2021-09-22 09:44:12.121853805 +0000", up... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2073, status: "default">]6480 version_desc6481 is expected to eq [#<Packages::Package id: 319, project_id: 1687, created_at: "2021-09-22 09:44:12.121853805 +0000", up... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2073, status: "default">]6482 type_asc6483 is expected to eq [#<Packages::Package id: 319, project_id: 1687, created_at: "2021-09-22 09:44:12.121853805 +0000", up... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2073, status: "default">]6484 created_asc6485 is expected to eq [#<Packages::Package id: 317, project_id: 1687, created_at: "2021-09-21 10:44:11.795162736 +0000", up...44 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2073, status: "error">]6486 name_asc6487 is expected to eq [#<Packages::Package id: 317, project_id: 1687, created_at: "2021-09-21 10:44:11.795162736 +0000", up...44 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2073, status: "error">]6488 version_asc6489 is expected to eq [#<Packages::Package id: 317, project_id: 1687, created_at: "2021-09-21 10:44:11.795162736 +0000", up...44 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2073, status: "error">]6490 type_desc6491 is expected to eq [#<Packages::Package id: 317, project_id: 1687, created_at: "2021-09-21 10:44:11.795162736 +0000", up...44 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2073, status: "error">]6492 filter by package_name6493 is expected to eq [#<Packages::Package id: 317, project_id: 1687, created_at: "2021-09-21 10:44:11.795162736 +0000", up... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2073, status: "default">]6494 filter by package_type6495 is expected to eq [#<Packages::Package id: 317, project_id: 1687, created_at: "2021-09-21 10:44:11.795162736 +0000", up... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2073, status: "default">]6496 filter by status6497 is expected to eq [#<Packages::Package id: 319, project_id: 1687, created_at: "2021-09-22 09:44:12.121853805 +0000", up...44 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2073, status: "error">]6498 include_versionless6499 is expected to include #<Packages::Package id: 321, project_id: 1687, created_at: "2021-09-22 10:43:12.326935139 +0000", upd...52673 +0000", name: "baz", version: nil, package_type: "maven", creator_id: 2073, status: "default">6500Resolvers::Users::SnippetsResolver6501 #resolve6502 calls SnippetsFinder6503 when using no filter6504 returns expected authored snippets6505 when using filters6506 returns the snippets by visibility6507 returns the snippets by type6508 returns the snippets by single gid6509 returns the snippets by array of gid6510 returns an error if the gid is invalid6511 when user profile is private6512 does not return snippets for that user6513Ci::LegacyStagePresenter6514 #latest_ordered_statuses6515 preloads build tags6516 preloads build artifacts archive6517 preloads build artifacts metadata6518 #retried_ordered_statuses6519 preloads build tags6520 preloads build artifacts archive6521 preloads build artifacts metadata6522Gitlab::Metrics::Dashboard::Validator::PostSchemaValidator6523 #validate6524 with no project and dashboard_path provided6525 unique local metric_ids6526 returns empty array6527 duplicate local metrics_ids6528 returns error6529 with project and dashboard_path6530 with unique metric identifiers6531 returns empty array6532 duplicate metric identifiers in database6533 with different dashboard_path6534 returns error6535 with same dashboard_path6536 returns empty array6537Mutations::Boards::Issues::IssueMoveList6538 #resolve6539 when we only pass from_list_id6540 raises an error6541 when we only pass to_list_id6542 raises an error6543 when required arguments are missing6544 raises an error6545 when the board ID is wrong6546 raises an error6547 when user have access to resources6548 moves and repositions issue6549 when user cannot update issue6550 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable6551Gitlab::VisibilityLevelChecker6552 #level_restricted?6553 when visibility level is allowed6554 returns false with nil for visibility level6555 when visibility level is restricted6556 for public project6557 for non-admin user6558 returns true and visibility name6559 for admin user6560 returns false and a nil visibility level6561 overridden visibility6562 when restricted6563 returns true and visibility name6564 when misspelled6565 returns false with nil for visibility level6566 when import_data is missing6567 returns false with nil for visibility level6568Banzai::Pipeline::PlainMarkdownPipeline6569 backslash escapes6570 CommonMark tests6571 converts all reference punctuation to literals6572 ensure we handle all the GitLab reference characters6573 does not convert non-reference punctuation to spans6574 does not convert other characters to literals6575 backslash escapes do not work in code blocks, code spans, autolinks, or raw HTML6576 markdown: "`` \\@\\! ``", expected: "<code>\\@\\!</code>"6577 is expected to include "<code>\\@\\!</code>"6578 markdown: " \\@\\!", expected: "<code>\\@\\!\n</code>"6579 is expected to include "<code>\\@\\!\n</code>"6580 markdown: "~~~\n\\@\\!\n~~~", expected: "<code>\\@\\!\n</code>"6581 is expected to include "<code>\\@\\!\n</code>"6582 markdown: "<http://example.com?find=\\@>", expected: "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6583 is expected to include "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6584 markdown: "<a href=\"/bar\\@)\">", expected: "<a href=\"/bar%5C@)\">"6585 is expected to include "<a href=\"/bar%5C@)\">"6586 work in all other contexts, including URLs and link titles, link references, and info strings in fenced code blocks6587 markdown: "[foo](/bar\\@ \"\\@title\")", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6588 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6589 markdown: "[foo]\n\n[foo]: /bar\\@ \"\\@title\"", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6590 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6591 markdown: "``` foo\\@bar\nfoo\n```", expected: "<code lang=\"foo@bar\">foo\n</code>"6592 is expected to include "<code lang=\"foo@bar\">foo\n</code>"6593Analytics::CycleAnalytics::ProjectValueStream6594 is not custom6595 associations6596 is expected to belong to project required:6597 is expected to have many stages6598 validations6599 is expected to validate that :project cannot be empty/falsy6600 is expected to validate that :name cannot be empty/falsy6601 is expected to validate that the length of :name is at most 1006602 validates uniqueness of name6603 .build_default_value_stream6604 builds the default value stream6605Gitlab::Ci::Pipeline::Expression::Lexeme::Pattern6606 .build6607 creates a new instance of the token6608 raises an error if pattern is invalid6609 .type6610 is a value lexeme6611 .scan6612 correctly identifies a pattern token6613 does not allow to use an empty pattern6614 support single flag6615 support multiple flags6616 ignores unsupported flags6617 is an eager scanner for regexp boundaries6618 does not match on escaped regexp boundaries6619 recognizes \ as an escape character for /6620 does not recognize \ as an escape character for $6621 #evaluate6622 returns a regular expression6623 raises error if evaluated regexp is not valid6624AppearancesHelper6625 .current_appearance6626 memoizes empty appearance6627 memoizes custom appearance6628 #header_message6629 returns nil when header message field is not set6630 when header message is set6631 includes current message6632 #footer_message6633 returns nil when footer message field is not set6634 when footer message is set6635 includes current message6636 #brand_image6637 when there is a logo6638 returns a path6639 when there is a logo but no associated upload6640 falls back to using the original path6641 #brand_title6642 returns the default title when no appearance is present6643Bitbucket::Representation::Repo6644 #has_wiki?6645 is expected to be falsey6646 is expected to be truthy6647 #name6648 is expected to eq "test"6649 #valid?6650 is expected to be falsey6651 is expected to be truthy6652 #full_name6653 is expected to eq "test_full"6654 #description6655 is expected to eq "desc"6656 #issues_enabled?6657 is expected to be falsey6658 is expected to be truthy6659 #owner_and_slug6660 is expected to eq ["ben", "test"]6661 #owner6662 is expected to eq "ben"6663 #slug6664 is expected to eq "test"6665 #clone_url6666 builds url6667Ci::DropPipelineWorker6668 #perform6669 calls delegates to the service6670 behaves like an idempotent worker6671 is labeled as idempotent6672 performs multiple times sequentially without raising an exception6673 executes the service6674Gitlab::TimeTrackingFormatter6675 #parse6676 positive durations6677 is expected to eq 120006678 negative durations6679 is expected to eq -120006680 durations with months6681 uses our custom conversions6682 #output6683 time_tracking_limit_to_hours setting is true6684 is expected to eq "49h 40m"6685 time_tracking_limit_to_hours setting is false6686 is expected to eq "1w 1d 1h 40m"6687 handles negative time input6688 is expected to eq "-1w 1d 1h 40m"6689Gitlab::Serverless::Service6690 exposes methods extracting data from the attributes hash6691 returns nil for missing attributes6692 #description6693 extracts the description in knative 7 format if available6694 extracts the description in knative 5/6 format if 7 is not available6695 #url6696 returns proxy URL if cluster has serverless domain6697 returns the URL from the knative 6/7 format6698 returns the URL from the knative 5 format6699DependencyProxy::Manifest6700 relationships6701 is expected to belong to group required:6702 behaves like having unique enum values6703 has unique values in "status"6704 validations6705 is expected to validate that :group cannot be empty/falsy6706 is expected to validate that :file cannot be empty/falsy6707 is expected to validate that :file_name cannot be empty/falsy6708 is expected to validate that :digest cannot be empty/falsy6709 is expected to validate that :status cannot be empty/falsy6710 file is being stored6711 when existing object has local store6712 behaves like mounted file in local store6713 is stored locally6714 when direct upload is enabled6715 behaves like mounted file in object store6716 is stored remotely6717 .find_or_initialize_by_file_name_or_digest6718 no manifest exists6719 initializes a manifest6720 manifest exists and matches file_name6721 is expected to eq #<DependencyProxy::Manifest id: 3, created_at: "2021-09-22 10:44:46.319847550 +0000", updated_at: "20...sha256:d0710affa17fad5f466a70159cc458227bd25d4afb3...", content_type: [FILTERED], status: "default">6722 manifest exists and matches digest6723 is expected to eq #<DependencyProxy::Manifest id: 4, created_at: "2021-09-22 10:44:46.421438727 +0000", updated_at: "20...sha256:d0710affa17fad5f466a70159cc458227bd25d4afb3...", content_type: [FILTERED], status: "default">6724Gitlab::Ci::Config::Entry::Inherit::Default6725 validations6726 config: true, valid: true6727 is expected to eq true6728 config: false, valid: true6729 is expected to eq true6730 config: ["image"], valid: true6731 is expected to eq true6732 config: ["unknown"], valid: false6733 is expected to eq false6734 config: [:image], valid: false6735 is expected to eq false6736 config: [true], valid: false6737 is expected to eq false6738 config: "string", valid: false6739 is expected to eq false6740 #inherit?6741 config: true, inherit: true6742 is expected to eq true6743 config: false, inherit: false6744 is expected to eq false6745 config: ["image"], inherit: true6746 is expected to eq true6747 config: ["before_script"], inherit: false6748 is expected to eq false6749Gitlab::OmniauthInitializer6750 #execute6751 configures providers from array6752 allows "args" array for app_id and app_secret6753 passes app_id and app_secret as additional arguments6754 passes "args" hash as symbolized hash argument6755 normalizes a String strategy_class6756 allows a class to be specified in strategy_class6757 throws an error for an invalid strategy_class6758 configures fail_with_empty_uid for shibboleth6759 configures remote_sign_out_handler proc for authentiq6760 configures on_single_sign_out proc for cas36761 configures defaults for google_oauth26762Ci::AuthJobFinder6763 #execute!6764 is expected to eq #<Ci::Build status: "running", finished_at: nil, trace: nil, created_at: "2021-09-22 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 334, stage_id: 292, tag_list: nil>6765 raises error if the job is not running6766 raises error if the job is erased6767 raises error if the the project is missing6768 raises error if the the project is being removed6769 with wrong job token6770 is expected to be nil6771 #execute6772 when job is not running6773 is expected to be nil6774 when job is running6775 sets ci_job_token_scope on the job user6776 when feature flag ci_scoped_job_token is disabled6777 does not set ci_job_token_scope on the job user6778Gitlab::Ci::Reports::Security::Reports6779 #get_report6780 when report type is sast6781 is expected to eq "sast"6782 is expected to eq 2021-09-22 10:44:52.830548438 +00006783 initializes a new report and returns it6784 when report type is already allocated6785 does not initialize a new report6786 #findings6787 is expected to contain exactly #<Gitlab::Ci::Reports::Security::Finding:0x00007f04b9caaf48 @compare_key="find_sec_bugs_type:PREDICTA...y_finding_signatures_enabled=false, @project_fingerprint="2022699924e21aad89e1df0a59c227aa6e9234fe"> and #<Gitlab::Ci::Reports::Security::Finding:0x00007f04b551afe8 @compare_key="find_sec_bugs_type:PREDICTA...y_finding_signatures_enabled=false, @project_fingerprint="2022699924e21aad89e1df0a59c227aa6e9234fe">6788 #violates_default_policy_against?6789 when the target_reports is `nil`6790 with severity levels matching the existing vulnerabilities6791 is expected to equal true6792 without any severity levels matching the existing vulnerabilities6793 is expected to equal false6794 when the target_reports is not `nil`6795 when a report has a new unsafe vulnerability6796 is expected to equal true6797 with severity levels matching the existing vulnerabilities6798 is expected to equal true6799 with vulnerabilities_allowed higher than the number of new vulnerabilities6800 is expected to equal false6801 without any severity levels matching the existing vulnerabilities6802 is expected to equal false6803 when none of the reports have a new unsafe vulnerability6804 is expected to equal false6805DescriptionVersion6806 associations6807 is expected to belong to issue required:6808 is expected to belong to merge_request required:6809 validations6810 exactly_one_issuable6811 issue_id: nil, merge_request_id: 1, valid?: true6812 is expected to eq true6813 issue_id: 1, merge_request_id: nil, valid?: true6814 is expected to eq true6815 issue_id: nil, merge_request_id: nil, valid?: false6816 is expected to eq false6817 issue_id: 1, merge_request_id: 1, valid?: false6818 is expected to eq false6819API::Helpers::RelatedResourcesHelpers6820 #expose_path6821 empty relative URL root6822 returns the existing path6823 slash relative URL root6824 returns the existing path6825 with relative URL root6826 returns the existing path6827 #expose_url6828 respects the protocol if it is HTTP6829 respects the protocol if it is HTTPS6830 accepts the host if it contains an underscore6831 accepts port to be nil6832 includes port if provided6833 includes the relative_url before the path if it is set6834 includes the path after the host6835AwardEmojis::ToggleService6836 #execute6837 when user has awarded an emoji6838 calls AwardEmojis::DestroyService6839 destroys an AwardEmoji6840 returns the result of DestroyService#execute6841 when user has not awarded an emoji6842 calls AwardEmojis::AddService6843 creates an AwardEmoji6844 returns the result of AddService#execute6845Releases::EvidencePipelineFinder#execute6846 when the tag is passed6847 returns the evidence pipeline6848 when the ref is passed6849 returns the evidence pipeline6850 empty params6851 returns nil6852 params[:evidence_pipeline] is present6853 returns the passed evidence pipeline6854Packages::PackageFileFinder6855 #execute6856 behaves like package file finder examples6857 is expected to eq #<Packages::PackageFile id: 445, package_id: 323, created_at: "2021-09-22 10:45:01.756998000 +0000", ...verification_checksum: nil, verification_state: 0, verification_started_at: nil, new_file_path: nil>6858 with file_name_like6859 is expected to eq #<Packages::PackageFile id: 445, package_id: 323, created_at: "2021-09-22 10:45:01.756998000 +0000", ...verification_checksum: nil, verification_state: 0, verification_started_at: nil, new_file_path: nil>6860 with unknown file_name6861 is expected to be nil6862 #execute!6863 behaves like package file finder examples6864 is expected to eq #<Packages::PackageFile id: 445, package_id: 323, created_at: "2021-09-22 10:45:01.756998000 +0000", ...verification_checksum: nil, verification_state: 0, verification_started_at: nil, new_file_path: nil>6865 with file_name_like6866 is expected to eq #<Packages::PackageFile id: 445, package_id: 323, created_at: "2021-09-22 10:45:01.756998000 +0000", ...verification_checksum: nil, verification_state: 0, verification_started_at: nil, new_file_path: nil>6867 with unknown file_name6868 is expected to raise ActiveRecord::RecordNotFound6869Gitlab::Changelog::Generator6870 #add6871 generates the Markdown for the first release6872 generates the Markdown for a newer release6873 generates the Markdown for a patch release6874 generates the Markdown for an old release6875Mutations::MergeRequests::SetSubscription6876 is expected to require graphql authorizations :update_subscription6877 when user does not have access to the project6878 behaves like a subscribeable not accessible graphql resource6879 raises an error if the resource is not accessible to the user6880 when user is developer member of the project6881 behaves like a subscribeable graphql resource6882 subscribes to the resource6883 when passing subscribe as false6884 unsubscribes from the discussion6885 when the project is public6886 behaves like a subscribeable graphql resource6887 subscribes to the resource6888 when passing subscribe as false6889 unsubscribes from the discussion6890MergeRequests::AddContextService6891 #execute6892 when admin mode is enabled6893 adds context commit6894 when admin mode is disabled6895 doesn't add context commit6896 when user doesn't have permission to update merge request6897 doesn't add context commit6898 when the commits array is empty6899 doesn't add context commit6900Metrics::UsersStarredDashboards::CreateService6901 .execute6902 with anonymous user6903 behaves like prevented starred dashboard creation6904 returns error response6905 with reporter user6906 incorrect dashboard_path6907 behaves like prevented starred dashboard creation6908 returns error response6909 with valid dashboard path6910 creates starred dashboard and returns success response6911 Metrics::UsersStarredDashboard has validation errors6912 returns error response6913Gitlab::Changelog::Release6914 #to_markdown6915 when there are no entries6916 includes a notice about the lack of entries6917 when all data is present6918 includes all data6919 when no merge request is present6920 doesn't include a merge request link6921 when the author is not a contributor6922 doesn't include the author6923 when the author should always be credited6924 includes the author6925 when a category has no entries6926 isn't included in the output6927 #header_start_position6928 returns a regular expression for finding the start of a release section6929JobArtifactReportEntity6930 #as_json6931 exposes file_type6932 exposes file_format6933 exposes size6934 exposes download path6935RepositoryRemoveRemoteWorker6936 #perform6937 returns nil when project does not exist6938 when project exists6939 does nothing when cannot obtain lease6940 does nothing when obtain a lease6941Integrations::Campfire6942 Validations6943 when integration is active6944 is expected to validate that :token cannot be empty/falsy6945 when integration is inactive6946 is expected not to validate that :token cannot be empty/falsy6947 #execute6948 calls Campfire API to get a list of rooms and speak in a room6949 calls Campfire API to get a list of rooms but shouldn't speak in a room6950BulkImportService6951 #execute6952 creates bulk import6953 creates bulk import entities6954 creates bulk import configuration6955 enqueues BulkImportWorker6956 returns success ServiceResponse6957 returns ServiceResponse with error if validation fails6958Constraints::AdminConstrainer6959 #matches6960 application setting :admin_mode is enabled6961 when user is a regular user6962 forbids access6963 when user is an admin6964 admin mode is disabled6965 forbids access6966 admin mode is enabled6967 allows access6968 application setting :admin_mode is disabled6969 when user is a regular user6970 forbids access6971 when user is an admin6972 allows access6973AlertManagement::AlertUserMention6974 associations6975 is expected to belong to alert_management_alert required:6976 is expected to belong to note required:6977 behaves like has user mentions6978 #has_mentions?6979 when no mentions6980 returns false6981 when mentioned_users_ids not null6982 returns true6983 when mentioned projects6984 returns true6985 when mentioned groups6986 returns true6987Sidebars::Projects::Menus::ProjectInformationMenu6988 #container_html_options6989 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007f04622ff248 @expected={:class=>"shortcuts-project-information has-sub-items"}>6990 Menu Items6991 Labels6992 is expected not to be nil6993 when merge requests are disabled6994 is expected not to be nil6995 when issues are disabled6996 is expected not to be nil6997 when merge requests and issues are disabled6998 is expected to be nil6999 Members7000 is expected not to be nil7001 when the user does not have access7002 is expected to be nil7003Ci::PipelineArtifacts::CreateQualityReportWorker7004 #perform7005 when pipeline exists7006 calls pipeline codequality report service7007 behaves like an idempotent worker7008 is labeled as idempotent7009 performs multiple times sequentially without raising an exception7010 does not create another pipeline artifact if already has one7011 when pipeline does not exist7012 does not call pipeline codequality report service7013Gitlab::SlashCommands::IssueShow7014 #execute7015 the issue exists7016 returns the issue7017 when its reference is given7018 shows the issue7019 the issue does not exist7020 returns not found7021 .match7022 matches the iid7023 accepts a reference7024Gitlab::Kubernetes::KubectlCmd7025 .delete7026 constructs string properly7027 .apply_file7028 without optional args7029 requires filename to be present7030 constructs string properly7031 with optional args7032 constructs command properly with many args7033 constructs command properly with single arg7034 .api_resources7035 constructs string properly7036 .delete_crds_from_group7037 constructs string properly7038Groups::UserGroupsFinder7039 #execute7040 returns all groups where the user is a direct member7041 when target_user is nil7042 is expected to be empty7043 when current_user is nil7044 is expected to be empty7045 when permission is :create_projects7046 is expected to match [#<Group id:2587 @a-public-maintainer>, #<Group id:2585 @b-private-maintainer>, #<Group id:2586 @c-public-developer>]7047 when paginatable_namespace_drop_down_for_project_creation feature flag is disabled7048 ignores project creation scope and returns all groups where the user is a direct member7049 when search is provided7050 is expected to match [#<Group id:2587 @a-public-maintainer>, #<Group id:2585 @b-private-maintainer>]7051 when search is provided7052 is expected to match [#<Group id:2587 @a-public-maintainer>, #<Group id:2585 @b-private-maintainer>]7053Types::UntrustedRegexp7054 is expected to eq "UntrustedRegexp"7055 is expected to eq "A regexp containing patterns sourced from user input"7056 .coerce_input7057 input: ".*", expected_result: ".*"7058 with input .*7059 is expected to eq ".*"7060 input: "(.*)", expected_result: "(.*)"7061 with input (.*)7062 is expected to eq "(.*)"7063 input: "[test*]+", expected_result: "[test*]+"7064 with input [test*]+7065 is expected to eq "[test*]+"7066 input: "*v1", expected_result: :raise_error7067 with input *v17068 raises a coercion error7069 input: "[test*", expected_result: :raise_error7070 with input [test*7071 raises a coercion error7072 input: "test*+", expected_result: :raise_error7073 with input test*+7074 raises a coercion error7075 .coerce_result7076 input: "1", expected_result: "1"7077 with input 17078 is expected to eq "1"7079 input: 1, expected_result: "1"7080 with input 17081 is expected to eq "1"7082 input: true, expected_result: "true"7083 with input true7084 is expected to eq "true"7085BulkImports::Common::Transformers::UserReferenceTransformer7086 #transform7087 when user can be found by email7088 sets found user_id and removes user key7089 when user cannot be found by email7090 sets found user_id and removes user key7091 when there is no data to transform7092 returns7093 when custom reference is provided7094 updates provided reference7095 updates provided reference7096ChatName7097 is expected to belong to integration required:7098 is expected to belong to user required:7099 is expected to validate that :user cannot be empty/falsy7100 is expected to validate that :integration cannot be empty/falsy7101 is expected to validate that :team_id cannot be empty/falsy7102 is expected to validate that :chat_id cannot be empty/falsy7103 is expected to validate that :user_id is case-sensitively unique within the scope of :service_id7104 is expected to validate that :chat_id is case-sensitively unique within the scope of :service_id and :team_id7105 is removed when the project is deleted7106 #update_last_used_at7107 updates the last_used_at timestamp7108 does not update last_used_at if it was recently updated7109Namespaces::OnboardingIssueCreatedWorker#perform7110 behaves like records an onboarding progress action7111 is expected to receive execute({:action=>:issue_created}) 1 time7112 behaves like does not record an onboarding progress action7113 is expected not to receive new(*(any args)) 0 times7114 behaves like an idempotent worker7115 is labeled as idempotent7116 performs multiple times sequentially without raising an exception7117 sets the onboarding progress action7118projects/generic_commit_statuses/_generic_commit_status.html.haml7119DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/icons/_icon_timer.svg (called from block in custom_icon at /builds/gitlab-org/gitlab/app/helpers/icons_helper.rb:14)7120DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/icons/_icon_timer.svg (called from block in custom_icon at /builds/gitlab-org/gitlab/app/helpers/icons_helper.rb:14)7121DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/icons/_icon_timer.svg (called from block in custom_icon at /builds/gitlab-org/gitlab/app/helpers/icons_helper.rb:14)7122 won't include a column with a link to its pipeline by default7123DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: shared/icons/_icon_timer.svg (called from block in custom_icon at /builds/gitlab-org/gitlab/app/helpers/icons_helper.rb:14)7124 can include a column with a link to its pipeline7125AlertManagement::AlertPresenter7126 #issue_description7127 with an empty payload7128 is expected to eq "**Start time:** 22 September 2021, 10:45AM (UTC) \n**Severity:** critical \n**GitLab alert:** http://localhost/namespace1470/project1797/-/alert_management/2/details\n"7129 with optional alert attributes7130 is expected to eq "**Start time:** 22 September 2021, 10:45AM (UTC) \n**Severity:** critical \n**full_query:** `metri...lis. \n**GitLab alert:** http://localhost/namespace1470/project1797/-/alert_management/3/details\n"7131 with incident markdown7132 is expected to eq "**Start time:** 22 September 2021, 10:45AM (UTC) \n**Severity:** critical \n**GitLab alert:** http...localhost/namespace1470/project1797/-/alert_management/2/details\n\n\n---\n\n**`markdown example`**"7133 with metrics_dashboard_url7134 is expected to eq "**Start time:** 22 September 2021, 10:45AM (UTC) \n**Severity:** critical \n**GitLab alert:** http.../localhost/namespace1470/project1797/-/alert_management/2/details\n\n[](https://gitlab.com/metrics)"7135 #start_time7136 formats the start time of the alert7137 #details_url7138 returns the details URL7139 #details7140 renders the payload as inline hash7141Gitlab::Sherlock::FileSample7142 #id7143 returns the ID7144 #file7145 returns the file path7146 #line_samples7147 returns the line samples7148 #events7149 returns the total number of events7150 #duration7151 returns the total execution time7152 #relative_path7153 returns the relative path7154 #to_param7155 returns the sample ID7156 #source7157 returns the contents of the file7158PipelineHooksWorker7159 #perform7160 when pipeline exists7161 executes hooks for the pipeline7162 when pipeline does not exist7163 does not raise exception7164 behaves like worker with data consistency7165 .get_data_consistency_feature_flag_enabled?7166 returns true7167 .get_data_consistency7168 returns correct data consistency7169Gitlab::Ci::Parsers::Security::Validators::SchemaValidator7170 report_type: "sast", expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]}7171 #valid?7172 when given data is invalid according to the schema7173 is expected to be falsey7174 when given data is valid according to the schema7175 is expected to be truthy7176 #errors7177 is expected to eq ["root is missing required keys: vulnerabilities"]7178 report_type: :sast, expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]}7179 #valid?7180 when given data is invalid according to the schema7181 is expected to be falsey7182 when given data is valid according to the schema7183 is expected to be truthy7184 #errors7185 is expected to eq ["root is missing required keys: vulnerabilities"]7186 report_type: :secret_detection, expected_errors: ["root is missing required keys: vulnerabilities"], valid_data: {"version"=>"10.0.0", "vulnerabilities"=>[]}7187 #valid?7188 when given data is invalid according to the schema7189 is expected to be falsey7190 when given data is valid according to the schema7191 is expected to be truthy7192 #errors7193 is expected to eq ["root is missing required keys: vulnerabilities"]7194Gitlab::Config::Entry::Simplifiable7195 .strategy7196 defines entry strategies7197 setting strategy by a condition7198 when first strategy should be used7199 attemps to load a first strategy7200 when second strategy should be used7201 attemps to load a second strategy7202 when neither one is a valid strategy7203 instantiates an unknown strategy7204 when a unknown strategy class is not defined7205 raises an error when being initialized7206DevOpsReportHelper7207 #devops_score_metrics7208 is expected to eq {:scoreLevel=>{:icon=>"status-alert", :label=>"Moderate", :variant=>"warning"}, :value=>"55.9"}7209 is expected to eq {:leadInstance=>"9.3", :score=>"13.3", :scoreLevel=>{:label=>"Low", :variant=>"muted"}, :title=>"Issues created per active user", :usage=>"1.2"}7210 is expected to eq {:leadInstance=>"30.3", :score=>"92.7", :scoreLevel=>{:label=>"High", :variant=>"success"}, :title=>"Comments created per active user", :usage=>"28.1"}7211 is expected to eq {:leadInstance=>"5.2", :score=>"62.4", :scoreLevel=>{:label=>"Moderate", :variant=>"neutral"}, :title=>"Boards created per active user", :usage=>"3.3"}7212 is expected to eq "2021-04-03 02:01"7213 with low average score7214 is expected to eq {:scoreLevel=>{:icon=>"status-failed", :label=>"Low", :variant=>"danger"}, :value=>"2.0"}7215 with high average score7216 is expected to eq {:scoreLevel=>{:icon=>"status_success_solid", :label=>"High", :variant=>"success"}, :value=>"82.0"}7217 with blank metrics7218 is expected to eq {}7219Releases::Source7220 .all7221 returns all formats of sources7222 #url7223 returns zip archived source url7224 when ref is directory structure7225 converts slash to dash7226BlobViewer::License7227 #license7228 returns the blob project repository license7229 #render_error7230 when there is no license7231 returns :unknown_license7232 when there is a license7233 returns nil7234Mutations::CustomEmoji::Destroy7235 field tests7236 is expected to have graphql arguments :id7237 is expected to have graphql field :custom_emoji7238 #resolve7239 when the user7240 has no permissions7241 behaves like does not delete custom emoji7242 raises exception7243 when the user is developer and not the owner of custom emoji7244 behaves like does not delete custom emoji7245 raises exception7246 when user7247 is maintainer7248 behaves like deletes custom emoji7249 returns deleted custom emoji7250 is owner7251 behaves like deletes custom emoji7252 returns deleted custom emoji7253 is developer and creator of the emoji7254 behaves like deletes custom emoji7255 returns deleted custom emoji7256RuboCop::Cop::Migration::DropTable7257 when in deployment migration7258 with drop_table DSL method7259 when in down method7260 does not register an offense7261 when in up method7262 registers an offense7263 when in change method7264 registers an offense7265 with DROP TABLE SQL literal7266 does not register an offense7267 when in up method7268 registers an offense7269 when in change method7270 registers an offense7271 when in post-deployment migration7272 registers no offense7273 when outside of migration7274 registers no offense7275Mattermost::Team7276 #all7277 for valid request7278 returns teams7279 for error message7280 raises an error with message7281 #create7282 for a new team7283 returns the new team7284 for existing team7285 raises an error with message7286 #delete7287 for an existing team7288 returns team status7289 for an unknown team7290 raises an error with message7291Gitlab::Ci::Status::Build::Erased7292 #illustration7293 is expected to include :image, :size, and :title7294 .matches?7295 when build is erased7296 is a correct match7297 when build is not erased7298 does not match7299ObjectStorage::BackgroundMoveWorker7300 for LFS7301 when object storage is enabled7302 uploads object to storage7303 when background upload is disabled7304 is skipped7305 when object storage is disabled7306 doesn't migrate files7307 for job artifacts7308 when local storage is used7309 and remote storage is defined7310 migrates file to remote storage7311 for uploads7312 when local storage is used7313 and remote storage is defined7314 supports using the model7315 migrates file to remote storage7316 supports using the Upload7317 migrates file to remote storage7318Snippets::ScheduleBulkRepositoryShardMovesWorker7319 behaves like schedules bulk repository shard moves7320 #perform7321 is labeled as idempotent7322 performs multiple times sequentially without raising an exception7323 schedules container repository storage moves7324Gitlab::UsageDataCounters::ProductivityAnalyticsCounter7325 behaves like a redis usage counter7326 .count(views)7327 increments the ProductivityAnalytics views counter by 17328 .read(views)7329 returns the total number of views events7330 behaves like a redis usage counter with totals7331 totals7332 can report all totals7333 unknown events7334 cannot increment7335 cannot read7336Gitlab::GithubImport::MarkdownText7337 .format7338 formats the text7339 #to_s7340 returns the text when the author was found7341 returns the text when the author has no login7342 returns empty text when it receives nil7343 returns the text with an extra header when the author was not found7344 cleans invalid chars7345Gitlab::Middleware::HandleIpSpoofAttackError7346 passes through the response from a valid upstream7347 translates an ActionDispatch::IpSpoofAttackError to a 400 response7348 passes through the exception raised by an invalid upstream7349Environments::CanaryIngress::UpdateWorker7350 #perform7351 executes the update service7352 when an environment does not exist7353 does not execute the update service7354Resolvers::UserResolver7355 #resolve7356 raises an ArgumentError when both an ID and username are provided7357 when neither an ID or a username is provided7358 raises an ArgumentError7359 by username7360 returns the correct user7361 by ID7362 returns the correct user7363ProjectHookPresenter7364 #logs_details_path7365 is expected to eq "/namespace1483/project1808/-/hooks/7/hook_logs/1"7366 #logs_retry_path7367 is expected to eq "/namespace1484/project1809/-/hooks/8/hook_logs/2"7368Gitlab::Metrics::Dashboard::Stages::GrafanaFormatter7369 #transform!7370 when the query and resources are configured correctly7371 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=>""}]}]}7372 when a panelId is not included in the grafana_url7373 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=>""}]}]}7374 when there is also no valid panel in the dashboard7375 raises a processing error7376 when an input is invalid7377 raises a processing error7378ClusterWaitForAppUpdateWorker7379 runs CheckUpgradeProgressService when application is found7380 does not run CheckUpgradeProgressService when application is not found7381Gitlab::UsageDataCounters::BaseCounter7382 .fetch_supported_event7383 returns the matching event7384 when event is unknown7385 is expected to be nil7386 when prefix does not match the event name7387 is expected to be nil7388Gitlab::Git::LfsPointerFile7389 #size7390 counts the bytes7391 handles non ascii data7392 #sha2567393 hashes the content correctly7394 #pointer7395 starts with the LFS version7396 includes sha2567397 ends with the size7398Types::ContainerRepositoryDetailsType7399 is expected to eq "ContainerRepositoryDetails"7400 is expected to eq "Details of a container repository"7401 is expected to require graphql authorizations :read_container_image7402 is expected to have graphql fields :id, :name, :path, :location, :created_at, :updated_at, :expiration_policy_started_at, :status, :tags_count, :can_delete, :expiration_policy_cleanup_status, :tags, and :project7403 tags field7404 returns tags connection type7405DesignManagement::CopyDesignCollectionWorker7406 #perform7407 calls DesignManagement::CopyDesignCollection::CopyService7408 logs if there was an error calling the service7409 behaves like an idempotent worker7410 is labeled as idempotent7411 performs multiple times sequentially without raising an exception7412 is expected to receive perform(*(any args)) 2 times7413Projects::Prometheus::Metrics::DestroyService7414 destroys metric7415 when metric has a prometheus alert associated7416 schedules a prometheus alert update7417projects/services/edit7418 is expected not to have text "Recent Deliveries"7419 integration using WebHooks7420 is expected to have text "Recent Deliveries"7421Gitlab::StringPlaceholderReplacer7422 .render_url7423 returns the nil if the string is blank7424 returns the string if the placeholder regex7425 returns the string if no block given7426 when all params are valid7427 replaces each placeholders with the block result7428 does not replace the placeholder if the block result is nil7429Gitlab::Database::Migrations::Observers::TotalDatabaseSizeChange7430 records the size change7431 out of order calls7432 does not record anything if before size is unknown7433 does not record anything if after size is unknown7434GitHelper7435 #short_sha7436 is expected to eq "d4e043f6"7437 #strip_signature7438 strips PGP SIGNATURE7439 is expected to eq "Version 1.69.0\n\n"7440 strips PGP MESSAGE7441 is expected to eq "Version 1.69.0\n\n"7442 strips SIGNED MESSAGE7443 is expected to eq "this is Roger's signed tag\n\n"7444RuboCop::Cop::Scalability::FileUploads7445 with required params7446 detects File in types array7447 detects File as type argument7448 with optional params7449 detects File in types array7450 detects File as type argument7451TestReportEntity7452 #as_json7453 contains the total time7454 contains the counts7455 contains the test suites7456Gitlab::Usage::Metrics::NamesSuggestions::RelationParsers::Constraints7457 #accept7458 builds correct constraints description7459Gitlab::Usage::Metrics::Instrumentations::RedisMetric7460 raises an exception if event option is not present7461 raises an exception if counter_class option is not present7462 behaves like a correct instrumented metric value7463 has correct value7464Packages::GroupOrProjectPackageFinder7465 execute7466 is expected to raise NotImplementedError7467 execute!7468 is expected to raise NotImplementedError7469SelfMonitoringProjectCreateWorker7470 #perform7471 behaves like executes service7472 runs the service7473 .in_progress?7474 behaves like returns in_progress based on Sidekiq::Status7475 returns true when job is enqueued7476 returns false when job does not exist7477Preloaders::MergeRequestDiffPreloader7478 does not trigger N+1 queries7479Resolvers::Ci::TestSuiteResolver7480 #resolve7481 when pipeline has builds with test reports7482 renders test suite data7483 when pipeline has no builds that matches the given build_ids7484 returns nil7485Gitlab::Metrics::Subscribers::ActionView7486 #render_template7487 tracks rendering of a template7488 observes view rendering time7489Resolvers::ProjectPipelineStatisticsResolver7490 is expected to have nullable GraphQL type PipelineAnalytics7491 #resolve7492 returns the pipelines statistics for a given project7493 when the user does not have access to the CI/CD analytics data7494 returns nil7495Gitlab::ImportExport::WikiRepoSaver7496 bundle a wiki Git repo7497 bundles the repo successfully7498 when the repo is empty7499 bundles the repo successfully7500Gitlab::Database::Reindexing7501 .perform7502 delegates to Coordinator7503 .cleanup_leftovers!7504 drops both leftover indexes7505Presentable7506 #present7507 returns a presenter7508 takes optional attributes7509TreeEntryPresenter7510 .web_url7511 is expected to eq "http://localhost/namespace1503/project1828/-/tree/b83d6e391c22777fca1ed3012fce84f633d7fed0/bar"7512 #web_path7513 is expected to eq "/namespace1504/project1829/-/tree/b83d6e391c22777fca1ed3012fce84f633d7fed0/bar"7514Gitlab::Ci::Config::Entry::Paths7515 validations7516 when entry config value is valid7517 #value7518 returns key value7519 #valid?7520 is valid7521 when entry value is not valid7522 #errors7523 saves errors7524ConfigLint7525 errors out if any bash scripts have errors7526 passes if all scripts are fine7527config_lint rake task7528 runs lint on shell scripts7529Packages::Helm::ExtractFileMetadataService7530 with a valid file7531 is expected to eq {"apiVersion"=>"v2", "description"=>"File, Block, and Object Storage Services for your Cloud-Native E...ok-logo.svg", "name"=>"rook-ceph", "sources"=>["https://github.com/rook/rook"], "version"=>"v1.5.8"}7532 without Chart.yaml7533 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"7534 with Chart.yaml at root7535 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"7536 with an invalid YAML7537 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Error while parsing Chart.yaml: (<unknown>): did not find expected node content while parsing a flow node at line 2 column 1"7538Gitlab::View::Presenter::Factory7539 #initialize7540 without optional parameters7541 takes a subject and optional params7542 with optional parameters7543 takes a subject and optional params7544 #fabricate!7545 detects the presenter based on the given subject7546 uses the presenter_class if given on #initialize7547ObjectPool::JoinWorker7548 #perform7549 when the pool is not joinable7550 doesn't raise an error7551 when the pool has been joined before7552 succeeds in joining7553Projects::CiFeatureUsage7554 associations7555 is expected to belong to project required:7556 behaves like having unique enum values7557 has unique values in "feature"7558 validations7559 is expected to validate that :project cannot be empty/falsy7560 is expected to validate that :feature cannot be empty/falsy7561 .insert_usage7562 when data is not a duplicate7563 creates a new record7564 when data is a duplicate7565 does not create a new record7566LinkedProjectIssueEntity7567 issue_link_type7568 is expected to include {:link_type => "relates_to"}7569Gitlab::Graphql::Pagination::Keyset::LastItems7570 when the `count` parameter is nil7571 returns a single record7572 when the `count` parameter is given7573 returns an array7574Packages::Rubygems::ExtractionWorker7575 #perform7576 processes the gem7577 handles a processing failure7578 handles processing an unaccounted for error7579 returns when there is no package file7580 returns without action7581Gitlab::Ci::Status::Scheduled7582 #text7583 is expected to eq "delayed"7584 #label7585 is expected to eq "delayed"7586 #icon7587 is expected to eq "status_scheduled"7588 #favicon7589 is expected to eq "favicon_status_scheduled"7590 #group7591 is expected to eq "scheduled"7592 #details_path7593 is expected to be nil7594Gitlab::Ci::Config::Normalizer::MatrixStrategy7595 .applies_to?7596 with hash that has :matrix key7597 is expected to be truthy7598 with hash that does not have :matrix key7599 is expected to be falsey7600 with a number7601 is expected to be falsey7602 .build_from7603 is expected to eq 47604 has attributes7605 has parallelized name7606Clusters::Cleanup::ServiceAccountWorker7607 #perform7608 when cluster.cleanup_status is cleanup_removing_service_account7609 calls Clusters::Cleanup::ServiceAccountService7610 when cluster.cleanup_status is not cleanup_removing_service_account7611 does not call Clusters::Cleanup::ServiceAccountService7612Database::PreventCrossJoins7613 when running in a default scope7614 when only non-CI tables are used7615 does not raise exception7616 when only CI tables are used7617 does not raise exception7618 when CI and non-CI tables are used7619 raises exception7620 when allow_cross_joins_across_databases is used7621 does not raise exception7622 when allow_cross_joins_across_databases is used7623 does not raise exception7624BlobViewer::Markup7625 #banzai_render_context7626 returns context needed for banzai rendering7627 when blob does respond to rendered_markup7628 does sets rendered key7629Types::MemberInterface7630 exposes the expected fields7631 .resolve_type7632 for project member7633 is expected to equal Types::ProjectMemberType7634 for group member7635 is expected to equal Types::GroupMemberType7636 for an unkown type7637 raises an error7638Flutter.gitlab-ci.yml7639 the created pipeline7640 creates test and code_quality jobs7641Todos::AllowedTargetFilterService7642 #execute7643 is expected to contain exactly #<Todo id: 18, user_id: 2273, project_id: 1803, target_id: 709, target_type: "MergeRequest", author_i...-22 10:46:48.574932503 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>, #<Todo id: 14, user_id: 2273, project_id: 1803, target_id: 401, target_type: "Issue", author_id: 2270...-22 10:46:48.283733990 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>, and #<Todo id: 16, user_id: 2273, project_id: 1803, target_id: 230, target_type: "DesignManagement::Desig...-22 10:46:48.345197392 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>7644Gitlab::Git::LfsChanges7645 #new_pointers7646 filters new objects to find lfs pointers7647 limits new_objects using object_limit7648 times out if given a small dynamic timeout7649FeatureFlagEntity7650 has feature flag attributes7651Projects::OpenMergeRequestsCountService7652 behaves like a counter caching service7653 #count7654 caches the count7655 #refresh_cache7656 refreshes the cache7657 #delete_cache7658 removes the cache7659 #uncached_count7660 does not cache the count7661 #count7662 returns the number of open merge requests7663gitlab:packages namespace rake task7664 migrate7665 object storage disabled7666 doesn't migrate files7667 object storage enabled7668 migrates local file to object storage7669UploadChecksumWorker7670 #perform7671 without a valid record7672 rescues ActiveRecord::RecordNotFound7673 with a valid record7674 calls calculate_checksum!7675 calls save!7676Gitlab::Patch::LegacyDatabaseConfig7677 module is included7678 config/database.yml7679 when a new syntax is used7680 returns a hash containing only main:7681 configuration is not legacy one7682 when a legacy syntax is used7683 returns a hash containing only main:7684 configuration is legacy7685BulkImports::Groups::Pipelines::GroupAvatarPipeline7686 #run7687 updates the group avatar7688 raises an error when the avatar upload fails7689RuboCop::Cop::Migration::AddIndex7690 in migration7691 registers an offense when add_index is used7692 outside of migration7693 registers no offense7694Gitlab::Kubernetes::ServiceAccount7695 is expected to eq "a_service_account"7696 is expected to eq "a_namespace"7697 #generate7698 builds a Kubeclient Resource7699FeatureFlagsUserListsFinder7700 #execute7701 returns user lists7702 with search7703 returns only matching user lists7704ProjectCustomAttribute7705 assocations7706 is expected to belong to project required:7707 validations7708 is expected to validate that :project cannot be empty/falsy7709 is expected to validate that :key cannot be empty/falsy7710 is expected to validate that :value cannot be empty/falsy7711 is expected to validate that :key is case-sensitively unique within the scope of :project_id7712Namespaces::OnboardingProgressWorker#perform7713 behaves like records an onboarding progress action7714 is expected to receive execute({:action=>:git_pull}) 1 time7715 is labeled as idempotent7716 performs multiple times sequentially without raising an exception7717 behaves like does not record an onboarding progress action7718 is expected not to receive new(*(any args)) 0 times7719 behaves like does not record an onboarding progress action7720 is expected not to receive new(*(any args)) 0 times7721API::Github::Entities7722 API::Github::Entities::User7723 aggregate_failure7724 with avatar7725 is expected to include "http://localhost/uploads/-/system/user/avatar/"7726GitlabShellWorker7727 #perform7728 #add_key7729 delegates to Gitlab::AuthorizedKeys7730 #remove_key7731 delegates to Gitlab::AuthorizedKeys7732 all other commands7733 delegates them to Gitlab::Shell7734DeleteUserWorker7735 calls the DeleteUserWorker with the params it was given7736 uses symbolized keys7737Gitlab::Ci::Pipeline::Expression::Token7738 #value7739 returns raw token value7740 #lexeme7741 returns raw token lexeme7742 #build7743 delegates to lexeme after adding a value7744 allows passing only required arguments7745 #type7746 delegates type query to the lexeme7747 #to_lexeme7748 returns raw lexeme syntax component name7749Types::CiConfiguration::Sast::EntityType7750 is expected to eq "SastCiConfigurationEntity"7751 is expected to have graphql fields :field, :label, :description, :type, :options, :default_value, :value, and :size7752BoardSimpleEntity7753 #name7754 has `name` attribute7755Gitlab::Ci::Reports::Security::Link7756 #initialize7757 when all params are given7758 initializes an instance7759 #to_hash7760 returns expected hash7761FileHookWorker7762 #perform7763 executes Gitlab::FileHook with expected values7764 logs message in case of file_hook execution failure7765Banzai::Filter::PlantumlFilter7766 replaces plantuml pre tag with img tag7767 does not replace plantuml pre tag with img tag if disabled7768 does not replace plantuml pre tag with img tag if url is invalid7769FeatureFlagsClientSerializer7770 #represent_token7771 includes feature flags client token7772Mattermost::Client7773 JSON parse error7774 yields an error on malformed JSON7775/builds/gitlab-org/gitlab/spec/lib/mattermost/client_spec.rb:12: warning: redefining constant Struct::Request7776 shows a client error if the request was unsuccessful7777Types::Ci::GroupType7778 is expected to eq "CiGroup"7779 exposes the expected fields7780API::Entities::DeployKey7781 #as_json7782 includes basic fields7783Groups::DeployTokens::DestroyService7784 behaves like a deploy token deletion service7785 #execute7786 destroys a token record and it's associated DeployToken7787 invalid token id7788 raises an error7789Gitlab::Ci::Pipeline::Chain::Pipeline::Process7790 #perform!7791 schedules a job to process the pipeline7792 #break?7793 is expected to be falsey7794Gitlab::ImportExport::SnippetRepoSaver7795 bundle a project Git repo7796 with project snippet7797 bundles the repo successfully7798 when snippet does not have a repository7799 returns true7800 does not create any file7801Types::Ci::Config::StageType7802 is expected to eq "CiConfigStage"7803 exposes the expected fields7804Types::DependencyProxy::ManifestType7805 includes dependency proxy manifest fields7806API::Helpers::Pagination7807 delegates to OffsetPagination7808Ci::GroupVariableEntity7809 #as_json7810 contains required fields7811API::Validations::Validators::Absence7812 empty param7813 does not raise a validation error7814 invalid parameters7815 raises a validation error7816Types::Packages::Composer::JsonType7817 is expected to eq "PackageComposerJsonType"7818 includes composer json files7819Types::ContainerRepositoryStatusEnum7820 exposes all statuses7821Gitlab::Ci::Status::Extended7822 requires subclass to implement matcher7823Types::Packages::Conan::MetadatumFileTypeEnum7824 uses all possible options from model7825Gitlab::GithubImport::ImportNoteWorker7826 #import7827 imports a note7828Gitlab::WordDiff::LineProcessor7829 #extract7830 when line is a diff hunk7831 returns DiffHunk segment7832 when line has a newline delimiter7833 returns Newline segment7834 when line has only space7835 returns nil7836 when line has content7837 returns Chunk segment7838Ci::DownloadableArtifactSerializer7839 #as_json7840 matches schema7841Serverless::DomainEntity7842 #as_json7843 has an id7844 has a domain7845Ci::CodequalityMrDiffEntity7846 #as_json7847 when quality report has degradations7848 contains correct codequality mr diff report7849Types::CiConfiguration::Sast::UiComponentSizeEnum7850 is expected to eq "SastUiComponentSize"7851 exposes all sizes of ui components7852Gitlab::APIAuthentication::TokenTypeBuilder7853 #token_types7854 passes strategies and resolvers to SentThroughBuilder7855Knapsack report was generated. Preview:7856{7857 "spec/finders/merge_requests_finder_spec.rb": 240.49942622399976,7858 "spec/services/quick_actions/interpret_service_spec.rb": 78.74779044499883,7859 "spec/services/git/branch_push_service_spec.rb": 122.96527858599984,7860 "spec/services/projects/alerting/notify_service_spec.rb": 34.260850850998395,7861 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 59.458700114999374,7862 "spec/services/projects/overwrite_project_service_spec.rb": 63.96777090799878,7863 "spec/services/projects/create_service_spec.rb": 44.1739776659997,7864 "spec/finders/deployments_finder_spec.rb": 43.4192653680002,7865 "spec/lib/banzai/filter/repository_link_filter_spec.rb": 32.59177092699974,7866 "spec/services/issuable/bulk_update_service_spec.rb": 35.53517940999882,7867 "spec/services/packages/maven/metadata/create_versions_xml_service_spec.rb": 33.64740564400017,7868 "spec/presenters/project_presenter_spec.rb": 19.657391001001088,7869 "spec/models/design_management/design_at_version_spec.rb": 23.294231230998776,7870 "spec/lib/gitlab/user_access_spec.rb": 27.63894411399997,7871 "spec/lib/gitlab/email/handler/create_note_handler_spec.rb": 24.451976984000794,7872 "spec/models/integrations/bamboo_spec.rb": 15.736240657999588,7873 "spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb": 19.620404737999706,7874 "spec/services/search_service_spec.rb": 13.421159796000211,7875 "spec/models/environment_status_spec.rb": 19.192658007999853,7876 "spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb": 15.490384714999891,7877 "spec/lib/gitlab/ci/status/build/failed_spec.rb": 15.985028482999041,7878 "spec/finders/group_descendants_finder_spec.rb": 20.066966168000363,7879 "spec/services/ci/unlock_artifacts_service_spec.rb": 12.250194754000404,7880 "spec/presenters/merge_request_presenter_spec.rb": 9.202250558000742,7881 "spec/services/git/process_ref_changes_service_spec.rb": 19.284047897001074,7882 "spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb": 15.981826411998554,7883 "spec/models/prometheus_metric_spec.rb": 6.746015778999208,7884 "spec/services/packages/debian/extract_metadata_service_spec.rb": 14.529203177000454,7885 "spec/lib/gitlab/ssh_public_key_spec.rb": 6.07301260299937,7886 "spec/graphql/mutations/merge_requests/set_wip_spec.rb": 14.674554667999473,7887 "spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb": 15.309389388999989,7888 "spec/workers/repository_fork_worker_spec.rb": 14.30552362600065,7889 "spec/lib/gitlab/gitaly_client/ref_service_spec.rb": 10.795965908000653,7890 "spec/models/namespace/package_setting_spec.rb": 5.990182075000121,7891 "spec/helpers/user_callouts_helper_spec.rb": 7.965518555000017,7892 "spec/lib/gitlab/ci/templates/npm_spec.rb": 12.519559730000765,7893 "spec/lib/backup/manager_spec.rb": 4.207214088999535,7894 "spec/lib/gitlab/ci/pipeline/chain/command_spec.rb": 6.8641020439990825,7895 "spec/models/clusters/agent_spec.rb": 8.200253904999045,7896 "spec/models/packages/debian/group_component_file_spec.rb": 5.063377041000422,7897 "spec/lib/gitlab/search/found_blob_spec.rb": 6.764830586998869,7898 "spec/lib/gitlab/github_import/representation/issue_spec.rb": 2.738522694000494,7899 "spec/lib/gitlab/ci/config/entry/processable_spec.rb": 6.568096200999207,7900 "spec/services/upload_service_spec.rb": 6.239653723001538,7901 "spec/models/discussion_spec.rb": 10.93380347099992,7902 "spec/presenters/packages/npm/package_presenter_spec.rb": 4.981946990999859,7903 "spec/lib/gitlab/ci/build/image_spec.rb": 7.734172063999722,7904 "spec/lib/gitlab/i18n/translation_entry_spec.rb": 2.3669104109994805,7905 "spec/lib/gitlab/http_io_spec.rb": 3.9968042460004654,7906 "spec/models/concerns/prometheus_adapter_spec.rb": 7.499161734000154,7907 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 5.649582726999142,7908 "spec/services/integrations/test/project_service_spec.rb": 5.484073967998484,7909 "spec/models/clusters/kubernetes_namespace_spec.rb": 6.0010351429991715,7910 "spec/lib/gitlab/instrumentation_helper_spec.rb": 2.745627123998929,7911 "spec/finders/concerns/finder_methods_spec.rb": 8.96405416900052,7912 "spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb": 1.9323206859990023,7913 "spec/lib/gitlab/git/object_pool_spec.rb": 5.47368798000025,7914 "spec/lib/gitlab/slash_commands/command_spec.rb": 7.258659554001497,7915 "spec/services/packages/conan/search_service_spec.rb": 5.566493117999926,7916 "spec/serializers/ci/trigger_entity_spec.rb": 5.63530204899871,7917 "spec/lib/gitlab/utils/override_spec.rb": 2.2672998339985497,7918 "spec/views/groups/edit.html.haml_spec.rb": 6.752937088000181,7919 "spec/services/packages/composer/create_package_service_spec.rb": 5.2098905029997695,7920 "spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb": 3.997539735000828,7921 "spec/lib/gitlab/middleware/same_site_cookies_spec.rb": 3.2084682759996213,7922 "spec/models/ci/build_trace_metadata_spec.rb": 2.7262577159999637,7923 "spec/models/issue_link_spec.rb": 5.712831910001114,7924 "spec/lib/gitlab/file_finder_spec.rb": 4.082587015000172,7925 "spec/finders/security/license_compliance_jobs_finder_spec.rb": 3.7353504090006027,7926 "spec/presenters/group_member_presenter_spec.rb": 2.545975928000189,7927 "spec/models/zoom_meeting_spec.rb": 6.051939810000476,7928 "spec/lib/sidebars/menu_spec.rb": 2.573655966998558,7929 "spec/services/ci/pipeline_artifacts/destroy_all_expired_service_spec.rb": 4.677742670000953,7930 "spec/lib/gitlab/shell_spec.rb": 2.824206442999639,7931 "spec/services/repository_archive_clean_up_service_spec.rb": 4.295067568000377,7932 "spec/graphql/resolvers/snippets_resolver_spec.rb": 3.928412663999552,7933 "spec/policies/clusters/instance_policy_spec.rb": 3.0148001500001556,7934 "spec/lib/banzai/filter/references/reference_cache_spec.rb": 3.686024095000903,7935 "spec/services/files/delete_service_spec.rb": 5.69217971100079,7936 "spec/models/concerns/spammable_spec.rb": 3.0469976059994224,7937 "spec/tasks/gitlab/smtp_rake_spec.rb": 3.6338870109993877,7938 "spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb": 2.8651708489996963,7939 "spec/models/integrations/youtrack_spec.rb": 3.2920941440006573,7940 "spec/helpers/admin/user_actions_helper_spec.rb": 4.176305472999957,7941 "spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb": 1.6964781860006042,7942 "spec/services/packages/update_package_file_service_spec.rb": 4.308638266000344,7943 "spec/rubocop/cop/avoid_return_from_blocks_spec.rb": 1.7474631989989575,7944 "spec/models/concerns/bulk_insert_safe_spec.rb": 3.654268319000039,7945 "spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb": 3.3426893279993237,7946 "spec/views/notify/pipeline_fixed_email.text.erb_spec.rb": 5.585677205001048,7947 "spec/services/bulk_imports/file_download_service_spec.rb": 2.0001235880008608,7948 "spec/lib/banzai/filter/math_filter_spec.rb": 2.039376202999847,7949 "spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb": 5.0518553929996415,7950 "spec/lib/gitlab/metrics/transaction_spec.rb": 2.5147529620007845,7951 "spec/lib/gitlab/hook_data/key_builder_spec.rb": 1.3699517170007312,7952 "spec/lib/gitlab/health_checks/redis/shared_state_check_spec.rb": 1.4554997670002194,7953 "spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb": 2.815748093998991,7954 "spec/services/packages/create_package_file_service_spec.rb": 1.7097084050001286,7955 "spec/lib/gitlab/checks/diff_check_spec.rb": 3.493197808998957,7956 "spec/lib/gitlab/database/partitioning/partition_manager_spec.rb": 3.6840405460006878,7957 "spec/models/concerns/ci/has_ref_spec.rb": 3.6773461359989597,7958 "spec/models/aws/role_spec.rb": 1.4411827490002906,7959 "spec/graphql/resolvers/project_packages_resolver_spec.rb": 2.962308016998577,7960 "spec/graphql/resolvers/users/snippets_resolver_spec.rb": 2.850982820000354,7961 "spec/presenters/ci/legacy_stage_presenter_spec.rb": 4.801245283999378,7962 "spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb": 1.612458756999331,7963 "spec/graphql/mutations/boards/issues/issue_move_list_spec.rb": 2.466712108000138,7964 "spec/lib/gitlab/visibility_level_checker_spec.rb": 3.1236184459994547,7965 "spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb": 2.076627978000033,7966 "spec/models/analytics/cycle_analytics/project_value_stream_spec.rb": 1.287582327000564,7967 "spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb": 2.373339470999781,7968 "spec/helpers/appearances_helper_spec.rb": 1.8719467829996574,7969 "spec/lib/bitbucket/representation/repo_spec.rb": 2.8103997849993902,7970 "spec/workers/ci/drop_pipeline_worker_spec.rb": 2.462414969000747,7971 "spec/lib/gitlab/time_tracking_formatter_spec.rb": 1.0431076280001434,7972 "spec/lib/gitlab/serverless/service_spec.rb": 2.251588166000147,7973 "spec/models/dependency_proxy/manifest_spec.rb": 1.633628683999632,7974 "spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb": 1.2492280219994427,7975 "spec/lib/gitlab/omniauth_initializer_spec.rb": 2.298515000000407,7976 "spec/finders/ci/auth_job_finder_spec.rb": 1.8083430320002662,7977 "spec/lib/gitlab/ci/reports/security/reports_spec.rb": 2.643321436000406,7978 "spec/models/description_version_spec.rb": 0.9321299329985777,7979 "spec/lib/api/helpers/related_resources_helpers_spec.rb": 1.2462490329999127,7980 "spec/services/award_emojis/toggle_service_spec.rb": 2.296237509999628,7981 "spec/finders/releases/evidence_pipeline_finder_spec.rb": 1.8935439719989517,7982 "spec/finders/packages/package_file_finder_spec.rb": 1.6311809029994038,7983 "spec/lib/gitlab/changelog/generator_spec.rb": 1.5108579190000455,7984 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 4.283255219001148,7985 "spec/services/merge_requests/add_context_service_spec.rb": 3.4793208110004343,7986 "spec/services/metrics/users_starred_dashboards/create_service_spec.rb": 2.3604523119993246,7987 "spec/lib/gitlab/changelog/release_spec.rb": 1.7051021750012296,7988 "spec/serializers/job_artifact_report_entity_spec.rb": 2.122450641998512,7989 "spec/workers/repository_remove_remote_worker_spec.rb": 1.6714258289994177,7990 "spec/models/integrations/campfire_spec.rb": 1.6994050859993877,7991 "spec/services/bulk_import_service_spec.rb": 2.090842405999865,7992 "spec/lib/constraints/admin_constrainer_spec.rb": 1.141448975999083,7993 "spec/models/alert_management/alert_user_mention_spec.rb": 0.8862924889999704,7994 "spec/lib/sidebars/projects/menus/project_information_menu_spec.rb": 2.65130394499829,7995 "spec/workers/ci/pipeline_artifacts/create_quality_report_worker_spec.rb": 1.720369123000637,7996 "spec/lib/gitlab/slash_commands/issue_show_spec.rb": 3.12140795599953,7997 "spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb": 1.1344595470000058,7998 "spec/finders/groups/user_groups_finder_spec.rb": 1.8129376609995234,7999 "spec/graphql/types/untrusted_regexp_spec.rb": 1.224242635000337,8000 "spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb": 1.5654581030012196,8001 "spec/models/chat_name_spec.rb": 1.677110458000243,8002 "spec/workers/namespaces/onboarding_issue_created_worker_spec.rb": 0.9991508839993912,8003 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 1.6727600990016072,8004 "spec/presenters/alert_management/alert_presenter_spec.rb": 0.9579669890008518,8005 "spec/lib/gitlab/sherlock/file_sample_spec.rb": 1.8552495559997624,8006 "spec/workers/pipeline_hooks_worker_spec.rb": 0.8544516419988213,8007 "spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb": 0.941728970999975,8008 "spec/lib/gitlab/config/entry/simplifiable_spec.rb": 0.621954451999045,8009 "spec/helpers/dev_ops_report_helper_spec.rb": 1.0051897129997087,8010 "spec/models/releases/source_spec.rb": 0.8910633870000311,8011 "spec/models/blob_viewer/license_spec.rb": 1.3652972279996902,8012 "spec/graphql/mutations/custom_emoji/destroy_spec.rb": 1.5068300200000522,8013 "spec/rubocop/cop/migration/drop_table_spec.rb": 0.7733442620010464,8014 "spec/lib/mattermost/team_spec.rb": 0.9062916460006818,8015 "spec/lib/gitlab/ci/status/build/erased_spec.rb": 1.8177749599999515,8016 "spec/uploaders/workers/object_storage/background_move_worker_spec.rb": 1.939188384998488,8017 "spec/workers/snippets/schedule_bulk_repository_shard_moves_worker_spec.rb": 0.9384865020001598,8018 "spec/lib/gitlab/usage_data_counters/productivity_analytics_counter_spec.rb": 0.734445747000791,8019 "spec/lib/gitlab/github_import/markdown_text_spec.rb": 0.6600558869995439,8020 "spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb": 0.6230464309992385,8021 "spec/workers/environments/canary_ingress/update_worker_spec.rb": 0.9065112059997773,8022 "spec/graphql/resolvers/user_resolver_spec.rb": 0.7455382859989186,8023 "spec/presenters/project_hook_presenter_spec.rb": 1.1563222839995433,8024 "spec/lib/gitlab/metrics/dashboard/stages/grafana_formatter_spec.rb": 0.9526587299988023,8025 "spec/workers/cluster_wait_for_app_update_worker_spec.rb": 1.795577612998386,8026 "spec/lib/gitlab/usage_data_counters/base_counter_spec.rb": 0.6747964650003269,8027 "spec/lib/gitlab/git/lfs_pointer_file_spec.rb": 0.6996653710011742,8028 "spec/graphql/types/container_repository_details_type_spec.rb": 0.7068209710014344,8029 "spec/workers/design_management/copy_design_collection_worker_spec.rb": 1.5096349399991595,8030 "spec/services/projects/prometheus/metrics/destroy_service_spec.rb": 1.2173107959988556,8031 "spec/views/projects/services/edit.html.haml_spec.rb": 1.4284911989998363,8032 "spec/lib/gitlab/string_placeholder_replacer_spec.rb": 0.6922761919995537,8033 "spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb": 0.6234699109991197,8034 "spec/helpers/git_helper_spec.rb": 0.6732689259988547,8035 "spec/rubocop/cop/scalability/file_uploads_spec.rb": 0.7031664610003645,8036 "spec/serializers/test_report_entity_spec.rb": 1.9591497220008023,8037 "spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb": 0.6969870419998188,8038 "spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb": 0.6710851759999059,8039 "spec/finders/packages/group_or_project_package_finder_spec.rb": 0.9114831240003696,8040 "spec/workers/self_monitoring_project_create_worker_spec.rb": 0.547744450999744,8041 "spec/models/preloaders/merge_request_diff_preloader_spec.rb": 1.8091869719992246,8042 "spec/graphql/resolvers/ci/test_suite_resolver_spec.rb": 1.3684369670008891,8043 "spec/lib/gitlab/metrics/subscribers/action_view_spec.rb": 0.5721587979987817,8044 "spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb": 1.0097366429999965,8045 "spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 1.8683785739995074,8046 "spec/lib/gitlab/database/reindexing_spec.rb": 0.6942331619993638,8047 "spec/models/concerns/presentable_spec.rb": 0.5995482150010503,8048 "spec/presenters/tree_entry_presenter_spec.rb": 1.3208204339989607,8049 "spec/lib/gitlab/ci/config/entry/paths_spec.rb": 0.8092422179997811,8050 "spec/tasks/config_lint_spec.rb": 1.5800732620009512,8051 "spec/services/packages/helm/extract_file_metadata_service_spec.rb": 1.0418466379996971,8052 "spec/lib/gitlab/view/presenter/factory_spec.rb": 0.8272284060003585,8053 "spec/workers/object_pool/join_worker_spec.rb": 1.404369701998803,8054 "spec/models/projects/ci_feature_usage_spec.rb": 0.9333711830004177,8055 "spec/serializers/linked_project_issue_entity_spec.rb": 1.504398080000101,8056 "spec/lib/gitlab/graphql/pagination/keyset/last_items_spec.rb": 1.1578062640001008,8057 "spec/workers/packages/rubygems/extraction_worker_spec.rb": 0.9697287769995455,8058 "spec/lib/gitlab/ci/status/scheduled_spec.rb": 0.7303769579993968,8059 "spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb": 0.8325603150005918,8060 "spec/workers/clusters/cleanup/service_account_worker_spec.rb": 1.432086999000603,8061 "spec/support_specs/database/prevent_cross_joins_spec.rb": 0.8105563280005299,8062 "spec/models/blob_viewer/markup_spec.rb": 1.1589656839987583,8063 "spec/graphql/types/member_interface_spec.rb": 0.630323610999767,8064 "spec/lib/gitlab/ci/templates/flutter_gitlab_ci_yaml_spec.rb": 1.397343284001181,8065 "spec/services/todos/allowed_target_filter_service_spec.rb": 1.655186591000529,8066 "spec/lib/gitlab/git/lfs_changes_spec.rb": 0.9749105070004589,8067 "spec/serializers/feature_flag_entity_spec.rb": 1.2542127319993597,8068 "spec/services/projects/open_merge_requests_count_service_spec.rb": 1.1658713630004058,8069 "spec/tasks/gitlab/packages/migrate_rake_spec.rb": 1.3408010410003044,8070 "spec/workers/upload_checksum_worker_spec.rb": 0.9794066060003388,8071 "spec/lib/gitlab/patch/legacy_database_config_spec.rb": 0.7663856939998368,8072 "spec/lib/bulk_imports/groups/pipelines/group_avatar_pipeline_spec.rb": 0.9604574280001543,8073 "spec/rubocop/cop/migration/add_index_spec.rb": 0.5773341869989963,8074 "spec/lib/gitlab/kubernetes/service_account_spec.rb": 0.6845239940012107,8075 "spec/finders/feature_flags_user_lists_finder_spec.rb": 1.097601900999507,8076 "spec/models/project_custom_attribute_spec.rb": 1.1018533010010287,8077 "spec/workers/namespaces/onboarding_progress_worker_spec.rb": 0.7216574390004098,8078 "spec/lib/api/github/entities_spec.rb": 0.8243879559995548,8079 "spec/workers/gitlab_shell_worker_spec.rb": 1.0050557929989736,8080 "spec/workers/delete_user_worker_spec.rb": 0.902223346000028,8081 "spec/lib/gitlab/ci/pipeline/expression/token_spec.rb": 0.802449709000939,8082 "spec/graphql/types/ci_configuration/sast/entity_type_spec.rb": 0.636995200000456,8083 "spec/serializers/board_simple_entity_spec.rb": 0.9012737360008032,8084 "spec/lib/gitlab/ci/reports/security/link_spec.rb": 0.6943158519989083,8085 "spec/workers/file_hook_worker_spec.rb": 0.5936486850005167,8086 "spec/lib/banzai/filter/plantuml_filter_spec.rb": 0.9153451849997509,8087 "spec/serializers/feature_flags_client_serializer_spec.rb": 1.029418070000247,8088 "spec/lib/mattermost/client_spec.rb": 0.6388987089994771,8089 "spec/graphql/types/ci/group_type_spec.rb": 0.6160770220012637,8090 "spec/lib/api/entities/deploy_key_spec.rb": 0.705397821000588,8091 "spec/services/groups/deploy_tokens/destroy_service_spec.rb": 0.9069276350001019,8092 "spec/lib/gitlab/ci/pipeline/chain/pipeline/process_spec.rb": 0.7048815620000823,8093 "spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb": 1.1681056529996567,8094 "spec/graphql/types/ci/config/stage_type_spec.rb": 0.66550322600051,8095 "spec/graphql/types/dependency_proxy/manifest_type_spec.rb": 0.6714807949992974,8096 "spec/lib/api/helpers/pagination_spec.rb": 0.5820497370004887,8097 "spec/serializers/ci/group_variable_entity_spec.rb": 0.705972830999599,8098 "spec/lib/api/validations/validators/absence_spec.rb": 0.7538565739996557,8099 "spec/graphql/types/packages/composer/json_type_spec.rb": 1.6487298120009655,8100 "spec/graphql/types/container_repository_status_enum_spec.rb": 0.6244726810000429,8101 "spec/lib/gitlab/ci/status/extended_spec.rb": 0.6569195970005239,8102 "spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb": 0.5597304790007911,8103 "spec/workers/gitlab/github_import/import_note_worker_spec.rb": 0.6156977319988073,8104 "spec/lib/gitlab/word_diff/line_processor_spec.rb": 0.6200611219992425,8105 "spec/serializers/ci/downloadable_artifact_serializer_spec.rb": 1.1183712189995276,8106 "spec/serializers/serverless/domain_entity_spec.rb": 0.7171124989999953,8107 "spec/serializers/ci/codequality_mr_diff_entity_spec.rb": 0.6625159369996254,8108 "spec/graphql/types/ci_configuration/sast/ui_component_size_enum_spec.rb": 0.7910210999998526,8109 "spec/lib/gitlab/api_authentication/token_type_builder_spec.rb": 0.61861768199923978110}8111Knapsack global time execution for tests: 27m 28s8112Pending: (Failures listed here are expected and do not affect your suite's status)8113 1) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 8114 # No pattern provided, skipping.8115 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88116 2) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 8117 # No pattern provided, skipping.8118 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88119 3) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative8120 # Path not set, skipping.8121 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408122 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8123 # No pattern provided, skipping.8124 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88125 5) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8126 # No pattern provided, skipping.8127 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88128 6) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8129 # No pattern provided, skipping.8130 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88131 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative8132 # Path not set, skipping.8133 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408134 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8135 # No pattern provided, skipping.8136 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88137 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8138 # No pattern provided, skipping.8139 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88140Finished in 27 minutes 31 seconds (files took 49.48 seconds to load)81413586 examples, 0 failures, 9 pending8142Wed 22 Sep 2021 10:47:38 AM UTC8144Not uploading cache ruby-gems-v1-4 due to policy8145Not uploading cache gitaly-ruby-gems-v1-4 due to policy8147Uploading artifacts...8148coverage/: found 5 matching files and directories 8149WARNING: crystalball/: no matching files 8150deprecations/: found 8 matching files and directories 8151knapsack/: found 3 matching files and directories 8152rspec_flaky/: found 4 matching files and directories 8153rspec_profiling/: found 1 matching files and directories 8154WARNING: tmp/capybara/: no matching files 8155tmp/memory_test/: found 2 matching files and directories 8156log/*.log: found 18 matching files and directories 8157Uploading artifacts as "archive" to coordinator... ok id=1612163281 responseStatus=201 Created token=_BN1yAU_8158Uploading artifacts...8159junit_rspec.xml: found 1 matching files and directories 8160Uploading artifacts as "junit" to coordinator... ok id=1612163281 responseStatus=201 Created token=_BN1yAU_8162Job succeeded