rspec unit pg12 6/20
Passed Started
by
@ntepluhina

Natalia Tepluhina
1Running with gitlab-runner 14.3.0-rc1 (ed15bfbf)2 on docker-auto-scale-com 8a6210b83 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-8a6210b8-project-278964-concurrent-0 via runner-8a6210b8-gsrm-1632302501-f1fe0723...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 51% |**************** | 178M 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...42cache.zip is up to date 43Successfully extracted cache44Checking cache for gitaly-ruby-gems-v1-4...45cache.zip is up to date 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 120 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/lib/gitlab/relative_positioning/mover_spec.rb226spec/services/git/branch_hooks_service_spec.rb227spec/services/merge_requests/build_service_spec.rb228spec/services/clusters/gcp/finalize_creation_service_spec.rb229spec/lib/gitlab/kubernetes/kube_client_spec.rb230spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb231spec/services/members/invitation_reminder_email_service_spec.rb232spec/serializers/pipeline_serializer_spec.rb233spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb234spec/finders/labels_finder_spec.rb235spec/lib/gitlab/sidekiq_cluster/cli_spec.rb236spec/finders/todos_finder_spec.rb237spec/models/gpg_key_spec.rb238spec/lib/gitlab/ci/status/pipeline/factory_spec.rb239spec/helpers/blob_helper_spec.rb240spec/lib/banzai/filter/references/commit_reference_filter_spec.rb241spec/lib/gitlab/file_type_detection_spec.rb242spec/helpers/groups/group_members_helper_spec.rb243spec/lib/gitlab/path_regex_spec.rb244spec/lib/gitlab/fake_application_settings_spec.rb245spec/lib/gitlab/import_export/members_mapper_spec.rb246spec/lib/gitlab/background_migration/populate_dismissed_state_for_vulnerabilities_spec.rb247spec/finders/container_repositories_finder_spec.rb248spec/models/concerns/milestoneable_spec.rb249spec/models/packages/debian/project_distribution_spec.rb250spec/models/award_emoji_spec.rb251spec/lib/gitlab/ci/runner/backoff_spec.rb252spec/uploaders/external_diff_uploader_spec.rb253spec/services/alert_management/alerts/update_service_spec.rb254spec/helpers/notes_helper_spec.rb255spec/models/concerns/deprecated_assignee_spec.rb256spec/models/terraform/state_version_spec.rb257spec/models/resource_state_event_spec.rb258spec/helpers/nav/top_nav_helper_spec.rb259spec/graphql/types/global_id_type_spec.rb260spec/lib/gitlab/encoding_helper_spec.rb261spec/lib/gitlab/lets_encrypt/client_spec.rb262spec/lib/gitlab/middleware/read_only_spec.rb263spec/services/system_notes/design_management_service_spec.rb264spec/lib/extracts_path_spec.rb265spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb266spec/models/concerns/redactable_spec.rb267spec/lib/gitlab/ci/config/external/mapper_spec.rb268spec/serializers/diff_file_entity_spec.rb269spec/helpers/auth_helper_spec.rb270spec/models/concerns/each_batch_spec.rb271spec/models/alert_management/http_integration_spec.rb272spec/graphql/mutations/merge_requests/set_assignees_spec.rb273spec/lib/gitlab/ci/status/build/play_spec.rb274spec/finders/user_recent_events_finder_spec.rb275spec/policies/base_policy_spec.rb276spec/services/ci/create_web_ide_terminal_service_spec.rb277spec/lib/gitlab/ci/trace/checksum_spec.rb278spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb279spec/services/environments/schedule_to_delete_review_apps_service_spec.rb280spec/lib/gitlab/optimistic_locking_spec.rb281spec/services/jira_connect_subscriptions/create_service_spec.rb282spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb283spec/workers/repository_check/single_repository_worker_spec.rb284spec/lib/sidebars/projects/menus/monitor_menu_spec.rb285spec/lib/gitlab/ci/status/build/unschedule_spec.rb286spec/lib/gitlab/checks/changes_access_spec.rb287spec/graphql/resolvers/board_lists_resolver_spec.rb288spec/lib/gitlab/git/attributes_parser_spec.rb289spec/lib/gitlab/email/reply_parser_spec.rb290spec/graphql/mutations/release_asset_links/update_spec.rb291spec/graphql/mutations/releases/delete_spec.rb292spec/lib/gitlab/git/push_spec.rb293spec/services/groups/update_shared_runners_service_spec.rb294spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb295spec/models/user_interacted_project_spec.rb296spec/finders/autocomplete/move_to_project_finder_spec.rb297spec/lib/safe_zip/entry_spec.rb298spec/lib/gitlab/diff/suggestions_parser_spec.rb299spec/models/error_tracking/error_spec.rb300spec/lib/gitlab/chat/responder/mattermost_spec.rb301spec/services/projects/update_statistics_service_spec.rb302spec/serializers/merge_request_serializer_spec.rb303spec/models/packages/dependency_link_spec.rb304spec/lib/google_api/cloud_platform/client_spec.rb305spec/workers/expire_build_instance_artifacts_worker_spec.rb306spec/models/concerns/schedulable_spec.rb307spec/services/notification_recipients/builder/default_spec.rb308spec/services/projects/deploy_tokens/create_service_spec.rb309spec/models/packages/debian/file_entry_spec.rb310spec/lib/gitlab/ci/build/policy/variables_spec.rb311spec/lib/security/ci_configuration/sast_build_action_spec.rb312spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb313spec/services/users/set_status_service_spec.rb314spec/services/commits/cherry_pick_service_spec.rb315spec/models/group_group_link_spec.rb316spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb317spec/models/analytics/usage_trends/measurement_spec.rb318spec/serializers/service_field_entity_spec.rb319spec/lib/gitlab/github_import/importer/note_importer_spec.rb320spec/lib/gitlab/doctor/secrets_spec.rb321spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb322spec/lib/bulk_imports/ndjson_pipeline_spec.rb323spec/finders/packages/go/package_finder_spec.rb324spec/graphql/resolvers/users_resolver_spec.rb325spec/lib/banzai/filter/commit_trailers_filter_spec.rb326spec/services/jira_import/cloud_users_mapper_service_spec.rb327spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb328spec/lib/gitlab/ci/variables/helpers_spec.rb329spec/services/labels/update_service_spec.rb330spec/models/user_preference_spec.rb331spec/lib/bitbucket_server/representation/comment_spec.rb332spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb333spec/models/ci/build_trace_spec.rb334spec/db/production/settings_spec.rb335spec/lib/gitlab/metrics/dashboard/cache_spec.rb336spec/graphql/resolvers/projects/services_resolver_spec.rb337spec/services/design_management/generate_image_versions_service_spec.rb338spec/lib/gitlab/ci/build/artifacts/path_spec.rb339spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb340spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb341spec/lib/bulk_imports/users_mapper_spec.rb342spec/lib/gitlab/url_blockers/url_allowlist_spec.rb343spec/models/wiki_directory_spec.rb344spec/rubocop/cop/api/base_spec.rb345spec/services/notes/destroy_service_spec.rb346spec/serializers/container_repositories_serializer_spec.rb347spec/lib/gitlab/checks/snippet_check_spec.rb348spec/workers/deployments/hooks_worker_spec.rb349spec/lib/gitlab/instrumentation/redis_spec.rb350spec/models/bulk_imports/file_transfer/group_config_spec.rb351spec/lib/gitlab/graphql/calls_gitaly/field_extension_spec.rb352spec/services/ci/process_pipeline_service_spec.rb353spec/finders/award_emojis_finder_spec.rb354spec/lib/gitlab/ci/status/build/common_spec.rb355spec/services/users/block_service_spec.rb356spec/finders/autocomplete/project_finder_spec.rb357spec/services/error_tracking/collect_error_service_spec.rb358spec/validators/branch_filter_validator_spec.rb359spec/lib/gitlab/ci/config/entry/hidden_spec.rb360spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb361spec/models/project_repository_spec.rb362spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb363spec/graphql/resolvers/blobs_resolver_spec.rb364spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb365spec/services/ci/compare_reports_base_service_spec.rb366spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb367spec/graphql/types/terraform/state_type_spec.rb368spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb369spec/lib/gitlab/jira_import/metadata_collector_spec.rb370spec/rubocop/cop/migration/datetime_spec.rb371spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb372spec/graphql/mutations/alert_management/http_integration/update_spec.rb373spec/services/packages/composer/composer_json_service_spec.rb374spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb375spec/views/help/show.html.haml_spec.rb376spec/lib/gitlab/git/conflict/file_spec.rb377spec/lib/banzai/reference_parser/mentioned_project_parser_spec.rb378spec/lib/gitlab/jwt_token_spec.rb379spec/models/dependency_proxy/image_ttl_group_policy_spec.rb380spec/policies/integration_policy_spec.rb381spec/helpers/projects/error_tracking_helper_spec.rb382spec/initializers/action_mailer_hooks_spec.rb383spec/workers/packages/helm/extraction_worker_spec.rb384spec/lib/learn_gitlab/onboarding_spec.rb385spec/finders/repositories/changelog_commits_finder_spec.rb386spec/validators/public_url_validator_spec.rb387spec/views/notify/changed_milestone_email.html.haml_spec.rb388spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb389spec/lib/gitlab/git/remote_mirror_spec.rb390spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb391spec/lib/gitlab/ci/status/pipeline/common_spec.rb392spec/lib/gitlab/ci/status/build/preparing_spec.rb393spec/lib/banzai/filter/image_lazy_load_filter_spec.rb394spec/services/milestones/update_service_spec.rb395spec/lib/gitlab/ci/config/entry/stage_spec.rb396spec/workers/self_monitoring_project_delete_worker_spec.rb397spec/lib/banzai/filter/image_link_filter_spec.rb398spec/services/clusters/aws/fetch_credentials_service_spec.rb399spec/lib/gitlab/import_formatter_spec.rb400spec/views/admin/application_settings/_package_registry.html.haml_spec.rb401spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb402spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb403spec/workers/gitlab/github_import/import_pull_request_review_worker_spec.rb404spec/lib/gitlab/pagination/keyset/request_context_spec.rb405spec/experiments/empty_repo_upload_experiment_spec.rb406spec/finders/ci/job_artifacts_finder_spec.rb407spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb408spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb409spec/workers/bulk_imports/relation_export_worker_spec.rb410spec/helpers/tracking_helper_spec.rb411spec/models/badges/group_badge_spec.rb412spec/graphql/types/notes/noteable_interface_spec.rb413spec/helpers/pagination_helper_spec.rb414spec/graphql/resolvers/users/group_count_resolver_spec.rb415spec/services/protected_branches/update_service_spec.rb416spec/graphql/resolvers/repository_branch_names_resolver_spec.rb417spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb418spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb419spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb420spec/services/jira_connect/sync_service_spec.rb421spec/lib/gitlab/email/attachment_uploader_spec.rb422spec/helpers/subscribable_banner_helper_spec.rb423spec/lib/bulk_imports/pipeline_spec.rb424spec/serializers/import/manifest_provider_repo_entity_spec.rb425spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb426spec/finders/applications_finder_spec.rb427spec/lib/gitlab/request_context_spec.rb428spec/serializers/member_user_entity_spec.rb429spec/lib/gitlab/ci/config/entry/tags_spec.rb430spec/lib/gitlab/view/presenter/delegated_spec.rb431spec/lib/gitlab/sherlock/location_spec.rb432spec/serializers/merge_request_sidebar_extras_entity_spec.rb433spec/lib/api/entities/nuget/metadatum_spec.rb434spec/workers/ci/build_prepare_worker_spec.rb435spec/graphql/graphql_triggers_spec.rb436spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb437spec/lib/gitlab/ci/artifacts/metrics_spec.rb438spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb439spec/lib/gitlab/wiki_file_finder_spec.rb440spec/services/projects/prometheus/alerts/destroy_service_spec.rb441spec/models/term_agreement_spec.rb442spec/lib/gitlab/database/schema_migrations/migrations_spec.rb443spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb444spec/workers/projects/update_repository_storage_worker_spec.rb445spec/lib/gitlab/import/set_async_jid_spec.rb446spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb447spec/serializers/diff_viewer_entity_spec.rb448spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb449spec/services/product_analytics/build_graph_service_spec.rb450spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb451spec/workers/update_project_statistics_worker_spec.rb452spec/graphql/types/ci/runner_type_spec.rb453spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb454spec/lib/gitlab/import_export/attribute_configuration_spec.rb455spec/lib/gitlab/database/load_balancing/active_record_proxy_spec.rb456spec/views/groups/settings/_remove.html.haml_spec.rb457spec/graphql/types/project_member_relation_enum_spec.rb458spec/graphql/types/ci/recent_failures_type_spec.rb459spec/models/blob_viewer/podspec_json_spec.rb460spec/graphql/types/issuable_severity_enum_spec.rb461spec/helpers/recaptcha_helper_spec.rb462spec/graphql/types/user_callout_type_spec.rb463spec/lib/gitlab/asciidoc/html5_converter_spec.rb464spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/none_spec.rb465spec/serializers/evidences/issue_entity_spec.rb466spec/graphql/types/permission_types/user_spec.rb467spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb468spec/workers/update_container_registry_info_worker_spec.rb469spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb470spec/lib/gitlab/action_cable/request_store_callbacks_spec.rb471spec/lib/gitlab/middleware/release_env_spec.rb472spec/graphql/types/release_assets_input_type_spec.rb473spec/graphql/types/ci_configuration/sast/options_entity_spec.rb474spec/services/deploy_keys/create_service_spec.rb475spec/graphql/types/user_status_type_spec.rb476spec/lib/gitlab/error_tracking/log_formatter_spec.rb477spec/sidekiq/cron/job_gem_dependency_spec.rb478Filter specs:479Running specs:480Running all node tests without filter481spec/lib/gitlab/relative_positioning/mover_spec.rb482spec/services/git/branch_hooks_service_spec.rb483spec/services/merge_requests/build_service_spec.rb484spec/services/clusters/gcp/finalize_creation_service_spec.rb485spec/lib/gitlab/kubernetes/kube_client_spec.rb486spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb487spec/services/members/invitation_reminder_email_service_spec.rb488spec/serializers/pipeline_serializer_spec.rb489spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb490spec/finders/labels_finder_spec.rb491spec/lib/gitlab/sidekiq_cluster/cli_spec.rb492spec/finders/todos_finder_spec.rb493spec/models/gpg_key_spec.rb494spec/lib/gitlab/ci/status/pipeline/factory_spec.rb495spec/helpers/blob_helper_spec.rb496spec/lib/banzai/filter/references/commit_reference_filter_spec.rb497spec/lib/gitlab/file_type_detection_spec.rb498spec/helpers/groups/group_members_helper_spec.rb499spec/lib/gitlab/path_regex_spec.rb500spec/lib/gitlab/fake_application_settings_spec.rb501spec/lib/gitlab/import_export/members_mapper_spec.rb502spec/lib/gitlab/background_migration/populate_dismissed_state_for_vulnerabilities_spec.rb503spec/finders/container_repositories_finder_spec.rb504spec/models/concerns/milestoneable_spec.rb505spec/models/packages/debian/project_distribution_spec.rb506spec/models/award_emoji_spec.rb507spec/lib/gitlab/ci/runner/backoff_spec.rb508spec/uploaders/external_diff_uploader_spec.rb509spec/services/alert_management/alerts/update_service_spec.rb510spec/helpers/notes_helper_spec.rb511spec/models/concerns/deprecated_assignee_spec.rb512spec/models/terraform/state_version_spec.rb513spec/models/resource_state_event_spec.rb514spec/helpers/nav/top_nav_helper_spec.rb515spec/graphql/types/global_id_type_spec.rb516spec/lib/gitlab/encoding_helper_spec.rb517spec/lib/gitlab/lets_encrypt/client_spec.rb518spec/lib/gitlab/middleware/read_only_spec.rb519spec/services/system_notes/design_management_service_spec.rb520spec/lib/extracts_path_spec.rb521spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb522spec/models/concerns/redactable_spec.rb523spec/lib/gitlab/ci/config/external/mapper_spec.rb524spec/serializers/diff_file_entity_spec.rb525spec/helpers/auth_helper_spec.rb526spec/models/concerns/each_batch_spec.rb527spec/models/alert_management/http_integration_spec.rb528spec/graphql/mutations/merge_requests/set_assignees_spec.rb529spec/lib/gitlab/ci/status/build/play_spec.rb530spec/finders/user_recent_events_finder_spec.rb531spec/policies/base_policy_spec.rb532spec/services/ci/create_web_ide_terminal_service_spec.rb533spec/lib/gitlab/ci/trace/checksum_spec.rb534spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb535spec/services/environments/schedule_to_delete_review_apps_service_spec.rb536spec/lib/gitlab/optimistic_locking_spec.rb537spec/services/jira_connect_subscriptions/create_service_spec.rb538spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb539spec/workers/repository_check/single_repository_worker_spec.rb540spec/lib/sidebars/projects/menus/monitor_menu_spec.rb541spec/lib/gitlab/ci/status/build/unschedule_spec.rb542spec/lib/gitlab/checks/changes_access_spec.rb543spec/graphql/resolvers/board_lists_resolver_spec.rb544spec/lib/gitlab/git/attributes_parser_spec.rb545spec/lib/gitlab/email/reply_parser_spec.rb546spec/graphql/mutations/release_asset_links/update_spec.rb547spec/graphql/mutations/releases/delete_spec.rb548spec/lib/gitlab/git/push_spec.rb549spec/services/groups/update_shared_runners_service_spec.rb550spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb551spec/models/user_interacted_project_spec.rb552spec/finders/autocomplete/move_to_project_finder_spec.rb553spec/lib/safe_zip/entry_spec.rb554spec/lib/gitlab/diff/suggestions_parser_spec.rb555spec/models/error_tracking/error_spec.rb556spec/lib/gitlab/chat/responder/mattermost_spec.rb557spec/services/projects/update_statistics_service_spec.rb558spec/serializers/merge_request_serializer_spec.rb559spec/models/packages/dependency_link_spec.rb560spec/lib/google_api/cloud_platform/client_spec.rb561spec/workers/expire_build_instance_artifacts_worker_spec.rb562spec/models/concerns/schedulable_spec.rb563spec/services/notification_recipients/builder/default_spec.rb564spec/services/projects/deploy_tokens/create_service_spec.rb565spec/models/packages/debian/file_entry_spec.rb566spec/lib/gitlab/ci/build/policy/variables_spec.rb567spec/lib/security/ci_configuration/sast_build_action_spec.rb568spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb569spec/services/users/set_status_service_spec.rb570spec/services/commits/cherry_pick_service_spec.rb571spec/models/group_group_link_spec.rb572spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb573spec/models/analytics/usage_trends/measurement_spec.rb574spec/serializers/service_field_entity_spec.rb575spec/lib/gitlab/github_import/importer/note_importer_spec.rb576spec/lib/gitlab/doctor/secrets_spec.rb577spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb578spec/lib/bulk_imports/ndjson_pipeline_spec.rb579spec/finders/packages/go/package_finder_spec.rb580spec/graphql/resolvers/users_resolver_spec.rb581spec/lib/banzai/filter/commit_trailers_filter_spec.rb582spec/services/jira_import/cloud_users_mapper_service_spec.rb583spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb584spec/lib/gitlab/ci/variables/helpers_spec.rb585spec/services/labels/update_service_spec.rb586spec/models/user_preference_spec.rb587spec/lib/bitbucket_server/representation/comment_spec.rb588spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb589spec/models/ci/build_trace_spec.rb590spec/db/production/settings_spec.rb591spec/lib/gitlab/metrics/dashboard/cache_spec.rb592spec/graphql/resolvers/projects/services_resolver_spec.rb593spec/services/design_management/generate_image_versions_service_spec.rb594spec/lib/gitlab/ci/build/artifacts/path_spec.rb595spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb596spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb597spec/lib/bulk_imports/users_mapper_spec.rb598spec/lib/gitlab/url_blockers/url_allowlist_spec.rb599spec/models/wiki_directory_spec.rb600spec/rubocop/cop/api/base_spec.rb601spec/services/notes/destroy_service_spec.rb602spec/serializers/container_repositories_serializer_spec.rb603spec/lib/gitlab/checks/snippet_check_spec.rb604spec/workers/deployments/hooks_worker_spec.rb605spec/lib/gitlab/instrumentation/redis_spec.rb606spec/models/bulk_imports/file_transfer/group_config_spec.rb607spec/lib/gitlab/graphql/calls_gitaly/field_extension_spec.rb608spec/services/ci/process_pipeline_service_spec.rb609spec/finders/award_emojis_finder_spec.rb610spec/lib/gitlab/ci/status/build/common_spec.rb611spec/services/users/block_service_spec.rb612spec/finders/autocomplete/project_finder_spec.rb613spec/services/error_tracking/collect_error_service_spec.rb614spec/validators/branch_filter_validator_spec.rb615spec/lib/gitlab/ci/config/entry/hidden_spec.rb616spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb617spec/models/project_repository_spec.rb618spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb619spec/graphql/resolvers/blobs_resolver_spec.rb620spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb621spec/services/ci/compare_reports_base_service_spec.rb622spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb623spec/graphql/types/terraform/state_type_spec.rb624spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb625spec/lib/gitlab/jira_import/metadata_collector_spec.rb626spec/rubocop/cop/migration/datetime_spec.rb627spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb628spec/graphql/mutations/alert_management/http_integration/update_spec.rb629spec/services/packages/composer/composer_json_service_spec.rb630spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb631spec/views/help/show.html.haml_spec.rb632spec/lib/gitlab/git/conflict/file_spec.rb633spec/lib/banzai/reference_parser/mentioned_project_parser_spec.rb634spec/lib/gitlab/jwt_token_spec.rb635spec/models/dependency_proxy/image_ttl_group_policy_spec.rb636spec/policies/integration_policy_spec.rb637spec/helpers/projects/error_tracking_helper_spec.rb638spec/initializers/action_mailer_hooks_spec.rb639spec/workers/packages/helm/extraction_worker_spec.rb640spec/lib/learn_gitlab/onboarding_spec.rb641spec/finders/repositories/changelog_commits_finder_spec.rb642spec/validators/public_url_validator_spec.rb643spec/views/notify/changed_milestone_email.html.haml_spec.rb644spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb645spec/lib/gitlab/git/remote_mirror_spec.rb646spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb647spec/lib/gitlab/ci/status/pipeline/common_spec.rb648spec/lib/gitlab/ci/status/build/preparing_spec.rb649spec/lib/banzai/filter/image_lazy_load_filter_spec.rb650spec/services/milestones/update_service_spec.rb651spec/lib/gitlab/ci/config/entry/stage_spec.rb652spec/workers/self_monitoring_project_delete_worker_spec.rb653spec/lib/banzai/filter/image_link_filter_spec.rb654spec/services/clusters/aws/fetch_credentials_service_spec.rb655spec/lib/gitlab/import_formatter_spec.rb656spec/views/admin/application_settings/_package_registry.html.haml_spec.rb657spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb658spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb659spec/workers/gitlab/github_import/import_pull_request_review_worker_spec.rb660spec/lib/gitlab/pagination/keyset/request_context_spec.rb661spec/experiments/empty_repo_upload_experiment_spec.rb662spec/finders/ci/job_artifacts_finder_spec.rb663spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb664spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb665spec/workers/bulk_imports/relation_export_worker_spec.rb666spec/helpers/tracking_helper_spec.rb667spec/models/badges/group_badge_spec.rb668spec/graphql/types/notes/noteable_interface_spec.rb669spec/helpers/pagination_helper_spec.rb670spec/graphql/resolvers/users/group_count_resolver_spec.rb671spec/services/protected_branches/update_service_spec.rb672spec/graphql/resolvers/repository_branch_names_resolver_spec.rb673spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb674spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb675spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb676spec/services/jira_connect/sync_service_spec.rb677spec/lib/gitlab/email/attachment_uploader_spec.rb678spec/helpers/subscribable_banner_helper_spec.rb679spec/lib/bulk_imports/pipeline_spec.rb680spec/serializers/import/manifest_provider_repo_entity_spec.rb681spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb682spec/finders/applications_finder_spec.rb683spec/lib/gitlab/request_context_spec.rb684spec/serializers/member_user_entity_spec.rb685spec/lib/gitlab/ci/config/entry/tags_spec.rb686spec/lib/gitlab/view/presenter/delegated_spec.rb687spec/lib/gitlab/sherlock/location_spec.rb688spec/serializers/merge_request_sidebar_extras_entity_spec.rb689spec/lib/api/entities/nuget/metadatum_spec.rb690spec/workers/ci/build_prepare_worker_spec.rb691spec/graphql/graphql_triggers_spec.rb692spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb693spec/lib/gitlab/ci/artifacts/metrics_spec.rb694spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb695spec/lib/gitlab/wiki_file_finder_spec.rb696spec/services/projects/prometheus/alerts/destroy_service_spec.rb697spec/models/term_agreement_spec.rb698spec/lib/gitlab/database/schema_migrations/migrations_spec.rb699spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb700spec/workers/projects/update_repository_storage_worker_spec.rb701spec/lib/gitlab/import/set_async_jid_spec.rb702spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb703spec/serializers/diff_viewer_entity_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.090464584 seconds...706Test environment set up in 0.850800405 seconds707Gitlab::RelativePositioning::Mover708 #move_to_end709 all positions are taken710 raises an error when placing a new item711 index: 0712 behaves like able to move existing items to the end713 can move any existing item714 index: 1715 behaves like able to move existing items to the end716 can move any existing item717 index: 2718 behaves like able to move existing items to the end719 can move any existing item720 index: 3721 behaves like able to move existing items to the end722 can move any existing item723 index: 4724 behaves like able to move existing items to the end725 can move any existing item726 there are no siblings727 behaves like able to place a new item at the end728 can place any new item729 there is only one sibling730 pos: 101731 behaves like able to place a new item at the end732 can place any new item733 behaves like able to move existing items to the end734 can move any existing item735 pos: 102736 behaves like able to place a new item at the end737 can place any new item738 behaves like able to move existing items to the end739 can move any existing item740 pos: 103741 behaves like able to place a new item at the end742 can place any new item743 behaves like able to move existing items to the end744 can move any existing item745 pos: 104746 behaves like able to place a new item at the end747 can place any new item748 behaves like able to move existing items to the end749 can move any existing item750 pos: 105751 behaves like able to place a new item at the end752 can place any new item753 behaves like able to move existing items to the end754 can move any existing item755 at least one position is free756 free_space: 101, index: 0757 behaves like able to place a new item at the end758 can place any new item759 behaves like able to move existing items to the end760 can move any existing item761 free_space: 101, index: 1762 behaves like able to place a new item at the end763 can place any new item764 behaves like able to move existing items to the end765 can move any existing item766 free_space: 101, index: 2767 behaves like able to place a new item at the end768 can place any new item769 behaves like able to move existing items to the end770 can move any existing item771 free_space: 101, index: 3772 behaves like able to place a new item at the end773 can place any new item774 behaves like able to move existing items to the end775 can move any existing item776 free_space: 102, index: 0777 behaves like able to place a new item at the end778 can place any new item779 behaves like able to move existing items to the end780 can move any existing item781 free_space: 102, index: 1782 behaves like able to place a new item at the end783 can place any new item784 behaves like able to move existing items to the end785 can move any existing item786 free_space: 102, index: 2787 behaves like able to place a new item at the end788 can place any new item789 behaves like able to move existing items to the end790 can move any existing item791 free_space: 102, index: 3792 behaves like able to place a new item at the end793 can place any new item794 behaves like able to move existing items to the end795 can move any existing item796 free_space: 103, index: 0797 behaves like able to place a new item at the end798 can place any new item799 behaves like able to move existing items to the end800 can move any existing item801 free_space: 103, index: 1802 behaves like able to place a new item at the end803 can place any new item804 behaves like able to move existing items to the end805 can move any existing item806 free_space: 103, index: 2807 behaves like able to place a new item at the end808 can place any new item809 behaves like able to move existing items to the end810 can move any existing item811 free_space: 103, index: 3812 behaves like able to place a new item at the end813 can place any new item814 behaves like able to move existing items to the end815 can move any existing item816 free_space: 104, index: 0817 behaves like able to place a new item at the end818 can place any new item819 behaves like able to move existing items to the end820 can move any existing item821 free_space: 104, index: 1822 behaves like able to place a new item at the end823 can place any new item824 behaves like able to move existing items to the end825 can move any existing item826 free_space: 104, index: 2827 behaves like able to place a new item at the end828 can place any new item829 behaves like able to move existing items to the end830 can move any existing item831 free_space: 104, index: 3832 behaves like able to place a new item at the end833 can place any new item834 behaves like able to move existing items to the end835 can move any existing item836 free_space: 105, index: 0837 behaves like able to place a new item at the end838 can place any new item839 behaves like able to move existing items to the end840 can move any existing item841 free_space: 105, index: 1842 behaves like able to place a new item at the end843 can place any new item844 behaves like able to move existing items to the end845 can move any existing item846 free_space: 105, index: 2847 behaves like able to place a new item at the end848 can place any new item849 behaves like able to move existing items to the end850 can move any existing item851 free_space: 105, index: 3852 behaves like able to place a new item at the end853 can place any new item854 behaves like able to move existing items to the end855 can move any existing item856 #move_to_start857 all positions are taken858 raises an error when placing a new item859 index: 0860 behaves like able to move existing items to the start861 can move any existing item862 index: 1863 behaves like able to move existing items to the start864 can move any existing item865 index: 2866 behaves like able to move existing items to the start867 can move any existing item868 index: 3869 behaves like able to move existing items to the start870 can move any existing item871 index: 4872 behaves like able to move existing items to the start873 can move any existing item874 there are no siblings875 behaves like able to place a new item at the start876 can place any new item877 there is only one sibling878 pos: 101879 behaves like able to place a new item at the start880 can place any new item881 behaves like able to move existing items to the start882 can move any existing item883 pos: 102884 behaves like able to place a new item at the start885 can place any new item886 behaves like able to move existing items to the start887 can move any existing item888 pos: 103889 behaves like able to place a new item at the start890 can place any new item891 behaves like able to move existing items to the start892 can move any existing item893 pos: 104894 behaves like able to place a new item at the start895 can place any new item896 behaves like able to move existing items to the start897 can move any existing item898 pos: 105899 behaves like able to place a new item at the start900 can place any new item901 behaves like able to move existing items to the start902 can move any existing item903 at least one position is free904 free_space: 101, index: 0905 behaves like able to place a new item at the start906 can place any new item907 behaves like able to move existing items to the start908 can move any existing item909 free_space: 101, index: 1910 behaves like able to place a new item at the start911 can place any new item912 behaves like able to move existing items to the start913 can move any existing item914 free_space: 101, index: 2915 behaves like able to place a new item at the start916 can place any new item917 behaves like able to move existing items to the start918 can move any existing item919 free_space: 101, index: 3920 behaves like able to place a new item at the start921 can place any new item922 behaves like able to move existing items to the start923 can move any existing item924 free_space: 102, index: 0925 behaves like able to place a new item at the start926 can place any new item927 behaves like able to move existing items to the start928 can move any existing item929 free_space: 102, index: 1930 behaves like able to place a new item at the start931 can place any new item932 behaves like able to move existing items to the start933 can move any existing item934 free_space: 102, index: 2935 behaves like able to place a new item at the start936 can place any new item937 behaves like able to move existing items to the start938 can move any existing item939 free_space: 102, index: 3940 behaves like able to place a new item at the start941 can place any new item942 behaves like able to move existing items to the start943 can move any existing item944 free_space: 103, index: 0945 behaves like able to place a new item at the start946 can place any new item947 behaves like able to move existing items to the start948 can move any existing item949 free_space: 103, index: 1950 behaves like able to place a new item at the start951 can place any new item952 behaves like able to move existing items to the start953 can move any existing item954 free_space: 103, index: 2955 behaves like able to place a new item at the start956 can place any new item957 behaves like able to move existing items to the start958 can move any existing item959 free_space: 103, index: 3960 behaves like able to place a new item at the start961 can place any new item962 behaves like able to move existing items to the start963 can move any existing item964 free_space: 104, index: 0965 behaves like able to place a new item at the start966 can place any new item967 behaves like able to move existing items to the start968 can move any existing item969 free_space: 104, index: 1970 behaves like able to place a new item at the start971 can place any new item972 behaves like able to move existing items to the start973 can move any existing item974 free_space: 104, index: 2975 behaves like able to place a new item at the start976 can place any new item977 behaves like able to move existing items to the start978 can move any existing item979 free_space: 104, index: 3980 behaves like able to place a new item at the start981 can place any new item982 behaves like able to move existing items to the start983 can move any existing item984 free_space: 105, index: 0985 behaves like able to place a new item at the start986 can place any new item987 behaves like able to move existing items to the start988 can move any existing item989 free_space: 105, index: 1990 behaves like able to place a new item at the start991 can place any new item992 behaves like able to move existing items to the start993 can move any existing item994 free_space: 105, index: 2995 behaves like able to place a new item at the start996 can place any new item997 behaves like able to move existing items to the start998 can move any existing item999 free_space: 105, index: 31000 behaves like able to place a new item at the start1001 can place any new item1002 behaves like able to move existing items to the start1003 can move any existing item1004 #move1005 all positions are taken1006 idx_a: 0, idx_b: 11007 raises an error when placing a new item anywhere1008 index: 01009 behaves like able to move an existing item1010 can place any item betwen two others1011 can place any item after another1012 can place any item before another1013 index: 11014 behaves like able to move an existing item1015 can place any item betwen two others1016 can place any item after another1017 can place any item before another1018 index: 21019 behaves like able to move an existing item1020 can place any item betwen two others1021 can place any item after another1022 can place any item before another1023 index: 31024 behaves like able to move an existing item1025 can place any item betwen two others1026 can place any item after another1027 can place any item before another1028 index: 41029 behaves like able to move an existing item1030 can place any item betwen two others1031 can place any item after another1032 can place any item before another1033 idx_a: 0, idx_b: 21034 raises an error when placing a new item anywhere1035 index: 01036 behaves like able to move an existing item1037 can place any item betwen two others1038 can place any item after another1039 can place any item before another1040 index: 11041 behaves like able to move an existing item1042 can place any item betwen two others1043 can place any item after another1044 can place any item before another1045 index: 21046 behaves like able to move an existing item1047 can place any item betwen two others1048 can place any item after another1049 can place any item before another1050 index: 31051 behaves like able to move an existing item1052 can place any item betwen two others1053 can place any item after another1054 can place any item before another1055 index: 41056 behaves like able to move an existing item1057 can place any item betwen two others1058 can place any item after another1059 can place any item before another1060 idx_a: 0, idx_b: 31061 raises an error when placing a new item anywhere1062 index: 01063 behaves like able to move an existing item1064 can place any item betwen two others1065 can place any item after another1066 can place any item before another1067 index: 11068 behaves like able to move an existing item1069 can place any item betwen two others1070 can place any item after another1071 can place any item before another1072 index: 21073 behaves like able to move an existing item1074 can place any item betwen two others1075 can place any item after another1076 can place any item before another1077 index: 31078 behaves like able to move an existing item1079 can place any item betwen two others1080 can place any item after another1081 can place any item before another1082 index: 41083 behaves like able to move an existing item1084 can place any item betwen two others1085 can place any item after another1086 can place any item before another1087 idx_a: 0, idx_b: 41088 raises an error when placing a new item anywhere1089 index: 01090 behaves like able to move an existing item1091 can place any item betwen two others1092 can place any item after another1093 can place any item before another1094 index: 11095 behaves like able to move an existing item1096 can place any item betwen two others1097 can place any item after another1098 can place any item before another1099 index: 21100 behaves like able to move an existing item1101 can place any item betwen two others1102 can place any item after another1103 can place any item before another1104 index: 31105 behaves like able to move an existing item1106 can place any item betwen two others1107 can place any item after another1108 can place any item before another1109 index: 41110 behaves like able to move an existing item1111 can place any item betwen two others1112 can place any item after another1113 can place any item before another1114 idx_a: 1, idx_b: 21115 raises an error when placing a new item anywhere1116 index: 01117 behaves like able to move an existing item1118 can place any item betwen two others1119 can place any item after another1120 can place any item before another1121 index: 11122 behaves like able to move an existing item1123 can place any item betwen two others1124 can place any item after another1125 can place any item before another1126 index: 21127 behaves like able to move an existing item1128 can place any item betwen two others1129 can place any item after another1130 can place any item before another1131 index: 31132 behaves like able to move an existing item1133 can place any item betwen two others1134 can place any item after another1135 can place any item before another1136 index: 41137 behaves like able to move an existing item1138 can place any item betwen two others1139 can place any item after another1140 can place any item before another1141 idx_a: 1, idx_b: 31142 raises an error when placing a new item anywhere1143 index: 01144 behaves like able to move an existing item1145 can place any item betwen two others1146 can place any item after another1147 can place any item before another1148 index: 11149 behaves like able to move an existing item1150 can place any item betwen two others1151 can place any item after another1152 can place any item before another1153 index: 21154 behaves like able to move an existing item1155 can place any item betwen two others1156 can place any item after another1157 can place any item before another1158 index: 31159 behaves like able to move an existing item1160 can place any item betwen two others1161 can place any item after another1162 can place any item before another1163 index: 41164 behaves like able to move an existing item1165 can place any item betwen two others1166 can place any item after another1167 can place any item before another1168 idx_a: 1, idx_b: 41169 raises an error when placing a new item anywhere1170 index: 01171 behaves like able to move an existing item1172 can place any item betwen two others1173 can place any item after another1174 can place any item before another1175 index: 11176 behaves like able to move an existing item1177 can place any item betwen two others1178 can place any item after another1179 can place any item before another1180 index: 21181 behaves like able to move an existing item1182 can place any item betwen two others1183 can place any item after another1184 can place any item before another1185 index: 31186 behaves like able to move an existing item1187 can place any item betwen two others1188 can place any item after another1189 can place any item before another1190 index: 41191 behaves like able to move an existing item1192 can place any item betwen two others1193 can place any item after another1194 can place any item before another1195 idx_a: 2, idx_b: 31196 raises an error when placing a new item anywhere1197 index: 01198 behaves like able to move an existing item1199 can place any item betwen two others1200 can place any item after another1201 can place any item before another1202 index: 11203 behaves like able to move an existing item1204 can place any item betwen two others1205 can place any item after another1206 can place any item before another1207 index: 21208 behaves like able to move an existing item1209 can place any item betwen two others1210 can place any item after another1211 can place any item before another1212 index: 31213 behaves like able to move an existing item1214 can place any item betwen two others1215 can place any item after another1216 can place any item before another1217 index: 41218 behaves like able to move an existing item1219 can place any item betwen two others1220 can place any item after another1221 can place any item before another1222 idx_a: 2, idx_b: 41223 raises an error when placing a new item anywhere1224 index: 01225 behaves like able to move an existing item1226 can place any item betwen two others1227 can place any item after another1228 can place any item before another1229 index: 11230 behaves like able to move an existing item1231 can place any item betwen two others1232 can place any item after another1233 can place any item before another1234 index: 21235 behaves like able to move an existing item1236 can place any item betwen two others1237 can place any item after another1238 can place any item before another1239 index: 31240 behaves like able to move an existing item1241 can place any item betwen two others1242 can place any item after another1243 can place any item before another1244 index: 41245 behaves like able to move an existing item1246 can place any item betwen two others1247 can place any item after another1248 can place any item before another1249 idx_a: 3, idx_b: 41250 raises an error when placing a new item anywhere1251 index: 01252 behaves like able to move an existing item1253 can place any item betwen two others1254 can place any item after another1255 can place any item before another1256 index: 11257 behaves like able to move an existing item1258 can place any item betwen two others1259 can place any item after another1260 can place any item before another1261 index: 21262 behaves like able to move an existing item1263 can place any item betwen two others1264 can place any item after another1265 can place any item before another1266 index: 31267 behaves like able to move an existing item1268 can place any item betwen two others1269 can place any item after another1270 can place any item before another1271 index: 41272 behaves like able to move an existing item1273 can place any item betwen two others1274 can place any item after another1275 can place any item before another1276 there are no siblings1277 raises an ArgumentError when both first and last are nil1278 there are a couple of siblings1279 pos_movable: 101, pos_a: 102, pos_b: 1031280 behaves like able to move a new item1281 can place any new item betwen two others1282 can place any new item after another1283 can place any new item before another1284 behaves like able to move an existing item1285 can place any item betwen two others1286 can place any item after another1287 can place any item before another1288 pos_movable: 101, pos_a: 102, pos_b: 1041289 behaves like able to move a new item1290 can place any new item betwen two others1291 can place any new item after another1292 can place any new item before another1293 behaves like able to move an existing item1294 can place any item betwen two others1295 can place any item after another1296 can place any item before another1297 pos_movable: 101, pos_a: 102, pos_b: 1051298 behaves like able to move a new item1299 can place any new item betwen two others1300 can place any new item after another1301 can place any new item before another1302 behaves like able to move an existing item1303 can place any item betwen two others1304 can place any item after another1305 can place any item before another1306 pos_movable: 101, pos_a: 103, pos_b: 1041307 behaves like able to move a new item1308 can place any new item betwen two others1309 can place any new item after another1310 can place any new item before another1311 behaves like able to move an existing item1312 can place any item betwen two others1313 can place any item after another1314 can place any item before another1315 pos_movable: 101, pos_a: 103, pos_b: 1051316 behaves like able to move a new item1317 can place any new item betwen two others1318 can place any new item after another1319 can place any new item before another1320 behaves like able to move an existing item1321 can place any item betwen two others1322 can place any item after another1323 can place any item before another1324 pos_movable: 101, pos_a: 104, pos_b: 1051325 behaves like able to move a new item1326 can place any new item betwen two others1327 can place any new item after another1328 can place any new item before another1329 behaves like able to move an existing item1330 can place any item betwen two others1331 can place any item after another1332 can place any item before another1333 pos_movable: 102, pos_a: 101, pos_b: 1031334 behaves like able to move a new item1335 can place any new item betwen two others1336 can place any new item after another1337 can place any new item before another1338 behaves like able to move an existing item1339 can place any item betwen two others1340 can place any item after another1341 can place any item before another1342 pos_movable: 102, pos_a: 101, pos_b: 1041343 behaves like able to move a new item1344 can place any new item betwen two others1345 can place any new item after another1346 can place any new item before another1347 behaves like able to move an existing item1348 can place any item betwen two others1349 can place any item after another1350 can place any item before another1351 pos_movable: 102, pos_a: 101, pos_b: 1051352 behaves like able to move a new item1353 can place any new item betwen two others1354 can place any new item after another1355 can place any new item before another1356 behaves like able to move an existing item1357 can place any item betwen two others1358 can place any item after another1359 can place any item before another1360 pos_movable: 102, pos_a: 103, pos_b: 1041361 behaves like able to move a new item1362 can place any new item betwen two others1363 can place any new item after another1364 can place any new item before another1365 behaves like able to move an existing item1366 can place any item betwen two others1367 can place any item after another1368 can place any item before another1369 pos_movable: 102, pos_a: 103, pos_b: 1051370 behaves like able to move a new item1371 can place any new item betwen two others1372 can place any new item after another1373 can place any new item before another1374 behaves like able to move an existing item1375 can place any item betwen two others1376 can place any item after another1377 can place any item before another1378 pos_movable: 102, pos_a: 104, pos_b: 1051379 behaves like able to move a new item1380 can place any new item betwen two others1381 can place any new item after another1382 can place any new item before another1383 behaves like able to move an existing item1384 can place any item betwen two others1385 can place any item after another1386 can place any item before another1387 pos_movable: 103, pos_a: 101, pos_b: 1021388 behaves like able to move a new item1389 can place any new item betwen two others1390 can place any new item after another1391 can place any new item before another1392 behaves like able to move an existing item1393 can place any item betwen two others1394 can place any item after another1395 can place any item before another1396 pos_movable: 103, pos_a: 101, pos_b: 1041397 behaves like able to move a new item1398 can place any new item betwen two others1399 can place any new item after another1400 can place any new item before another1401 behaves like able to move an existing item1402 can place any item betwen two others1403 can place any item after another1404 can place any item before another1405 pos_movable: 103, pos_a: 101, pos_b: 1051406 behaves like able to move a new item1407 can place any new item betwen two others1408 can place any new item after another1409 can place any new item before another1410 behaves like able to move an existing item1411 can place any item betwen two others1412 can place any item after another1413 can place any item before another1414 pos_movable: 103, pos_a: 102, pos_b: 1041415 behaves like able to move a new item1416 can place any new item betwen two others1417 can place any new item after another1418 can place any new item before another1419 behaves like able to move an existing item1420 can place any item betwen two others1421 can place any item after another1422 can place any item before another1423 pos_movable: 103, pos_a: 102, pos_b: 1051424 behaves like able to move a new item1425 can place any new item betwen two others1426 can place any new item after another1427 can place any new item before another1428 behaves like able to move an existing item1429 can place any item betwen two others1430 can place any item after another1431 can place any item before another1432 pos_movable: 103, pos_a: 104, pos_b: 1051433 behaves like able to move a new item1434 can place any new item betwen two others1435 can place any new item after another1436 can place any new item before another1437 behaves like able to move an existing item1438 can place any item betwen two others1439 can place any item after another1440 can place any item before another1441 pos_movable: 104, pos_a: 101, pos_b: 1021442 behaves like able to move a new item1443 can place any new item betwen two others1444 can place any new item after another1445 can place any new item before another1446 behaves like able to move an existing item1447 can place any item betwen two others1448 can place any item after another1449 can place any item before another1450 pos_movable: 104, pos_a: 101, pos_b: 1031451 behaves like able to move a new item1452 can place any new item betwen two others1453 can place any new item after another1454 can place any new item before another1455 behaves like able to move an existing item1456 can place any item betwen two others1457 can place any item after another1458 can place any item before another1459 pos_movable: 104, pos_a: 101, pos_b: 1051460 behaves like able to move a new item1461 can place any new item betwen two others1462 can place any new item after another1463 can place any new item before another1464 behaves like able to move an existing item1465 can place any item betwen two others1466 can place any item after another1467 can place any item before another1468 pos_movable: 104, pos_a: 102, pos_b: 1031469 behaves like able to move a new item1470 can place any new item betwen two others1471 can place any new item after another1472 can place any new item before another1473 behaves like able to move an existing item1474 can place any item betwen two others1475 can place any item after another1476 can place any item before another1477 pos_movable: 104, pos_a: 102, pos_b: 1051478 behaves like able to move a new item1479 can place any new item betwen two others1480 can place any new item after another1481 can place any new item before another1482 behaves like able to move an existing item1483 can place any item betwen two others1484 can place any item after another1485 can place any item before another1486 pos_movable: 104, pos_a: 103, pos_b: 1051487 behaves like able to move a new item1488 can place any new item betwen two others1489 can place any new item after another1490 can place any new item before another1491 behaves like able to move an existing item1492 can place any item betwen two others1493 can place any item after another1494 can place any item before another1495 pos_movable: 105, pos_a: 101, pos_b: 1021496 behaves like able to move a new item1497 can place any new item betwen two others1498 can place any new item after another1499 can place any new item before another1500 behaves like able to move an existing item1501 can place any item betwen two others1502 can place any item after another1503 can place any item before another1504 pos_movable: 105, pos_a: 101, pos_b: 1031505 behaves like able to move a new item1506 can place any new item betwen two others1507 can place any new item after another1508 can place any new item before another1509 behaves like able to move an existing item1510 can place any item betwen two others1511 can place any item after another1512 can place any item before another1513 pos_movable: 105, pos_a: 101, pos_b: 1041514 behaves like able to move a new item1515 can place any new item betwen two others1516 can place any new item after another1517 can place any new item before another1518 behaves like able to move an existing item1519 can place any item betwen two others1520 can place any item after another1521 can place any item before another1522 pos_movable: 105, pos_a: 102, pos_b: 1031523 behaves like able to move a new item1524 can place any new item betwen two others1525 can place any new item after another1526 can place any new item before another1527 behaves like able to move an existing item1528 can place any item betwen two others1529 can place any item after another1530 can place any item before another1531 pos_movable: 105, pos_a: 102, pos_b: 1041532 behaves like able to move a new item1533 can place any new item betwen two others1534 can place any new item after another1535 can place any new item before another1536 behaves like able to move an existing item1537 can place any item betwen two others1538 can place any item after another1539 can place any item before another1540 pos_movable: 105, pos_a: 103, pos_b: 1041541 behaves like able to move a new item1542 can place any new item betwen two others1543 can place any new item after another1544 can place any new item before another1545 behaves like able to move an existing item1546 can place any item betwen two others1547 can place any item after another1548 can place any item before another1549 at least one position is free1550 free_space: 101, index: 3, pos_a: 2, pos_b: 31551 behaves like able to move a new item1552 can place any new item betwen two others1553 can place any new item after another1554 can place any new item before another1555 behaves like able to move an existing item1556 can place any item betwen two others1557 can place any item after another1558 can place any item before another1559 free_space: 101, index: 3, pos_a: 1, pos_b: 31560 behaves like able to move a new item1561 can place any new item betwen two others1562 can place any new item after another1563 can place any new item before another1564 behaves like able to move an existing item1565 can place any item betwen two others1566 can place any item after another1567 can place any item before another1568 free_space: 101, index: 3, pos_a: 1, pos_b: 21569 behaves like able to move a new item1570 can place any new item betwen two others1571 can place any new item after another1572 can place any new item before another1573 behaves like able to move an existing item1574 can place any item betwen two others1575 can place any item after another1576 can place any item before another1577 free_space: 101, index: 3, pos_a: 0, pos_b: 31578 behaves like able to move a new item1579 can place any new item betwen two others1580 can place any new item after another1581 can place any new item before another1582 behaves like able to move an existing item1583 can place any item betwen two others1584 can place any item after another1585 can place any item before another1586 free_space: 101, index: 3, pos_a: 0, pos_b: 21587 behaves like able to move a new item1588 can place any new item betwen two others1589 can place any new item after another1590 can place any new item before another1591 behaves like able to move an existing item1592 can place any item betwen two others1593 can place any item after another1594 can place any item before another1595 free_space: 101, index: 3, pos_a: 0, pos_b: 11596 behaves like able to move a new item1597 can place any new item betwen two others1598 can place any new item after another1599 can place any new item before another1600 behaves like able to move an existing item1601 can place any item betwen two others1602 can place any item after another1603 can place any item before another1604 free_space: 101, index: 2, pos_a: 2, pos_b: 31605 behaves like able to move a new item1606 can place any new item betwen two others1607 can place any new item after another1608 can place any new item before another1609 behaves like able to move an existing item1610 can place any item betwen two others1611 can place any item after another1612 can place any item before another1613 free_space: 101, index: 2, pos_a: 1, pos_b: 31614 behaves like able to move a new item1615 can place any new item betwen two others1616 can place any new item after another1617 can place any new item before another1618 behaves like able to move an existing item1619 can place any item betwen two others1620 can place any item after another1621 can place any item before another1622 free_space: 101, index: 2, pos_a: 1, pos_b: 21623 behaves like able to move a new item1624 can place any new item betwen two others1625 can place any new item after another1626 can place any new item before another1627 behaves like able to move an existing item1628 can place any item betwen two others1629 can place any item after another1630 can place any item before another1631 free_space: 101, index: 2, pos_a: 0, pos_b: 31632 behaves like able to move a new item1633 can place any new item betwen two others1634 can place any new item after another1635 can place any new item before another1636 behaves like able to move an existing item1637 can place any item betwen two others1638 can place any item after another1639 can place any item before another1640 free_space: 101, index: 2, pos_a: 0, pos_b: 21641 behaves like able to move a new item1642 can place any new item betwen two others1643 can place any new item after another1644 can place any new item before another1645 behaves like able to move an existing item1646 can place any item betwen two others1647 can place any item after another1648 can place any item before another1649 free_space: 101, index: 2, pos_a: 0, pos_b: 11650 behaves like able to move a new item1651 can place any new item betwen two others1652 can place any new item after another1653 can place any new item before another1654 behaves like able to move an existing item1655 can place any item betwen two others1656 can place any item after another1657 can place any item before another1658 free_space: 101, index: 1, pos_a: 2, pos_b: 31659 behaves like able to move a new item1660 can place any new item betwen two others1661 can place any new item after another1662 can place any new item before another1663 behaves like able to move an existing item1664 can place any item betwen two others1665 can place any item after another1666 can place any item before another1667 free_space: 101, index: 1, pos_a: 1, pos_b: 31668 behaves like able to move a new item1669 can place any new item betwen two others1670 can place any new item after another1671 can place any new item before another1672 behaves like able to move an existing item1673 can place any item betwen two others1674 can place any item after another1675 can place any item before another1676 free_space: 101, index: 1, pos_a: 1, pos_b: 21677 behaves like able to move a new item1678 can place any new item betwen two others1679 can place any new item after another1680 can place any new item before another1681 behaves like able to move an existing item1682 can place any item betwen two others1683 can place any item after another1684 can place any item before another1685 free_space: 101, index: 1, pos_a: 0, pos_b: 31686 behaves like able to move a new item1687 can place any new item betwen two others1688 can place any new item after another1689 can place any new item before another1690 behaves like able to move an existing item1691 can place any item betwen two others1692 can place any item after another1693 can place any item before another1694 free_space: 101, index: 1, pos_a: 0, pos_b: 21695 behaves like able to move a new item1696 can place any new item betwen two others1697 can place any new item after another1698 can place any new item before another1699 behaves like able to move an existing item1700 can place any item betwen two others1701 can place any item after another1702 can place any item before another1703 free_space: 101, index: 1, pos_a: 0, pos_b: 11704 behaves like able to move a new item1705 can place any new item betwen two others1706 can place any new item after another1707 can place any new item before another1708 behaves like able to move an existing item1709 can place any item betwen two others1710 can place any item after another1711 can place any item before another1712 free_space: 101, index: 0, pos_a: 2, pos_b: 31713 behaves like able to move a new item1714 can place any new item betwen two others1715 can place any new item after another1716 can place any new item before another1717 behaves like able to move an existing item1718 can place any item betwen two others1719 can place any item after another1720 can place any item before another1721 free_space: 101, index: 0, pos_a: 1, pos_b: 31722 behaves like able to move a new item1723 can place any new item betwen two others1724 can place any new item after another1725 can place any new item before another1726 behaves like able to move an existing item1727 can place any item betwen two others1728 can place any item after another1729 can place any item before another1730 free_space: 101, index: 0, pos_a: 1, pos_b: 21731 behaves like able to move a new item1732 can place any new item betwen two others1733 can place any new item after another1734 can place any new item before another1735 behaves like able to move an existing item1736 can place any item betwen two others1737 can place any item after another1738 can place any item before another1739 free_space: 101, index: 0, pos_a: 0, pos_b: 31740 behaves like able to move a new item1741 can place any new item betwen two others1742 can place any new item after another1743 can place any new item before another1744 behaves like able to move an existing item1745 can place any item betwen two others1746 can place any item after another1747 can place any item before another1748 free_space: 101, index: 0, pos_a: 0, pos_b: 21749 behaves like able to move a new item1750 can place any new item betwen two others1751 can place any new item after another1752 can place any new item before another1753 behaves like able to move an existing item1754 can place any item betwen two others1755 can place any item after another1756 can place any item before another1757 free_space: 101, index: 0, pos_a: 0, pos_b: 11758 behaves like able to move a new item1759 can place any new item betwen two others1760 can place any new item after another1761 can place any new item before another1762 behaves like able to move an existing item1763 can place any item betwen two others1764 can place any item after another1765 can place any item before another1766 free_space: 102, index: 3, pos_a: 2, pos_b: 31767 behaves like able to move a new item1768 can place any new item betwen two others1769 can place any new item after another1770 can place any new item before another1771 behaves like able to move an existing item1772 can place any item betwen two others1773 can place any item after another1774 can place any item before another1775 free_space: 102, index: 3, pos_a: 1, pos_b: 31776 behaves like able to move a new item1777 can place any new item betwen two others1778 can place any new item after another1779 can place any new item before another1780 behaves like able to move an existing item1781 can place any item betwen two others1782 can place any item after another1783 can place any item before another1784 free_space: 102, index: 3, pos_a: 1, pos_b: 21785 behaves like able to move a new item1786 can place any new item betwen two others1787 can place any new item after another1788 can place any new item before another1789 behaves like able to move an existing item1790 can place any item betwen two others1791 can place any item after another1792 can place any item before another1793 free_space: 102, index: 3, pos_a: 0, pos_b: 31794 behaves like able to move a new item1795 can place any new item betwen two others1796 can place any new item after another1797 can place any new item before another1798 behaves like able to move an existing item1799 can place any item betwen two others1800 can place any item after another1801 can place any item before another1802 free_space: 102, index: 3, pos_a: 0, pos_b: 21803 behaves like able to move a new item1804 can place any new item betwen two others1805 can place any new item after another1806 can place any new item before another1807 behaves like able to move an existing item1808 can place any item betwen two others1809 can place any item after another1810 can place any item before another1811 free_space: 102, index: 3, pos_a: 0, pos_b: 11812 behaves like able to move a new item1813 can place any new item betwen two others1814 can place any new item after another1815 can place any new item before another1816 behaves like able to move an existing item1817 can place any item betwen two others1818 can place any item after another1819 can place any item before another1820 free_space: 102, index: 2, pos_a: 2, pos_b: 31821 behaves like able to move a new item1822 can place any new item betwen two others1823 can place any new item after another1824 can place any new item before another1825 behaves like able to move an existing item1826 can place any item betwen two others1827 can place any item after another1828 can place any item before another1829 free_space: 102, index: 2, pos_a: 1, pos_b: 31830 behaves like able to move a new item1831 can place any new item betwen two others1832 can place any new item after another1833 can place any new item before another1834 behaves like able to move an existing item1835 can place any item betwen two others1836 can place any item after another1837 can place any item before another1838 free_space: 102, index: 2, pos_a: 1, pos_b: 21839 behaves like able to move a new item1840 can place any new item betwen two others1841 can place any new item after another1842 can place any new item before another1843 behaves like able to move an existing item1844 can place any item betwen two others1845 can place any item after another1846 can place any item before another1847 free_space: 102, index: 2, pos_a: 0, pos_b: 31848 behaves like able to move a new item1849 can place any new item betwen two others1850 can place any new item after another1851 can place any new item before another1852 behaves like able to move an existing item1853 can place any item betwen two others1854 can place any item after another1855 can place any item before another1856 free_space: 102, index: 2, pos_a: 0, pos_b: 21857 behaves like able to move a new item1858 can place any new item betwen two others1859 can place any new item after another1860 can place any new item before another1861 behaves like able to move an existing item1862 can place any item betwen two others1863 can place any item after another1864 can place any item before another1865 free_space: 102, index: 2, pos_a: 0, pos_b: 11866 behaves like able to move a new item1867 can place any new item betwen two others1868 can place any new item after another1869 can place any new item before another1870 behaves like able to move an existing item1871 can place any item betwen two others1872 can place any item after another1873 can place any item before another1874 free_space: 102, index: 1, pos_a: 2, pos_b: 31875 behaves like able to move a new item1876 can place any new item betwen two others1877 can place any new item after another1878 can place any new item before another1879 behaves like able to move an existing item1880 can place any item betwen two others1881 can place any item after another1882 can place any item before another1883 free_space: 102, index: 1, pos_a: 1, pos_b: 31884 behaves like able to move a new item1885 can place any new item betwen two others1886 can place any new item after another1887 can place any new item before another1888 behaves like able to move an existing item1889 can place any item betwen two others1890 can place any item after another1891 can place any item before another1892 free_space: 102, index: 1, pos_a: 1, pos_b: 21893 behaves like able to move a new item1894 can place any new item betwen two others1895 can place any new item after another1896 can place any new item before another1897 behaves like able to move an existing item1898 can place any item betwen two others1899 can place any item after another1900 can place any item before another1901 free_space: 102, index: 1, pos_a: 0, pos_b: 31902 behaves like able to move a new item1903 can place any new item betwen two others1904 can place any new item after another1905 can place any new item before another1906 behaves like able to move an existing item1907 can place any item betwen two others1908 can place any item after another1909 can place any item before another1910 free_space: 102, index: 1, pos_a: 0, pos_b: 21911 behaves like able to move a new item1912 can place any new item betwen two others1913 can place any new item after another1914 can place any new item before another1915 behaves like able to move an existing item1916 can place any item betwen two others1917 can place any item after another1918 can place any item before another1919 free_space: 102, index: 1, pos_a: 0, pos_b: 11920 behaves like able to move a new item1921 can place any new item betwen two others1922 can place any new item after another1923 can place any new item before another1924 behaves like able to move an existing item1925 can place any item betwen two others1926 can place any item after another1927 can place any item before another1928 free_space: 102, index: 0, pos_a: 2, pos_b: 31929 behaves like able to move a new item1930 can place any new item betwen two others1931 can place any new item after another1932 can place any new item before another1933 behaves like able to move an existing item1934 can place any item betwen two others1935 can place any item after another1936 can place any item before another1937 free_space: 102, index: 0, pos_a: 1, pos_b: 31938 behaves like able to move a new item1939 can place any new item betwen two others1940 can place any new item after another1941 can place any new item before another1942 behaves like able to move an existing item1943 can place any item betwen two others1944 can place any item after another1945 can place any item before another1946 free_space: 102, index: 0, pos_a: 1, pos_b: 21947 behaves like able to move a new item1948 can place any new item betwen two others1949 can place any new item after another1950 can place any new item before another1951 behaves like able to move an existing item1952 can place any item betwen two others1953 can place any item after another1954 can place any item before another1955 free_space: 102, index: 0, pos_a: 0, pos_b: 31956 behaves like able to move a new item1957 can place any new item betwen two others1958 can place any new item after another1959 can place any new item before another1960 behaves like able to move an existing item1961 can place any item betwen two others1962 can place any item after another1963 can place any item before another1964 free_space: 102, index: 0, pos_a: 0, pos_b: 21965 behaves like able to move a new item1966 can place any new item betwen two others1967 can place any new item after another1968 can place any new item before another1969 behaves like able to move an existing item1970 can place any item betwen two others1971 can place any item after another1972 can place any item before another1973 free_space: 102, index: 0, pos_a: 0, pos_b: 11974 behaves like able to move a new item1975 can place any new item betwen two others1976 can place any new item after another1977 can place any new item before another1978 behaves like able to move an existing item1979 can place any item betwen two others1980 can place any item after another1981 can place any item before another1982 free_space: 103, index: 3, pos_a: 2, pos_b: 31983 behaves like able to move a new item1984 can place any new item betwen two others1985 can place any new item after another1986 can place any new item before another1987 behaves like able to move an existing item1988 can place any item betwen two others1989 can place any item after another1990 can place any item before another1991 free_space: 103, index: 3, pos_a: 1, pos_b: 31992 behaves like able to move a new item1993 can place any new item betwen two others1994 can place any new item after another1995 can place any new item before another1996 behaves like able to move an existing item1997 can place any item betwen two others1998 can place any item after another1999 can place any item before another2000 free_space: 103, index: 3, pos_a: 1, pos_b: 22001 behaves like able to move a new item2002 can place any new item betwen two others2003 can place any new item after another2004 can place any new item before another2005 behaves like able to move an existing item2006 can place any item betwen two others2007 can place any item after another2008 can place any item before another2009 free_space: 103, index: 3, pos_a: 0, pos_b: 32010 behaves like able to move a new item2011 can place any new item betwen two others2012 can place any new item after another2013 can place any new item before another2014 behaves like able to move an existing item2015 can place any item betwen two others2016 can place any item after another2017 can place any item before another2018 free_space: 103, index: 3, pos_a: 0, pos_b: 22019 behaves like able to move a new item2020 can place any new item betwen two others2021 can place any new item after another2022 can place any new item before another2023 behaves like able to move an existing item2024 can place any item betwen two others2025 can place any item after another2026 can place any item before another2027 free_space: 103, index: 3, pos_a: 0, pos_b: 12028 behaves like able to move a new item2029 can place any new item betwen two others2030 can place any new item after another2031 can place any new item before another2032 behaves like able to move an existing item2033 can place any item betwen two others2034 can place any item after another2035 can place any item before another2036 free_space: 103, index: 2, pos_a: 2, pos_b: 32037 behaves like able to move a new item2038 can place any new item betwen two others2039 can place any new item after another2040 can place any new item before another2041 behaves like able to move an existing item2042 can place any item betwen two others2043 can place any item after another2044 can place any item before another2045 free_space: 103, index: 2, pos_a: 1, pos_b: 32046 behaves like able to move a new item2047 can place any new item betwen two others2048 can place any new item after another2049 can place any new item before another2050 behaves like able to move an existing item2051 can place any item betwen two others2052 can place any item after another2053 can place any item before another2054 free_space: 103, index: 2, pos_a: 1, pos_b: 22055 behaves like able to move a new item2056 can place any new item betwen two others2057 can place any new item after another2058 can place any new item before another2059 behaves like able to move an existing item2060 can place any item betwen two others2061 can place any item after another2062 can place any item before another2063 free_space: 103, index: 2, pos_a: 0, pos_b: 32064 behaves like able to move a new item2065 can place any new item betwen two others2066 can place any new item after another2067 can place any new item before another2068 behaves like able to move an existing item2069 can place any item betwen two others2070 can place any item after another2071 can place any item before another2072 free_space: 103, index: 2, pos_a: 0, pos_b: 22073 behaves like able to move a new item2074 can place any new item betwen two others2075 can place any new item after another2076 can place any new item before another2077 behaves like able to move an existing item2078 can place any item betwen two others2079 can place any item after another2080 can place any item before another2081 free_space: 103, index: 2, pos_a: 0, pos_b: 12082 behaves like able to move a new item2083 can place any new item betwen two others2084 can place any new item after another2085 can place any new item before another2086 behaves like able to move an existing item2087 can place any item betwen two others2088 can place any item after another2089 can place any item before another2090 free_space: 103, index: 1, pos_a: 2, pos_b: 32091 behaves like able to move a new item2092 can place any new item betwen two others2093 can place any new item after another2094 can place any new item before another2095 behaves like able to move an existing item2096 can place any item betwen two others2097 can place any item after another2098 can place any item before another2099 free_space: 103, index: 1, pos_a: 1, pos_b: 32100 behaves like able to move a new item2101 can place any new item betwen two others2102 can place any new item after another2103 can place any new item before another2104 behaves like able to move an existing item2105 can place any item betwen two others2106 can place any item after another2107 can place any item before another2108 free_space: 103, index: 1, pos_a: 1, pos_b: 22109 behaves like able to move a new item2110 can place any new item betwen two others2111 can place any new item after another2112 can place any new item before another2113 behaves like able to move an existing item2114 can place any item betwen two others2115 can place any item after another2116 can place any item before another2117 free_space: 103, index: 1, pos_a: 0, pos_b: 32118 behaves like able to move a new item2119 can place any new item betwen two others2120 can place any new item after another2121 can place any new item before another2122 behaves like able to move an existing item2123 can place any item betwen two others2124 can place any item after another2125 can place any item before another2126 free_space: 103, index: 1, pos_a: 0, pos_b: 22127 behaves like able to move a new item2128 can place any new item betwen two others2129 can place any new item after another2130 can place any new item before another2131 behaves like able to move an existing item2132 can place any item betwen two others2133 can place any item after another2134 can place any item before another2135 free_space: 103, index: 1, pos_a: 0, pos_b: 12136 behaves like able to move a new item2137 can place any new item betwen two others2138 can place any new item after another2139 can place any new item before another2140 behaves like able to move an existing item2141 can place any item betwen two others2142 can place any item after another2143 can place any item before another2144 free_space: 103, index: 0, pos_a: 2, pos_b: 32145 behaves like able to move a new item2146 can place any new item betwen two others2147 can place any new item after another2148 can place any new item before another2149 behaves like able to move an existing item2150 can place any item betwen two others2151 can place any item after another2152 can place any item before another2153 free_space: 103, index: 0, pos_a: 1, pos_b: 32154 behaves like able to move a new item2155 can place any new item betwen two others2156 can place any new item after another2157 can place any new item before another2158 behaves like able to move an existing item2159 can place any item betwen two others2160 can place any item after another2161 can place any item before another2162 free_space: 103, index: 0, pos_a: 1, pos_b: 22163 behaves like able to move a new item2164 can place any new item betwen two others2165 can place any new item after another2166 can place any new item before another2167 behaves like able to move an existing item2168 can place any item betwen two others2169 can place any item after another2170 can place any item before another2171 free_space: 103, index: 0, pos_a: 0, pos_b: 32172 behaves like able to move a new item2173 can place any new item betwen two others2174 can place any new item after another2175 can place any new item before another2176 behaves like able to move an existing item2177 can place any item betwen two others2178 can place any item after another2179 can place any item before another2180 free_space: 103, index: 0, pos_a: 0, pos_b: 22181 behaves like able to move a new item2182 can place any new item betwen two others2183 can place any new item after another2184 can place any new item before another2185 behaves like able to move an existing item2186 can place any item betwen two others2187 can place any item after another2188 can place any item before another2189 free_space: 103, index: 0, pos_a: 0, pos_b: 12190 behaves like able to move a new item2191 can place any new item betwen two others2192 can place any new item after another2193 can place any new item before another2194 behaves like able to move an existing item2195 can place any item betwen two others2196 can place any item after another2197 can place any item before another2198 free_space: 104, index: 3, pos_a: 2, pos_b: 32199 behaves like able to move a new item2200 can place any new item betwen two others2201 can place any new item after another2202 can place any new item before another2203 behaves like able to move an existing item2204 can place any item betwen two others2205 can place any item after another2206 can place any item before another2207 free_space: 104, index: 3, pos_a: 1, pos_b: 32208 behaves like able to move a new item2209 can place any new item betwen two others2210 can place any new item after another2211 can place any new item before another2212 behaves like able to move an existing item2213 can place any item betwen two others2214 can place any item after another2215 can place any item before another2216 free_space: 104, index: 3, pos_a: 1, pos_b: 22217 behaves like able to move a new item2218 can place any new item betwen two others2219 can place any new item after another2220 can place any new item before another2221 behaves like able to move an existing item2222 can place any item betwen two others2223 can place any item after another2224 can place any item before another2225 free_space: 104, index: 3, pos_a: 0, pos_b: 32226 behaves like able to move a new item2227 can place any new item betwen two others2228 can place any new item after another2229 can place any new item before another2230 behaves like able to move an existing item2231 can place any item betwen two others2232 can place any item after another2233 can place any item before another2234 free_space: 104, index: 3, pos_a: 0, pos_b: 22235 behaves like able to move a new item2236 can place any new item betwen two others2237 can place any new item after another2238 can place any new item before another2239 behaves like able to move an existing item2240 can place any item betwen two others2241 can place any item after another2242 can place any item before another2243 free_space: 104, index: 3, pos_a: 0, pos_b: 12244 behaves like able to move a new item2245 can place any new item betwen two others2246 can place any new item after another2247 can place any new item before another2248 behaves like able to move an existing item2249 can place any item betwen two others2250 can place any item after another2251 can place any item before another2252 free_space: 104, index: 2, pos_a: 2, pos_b: 32253 behaves like able to move a new item2254 can place any new item betwen two others2255 can place any new item after another2256 can place any new item before another2257 behaves like able to move an existing item2258 can place any item betwen two others2259 can place any item after another2260 can place any item before another2261 free_space: 104, index: 2, pos_a: 1, pos_b: 32262 behaves like able to move a new item2263 can place any new item betwen two others2264 can place any new item after another2265 can place any new item before another2266 behaves like able to move an existing item2267 can place any item betwen two others2268 can place any item after another2269 can place any item before another2270 free_space: 104, index: 2, pos_a: 1, pos_b: 22271 behaves like able to move a new item2272 can place any new item betwen two others2273 can place any new item after another2274 can place any new item before another2275 behaves like able to move an existing item2276 can place any item betwen two others2277 can place any item after another2278 can place any item before another2279 free_space: 104, index: 2, pos_a: 0, pos_b: 32280 behaves like able to move a new item2281 can place any new item betwen two others2282 can place any new item after another2283 can place any new item before another2284 behaves like able to move an existing item2285 can place any item betwen two others2286 can place any item after another2287 can place any item before another2288 free_space: 104, index: 2, pos_a: 0, pos_b: 22289 behaves like able to move a new item2290 can place any new item betwen two others2291 can place any new item after another2292 can place any new item before another2293 behaves like able to move an existing item2294 can place any item betwen two others2295 can place any item after another2296 can place any item before another2297 free_space: 104, index: 2, pos_a: 0, pos_b: 12298 behaves like able to move a new item2299 can place any new item betwen two others2300 can place any new item after another2301 can place any new item before another2302 behaves like able to move an existing item2303 can place any item betwen two others2304 can place any item after another2305 can place any item before another2306 free_space: 104, index: 1, pos_a: 2, pos_b: 32307 behaves like able to move a new item2308 can place any new item betwen two others2309 can place any new item after another2310 can place any new item before another2311 behaves like able to move an existing item2312 can place any item betwen two others2313 can place any item after another2314 can place any item before another2315 free_space: 104, index: 1, pos_a: 1, pos_b: 32316 behaves like able to move a new item2317 can place any new item betwen two others2318 can place any new item after another2319 can place any new item before another2320 behaves like able to move an existing item2321 can place any item betwen two others2322 can place any item after another2323 can place any item before another2324 free_space: 104, index: 1, pos_a: 1, pos_b: 22325 behaves like able to move a new item2326 can place any new item betwen two others2327 can place any new item after another2328 can place any new item before another2329 behaves like able to move an existing item2330 can place any item betwen two others2331 can place any item after another2332 can place any item before another2333 free_space: 104, index: 1, pos_a: 0, pos_b: 32334 behaves like able to move a new item2335 can place any new item betwen two others2336 can place any new item after another2337 can place any new item before another2338 behaves like able to move an existing item2339 can place any item betwen two others2340 can place any item after another2341 can place any item before another2342 free_space: 104, index: 1, pos_a: 0, pos_b: 22343 behaves like able to move a new item2344 can place any new item betwen two others2345 can place any new item after another2346 can place any new item before another2347 behaves like able to move an existing item2348 can place any item betwen two others2349 can place any item after another2350 can place any item before another2351 free_space: 104, index: 1, pos_a: 0, pos_b: 12352 behaves like able to move a new item2353 can place any new item betwen two others2354 can place any new item after another2355 can place any new item before another2356 behaves like able to move an existing item2357 can place any item betwen two others2358 can place any item after another2359 can place any item before another2360 free_space: 104, index: 0, pos_a: 2, pos_b: 32361 behaves like able to move a new item2362 can place any new item betwen two others2363 can place any new item after another2364 can place any new item before another2365 behaves like able to move an existing item2366 can place any item betwen two others2367 can place any item after another2368 can place any item before another2369 free_space: 104, index: 0, pos_a: 1, pos_b: 32370 behaves like able to move a new item2371 can place any new item betwen two others2372 can place any new item after another2373 can place any new item before another2374 behaves like able to move an existing item2375 can place any item betwen two others2376 can place any item after another2377 can place any item before another2378 free_space: 104, index: 0, pos_a: 1, pos_b: 22379 behaves like able to move a new item2380 can place any new item betwen two others2381 can place any new item after another2382 can place any new item before another2383 behaves like able to move an existing item2384 can place any item betwen two others2385 can place any item after another2386 can place any item before another2387 free_space: 104, index: 0, pos_a: 0, pos_b: 32388 behaves like able to move a new item2389 can place any new item betwen two others2390 can place any new item after another2391 can place any new item before another2392 behaves like able to move an existing item2393 can place any item betwen two others2394 can place any item after another2395 can place any item before another2396 free_space: 104, index: 0, pos_a: 0, pos_b: 22397 behaves like able to move a new item2398 can place any new item betwen two others2399 can place any new item after another2400 can place any new item before another2401 behaves like able to move an existing item2402 can place any item betwen two others2403 can place any item after another2404 can place any item before another2405 free_space: 104, index: 0, pos_a: 0, pos_b: 12406 behaves like able to move a new item2407 can place any new item betwen two others2408 can place any new item after another2409 can place any new item before another2410 behaves like able to move an existing item2411 can place any item betwen two others2412 can place any item after another2413 can place any item before another2414 free_space: 105, index: 3, pos_a: 2, pos_b: 32415 behaves like able to move a new item2416 can place any new item betwen two others2417 can place any new item after another2418 can place any new item before another2419 behaves like able to move an existing item2420 can place any item betwen two others2421 can place any item after another2422 can place any item before another2423 free_space: 105, index: 3, pos_a: 1, pos_b: 32424 behaves like able to move a new item2425 can place any new item betwen two others2426 can place any new item after another2427 can place any new item before another2428 behaves like able to move an existing item2429 can place any item betwen two others2430 can place any item after another2431 can place any item before another2432 free_space: 105, index: 3, pos_a: 1, pos_b: 22433 behaves like able to move a new item2434 can place any new item betwen two others2435 can place any new item after another2436 can place any new item before another2437 behaves like able to move an existing item2438 can place any item betwen two others2439 can place any item after another2440 can place any item before another2441 free_space: 105, index: 3, pos_a: 0, pos_b: 32442 behaves like able to move a new item2443 can place any new item betwen two others2444 can place any new item after another2445 can place any new item before another2446 behaves like able to move an existing item2447 can place any item betwen two others2448 can place any item after another2449 can place any item before another2450 free_space: 105, index: 3, pos_a: 0, pos_b: 22451 behaves like able to move a new item2452 can place any new item betwen two others2453 can place any new item after another2454 can place any new item before another2455 behaves like able to move an existing item2456 can place any item betwen two others2457 can place any item after another2458 can place any item before another2459 free_space: 105, index: 3, pos_a: 0, pos_b: 12460 behaves like able to move a new item2461 can place any new item betwen two others2462 can place any new item after another2463 can place any new item before another2464 behaves like able to move an existing item2465 can place any item betwen two others2466 can place any item after another2467 can place any item before another2468 free_space: 105, index: 2, pos_a: 2, pos_b: 32469 behaves like able to move a new item2470 can place any new item betwen two others2471 can place any new item after another2472 can place any new item before another2473 behaves like able to move an existing item2474 can place any item betwen two others2475 can place any item after another2476 can place any item before another2477 free_space: 105, index: 2, pos_a: 1, pos_b: 32478 behaves like able to move a new item2479 can place any new item betwen two others2480 can place any new item after another2481 can place any new item before another2482 behaves like able to move an existing item2483 can place any item betwen two others2484 can place any item after another2485 can place any item before another2486 free_space: 105, index: 2, pos_a: 1, pos_b: 22487 behaves like able to move a new item2488 can place any new item betwen two others2489 can place any new item after another2490 can place any new item before another2491 behaves like able to move an existing item2492 can place any item betwen two others2493 can place any item after another2494 can place any item before another2495 free_space: 105, index: 2, pos_a: 0, pos_b: 32496 behaves like able to move a new item2497 can place any new item betwen two others2498 can place any new item after another2499 can place any new item before another2500 behaves like able to move an existing item2501 can place any item betwen two others2502 can place any item after another2503 can place any item before another2504 free_space: 105, index: 2, pos_a: 0, pos_b: 22505 behaves like able to move a new item2506 can place any new item betwen two others2507 can place any new item after another2508 can place any new item before another2509 behaves like able to move an existing item2510 can place any item betwen two others2511 can place any item after another2512 can place any item before another2513 free_space: 105, index: 2, pos_a: 0, pos_b: 12514 behaves like able to move a new item2515 can place any new item betwen two others2516 can place any new item after another2517 can place any new item before another2518 behaves like able to move an existing item2519 can place any item betwen two others2520 can place any item after another2521 can place any item before another2522 free_space: 105, index: 1, pos_a: 2, pos_b: 32523 behaves like able to move a new item2524 can place any new item betwen two others2525 can place any new item after another2526 can place any new item before another2527 behaves like able to move an existing item2528 can place any item betwen two others2529 can place any item after another2530 can place any item before another2531 free_space: 105, index: 1, pos_a: 1, pos_b: 32532 behaves like able to move a new item2533 can place any new item betwen two others2534 can place any new item after another2535 can place any new item before another2536 behaves like able to move an existing item2537 can place any item betwen two others2538 can place any item after another2539 can place any item before another2540 free_space: 105, index: 1, pos_a: 1, pos_b: 22541 behaves like able to move a new item2542 can place any new item betwen two others2543 can place any new item after another2544 can place any new item before another2545 behaves like able to move an existing item2546 can place any item betwen two others2547 can place any item after another2548 can place any item before another2549 free_space: 105, index: 1, pos_a: 0, pos_b: 32550 behaves like able to move a new item2551 can place any new item betwen two others2552 can place any new item after another2553 can place any new item before another2554 behaves like able to move an existing item2555 can place any item betwen two others2556 can place any item after another2557 can place any item before another2558 free_space: 105, index: 1, pos_a: 0, pos_b: 22559 behaves like able to move a new item2560 can place any new item betwen two others2561 can place any new item after another2562 can place any new item before another2563 behaves like able to move an existing item2564 can place any item betwen two others2565 can place any item after another2566 can place any item before another2567 free_space: 105, index: 1, pos_a: 0, pos_b: 12568 behaves like able to move a new item2569 can place any new item betwen two others2570 can place any new item after another2571 can place any new item before another2572 behaves like able to move an existing item2573 can place any item betwen two others2574 can place any item after another2575 can place any item before another2576 free_space: 105, index: 0, pos_a: 2, pos_b: 32577 behaves like able to move a new item2578 can place any new item betwen two others2579 can place any new item after another2580 can place any new item before another2581 behaves like able to move an existing item2582 can place any item betwen two others2583 can place any item after another2584 can place any item before another2585 free_space: 105, index: 0, pos_a: 1, pos_b: 32586 behaves like able to move a new item2587 can place any new item betwen two others2588 can place any new item after another2589 can place any new item before another2590 behaves like able to move an existing item2591 can place any item betwen two others2592 can place any item after another2593 can place any item before another2594 free_space: 105, index: 0, pos_a: 1, pos_b: 22595 behaves like able to move a new item2596 can place any new item betwen two others2597 can place any new item after another2598 can place any new item before another2599 behaves like able to move an existing item2600 can place any item betwen two others2601 can place any item after another2602 can place any item before another2603 free_space: 105, index: 0, pos_a: 0, pos_b: 32604 behaves like able to move a new item2605 can place any new item betwen two others2606 can place any new item after another2607 can place any new item before another2608 behaves like able to move an existing item2609 can place any item betwen two others2610 can place any item after another2611 can place any item before another2612 free_space: 105, index: 0, pos_a: 0, pos_b: 22613 behaves like able to move a new item2614 can place any new item betwen two others2615 can place any new item after another2616 can place any new item before another2617 behaves like able to move an existing item2618 can place any item betwen two others2619 can place any item after another2620 can place any item before another2621 free_space: 105, index: 0, pos_a: 0, pos_b: 12622 behaves like able to move a new item2623 can place any new item betwen two others2624 can place any new item after another2625 can place any new item before another2626 behaves like able to move an existing item2627 can place any item betwen two others2628 can place any item after another2629 can place any item before another2630Git::BranchHooksService2631 Git Push Data2632 has expected push data attributes2633 with repository data2634 has expected attributes2635 with commits2636 is expected to be a kind of Array2637 has 1 element2638 the commit2639 is expected to eq 2014-02-27 08:57:31.000000000 +00002640 includes expected commit data2641 with a author2642 includes expected author data2643 Push Event2644 with an existing branch2645 generates a push event with one commit2646 with changing CI config2647 tracks the event2648 when usage ping is disabled2649 does not track the event2650 when the branch is not the main branch2651 does not track the event2652 when the CI config is a different path2653 does not track the event2654 with a new default branch2655 generates a push event with more than one commit2656 with a new non-default branch2657 generates a push event with more than one commit2658 removing a branch2659 generates a push event with no commits2660 Invalidating project cache2661 on default branch2662 create2663 is expected to receive invalidated_file_types(*(any args)) 1 time2664 update2665 is expected to receive perform_async(22, [:readme], [], false) 1 time2666 remove2667 is expected to receive invalidated_file_types(*(any args)) 1 time2668 on ordinary branch2669 create2670 is expected to receive invalidated_file_types(*(any args)) 1 time2671 update2672 is expected to receive invalidated_file_types(*(any args)) 1 time2673 remove2674 is expected to receive invalidated_file_types(*(any args)) 1 time2675 signatures2676 when the commit has a signature2677 when the signature is already cached2678 does not queue a CreateCommitSignatureWorker2679 when the signature is not yet cached2680 queues a CreateCommitSignatureWorker2681 can queue several commits to create the gpg signature2682 when the commit does not have a signature2683 does not queue a CreateCommitSignatureWorker2684 Processing commit messages2685 creating the default branch2686 processes a limited number of commit messages2687 updating the default branch2688 processes a limited number of commit messages2689 removing the default branch2690 does not process commit messages2691 creating a normal branch2692 processes a limited number of commit messages2693 updating a normal branch2694 processes a limited number of commit messages2695 removing a normal branch2696 does not process commit messages2697 when the project is forked2698 when commits already exists in the upstream project2699 does not process commit messages2700 when a commit does not exist in the upstream repo2701 processes the commit message2702 when the upstream project no longer exists2703 processes the commit messages2704 New branch detection2705 oldrev is the blank SHA2706 is treated as a new branch2707 oldrev is set2708 Gitaly does not know about the branch2709 is treated as a new branch2710 Gitaly knows about the branch2711 is not treated as a new branch2712 Metrics dashboard sync2713 with default branch2714 when adding files2715 also related2716 imports metrics to database2717 only unrelated2718 does not sync metrics to database2719 when deleting files2720 also related2721 imports metrics to database2722 only unrelated2723 does not sync metrics to database2724 when updating files2725 also related2726 imports metrics to database2727 only unrelated2728 does not sync metrics to database2729 without changes2730 does not sync metrics to database2731 with other branch2732 does not sync metrics to database2733MergeRequests::BuildService2734 #execute2735 calls the compare service with the correct arguments2736 does not assign force_remove_source_branch2737 with force_remove_source_branch parameter when the user is authorized2738 assigns force_remove_source_branch2739 with project setting remove_source_branch_after_merge false2740 assigns force_remove_source_branch2741 with project setting remove_source_branch_after_merge true2742 assigns force_remove_source_branch2743 with force_remove_source_branch parameter false2744 does not assign force_remove_source_branch2745 missing source branch2746 behaves like forbids the merge request from being created2747 returns that the merge request cannot be created2748 adds an error message to the merge request2749 when target branch is missing2750 when source branch2751 is not the repository default branch2752 creates compare object with target branch as default branch2753 behaves like allows the merge request to be created2754 is expected to eq true2755 the repository default branch2756 behaves like forbids the merge request from being created2757 returns that the merge request cannot be created2758 adds an error message to the merge request2759 when source project is different from the target project2760 creates compare object with target branch as default branch2761 behaves like allows the merge request to be created2762 is expected to eq true2763 same source and target branch2764 behaves like forbids the merge request from being created2765 returns that the merge request cannot be created2766 adds an error message to the merge request2767 no commits in the diff2768 adds a Draft prefix to the merge request title2769 behaves like allows the merge request to be created2770 is expected to eq true2771 one commit in the diff2772 uses the title of the commit as the title of the merge request2773 uses the description of the commit as the description of the merge request2774 behaves like allows the merge request to be created2775 is expected to eq true2776 merge request already has a description set2777 keeps the description from the initial params2778 commit has no description2779 uses the title of the commit as the title of the merge request2780 sets the description to nil2781 when the source branch matches an issue2782 factory: :jira_integration, source_branch: "FOO-123-fix-issue", closing_message: "Closes FOO-123"2783 uses the title of the commit as the title of the merge request2784 appends the closing description2785 factory: :jira_integration, source_branch: "fix-issue", closing_message: nil2786 uses the title of the commit as the title of the merge request2787 appends the closing description2788 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", closing_message: "Closes #123"2789 uses the title of the commit as the title of the merge request2790 appends the closing description2791 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", closing_message: nil2792 uses the title of the commit as the title of the merge request2793 appends the closing description2794 factory: nil, source_branch: "123-fix-issue", closing_message: "Closes #123"2795 uses the title of the commit as the title of the merge request2796 appends the closing description2797 factory: nil, source_branch: "fix-issue", closing_message: nil2798 uses the title of the commit as the title of the merge request2799 appends the closing description2800 when the source branch matches an internal issue2801 assigns the issue label and milestone2802 when milestone_id and label_ids are shared in the params2803 assigns milestone_id and label_ids instead of issue labels and milestone2804 when a milestone is from another project2805 sets milestone to nil2806 no multi-line commit messages in the diff2807 uses the title of the branch as the merge request title2808 does not add a description2809 behaves like allows the merge request to be created2810 is expected to eq true2811 merge request already has a description set2812 keeps the description from the initial params2813 when the source branch matches an issue2814 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"2815 sets the correct title2816 sets the closing description2817 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil2818 sets the correct title2819 sets the closing description2820 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"2821 sets the correct title2822 sets the closing description2823 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil2824 sets the correct title2825 sets the closing description2826 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"2827 sets the correct title2828 sets the closing description2829 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil2830 sets the correct title2831 sets the closing description2832 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil2833 sets the correct title2834 sets the closing description2835 a multi-line commit message in the diff2836 uses the first line of the first multi-line commit message as the title2837 adds the remaining lines of the first multi-line commit message as the description2838 behaves like allows the merge request to be created2839 is expected to eq true2840 when the source branch matches an issue2841 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"2842 sets the correct title2843 sets the closing description2844 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil2845 sets the correct title2846 sets the closing description2847 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"2848 sets the correct title2849 sets the closing description2850 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil2851 sets the correct title2852 sets the closing description2853 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"2854 sets the correct title2855 sets the closing description2856 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil2857 sets the correct title2858 sets the closing description2859 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil2860 sets the correct title2861 sets the closing description2862 when the issue is not accessible to user2863 uses the first line of the first multi-line commit message as the title2864 adds the remaining lines of the first multi-line commit message as the description2865 when the issue is confidential2866 uses the first line of the first multi-line commit message as the title2867 adds the remaining lines of the first multi-line commit message as the description2868 source branch does not exist2869 behaves like forbids the merge request from being created2870 returns that the merge request cannot be created2871 adds an error message to the merge request2872 target branch does not exist2873 behaves like forbids the merge request from being created2874 returns that the merge request cannot be created2875 adds an error message to the merge request2876 both source and target branches do not exist2877 behaves like forbids the merge request from being created2878 returns that the merge request cannot be created2879 adds an error message to the merge request2880 upstream project has disabled merge requests2881 sets target project correctly2882 target_project is set and accessible by current_user2883 sets target project correctly2884 target_project is set but not accessible by current_user2885 sets target project correctly2886 target_project is set but repo is not accessible by current_user2887 sets target project correctly2888 source_project is set and accessible by current_user2889 sets source project correctly2890 source_project is set but not accessible by current_user2891 sets source project correctly2892 source_project is set but the user cannot create merge requests from the project2893 sets the source_project correctly2894 target_project is not in the fork network of source_project2895 adds an error to the merge request2896 target_project is in the fork network of source project but no longer accessible2897 sets the target_project correctly2898 when specifying target branch in the description2899 sets the attribute from the quick actions2900 when assigning labels2901 for members with less than developer access2902 is not allowed2903 for users allowed to assign labels2904 for labels in the project2905 is allowed for developers2906 for unrelated labels2907 only assigns related labels2908Clusters::Gcp::FinalizeCreationService#execute2909 With a legacy ABAC cluster2910 uses ABAC authorization type2911 behaves like success2912 configures provider and kubernetes2913 properly configures database models2914 behaves like kubernetes information not successfully fetched2915 when failed to fetch gke cluster info2916 behaves like error2917 sets an error to provider object2918 when token is empty2919 behaves like error2920 sets an error to provider object2921 when failed to fetch kubernetes token2922 behaves like error2923 sets an error to provider object2924 when service account fails to create2925 behaves like error2926 sets an error to provider object2927 With an RBAC cluster2928 uses RBAC authorization type2929 behaves like success2930 configures provider and kubernetes2931 properly configures database models2932 behaves like kubernetes information not successfully fetched2933 when failed to fetch gke cluster info2934 behaves like error2935 sets an error to provider object2936 when token is empty2937 behaves like error2938 sets an error to provider object2939 when failed to fetch kubernetes token2940 behaves like error2941 sets an error to provider object2942 when service account fails to create2943 behaves like error2944 sets an error to provider object2945 With a Cloud Run cluster2946 has knative pre-installed2947 behaves like success2948 configures provider and kubernetes2949 properly configures database models2950Gitlab::Kubernetes::KubeClient2951 .graceful_request2952 successful2953 returns connected status and foo response2954 errored2955 error: SocketError, connection_status: :unreachable, error_status: :connection_error2956 returns error status2957 error: OpenSSL::X509::CertificateError, connection_status: :authentication_failure, error_status: :authentication_error2958 returns error status2959 error: StandardError, connection_status: :unknown_failure, error_status: :unknown_error2960 returns error status2961 error: #<Kubeclient::HttpError: HTTP status code 408, timed out>, connection_status: :unreachable, error_status: :http_error2962 returns error status2963 error: #<Kubeclient::HttpError: HTTP status code 408, timeout>, connection_status: :unreachable, error_status: :http_error2964 returns error status2965 error: #<Kubeclient::HttpError: HTTP status code 408, >, connection_status: :authentication_failure, error_status: :http_error2966 returns error status2967 #initialize2968 falls back to default options, but allows overriding2969 localhost address2970 behaves like local address2971 blocks local addresses2972 when local requests are allowed2973 allows local addresses2974 private network address2975 behaves like local address2976 blocks local addresses2977 when local requests are allowed2978 allows local addresses2979 #core_client2980 has the core API endpoint2981 has the api_version2982 behaves like a Kubeclient2983 is a Kubeclient::Client2984 has the kubeclient options2985 #rbac_client2986 has the RBAC API group endpoint2987 has the api_version2988 behaves like a Kubeclient2989 is a Kubeclient::Client2990 has the kubeclient options2991 #extensions_client2992 has the extensions API group endpoint2993 has the api_version2994 behaves like a Kubeclient2995 is a Kubeclient::Client2996 has the kubeclient options2997 #istio_client2998 has the Istio API group endpoint2999 has the api_version3000 behaves like a Kubeclient3001 is a Kubeclient::Client3002 has the kubeclient options3003 #knative_client3004 has the extensions API group endpoint3005 has the api_version3006 behaves like a Kubeclient3007 is a Kubeclient::Client3008 has the kubeclient options3009 #networking_client3010 has the networking API group endpoint3011 has the api_version3012 behaves like a Kubeclient3013 is a Kubeclient::Client3014 has the kubeclient options3015 #cilium_networking_client3016 has the cilium API group endpoint3017 has the api_version3018 behaves like a Kubeclient3019 is a Kubeclient::Client3020 has the kubeclient options3021 #metrics_client3022 has the metrics API group endpoint3023 has the api_version3024 behaves like a Kubeclient3025 is a Kubeclient::Client3026 has the kubeclient options3027 core API3028 #get_nodes3029 does not allow DNS rebinding3030 delegates to the core client3031 responds to the method3032 api_url is redirected3033 does not follow redirects3034 #get_pods3035 does not allow DNS rebinding3036 delegates to the core client3037 responds to the method3038 api_url is redirected3039 does not follow redirects3040 #get_secrets3041 does not allow DNS rebinding3042 delegates to the core client3043 responds to the method3044 api_url is redirected3045 does not follow redirects3046 #get_config_map3047 does not allow DNS rebinding3048 delegates to the core client3049 responds to the method3050 api_url is redirected3051 does not follow redirects3052 #get_pod3053 does not allow DNS rebinding3054 delegates to the core client3055 responds to the method3056 api_url is redirected3057 does not follow redirects3058 #get_namespace3059 does not allow DNS rebinding3060 delegates to the core client3061 responds to the method3062 api_url is redirected3063 does not follow redirects3064 #get_secret3065 does not allow DNS rebinding3066 delegates to the core client3067 responds to the method3068 api_url is redirected3069 does not follow redirects3070 #get_service3071 does not allow DNS rebinding3072 delegates to the core client3073 responds to the method3074 api_url is redirected3075 does not follow redirects3076 #get_service_account3077 does not allow DNS rebinding3078 delegates to the core client3079 responds to the method3080 api_url is redirected3081 does not follow redirects3082 #delete_namespace3083 does not allow DNS rebinding3084 delegates to the core client3085 responds to the method3086 api_url is redirected3087 does not follow redirects3088 #delete_pod3089 does not allow DNS rebinding3090 delegates to the core client3091 responds to the method3092 api_url is redirected3093 does not follow redirects3094 #delete_service_account3095 does not allow DNS rebinding3096 delegates to the core client3097 responds to the method3098 api_url is redirected3099 does not follow redirects3100 #create_config_map3101 does not allow DNS rebinding3102 delegates to the core client3103 responds to the method3104 api_url is redirected3105 does not follow redirects3106 #create_namespace3107 does not allow DNS rebinding3108 delegates to the core client3109 responds to the method3110 api_url is redirected3111 does not follow redirects3112 #create_pod3113 does not allow DNS rebinding3114 delegates to the core client3115 responds to the method3116 api_url is redirected3117 does not follow redirects3118 #create_secret3119 does not allow DNS rebinding3120 delegates to the core client3121 responds to the method3122 api_url is redirected3123 does not follow redirects3124 #create_service_account3125 does not allow DNS rebinding3126 delegates to the core client3127 responds to the method3128 api_url is redirected3129 does not follow redirects3130 #update_config_map3131 does not allow DNS rebinding3132 delegates to the core client3133 responds to the method3134 api_url is redirected3135 does not follow redirects3136 #update_secret3137 does not allow DNS rebinding3138 delegates to the core client3139 responds to the method3140 api_url is redirected3141 does not follow redirects3142 #update_service_account3143 does not allow DNS rebinding3144 delegates to the core client3145 responds to the method3146 api_url is redirected3147 does not follow redirects3148 rbac API group3149 #create_role3150 does not allow DNS rebinding3151 delegates to the rbac client3152 responds to the method3153 api_url is redirected3154 does not follow redirects3155 #get_role3156 does not allow DNS rebinding3157 delegates to the rbac client3158 responds to the method3159 api_url is redirected3160 does not follow redirects3161 #update_role3162 does not allow DNS rebinding3163 delegates to the rbac client3164 responds to the method3165 api_url is redirected3166 does not follow redirects3167 #delete_role_binding3168 does not allow DNS rebinding3169 delegates to the rbac client3170 responds to the method3171 api_url is redirected3172 does not follow redirects3173 #update_role_binding3174 does not allow DNS rebinding3175 delegates to the rbac client3176 responds to the method3177 api_url is redirected3178 does not follow redirects3179 #update_cluster_role_binding3180 does not allow DNS rebinding3181 delegates to the rbac client3182 responds to the method3183 api_url is redirected3184 does not follow redirects3185 #get_deployments3186 does not allow DNS rebinding3187 delegates to the extensions client3188 api_url is redirected3189 does not follow redirects3190 extensions does not have deployments for Kubernetes 1.16+ clusters3191 delegates to the apps client3192 #get_ingresses3193 does not allow DNS rebinding3194 delegates to the extensions client3195 api_url is redirected3196 does not follow redirects3197 extensions does not have deployments for Kubernetes 1.22+ clusters3198 delegates to the apps client3199 #patch_ingress3200 does not allow DNS rebinding3201 delegates to the extensions client3202 api_url is redirected3203 does not follow redirects3204 extensions does not have ingress for Kubernetes 1.22+ clusters3205 delegates to the apps client3206 istio API group3207 #create_gateway3208 does not allow DNS rebinding3209 delegates to the istio client3210 responds to the method3211 api_url is redirected3212 does not follow redirects3213 #get_gateway3214 does not allow DNS rebinding3215 delegates to the istio client3216 responds to the method3217 api_url is redirected3218 does not follow redirects3219 #update_gateway3220 does not allow DNS rebinding3221 delegates to the istio client3222 responds to the method3223 api_url is redirected3224 does not follow redirects3225 networking API group3226 #create_network_policy3227 does not allow DNS rebinding3228 delegates to the networking client3229 responds to the method3230 api_url is redirected3231 does not follow redirects3232 #get_network_policies3233 does not allow DNS rebinding3234 delegates to the networking client3235 responds to the method3236 api_url is redirected3237 does not follow redirects3238 #get_network_policy3239 does not allow DNS rebinding3240 delegates to the networking client3241 responds to the method3242 api_url is redirected3243 does not follow redirects3244 #update_network_policy3245 does not allow DNS rebinding3246 delegates to the networking client3247 responds to the method3248 api_url is redirected3249 does not follow redirects3250 #delete_network_policy3251 does not allow DNS rebinding3252 delegates to the networking client3253 responds to the method3254 api_url is redirected3255 does not follow redirects3256 cilium API group3257 #create_cilium_network_policy3258 does not allow DNS rebinding3259 delegates to the cilium client3260 responds to the method3261 api_url is redirected3262 does not follow redirects3263 #get_cilium_network_policies3264 does not allow DNS rebinding3265 delegates to the cilium client3266 responds to the method3267 api_url is redirected3268 does not follow redirects3269 #get_cilium_network_policy3270 does not allow DNS rebinding3271 delegates to the cilium client3272 responds to the method3273 api_url is redirected3274 does not follow redirects3275 #update_cilium_network_policy3276 does not allow DNS rebinding3277 delegates to the cilium client3278 responds to the method3279 api_url is redirected3280 does not follow redirects3281 #delete_cilium_network_policy3282 does not allow DNS rebinding3283 delegates to the cilium client3284 responds to the method3285 api_url is redirected3286 does not follow redirects3287 non-entity methods3288 does not proxy for non-entity methods3289 throws an error3290 #get_pod_log3291 is delegated to the core client3292 #watch_pod_log3293 is delegated to the core client3294 #create_or_update_cluster_role_binding3295 behaves like create_or_update method using put3296 calls the update method3297 #create_or_update_role_binding3298 behaves like create_or_update method using put3299 calls the update method3300 #create_or_update_service_account3301 behaves like create_or_update method3302 resource exists3303 calls the update method3304 resource does not exist3305 calls the create method3306 #create_or_update_secret3307 behaves like create_or_update method3308 resource exists3309 calls the update method3310 resource does not exist3311 calls the create method3312 methods that do not exist on any client3313 throws an error3314 returns false for respond_to3315Gitlab::Graphql::Pagination::Keyset::Connection3316 the relation has been preloaded3317 is loaded3318 does not error when accessing pagination information3319 can generate cursors3320 can read the next page3321 behaves like a connection with collection methods3322 responds to to_a3323 responds to size3324 responds to include?3325 responds to empty?3326 behaves like a redactable connection3327 no redactor set3328 contains the unwanted item3329 does not redact more than once3330 redactor is set3331 does not contain the unwanted item3332 does not redact more than once3333 #cursor_for3334 returns an encoded ID3335 when an order is specified3336 returns the encoded value of the order3337 includes the :id even when not specified in the order3338 when multiple orders are specified3339 returns the encoded value of the order3340 when multiple orders with SQL are specified3341 returns the encoded value of the order3342 #sliced_nodes3343 when before is passed3344 only returns the project before the selected one3345 when the sort order is descending3346 returns the correct nodes3347 when after is passed3348 only returns the project before the selected one3349 when the sort order is descending3350 returns the correct nodes3351 when both before and after are passed3352 returns the expected set3353 when multiple orders with nil values are defined3354 when ascending3355 behaves like nodes are in ascending order3356 when no cursor is passed3357 returns projects in ascending order3358 when before cursor value is not NULL3359 returns all projects before the cursor3360 when after cursor value is not NULL3361 returns all projects after the cursor3362 when before and after cursor3363 returns all projects after the cursor3364 when before cursor value is NULL3365 returns all projects before the cursor3366 when after cursor value is NULL3367 returns all projects after the cursor3368 when descending3369 behaves like nodes are in descending order3370 when no cursor is passed3371 only returns projects in descending order3372 when before cursor value is not NULL3373 returns all projects before the cursor3374 when after cursor value is not NULL3375 returns all projects after the cursor3376 when before and after cursor3377 returns all projects after the cursor3378 when before cursor value is NULL3379 returns all projects before the cursor3380 when after cursor value is NULL3381 returns all projects after the cursor3382 when ordering uses LOWER3383 when ascending3384 behaves like nodes are in ascending order3385 when no cursor is passed3386 returns projects in ascending order3387 when before cursor value is not NULL3388 returns all projects before the cursor3389 when after cursor value is not NULL3390 returns all projects after the cursor3391 when before and after cursor3392 returns all projects after the cursor3393 when descending3394 behaves like nodes are in descending order3395 when no cursor is passed3396 only returns projects in descending 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 ordering by similarity3404 behaves like nodes are in descending order3405 when no cursor is passed3406 only returns projects in descending order3407 when before cursor value is not NULL3408 returns all projects before the cursor3409 when after cursor value is not NULL3410 returns all projects after the cursor3411 when before and after cursor3412 returns all projects after the cursor3413 when an invalid cursor is provided3414 raises an error3415 #nodes3416 behaves like connection with paged nodes3417 returns the collection limited to max page size3418 is a loaded memoized array3419 when `first` is passed3420 returns only the first elements3421 when `last` is passed3422 returns only the last elements3423 when both are passed3424 raises an error3425 when primary key is not in original order3426 is added to end3427 when there is no primary key3428 raises an error3429 #has_previous_page and #has_next_page3430 when default query3431 has no previous, but a next3432 when before is first item3433 has no previous, but a next3434 using `before`3435 when before is the last item3436 has no previous, but a next3437 when before and last specified3438 has a previous and a next3439 when before and last does request all remaining nodes3440 has a previous and a next3441 using `after`3442 when after is the first item3443 has a previous, and a next3444 when after and first specified3445 has a previous and a next3446 when before and last does request all remaining nodes3447 has a previous but no next3448Members::InvitationReminderEmailService3449 sending invitation reminders3450 expires_at_days: 0, send_reminder_at_days: []3451 sends an invitation reminder only on the expected days3452 sends an invitation reminder only on the expected days3453 sends an invitation reminder only on the expected days3454 sends an invitation reminder only on the expected days3455 sends an invitation reminder only on the expected days3456 sends an invitation reminder only on the expected days3457 sends an invitation reminder only on the expected days3458 sends an invitation reminder only on the expected days3459 sends an invitation reminder only on the expected days3460 sends an invitation reminder only on the expected days3461 sends an invitation reminder only on the expected days3462 expires_at_days: 1, send_reminder_at_days: []3463 sends an invitation reminder only on the expected days3464 sends an invitation reminder only on the expected days3465 sends an invitation reminder only on the expected days3466 sends an invitation reminder only on the expected days3467 sends an invitation reminder only on the expected days3468 sends an invitation reminder only on the expected days3469 sends an invitation reminder only on the expected days3470 sends an invitation reminder only on the expected days3471 sends an invitation reminder only on the expected days3472 sends an invitation reminder only on the expected days3473 sends an invitation reminder only on the expected days3474 expires_at_days: 2, send_reminder_at_days: [1]3475 sends an invitation reminder only on the expected days3476 sends an invitation reminder only on the expected days3477 sends an invitation reminder only on the expected days3478 sends an invitation reminder only on the expected days3479 sends an invitation reminder only on the expected days3480 sends an invitation reminder only on the expected days3481 sends an invitation reminder only on the expected days3482 sends an invitation reminder only on the expected days3483 sends an invitation reminder only on the expected days3484 sends an invitation reminder only on the expected days3485 sends an invitation reminder only on the expected days3486 expires_at_days: 3, send_reminder_at_days: [1, 2]3487 sends an invitation reminder only on the expected days3488 sends an invitation reminder only on the expected days3489 sends an invitation reminder only on the expected days3490 sends an invitation reminder only on the expected days3491 sends an invitation reminder only on the expected days3492 sends an invitation reminder only on the expected days3493 sends an invitation reminder only on the expected days3494 sends an invitation reminder only on the expected days3495 sends an invitation reminder only on the expected days3496 sends an invitation reminder only on the expected days3497 sends an invitation reminder only on the expected days3498 expires_at_days: 4, send_reminder_at_days: [1, 2, 3]3499 sends an invitation reminder only on the expected days3500 sends an invitation reminder only on the expected days3501 sends an invitation reminder only on the expected days3502 sends an invitation reminder only on the expected days3503 sends an invitation reminder only on the expected days3504 sends an invitation reminder only on the expected days3505 sends an invitation reminder only on the expected days3506 sends an invitation reminder only on the expected days3507 sends an invitation reminder only on the expected days3508 sends an invitation reminder only on the expected days3509 sends an invitation reminder only on the expected days3510 expires_at_days: 5, send_reminder_at_days: [1, 2, 4]3511 sends an invitation reminder only on the expected days3512 sends an invitation reminder only on the expected days3513 sends an invitation reminder only on the expected days3514 sends an invitation reminder only on the expected days3515 sends an invitation reminder only on the expected days3516 sends an invitation reminder only on the expected days3517 sends an invitation reminder only on the expected days3518 sends an invitation reminder only on the expected days3519 sends an invitation reminder only on the expected days3520 sends an invitation reminder only on the expected days3521 sends an invitation reminder only on the expected days3522 expires_at_days: 6, send_reminder_at_days: [1, 3, 5]3523 sends an invitation reminder only on the expected days3524 sends an invitation reminder only on the expected days3525 sends an invitation reminder only on the expected days3526 sends an invitation reminder only on the expected days3527 sends an invitation reminder only on the expected days3528 sends an invitation reminder only on the expected days3529 sends an invitation reminder only on the expected days3530 sends an invitation reminder only on the expected days3531 sends an invitation reminder only on the expected days3532 sends an invitation reminder only on the expected days3533 sends an invitation reminder only on the expected days3534 expires_at_days: 7, send_reminder_at_days: [1, 3, 5]3535 sends an invitation reminder only on the expected days3536 sends an invitation reminder only on the expected days3537 sends an invitation reminder only on the expected days3538 sends an invitation reminder only on the expected days3539 sends an invitation reminder only on the expected days3540 sends an invitation reminder only on the expected days3541 sends an invitation reminder only on the expected days3542 sends an invitation reminder only on the expected days3543 sends an invitation reminder only on the expected days3544 sends an invitation reminder only on the expected days3545 sends an invitation reminder only on the expected days3546 expires_at_days: 8, send_reminder_at_days: [2, 3, 6]3547 sends an invitation reminder only on the expected days3548 sends an invitation reminder only on the expected days3549 sends an invitation reminder only on the expected days3550 sends an invitation reminder only on the expected days3551 sends an invitation reminder only on the expected days3552 sends an invitation reminder only on the expected days3553 sends an invitation reminder only on the expected days3554 sends an invitation reminder only on the expected days3555 sends an invitation reminder only on the expected days3556 sends an invitation reminder only on the expected days3557 sends an invitation reminder only on the expected days3558 expires_at_days: 9, send_reminder_at_days: [2, 4, 7]3559 sends an invitation reminder only on the expected days3560 sends an invitation reminder only on the expected days3561 sends an invitation reminder only on the expected days3562 sends an invitation reminder only on the expected days3563 sends an invitation reminder only on the expected days3564 sends an invitation reminder only on the expected days3565 sends an invitation reminder only on the expected days3566 sends an invitation reminder only on the expected days3567 sends an invitation reminder only on the expected days3568 sends an invitation reminder only on the expected days3569 sends an invitation reminder only on the expected days3570 expires_at_days: 10, send_reminder_at_days: [2, 4, 8]3571 sends an invitation reminder only on the expected days3572 sends an invitation reminder only on the expected days3573 sends an invitation reminder only on the expected days3574 sends an invitation reminder only on the expected days3575 sends an invitation reminder only on the expected days3576 sends an invitation reminder only on the expected days3577 sends an invitation reminder only on the expected days3578 sends an invitation reminder only on the expected days3579 sends an invitation reminder only on the expected days3580 sends an invitation reminder only on the expected days3581 sends an invitation reminder only on the expected days3582 expires_at_days: 11, send_reminder_at_days: [2, 4, 8]3583 sends an invitation reminder only on the expected days3584 sends an invitation reminder only on the expected days3585 sends an invitation reminder only on the expected days3586 sends an invitation reminder only on the expected days3587 sends an invitation reminder only on the expected days3588 sends an invitation reminder only on the expected days3589 sends an invitation reminder only on the expected days3590 sends an invitation reminder only on the expected days3591 sends an invitation reminder only on the expected days3592 sends an invitation reminder only on the expected days3593 sends an invitation reminder only on the expected days3594 expires_at_days: 12, send_reminder_at_days: [2, 5, 9]3595 sends an invitation reminder only on the expected days3596 sends an invitation reminder only on the expected days3597 sends an invitation reminder only on the expected days3598 sends an invitation reminder only on the expected days3599 sends an invitation reminder only on the expected days3600 sends an invitation reminder only on the expected days3601 sends an invitation reminder only on the expected days3602 sends an invitation reminder only on the expected days3603 sends an invitation reminder only on the expected days3604 sends an invitation reminder only on the expected days3605 sends an invitation reminder only on the expected days3606 expires_at_days: 13, send_reminder_at_days: [2, 5, 10]3607 sends an invitation reminder only on the expected days3608 sends an invitation reminder only on the expected days3609 sends an invitation reminder only on the expected days3610 sends an invitation reminder only on the expected days3611 sends an invitation reminder only on the expected days3612 sends an invitation reminder only on the expected days3613 sends an invitation reminder only on the expected days3614 sends an invitation reminder only on the expected days3615 sends an invitation reminder only on the expected days3616 sends an invitation reminder only on the expected days3617 sends an invitation reminder only on the expected days3618 expires_at_days: 14, send_reminder_at_days: [2, 5, 10]3619 sends an invitation reminder only on the expected days3620 sends an invitation reminder only on the expected days3621 sends an invitation reminder only on the expected days3622 sends an invitation reminder only on the expected days3623 sends an invitation reminder only on the expected days3624 sends an invitation reminder only on the expected days3625 sends an invitation reminder only on the expected days3626 sends an invitation reminder only on the expected days3627 sends an invitation reminder only on the expected days3628 sends an invitation reminder only on the expected days3629 sends an invitation reminder only on the expected days3630 expires_at_days: 15, send_reminder_at_days: [2, 5, 10]3631 sends an invitation reminder only on the expected days3632 sends an invitation reminder only on the expected days3633 sends an invitation reminder only on the expected days3634 sends an invitation reminder only on the expected days3635 sends an invitation reminder only on the expected days3636 sends an invitation reminder only on the expected days3637 sends an invitation reminder only on the expected days3638 sends an invitation reminder only on the expected days3639 sends an invitation reminder only on the expected days3640 sends an invitation reminder only on the expected days3641 sends an invitation reminder only on the expected days3642 expires_at_days: nil, send_reminder_at_days: [2, 5, 10]3643 sends an invitation reminder only on the expected days3644 sends an invitation reminder only on the expected days3645 sends an invitation reminder only on the expected days3646 sends an invitation reminder only on the expected days3647 sends an invitation reminder only on the expected days3648 sends an invitation reminder only on the expected days3649 sends an invitation reminder only on the expected days3650 sends an invitation reminder only on the expected days3651 sends an invitation reminder only on the expected days3652 sends an invitation reminder only on the expected days3653 sends an invitation reminder only on the expected days3654PipelineSerializer3655 #represent3656 when used without pagination3657 created a not paginated serializer3658 when a single object is being serialized3659 serializers the pipeline object3660 when multiple objects are being serialized3661 serializers the array of pipelines3662 when used with pagination3663 created a paginated serializer3664 when resource is not paginatable3665 when a single pipeline object is being serialized3666 raises error3667 when resource is paginatable relation3668 when a single pipeline object is present in relation3669 serializes pipeline relation3670 when a multiple pipeline objects are being serialized3671 serializes appropriate number of objects3672 appends relevant headers3673 when there are pipelines for merge requests3674 includes merge requests information3675 preloads related merge requests3676 number of queries when preloaded3677 with the same ref3678 verifies number of queries3679 with different refs3680 verifies number of queries3681 with triggered pipelines3682 verifies number of queries3683 with build environments3684 executes one query to fetch all related environments3685 with scheduled and manual builds3686 sends at most one metadata query for each type of build3687 #represent_status3688 when represents only status3689 serializes only status3690Banzai::Filter::References::MilestoneReferenceFilter3691 requires project context3692 group context3693 when project milestone3694 links to a valid reference3695 ignores internal references3696 when group milestone3697 ignores internal references3698 for subgroups3699 links to a valid reference of subgroup and group milestones3700 when milestone is open3701 project milestones3702 ignores valid references contained inside 'pre' element3703 ignores valid references contained inside 'code' element3704 ignores valid references contained inside 'a' element3705 ignores valid references contained inside 'style' element3706 includes default classes3707 includes a data-project attribute3708 includes a data-milestone attribute3709 supports an :only_path context3710 behaves like Integer-based references3711 links to a valid reference3712 links with adjacent text3713 ignores invalid milestone IIDs3714 behaves like String-based single-word references3715 links to a valid reference3716 links with adjacent text3717 links with adjacent html tags3718 ignores invalid milestone names3719 behaves like String-based multi-word references in quotes3720 links to a valid reference3721 links with adjacent text3722 ignores invalid milestone names3723 behaves like referencing a milestone in a link href3724 links to a valid reference3725 links with adjacent text3726 includes a data-project attribute3727 includes a data-milestone attribute3728 behaves like linking to a milestone as the entire link3729 replaces the link text with the milestone reference3730 includes a data-project attribute3731 includes a data-milestone attribute3732 behaves like cross-project / cross-namespace complete reference3733 points to referenced project milestone page3734 link has valid text3735 has valid text3736 escapes the name attribute3737 behaves like cross-project / same-namespace complete reference3738 points to referenced project milestone page3739 link has valid text3740 has valid text3741 escapes the name attribute3742 behaves like cross project shorthand reference3743 points to referenced project milestone page3744 link has valid text3745 has valid text3746 escapes the name attribute3747 behaves like references with HTML entities3748 links to a valid reference3749 ignores invalid milestone names and escapes entities3750 behaves like HTML text with references3751 preserves escaped HTML text and adds valid references3752 preserves escaped HTML text if there are no valid references3753 group milestones3754 ignores valid references contained inside 'pre' element3755 ignores valid references contained inside 'code' element3756 ignores valid references contained inside 'a' element3757 ignores valid references contained inside 'style' element3758 includes default classes3759 includes a data-project attribute3760 includes a data-milestone attribute3761 supports an :only_path context3762 does not support references by IID3763 does not support references by link3764 does not support cross-project references3765 supports parent group references3766 behaves like String-based single-word references3767 links to a valid reference3768 links with adjacent text3769 links with adjacent html tags3770 ignores invalid milestone names3771 behaves like String-based multi-word references in quotes3772 links to a valid reference3773 links with adjacent text3774 ignores invalid milestone names3775 behaves like referencing a milestone in a link href3776 links to a valid reference3777 links with adjacent text3778 includes a data-project attribute3779 includes a data-milestone attribute3780 behaves like references with HTML entities3781 links to a valid reference3782 ignores invalid milestone names and escapes entities3783 behaves like HTML text with references3784 preserves escaped HTML text and adds valid references3785 preserves escaped HTML text if there are no valid references3786 when milestone is closed3787 project milestones3788 ignores valid references contained inside 'pre' element3789 ignores valid references contained inside 'code' element3790 ignores valid references contained inside 'a' element3791 ignores valid references contained inside 'style' element3792 includes default classes3793 includes a data-project attribute3794 includes a data-milestone attribute3795 supports an :only_path context3796 behaves like Integer-based references3797 links to a valid reference3798 links with adjacent text3799 ignores invalid milestone IIDs3800 behaves like String-based single-word references3801 links to a valid reference3802 links with adjacent text3803 links with adjacent html tags3804 ignores invalid milestone names3805 behaves like String-based multi-word references in quotes3806 links to a valid reference3807 links with adjacent text3808 ignores invalid milestone names3809 behaves like referencing a milestone in a link href3810 links to a valid reference3811 links with adjacent text3812 includes a data-project attribute3813 includes a data-milestone attribute3814 behaves like linking to a milestone as the entire link3815 replaces the link text with the milestone reference3816 includes a data-project attribute3817 includes a data-milestone attribute3818 behaves like cross-project / cross-namespace complete reference3819 points to referenced project milestone page3820 link has valid text3821 has valid text3822 escapes the name attribute3823 behaves like cross-project / same-namespace complete reference3824 points to referenced project milestone page3825 link has valid text3826 has valid text3827 escapes the name attribute3828 behaves like cross project shorthand reference3829 points to referenced project milestone page3830 link has valid text3831 has valid text3832 escapes the name attribute3833 behaves like references with HTML entities3834 links to a valid reference3835 ignores invalid milestone names and escapes entities3836 behaves like HTML text with references3837 preserves escaped HTML text and adds valid references3838 preserves escaped HTML text if there are no valid references3839 group milestones3840 ignores valid references contained inside 'pre' element3841 ignores valid references contained inside 'code' element3842 ignores valid references contained inside 'a' element3843 ignores valid references contained inside 'style' element3844 includes default classes3845 includes a data-project attribute3846 includes a data-milestone attribute3847 supports an :only_path context3848 does not support references by IID3849 does not support references by link3850 does not support cross-project references3851 supports parent group references3852 behaves like String-based single-word references3853 links to a valid reference3854 links with adjacent text3855 links with adjacent html tags3856 ignores invalid milestone names3857 behaves like String-based multi-word references in quotes3858 links to a valid reference3859 links with adjacent text3860 ignores invalid milestone names3861 behaves like referencing a milestone in a link href3862 links to a valid reference3863 links with adjacent text3864 includes a data-project attribute3865 includes a data-milestone attribute3866 behaves like references with HTML entities3867 links to a valid reference3868 ignores invalid milestone names and escapes entities3869 behaves like HTML text with references3870 preserves escaped HTML text and adds valid references3871 preserves escaped HTML text if there are no valid references3872 checking N+13873 does not have N+1 per multiple references per project3874 has N+1 for multiple unique project/group references3875LabelsFinder3876 #execute3877 with no filter3878 returns labels from projects the user have access3879 returns labels available if nil title is supplied3880 behaves like filtering by group3881 returns labels available for any non-archived project within the group3882 when only_group_labels is true3883 returns only group labels3884 when group has no projects3885 when only group labels is false3886 returns group labels3887 when including labels from group ancestors3888 returns labels from group and its ancestors3889 ignores labels from groups which user can not read3890 when including labels from group descendants3891 returns labels from group and its descendants3892 ignores labels from groups which user can not read3893 when including labels from group projects with limited visibility3894 when merge requests and issues are not visible for non members3895 when user is not a group member3896 behaves like with limited visibility3897 returns only authorized projects labels3898 when user is a group member3899 behaves like with full visibility3900 returns all projects labels3901 when merge requests are not visible for non members3902 when user is not a group member3903 behaves like with full visibility3904 returns all projects labels3905 when user is a group member3906 behaves like with full visibility3907 returns all projects labels3908 when issues are not visible for non members3909 when user is not a group member3910 behaves like with full visibility3911 returns all projects labels3912 when user is a group member3913 behaves like with full visibility3914 returns all projects labels3915 behaves like filtering by group3916 returns labels available for any non-archived project within the group3917 when only_group_labels is true3918 returns only group labels3919 when group has no projects3920 when only group labels is false3921 returns group labels3922 when including labels from group ancestors3923 returns labels from group and its ancestors3924 ignores labels from groups which user can not read3925 when including labels from group descendants3926 returns labels from group and its descendants3927 ignores labels from groups which user can not read3928 when including labels from group projects with limited visibility3929 when merge requests and issues are not visible for non members3930 when user is not a group member3931 behaves like with limited visibility3932 returns only authorized projects labels3933 when user is a group member3934 behaves like with full visibility3935 returns all projects labels3936 when merge requests are not visible for non members3937 when user is not a group member3938 behaves like with full visibility3939 returns all projects labels3940 when user is a group member3941 behaves like with full visibility3942 returns all projects labels3943 when issues are not visible for non members3944 when user is not a group member3945 behaves like with full visibility3946 returns all projects labels3947 when user is a group member3948 behaves like with full visibility3949 returns all projects labels3950 behaves like filtering by group3951 returns labels available for any non-archived project within the group3952 when only_group_labels is true3953 returns only group labels3954 when group has no projects3955 when only group labels is false3956 returns group labels3957 when including labels from group ancestors3958 returns labels from group and its ancestors3959 ignores labels from groups which user can not read3960 when including labels from group descendants3961 returns labels from group and its descendants3962 ignores labels from groups which user can not read3963 when including labels from group projects with limited visibility3964 when merge requests and issues are not visible for non members3965 when user is not a group member3966 behaves like with limited visibility3967 returns only authorized projects labels3968 when user is a group member3969 behaves like with full visibility3970 returns all projects labels3971 when merge requests are not visible for non members3972 when user is not a group member3973 behaves like with full visibility3974 returns all projects labels3975 when user is a group member3976 behaves like with full visibility3977 returns all projects labels3978 when issues are not visible for non members3979 when user is not a group member3980 behaves like with full visibility3981 returns all projects labels3982 when user is a group member3983 behaves like with full visibility3984 returns all projects labels3985 filtering by project_id3986 returns labels available for the project3987 when include_ancestor_groups is true3988 returns all ancestor labels3989 as an administrator3990 does not return labels from another project3991 filtering by title3992 returns label with that title3993 returns label with title alias3994 returns no labels if empty title is supplied3995 returns no labels if blank title is supplied3996 returns no labels if empty name is supplied3997 search by title and description3998 returns labels with a partially matching title3999 returns labels with a partially matching description4000 returns labels matching a single character4001 filter by subscription4002 returns labels user subscribed to4003 external authorization4004 behaves like a finder with external authorization service4005 finds the subject4006 with an external authorization service4007 does not include the subject when no project was given4008 includes the subject when a project id was given4009Gitlab::SidekiqCluster::CLI4010 #run4011 without any arguments4012 raises CommandError4013 with arguments4014 starts the Sidekiq workers4015 allows the special * selector4016 raises an error when the arguments contain newlines4017 with --negate flag4018 starts Sidekiq workers for all queues in all_queues.yml except the ones in argv4019 with --max-concurrency flag4020 starts Sidekiq workers for specified queues with a max concurrency4021 with --min-concurrency flag4022 starts Sidekiq workers for specified queues with a min concurrency4023 with --timeout flag4024 when given4025 when not given4026 with --list-queues flag4027 errors when given --list-queues and --dryrun4028 prints out a list of queues in alphabetical order4029 queue namespace expansion4030 starts Sidekiq workers for all queues in all_queues.yml with a namespace in argv4031 with --queue-selector4032 expands multiple queue groups correctly4033 allows the special * selector4034 errors when the selector matches no queues4035 errors on an invalid query multiple queue groups correctly4036 memory-bound queues4037 expands queues by attributes4038 works when negated4039 memory- or CPU-bound queues4040 expands queues by attributes4041 works when negated4042 high urgency CI queues4043 expands queues by attributes4044 works when negated4045 CPU-bound high urgency CI queues4046 expands queues by attributes4047 works when negated4048 CPU-bound high urgency non-CI queues4049 expands queues by attributes4050 works when negated4051 CI and SCM queues4052 expands queues by attributes4053 works when negated4054 #write_pid4055 when a PID is specified4056 writes the PID to a file4057 when no PID is specified4058 does not write a PID4059 #wait_for_termination4060 waits for termination of all sub-processes and succeeds after 3 checks4061 with hanging workers4062 hard kills workers after timeout expires4063 #trap_signals4064 traps the termination and forwarding signals4065 #start_loop4066 runs until one of the processes has been terminated4067TodosFinder4068 #execute4069 #execute4070 returns no todos if user is nil4071 filtering4072 returns correct todos when filtered by a project4073 returns correct todos when filtered by a group4074 when filtering by type4075 returns todos by type when filtered by a single type4076 returns todos by type when filtered by multiple types4077 returns all todos when type is nil4078 returns all todos when type is an empty collection4079 returns all todos when type is blank4080 returns todos by type when blank type is in type collection4081 returns todos of all types when only blanks are in a collection4082 returns all todos when no type param4083 raises an argument error when invalid type is passed4084 when filtering for actions4085 by action ids4086 returns the expected todos4087 returns the expected todos when filtering for multiple action ids4088 by action names4089 returns the expected todos4090 returns the expected todos when filtering for multiple action names4091 when filtering by author4092 returns correct todos when filtering by an author4093 querying for multiple authors4094 returns the correct todo items4095 by groups4096 with subgroups4097 returns todos from subgroups when filtered by a group4098 filtering for multiple groups4099 returns the expected groups4100 by state4101 returns the expected items when no state is provided4102 returns the expected items when a state is provided4103 returns the expected items when multiple states are provided4104 by project4105 returns the expected todos for one project4106 returns the expected todos for many projects4107 when filtering by target id4108 returns the expected todos for the target4109 returns the expected todos for multiple target ids4110 returns the expected todos for empty target id collection4111 external authorization4112 behaves like a finder with external authorization service4113 finds the subject4114 with an external authorization service4115 does not include the subject when no project was given4116 includes the subject when a project id was given4117 #sort4118 sorts by priority4119 by date4120 sorts with oldest created first4121 sorts with newest created first4122 .todo_types4123 returns the expected types4124 #any_for_target?4125 returns true if there are any todos for the given target4126 returns false if there are no todos for the given target4127GpgKey4128 associations4129 is expected to belong to user required:4130 is expected to have many subkeys4131 validation4132 is expected to validate that :user cannot be empty/falsy4133 is expected to validate that :key cannot be empty/falsy4134 is expected to validate that :key is case-sensitively unique4135 is expected to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----END PGP PUBLIC KEY BLOCK-----"›4136 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey"›4137 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----BEGIN PGP PUBLIC KEY BLOCK-----"›4138 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----"›4139 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----"›4140 is expected not to allow :key to be ‹"-----END PGP PUBLIC KEY BLOCK-----"›4141 is expected not to allow :key to be ‹"key\n-----END PGP PUBLIC KEY BLOCK-----"›4142 is expected not to allow :key to be ‹"BEGIN PGP"›4143 callbacks4144 extract_fingerprint4145 extracts the fingerprint from the gpg key4146 extract_primary_keyid4147 extracts the primary keyid from the gpg key4148 generate_subkeys4149 extracts the subkeys from the gpg key4150 #key=4151 strips white spaces4152 does not strip when the key is nil4153 #user_infos4154 returns the user infos from the gpg key4155 #verified_user_infos4156 returns the user infos if it is verified4157 returns an empty array if the user info is not verified4158 #emails_with_verified_status4159 email is verified if the user has the matching email4160 #verified?4161 returns true if one of the email addresses in the key belongs to the user4162 returns false if none of the email addresses in the key does not belong to the user4163 verified_and_belongs_to_email?4164 returns false if none of the email addresses in the key does not belong to the user4165 returns false if one of the email addresses in the key belongs to the user and does not match the provided email4166 returns true if one of the email addresses in the key belongs to the user and matches the provided email4167 returns true if one of the email addresses in the key belongs to the user and case-insensitively matches the provided email4168 #revoke4169 invalidates all associated gpg signatures and destroys the key4170 deletes all the associated subkeys4171 invalidates all signatures associated to the subkeys4172Gitlab::Ci::Status::Pipeline::Factory4173 when pipeline has a core status4174 when core status is created4175 matches correct core status for created4176 does not match extended statuses4177 fabricates a core status created4178 extends core status with common pipeline methods4179 when core status is waiting_for_resource4180 matches correct core status for waiting_for_resource4181 does not match extended statuses4182 fabricates a core status waiting_for_resource4183 extends core status with common pipeline methods4184 when core status is preparing4185 matches correct core status for preparing4186 does not match extended statuses4187 fabricates a core status preparing4188 extends core status with common pipeline methods4189 when core status is pending4190 matches correct core status for pending4191 does not match extended statuses4192 fabricates a core status pending4193 extends core status with common pipeline methods4194 when core status is running4195 matches correct core status for running4196 does not match extended statuses4197 fabricates a core status running4198 extends core status with common pipeline methods4199 when core status is success4200 matches correct core status for success4201 does not match extended statuses4202 fabricates a core status success4203 extends core status with common pipeline methods4204 when core status is failed4205 matches correct core status for failed4206 does not match extended statuses4207 fabricates a core status failed4208 extends core status with common pipeline methods4209 when core status is canceled4210 matches correct core status for canceled4211 does not match extended statuses4212 fabricates a core status canceled4213 extends core status with common pipeline methods4214 when core status is skipped4215 matches correct core status for skipped4216 does not match extended statuses4217 fabricates a core status skipped4218 extends core status with common pipeline methods4219 when core status is manual4220 matches manual core status4221 matches a correct extended statuses4222 extends core status with common pipeline methods4223 when core status is scheduled4224 matches scheduled core status4225 matches a correct extended statuses4226 extends core status with common pipeline methods4227 when pipeline has warnings4228 matches correct core status4229 matches correct extended statuses4230 fabricates extended "success with warnings" status4231 extends core status with common pipeline method4232BlobHelper4233 #sanitize_svg_data4234 retains essential elements4235 #edit_blob_button4236 does not render edit button when blob is not text4237 uses the passed blob instead retrieve from repository4238 returns a link with the proper route4239 returns a link with the passed link_opts on the expected route4240 when edit is the primary button4241 is rendered as primary4242 passes on primary tracking attributes4243 when Web IDE is the primary button4244 is rendered as inverted4245 passes on secondary tracking attributes4246 #relative_raw_path4247 pointing from '/file.md' to '/-/raw/main/'4248 pointing from '/test/file.md' to '/-/raw/main/test/'4249 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'4250 viewer related4251 #blob_render_error_reason4252 for error :too_large4253 when the blob size is larger than the absolute size limit4254 returns an error message4255 when the blob size is larger than the size limit4256 returns an error message4257 for error :server_side_but_stored_externally4258 returns an error message4259 #blob_render_error_options4260 for error :collapsed4261 includes a "load it anyway" link4262 for error :too_large4263 does not include a "load it anyway" link4264 includes a "download it" link4265 when the viewer is rich4266 the blob is rendered as text4267 includes a "view the source" link4268 the blob is not rendered as text4269 does not include a "view the source" link4270 when the viewer is not rich4271 does not include a "view the source" link4272 for error :server_side_but_stored_externally4273 does not include a "load it anyway" link4274 does not include a "view the source" link4275 includes a "download it" link4276 #show_suggest_pipeline_creation_celebration?4277 when file is a pipeline config file4278 is true4279 file is invalid format4280 is false4281 does not use the default ci config4282 is false4283 does not have the needed cookie4284 is false4285 blob does not have auxiliary view4286 is false4287 when file is not a pipeline config file4288 is false4289 suggest_pipeline_commit_cookie_name4290 uses project id to make up the cookie name4292 returns a link with a Web IDE route4293 when edit is the primary button4294 is rendered as inverted4295 passes on secondary tracking attributes4296 when Web IDE is the primary button4297 is rendered as primary4298 passes on primary tracking attributes4299 #ide_edit_path4300 returns full IDE path4301 returns full IDE path with second -4302 returns IDE path without relative_url_root4303 escapes special characters4304 does not escape "/" character4305 when user is not logged in4306 returns IDE path inside the project4307 when user cannot push to the project4308 returns IDE path with the user's fork4309 #ide_merge_request_path4310 returns IDE path for the given MR if MR is not merged4311 when the MR comes from a fork4312 returns IDE path for MR in the forked repo with target project included as param4313 when the MR is merged4314 returns default IDE url with master branch4315 includes file path passed4316 when target branch exists4317 returns IDE edit url with the target branch4318 #ide_fork_and_edit_path4319 returns path to fork the repo with a redirect param to the full IDE path4320 does not include notice params with_notice: false4321 when user is not logged in4322 returns nil4323 #fork_and_edit_path4324 returns path to fork the repo with a redirect param to the full edit path4325 when user is not logged in4326 returns nil4327 #editing_ci_config?4328 when path is nil4329 is expected to be falsey4330 when path is not a ci file4331 is expected to be falsey4332 when path ends is gitlab-ci.yml4333 is expected to be truthy4334 when path ends with gitlab-ci.yml4335 is expected to be truthy4336 with custom ci paths4337 is expected to be truthy4338 with custom ci config and path4339 is expected to be truthy4340Banzai::Filter::References::CommitReferenceFilter4341 requires project context4342 ignores valid references contained inside 'pre' element4343 ignores valid references contained inside 'code' element4344 ignores valid references contained inside 'a' element4345 ignores valid references contained inside 'style' element4346 internal reference4347 links to a valid reference of 7 characters4348 links to a valid reference of 8 characters4349 links to a valid reference of 12 characters4350 links to a valid reference of 18 characters4351 links to a valid reference of 20 characters4352 links to a valid reference of 32 characters4353 links to a valid reference of 40 characters4354 always uses the short ID as the link text4355 links with adjacent text4356 ignores invalid commit IDs4357 includes a title attribute4358 escapes the title attribute4359 includes default classes4360 includes a data-project attribute4361 includes a data-commit attribute4362 supports an :only_path context4363 in merge request context4364 handles merge request contextual commit references4365 a doc with many (29) strings that could be SHAs4366 makes only a single request to Gitaly4367 cross-project / cross-namespace complete reference4368 link has valid text4369 has valid text4370 ignores invalid commit IDs on the referenced project4371 cross-project / same-namespace complete reference4372 link has valid text4373 has valid text4374 ignores invalid commit IDs on the referenced project4375 cross-project shorthand reference4376 link has valid text4377 has valid text4378 ignores invalid commit IDs on the referenced project4379 cross-project URL reference4380 links to a valid reference4381 links with adjacent text4382 ignores invalid commit IDs on the referenced project4383 URL reference for a commit patch4384 links to a valid reference4385 has valid text4386 does not link to patch when extension match is after the path4387 group context4388 ignores internal references4389 links to a valid reference4390 checking N+14391 does not have N+1 per multiple references per project4392Gitlab::FileTypeDetection4393 .extension_match?4394 returns false when filename is blank4395 returns true when filename matches extensions4396 returns false when filename does not match extensions4397 can match case insensitive filenames4398 can match filenames with periods4399 can match filenames with directories4400 when class is an uploader4401 #image?4402 returns true for an image file4403 returns false if filename has a dangerous image extension4404 returns false for a video file4405 returns false for an audio file4406 returns false if filename is blank4407 #video?4408 returns true for a video file4409 returns false for an image file4410 returns false for an audio file4411 returns false if file has a dangerous image extension4412 returns false if filename is blank4413 #audio?4414 returns true for an audio file4415 returns false for an image file4416 returns false for a video file4417 returns false if file has a dangerous image extension4418 returns false if filename is blank4419 #embeddable?4420 returns true for an image file4421 returns true for a video file4422 returns true for an audio file4423 returns false if not an embeddable file4424 returns false if filename has a dangerous image extension4425 returns false if filename is blank4426 #image_safe_for_scaling?4427 returns true for allowed image formats4428 returns false for other files4429 #dangerous_image?4430 returns true if filename has a dangerous extension4431 returns false for an image file4432 returns false for a video file4433 returns false for an audio file4434 returns false if filename is blank4435 #dangerous_video?4436 returns false for a safe video file4437 returns false if filename is a dangerous image extension4438 returns false for an image file4439 returns false for an audio file4440 returns false if filename is blank4441 #dangerous_audio?4442 returns false for a safe audio file4443 returns false if filename is a dangerous image extension4444 returns false for an image file4445 returns false for an video file4446 returns false if filename is blank4447 #dangerous_embeddable?4448 returns true if filename has a dangerous image extension4449 returns false for an image file4450 returns false for a video file4451 returns false for an audio file4452 returns false for a non-embeddable file4453 returns false if filename is blank4454 when class is a regular class4455 #image?4456 returns true for an image file4457 returns false if file has a dangerous image extension4458 returns false for a video file4459 returns false for an audio file4460 returns false if filename is blank4461 #image_safe_for_scaling?4462 returns false if filename is blank4463 filename: "img.jpg", expectation: true4464 returns expected result4465 filename: "img.jpeg", expectation: true4466 returns expected result4467 filename: "img.png", expectation: true4468 returns expected result4469 filename: "img.svg", expectation: false4470 returns expected result4471 #video?4472 returns true for a video file4473 returns false for an image file4474 returns false for an audio file4475 returns false if file has a dangerous image extension4476 returns false if filename is blank4477 #audio?4478 returns true for an audio file4479 returns false for an image file4480 returns false for a video file4481 returns false if file has a dangerous image extension4482 returns false if filename is blank4483 #embeddable?4484 returns true for an image file4485 returns true for a video file4486 returns true for an audio file4487 returns false if not an embeddable file4488 returns false if filename has a dangerous image extension4489 returns false if filename is blank4490 #dangerous_image?4491 returns true if file has a dangerous image extension4492 returns false for an image file4493 returns false for a video file4494 returns false for an audio file4495 returns false if filename is blank4496 #dangerous_video?4497 returns false for a safe video file4498 returns false for an image file4499 returns false for an audio file4500 returns false if file has a dangerous image extension4501 returns false if filename is blank4502 #dangerous_audio?4503 returns false for a safe audio file4504 returns false for an image file4505 returns false for a video file4506 returns false if file has a dangerous image extension4507 returns false if filename is blank4508 #dangerous_embeddable?4509 returns true if file has a dangerous image extension4510 returns false for an image file4511 returns false for a video file4512 returns false for an audio file4513 returns false for a non-embeddable file4514 returns false if filename is blank4515Groups::GroupMembersHelper4516 .group_member_select_options4517 returns an options hash4518 #group_members_app_data4519 returns expected json4520 group members4521 behaves like members.json4522 returns `members` property that matches json schema4523 sets `member_path` property4524 with user status set4525 behaves like members.json4526 returns `members` property that matches json schema4527 sets `member_path` property4528 invited group members4529 behaves like members.json4530 returns `members` property that matches json schema4531 sets `member_path` property4532 access requests4533 behaves like members.json4534 returns `members` property that matches json schema4535 sets `member_path` property4536 group links4537 sets `group.members` property that matches json schema4538 sets `member_path` property4539 when pagination is not available4540 sets `pagination` attribute to expected json4541 when pagination is available4542 sets `pagination` attribute to expected json4543Gitlab::PathRegex4544 TOP_LEVEL_ROUTES4545 includes all the top level namespaces4546 does not allow expansion4547 GROUP_ROUTES4548 don't contain a second wildcard4549 does not allow expansion4550 PROJECT_WILDCARD_ROUTES4551 includes all paths that can be used after a namespace/project path4552 does not allow expansion4553 .root_namespace_route_regex4554 rejects top level routes4555 accepts project wildcard routes4556 accepts group routes4557 is not case sensitive4558 does not allow extra slashes4559 .full_namespace_path_regex4560 is not case sensitive4561 does not allow extra slashes4562 at the top level4563 when the final level4564 rejects top level routes4565 accepts project wildcard routes4566 accepts group routes4567 when more levels follow4568 rejects top level routes4569 accepts project wildcard routes4570 accepts group routes4571 at the second level4572 when the final level4573 accepts top level routes4574 rejects project wildcard routes4575 rejects group routes4576 when more levels follow4577 accepts top level routes4578 rejects project wildcard routes4579 rejects group routes4580 .project_route_regex4581 accepts top level routes4582 rejects project wildcard routes4583 accepts group routes4584 is not case sensitive4585 does not allow extra slashes4586 .full_project_path_regex4587 accepts top level routes4588 rejects project wildcard routes4589 accepts group routes4590 is not case sensitive4591 does not allow extra slashes4592 .namespace_format_regex4593 is expected to match "gitlab-ce"4594 is expected to match "gitlab_git"4595 is expected to match "_underscore.js"4596 is expected to match "100px.com"4597 is expected to match "gitlab.org"4598 is expected not to match "?gitlab"4599 is expected not to match "git lab"4600 is expected not to match "gitlab.git"4601 is expected not to match "gitlab.org."4602 is expected not to match "gitlab.org/"4603 is expected not to match "/gitlab.org"4604 is expected not to match "gitlab git"4605 .project_path_format_regex4606 is expected to match "gitlab-ce"4607 is expected to match "gitlab_git"4608 is expected to match "_underscore.js"4609 is expected to match "100px.com"4610 is expected not to match "?gitlab"4611 is expected not to match "git lab"4612 is expected not to match "gitlab.git"4613 repository routes4614 .repository_route_regex4615 matches the expected paths4616 .repository_git_route_regex4617 matches the expected paths4618 .repository_git_lfs_route_regex4619 matches the expected paths4620 .repository_wiki_git_route_regex4621 matches the expected paths4622 is expected not to match "snippets/1.wiki.git"4623 .full_snippets_repository_path_regex4624 matches the expected paths4625 is expected not to match "root/snippets/1"4626 is expected not to match "gitlab-org/gitlab-test/snippets/foo"4627 .container_image_regex4628 is expected to match "gitlab-foss"4629 is expected to match "gitlab_foss"4630 is expected to match "gitlab-org/gitlab-foss"4631 is expected to match "100px.com/100px.ruby"4632 only matches at most one slash4633 does not match other non-word characters4634 .container_image_blob_sha_regex4635 is expected to match "sha256:asdf1234567890ASDF"4636 is expected to match "foo:123"4637 is expected to match "a12bc3f590szp"4638 is expected not to match ""4639 does not match malicious characters4640Gitlab::FakeApplicationSettings4641 defines methods for default attributes4642 defines predicate methods for boolean properties4643 does not define a predicate method for non-boolean properties4644 returns nil for undefined attributes4645 does not override an existing predicate method4646 behaves like application settings examples4647 predicate method changes when value is updated4648 restricted signup domains4649 behaves like string of domains4650 sets single domain4651 sets multiple domains with spaces4652 sets multiple domains with newlines and a space4653 sets multiple domains with commas4654 sets multiple domains with semicolon4655 sets multiple domains with mixture of everything4656 removes duplicates4657 does not fail with garbage values4658 does not raise error with nil4659 denied signup domains4660 sets multiple domain with file4661 behaves like string of domains4662 sets single domain4663 sets multiple domains with spaces4664 sets multiple domains with newlines and a space4665 sets multiple domains with commas4666 sets multiple domains with semicolon4667 sets multiple domains with mixture of everything4668 removes duplicates4669 does not fail with garbage values4670 does not raise error with nil4671 outbound_local_requests_whitelist4672 clears outbound_local_requests_allowlist_arrays memoization4673 behaves like string of domains4674 sets single domain4675 sets multiple domains with spaces4676 sets multiple domains with newlines and a space4677 sets multiple domains with commas4678 sets multiple domains with semicolon4679 sets multiple domains with mixture of everything4680 removes duplicates4681 does not fail with garbage values4682 does not raise error with nil4683 outbound_local_requests_allowlist_arrays4684 separates the IPs and domains4685 add_to_outbound_local_requests_whitelist4686 adds entry to outbound_local_requests_whitelist4687 clears outbound_local_requests_allowlist_arrays memoization4688 does not raise error with nil4689 does not raise error with nil4690 usage ping settings4691 when the usage ping is disabled in gitlab.yml4692 does not allow the usage ping to be configured4693 when the usage ping is disabled in the DB4694 returns false for usage_ping_enabled4695 when the usage ping is enabled in the DB4696 returns false for usage_ping_enabled4697 when the usage ping is enabled in gitlab.yml4698 allows the usage ping to be configured4699 when the usage ping is disabled in the DB4700 returns false for usage_ping_enabled4701 when the usage ping is enabled in the DB4702 returns true for usage_ping_enabled4703 #allowed_key_types4704 includes all key types by default4705 excludes disabled key types4706 #key_restriction_for4707 returns the restriction value for recognised types4708 allows types to be passed as a string4709 returns forbidden for unrecognised type4710 #allow_signup?4711 returns true4712 returns false if signup is disabled4713 returns false if password authentication is disabled for the web interface4714 #pick_repository_storage4715 chooses repository based on weight4716 #normalized_repository_storage_weights4717 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}4718 normalizes storage weights4719 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}4720 normalizes storage weights4721 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}4722 normalizes storage weights4723 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}4724 normalizes storage weights4725 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}4726 normalizes storage weights4727 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}4728 normalizes storage weights4729 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}4730 normalizes storage weights4731 #user_default_internal_regex_enabled?4732 user_default_external: false, user_default_internal_regex: nil, result: false4733 is expected to eq false4734 user_default_external: false, user_default_internal_regex: "", result: false4735 is expected to eq false4736 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false4737 is expected to eq false4738 user_default_external: true, user_default_internal_regex: "", result: false4739 is expected to eq false4740 user_default_external: true, user_default_internal_regex: nil, result: false4741 is expected to eq false4742 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true4743 is expected to eq true4744 #archive_builds_older_than4745 when the archive_builds_in_seconds is set4746 is expected to be within 60 of 2021-09-22 09:32:48.844564888 +00004747 when the archive_builds_in_seconds is set4748 is expected to be nil4749 #commit_email_hostname4750 when the value is provided4751 returns the provided value4752 when the value is not provided4753 returns the default from the class4754Gitlab::ImportExport::MembersMapper4755 map members4756 when importable is Project4757 includes the exported user ID in the map4758 maps a member4759 defaults to importer member if it does not exist4760 has invited members with no user4761 removes old user_id from member_hash to avoid conflict with user key4762 adds users to project members4763 maps an owner as a maintainer4764 logging4765 logs member addition4766 when exporter member is invalid4767 logs member addition failure4768 user is not an admin4769 does not map a member4770 defaults to importer member if it does not exist4771 chooses the one with an email4772 maps the member that has a matching email4773 when user has email exported4774 maps a member4775 importer same as group member4776 maps the project member4777 maps the project member if it already exists4778 importing group members4779 maps the importer4780 maps the group member4781 when importer mapping fails4782 includes importer specific error message4783 when importable is Group4784 includes the exported user ID in the map4785 maps a member4786 defaults to importer member if it does not exist4787 has invited members with no user4788 removes old user_id from member_hash to avoid conflict with user key4789 does not lower owner access level4790 logging4791 logs member addition4792 when exporter member is invalid4793 logs member addition failure4794 user is not an admin4795 does not map a member4796 defaults to importer member if it does not exist4797 chooses the one with an email4798 maps the member that has a matching email4799 when user has email exported4800 maps a member4801ContainerRepositoriesFinder4802 #execute4803 with authorized user4804 when subject_type is group4805 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil> and #<ContainerRepository id: 2, project_id: 631, name: "test_repository2", created_at: "2021-09-22 10:33...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4806 behaves like with name search4807 with name set to my_image4808 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4809 is expected not to include #<ContainerRepository id: 3, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:09.5...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4810 with name set to my_imag4811 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4812 is expected not to include #<ContainerRepository id: 3, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:09.5...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4813 with name set to _image4814 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4815 is expected not to include #<ContainerRepository id: 3, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:09.5...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4816 with name set to _imag4817 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4818 is expected not to include #<ContainerRepository id: 3, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:09.5...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4819 behaves like with sorting4820 with sort set to created_desc4821 is expected to eq [#<ContainerRepository id: 5, project_id: 632, name: "foo", created_at: "2021-09-22 09:33:12.33292647... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4822 with sort set to updated_asc4823 is expected to eq [#<ContainerRepository id: 5, project_id: 632, name: "foo", created_at: "2021-09-22 09:33:12.33292647... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4824 with sort set to name_desc4825 is expected to eq [#<ContainerRepository id: 5, project_id: 632, name: "foo", created_at: "2021-09-22 09:33:12.33292647... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4826 with sort set to created_asc4827 is expected to eq [#<ContainerRepository id: 4, project_id: 632, name: "bar", created_at: "2021-09-21 10:33:12.32749268... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4828 with sort set to updated_desc4829 is expected to eq [#<ContainerRepository id: 4, project_id: 632, name: "bar", created_at: "2021-09-21 10:33:12.32749268... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4830 with sort set to name_asc4831 is expected to eq [#<ContainerRepository id: 4, project_id: 632, name: "bar", created_at: "2021-09-21 10:33:12.32749268... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4832 when project has container registry disabled4833 is expected to contain exactly #<ContainerRepository id: 6, project_id: 633, name: "test_repository2", created_at: "2021-09-22 10:33...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4834 when subject_type is project4835 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4836 behaves like with name search4837 with name set to my_image4838 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4839 is expected not to include #<ContainerRepository id: 7, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:15.3...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4840 with name set to my_imag4841 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4842 is expected not to include #<ContainerRepository id: 7, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:15.3...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4843 with name set to _image4844 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4845 is expected not to include #<ContainerRepository id: 7, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:15.3...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4846 with name set to _imag4847 is expected to contain exactly #<ContainerRepository id: 1, project_id: 630, name: "my_image", created_at: "2021-09-22 10:33:08.9545...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4848 is expected not to include #<ContainerRepository id: 7, project_id: 630, name: "foo_bar_baz", created_at: "2021-09-22 10:33:15.3...: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>4849 behaves like with sorting4850 with sort set to created_desc4851 is expected to eq [#<ContainerRepository id: 9, project_id: 634, name: "foo", created_at: "2021-09-22 09:33:17.68032541... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4852 with sort set to updated_asc4853 is expected to eq [#<ContainerRepository id: 9, project_id: 634, name: "foo", created_at: "2021-09-22 09:33:17.68032541... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4854 with sort set to name_desc4855 is expected to eq [#<ContainerRepository id: 9, project_id: 634, name: "foo", created_at: "2021-09-22 09:33:17.68032541... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4856 with sort set to created_asc4857 is expected to eq [#<ContainerRepository id: 8, project_id: 634, name: "bar", created_at: "2021-09-21 10:33:17.67497193... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4858 with sort set to updated_desc4859 is expected to eq [#<ContainerRepository id: 8, project_id: 634, name: "bar", created_at: "2021-09-21 10:33:17.67497193... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4860 with sort set to name_asc4861 is expected to eq [#<ContainerRepository id: 8, project_id: 634, name: "bar", created_at: "2021-09-21 10:33:17.67497193... nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil>]4862 when project has container registry disabled4863 is expected to equal nil4864 with invalid subject_type4865 is expected to raise Exception with "invalid subject_type"4866 with unauthorized user4867 when subject_type is group4868 is expected to equal nil4869 when subject_type is project4870 is expected to equal nil4871Milestoneable4872 #supports_milestone?4873 for issues4874 returns true4875 for merge requests4876 returns true4877 for incidents4878 returns true4879 release scopes4880 #any_milestone4881 when milestone filter is present and related closing issues are joined4882 returns merge request closing issues of any milestone4883 #without_release4884 returns the issues not tied to any milestone and the ones tied to milestone with no release4885 #any_release4886 returns all issues tied to a release4887 #with_release4888 returns the issues tied a specfic release4889 when a release has a milestone with one issue and another one with no issue4890 returns that one issue4891 when the milestone with no issue is added as a filter4892 returns an empty list4893 when the milestone with the issue is added as a filter4894 returns this issue4895 when there is no issue under a specific release4896 returns no issue4897 when a non-existent release tag is passed in4898 returns no issue4899 Issues4900 behaves like an object that can be assigned a milestone4901 Validation4902 milestone4903 with correct params4904 is expected to be valid4905 with empty string milestone4906 is expected to be valid4907 with nil milestone id4908 is expected to be valid4909 with a milestone id from another project4910 is expected to be invalid4911 #milestone_available?4912 returns true with a milestone from the issue project4913 returns true with a milestone from the issue project group4914 returns true with a milestone from the the parent of the issue project group4915 returns true with a blank milestone4916 returns false with a milestone from another project4917 returns false with a milestone from another group4918 MergeRequests4919 behaves like an object that can be assigned a milestone4920 Validation4921 milestone4922 with correct params4923 is expected to be valid4924 with empty string milestone4925 is expected to be valid4926 with nil milestone id4927 is expected to be valid4928 with a milestone id from another project4929 is expected to be invalid4930 #milestone_available?4931 returns true with a milestone from the issue project4932 returns true with a milestone from the issue project group4933 returns true with a milestone from the the parent of the issue project group4934 returns true with a blank milestone4935 returns false with a milestone from another project4936 returns false with a milestone from another group4937Packages::Debian::ProjectDistribution4938 behaves like Debian Distribution4939 relationships4940 is expected to belong to project required:4941 is expected to belong to creator class_name => User required:4942 is expected to have one key class_name => Packages::Debian::ProjectDistributionKey inverse_of => distribution4943 is expected to have many components class_name => Packages::Debian::ProjectComponent inverse_of => distribution4944 is expected to have many architectures class_name => Packages::Debian::ProjectArchitecture inverse_of => distribution4945 validations4946 #project4947 is expected to validate that :project cannot be empty/falsy4948 #creator4949 is expected not to validate that :creator cannot be empty/falsy4950 #codename4951 is expected to validate that :codename cannot be empty/falsy4952 is expected to allow :codename to be ‹"buster"›4953 is expected to allow :codename to be ‹"buster-updates"›4954 is expected to allow :codename to be ‹"Debian10.5"›4955 is expected not to allow :codename to be ‹"jessie/updates"›4956 is expected not to allow :codename to be ‹"hé"›4957 #suite4958 is expected to allow :suite to be ‹nil›4959 is expected to allow :suite to be ‹"testing"›4960 is expected not to allow :suite to be ‹"hé"›4961 #unique_debian_suite_and_codename4962 with_existing_suite: false, suite: nil, codename: :keep, errors: nil4963 debian_project_distribution4964 is expected to be valid4965 with_existing_suite: false, suite: "testing", codename: :keep, errors: nil4966 debian_project_distribution4967 is expected to be valid4968 with_existing_suite: false, suite: nil, codename: :codename, errors: ["Codename has already been taken"]4969 debian_project_distribution4970 is expected to eq ["Codename has already been taken"]4971 with_existing_suite: false, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]4972 debian_project_distribution4973 is expected to eq ["Suite has already been taken as Codename"]4974 with_existing_suite: false, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]4975 debian_project_distribution4976 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]4977 with_existing_suite: true, suite: nil, codename: :keep, errors: nil4978 debian_project_distribution4979 is expected to be valid4980 with_existing_suite: true, suite: "testing", codename: :keep, errors: nil4981 debian_project_distribution4982 is expected to be valid4983 with_existing_suite: true, suite: nil, codename: :codename, errors: ["Codename has already been taken"]4984 debian_project_distribution4985 is expected to eq ["Codename has already been taken"]4986 with_existing_suite: true, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]4987 debian_project_distribution4988 is expected to eq ["Suite has already been taken as Codename"]4989 with_existing_suite: true, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]4990 debian_project_distribution4991 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]4992 with_existing_suite: true, suite: nil, codename: :suite, errors: ["Codename has already been taken as Suite"]4993 debian_project_distribution4994 is expected to eq ["Codename has already been taken as Suite"]4995 with_existing_suite: true, suite: :suite, codename: :keep, errors: ["Suite has already been taken"]4996 debian_project_distribution4997 is expected to eq ["Suite has already been taken"]4998 with_existing_suite: true, suite: :suite, codename: :suite, errors: ["Suite has already been taken", "Codename has already been taken as Suite"]4999 debian_project_distribution5000 is expected to eq ["Suite has already been taken", "Codename has already been taken as Suite"]5001 #origin5002 is expected to allow :origin to be ‹nil›5003 is expected to allow :origin to be ‹"Debian"›5004 is expected not to allow :origin to be ‹"hé"›5005 #label5006 is expected to allow :label to be ‹nil›5007 is expected to allow :label to be ‹"Debian"›5008 is expected not to allow :label to be ‹"hé"›5009 #version5010 is expected to allow :version to be ‹nil›5011 is expected to allow :version to be ‹"10.6"›5012 is expected not to allow :version to be ‹"hé"›5013 #description5014 is expected to allow :description to be ‹nil›5015 is expected to allow :description to be ‹"Debian 10.6 Released 26 September 2020"›5016 is expected to allow :description to be ‹"Hé !"›5017 #valid_time_duration_seconds5018 is expected to allow :valid_time_duration_seconds to be ‹nil›5019 is expected to allow :valid_time_duration_seconds to be ‹86400›5020 is expected not to allow :valid_time_duration_seconds to be ‹43200›5021 #file5022 is expected not to validate that :file cannot be empty/falsy5023 #file_store5024 is expected to validate that :file_store cannot be empty/falsy5025 #file_signature5026 is expected not to validate that :file_signature is empty/falsy5027 #signed_file5028 is expected not to validate that :signed_file cannot be empty/falsy5029 #signed_file_store5030 is expected to validate that :signed_file_store cannot be empty/falsy5031 scopes5032 .with_container5033 does not return other distributions5034 .with_codename5035 does not return other distributions5036 .with_suite5037 does not return other distributions5038 .with_codename_or_suite5039 passing codename5040 does not return other distributions5041 passing suite5042 does not return other distributions5043 #needs_update?5044 with new distribution5045 is expected to be truthy5046 with file5047 without valid_time_duration_seconds5048 is expected to be falsey5049 with valid_time_duration_seconds5050 when not yet expired5051 is expected to be falsey5052 when expired5053 is expected to be truthy5054 project distribution specifics5055 relationships5056 is expected to have many publications class_name => Packages::Debian::Publication inverse_of => distribution5057 is expected to have many packages class_name => Packages::Package through publications5058 is expected to have many package_files class_name => Packages::PackageFile through packages5059AwardEmoji5060 Associations5061 is expected to belong to awardable required:5062 is expected to belong to user required:5063 modules5064 is expected to includes the Participable module5065 validations5066 is expected to validate that :awardable cannot be empty/falsy5067 is expected to validate that :user cannot be empty/falsy5068 is expected to validate that :name cannot be empty/falsy5069 scoped uniqueness validation5070 rejects duplicate award emoji5071 allows duplicate award emoji for ghost users5072 when importing5073 allows duplicate award emoji5074 scopes5075 .upvotes5076 is expected to contain exactly #<AwardEmoji id: 4, name: "thumbsup", user_id: 1303, awardable_id: 600, awardable_type: "Issue", created_at: "2021-09-22 10:33:44.235001059 +0000", updated_at: "2021-09-22 10:33:44.235001059 +0000">5077 .downvotes5078 is expected to contain exactly #<AwardEmoji id: 5, name: "thumbsdown", user_id: 1305, awardable_id: 601, awardable_type: "Issue", cr...reated_at: "2021-09-22 10:33:44.534352816 +0000", updated_at: "2021-09-22 10:33:44.534352816 +0000">5079 .named5080 is expected to contain exactly #<AwardEmoji id: 4, name: "thumbsup", user_id: 1303, awardable_id: 600, awardable_type: "Issue", created_at: "2021-09-22 10:33:44.235001059 +0000", updated_at: "2021-09-22 10:33:44.235001059 +0000">5081 is expected to contain exactly #<AwardEmoji id: 4, name: "thumbsup", user_id: 1303, awardable_id: 600, awardable_type: "Issue", created_at: "2021-09-22 10:33:44.235001059 +0000", updated_at: "2021-09-22 10:33:44.235001059 +0000"> and #<AwardEmoji id: 5, name: "thumbsdown", user_id: 1305, awardable_id: 601, awardable_type: "Issue", cr...reated_at: "2021-09-22 10:33:44.534352816 +0000", updated_at: "2021-09-22 10:33:44.534352816 +0000">5082 .awarded_by5083 is expected to contain exactly #<AwardEmoji id: 4, name: "thumbsup", user_id: 1303, awardable_id: 600, awardable_type: "Issue", created_at: "2021-09-22 10:33:44.235001059 +0000", updated_at: "2021-09-22 10:33:44.235001059 +0000">5084 is expected to contain exactly #<AwardEmoji id: 4, name: "thumbsup", user_id: 1303, awardable_id: 600, awardable_type: "Issue", created_at: "2021-09-22 10:33:44.235001059 +0000", updated_at: "2021-09-22 10:33:44.235001059 +0000"> and #<AwardEmoji id: 5, name: "thumbsdown", user_id: 1305, awardable_id: 601, awardable_type: "Issue", cr...reated_at: "2021-09-22 10:33:44.534352816 +0000", updated_at: "2021-09-22 10:33:44.534352816 +0000">5085 expiring ETag cache5086 on a note5087 calls expire_etag_cache on the note when saved5088 calls expire_etag_cache on the note when destroyed5089 on another awardable5090 does not call expire_etag_cache on the issue when saved5091 does not call expire_etag_cache on the issue when destroyed5092 bumping updated at5093 calls bump_updated_at on the note when saved5094 calls bump_updated_at on the note when destroyed5095 on another awardable5096 does not error out when saved5097 does not error out when destroy5098 .award_counts_for_user5099 returns the awarded emoji in descending order5100 limits the returned number of rows5101 updating upvotes_count5102 on an issue5103 updates upvotes_count on the issue when saved5104 updates upvotes_count on the issue when destroyed5105 on another awardable5106 does not update upvotes_count on the merge_request when saved5107 does not update upvotes_count on the merge_request when destroyed5108Gitlab::Ci::Runner::Backoff5109 #duration5110 returns backoff duration from start5111 returns an integer value5112 returns the smallest number greater than or equal to duration5113 #slot5114 started: 0, slot: 05115 falls into an appropaite backoff slot5116 started: 0.1, slot: 05117 falls into an appropaite backoff slot5118 started: 0.9, slot: 05119 falls into an appropaite backoff slot5120 started: 1, slot: 05121 falls into an appropaite backoff slot5122 started: 1.1, slot: 05123 falls into an appropaite backoff slot5124 started: 1.9, slot: 05125 falls into an appropaite backoff slot5126 started: 2, slot: 05127 falls into an appropaite backoff slot5128 started: 2.9, slot: 05129 falls into an appropaite backoff slot5130 started: 3, slot: 05131 falls into an appropaite backoff slot5132 started: 4, slot: 15133 falls into an appropaite backoff slot5134 started: 5, slot: 15135 falls into an appropaite backoff slot5136 started: 6, slot: 15137 falls into an appropaite backoff slot5138 started: 7, slot: 15139 falls into an appropaite backoff slot5140 started: 8, slot: 25141 falls into an appropaite backoff slot5142 started: 9, slot: 25143 falls into an appropaite backoff slot5144 started: 9.9, slot: 25145 falls into an appropaite backoff slot5146 started: 10, slot: 25147 falls into an appropaite backoff slot5148 started: 15, slot: 25149 falls into an appropaite backoff slot5150 started: 16, slot: 35151 falls into an appropaite backoff slot5152 started: 31, slot: 35153 falls into an appropaite backoff slot5154 started: 32, slot: 45155 falls into an appropaite backoff slot5156 started: 63, slot: 45157 falls into an appropaite backoff slot5158 started: 64, slot: 55159 falls into an appropaite backoff slot5160 started: 127, slot: 55161 falls into an appropaite backoff slot5162 started: 128, slot: 65163 falls into an appropaite backoff slot5164 started: 250, slot: 65165 falls into an appropaite backoff slot5166 started: 310, slot: 75167 falls into an appropaite backoff slot5168 started: 520, slot: 85169 falls into an appropaite backoff slot5170 started: 999, slot: 85171 falls into an appropaite backoff slot5172 #to_seconds5173 started: 0, backoff: 15174 calculates backoff based on an appropriate slot5175 started: 0.1, backoff: 15176 calculates backoff based on an appropriate slot5177 started: 0.9, backoff: 15178 calculates backoff based on an appropriate slot5179 started: 1, backoff: 15180 calculates backoff based on an appropriate slot5181 started: 1.1, backoff: 15182 calculates backoff based on an appropriate slot5183 started: 1.9, backoff: 15184 calculates backoff based on an appropriate slot5185 started: 2, backoff: 15186 calculates backoff based on an appropriate slot5187 started: 3, backoff: 15188 calculates backoff based on an appropriate slot5189 started: 4, backoff: 25190 calculates backoff based on an appropriate slot5191 started: 5, backoff: 25192 calculates backoff based on an appropriate slot5193 started: 6, backoff: 25194 calculates backoff based on an appropriate slot5195 started: 6.5, backoff: 25196 calculates backoff based on an appropriate slot5197 started: 7, backoff: 25198 calculates backoff based on an appropriate slot5199 started: 8, backoff: 45200 calculates backoff based on an appropriate slot5201 started: 9, backoff: 45202 calculates backoff based on an appropriate slot5203 started: 9.9, backoff: 45204 calculates backoff based on an appropriate slot5205 started: 10, backoff: 45206 calculates backoff based on an appropriate slot5207 started: 15, backoff: 45208 calculates backoff based on an appropriate slot5209 started: 16, backoff: 85210 calculates backoff based on an appropriate slot5211 started: 31, backoff: 85212 calculates backoff based on an appropriate slot5213 started: 32, backoff: 165214 calculates backoff based on an appropriate slot5215 started: 63, backoff: 165216 calculates backoff based on an appropriate slot5217 started: 64, backoff: 325218 calculates backoff based on an appropriate slot5219 started: 127, backoff: 325220 calculates backoff based on an appropriate slot5221 started: 128, backoff: 645222 calculates backoff based on an appropriate slot5223 started: 250, backoff: 645224 calculates backoff based on an appropriate slot5225 started: 310, backoff: 645226 calculates backoff based on an appropriate slot5227 started: 520, backoff: 645228 calculates backoff based on an appropriate slot5229 started: 999, backoff: 645230 calculates backoff based on an appropriate slot5231ExternalDiffUploader5232 behaves like builds correct paths5233 #store_dir5234 behaves like matches the method pattern5235 is expected to match /merge_request_diffs\/mr-\d+/5236 #cache_dir5237 behaves like matches the method pattern5238 is expected to match /\/external-diffs\/tmp\/cache/5239 #work_dir5240 behaves like matches the method pattern5241 is expected to match /\/external-diffs\/tmp\/work/5242 #upload_path5243 behaves like matches the method pattern5244 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5245 #relative_path5246 is relative (PENDING: Path not set, skipping.)5247 .absolute_path5248 behaves like matches the method pattern5249 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5250 .base_dir5251 behaves like matches the method pattern5252 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5253 path traversal exploits5254 throws an exception5255 object store is REMOTE5256 behaves like builds correct paths5257 #store_dir5258 behaves like matches the method pattern5259 is expected to match /merge_request_diffs\/mr-\d+/5260 #cache_dir5261 behaves like matches the method pattern5262 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5263 #work_dir5264 behaves like matches the method pattern5265 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5266 #upload_path5267 behaves like matches the method pattern5268 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5269 #relative_path5270 is relative (PENDING: Path not set, skipping.)5271 .absolute_path5272 behaves like matches the method pattern5273 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5274 .base_dir5275 behaves like matches the method pattern5276 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5277 path traversal exploits5278 throws an exception5279 migration to object storage5280 with object storage disabled5281 is skipped5282 with object storage enabled5283 is scheduled to run after creation5284 remote file5285 with object storage enabled5286 can store file remotely5287AlertManagement::Alerts::UpdateService5288 #execute5289 when the current_user is nil5290 behaves like error response5291 has an informative message5292 behaves like does not add a todo5293 is expected not to change `Todo.count`5294 behaves like does not add a system note5295 is expected not to change `Note.count`5296 when current_user does not have permission to update alerts5297 behaves like error response5298 has an informative message5299 behaves like does not add a todo5300 is expected not to change `Todo.count`5301 behaves like does not add a system note5302 is expected not to change `Note.count`5303 when no parameters are included5304 behaves like error response5305 has an informative message5306 behaves like does not add a todo5307 is expected not to change `Todo.count`5308 behaves like does not add a system note5309 is expected not to change `Note.count`5310 when an error occurs during update5311 behaves like error response5312 has an informative message5313 behaves like does not add a todo5314 is expected not to change `Todo.count`5315 behaves like does not add a system note5316 is expected not to change `Note.count`5317 when a model attribute is included without assignees5318 behaves like title update5319 updates the attribute5320 behaves like does not add a todo5321 is expected not to change `Todo.count`5322 behaves like does not add a system note5323 is expected not to change `Note.count`5324 when alert is resolved and another existing open alert5325 behaves like title update5326 updates the attribute5327 behaves like does not add a todo5328 is expected not to change `Todo.count`5329 behaves like does not add a system note5330 is expected not to change `Note.count`5331 when assignees are included5332 when the assignee is the current user5333 behaves like successful assignment5334 is expected to be success5335 behaves like adds a system note5336 is expected to change `alert.reload.notes.count` by 15337 behaves like adds a todo5338 is expected to eq #<User id:1355 @user692>5339 when the assignee has read permissions5340 behaves like successful assignment5341 is expected to be success5342 behaves like adds a system note5343 is expected to change `alert.reload.notes.count` by 15344 behaves like adds a todo5345 is expected to eq #<User id:1355 @user692>5346 when the assignee does not have read permissions5347 behaves like error response5348 has an informative message5349 behaves like does not add a todo5350 is expected not to change `Todo.count`5351 behaves like does not add a system note5352 is expected not to change `Note.count`5353 when user is already assigned5354 behaves like does not add a system note5355 is expected not to change `Note.count`5356 behaves like does not add a todo5357 is expected not to change `Todo.count`5358 with multiple users included5359 behaves like successful assignment5360 is expected to be success5361 behaves like adds a system note5362 is expected to change `alert.reload.notes.count` by 15363 behaves like adds a todo5364 is expected to eq #<User id:1355 @user692>5365 when a status is included5366 successfully changes the status5367 behaves like adds a system note5368 is expected to change `alert.reload.notes.count` by 15369 with unknown status5370 behaves like error response5371 has an informative message5372 behaves like does not add a todo5373 is expected not to change `Todo.count`5374 behaves like does not add a system note5375 is expected not to change `Note.count`5376 with resolving status5377 changes the status5378 resolves the current user's related todos5379 with an opening status and existing open alert5380 has an informative message5381 behaves like does not add a todo5382 is expected not to change `Todo.count`5383 behaves like does not add a system note5384 is expected not to change `Note.count`5385 fingerprints are blank5386 successfully changes the status5387 behaves like adds a system note5388 is expected to change `alert.reload.notes.count` by 15389 two existing closed alerts5390 successfully changes the status5391 behaves like adds a system note5392 is expected to change `alert.reload.notes.count` by 15393NotesHelper5394 #note_target_title5395 note does not exist5396 returns nil5397 target does not exist5398 returns nil5399 when given a design target5400 returns nil5401 when given a non-design target5402 returns the issue title5403 #notes_max_access_for_users5404 returns access levels5405 handles access in different projects5406 #discussion_path5407 for a merge request discusion5408 for a diff discussion5409 when the discussion is active5410 returns the diff path with the line code5411 when the discussion is on an older merge request version5412 returns the diff version path with the line code5413 when the discussion is on a comparison between merge request versions5414 returns the diff version comparison path with the line code5415 when the discussion does not have a merge request version5416 returns nil5417 for a legacy diff discussion5418 when the discussion is active5419 returns the diff path with the line code5420 when the discussion is outdated5421 returns nil5422 for a non-diff discussion5423 returns nil5424 for a contextual commit discussion5425 returns the merge request diff discussion scoped in the commit5426 for a commit discussion5427 for a diff discussion5428 returns the commit path with the line code5429 for a legacy diff discussion5430 returns the commit path with the line code5431 for a non-diff discussion5432 returns the commit path with the note anchor5433 #notes_url5434 return snippet notes path for personal snippet5435 return project notes path for project snippet5436 return project notes path for other noteables5437 #note_url5438 return snippet notes path for personal snippet5439 return project notes path for project snippet5440 return project notes path for other noteables5441 #form_resources5442 returns note for personal snippet5443 returns namespace, project and note for project snippet5444 returns namespace, project and note path for other noteables5445 #noteable_note_url5446 returns the noteable url with an anchor to the note5447 #discussion_resolved_intro5448 when the discussion was resolved by a push5449 returns "Automatically resolved"5450 when the discussion was not resolved by a push5451 returns "Resolved"5452 #notes_data5453 sets last_fetched_at to 0 when start_at_zero is true5454DeprecatedAssignee5455 #assignee_id=5456 creates the merge_request_assignees relation5457 nullifies the assignee_id column5458 when relation already exists5459 overwrites existing assignees5460 #assignee=5461 creates the merge_request_assignees relation5462 nullifies the assignee_id column5463 when relation already exists5464 overwrites existing assignees5465 #assignee_id5466 returns the first assignee ID5467 #assignees5468 when assignee_id exists and there is no relation5469 creates the relation5470 nullifies the assignee_id5471 when DB is read-only5472 returns a users relation5473 returns an empty relation if no assignee_id is set5474 #assignee_ids5475 when assignee_id exists and there is no relation5476 creates the relation5477 nullifies the assignee_id5478 when DB is read-only5479 returns a list of user IDs5480 returns an empty relation if no assignee_id is set5481Terraform::StateVersion5482 is expected to be a kind of FileStoreMounter5483 is expected to belong to terraform_state required: true5484 is expected to belong to created_by_user class_name => User optional: true5485 is expected to belong to build class_name => Ci::Build optional: true5486 scopes5487 .ordered_by_version_desc5488 is expected to eq [5, 4, 3, 2, 1]5489 .with_files_stored_locally5490 includes states with local storage5491 excludes states without local storage5492 file storage5493 #file5494 returns the saved file5495 #file_store5496 returns the value5497 #update_file_store5498 when file is stored in object storage5499 sets file_store to remote5500 when file is stored locally5501 sets file_store to local5502ResourceStateEvent5503 behaves like a resource event5504 importable5505 is expected to respond to #importing?5506 is expected to respond to #imported?5507 validations5508 is expected not to allow :user to be ‹nil›5509 when importing5510 is expected to allow :user to be ‹nil›5511 associations5512 is expected to belong to user required:5513 .created_after5514 returns the expected events5515 returns no events if time is after last record time5516 behaves like a resource event for issues5517 associations5518 is expected to belong to issue required:5519 .by_issue5520 returns the expected records for an issue with events5521 returns the expected records for an issue with no events5522 .by_issue_ids_and_created_at_earlier_or_equal_to5523 returns the expected records for an issue with events5524 returns the expected records for an issue with no events5525 #issuable5526 returns the expected issuable5527 behaves like a resource event for merge requests5528 associations5529 is expected to belong to merge_request required:5530 .by_merge_request5531 returns the expected records for an issue with events5532 returns the expected records for an issue with no events5533 #issuable5534 returns the expected issuable5535 validations5536 Issuable validation5537 is valid if an issue is set5538 is valid if a merge request is set5539 is invalid if both issue and merge request are set5540 is invalid if there is no issuable set5541 callbacks5542 #issue_usage_metrics5543 tracks closed issues5544 tracks reopened issues5545 does not track merge requests5546Nav::TopNavHelper5547 #top_nav_view_model5548 has :activeTitle5549 when current_user is nil (anonymous)5550 has expected :primary5551 has expected :shortcuts5552 has expected :secondary5553 with current nav as project5554 has expected :active5555 when current_user is non-admin5556 has no menu items or views by default5557 with projects5558 has expected :primary5559 has expected :shortcuts5560 projects5561 has expected :currentUserName5562 has expected :namespace5563 has expected :linksPrimary5564 has expected :linksSecondary5565 with current nav as project5566 has expected :active5567 with persisted project5568 has project as :container5569 with groups5570 has expected :primary5571 has expected :shortcuts5572 groups5573 has expected :currentUserName5574 has expected :namespace5575 has expected :linksPrimary5576 has expected :linksSecondary5577 with external user5578 does not have create group link5579 with current nav as group5580 has expected :active5581 with persisted group5582 has expected :container5583 with milestones5584 has expected :primary5585 has expected :shortcuts5586 with snippets5587 has expected :primary5588 has expected :shortcuts5589 with activity5590 has expected :primary5591 has expected :shortcuts5592 when sherlock is enabled5593 has sherlock as last :secondary item5594 when current_user is admin5595 has admin as first :secondary item5596 with header link admin_mode true5597 has leave_admin_mode as last :secondary item5598 with header link admin_mode false5599 has enter_admin_mode as last :secondary item5600 #top_nav_responsive_view_model5601 has nil new subview5602 has nil search subview5603 with search5604 has search subview5605 with new5606 has new subview5607 with new and no menu_sections5608 has new subview5609Types::GlobalIDType5610 is has the correct name5611 .coerce_result5612 can coerce results5613 rejects integer IDs5614 rejects strings5615 .coerce_input5616 can coerce valid input5617 handles all valid application GIDs5618 rejects invalid input5619 rejects nil5620 rejects GIDs from different apps5621 a parameterized type5622 is has the correct name5623 handles GIDs for invalid resource names gracefully5624 the GID is appropriate5625 can coerce results5626 can coerce IDs to a GlobalIDType5627 can coerce valid input5628 the GID is not for an appropriate type5629 raises errors when coercing results5630 will not coerce invalid input, even if its a valid GID5631 with a deprecation5632 appends the description with a deprecation notice for the old Global ID5633 coercing input against the type (parsing the Global ID string when supplied as an argument)5634 when passed the deprecated Global ID5635 changes the model_name to the new model name5636 changes the model_class to the new model class5637 can find the correct resource5638 can find the correct resource loaded through GitlabSchema5639 when passed the Global ID that is deprecating another5640 works as normal5641 coercing the result against the type (producing the Global ID string when used in a field)5642 when passed the deprecated Global ID5643 works, but does not result in matching the new Global ID5644 when passed the Global ID that is deprecating another5645 works as normal5646 executing against the schema5647 when the query signature includes the old type name5648 behaves like a query that works with old and new GIDs5649 when the argument value is the new GID5650 is expected to be present5651 when the argument value is the old GID5652 is expected to be present5653 when the query signature includes the new type name5654 behaves like a query that works with old and new GIDs5655 when the argument value is the new GID5656 is expected to be present5657 when the argument value is the old GID5658 is expected to be present5659 a parameterized type with a namespace5660 is has a valid GraphQL identifier for a name5661 compatibility5662 when the client declares the argument as ID the actual argument can be any type5663 result_type: GraphQL::Types::ID, argument_type: GraphQL::Types::ID5664 behaves like a working query5665 works5666 result_type: Types::GlobalIDType, argument_type: GraphQL::Types::ID5667 behaves like a working query5668 works5669 result_type: ProjectID, argument_type: GraphQL::Types::ID5670 behaves like a working query5671 works5672 result_type: GraphQL::Types::ID, argument_type: Types::GlobalIDType5673 behaves like a working query5674 works5675 result_type: Types::GlobalIDType, argument_type: Types::GlobalIDType5676 behaves like a working query5677 works5678 result_type: ProjectID, argument_type: Types::GlobalIDType5679 behaves like a working query5680 works5681 result_type: GraphQL::Types::ID, argument_type: ProjectID5682 behaves like a working query5683 works5684 result_type: Types::GlobalIDType, argument_type: ProjectID5685 behaves like a working query5686 works5687 result_type: ProjectID, argument_type: ProjectID5688 behaves like a working query5689 works5690 when the client passes the argument as GlobalID5691 result_type: GraphQL::Types::ID5692 behaves like a working query5693 works5694 result_type: Types::GlobalIDType5695 behaves like a working query5696 works5697 result_type: ProjectID5698 behaves like a working query5699 works5700 when the client passes the argument as ProjectID5701 result_type: GraphQL::Types::ID5702 behaves like a working query5703 works5704 result_type: Types::GlobalIDType5705 behaves like a working query5706 works5707 result_type: ProjectID5708 behaves like a working query5709 works5710 .model_name_to_graphql_name5711 returns a graphql name for the given model name5712Gitlab::EncodingHelper5713 #encode!5714 nil5715 empty string5716 invalid utf-8 encoded string5717 frozen non-ascii string5718 leaves ascii only string as is5719 leaves valid utf8 string as is5720 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.5721 string with detected encoding that is not supported in Ruby5722 leaves binary string as is5723 with corrupted diff5724 does not corrupt data but remove invalid characters5725 #encode_utf8_no_detect5726 input: "abcd", expected: "abcd"5727 drops invalid UTF-85728 input: "DzDzDz", expected: "DzDzDz"5729 drops invalid UTF-85730 input: "Dz\xC7DzDzDz", expected: "Dz�DzDzDz"5731 drops invalid UTF-85732 input: "🐤🐤🐤🐤\xF0\x9F\x90", expected: "🐤🐤🐤🐤�"5733 drops invalid UTF-85734 #encode_utf85735 nil5736 empty string5737 invalid utf-8 encoded string5738 encodes valid utf8 encoded string to utf85739 encodes valid ASCII-8BIT encoded string to utf85740 encodes valid ISO-8859-1 encoded string to utf85741 Equifax branch name5742 returns empty string on conversion errors5743 replaces invalid and undefined chars with the replace argument5744 with strings that can be forcefully encoded into utf85745 doesn't use CharlockHolmes if the encoding can be forced into utf_85746 #clean5747 leaves ascii only string as is5748 leaves valid utf8 string as is5749 removes invalid bytes from ASCII-8bit encoded multibyte string.5750 handles UTF-16BE encoded strings5751 encode_binary5752 encodes nil to ""5753 encodes "" to ""5754 encodes " " to " "5755 encodes "a1" to "a1"5756 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"5757 #binary_io5758 does not mutate the original string encoding5759 returns a copy of the IO with the correct encoding5760 #detect_encoding5761 detects encoding5762 is expected to be a kind of Hash5763 correctly detects the binary5764 data is nil5765 is expected to be nil5766 limit is provided5767 correctly detects the binary5768Gitlab::LetsEncrypt::Client5769 #new_order5770 ensures account registration5771 generates and stores private key and initialize acme client with it5772 returns order5773 when private key is saved in settings5774 uses current value of private key5775 when acme integration is disabled5776 raises error5777 #load_order5778 ensures account registration5779 generates and stores private key and initialize acme client with it5780 loads order5781 when private key is saved in settings5782 uses current value of private key5783 when acme integration is disabled5784 raises error5785 #load_challenge5786 ensures account registration5787 generates and stores private key and initialize acme client with it5788 loads challenge5789 when private key is saved in settings5790 uses current value of private key5791 when acme integration is disabled5792 raises error5793 #terms_of_service_url5794 returns valid url5795Gitlab::Middleware::ReadOnly5796 when database is read-only5797 behaves like write access for a read-only GitLab instance5798 normal requests to a read-only GitLab instance5799 expects PATCH requests to be disallowed5800 expects PUT requests to be disallowed5801 expects POST requests to be disallowed5802 expects a internal POST request to be allowed after a disallowed request5803 expects DELETE requests to be disallowed5804 expects POST of new file that looks like an LFS batch url to be disallowed5805 returns last_vistited_url for disallowed request5806 allowlisted requests5807 expects a POST internal request to be allowed5808 expects a POST internal request with trailing slash to be allowed5809 expects a graphql request to be allowed5810 expects a graphql request with trailing slash to be allowed5811 relative URL is configured5812 expects a graphql request to be allowed5813 expects a graphql request with trailing slash to be allowed5814 sidekiq admin requests5815 mounted_at: ""5816 allows requests5817 allows requests with trailing slash5818 mounted_at: "/"5819 allows requests5820 allows requests with trailing slash5821 mounted_at: "/gitlab"5822 allows requests5823 allows requests with trailing slash5824 mounted_at: "/gitlab/"5825 allows requests5826 allows requests with trailing slash5827 mounted_at: "/gitlab/gitlab"5828 allows requests5829 allows requests with trailing slash5830 mounted_at: "/gitlab/gitlab/"5831 allows requests5832 allows requests with trailing slash5833 description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"5834 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed5835 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL with trailing slash to be allowed5836 description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"5837 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed5838 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL with trailing slash to be allowed5839 description: "user sign out", path: "/users/sign_out"5840 expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed5841 expects a POST description: "user sign out", path: "/users/sign_out" URL with trailing slash to be allowed5842 description: "admin session", path: "/admin/session"5843 expects a POST description: "admin session", path: "/admin/session" URL to be allowed5844 expects a POST description: "admin session", path: "/admin/session" URL with trailing slash to be allowed5845 description: "admin session destroy", path: "/admin/session/destroy"5846 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed5847 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL with trailing slash to be allowed5848 description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"5849 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed5850 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL with trailing slash not to be allowed5851 description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"5852 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed5853 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL with trailing slash not to be allowed5854 description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"5855 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed5856 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL with trailing slash not to be allowed5857 JSON requests to a read-only GitLab instance5858 expects PATCH requests to be disallowed5859 expects PUT requests to be disallowed5860 expects POST requests to be disallowed5861 expects DELETE requests to be disallowed5862SystemNotes::DesignManagementService5863 #design_version_added5864 with one kind of event5865 makes just one note5866 adds a new system note5867 with a mixture of events5868 makes one note for each kind of event5869 adds a system note for each kind of event5870 icons5871 action: :creation5872 has a valid action5873 action: :modification5874 has a valid action5875 action: :deletion5876 has a valid action5877 it succeeds5878 action: :creation, icon: "designs_added", human_description: "added"5879 has the correct data5880 action: :modification, icon: "designs_modified", human_description: "updated"5881 has the correct data5882 action: :deletion, icon: "designs_removed", human_description: "removed"5883 has the correct data5884 #design_discussion_added5885 adds a new system note5886 has the correct note text5887 behaves like a system note5888 has the correct attributes5889ExtractsPath5890 #assign_ref_vars5891 log tree path has no escape sequences5892 behaves like assigns ref vars5893 assigns the repository var5894 ref contains %205895 is not converted to a space in @id5896 ref contains trailing space5897 strips surrounding space5898 ref contains leading space5899 strips surrounding space5900 path contains space5901 is not converted to %20 in @path5902 subclass overrides get_id5903 uses ref returned by get_id5904 ref contains space in the middle5905 returns 4045906 ref only exists without .atom suffix5907 with a path5908 renders a 4045909 without a path5910 sets the un-suffixed version as @ref5911 sets the request format to Atom5912 ref exists with .atom suffix5913 with a path5914 sets the suffixed version as @ref5915 does not change the request format5916 without a path5917 sets the suffixed version as @ref5918 does not change the request format5919 ref and path are nil5920 does not set commit5921 ref points to a previous default branch5922 redirects to the new default branch for a GET request5923 redirects to the new default branch for a HEAD request5924 returns 404 for any other request type5925 redirect behaviour is disabled5926 returns 404 for a GET request5927 behaves like extracts refs5928 #extract_ref5929 returns an empty pair when no repository_container is set5930 without a path5931 extracts a valid branch5932 extracts a valid tag5933 extracts a valid commit ref without a path5934 falls back to a primitive split for an invalid ref5935 does not fetch ref names when there is no slash5936 fetches ref names when there is a slash5937 with a path5938 extracts a valid branch5939 extracts a valid tag5940 extracts a valid commit SHA5941 falls back to a primitive split for an invalid ref5942 extracts the longest matching ref5943 when the repository does not have ambiguous refs5944 does not fetch all ref names when the first path component is a ref5945 fetches all ref names when the first path component is not a ref5946 when the repository has ambiguous refs5947 always fetches all ref names5948 #extract_ref_without_atom5949 ignores any matching refs suffixed with atom5950 returns the longest matching ref5951 returns nil if there are no matching refs5952Metrics::Dashboard::GrafanaMetricEmbedService5953 .valid_params?5954 is expected to be truthy5955 missing embedded5956 is expected to be falsey5957 not embedded5958 is expected to be falsey5959 undefined grafana_url5960 is expected to be falsey5961 .from_cache5962 initializes an instance of GrafanaMetricEmbedService5963 with unknown users5964 when anonymous5965 current_user_id: nil5966 sets current_user as nil5967 current_user_id: ""5968 sets current_user as nil5969 when invalid5970 raise record not found error5971 #get_dashboard5972 without caching5973 behaves like raises error for users with insufficient permissions5974 when the user does not have sufficient access5975 behaves like misconfigured dashboard service response5976 returns an appropriate message and status code5977 when the user is anonymous5978 behaves like misconfigured dashboard service response5979 returns an appropriate message and status code5980 without a grafana integration5981 behaves like misconfigured dashboard service response5982 returns an appropriate message and status code5983 when grafana cannot be reached5984 behaves like misconfigured dashboard service response5985 returns an appropriate message and status code5986 when panelId is missing5987 behaves like misconfigured dashboard service response5988 returns an appropriate message and status code5989 when uid is missing5990 behaves like misconfigured dashboard service response5991 returns an appropriate message and status code5992 when the dashboard response contains misconfigured json5993 behaves like misconfigured dashboard service response5994 returns an appropriate message and status code5995 when the datasource response contains misconfigured json5996 behaves like misconfigured dashboard service response5997 returns an appropriate message and status code5998 when the embed was created successfully5999 when project is private and user is member6000 behaves like valid embedded dashboard service response6001 behaves like valid dashboard service response for schema6002 returns a json representation of the dashboard6003 when project is public and user is anonymous6004 behaves like valid embedded dashboard service response6005 behaves like valid dashboard service response for schema6006 returns a json representation of the dashboard6007 with caching6008 when value not present in cache6009 returns nil6010 when value present in cache6011 returns cached value6012Metrics::Dashboard::GrafanaUidParser6013 with a Grafana-defined uid6014 is expected to eq "XDaNK6amz"6015 with a user-defined uid6016 is expected to eq "pgbouncer-main"6017 when a uid is not present6018 is expected to equal nil6019 when the url starts with unrelated content6020 is expected to equal nil6021Metrics::Dashboard::DatasourceNameParser6022 is expected to eq "GitLab Omnibus"6023 when the panelId is missing from the url6024 is expected to equal nil6025 when the panel is not present6026 is expected to equal nil6027 when the dashboard panel does not have a datasource6028 is expected to equal nil6029Redactable6030 when model is an issue6031 behaves like model with redactable field6032 redacts unsubscribe token6033 ignores not hexadecimal tokens6034 ignores not matching texts6035 redacts the field when saving the model before creating markdown cache6036 when model is a merge request6037 behaves like model with redactable field6038 redacts unsubscribe token6039 ignores not hexadecimal tokens6040 ignores not matching texts6041 redacts the field when saving the model before creating markdown cache6042 when model is a note6043 behaves like model with redactable field6044 redacts unsubscribe token6045 ignores not hexadecimal tokens6046 ignores not matching texts6047 redacts the field when saving the model before creating markdown cache6048 when model is a snippet6049 behaves like model with redactable field6050 redacts unsubscribe token6051 ignores not hexadecimal tokens6052 ignores not matching texts6053 redacts the field when saving the model before creating markdown cache6054Gitlab::Ci::Config::External::Mapper6055 #process6056 when single 'include' keyword is defined6057 when the string is a local file6058 returns File instances6059 when the key is a local file hash6060 returns File instances6061 when the string is a remote file6062 returns File instances6063 when the key is a remote file hash6064 returns File instances6065 when the key is a template file hash6066 returns File instances6067 when the key is a hash of file and remote6068 returns ambigious specification error6069 when the key is a project's file6070 returns File instances6071 when the key is project's files6072 returns two File instances6073 when 'include' is defined as an array6074 returns Files instances6075 when 'include' is defined as an array of hashes6076 returns Files instances6077 when it has ambigious match6078 returns ambigious specification error6079 when 'include' is not defined6080 returns an empty array6081 when duplicate 'include' is defined6082 raises an exception6083 when including multiple files from a project6084 raises an exception6085 when too many 'includes' are defined6086 raises an exception6087 when including multiple files from a project6088 raises an exception6089 when 'include' section uses project variable6090 when local file is included as a single string6091 expands the variable6092 when remote file is included as a single string6093 expands the variable6094 defined as an array6095 expands the variable6096 defined as an array of hashes6097 expands the variable6098 local file hash6099 expands the variable6100 project name6101 expands the variable6102 with multiple files6103 expands the variable6104 when include variable has an unsupported type for variable expansion6105 does not invoke expansion for the variable6106 when local file path has wildcard6107 includes the matched local files6108 when 'include' has rules6109 when the rules matches6110 includes the file6111 when the FF ci_include_rules is disabled6112 includes the file6113 when the rules does not match6114 does not include the file6115 when the FF ci_include_rules is disabled6116 includes the file6117DiffFileEntity6118 when there is no merge request6119 behaves like diff file entity6120 exposes correct attributes6121 includes viewer6122 behaves like diff file base entity6123 exposes essential attributes6124 when diff file does not have a blob and content sha6125 exposes some attributes as nil6126 diff files6127 when diff_view is parallel6128 contains only the parallel diff lines6129 when diff_view is parallel6130 contains only the inline diff lines6131 when there is a merge request6132 exposes additional attributes6133 points all urls to merge request target project6134 exposes load_collapsed_diff_url if the file viewer is collapsed6135 behaves like diff file entity6136 exposes correct attributes6137 includes viewer6138 behaves like diff file base entity6139 exposes essential attributes6140 when diff file does not have a blob and content sha6141 exposes some attributes as nil6142 diff files6143 when diff_view is parallel6144 contains only the parallel diff lines6145 when diff_view is parallel6146 contains only the inline diff lines6147 when diff_view is unknown6148 hides highlighted_diff_lines and parallel_diff_lines6149 #parallel_diff_lines6150 exposes parallel diff lines correctly6151 #is_fully_expanded6152 file with a conflict6153 returns false6154 behaves like diff file with conflict_type6155 #conflict_type6156 returns nil by default6157 when there is matching conflict file6158 returns false6159AuthHelper6160 button_based_providers6161 returns all enabled providers from devise6162 does not return ldap provider6163 returns empty array6164 providers_for_base_controller6165 returns all enabled providers from devise6166 excludes ldap providers6167 form_based_providers6168 includes LDAP providers6169 includes crowd provider6170 form_based_auth_provider_has_active_class?6171 selects main LDAP server6172 any_form_based_providers_enabled?6173 detects form-based providers6174 ignores ldap providers when ldap web sign in is disabled6175 enabled_button_based_providers6176 all providers are enabled to sign in6177 returns all the enabled providers from settings in expected order6178 puts google and github in the beginning6179 GitHub OAuth sign in is disabled from application setting6180 doesn't return github as provider6181 popular_enabled_button_based_providers6182 returns the intersection set of popular & enabled providers6183 button_based_providers_enabled?6184 button based providers enabled6185 returns true6186 all the button based providers are disabled via application_setting6187 returns false6188 #link_provider_allowed?6189 delegates to identity provider policy6190 #unlink_provider_allowed?6191 delegates to identity provider policy6192 #provider_has_icon?6193 returns true for defined providers6194 returns false for undefined providers6195 when provider is defined by config6196 returns true6197 when provider is not defined by config6198 returns true6199 #allow_admin_mode_password_authentication_for_web?6200 is expected to equal true6201 when password authentication for web is disabled6202 is expected to equal false6203 when current_user is an ldap user6204 is expected to equal false6205 when user got password automatically set6206 is expected to equal false6207 #auth_active?6208 for atlassian_oauth2 provider6209 returns true when present6210 returns false when not present6211 for other omniauth providers6212 returns true when present6213 returns false when not present6214 #google_tag_manager_enabled?6215 on gitlab.com and a key set without a current user6216 is expected to be truthy6217 when not on gitlab.com6218 is expected to be falsey6219 when current user is set6220 is expected to be falsey6221 when no key is set6222 is expected to be falsey6223 #auth_app_owner_text6224 when owner is a user6225 behaves like generates text with the correct info6226 includes the name of the application owner6227 when owner is a group6228 behaves like generates text with the correct info6229 includes the name of the application owner6230 when the user is missing6231 returns nil6232EachBatch6233 .each_batch6234 orders ascending by default6235 accepts descending order6236 behaves like each_batch handling6237 yields an ActiveRecord::Relation when a block is given6238 yields a batch index as the second argument6239 accepts a custom batch size6240 does not include ORDER BYs in the yielded relations6241 allows updating of the yielded relations6242 behaves like each_batch handling6243 yields an ActiveRecord::Relation when a block is given6244 yields a batch index as the second argument6245 accepts a custom batch size6246 does not include ORDER BYs in the yielded relations6247 allows updating of the yielded relations6248 current scope6249 does not leak current scope to block being executed6250AlertManagement::HttpIntegration6251 associations6252 is expected to belong to project required:6253 validations6254 is expected to validate that :project cannot be empty/falsy6255 is expected to validate that :name cannot be empty/falsy6256 is expected to validate that the length of :name is at most 2556257 when active6258 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active6259 when inactive6260 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active6261 payload_attribute_mapping6262 with valid JSON schema6263 is expected to be valid6264 with invalid JSON schema6265 when property is not an object6266 behaves like is invalid record6267 is expected to eq ["must be a valid json schema"]6268 when property missing required attributes6269 behaves like is invalid record6270 is expected to eq ["must be a valid json schema"]6271 when property has extra attributes6272 behaves like is invalid record6273 is expected to eq ["must be a valid json schema"]6274 before validation6275 #ensure_payload_example_not_nil6276 when the payload_example is nil6277 sets the payload_example to empty JSON6278 when the payload_example is not nil6279 sets the payload_example to specified value6280 #token6281 when unsaved6282 when unassigned6283 behaves like valid token6284 is expected to match /\A\h{32}\z/6285 when assigned6286 is expected not to eq "random_token"6287 behaves like valid token6288 is expected to match /\A\h{32}\z/6289 when persisted6290 behaves like valid token6291 is expected to match /\A\h{32}\z/6292 when resetting6293 is expected not to eq "6538c640dca959e097a1c8e74606d252"6294 behaves like valid token6295 is expected to match /\A\h{32}\z/6296 when reassigning6297 is expected to eq "e23f743f87456e8a12206be69dedb73e"6298 behaves like valid token6299 is expected to match /\A\h{32}\z/6300 #endpoint_identifier6301 when defined on initialize6302 is expected to match /\A\h{16}\z/6303 when included in initialization args6304 is expected to eq "legacy"6305 when reassigning6306 does not allow reassignment6307 #url6308 is expected to eq "http://localhost/namespace816/project782/alerts/notify/datadog/1c9f24d1.json"6309 when name is not defined6310 is expected to eq "http://localhost/namespace794/project760/alerts/notify/http-endpoint/b85feee09bd2ab25.json"6311 for a legacy integration6312 is expected to eq "http://localhost/namespace817/project783/alerts/notify.json"6313Mutations::MergeRequests::SetAssignees6314 when the user does not have permissions6315 #resolve6316 behaves like permission level for merge request mutation is correctly verified6317 when the user is not a project member6318 behaves like when the user does not have access to the resource6319 raises an error6320 even if assigned to the merge request6321 does not modify merge request6322 even if reviewer of the merge request6323 raises an error6324 even if author of the merge request6325 raises an error6326 when the user is a project member6327 with guest role6328 behaves like when the user does not have access to the resource6329 raises an error6330 even if assigned to the merge request6331 does not modify merge request6332 even if reviewer of the merge request6333 raises an error6334 even if author of the merge request6335 raises an error6336 with reporter role6337 behaves like when the user does not have access to the resource6338 raises an error6339 even if assigned to the merge request6340 does not modify merge request6341 even if reviewer of the merge request6342 raises an error6343 even if author of the merge request6344 raises an error6345 behaves like an assignable resource6346 #resolve6347 raises an error if the resource is not accessible to the user6348 does not change assignees if the resource is not accessible to the assignees6349 returns an operational error if the resource is not accessible to the assignees6350 when the user can update the resource6351 replaces the assignee6352 returns errors when resource could not be updated6353 when passing an empty assignee list6354 removes all assignees6355 when passing "append" as true6356 is a NO-OP in FOSS6357 when passing "remove" as true6358 removes named assignee6359 does not remove unnamed assignee6360Gitlab::Ci::Status::Build::Play6361 #label6362 has a label that says it is a manual action6363 #status_tooltip6364 does not override status status_tooltip6365 #badge_tooltip6366 does not override status badge_tooltip6367 #has_action?6368 when user is allowed to update build6369 when user is allowed to trigger protected action6370 is expected to have action6371 when user can not push to the branch6372 is expected not to have action6373 when user is not allowed to update build6374 is expected not to have action6375 #action_path6376 is expected to include "260/play"6377 #action_icon6378 is expected to eq "play"6379 #action_title6380 is expected to eq "Play"6381 #action_button_title6382 is expected to eq "Trigger this manual action"6383 .matches?6384 when build is playable6385 when build stops an environment6386 does not match6387 when build does not stop an environment6388 is a correct match6389 when build is not playable6390 does not match6391UserRecentEventsFinder6392 #execute6393 does not include the events if the user cannot read cross project6394 when profile is public6395 returns all the events6396 when profile is private6397 returns no event6398 events from multiple users6399 includes events from all users6400 does not include events from users with private profile6401 filter activity events6402 includes all events6403 only includes push events6404 only includes merge events6405 only includes issue events6406 only includes comments events6407 only includes wiki events6408 only includes design events6409 only includes team events6410 issue activity events6411 includes all issue related events6412 limits6413 when limit is not set6414 returns events limited to DEFAULT_LIMIT6415 when limit is set6416 returns events limited to specified limit6417 when limit is set to a number that exceeds maximum limit6418 returns events limited to MAX_LIMIT6419BasePolicy6420 .class_for6421 detects policy class based on the subject ancestors6422 detects policy class for a presented subject6423 uses GlobalPolicy when :global is given6424 read cross project6425 is expected to be allowed :read_cross_project6426 for anonymous6427 is expected to be allowed :read_cross_project6428 when an external authorization service is enabled6429 behaves like admin only access6430 is expected not to be allowed :read_cross_project6431 with an admin6432 allowed when in admin mode6433 prevented when not in admin mode6434 with anonymous6435 is expected not to be allowed :read_cross_project6436 bypassing the session for sessionless login6437 changes from prevented to allowed6438 full private access: read_all_resources6439 behaves like admin only access6440 is expected not to be allowed :read_all_resources6441 with an admin6442 allowed when in admin mode6443 prevented when not in admin mode6444 with anonymous6445 is expected not to be allowed :read_all_resources6446 bypassing the session for sessionless login6447 changes from prevented to allowed6448 full private access: admin_all_resources6449 behaves like admin only access6450 is expected not to be allowed :admin_all_resources6451 with an admin6452 allowed when in admin mode6453 prevented when not in admin mode6454 with anonymous6455 is expected not to be allowed :admin_all_resources6456 bypassing the session for sessionless login6457 changes from prevented to allowed6458 change_repository_storage6459 behaves like admin only access6460 is expected not to be allowed :change_repository_storage6461 with an admin6462 allowed when in admin mode6463 prevented when not in admin mode6464 with anonymous6465 is expected not to be allowed :change_repository_storage6466 bypassing the session for sessionless login6467 changes from prevented to allowed6468Ci::CreateWebIdeTerminalService6469 #execute6470 for maintainer6471 when web-ide has valid configuration6472 for empty configuration6473 behaves like be successful6474 returns a success with pipeline object6475 calls ensure_project_iid explicitly6476 for configuration with container image6477 behaves like be successful6478 returns a success with pipeline object6479 calls ensure_project_iid explicitly6480 for configuration with ports6481 behaves like be successful6482 returns a success with pipeline object6483 calls ensure_project_iid explicitly6484 for configuration with variables6485 saves the variables6486 behaves like be successful6487 returns a success with pipeline object6488 calls ensure_project_iid explicitly6489 error handling6490 when user is developer6491 behaves like having insufficient permissions6492 behaves like having an error6493 returns an error6494 when user is maintainer6495 when terminal is already running6496 behaves like having an error6497 returns an error6498 when ref is non-existing6499 behaves like having an error6500 returns an error6501 when ref is a tag6502 behaves like having an error6503 returns an error6504 when terminal config is missing6505 behaves like having an error6506 returns an error6507 when webide config is present6508 config has invalid content6509 behaves like having an error6510 returns an error6511 config is valid, but does not have terminal6512 behaves like having an error6513 returns an error6514Gitlab::Ci::Trace::Checksum6515 when build pending state exists6516 when matching persisted trace chunks exist6517 calculates combined trace chunks CRC32 correctly6518 when trace chunks were persisted in a wrong order6519 makes trace checksum invalid but not corrupted6520 when one of the trace chunks is missing6521 makes trace checksum invalid and corrupted6522 when checksums of persisted trace chunks do not match6523 makes trace checksum invalid but not corrupted6524 when persisted trace chunks are missing6525 makes trace checksum invalid6526 when build pending state is missing6527 #state_crc326528 returns nil6529 #valid?6530 is expected not to be valid6531 #trace_chunks6532 does not load raw_data from a database store6533 #last_chunk6534 when there are no chunks6535 returns nil6536 is not a valid trace6537 is not a corrupted trace6538 when there are multiple chunks6539 returns chunk with the highest index6540 is not a valid trace6541 is not a corrupted trace6542 #trace_size6543 returns total trace size in bytes6544Mutations::AlertManagement::Alerts::SetAssignees6545 is expected to require graphql authorizations :update_alert_management_alert6546 #resolve6547 when operation mode is not specified6548 behaves like successful resolution6549 successfully resolves6550 behaves like an incident management tracked event6551 .track_event6552 tracks the event using redis6553 when user does not have permission to update alerts6554 raises an error if the resource is not accessible to the user6555 for APPEND operation6556 when a different user is already assigned6557 behaves like noop6558 makes no changes6559 when no users are specified6560 behaves like noop6561 makes no changes6562 when a user is specified and no user is assigned6563 behaves like successful resolution6564 successfully resolves6565 when the specified user is already assigned to the alert6566 behaves like noop6567 makes no changes6568 for REPLACE operation6569 when a different user is already assigned6570 behaves like successful resolution6571 successfully resolves6572 when no users are specified6573 behaves like successful resolution6574 successfully resolves6575 when a user is specified and no user is assigned6576 behaves like successful resolution6577 successfully resolves6578 when the specified user is already assigned to the alert6579 behaves like noop6580 makes no changes6581 when multiple users are specified6582 behaves like successful resolution6583 successfully resolves6584 for REMOVE operation6585 when a different user is already assigned6586 behaves like noop6587 makes no changes6588 when no users are specified6589 behaves like noop6590 makes no changes6591 when a user is specified and no user is assigned6592 behaves like noop6593 makes no changes6594 when the specified user is already assigned to the alert6595 behaves like successful resolution6596 successfully resolves6597Environments::ScheduleToDeleteReviewAppsService6598 #execute6599 as a maintainer6600 behaves like can schedule for deletion6601 live run6602 marks the correct environment as scheduled_entries6603 dry run6604 returns the same but doesn't update the record6605 execution in parallel6606 does not execute unsafe_mark_scheduled_entries_environments6607 as a developer6608 behaves like can schedule for deletion6609 live run6610 marks the correct environment as scheduled_entries6611 dry run6612 returns the same but doesn't update the record6613 execution in parallel6614 does not execute unsafe_mark_scheduled_entries_environments6615 as a reporter6616 fails to delete environments6617Gitlab::OptimisticLocking6618 #retry_lock6619 when state changed successfully without retries6620 does not reload object6621 does not create log record6622 adds number of retries to histogram6623 when at least one retry happened, the change succeeded6624 completes the action6625 creates a single log record6626 adds number of retries to histogram6627 when MAX_RETRIES attempts exceeded6628 raises an exception6629 creates a single log record6630 adds number of retries to histogram6631 #retry_optimistic_lock6632 when locking module is mixed in6633 is an alias for retry_lock6634JiraConnectSubscriptions::CreateService6635 remote user does not have access6636 does not create a subscription6637 returns error6638 remote user cannot be retrieved6639 does not create a subscription6640 returns error6641 when user does have access6642 creates a subscription6643 returns success6644 namespace has projects6645 starts workers to sync projects in batches with delay6646 when path is invalid6647 behaves like a failed execution6648 does not create a subscription6649 returns an error status6650 when user does not have access6651 behaves like a failed execution6652 does not create a subscription6653 returns an error status6654projects/merge_requests/creations/_new_submit.html.haml6655 when there are pipelines for merge request but no pipeline for last commit6656 shows <<Pipelines>> tab and hides <<Builds>> tab6657 when there are hidden commits6658 shows notice about omitted commits6659RepositoryCheck::SingleRepositoryWorker6660 skips when the project has no push events6661 fails when the project has push events and a broken repository6662 succeeds when the project repo is valid6663 fails if the wiki repository is broken6664 skips wikis when disabled6665 creates missing wikis6666 does not create a wiki if the main repo does not exist at all6667Sidebars::Projects::Menus::MonitorMenu6668 #render?6669 when operations feature is disabled6670 returns false6671 when operation feature is enabled6672 when menu does not have any renderable menu items6673 returns false6674 when menu has menu items6675 returns true6676 #title6677 returns "Monitor"6678 #extra_container_html_options6679 returns "shortcuts-monitor"6680 Menu items6681 Metrics Dashboard6682 behaves like access rights checks6683 is expected not to be nil6684 when the user does not have access6685 is expected to be nil6686 Logs6687 behaves like access rights checks6688 is expected not to be nil6689 when the user does not have access6690 is expected to be nil6691 Tracing6692 behaves like access rights checks6693 is expected not to be nil6694 when the user does not have access6695 is expected to be nil6696 Error Tracking6697 behaves like access rights checks6698 is expected not to be nil6699 when the user does not have access6700 is expected to be nil6701 Alert Management6702 behaves like access rights checks6703 is expected not to be nil6704 when the user does not have access6705 is expected to be nil6706 Incidents6707 behaves like access rights checks6708 is expected not to be nil6709 when the user does not have access6710 is expected to be nil6711 Product Analytics6712 is expected not to be nil6713 when feature flag :product_analytics is disabled6714 is expected to be nil6715Gitlab::Ci::Status::Build::Unschedule6716 #label6717 is expected to eq "unschedule action"6718 action details6719 #has_action?6720 when user is allowed to update build6721 is expected to have action6722 when user is not allowed to update build6723 is expected not to have action6724 #action_path6725 is expected to include "343/unschedule"6726 #action_icon6727 is expected to eq "time-out"6728 #action_title6729 is expected to eq "Unschedule"6730 #action_button_title6731 is expected to eq "Unschedule job"6732 .matches?6733 when build is scheduled6734 when build unschedules an delayed job6735 is a correct match6736 when build unschedules an normal job6737 does not match6738 #status_tooltip6739 does not override status status_tooltip6740 #badge_tooltip6741 does not override status badge_tooltip6742Gitlab::Checks::ChangesAccess6743 #validate!6744 without failed checks6745 doesn't raise an error6746 calls lfs checks6747 when time limit was reached6748 raises a TimeoutError6749 #commits6750 calls #new_commits6751 when changes contain empty revisions6752 returns only commits with non empty revisions6753 #commits_for6754 with no commits6755 behaves like a listing of new commits6756 returns expected commits6757 with unrelated commits6758 behaves like a listing of new commits6759 returns expected commits6760 with single related commit6761 behaves like a listing of new commits6762 returns expected commits6763 with single related and unrelated commit6764 behaves like a listing of new commits6765 returns expected commits6766 with multiple related commits6767 behaves like a listing of new commits6768 returns expected commits6769 with merge commits6770 behaves like a listing of new commits6771 returns expected commits6772 with criss-cross merges6773 behaves like a listing of new commits6774 returns expected commits6775 #single_change_accesses6776 with no changes6777 behaves like #single_change_access6778 returns an array of SingleChangeAccess6779 with a single change and no new commits6780 behaves like #single_change_access6781 returns an array of SingleChangeAccess6782 with a single change and new commits6783 behaves like #single_change_access6784 returns an array of SingleChangeAccess6785 with multiple changes6786 behaves like #single_change_access6787 returns an array of SingleChangeAccess6788Resolvers::BoardListsResolver6789 #resolve6790 when project boards6791 behaves like group and project board lists resolver6792 does not create the backlog list6793 with unauthorized user6794 raises an error6795 when authorized6796 returns a list of board lists6797 when another user has list preferences6798 returns the complete list of board lists for this user6799 when querying for a single list6800 returns specified list6801 returns empty result if list is not found6802 raises an argument error if list ID is not valid6803 when group boards6804 behaves like group and project board lists resolver6805 does not create the backlog list6806 with unauthorized user6807 raises an error6808 when authorized6809 returns a list of board lists6810 when another user has list preferences6811 returns the complete list of board lists for this user6812 when querying for a single list6813 returns specified list6814 returns empty result if list is not found6815 raises an argument error if list ID is not valid6816Gitlab::Git::AttributesParser6817 #attributes6818 using a path with attributes6819 returns the attributes as a Hash6820 returns a Hash containing multiple attributes6821 returns a Hash containing attributes for a file with multiple extensions6822 returns a Hash containing attributes for a file in a directory6823 returns a Hash containing attributes with query string parameters6824 returns a Hash containing the attributes for an absolute path6825 returns a Hash containing the attributes when a pattern is defined using an absolute path6826 returns an empty Hash for a defined path without attributes6827 when the "binary" option is set for a path6828 returns true for the "binary" option6829 returns false for the "diff" option6830 using a path without any attributes6831 returns an empty Hash6832 when attributes data is nil6833 returns an empty Hash6834 when attributes data has binary data6835 returns an empty Hash6836 #patterns6837 parses a file with entries6838 parses an entry that uses a tab to separate the pattern and attributes6839 stores patterns in reverse order6840 ignores any comments and empty lines6841 #parse_attributes6842 parses a boolean attribute6843 parses a negated boolean attribute6844 parses a key-value pair6845 parses multiple attributes6846 parses attributes with query string parameters6847 #each_line6848 iterates over every line in the attributes file6849 does not yield when the attributes file has an unsupported encoding6850Gitlab::Email::ReplyParser6851 #execute6852 returns an empty string if the message is blank6853 returns an empty string if the message is not an email6854 returns an empty string if there is no reply content6855 properly renders plaintext-only email6856 supports a Dutch reply6857 removes an 'on date wrote' quoting line6858 handles multiple paragraphs6859 handles multiple paragraphs when parsing html6860 handles newlines6861 handles inline reply6862 properly renders email reply from gmail web client6863 properly renders email reply from iOS default mail client6864 properly renders email reply from Android 5 gmail client6865 properly renders email reply from Windows 8.1 Metro default mail client6866 properly renders email reply from MS Outlook client6867 properly renders html-only email from MS Outlook6868 does not wrap links with no href in unnecessary brackets6869 does not trim reply if trim_reply option is false6870 appends trimmed reply when when append_reply option is true6871Mutations::ReleaseAssetLinks::Update6872 #ready?6873 when link_type is included as an argument but is passed nil6874 raises a validation error6875 #resolve6876 when the current user has access to update the link6877 name6878 when a new name is provided6879 updates the name6880 behaves like no changes to the link except for the6881 does not change other link properties6882 with protected tag6883 when user has access to the protected tag6884 does not have errors6885 when user does not have access to the protected tag6886 raises a resource access error6887 when nil is provided6888 behaves like validation error with messages6889 returns the updated link as nil6890 returns a validation error6891 url6892 when a new URL is provided6893 updates the url6894 behaves like no changes to the link except for the6895 does not change other link properties6896 when nil is provided6897 behaves like validation error with messages6898 returns the updated link as nil6899 returns a validation error6900 filepath6901 when a new filepath is provided6902 updates the filepath6903 behaves like no changes to the link except for the6904 does not change other link properties6905 when nil is provided6906 updates the filepath to nil6907 link_type6908 when a new link type is provided6909 updates the link type6910 behaves like no changes to the link except for the6911 does not change other link properties6912 when the current user does not have access to update the link6913 raises an error6914 when the link doesn't exist6915 raises an error6916 when the provided ID is invalid6917 raises an error6918Mutations::Releases::Delete6919 #resolve6920 when the current user has access to create releases6921 deletes the release6922 returns the deleted release6923 does not remove the Git tag associated with the deleted release6924 returns no errors6925 with protected tag6926 when user has access to the protected tag6927 does not have errors6928 when user does not have access to the protected tag6929 has an access error6930 validation6931 when the release does not exist6932 returns the release as nil6933 returns an errors-at-data message6934 when the project does not exist6935 behaves like unauthorized or not found error6936 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error6937 when the current user doesn't have access to update releases6938 when the user is a reporter6939 behaves like unauthorized or not found error6940 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error6941 when the user is a non-project member6942 behaves like unauthorized or not found error6943 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error6944Gitlab::Git::Push6945 #branch_name6946 when it is a branch push6947 returns branch name6948 when it is a tag push6949 returns nil6950 #branch_push?6951 when pushing a branch ref6952 is expected to be branch push6953 when it is a tag push6954 is expected not to be branch push6955 #branch_updated?6956 when it is a branch push with correct old and new revisions6957 is expected to be branch updated6958 when it is not a branch push6959 is expected not to be branch updated6960 when old revision is blank6961 is expected not to be branch updated6962 when it is not a branch push6963 is expected not to be branch updated6964 when oldrev is nil6965 is expected not to be branch updated6966 #force_push?6967 when old revision is an ancestor of the new revision6968 is expected not to be force push6969 when old revision is not an ancestor of the new revision6970 is expected to be force push6971 when called mulitiple times6972 does not make make multiple calls to the force push check6973 #branch_added?6974 when old revision is defined6975 is expected not to be branch added6976 when old revision is not defined6977 is expected to be branch added6978 #branch_removed?6979 when new revision is defined6980 is expected not to be branch removed6981 when new revision is not defined6982 is expected to be branch removed6983 #modified_paths6984 when a push is a branch update6985 returns modified paths6986 when a push is not a branch update6987 raises an error6988 #oldrev6989 when a valid oldrev is provided6990 returns oldrev6991 when a nil valud is provided6992 returns blank SHA6993 #newrev6994 when valid newrev is provided6995 returns newrev6996 when a nil valud is provided6997 returns blank SHA6998Groups::UpdateSharedRunnersService6999 #execute7000 when current_user is not the group owner7001 results error and does not call any method7002 when current_user is the group owner7003 enable shared Runners7004 group that its ancestors have shared runners disabled7005 results error7006 root group with shared runners disabled7007 receives correct method and succeeds7008 when group has pending builds7009 updates pending builds for the group7010 when shared runners is not toggled7011 does not update pending builds for the group7012 disable shared Runners7013 receives correct method and succeeds7014 when group has pending builds7015 updates pending builds for the group7016 allow descendants to override7017 top level group7018 receives correct method and succeeds7019 when parent does not allow7020 results error7021UpdateHeadPipelineForMergeRequestWorker7022 #perform7023 when pipeline exists for the source project and branch7024 updates the head_pipeline_id of the merge_request7025 behaves like an idempotent worker7026 is labeled as idempotent7027 performs multiple times sequentially without raising an exception7028 sets the pipeline as the head pipeline when run multiple times7029 when merge request sha does not equal pipeline sha7030 does not update head pipeline7031 behaves like an idempotent worker7032 is labeled as idempotent7033 performs multiple times sequentially without raising an exception7034 does not update the head_pipeline_id when run multiple times7035 when pipeline does not exist for the source project and branch7036 does not update the head_pipeline_id of the merge_request7037 behaves like an idempotent worker7038 is labeled as idempotent7039 performs multiple times sequentially without raising an exception7040 does not update the head_pipeline_id when run multiple times7041 when a merge request pipeline exists7042 sets the merge request pipeline as the head pipeline7043 behaves like an idempotent worker7044 is labeled as idempotent7045 performs multiple times sequentially without raising an exception7046 sets the merge request pipeline as the head pipeline when run multiple times7047 when branch pipeline exists7048 prioritizes the merge request pipeline as the head pipeline7049 behaves like an idempotent worker7050 is labeled as idempotent7051 performs multiple times sequentially without raising an exception7052 sets the merge request pipeline as the head pipeline when run multiple times7053UserInteractedProject7054 is expected to validate that :project_id cannot be empty/falsy7055 is expected to validate that :user_id cannot be empty/falsy7056 .track7057 sets project accordingly7058 sets user accordingly7059 only creates a record once per user/project7060 for all actions (event types)7061 creates a record7062 for all actions (event types)7063 creates a record7064 for all actions (event types)7065 creates a record7066 for all actions (event types)7067 creates a record7068 for all actions (event types)7069 creates a record7070 for all actions (event types)7071 creates a record7072 for all actions (event types)7073 creates a record7074 for all actions (event types)7075 creates a record7076 for all actions (event types)7077 creates a record7078 for all actions (event types)7079 creates a record7080 for all actions (event types)7081 creates a record7082 for all actions (event types)7083 creates a record7084 with an event without a project7085 ignores the event7086Autocomplete::MoveToProjectFinder7087 #execute7088 filter7089 does not return projects under Gitlab::Access::REPORTER7090 returns projects equal or above Gitlab::Access::REPORTER7091 does not include the source project7092 does not return archived projects7093 does not return projects for which issues are disabled7094 returns a page of projects ordered by star count7095 search7096 returns projects matching a search query7097 allows searching by parent namespace7098SafeZip::Entry7099 #path_dir7100 is expected to eq "/tmp/safe-zip20210922-436-qbxvhw/public/folder"7101 #exist?7102 when entry does not exist7103 is expected not to be truthy7104 when entry does exist7105 is expected to be truthy7106 #extract7107 when entry does not match the filtered directories7108 entry_name: "assets/folder/index.html"7109 does not extract file7110 entry_name: "public/../folder/index.html"7111 does not extract file7112 entry_name: "public/../../../../../index.html"7113 does not extract file7114 entry_name: "../../../../../public/index.html"7115 does not extract file7116 entry_name: "/etc/passwd"7117 does not extract file7118 when entry does exist7119 raises an exception7120 when entry type is unknown7121 raises an exception7122 when entry is valid7123 and is file7124 does extract file7125 behaves like secured symlinks7126 when we try to extract entry into symlinked folder7127 raises an exception7128 and is directory7129 does create directory7130 behaves like secured symlinks7131 when we try to extract entry into symlinked folder7132 raises an exception7133 and is symlink7134 when source is within target7135 but does not exist7136 raises an exception7137 and does exist7138 behaves like a valid symlink7139 does create symlink7140 when source points outside of target7141 raises an exception7142 when source points to /etc/passwd7143 raises an exception7144Gitlab::Diff::SuggestionsParser7145 .parse7146 single-line suggestions7147 returns a list of Gitlab::Diff::Suggestion7148 parsed suggestion has correct data7149 multi-line suggestions7150 returns a list of Gitlab::Diff::Suggestion7151 suggestion with above and below param has correct data7152 suggestion with above param has correct data7153 suggestion with below param has correct data7154ErrorTracking::Error7155 relationships7156 is expected to belong to project required:7157 is expected to have many events7158 validations7159 is expected to validate that :name cannot be empty/falsy7160 is expected to validate that :description cannot be empty/falsy7161 is expected to validate that :actor cannot be empty/falsy7162 .report_error7163 updates existing record with a new timestamp7164 .sort_by_attribute7165 id desc by default7166 is expected to eq [#<ErrorTracking::Error id: 3, project_id: 955, name: "ActionView::MissingTemplate", description: [FI...8 +0000", updated_at: "2021-09-22 10:38:22.531350598 +0000", events_count: 0, status: "unresolved">]7167 first_seen7168 is expected to eq [#<ErrorTracking::Error id: 1, project_id: 953, name: "ActionView::MissingTemplate", description: [FI...2 +0000", updated_at: "2021-09-22 10:38:23.954121682 +0000", events_count: 0, status: "unresolved">]7169 last_seen7170 is expected to eq [#<ErrorTracking::Error id: 1, project_id: 953, name: "ActionView::MissingTemplate", description: [FI...6 +0000", updated_at: "2021-09-22 10:38:24.278797776 +0000", events_count: 0, status: "unresolved">]7171 frequency7172 is expected to eq [#<ErrorTracking::Error id: 8, project_id: 960, name: "ActionView::MissingTemplate", description: [FI...8 +0000", updated_at: "2021-09-22 10:38:22.531350598 +0000", events_count: 0, status: "unresolved">]7173 #title7174 is expected to eq "ActionView::MissingTemplate Missing template posts/edit"7175 #to_sentry_error7176 is expected to be a kind of Gitlab::ErrorTracking::Error7177 #to_sentry_detailed_error7178 is expected to be a kind of Gitlab::ErrorTracking::DetailedError7179Gitlab::Chat::Responder::Mattermost7180 #send_response7181 sends a response back to Slack7182 #success7183 returns the output for a successful build7184 limits the output to a fixed size7185 does not send a response if the output is empty7186 #failure7187 returns the output for a failed build7188 #scheduled_output7189 returns the output for a scheduled build7190Projects::UpdateStatisticsService7191 #execute7192 with a non-existing project7193 does nothing7194 with an existing project7195 statistics: [], method_caches: [:size, :commit_count]7196 refreshes the project statistics7197 invalidates the method caches after a refresh7198 statistics: ["repository_size"], method_caches: [:size]7199 refreshes the project statistics7200 invalidates the method caches after a refresh7201 statistics: [:repository_size], method_caches: [:size]7202 refreshes the project statistics7203 invalidates the method caches after a refresh7204 statistics: [:lfs_objects_size], method_caches: nil7205 refreshes the project statistics7206 invalidates the method caches after a refresh7207 statistics: [:commit_count], method_caches: [:commit_count]7208 refreshes the project statistics7209 invalidates the method caches after a refresh7210 statistics: [:repository_size, :commit_count], method_caches: [:size, :commit_count]7211 refreshes the project statistics7212 invalidates the method caches after a refresh7213 statistics: [:repository_size, :commit_count, :lfs_objects_size], method_caches: [:size, :commit_count]7214 refreshes the project statistics7215 invalidates the method caches after a refresh7216 with an existing project with a Wiki7217 invalidates and refreshes Wiki size7218MergeRequestSerializer7219 widget merge request serialization7220 matches issue json schema7221 sidebar merge request serialization7222 matches merge_request_sidebar json schema7223 sidebar_extras merge request serialization7224 matches merge_request_sidebar_extras json schema7225 basic merge request serialization7226 matches basic merge request json schema7227 noteable merge request serialization7228 matches noteable merge request json schema7229 when merge_request is locked7230 matches noteable merge request json schema7231 when project is archived7232 matches noteable merge request json schema7233 poll cached widget merge request serialization7234 matches basic merge request json schema7235 poll widget merge request serialization7236 matches basic merge request json schema7237 no serializer7238 falls back to the widget entity7239Packages::DependencyLink7240 relationships7241 is expected to belong to package required: inverse_of => dependency_links7242 is expected to belong to dependency required: inverse_of => dependency_links7243 is expected to have one nuget_metadatum inverse_of => dependency_link7244 validations7245 is expected to validate that :package cannot be empty/falsy7246 is expected to validate that :dependency cannot be empty/falsy7247 package_id and package_dependency_id uniqueness for dependency_type7248 is not valid7249 with multiple links7250 .with_dependency_type7251 returns links of the given type7252 .for_package7253 returns the link for the given package7254GoogleApi::CloudPlatform::Client7255 .session_key_for_redirect_uri7256 creates a new session key7257 .new_session_key_for_redirect_uri7258 generates a new session key7259 #validate_token7260 when token is nil7261 is expected to be falsy7262 when expires_at is nil7263 is expected to be falsy7264 when expires in 1 hour7265 is expected to be truthy7266 when expires in 10 minutes7267 is expected to be falsy7268 #projects_zones_clusters_get7269 is expected to eq #<Double (anonymous)>7270 #projects_zones_clusters_create7271 sets corresponded parameters7272 create without legacy_abac7273 sets corresponded parameters7274 create with enable_addons for cloud_run7275 sets corresponded parameters7276 #projects_zones_operations7277 is expected to eq #<Double (anonymous)>7278 #parse_operation_id7279 when expected url7280 is expected to eq "ope-123"7281 when unexpected url7282 is expected to be nil7283 #user_agent_header7284 returns a RequestOptions object7285 has the correct GitLab version in User-Agent header7286ExpireBuildInstanceArtifactsWorker7287 #perform7288 with expired artifacts7289 when associated project is valid7290 does expire7291 does remove files7292 does remove the job artifact record7293 with not yet expired artifacts7294 does not expire7295 does not remove files7296 does not remove the job artifact record7297 without expire date7298 does not expire7299 does not remove files7300 does not remove the job artifact record7301 for expired artifacts7302 is still expired7303Schedulable7304 for a pipeline_schedule7305 behaves like #schedule_next_run!7306 saves the object and sets next_run_at7307 sets next_run_at to nil on error7308 behaves like before_save callback7309 updates next_run_at7310 behaves like .runnable_schedules7311 returns the runnable schedules7312 for a container_expiration_policy7313 behaves like #schedule_next_run!7314 saves the object and sets next_run_at7315 sets next_run_at to nil on error7316 behaves like before_save callback7317 updates next_run_at7318 behaves like .runnable_schedules7319 returns the runnable schedules7320 #next_run_at7321 works7322NotificationRecipients::Builder::Default7323 #build!7324 participants and project watchers7325 adds all participants and watchers7326 subscribers7327 adds all subscribers7328 custom notifications7329 behaves like custom notification recipients7330 with project custom notification setting7331 adds the user to the recipients7332 with the project custom notification setting in another project7333 does not add the user to the recipients7334 with group custom notification setting7335 adds the user to the recipients7336 with the group custom notification setting in another group7337 does not add the user to the recipients7338 with project global custom notification setting7339 with global custom notification setting7340 adds the user to the recipients7341 without global custom notification setting7342 does not add the user to the recipients7343 with group global custom notification setting7344 with global custom notification setting7345 adds the user to the recipients7346 without global custom notification setting7347 does not add the user to the recipients7348 with group custom notification setting in deeply nested parent group7349 adds the user to the recipients7350 without a project or group7351 does not add the user to the recipients7352Projects::DeployTokens::CreateService7353 behaves like a deploy token creation service7354 #execute7355 when the deploy token is valid7356 creates a new DeployToken7357 creates a new ProjectDeployToken7358 returns a DeployToken7359 when expires at date is not passed7360 sets Forever.date7361 when username is empty string7362 converts it to nil7363 when username is provided7364 keeps the provided username7365 when the deploy token is invalid7366 does not create a new DeployToken7367 does not create a new ProjectDeployToken7368Packages::Debian::FileEntry7369 validations7370 is expected to be valid7371 #filename7372 is expected to validate that :filename cannot be empty/falsy7373 is expected not to allow :filename to be ‹"Hé"›7374 #size7375 is expected to validate that :size cannot be empty/falsy7376 #md5sum7377 is expected to validate that :md5sum cannot be empty/falsy7378 is expected not to allow :md5sum to be ‹"12345678901234567890123456789012"›, producing a custom validation error on failure7379 #section7380 is expected to validate that :section cannot be empty/falsy7381 #priority7382 is expected to validate that :priority cannot be empty/falsy7383 #sha1sum7384 is expected to validate that :sha1sum cannot be empty/falsy7385 is expected not to allow :sha1sum to be ‹"1234567890123456789012345678901234567890"›, producing a custom validation error on failure7386 #sha256sum7387 is expected to validate that :sha256sum cannot be empty/falsy7388 is expected not to allow :sha256sum to be ‹"1234567890123456789012345678901234567890123456789012345678901234"›, producing a custom validation error on failure7389 #package_file7390 is expected to validate that :package_file cannot be empty/falsy7391 #component7392 without section7393 is expected to eq "main"7394 with empty section7395 is expected to eq "main"7396 with ruby section7397 is expected to eq "main"7398 with contrib/ruby section7399 is expected to eq "contrib"7400Gitlab::Ci::Build::Policy::Variables7401 #satisfied_by?7402 is satisfied by at least one matching statement7403 is satisfied by a matching pipeline variable7404 is not satisfied by an overridden empty variable7405 is satisfied by a truthy pipeline expression7406 is not satisfied by a falsy pipeline expression7407 is satisfied by a truthy expression using undefined variable7408 is not satisfied by a falsy expression using undefined variable7409 allows to evaluate regular CI variables7410 does not persist neither pipeline nor build7411 when a bridge job is used7412 is satisfied by a matching expression for a bridge job7413 when using project ci variables in environment scope7414 is satisfied by scoped variable match7415 is not satisfied when matching against overridden variable7416Security::CiConfiguration::SastBuildAction7417 with existing .gitlab-ci.yml7418 sast has not been included7419 template includes are array7420 generates the correct YML7421 template include is not an array7422 generates the correct YML7423 reports defaults have been overwritten7424 sast template include is not an array7425 generates the correct YML7426 with default values7427 generates the correct YML7428 reports defaults have not been overwritten7429 analyzer section7430 generates the correct YML7431 analyzers are disabled7432 writes SAST_EXCLUDED_ANALYZERS7433 all analyzers are enabled7434 does not write SAST_EXCLUDED_ANALYZERS7435 with update stage and SEARCH_MAX_DEPTH and set SECURE_ANALYZERS_PREFIX to default7436 generates the correct YML7437 with no existing variables7438 generates the correct YML7439 with no existing sast config7440 generates the correct YML7441 with no existing sast variables7442 generates the correct YML7443 with no .gitlab-ci.yml7444 autodevops disabled7445 with one empty parameter7446 generates the correct YML7447 with all parameters7448 generates the correct YML7449 with autodevops enabled7450 generates the correct YML7451Gitlab::Ci::Pipeline::Seed::Environment7452 #to_resource7453 when job has environment name attribute7454 behaves like returning a correct environment7455 returns a persisted environment object7456 when environment has already existed7457 returns the existing environment object7458 and job environment also has an auto_stop_in attribute7459 behaves like returning a correct environment7460 returns a persisted environment object7461 when environment has already existed7462 returns the existing environment object7463 when job has deployment tier attribute7464 when environment has not been created yet7465 sets the specified deployment tier7466 when deployment tier is staging7467 sets the specified deployment tier7468 when deployment tier is unknown7469 raises an error7470 when environment has already been created7471 does not overwrite the specified deployment tier7472 when job starts a review app7473 behaves like returning a correct environment7474 returns a persisted environment object7475 when environment has already existed7476 returns the existing environment object7477 when job stops a review app7478 behaves like returning a correct environment7479 returns a persisted environment object7480 when environment has already existed7481 returns the existing environment object7482Users::SetStatusService7483 #execute7484 when params are set7485 creates a status7486 updates a status if it already existed7487 returns true7488 behaves like bumps user7489 bumps User#updated_at7490 when setting availability to not_set7491 updates the availability7492 when the given availability value is not valid7493 does not update the status7494 for another user7495 does not update the status if the current user is not allowed7496 the current user is admin7497 changes the status when the current user is allowed to do that7498 behaves like does not bump user7499 does not bump User#updated_at7500 without params7501 when user has existing user status record7502 behaves like removes user status record7503 deletes the user status record7504 behaves like bumps user7505 bumps User#updated_at7506 when not_set is given for availability7507 behaves like removes user status record7508 deletes the user status record7509 behaves like bumps user7510 bumps User#updated_at7511 when user has no existing user status record7512 behaves like does not bump user7513 does not bump User#updated_at7514Commits::CherryPickService7515 #execute7516 behaves like successful cherry-pick7517 picks the commit into the branch7518 supports a custom commit message7519 when picking a merge-request7520 adds a system note7521 behaves like successful cherry-pick7522 picks the commit into the branch7523 supports a custom commit message7524GroupGroupLink7525 relations7526 is expected to belong to shared_group required:7527 is expected to belong to shared_with_group required:7528 scopes7529 .non_guests7530 returns all records which are greater than Guests access7531 .public_or_visible_to_user7532 when user can access shared group7533 returns the private group7534 when user does not have access to shared group7535 does not return private group7536 validation7537 is expected to validate that :shared_group cannot be empty/falsy7538 is expected to validate that :shared_group_id is case-sensitively unique within the scope of :shared_with_group_id, producing a custom validation error on failure7539 is expected to validate that :shared_with_group cannot be empty/falsy7540 is expected to validate that :group_access cannot be empty/falsy7541 is expected to validate that :group_access is either ‹10›, ‹20›, ‹30›, or ‹40›7542 #human_access7543 delegates to Gitlab::Access7544Gitlab::DatabaseImporters::SelfMonitoring::Project::DeleteService7545 #execute7546 when project does not exist7547 returns error7548 when self monitoring project exists7549 destroys project7550 deletes project ID from application settings7551 does not delete group7552Analytics::UsageTrends::Measurement7553 validation7554 is expected to validate that :recorded_at cannot be empty/falsy7555 is expected to validate that :identifier cannot be empty/falsy7556 is expected to validate that :count cannot be empty/falsy7557 is expected to validate that :recorded_at is case-sensitively unique within the scope of :identifier7558 identifiers enum7559 maps to the correct values7560 scopes7561 .order_by_latest7562 is expected to eq [#<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2021-09-20 10:39:06.69753715...ent id: 5, count: 1000, recorded_at: "2021-09-12 10:39:06.692965626 +0000", identifier: "projects">]7563 .with_identifier7564 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2021-09-12 10:39:06.692965626 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2021-09-20 10:39:06.697537156 +0000", identifier: "projects">7565 .recorded_after7566 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2021-09-20 10:39:06.697537156 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2021-09-17 10:39:06.700699706 +0000", identifier: "groups">7567 when nil is given7568 does not apply filtering7569 .recorded_before7570 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2021-09-12 10:39:06.692965626 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2021-09-17 10:39:06.700699706 +0000", identifier: "groups">7571 when nil is given7572 does not apply filtering7573 .identifier_query_mapping7574 is expected to be a kind of Hash7575 .identifier_min_max_queries7576 is expected to be a kind of Hash7577 .measurement_identifier_values7578 is expected to eq 117579 .find_latest_or_fallback7580 with usage statistics7581 returns the latest stored measurement7582 without usage statistics7583 returns the realtime query of the measurement7584ServiceFieldEntity7585 #as_json7586 Jira Service7587 field with type text7588 exposes correct attributes7589 field with type password7590 exposes correct attributes but hides password7591 EmailsOnPush Service7592 field with type checkbox7593 exposes correct attributes and casts value to Boolean7594 field with type select7595 exposes correct attributes7596Gitlab::GithubImport::Importer::NoteImporter7597 #execute7598 produces a valid Note7599 when the noteable exists7600 when the author could be found7601 imports the note with the found author as the note author7602 when the note author could not be found7603 imports the note with the project creator as the note author7604 when the note have invalid chars7605 removes invalid chars7606 when the noteable does not exist7607 does not import the note7608 when the import fails due to a foreign key error7609 does not raise any errors7610 #find_noteable_id7611 returns the ID of the noteable7612Gitlab::Doctor::Secrets7613 when encrypted attributes are properly set7614 detects decryptable secrets7615 when attr_encrypted values are not decrypting7616 marks undecryptable values as bad7617 when TokenAuthenticatable values are not decrypting7618 marks undecryptable values as bad7619 when GrafanaIntegration token is set via private method7620 can access GrafanaIntegration token value7621Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged7622 behaves like value stream analytics event7623 is expected to be a kind of String7624 is expected to be a kind of Symbol7625 is expected to include ApplicationRecord(abstract)7626 is expected to respond to #timestamp_projection7627 is expected to respond to #markdown_description7628 is expected to be a kind of Array7629 #apply_query_customization7630 expects an ActiveRecord::Relation object as argument and returns a modified version of it7631 #hash_code7632 returns a hash that uniquely identifies an event7633 does not differ when the same object is built with the same params7634 behaves like LEFT JOIN-able value stream analytics event7635 can use the event as LEFT JOIN7636 when looking at the record with data7637 contains the timestamp expression7638 when looking at the record without data7639 returns nil for the timestamp expression7640BulkImports::NdjsonPipeline7641 marks pipeline as ndjson7642 #deep_transform_relation!7643 transforms relation hash7644 when subrelations is an array7645 transforms each element of the array7646 when subrelation is a hash7647 transforms subrelation hash7648 when subrelation is nil7649 removes subrelation7650 #transform7651 calls relation factory7652 #load7653 when object is not persisted7654 saves the object7655 when object is persisted7656 does not save the object7657 when object is missing7658 returns7659 #relation_class7660 when relation name is pluralized7661 returns constantized class7662 when relation name is singularized7663 returns constantized class7664 #relation_key_override7665 when portable is group7666 returns group relation name override7667 when portable is project7668 returns group relation name override7669Packages::Go::PackageFinder7670 #exists?7671 with a valid name and version7672 executes SELECT 17673 is expected to eq true7674 with an invalid name7675 is expected to eq false7676 with an invalid version7677 is expected to eq false7678 #execute7679 with a valid name and version7680 executes a single query7681 is expected to eq #<Packages::Package id: 11, project_id: 1047, created_at: "2021-09-22 10:39:17.831486000 +0000", upda...pace1033/my-go-lib", version: "v1.0.1", package_type: "golang", creator_id: 1986, status: "default">7682 with an uninstallable package7683 is expected to eq nil7684 with an invalid name7685 is expected to eq nil7686 with an invalid version7687 is expected to eq nil7688Resolvers::UsersResolver7689 is expected to have nullable GraphQL type UserCoreConnection7690 #resolve7691 raises an error when read_users_list is not authorized7692 when no arguments are passed7693 returns all users7694 when both ids and usernames are passed7695 raises an error7696 when a set of IDs is passed7697 returns those users7698 when a set of usernames is passed7699 returns those users7700 when admins is true7701 returns only admins7702 when a search term is passed7703 returns all users who match7704Banzai::Filter::CommitTrailersFilter7705 detects7706 trailers in the form of *-by and replace users with links7707 trailers prefixed with whitespaces7708 GitLab users via a secondary email7709 multiple trailers in the same message7710 non GitLab users7711 when Gravatar is disabled7712 behaves like mailto links7713 replaces them with mailto links7714 when Gravatar is enabled7715 behaves like mailto links7716 replaces them with mailto links7717 special names7718 name: "John S. Doe"7719 is expected to match "enim\\-by:\\ John\\ S\\.\\ Doe\\ <donte@sporer\\.info>"7720 name: "L33t H@x0r"7721 is expected to match "quibusdam\\-by:\\ L33t\\ H@x0r\\ <sheryll@heidenreich\\.ca>"7722 ignores7723 commit messages without trailers7724 trailers that are inline the commit message body7725 structure7726 starts with two newlines to separate with actual commit message7727 preserves the commit trailer structure7728 preserves the original name used in the commit message7729 preserves the original email used in the commit message7730 only replaces trailer lines not the full commit message7731 with Gitlab-hosted avatars in commit trailers7732 returns a full path for avatar urls7733JiraImport::CloudUsersMapperService7734 #execute7735 behaves like mapping jira users7736 jira_users is nil7737 returns an empty array7738 when jira_users is present7739 returns users mapped to Gitlab7740 runs only 4 queries7741Gitlab::Ci::Reports::TestReportsComparer7742 #suite_comparers7743 when head and base reports include two test suites7744 returns test suite comparers with specified values7745 #total_status7746 when all tests cases are success in head suites7747 returns the total status7748 when there is a failed test case in head suites7749 returns the total status in head suite7750 when there is an error test case in head suites7751 returns the total status in head suite7752 #total_count7753 returns the total test counts in head suites7754 #resolved_count7755 when there is a resolved failure test case in head suites7756 returns the correct count7757 when there is a resolved error test case in head suites7758 returns the correct count7759 when there are no resolved test cases in head suites7760 returns the correct count7761 #failed_count7762 when there is a failed test case in head suites7763 returns the correct count7764 when there are no failed test cases in head suites7765 returns the correct count7766 #error_count7767 when there is an error test case in head suites7768 returns the correct count7769 when there are no error test cases in head suites7770 returns the correct count7771Gitlab::Ci::Variables::Helpers7772 .merge_variables7773 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]7774 when new variables is a hash7775 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]7776 when new variables is a hash with symbol keys7777 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]7778 when new variables is nil7779 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value2"}]7780 .transform_to_yaml_variables7781 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value2"}]7782 when variables is nil7783 is expected to eq []7784 .transform_from_yaml_variables7785 is expected to eq {"key1"=>"value1", "key2"=>"value2"}7786 when variables is nil7787 is expected to eq {}7788 when variables is a hash7789 is expected to eq {"key1"=>"value1", "key2"=>"value2"}7790 .inherit_yaml_variables7791 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]7792 when inheritance is false7793 is expected to eq [{:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]7794 when inheritance is array7795 is expected to eq [{:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]7796Labels::UpdateService7797 #execute7798 with color in hex-code7799 updates the label7800 with color in allowed name7801 updates the label7802 with color in up-case allowed name7803 updates the label7804 with color surrounded by spaces7805 updates the label7806 with unknown color7807 doesn't update the label7808 with no color7809 doesn't update the label7810UserPreference7811 notes filters global keys7812 contains expected values7813 #set_notes_filter7814 when filter is set to all notes7815 behaves like setting system notes7816 returns updated discussion filter7817 updates discussion filter for issuable class7818 when filter is set to only comments7819 behaves like setting system notes7820 returns updated discussion filter7821 updates discussion filter for issuable class7822 when filter is set to only activity7823 behaves like setting system notes7824 returns updated discussion filter7825 updates discussion filter for issuable class7826 when notes_filter parameter is invalid7827 returns the current notes filter7828 sort_by preferences7829 merge_requests_sort attribute7830 behaves like a sort_by preference7831 allows nil sort fields7832 issues_sort attribute7833 behaves like a sort_by preference7834 allows nil sort fields7835 #timezone7836 returns server time as default7837 #tab_width7838 is set to 8 by default7839 is expected to validate that :tab_width looks like an integer greater than or equal to 1 and less than or equal to 127840BitbucketServer::Representation::Comment7841 #id7842 is expected to eq 97843 #author_username7844 returns username7845 when username is absent7846 returns slug7847 when slug and username are absent7848 returns displayName7849 #author_email7850 is expected to eq "test.user@example.com"7851 #note7852 is expected to eq "is this a new line?"7853 #created_at7854 is expected to be a kind of Time7855 #updated_at7856 is expected to be a kind of Time7857 #comments7858 is expected to eq 47859 is expected to all be a kind of BitbucketServer::Representation::Comment7860 is expected to contain exactly "Hello world", "Ok", "hello", and "hi"7861 comments have the right parent7862Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules7863 #perform!7864 when pipeline has been skipped by workflow configuration7865 does not save the pipeline7866 breaks the chain7867 attaches an error to the pipeline7868 saves workflow_rules_result7869 when pipeline has not been skipped by workflow configuration7870 continues the pipeline processing chain7871 does not skip the pipeline7872 attaches no errors7873 saves workflow_rules_result7874Ci::BuildTrace7875 returns formatted trace7876 behaves like delegates methods7877 is expected to delegate #state to the #trace object7878 is expected to delegate #append to the #trace object7879 is expected to delegate #truncated to the #trace object7880 is expected to delegate #offset to the #trace object7881 is expected to delegate #size to the #trace object7882 is expected to delegate #total to the #trace object7883 is expected to delegate #build_id to the #build object as #id7884 is expected to delegate #build_status to the #build object as #status7885 is expected to delegate #build_complete? to the #build object as #complete?7886 with invalid UTF-8 data7887 returns valid UTF-8 data7888seed production settings7889 GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN is set in the environment7890Saved Runner Registration Token7891Saved CI JWT signing key7892 writes the token to the database7893 GITLAB_PROMETHEUS_METRICS_ENABLED is set in the environment7894 GITLAB_PROMETHEUS_METRICS_ENABLED is true7895Saved Prometheus metrics enabled flag7896Saved CI JWT signing key7897 prometheus_metrics_enabled is set to true7898 GITLAB_PROMETHEUS_METRICS_ENABLED is false7899Saved Prometheus metrics enabled flag7900Saved CI JWT signing key7901 prometheus_metrics_enabled is set to false7902 GITLAB_PROMETHEUS_METRICS_ENABLED is default7903Saved CI JWT signing key7904 prometheus_metrics_enabled is set to true7905 CI JWT signing key7906Saved CI JWT signing key7907 writes valid RSA key to the database7908Gitlab::Metrics::Dashboard::Cache7909 .fetch7910 stores data correctly7911 .for7912 returns a new instance7913 #fetch7914 stores data correctly7915 #delete_all!7916 deletes keys of the given project7917 does not fail when nothing to delete7918 multiple fetches and deletes7919 aggregate_failures7920Resolvers::Projects::ServicesResolver7921 is expected to have nullable GraphQL type ServiceConnection7922 #resolve7923 when project does not have services7924 when user cannot access services7925 when anonymous user7926 behaves like cannot access project services7927 raises error7928 when user developer7929 behaves like cannot access project services7930 raises error7931 when user can read project services7932 behaves like no project services7933 returns empty collection7934 when project has services7935 when user cannot access services7936 when anonymous user7937 behaves like cannot access project services7938 raises error7939 when user developer7940 behaves like cannot access project services7941 raises error7942 when user can read project services7943 returns project services7944DesignManagement::GenerateImageVersionsService7945 #execute7946 generates the image7947 skips generating image versions if the mime type is not whitelisted7948 skips generating image versions if the design file size is too large7949 returns the status7950 returns the version7951 logs if the raw image cannot be found7952 when an error is encountered when generating the image versions7953 CarrierWave::IntegrityError7954 logs the exception7955 logs the error7956 CarrierWave::UploadError7957 logs the error7958 tracks the error7959Gitlab::Ci::Build::Artifacts::Path7960 #valid?7961 when path contains a zero character7962 is not valid7963 when path is not utf8 string7964 is not valid7965 when path is valid7966 is valid7967 #directory?7968 when path ends with a directory indicator7969 is a directory7970 when path does not end with a directory indicator7971 is not a directory7972 #name7973 returns a base name7974 #nodes7975 returns number of path nodes7976 #to_s7977 when path is valid7978 returns a string representation of a path7979 when path is invalid7980 raises an error7981Gitlab::ExclusiveLeaseHelpers::SleepingLock7982 #retried?7983 we have not made any attempts7984 is expected not to be retried7985 we just made a single (initial) attempt7986 is not considered a retry7987 made multiple attempts7988 is considered a retry7989 #obtain7990 when the lease is not held7991 obtains the lease on the first attempt, without sleeping7992 when the lease is held elsewhere7993 retries to obtain a lease and raises an error7994 when the delay is computed from the attempt number7995 uses the computation to determine the sleep length7996 when lease is granted after retry7997 knows that it retried7998 cancel7999 cancels the lease8000Gitlab::Database::LoadBalancing::RackMiddleware8001 .stick_or_unstick8002 sticks or unsticks a single object and updates the Rack environment8003 sticks or unsticks multiple objects and updates the Rack environment8004 #call8005 handles a request8006 #unstick_or_continue_sticking8007 does not stick if no namespace and identifier could be found8008 sticks to the primary if a warden user is found8009 sticks to the primary if a sticking namespace and identifier is found8010 sticks to the primary if multiple sticking namespaces and identifiers were found8011 #stick_if_necessary8012 does not stick to the primary if not necessary8013 sticks to the primary if a warden user is found8014 sticks to the primary if a a single sticking object is found8015 sticks to the primary if multiple sticking namespaces and identifiers were found8016 #clear8017 clears the currently used host and session8018 .load_balancer8019 returns a the load balancer8020 #sticking_namespaces_and_ids8021 using a Warden request8022 returns the warden user if present8023 returns an empty Array if no user was present8024 using a request with a manually set sticking object8025 returns the sticking object8026 using a regular request8027 returns an empty Array8028BulkImports::UsersMapper8029 #map8030 when value for specified key exists8031 returns a map of source & destination user ids from redis8032 when value for specified key does not exist8033 returns default value8034 #default_user_id8035 returns current user id8036 #include?8037 when source user id is present in the map8038 returns true8039 when source user id is missing in the map8040 returns false8041 #cache_source_user_id8042 caches provided source & destination user ids in redis8043Gitlab::UrlBlockers::UrlAllowlist8044 #domain_allowed?8045 returns true if domains present in allowlist8046 returns false when domain is blank8047 with ports8048 returns true if domain and ports present in allowlist8049 #ip_allowed?8050 returns true if ips present in allowlist8051 returns false when ip is blank8052 with ip ranges in allowlist8053 does not allowlist ipv4 range when not in allowlist8054 allowlists all ipv4s in the range when in allowlist8055 does not allowlist ipv6 range when not in allowlist8056 allowlists all ipv6s in the range when in allowlist8057 does not allowlist IPs outside the range8058 with ports8059 returns true if ip and ports present in allowlist8060WikiDirectory8061 validations8062 is expected to validate that :slug cannot be empty/falsy8063 .group_pages8064 returns a nested array of entries8065 #initialize8066 when there are entries8067 sets the slug attribute8068 sets the entries attribute8069 when there are no entries8070 sets the slug attribute8071 sets the entries attribute to an empty array8072 #title8073 returns the basename of the directory, with hyphens replaced by spaces8074 #to_partial_path8075 returns the relative path to the partial to be used8076RuboCop::Cop::API::Base8077 adds an offense when inheriting from Grape::API8078 adds an offense when inheriting from ::Grape::API8079 adds an offense when inheriting from Grape::API::Instance8080 adds an offense when inheriting from ::Grape::API::Instance8081 does not add an offense when inheriting from BaseAPI8082Notes::DestroyService8083 #execute8084 deletes a note8085 updates the todo counts for users with todos for the note8086 tracks issue comment removal usage data8087 tracks merge request usage data8088 in a merge request8089 does not track issue comment removal usage data8090 noteable highlight cache clearing8091 clears noteable diff cache when it was unfolded for the note position8092 does not clear cache when note is not the first of the discussion8093ContainerRepositoriesSerializer8094 #represent8095 has basic attributes8096 #represent_read_only8097 does not include destroy_path8098 #with_pagination8099 creates a paginated serializer8100 when multiple ContainerRepository objects are serialized8101 serializes appropriate number of objects8102 appends relevant headers8103Gitlab::Checks::SnippetCheck8104 #validate!8105 does not raise any error8106 trying to delete the branch8107 behaves like raises and logs error8108 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."8109 trying to create the branch8110 behaves like raises and logs error8111 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."8112 when branch is the same as the default branch8113 allows the operation8114 when snippet has an empty repo8115 allows the operation8116 when default_branch is nil8117 behaves like raises and logs error8118 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."8119Deployments::HooksWorker8120 #perform8121 executes project services for deployment_hooks8122 does not execute an inactive service8123 does not execute if a deployment does not exist8124 execute webhooks8125 behaves like worker with data consistency8126 .get_data_consistency_feature_flag_enabled?8127 returns true8128 .get_data_consistency8129 returns correct data consistency8130Gitlab::Instrumentation::Redis8131 behaves like aggregation of redis storage data8132 get_request_count sum8133 sums data from all Redis storages8134 behaves like aggregation of redis storage data8135 query_time sum8136 sums data from all Redis storages8137 behaves like aggregation of redis storage data8138 read_bytes sum8139 sums data from all Redis storages8140 behaves like aggregation of redis storage data8141 write_bytes sum8142 sums data from all Redis storages8143 .payload8144 returns payload filtering out zeroed values8145 .detail_store8146 returns a flat array of detail stores with the storage name added to each item8147BulkImports::FileTransfer::GroupConfig8148 #portable_tree8149 returns portable tree8150 #export_path8151 returns correct export path8152 #portable_relations8153 returns a list of top level exportable relations8154 does not include skipped relations8155 #top_relation_tree8156 returns relation tree of a top level relation8157 #relation_excluded_keys8158 returns excluded keys for relation8159Gitlab::Graphql::CallsGitaly::FieldExtension8160 when the field calls gitaly8161 when the field has a constant complexity8162 allows the call8163 when the field declares that it calls gitaly8164 allows the call8165 when the field does not have these arguments8166 notices, and raises, mentioning the field8167 when it does not call gitaly8168 does not raise8169 when some field calls gitaly while we were waiting8170 is acceptable if all are accounted for8171 is unacceptable if some of the calls are unaccounted for8172Ci::ProcessPipelineService8173 processing events counter8174 increments processing events counter8175 updating a list of retried builds8176 when FF ci_remove_update_retried_from_process_pipeline is enabled8177 does not update older builds as retried8178 when FF ci_remove_update_retried_from_process_pipeline is disabled8179 returns unique statuses8180 increments the counter8181 logs the project and pipeline id8182 when the previous build has already retried column true8183 does not increment the counter8184AwardEmojisFinder8185 param validation8186 raises an error if `name` is invalid8187 does not raise an error if `name` is numeric8188 raises an error if `awarded_by` is invalid8189 #execute8190 scopes to the awardable8191 filters by emoji name8192 filters by user8193Gitlab::Ci::Status::Build::Common8194 #has_action?8195 is expected not to have action8196 #has_details?8197 when user has access to read build8198 is expected to have details8199 when user does not have access to read build8200 is expected not to have details8201 #details_path8202 links to the build details page8203 #illustration8204 provides a fallback empty state illustration8205Users::BlockService8206 #execute8207 when successful8208 is expected to eq {:status=>:success}8209 change the user's state8210 when failed8211 returns error result8212 does not change the user's state8213 when internal user8214 returns error result8215Autocomplete::ProjectFinder8216 #execute8217 without a project ID8218 returns nil8219 with an empty String as the project ID8220 returns nil8221 with a project ID8222 raises ActiveRecord::RecordNotFound if the project does not exist8223 raises ActiveRecord::RecordNotFound if the user can not read the project8224 raises ActiveRecord::RecordNotFound if an anonymous user can not read the project8225 returns the project if it exists and is readable8226ErrorTracking::CollectErrorService8227 #execute8228 creates Error and creates ErrorEvent8229 updates Error and created ErrorEvent on second hit8230 has correct values set8231 unusual payload8232 missing transaction8233 builds actor from stacktrace8234 timestamp is numeric8235 parses timestamp8236BranchFilterValidator8237 #validates_each8238 allows valid branch names8239 disallows bad branch names8240 allows wildcards8241 gets rid of whitespace8242 limits length to 4000 chars8243Gitlab::Ci::Config::Entry::Hidden8244 .matching?8245 when name starts with dot8246 is expected to be truthy8247 when name does not start with dot8248 is expected to be falsey8249 .new8250 validations8251 when entry config value is correct8252 #value8253 returns key value8254 #valid?8255 is valid8256 when entry value is not correct8257 when config is empty8258 #valid8259 is invalid8260 #leaf?8261 is a leaf8262 #relevant?8263 is not a relevant entry8264Gitlab::Database::Count::ReltuplesCountStrategy8265 #count8266 when reltuples is up to date8267unknown OID 28: failed to recognize type of 'relfrozenxid'. It will be treated as String.8268unknown OID 1034: failed to recognize type of 'relacl'. It will be treated as String.8269unknown OID 194: failed to recognize type of 'relpartbound'. It will be treated as String.8270 uses statistics to do the count8271 when models using single-type inheritance are used8272 returns nil counts for inherited tables8273 insufficient permissions8274 returns an empty hash8275ProjectRepository8276 associations8277 is expected to belong to shard required:8278 is expected to belong to project required:8279 behaves like shardable scopes8280 .for_repository_storage8281 returns the objects for a given repository storage8282 .excluding_repository_storage8283 returns the objects excluding the given repository storage8284 .for_shard8285 returns the objects for a given shard8286 .find_project8287 finds project by disk path8288 returns nil when it does not find the project8289Gitlab::Metrics::Dashboard::RepoDashboardFinder8290 .list_dashboards8291 deletes dashboard cache entries8292 returns empty array when there are no dashboards8293 when there are project dashboards available8294 returns the dashboard list8295 .read_dashboard8296 raises error when dashboard does not exist8297 when there are project dashboards available8298 reads dashboard8299Resolvers::BlobsResolver8300 .resolver_complexity8301 adds one per path being resolved8302 #resolve8303 when unauthorized8304 raises an exception8305 when authorized8306 using no filter8307 returns nothing8308 using paths filter8309 returns the specified blobs for HEAD8310 specifying a non-existent blob8311 returns nothing8312 specifying a different ref8313 returns the specified blobs for that ref8314Mutations::Ci::JobTokenScope::RemoveProject8315 #resolve8316 when user is not logged in8317 raises error8318 when user is logged in8319 when user does not have permissions to admin project8320 raises error8321 when user has permissions to admin project and read target project8322 removes target project from the job token scope8323 when the service returns an error8324 returns an error response8325Ci::CompareReportsBaseService8326 #latest?8327 when cache key is latest8328 is expected to be truthy8329 when cache key is outdated8330 is expected to be falsy8331 when cache key is empty8332 is expected to be falsy8333Gitlab::Prometheus::Queries::MatchedMetricQuery8334 with one group where two metrics is found8335 both metrics in the group pass requirements8336 responds with both metrics as actve8337 none of the metrics pass requirements8338 responds with both metrics missing requirements8339 no series information found about the metrics8340 responds with both metrics missing requirements8341 one of the series info was not found8342 responds with one active and one missing metric8343 with one group where only one metric is found8344 both metrics in the group pass requirements8345 responds with one metrics as active and no missing requiremens8346 no metrics in group pass requirements8347 responds with one metrics as active and no missing requiremens8348 with two groups where metrics are found in each group8349 all metrics in both groups pass requirements8350 responds with one metrics as active and no missing requiremens8351 no metrics in groups pass requirements8352 responds with one metrics as active and no missing requiremens8353Types::Terraform::StateType8354 is expected to eq "TerraformState"8355 is expected to require graphql authorizations :read_terraform_state8356 fields8357 is expected to have graphql fields :id, :name, :locked_by_user, :locked_at, :latest_version, :created_at, and :updated_at8358 is expected to be non null8359 is expected to be non null8360 is expected not to be non null8361 is expected not to be non null8362 is expected to be non null8363 is expected to be non null8364 is expected not to be non null8365 is expected to eq 38366Gitlab::Ci::Config::Entry::Release::Assets::Link8367 validation8368 when entry config value is correct8369 #value8370 returns link configuration8371 #valid?8372 is valid8373 when entry value is not correct8374 #errors8375 when name is not a string8376 reports error8377 when name is not present8378 reports error8379 when url is not addressable8380 reports error8381 when url is not present8382 reports error8383 when there is an unknown key present8384 reports error8385Gitlab::JiraImport::MetadataCollector8386 #execute8387 when all metadata fields are present8388 writes all fields8389 when some fields are in incorrect format8390 when fixVersions field is not an array8391 skips these fields8392 when a fixVersions element is in incorrect format8393 skips the element8394 when a parent field has incorrectly formatted summary8395 skips the summary8396 when a parent field is missing the key8397 skips the field8398 when some metadata fields are missing8399 skips the missing fields8400 when all metadata fields are missing8401 returns nil8402RuboCop::Cop::Migration::Datetime8403 when in migration8404 registers an offense when the ":datetime" data type is used on create_table8405 registers an offense when the ":timestamp" data type is used on create_table8406 does not register an offense when the ":datetime" data type is not used on create_table8407 does not register an offense when the ":datetime_with_timezone" data type is used on create_table8408 registers an offense when the ":datetime" data type is used on add_column8409 registers an offense when the ":timestamp" data type is used on add_column8410 does not register an offense when the ":datetime" data type is not used on add_column8411 does not register an offense when the ":datetime_with_timezone" data type is used on add_column8412 when outside of migration8413 registers no offense8414Gitlab::SlashCommands::Presenters::IssueClose8415 is expected to be a kind of Hash8416 shows the issue8417 confidential issue8418 shows an ephemeral response8419Mutations::AlertManagement::HttpIntegration::Update8420 is expected to require graphql authorizations :admin_operations8421 #resolve8422 user has sufficient access to project8423 when HttpIntegrations::UpdateService responds with success8424 returns the integration with no errors8425 when HttpIntegrations::UpdateService responds with an error8426 returns errors8427 when resource is not accessible to the user8428 raises an error if the resource is not accessible to the user8429Packages::Composer::ComposerJsonService8430 #execute8431 with an existing file8432 with a valid file8433 returns the parsed json8434 with an invalid file8435 raises an error8436 without the composer.json file8437 raises an error8438PagesDomainSslRenewalCronWorker8439 #perform8440 enqueues a PagesDomainSslRenewalWorker for domains needing renewal8441 behaves like a pages cronjob scheduling jobs with context8442 schedules the renewal with a context8443 with RequestStore enabled8444 does not cause extra queries for multiple domains8445 when letsencrypt integration is disabled8446 does nothing8447help/show8448 Markdown rendering8449 renders Markdown8450Gitlab::Git::Conflict::File8451 #lines8452 when the content contains non-UTF-8 characters8453 raises UnsupportedEncoding8454 when the content can be converted to UTF-88455 sets lines to the lines8456 sets the type to text8457 #content8458 when the content contains non-UTF-8 characters8459 raises UnsupportedEncoding8460 when the content can be converted to UTF-88461 returns a valid UTF-8 string8462 #path8463 returns our_path8464 when our_path is not present8465 returns their_path8466Banzai::ReferenceParser::MentionedProjectParser8467 #gather_references8468 when the link has a data-project attribute8469 using an existing project ID where user does not have access8470 returns empty Array8471 using an existing project ID8472 returns an Array of referenced projects8473 using a non-existing project ID8474 returns an empty Array8475Gitlab::JWTToken8476 behaves like a gitlab jwt token8477 #secret8478 is expected to eq "1058b0a16f457464e7504550ef9d30d94470e028045ab4ef04630dd43a14ef1c"8479 #decode8480 with a custom payload8481 returns the correct token8482 returns nil and logs the exception after expiration8483DependencyProxy::ImageTtlGroupPolicy8484 relationships8485 is expected to belong to group required:8486 validations8487 is expected to validate that :group cannot be empty/falsy8488 #enabled8489 is expected to allow :enabled to be ‹true›8490 is expected to allow :enabled to be ‹false›8491 is expected not to allow :enabled to be ‹nil›8492 #ttl8493 is expected to validate that :ttl looks like a number greater than 0 as long as it is not nil8494IntegrationPolicy8495 when the integration is a prometheus_integration8496 rules8497 is expected to be disallowed :admin_project8498 when maintainer8499 is expected to be allowed :admin_project8500Projects::ErrorTrackingHelper8501 #error_tracking_data8502 without error_tracking_setting8503 returns frontend configuration8504 with error_tracking_setting8505 when enabled8506 show error tracking enabled8507 when disabled8508 show error tracking not enabled8509 when user is not maintainer8510 shows error tracking enablement as disabled8511 #error_details_data8512 returns the correct issue id8513 returns the correct project path8514 returns the correct stack trace path8515 creates an issue and redirects to issue show page8516ActionMailer hooks8517 smime signature interceptor8518 is disabled by default8519 interceptor testbed8520 email_enabled: false, email_smime_enabled: false, smime_interceptor_enabled: false8521 is enabled depending on settings8522 email_enabled: false, email_smime_enabled: true, smime_interceptor_enabled: false8523 is enabled depending on settings8524 email_enabled: true, email_smime_enabled: false, smime_interceptor_enabled: false8525 is enabled depending on settings8526 email_enabled: true, email_smime_enabled: true, smime_interceptor_enabled: true8527 is enabled depending on settings8528Packages::Helm::ExtractionWorker8529 #perform8530 with valid package file8531 behaves like an idempotent worker8532 is labeled as idempotent8533 performs multiple times sequentially without raising an exception8534 updates package and package file8535 with invalid package file id8536 doesn't update helm_file_metadatum8537 with an empty package file8538 behaves like handling error8539 mark the package as errored8540 with an invalid YAML8541 behaves like handling error8542 mark the package as errored8543 with an invalid Chart.yaml8544 behaves like handling error8545 mark the package as errored8546LearnGitlab::Onboarding8547 #completed_percentage8548 when no onboarding_progress exists8549 is expected to eq 08550 when no action has been completed8551 is expected to eq 08552 when one action has been completed8553 is expected to eq 118554 when all tracked actions have been completed8555 is expected to eq 1008556Repositories::ChangelogCommitsFinder8557 #each_page8558 only yields commits with the given trailer8559 ignores commits that are reverted8560 includes revert commits if they have a trailer8561 supports paginating of commits8562 #revert_commit_sha8563 returns the SHA of a reverted commit8564 returns nil when the commit is not a revert commit8565 returns nil when the commit has no description8566PublicUrlValidator8567 #validate8568 with no options8569 allows http,https schemes by default8570 checks that the url structure is valid8571 with schemes8572 allows urls with the defined schemes8573 add error if the url scheme does not match the selected ones8574 by default8575 blocks urls pointing to localhost8576 blocks urls pointing to the local network8577 when local requests are allowed8578 does not block urls pointing to localhost8579 does not block urls pointing to the local network8580notify/changed_milestone_email.html.haml8581 milestone without start and due dates8582 renders without date range8583 milestone with start and due dates8584 renders with date range8585RuboCop::Cop::UsageData::HistogramWithLargeTable8586 with large tables8587 with one-level constants8588 when calling histogram(Issue)8589 registers an offense8590 when calling histogram(::Issue)8591 registers an offense8592 when calling histogram(Issue.closed)8593 registers an offense8594 when calling histogram(::Issue.closed)8595 registers an offense8596 with two-level constants8597 when calling histogram(::Ci::Build)8598 registers an offense8599 when calling histogram(::Ci::Build.active)8600 registers an offense8601 when calling histogram(Ci::Build)8602 registers an offense8603 when calling histogram(Ci::Build.active)8604 registers an offense8605 with non related class8606 does not register an offense8607 with non related method8608 does not register an offense8609Gitlab::Git::RemoteMirror8610 #update8611 delegates to the Gitaly client8612 wraps gitaly errors8613Gitlab::Ci::Pipeline::Chain::Sequence8614 when one of steps breaks the chain8615 does not process the second step8616 returns a pipeline object8617 when all chains are executed correctly8618 iterates through entire sequence8619 returns a pipeline object8620 adds sequence duration to duration histogram8621 adds step sequence duration to duration histogram8622 records pipeline size by pipeline source in a histogram8623 records active jobs by pipeline plan in a histogram8624Gitlab::Ci::Status::Pipeline::Common8625 #has_action?8626 is expected not to have action8627 #has_details?8628 when user has access to read pipeline8629 is expected to have details8630 when user does not have access to read pipeline8631 is expected not to have details8632 #details_path8633 links to the pipeline details page8634Gitlab::Ci::Status::Build::Preparing8635 #illustration8636 is expected to include :image, :size, :title, and :content8637 .matches?8638 when build is preparing8639 is a correct match8640 when build is not preparing8641 does not match8642Banzai::Filter::ImageLazyLoadFilter8643 adds a class attribute8644 appends to the current class attribute8645 transforms the image src to a data-src8646 works with external images8647Milestones::UpdateService8648 #execute8649 valid params8650 is expected to be valid8651 is expected to eq "new_title"8652 state_event is activate8653 calls ReopenService8654 state_event is close8655 calls ReopenService8656Gitlab::Ci::Config::Entry::Stage8657 validations8658 when stage config value is correct8659 #value8660 returns a stage key8661 #valid?8662 is valid8663 when value has a wrong type8664 reports errors about wrong type8665 .default8666 returns default stage8667SelfMonitoringProjectDeleteWorker8668 #perform8669 behaves like executes service8670 runs the service8671 .status8672 behaves like returns in_progress based on Sidekiq::Status8673 returns true when job is enqueued8674 returns false when job does not exist8675Banzai::Filter::ImageLinkFilter8676 wraps the image with a link to the image src8677 does not wrap a duplicate link8678 works with external images8679 works with inline images8680 keep the data-canonical-src8681Clusters::Aws::FetchCredentialsService8682 #execute8683 provision role is configured8684 provider is specified8685 is expected to eq #<Double (anonymous)>8686 provider is not specifed8687 is expected to eq #<Double (anonymous)>8688 region is not specifed8689 is expected to eq #<Double (anonymous)>8690 provision role is not configured8691 raises an error8692 with an instance profile attached to an IAM role8693 provider is specified8694 returns credentials8695 provider is not specifed8696 returns credentials8697Gitlab::ImportFormatter8698 #comment8699 creates the correct string8700 #author_line8701 returns the correct string with provided author name8702 returns the correct string with Anonymous name if author not provided8703 #assignee_line8704 returns the correct string with provided author name8705 returns the correct string with Anonymous name if author not provided8706admin/application_settings/_package_registry8707 package file size limits8708 has fields for max package file sizes8709 does not display the plan name when there is only one plan8710 with multiple plans8711 displays the plan name when there is more than one plan8712Gitlab::Database::Partitioning::PartitionMonitoring8713 #report_metrics8714 reports number of present partitions8715 reports number of missing partitions8716 reports number of extra partitions8717Gitlab::Ci::Build::Policy::Kubernetes8718 when kubernetes service is active8719 when user configured kubernetes from CI/CD > Clusters8720 is satisfied by a kubernetes pipeline8721 when kubernetes service is inactive8722 is not satisfied by a pipeline without kubernetes available8723 when kubernetes policy is invalid8724 raises an error8725Gitlab::GithubImport::ImportPullRequestReviewWorker8726 is expected to includes the Gitlab::GithubImport::ObjectImporter module8727 #representation_class8728 is expected to eq Gitlab::GithubImport::Representation::PullRequestReview8729 #importer_class8730 is expected to eq Gitlab::GithubImport::Importer::PullRequestReviewImporter8731Gitlab::Pagination::Keyset::RequestContext8732 #page8733 with only order_by given8734 extracts order_by/sorting information8735 with order_by and sort given8736 extracts order_by/sorting information and adds tie breaker8737 with no order_by information given8738 defaults to tie breaker8739 with per_page params given8740 extracts per_page information8741 #apply_headers8742 sets Link header with same host/path as the original request8743 sets Link header with a link to the next page8744 with descending order8745 sets Link header with a link to the next page8746EmptyRepoUploadExperiment8747 #track_initial_write8748 when experiment is turned on8749 tracks an event for the first commit on a project8750 doesn't track an event for projects with a commit count more than 18751 doesn't track if the project is older8752 when experiment is turned off8753 doesn't track when we generally shouldn't8754Ci::JobArtifactsFinder8755 #execute8756 with empty params8757 returns all artifacts belonging to the project8758 with sort param8759 sorts the artifacts8760Gitlab::Usage::Metrics::Instrumentations::HostnameMetric8761 behaves like a correct instrumented metric value8762 has correct value8763Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumns8764 #array_aggregated_column_names8765 is expected to eq ["issues_relative_position_array", "issues_id_array"]8766 #original_column_names8767 is expected to eq ["relative_position", "id"]8768 #cursor_values8769 returns the keyset pagination cursor values from the column arrays as SQL expression8770BulkImports::RelationExportWorker8771 #perform8772 is labeled as idempotent8773 performs multiple times sequentially without raising an exception8774 executes RelationExportService8775 when export record does not exist8776/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil8777 creates export record8778TrackingHelper8779 #tracking_attrs8780 snowplow_enabled: true, environment: "production", result: :with_data8781 returns a hash8782 snowplow_enabled: false, environment: "production", result: :no_data8783 returns a hash8784 snowplow_enabled: true, environment: "development", result: :no_data8785 returns a hash8786 snowplow_enabled: false, environment: "development", result: :no_data8787 returns a hash8788 snowplow_enabled: true, environment: "test", result: :no_data8789 returns a hash8790 snowplow_enabled: false, environment: "test", result: :no_data8791 returns a hash8792GroupBadge8793 associations8794 is expected to belong to group required:8795 validations8796 is expected to validate that :group cannot be empty/falsy8797Types::Notes::NoteableInterface8798 exposes the expected fields8799 .resolve_type8800 knows the correct type for objects8801PaginationHelper8802 #paginate_collection8803 paginates a collection without using a COUNT8804 paginates a collection using a COUNT8805Resolvers::Users::GroupCountResolver8806 #resolve8807 resolves group count for users8808 permissions8809 when current_user is an admin8810 is expected to eq [2, 1]8811 when current_user does not have access to the requested resource8812 is expected to equal nil8813 when current_user does not exist8814 is expected to equal nil8815ProtectedBranches::UpdateService8816 #execute8817 updates a protected branch8818 without admin_project permissions8819 raises error8820 when a policy restricts rule creation8821 prevents creation of the protected branch rule8822Resolvers::RepositoryBranchNamesResolver8823 #resolve8824 with empty search pattern8825 returns nil8826 with a valid search pattern8827 returns matching branches8828 properly offsets and limits branch name results8829Ci::PipelineArtifacts::ExpireArtifactsWorker8830 #perform8831 executes a service8832 is labeled as idempotent8833 performs multiple times sequentially without raising an exception8834 removes the artifact only once8835Gitlab::Kubernetes::Kubeconfig::Entry::Context8836 #to_h8837 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}8838 with a namespace8839 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}8840Gitlab::Ci::Status::Pipeline::Blocked8841 #text8842 overrides status text8843 #label8844 overrides status label8845 .matches?8846 when pipeline is blocked8847 is a correct match8848 when pipeline is not blocked8849 does not match8850JiraConnect::SyncService8851 #execute8852 calls Atlassian::JiraConnect::Client#store_dev_info and logs the response8853 when a request returns an error8854 logs the response as an error8855Gitlab::Email::AttachmentUploader8856 #execute8857 uploads all attachments and returns their links8858 with a signed message8859 uploads all attachments except the signature8860 with a signed message with mixed protocol prefix8861 uploads all attachments except the signature8862 with a message with no content type8863 uploads all attachments except the signature8864SubscribableBannerHelper8865 #display_subscription_banner!8866 is over-written in EE8867BulkImports::Pipeline8868 pipeline attributes8869 getters8870 retrieves class attributes8871 when extractor and loader are defined within the pipeline8872 returns itself when retrieving extractor & loader8873 setters8874 sets class attributes8875 #instantiate8876 when options are present8877 instantiates new object with options8878 when options are missing8879 instantiates new object without options8880 #transformers8881 has instance transform method first to run8882Import::ManifestProviderRepoEntity8883 behaves like exposes required fields for import entity8884 exposes required fields8885 correctly exposes id8886 correctly exposes full name8887 correctly exposes sanitized name8888 correctly exposes provider link8889Gitlab::Database::AsyncIndexes::PostgresAsyncIndex8890 validations8891 is expected to validate that :name cannot be empty/falsy8892 is expected to validate that the length of :name is at most 638893 is expected to validate that :table_name cannot be empty/falsy8894 is expected to validate that the length of :table_name is at most 638895 is expected to validate that :definition cannot be empty/falsy8896 is expected to validate that the length of :definition is at most 20488897ApplicationsFinder8898 #execute8899 returns an array of instance applications8900 by_id8901 with existing id8902 returns the application8903 with invalid id8904 returns nil for user application8905 returns nil for group application8906 returns nil for non-existing application8907Gitlab::RequestContext8908 is expected to have attributes {:client_ip => nil, :request_start_time => nil, :start_thread_cpu_time => nil}8909 #request_deadline8910 sets the time to 57 seconds in the future8911 returns nil if there is no start time8912 #ensure_request_deadline_not_exceeded!8913 does not raise an error when there was no deadline8914 does not raise an error if the deadline is in the future8915 raises an error when the deadline is in the past8916MemberUserEntity8917 matches json schema8918 correctly exposes `avatar_url`8919 correctly exposes `blocked`8920 correctly exposes `two_factor_enabled`8921 correctly exposes `status.emoji`8922Gitlab::Ci::Config::Entry::Tags8923 validation8924 when tags config value is correct8925 #value8926 returns tags configuration8927 #valid?8928 is valid8929 when entry value is not correct8930 #errors8931 when tags config is not an array of strings8932 reports error8933 when tags limit is reached8934 when ci_build_tags_limit is enabled8935 reports error8936 when ci_build_tags_limit is disabled8937 does not report an error8938Gitlab::View::Presenter::Delegated8939 includes Gitlab::View::Presenter::Base8940 #initialize8941 takes arbitrary key/values and exposes them8942 raise an error if the presentee already respond to method8943 delegation8944 forwards missing methods to subject8945Gitlab::Sherlock::Location8946 from_ruby_location8947 creates a Location from a Thread::Backtrace::Location8948 #path8949 returns the file path8950 #line8951 returns the line number8952 #application?8953 returns true for an application frame8954 returns false for a non application frame8955MergeRequestSidebarExtrasEntity8956 #assignees8957 contains assignees attributes8958 #reviewers8959 contains reviewers attributes8960API::Entities::Nuget::Metadatum8961 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}8962 metadatum without project_url8963 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license"}8964 metadatum without license_url8965 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :projectUrl=>"http://sandbox.com/project"}8966 metadatum without icon_url8967 is expected to eq {:licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}8968Ci::BuildPrepareWorker8969 build exists8970 calls the prepare build service8971 build does not exist8972 does not attempt to prepare the build8973GraphqlTriggers8974 .issuable_assignees_updated8975 triggers the issuableAssigneesUpdated subscription8976Gitlab::Ci::Config::Entry::Release::Assets::Links8977 validation8978 when entry config value is correct8979 #value8980 returns links configuration8981 #valid?8982 is valid8983 when entry value is not correct8984 #errors8985 when value of link is invalid8986 reports error8987 when value of links link is empty8988 reports error8989 when there is an unknown key present8990 reports error8991Gitlab::Ci::Artifacts::Metrics8992 #increment_destroyed_artifacts8993 when incrementing by more than one8994 increments a single counter8995Ci::PipelineArtifacts::CoverageReportWorker8996 #perform8997 when pipeline exists8998 calls pipeline report result service8999 when pipeline does not exist9000 does not call pipeline create artifact service9001Gitlab::WikiFileFinder9002 #find9003 behaves like file finder9004 finds by path9005 finds by content9006Projects::Prometheus::Alerts::DestroyService9007 #execute9008 deletes the alert9009TermAgreement9010 validations9011 is expected to validate that :term cannot be empty/falsy9012 is expected to validate that :user cannot be empty/falsy9013 .accepted9014 only includes accepted terms9015Gitlab::Database::SchemaMigrations::Migrations9016 #touch_all9017 creates a file containing a checksum for each version with a matching migration9018 #load_all9019 when there are no version files9020 does nothing9021 when there are version files9022 inserts the missing versions into schema_migrations9023Gitlab::Database::MigrationHelpers::LooseForeignKeyHelpers9024-- create_table(:loose_fk_test_table)9025 -> 0.0037s9026 when the record deletion tracker trigger is not installed9027 does store record deletions9028 when the record deletion tracker trigger is installed9029-- execute("CREATE TRIGGER loose_fk_test_table_loose_fk_trigger\nAFTER DELETE ON loose_fk_test_table REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")9030 -> 0.0016s9031 stores the record deletion9032-- execute("CREATE TRIGGER loose_fk_test_table_loose_fk_trigger\nAFTER DELETE ON loose_fk_test_table REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")9033 -> 0.0015s9034 stores multiple record deletions9035Projects::UpdateRepositoryStorageWorker9036 behaves like an update storage move worker9037 #perform9038 without repository storage move9039 calls the update repository storage service9040 with repository storage move9041 calls the update repository storage service9042Gitlab::Import::SetAsyncJid9043 .set_jid9044 sets the JID in Redis9045 updates the import JID of the project9046Gitlab::Email::Message::InProductMarketing::TeamShort9047 public methods9048 returns value for series9049 #progress9050 on gitlab.com9051 is expected to include "This is email 1 of 4 in the Team series"9052 not on gitlab.com9053 is expected to include "This is email 1 of 4 in the Team series" and "http://localhost/-/profile/notifications"9054DiffViewerEntity9055 serializes diff file viewer9056Gitlab::Ci::Build::Prerequisite::Factory9057 .for_build9058 prerequisite is unmet9059 is expected to eq [#<InstanceDouble(Gitlab::Ci::Build::Prerequisite::KubernetesNamespace) (anonymous)>]9060 prerequisite is met9061 is expected to be empty9062ProductAnalytics::BuildGraphService9063 returns a valid graph hash9064Gitlab::Database::LoadBalancing::ActionCableCallbacks9065 .wrapper9066 uses primary and then releases the connection and clears the session9067 with an exception9068 releases the connection and clears the session9069UpdateProjectStatisticsWorker9070 #perform9071 updates the project statistics9072Types::Ci::RunnerType9073 is expected to eq "CiRunner"9074 is expected to require graphql authorizations :read_runner9075 contains attributes related to a runner9076RuboCop::Cop::AvoidRouteRedirectLeadingSlash9077 registers an offense when redirect has a leading slash and corrects9078 does not register an offense when redirect does not have a leading slash9079Import/Export attribute configuration9080 has no new columns9081Gitlab::Database::LoadBalancing::ActiveRecordProxy9082 #connection9083 returns a connection proxy9084groups/settings/_remove.html.haml9085 render9086 enables the Remove group button for a group9087Types::ProjectMemberRelationEnum9088 is expected to eq "ProjectMemberRelation"9089 exposes all the existing project member relation type values9090Types::Ci::RecentFailuresType9091 is expected to eq "RecentFailures"9092 contains attributes related to a recent failure history for a test case9093BlobViewer::PodspecJson9094 #package_name9095 returns the package name9096Types::IssuableSeverityEnum9097 is expected to eq "IssuableSeverity"9098 exposes all the existing issuable severity values9099RecaptchaHelper9100 .show_recaptcha_sign_up?9101 when reCAPTCHA is disabled9102 returns false9103 when reCAPTCHA is enabled9104 returns true9105Types::UserCalloutType9106 is expected to eq "UserCallout"9107 has expected fields9108Gitlab::Asciidoc::Html5Converter9109 convert AsciiDoc to HTML59110 appends user-content- prefix on ref (anchor)9111Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::None9112 #schedule9113 yields without checking for duplicates9114 #perform9115 does not delete any locks before executing9116Evidences::IssueEntity9117 exposes the expected fields9118Types::PermissionTypes::User9119 returns user permissions9120Gitlab::Diff::InlineDiffMarkdownMarker9121 #mark9122 does not escape html etities and marks the range9123UpdateContainerRegistryInfoWorker9124 #perform9125 calls UpdateContainerRegistryInfoService9126Types::Packages::Nuget::DependencyLinkMetadatumType9127 includes nuget dependency link metadatum fields9128Gitlab::ActionCable::RequestStoreCallbacks9129 .wrapper9130 enables RequestStore in the inner block9131Gitlab::Middleware::ReleaseEnv9132 #call9133 calls the app and clears the env9134Types::ReleaseAssetsInputType9135 is expected to eq "ReleaseAssetsInput"9136 has the correct arguments9137 sets the type of links argument to ReleaseAssetLinkInputType9138Types::CiConfiguration::Sast::OptionsEntityType9139 is expected to eq "SastCiConfigurationOptionsEntity"9140 is expected to have graphql fields :label and :value9141DeployKeys::CreateService9142 creates a deploy key9143Types::UserStatusType9144 is expected to eq "UserStatus"9145 exposes the expected fields9146Gitlab::ErrorTracking::LogFormatter9147 appends error-related log fields and filters sensitive Sidekiq arguments9148Sidekiq::Cron::Job9149 cron jobs9150 when Fugit depends on ZoTime or EoTime9151 does not get any errors9152Knapsack report was generated. Preview:9153{9154 "spec/lib/gitlab/relative_positioning/mover_spec.rb": 166.8564878719999,9155 "spec/services/git/branch_hooks_service_spec.rb": 92.27569190900022,9156 "spec/services/merge_requests/build_service_spec.rb": 77.65446603300006,9157 "spec/services/clusters/gcp/finalize_creation_service_spec.rb": 78.87223821499992,9158 "spec/lib/gitlab/kubernetes/kube_client_spec.rb": 20.420967113000188,9159 "spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb": 43.20376204199965,9160 "spec/services/members/invitation_reminder_email_service_spec.rb": 10.894113656000172,9161 "spec/serializers/pipeline_serializer_spec.rb": 48.69784795400028,9162 "spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb": 19.091087172999778,9163 "spec/finders/labels_finder_spec.rb": 34.96149811899977,9164 "spec/lib/gitlab/sidekiq_cluster/cli_spec.rb": 32.15153661300019,9165 "spec/finders/todos_finder_spec.rb": 24.594683604000238,9166 "spec/models/gpg_key_spec.rb": 24.59725962399989,9167 "spec/lib/gitlab/ci/status/pipeline/factory_spec.rb": 22.099882935000096,9168 "spec/helpers/blob_helper_spec.rb": 13.604374231000293,9169 "spec/lib/banzai/filter/references/commit_reference_filter_spec.rb": 20.513696713000172,9170 "spec/lib/gitlab/file_type_detection_spec.rb": 8.328487423999832,9171 "spec/helpers/groups/group_members_helper_spec.rb": 24.927277187000072,9172 "spec/lib/gitlab/path_regex_spec.rb": 4.978019149999454,9173 "spec/lib/gitlab/fake_application_settings_spec.rb": 6.289701062999484,9174 "spec/lib/gitlab/import_export/members_mapper_spec.rb": 19.326713686999938,9175 "spec/finders/container_repositories_finder_spec.rb": 13.672868714000288,9176 "spec/models/concerns/milestoneable_spec.rb": 13.931212788999801,9177 "spec/models/packages/debian/project_distribution_spec.rb": 5.972224924000329,9178 "spec/models/award_emoji_spec.rb": 13.773861745999966,9179 "spec/lib/gitlab/ci/runner/backoff_spec.rb": 6.878252333999626,9180 "spec/uploaders/external_diff_uploader_spec.rb": 11.397794287000579,9181 "spec/services/alert_management/alerts/update_service_spec.rb": 7.895463672000005,9182 "spec/helpers/notes_helper_spec.rb": 7.176560851000431,9183 "spec/models/concerns/deprecated_assignee_spec.rb": 11.143128933000298,9184 "spec/models/terraform/state_version_spec.rb": 12.04583621599977,9185 "spec/models/resource_state_event_spec.rb": 9.366083690999403,9186 "spec/helpers/nav/top_nav_helper_spec.rb": 5.525824002999798,9187 "spec/graphql/types/global_id_type_spec.rb": 4.940768956999818,9188 "spec/lib/gitlab/encoding_helper_spec.rb": 3.919608509000682,9189 "spec/lib/gitlab/lets_encrypt/client_spec.rb": 13.587931166999624,9190 "spec/lib/gitlab/middleware/read_only_spec.rb": 4.937538586999835,9191 "spec/services/system_notes/design_management_service_spec.rb": 8.273300590999497,9192 "spec/lib/extracts_path_spec.rb": 4.618679903000157,9193 "spec/services/metrics/dashboard/grafana_metric_embed_service_spec.rb": 4.506085105000238,9194 "spec/models/concerns/redactable_spec.rb": 6.728935561000071,9195 "spec/lib/gitlab/ci/config/external/mapper_spec.rb": 5.581057395999778,9196 "spec/serializers/diff_file_entity_spec.rb": 5.081064042000435,9197 "spec/helpers/auth_helper_spec.rb": 6.1614580629993725,9198 "spec/models/concerns/each_batch_spec.rb": 6.798938042999907,9199 "spec/models/alert_management/http_integration_spec.rb": 5.616181553000388,9200 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 8.83671276899986,9201 "spec/lib/gitlab/ci/status/build/play_spec.rb": 9.5108419649996,9202 "spec/finders/user_recent_events_finder_spec.rb": 6.929158828999789,9203 "spec/policies/base_policy_spec.rb": 4.926935957999376,9204 "spec/services/ci/create_web_ide_terminal_service_spec.rb": 5.373274149999816,9205 "spec/lib/gitlab/ci/trace/checksum_spec.rb": 6.40024105700013,9206 "spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb": 4.401242985999488,9207 "spec/services/environments/schedule_to_delete_review_apps_service_spec.rb": 7.321193435999703,9208 "spec/lib/gitlab/optimistic_locking_spec.rb": 4.033095036999839,9209 "spec/services/jira_connect_subscriptions/create_service_spec.rb": 5.0324463169999945,9210 "spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb": 5.665247597000416,9211 "spec/workers/repository_check/single_repository_worker_spec.rb": 4.800345503000244,9212 "spec/lib/sidebars/projects/menus/monitor_menu_spec.rb": 2.0230374880002273,9213 "spec/lib/gitlab/ci/status/build/unschedule_spec.rb": 4.1963487489992986,9214 "spec/lib/gitlab/checks/changes_access_spec.rb": 2.2368431139993845,9215 "spec/graphql/resolvers/board_lists_resolver_spec.rb": 4.327302483999119,9216 "spec/lib/gitlab/git/attributes_parser_spec.rb": 1.1120716479999828,9217 "spec/lib/gitlab/email/reply_parser_spec.rb": 0.5526588790007736,9218 "spec/graphql/mutations/release_asset_links/update_spec.rb": 3.1539317340002526,9219 "spec/graphql/mutations/releases/delete_spec.rb": 5.475070958999822,9220 "spec/lib/gitlab/git/push_spec.rb": 1.3190058150003097,9221 "spec/services/groups/update_shared_runners_service_spec.rb": 4.240383463999933,9222 "spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb": 2.015272988999641,9223 "spec/models/user_interacted_project_spec.rb": 1.129843185000027,9224 "spec/finders/autocomplete/move_to_project_finder_spec.rb": 4.472899858999881,9225 "spec/lib/safe_zip/entry_spec.rb": 0.7971472220006035,9226 "spec/lib/gitlab/diff/suggestions_parser_spec.rb": 3.803409942000144,9227 "spec/models/error_tracking/error_spec.rb": 3.2473245730006965,9228 "spec/lib/gitlab/chat/responder/mattermost_spec.rb": 4.614748183999836,9229 "spec/services/projects/update_statistics_service_spec.rb": 1.4229371340006765,9230 "spec/serializers/merge_request_serializer_spec.rb": 3.0407930860001215,9231 "spec/models/packages/dependency_link_spec.rb": 2.5535620399996333,9232 "spec/lib/google_api/cloud_platform/client_spec.rb": 0.5445455090002724,9233 "spec/workers/expire_build_instance_artifacts_worker_spec.rb": 3.372470990000693,9234 "spec/models/concerns/schedulable_spec.rb": 3.4970722460002435,9235 "spec/services/notification_recipients/builder/default_spec.rb": 2.522856323000269,9236 "spec/services/projects/deploy_tokens/create_service_spec.rb": 2.704108313000688,9237 "spec/models/packages/debian/file_entry_spec.rb": 1.3551944310002,9238 "spec/lib/gitlab/ci/build/policy/variables_spec.rb": 1.7338528999998744,9239 "spec/lib/security/ci_configuration/sast_build_action_spec.rb": 0.5550786389994755,9240 "spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb": 2.062199302999943,9241 "spec/services/users/set_status_service_spec.rb": 1.9103659600004903,9242 "spec/services/commits/cherry_pick_service_spec.rb": 5.329720364999957,9243 "spec/models/group_group_link_spec.rb": 2.045894965000116,9244 "spec/lib/gitlab/database_importers/self_monitoring/project/delete_service_spec.rb": 1.755631877000269,9245 "spec/models/analytics/usage_trends/measurement_spec.rb": 1.0025139400004264,9246 "spec/serializers/service_field_entity_spec.rb": 1.6624939969997286,9247 "spec/lib/gitlab/github_import/importer/note_importer_spec.rb": 2.563231817999622,9248 "spec/lib/gitlab/doctor/secrets_spec.rb": 2.6198925430007876,9249 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 1.7206727110005886,9250 "spec/lib/bulk_imports/ndjson_pipeline_spec.rb": 0.8873898829997415,9251 "spec/finders/packages/go/package_finder_spec.rb": 1.3658000199993694,9252 "spec/graphql/resolvers/users_resolver_spec.rb": 0.735657519000597,9253 "spec/lib/banzai/filter/commit_trailers_filter_spec.rb": 1.6476768089996767,9254 "spec/services/jira_import/cloud_users_mapper_service_spec.rb": 2.937943986999926,9255 "spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 0.5290491619998647,9256 "spec/lib/gitlab/ci/variables/helpers_spec.rb": 0.5775258560006478,9257 "spec/services/labels/update_service_spec.rb": 1.8112201309995726,9258 "spec/models/user_preference_spec.rb": 1.7825080640004671,9259 "spec/lib/bitbucket_server/representation/comment_spec.rb": 0.6184858019996682,9260 "spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb": 3.878747103999558,9261 "spec/models/ci/build_trace_spec.rb": 0.9436903269997856,9262 "spec/db/production/settings_spec.rb": 2.944718336999358,9263 "spec/lib/gitlab/metrics/dashboard/cache_spec.rb": 0.5251758820004397,9264 "spec/graphql/resolvers/projects/services_resolver_spec.rb": 0.9830020319996038,9265 "spec/services/design_management/generate_image_versions_service_spec.rb": 2.1886117189997094,9266 "spec/lib/gitlab/ci/build/artifacts/path_spec.rb": 0.37611732899949857,9267 "spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb": 0.37238362900006905,9268 "spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb": 0.6370700799998303,9269 "spec/lib/bulk_imports/users_mapper_spec.rb": 0.43800541200016596,9270 "spec/lib/gitlab/url_blockers/url_allowlist_spec.rb": 0.6775249349993828,9271 "spec/models/wiki_directory_spec.rb": 0.40342299599979015,9272 "spec/rubocop/cop/api/base_spec.rb": 0.3578581210003904,9273 "spec/services/notes/destroy_service_spec.rb": 1.7529180179999457,9274 "spec/serializers/container_repositories_serializer_spec.rb": 2.1468616439997277,9275 "spec/lib/gitlab/checks/snippet_check_spec.rb": 2.888953123000647,9276 "spec/workers/deployments/hooks_worker_spec.rb": 1.948308766000082,9277 "spec/lib/gitlab/instrumentation/redis_spec.rb": 0.2516007529993658,9278 "spec/models/bulk_imports/file_transfer/group_config_spec.rb": 0.32581352400029573,9279 "spec/lib/gitlab/graphql/calls_gitaly/field_extension_spec.rb": 0.39697223599978315,9280 "spec/services/ci/process_pipeline_service_spec.rb": 2.20488259800004,9281 "spec/finders/award_emojis_finder_spec.rb": 1.3044361170004777,9282 "spec/lib/gitlab/ci/status/build/common_spec.rb": 2.2094372969995675,9283 "spec/services/users/block_service_spec.rb": 1.1739862710001034,9284 "spec/finders/autocomplete/project_finder_spec.rb": 1.7503821069994956,9285 "spec/services/error_tracking/collect_error_service_spec.rb": 0.6628724980000698,9286 "spec/validators/branch_filter_validator_spec.rb": 0.3692316189999474,9287 "spec/lib/gitlab/ci/config/entry/hidden_spec.rb": 0.4297123529995588,9288 "spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb": 2.589154414999939,9289 "spec/models/project_repository_spec.rb": 1.011242958999901,9290 "spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb": 0.9454029859998627,9291 "spec/graphql/resolvers/blobs_resolver_spec.rb": 1.1576080430004367,9292 "spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb": 1.3433543629998894,9293 "spec/services/ci/compare_reports_base_service_spec.rb": 1.4828230580005766,9294 "spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb": 0.5300358919994324,9295 "spec/graphql/types/terraform/state_type_spec.rb": 0.4838316470004429,9296 "spec/lib/gitlab/ci/config/entry/release/assets/link_spec.rb": 0.41041219500039006,9297 "spec/lib/gitlab/jira_import/metadata_collector_spec.rb": 0.35144735100038815,9298 "spec/rubocop/cop/migration/datetime_spec.rb": 0.3697622890003913,9299 "spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb": 1.1717644319996907,9300 "spec/graphql/mutations/alert_management/http_integration/update_spec.rb": 0.7743040149998706,9301 "spec/services/packages/composer/composer_json_service_spec.rb": 1.0997395799995502,9302 "spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb": 1.3963183059995572,9303 "spec/views/help/show.html.haml_spec.rb": 0.22895374499967147,9304 "spec/lib/gitlab/git/conflict/file_spec.rb": 0.479336816999421,9305 "spec/lib/banzai/reference_parser/mentioned_project_parser_spec.rb": 1.7274355199997444,9306 "spec/lib/gitlab/jwt_token_spec.rb": 0.3568903109999155,9307 "spec/models/dependency_proxy/image_ttl_group_policy_spec.rb": 0.35269137199975376,9308 "spec/policies/integration_policy_spec.rb": 0.9186551789998703,9309 "spec/helpers/projects/error_tracking_helper_spec.rb": 0.9672289740001361,9310 "spec/initializers/action_mailer_hooks_spec.rb": 0.379816777999622,9311 "spec/workers/packages/helm/extraction_worker_spec.rb": 0.9651640340007361,9312 "spec/lib/learn_gitlab/onboarding_spec.rb": 0.482939147000252,9313 "spec/finders/repositories/changelog_commits_finder_spec.rb": 0.7798804340000061,9314 "spec/validators/public_url_validator_spec.rb": 0.9515599460000885,9315 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 0.9591160439995292,9316 "spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb": 0.87198537400036,9317 "spec/lib/gitlab/git/remote_mirror_spec.rb": 0.6045053829993776,9318 "spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb": 1.0142535180002596,9319 "spec/lib/gitlab/ci/status/pipeline/common_spec.rb": 1.877768802999526,9320 "spec/lib/gitlab/ci/status/build/preparing_spec.rb": 1.859637926000687,9321 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.19653971800016734,9322 "spec/services/milestones/update_service_spec.rb": 1.7109627019999607,9323 "spec/lib/gitlab/ci/config/entry/stage_spec.rb": 0.2945312980000381,9324 "spec/workers/self_monitoring_project_delete_worker_spec.rb": 0.2568903519995729,9325 "spec/lib/banzai/filter/image_link_filter_spec.rb": 0.21774584600007074,9326 "spec/services/clusters/aws/fetch_credentials_service_spec.rb": 0.8647088649995567,9327 "spec/lib/gitlab/import_formatter_spec.rb": 0.22477887599961832,9328 "spec/views/admin/application_settings/_package_registry.html.haml_spec.rb": 0.4628699200002302,9329 "spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb": 0.15915363200019783,9330 "spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb": 0.9412759970000479,9331 "spec/workers/gitlab/github_import/import_pull_request_review_worker_spec.rb": 0.20124144700002944,9332 "spec/lib/gitlab/pagination/keyset/request_context_spec.rb": 0.3557010900003661,9333 "spec/experiments/empty_repo_upload_experiment_spec.rb": 1.3643868799999836,9334 "spec/finders/ci/job_artifacts_finder_spec.rb": 1.854434787000173,9335 "spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb": 0.11077805700006138,9336 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns_spec.rb": 0.2508262029996331,9337 "spec/workers/bulk_imports/relation_export_worker_spec.rb": 1.0214384370001426,9338 "spec/helpers/tracking_helper_spec.rb": 0.3677145499996186,9339 "spec/models/badges/group_badge_spec.rb": 0.4664844290000474,9340 "spec/graphql/types/notes/noteable_interface_spec.rb": 0.2596455109996896,9341 "spec/helpers/pagination_helper_spec.rb": 0.23571881400039274,9342 "spec/graphql/resolvers/users/group_count_resolver_spec.rb": 0.8866488430003301,9343 "spec/services/protected_branches/update_service_spec.rb": 0.9658934139997655,9344 "spec/graphql/resolvers/repository_branch_names_resolver_spec.rb": 1.1636043210000935,9345 "spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb": 0.47541242799979955,9346 "spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb": 0.13705740499972308,9347 "spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb": 0.6962515139994139,9348 "spec/services/jira_connect/sync_service_spec.rb": 0.5561233190001076,9349 "spec/lib/gitlab/email/attachment_uploader_spec.rb": 1.5734055979992263,9350 "spec/helpers/subscribable_banner_helper_spec.rb": 0.1638782820000415,9351 "spec/lib/bulk_imports/pipeline_spec.rb": 0.3014212369998859,9352 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 0.42830197300008876,9353 "spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb": 0.406303616000514,9354 "spec/finders/applications_finder_spec.rb": 0.5073853039993992,9355 "spec/lib/gitlab/request_context_spec.rb": 0.3809096779996253,9356 "spec/serializers/member_user_entity_spec.rb": 0.34581363199959014,9357 "spec/lib/gitlab/ci/config/entry/tags_spec.rb": 0.2816735400001562,9358 "spec/lib/gitlab/view/presenter/delegated_spec.rb": 0.20586195699979726,9359 "spec/lib/gitlab/sherlock/location_spec.rb": 0.38780406699970627,9360 "spec/serializers/merge_request_sidebar_extras_entity_spec.rb": 0.5243063329999131,9361 "spec/lib/api/entities/nuget/metadatum_spec.rb": 0.24696687200048473,9362 "spec/workers/ci/build_prepare_worker_spec.rb": 0.388394447999417,9363 "spec/graphql/graphql_triggers_spec.rb": 0.6866036940000413,9364 "spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb": 0.5056072750003295,9365 "spec/lib/gitlab/ci/artifacts/metrics_spec.rb": 0.5666568079996068,9366 "spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb": 0.4125851540002259,9367 "spec/lib/gitlab/wiki_file_finder_spec.rb": 0.48053692699977546,9368 "spec/services/projects/prometheus/alerts/destroy_service_spec.rb": 0.5801808269998219,9369 "spec/models/term_agreement_spec.rb": 0.4249525739996898,9370 "spec/lib/gitlab/database/schema_migrations/migrations_spec.rb": 0.21066748600060237,9371 "spec/lib/gitlab/database/migration_helpers/loose_foreign_key_helpers_spec.rb": 0.492163765999976,9372 "spec/workers/projects/update_repository_storage_worker_spec.rb": 0.6891183550005735,9373 "spec/lib/gitlab/import/set_async_jid_spec.rb": 0.8416144279999571,9374 "spec/lib/gitlab/email/message/in_product_marketing/team_short_spec.rb": 0.22688115500022832,9375 "spec/serializers/diff_viewer_entity_spec.rb": 0.4655430089997026,9376 "spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb": 0.6712847160006277,9377 "spec/services/product_analytics/build_graph_service_spec.rb": 0.5961480239993762,9378 "spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb": 0.19564173900016613,9379 "spec/workers/update_project_statistics_worker_spec.rb": 0.47769893699933164,9380 "spec/graphql/types/ci/runner_type_spec.rb": 0.20653109700015193,9381 "spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb": 0.17774345999987418,9382 "spec/lib/gitlab/import_export/attribute_configuration_spec.rb": 0.5929024049992222,9383 "spec/lib/gitlab/database/load_balancing/active_record_proxy_spec.rb": 0.19590773900017666,9384 "spec/views/groups/settings/_remove.html.haml_spec.rb": 0.35568513100042765,9385 "spec/graphql/types/project_member_relation_enum_spec.rb": 0.21651573599956464,9386 "spec/graphql/types/ci/recent_failures_type_spec.rb": 0.2567584219996206,9387 "spec/models/blob_viewer/podspec_json_spec.rb": 0.11407628800043312,9388 "spec/graphql/types/issuable_severity_enum_spec.rb": 0.3314108529993973,9389 "spec/helpers/recaptcha_helper_spec.rb": 0.1883010090004973,9390 "spec/graphql/types/user_callout_type_spec.rb": 0.15442087300016283,9391 "spec/lib/gitlab/asciidoc/html5_converter_spec.rb": 0.13503661600043415,9392 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/none_spec.rb": 0.2799490600000354,9393 "spec/serializers/evidences/issue_entity_spec.rb": 0.21746418600014294,9394 "spec/graphql/types/permission_types/user_spec.rb": 0.13291118500001176,9395 "spec/lib/gitlab/diff/inline_diff_markdown_marker_spec.rb": 0.18815523900047992,9396 "spec/workers/update_container_registry_info_worker_spec.rb": 0.11218501799976366,9397 "spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb": 0.21410430600008112,9398 "spec/lib/gitlab/action_cable/request_store_callbacks_spec.rb": 0.12923466600022948,9399 "spec/lib/gitlab/middleware/release_env_spec.rb": 0.15041747399936867,9400 "spec/graphql/types/release_assets_input_type_spec.rb": 0.1746776599993609,9401 "spec/graphql/types/ci_configuration/sast/options_entity_spec.rb": 0.1268569359999674,9402 "spec/services/deploy_keys/create_service_spec.rb": 0.3484002519999194,9403 "spec/graphql/types/user_status_type_spec.rb": 0.2305466140005592,9404 "spec/lib/gitlab/error_tracking/log_formatter_spec.rb": 0.11780982700020104,9405 "spec/sidekiq/cron/job_gem_dependency_spec.rb": 0.13143773600040739406}9407Knapsack global time execution for tests: 21m 16s9408Pending: (Failures listed here are expected and do not affect your suite's status)9409 1) ExternalDiffUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 9410 # No pattern provided, skipping.9411 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89412 2) ExternalDiffUploader behaves like builds correct paths #relative_path is relative9413 # Path not set, skipping.9414 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409415 3) ExternalDiffUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 9416 # No pattern provided, skipping.9417 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89418 4) ExternalDiffUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 9419 # No pattern provided, skipping.9420 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89421 5) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9422 # No pattern provided, skipping.9423 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89424 6) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9425 # No pattern provided, skipping.9426 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89427 7) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 9428 # No pattern provided, skipping.9429 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89430 8) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #relative_path is relative9431 # Path not set, skipping.9432 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409433 9) ExternalDiffUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9434 # No pattern provided, skipping.9435 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89436 10) ExternalDiffUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9437 # No pattern provided, skipping.9438 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89439Finished in 21 minutes 19 seconds (files took 52.44 seconds to load)94404665 examples, 0 failures, 10 pending9441Wed 22 Sep 2021 10:41:26 AM UTC9443Not uploading cache ruby-gems-v1-4 due to policy9444Not uploading cache gitaly-ruby-gems-v1-4 due to policy9446Uploading artifacts...9447coverage/: found 5 matching files and directories 9448WARNING: crystalball/: no matching files 9449WARNING: deprecations/: no matching files 9450knapsack/: found 3 matching files and directories 9451rspec_flaky/: found 4 matching files and directories 9452rspec_profiling/: found 1 matching files and directories 9453WARNING: tmp/capybara/: no matching files 9454tmp/memory_test/: found 2 matching files and directories 9455log/*.log: found 20 matching files and directories 9456Uploading artifacts as "archive" to coordinator... ok id=1612163255 responseStatus=201 Created token=TdzD86MB9457Uploading artifacts...9458junit_rspec.xml: found 1 matching files and directories 9459Uploading artifacts as "junit" to coordinator... ok id=1612163255 responseStatus=201 Created token=TdzD86MB9461Job succeeded