There was an error fetching the job.
rspec unit pg13-as-if-foss single-db 10/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_NwWjx2Downloading artifacts for retrieve-tests-metadata (4031138217)...3Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_NwWjx4Downloading artifacts for setup-test-env (4031138204)...5Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_NwWjx7Using docker image sha256:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...8$ echo $FOSS_ONLY9110$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb11$ export GOPATH=$CI_PROJECT_DIR/.go12$ mkdir -p $GOPATH13$ source scripts/utils.sh14$ source scripts/prepare_build.sh665Using decomposed database config (config/database.yml.postgresql)666Geo DB won't be set up.667$ setup_db_user_only668CREATE ROLE669GRANT670==> 'setup_db_user_only' succeeded in 0 seconds.671$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes672Dropped database 'gitlabhq_test'673Created database 'gitlabhq_test'674==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 32 seconds.675$ setup_db_praefect676SELECT pg_catalog.set_config('search_path', '', false);677CREATE DATABASE praefect_test ENCODING 'UTF8';678$ source ./scripts/rspec_helpers.sh679==> 'setup_db_praefect' succeeded in 0 seconds.680$ run_timed_command "gem install knapsack --no-document"681$ gem install knapsack --no-document682Successfully installed knapsack-4.0.06831 gem installed684==> 'gem install knapsack --no-document' succeeded in 0 seconds.685$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"789$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"790SKIP_FLAKY_TESTS_AUTOMATICALLY: false791RETRY_FAILED_TESTS_IN_NEW_PROCESS: true792KNAPSACK_GENERATE_REPORT: 793FLAKY_RSPEC_GENERATE_REPORT: 794KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb795KNAPSACK_LOG_LEVEL: debug796KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13-as-if-foss_single-db_10_28_report.json797FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json798FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13-as-if-foss_single-db_10_28_report.json799NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db_10_28_report.json800SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13-as-if-foss_single-db_10_28_report.txt801CRYSTALBALL: 802Knapsack node specs:803spec/lib/gitlab/relative_positioning/mover_spec.rb804spec/services/auth/container_registry_authentication_service_spec.rb805spec/services/git/branch_hooks_service_spec.rb806spec/services/notes/update_service_spec.rb807spec/uploaders/design_management/design_v432x230_uploader_spec.rb808spec/services/packages/npm/create_package_service_spec.rb809spec/finders/ci/runners_finder_spec.rb810spec/services/members/invitation_reminder_email_service_spec.rb811spec/lib/gitlab/ci/templates/templates_spec.rb812spec/models/sent_notification_spec.rb813spec/models/remote_mirror_spec.rb814spec/graphql/mutations/merge_requests/set_labels_spec.rb815spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb816spec/models/hooks/web_hook_spec.rb817spec/lib/gitlab/ci/trace_spec.rb818spec/lib/gitlab/import_export/project/object_builder_spec.rb819spec/services/members/groups/creator_service_spec.rb820spec/graphql/mutations/merge_requests/accept_spec.rb821spec/services/projects/cleanup_service_spec.rb822spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb823spec/models/integrations/chat_message/pipeline_message_spec.rb824spec/support_specs/helpers/stub_feature_flags_spec.rb825spec/lib/container_registry/gitlab_api_client_spec.rb826spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb827spec/models/customer_relations/contact_spec.rb828spec/lib/banzai/filter/video_link_filter_spec.rb829spec/workers/concerns/application_worker_spec.rb830spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb831spec/models/concerns/group_descendant_spec.rb832spec/services/alert_management/alerts/update_service_spec.rb833spec/lib/gitlab/middleware/read_only_spec.rb834spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb835spec/services/branches/delete_merged_service_spec.rb836spec/lib/gitlab/ci/config/external/mapper_spec.rb837spec/services/projects/git_deduplication_service_spec.rb838spec/lib/gitlab/utils/sanitize_node_link_spec.rb839spec/serializers/stage_entity_spec.rb840spec/services/ci/delete_unit_tests_service_spec.rb841spec/lib/gitlab_spec.rb842spec/lib/gitlab/observability_spec.rb843spec/presenters/group_clusterable_presenter_spec.rb844spec/models/bulk_imports/entity_spec.rb845spec/graphql/mutations/issues/set_confidential_spec.rb846spec/helpers/tree_helper_spec.rb847spec/policies/ci/trigger_policy_spec.rb848spec/finders/projects/members/effective_access_level_finder_spec.rb849spec/lib/gitlab/ci/build/auto_retry_spec.rb850spec/lib/gitlab/data_builder/deployment_spec.rb851spec/services/lfs/unlock_file_service_spec.rb852spec/services/metrics/dashboard/clone_dashboard_service_spec.rb853spec/models/merge_request/metrics_spec.rb854spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb855spec/workers/concerns/reenqueuer_spec.rb856spec/serializers/issue_sidebar_basic_entity_spec.rb857spec/workers/project_export_worker_spec.rb858spec/services/projects/container_repository/destroy_service_spec.rb859spec/helpers/users/callouts_helper_spec.rb860spec/lib/gitlab/protocol_access_spec.rb861spec/models/integrations/harbor_spec.rb862spec/helpers/ci/pipeline_editor_helper_spec.rb863spec/workers/chat_notification_worker_spec.rb864spec/graphql/mutations/ci/runner/update_spec.rb865spec/lib/gitlab/import_export/remote_stream_upload_spec.rb866spec/lib/error_tracking/sentry_client/issue_link_spec.rb867spec/services/milestones/closed_issues_count_service_spec.rb868spec/graphql/mutations/release_asset_links/update_spec.rb869spec/lib/gitlab/subscription_portal_spec.rb870spec/serializers/stage_serializer_spec.rb871spec/lib/sidebars/projects/menus/zentao_menu_spec.rb872spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb873spec/models/users/merge_request_interaction_spec.rb874spec/views/admin/dashboard/index.html.haml_spec.rb875spec/models/clusters/agent_token_spec.rb876spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb877spec/lib/bitbucket/representation/pull_request_spec.rb878spec/graphql/resolvers/ci/runners_resolver_spec.rb879spec/lib/gitlab/ci/config/external/file/base_spec.rb880spec/lib/gitlab/config/entry/validators_spec.rb881spec/lib/gitlab/ci/build/duration_parser_spec.rb882spec/services/packages/debian/generate_distribution_key_service_spec.rb883spec/lib/gitlab/sanitizers/exception_message_spec.rb884spec/finders/packages/package_file_finder_spec.rb885spec/finders/clusters_finder_spec.rb886spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb887spec/views/projects/merge_requests/_commits.html.haml_spec.rb888spec/services/packages/composer/version_parser_service_spec.rb889spec/lib/safe_zip/extract_spec.rb890spec/services/projects/move_users_star_projects_service_spec.rb891spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb892spec/lib/gitlab/database/migrations/sidekiq_helpers_spec.rb893spec/workers/gitlab_service_ping_worker_spec.rb894spec/workers/web_hooks/log_destroy_worker_spec.rb895spec/lib/gitlab/database/transaction/context_spec.rb896spec/lib/api/helpers/pagination_strategies_spec.rb897spec/services/google_cloud/fetch_google_ip_list_service_spec.rb898spec/graphql/resolvers/releases_resolver_spec.rb899spec/graphql/resolvers/projects/services_resolver_spec.rb900spec/services/prometheus/proxy_variable_substitution_service_spec.rb901spec/graphql/mutations/labels/create_spec.rb902spec/tooling/danger/sidekiq_args_spec.rb903spec/graphql/resolvers/ci/jobs_resolver_spec.rb904spec/lib/gitlab/rack_attack/user_allowlist_spec.rb905spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb906spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb907spec/models/ci/build_pending_state_spec.rb908spec/services/labels/update_service_spec.rb909spec/workers/projects/record_target_platforms_worker_spec.rb910spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb911spec/lib/gitlab/gitlab_import/client_spec.rb912spec/lib/gitlab/ci/config/yaml_spec.rb913spec/graphql/types/untrusted_regexp_spec.rb914spec/lib/gitlab/auth/ip_rate_limiter_spec.rb915spec/models/user_interacted_project_spec.rb916spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb917spec/lib/gitlab/gon_helper_spec.rb918spec/lib/gitlab/memory/watchdog/configurator_spec.rb919spec/lib/gitlab/ci/pipeline/chain/create_spec.rb920spec/lib/gitlab/zoom_link_extractor_spec.rb921spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb922spec/services/ci/ensure_stage_service_spec.rb923spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb924spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb925spec/graphql/types/base_argument_spec.rb926spec/services/system_notes/incidents_service_spec.rb927spec/graphql/types/ci/job_type_spec.rb928spec/graphql/resolvers/group_members_resolver_spec.rb929spec/services/incident_management/link_alerts/destroy_service_spec.rb930spec/services/groups/auto_devops_service_spec.rb931spec/lib/sidebars/your_work/menus/todos_menu_spec.rb932spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb933spec/tasks/admin_mode_spec.rb934spec/support_specs/ability_check_spec.rb935spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb936spec/models/guest_spec.rb937spec/initializers/00_rails_disable_joins_spec.rb938spec/lib/gitlab/import_export/design_repo_saver_spec.rb939spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb940spec/serializers/admin/abuse_report_entity_spec.rb941spec/serializers/lfs_file_lock_entity_spec.rb942spec/lib/gitlab/phabricator_import/cache/map_spec.rb943spec/views/notify/changed_milestone_email.html.haml_spec.rb944spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb945spec/lib/gitlab/git/remote_mirror_spec.rb946spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb947spec/views/shared/milestones/_issuable.html.haml_spec.rb948spec/models/ref_matcher_spec.rb949spec/lib/banzai/issuable_extractor_spec.rb950spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb951spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb952spec/lib/gitlab/bullet/exclusions_spec.rb953spec/components/pajamas/card_component_spec.rb954spec/models/cycle_analytics/project_level_stage_adapter_spec.rb955spec/helpers/branches_helper_spec.rb956spec/services/alert_management/http_integrations/update_service_spec.rb957spec/graphql/mutations/clusters/agent_tokens/create_spec.rb958spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb959spec/lib/gitlab/ci/reports/test_report_summary_spec.rb960spec/graphql/resolvers/ci/project_runners_resolver_spec.rb961spec/lib/gitlab/word_diff/chunk_collection_spec.rb962spec/lib/gitlab/audit/null_author_spec.rb963spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb964spec/services/work_items/widgets/labels_service/update_service_spec.rb965spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb966spec/lib/gitlab/diff/stats_cache_spec.rb967spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb968spec/presenters/service_hook_presenter_spec.rb969spec/views/registrations/welcome/show.html.haml_spec.rb970spec/lib/gitlab/middleware/basic_health_check_spec.rb971spec/lib/gitlab/request_endpoints_spec.rb972spec/lib/gitlab/auth/atlassian/user_spec.rb973spec/models/namespaces/randomized_suffix_path_spec.rb974spec/lib/gitlab/cross_project_access_spec.rb975spec/lib/api/entities/branch_spec.rb976spec/lib/gitlab/health_checks/master_check_spec.rb977spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb978spec/models/concerns/integrations/has_web_hook_spec.rb979spec/serializers/feature_flag_summary_entity_spec.rb980spec/serializers/ci/daily_build_group_report_result_entity_spec.rb981spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb982spec/workers/user_status_cleanup/batch_worker_spec.rb983spec/lib/gitlab/metrics/subscribers/ldap_spec.rb984spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb985spec/lib/gitlab/kubernetes/rollout_instances_spec.rb986spec/services/users/email_verification/generate_token_service_spec.rb987spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb988spec/graphql/types/jira_import_type_spec.rb989spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb990spec/graphql/types/notes/system_note_metadata_type_spec.rb991spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb992spec/lib/gitlab/lets_encrypt/challenge_spec.rb993spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb994spec/graphql/types/time_type_spec.rb995spec/serializers/evidences/evidence_serializer_spec.rb996spec/lib/peek/views/rugged_spec.rb997spec/lib/gitlab/cycle_analytics/summary/value_spec.rb998spec/policies/instance_metadata_policy_spec.rb999spec/services/import/github/gists_import_service_spec.rb1000spec/graphql/types/release_asset_link_type_spec.rb1001spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb1002spec/graphql/types/issuable_sort_enum_spec.rb1003spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb1004spec/graphql/types/ci/test_suite_type_spec.rb1005spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb1006spec/graphql/types/ci/recent_failures_type_spec.rb1007spec/models/integrations/base_slack_notification_spec.rb1008spec/models/clusters/project_spec.rb1009spec/presenters/member_presenter_spec.rb1010spec/serializers/request_aware_entity_spec.rb1011spec/lib/gitlab/phabricator_import/conduit/user_spec.rb1012spec/graphql/types/ci/config/include_type_spec.rb1013spec/workers/members_destroyer/unassign_issuables_worker_spec.rb1014spec/lib/gitlab/database/schema_migrations/migrations_spec.rb1015spec/graphql/types/projects/topic_type_spec.rb1016spec/lib/gitlab/faraday/error_callback_spec.rb1017spec/lib/gitlab/ci/secure_files/x509_name_spec.rb1018spec/graphql/types/release_source_type_spec.rb1019spec/serializers/detailed_status_entity_spec.rb1020spec/graphql/types/query_complexity_type_spec.rb1021spec/graphql/types/ci/config/include_type_enum_spec.rb1022spec/lib/gitlab/usage/metrics/instrumentations/merge_request_widget_extension_metric_spec.rb1023spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb1024spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb1025spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb1026spec/lib/gitlab/git/conflict/resolver_spec.rb1027spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb1028spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb1029spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb1030spec/helpers/enable_search_settings_helper_spec.rb1031spec/routing/projects/security/configuration_controller_routing_spec.rb1032spec/services/issues/issuable_base_service_spec.rb1033spec/graphql/types/ci/variable_interface_spec.rb1034Filter specs:1035Running specs:1036Running all node tests without filter1037spec/lib/gitlab/relative_positioning/mover_spec.rb1038spec/services/auth/container_registry_authentication_service_spec.rb1039spec/services/git/branch_hooks_service_spec.rb1040spec/services/notes/update_service_spec.rb1041spec/uploaders/design_management/design_v432x230_uploader_spec.rb1042spec/services/packages/npm/create_package_service_spec.rb1043spec/finders/ci/runners_finder_spec.rb1044spec/services/members/invitation_reminder_email_service_spec.rb1045spec/lib/gitlab/ci/templates/templates_spec.rb1046spec/models/sent_notification_spec.rb1047spec/models/remote_mirror_spec.rb1048spec/graphql/mutations/merge_requests/set_labels_spec.rb1049spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb1050spec/models/hooks/web_hook_spec.rb1051spec/lib/gitlab/ci/trace_spec.rb1052spec/lib/gitlab/import_export/project/object_builder_spec.rb1053spec/services/members/groups/creator_service_spec.rb1054spec/graphql/mutations/merge_requests/accept_spec.rb1055spec/services/projects/cleanup_service_spec.rb1056spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb1057spec/models/integrations/chat_message/pipeline_message_spec.rb1058spec/support_specs/helpers/stub_feature_flags_spec.rb1059spec/lib/container_registry/gitlab_api_client_spec.rb1060spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb1061spec/models/customer_relations/contact_spec.rb1062spec/lib/banzai/filter/video_link_filter_spec.rb1063spec/workers/concerns/application_worker_spec.rb1064spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb1065spec/models/concerns/group_descendant_spec.rb1066spec/services/alert_management/alerts/update_service_spec.rb1067spec/lib/gitlab/middleware/read_only_spec.rb1068spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb1069spec/services/branches/delete_merged_service_spec.rb1070spec/lib/gitlab/ci/config/external/mapper_spec.rb1071spec/services/projects/git_deduplication_service_spec.rb1072spec/lib/gitlab/utils/sanitize_node_link_spec.rb1073spec/serializers/stage_entity_spec.rb1074spec/services/ci/delete_unit_tests_service_spec.rb1075spec/lib/gitlab_spec.rb1076spec/lib/gitlab/observability_spec.rb1077spec/presenters/group_clusterable_presenter_spec.rb1078spec/models/bulk_imports/entity_spec.rb1079spec/graphql/mutations/issues/set_confidential_spec.rb1080spec/helpers/tree_helper_spec.rb1081spec/policies/ci/trigger_policy_spec.rb1082spec/finders/projects/members/effective_access_level_finder_spec.rb1083spec/lib/gitlab/ci/build/auto_retry_spec.rb1084spec/lib/gitlab/data_builder/deployment_spec.rb1085spec/services/lfs/unlock_file_service_spec.rb1086spec/services/metrics/dashboard/clone_dashboard_service_spec.rb1087spec/models/merge_request/metrics_spec.rb1088spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb1089spec/workers/concerns/reenqueuer_spec.rb1090spec/serializers/issue_sidebar_basic_entity_spec.rb1091spec/workers/project_export_worker_spec.rb1092spec/services/projects/container_repository/destroy_service_spec.rb1093spec/helpers/users/callouts_helper_spec.rb1094spec/lib/gitlab/protocol_access_spec.rb1095spec/models/integrations/harbor_spec.rb1096spec/helpers/ci/pipeline_editor_helper_spec.rb1097spec/workers/chat_notification_worker_spec.rb1098spec/graphql/mutations/ci/runner/update_spec.rb1099spec/lib/gitlab/import_export/remote_stream_upload_spec.rb1100spec/lib/error_tracking/sentry_client/issue_link_spec.rb1101spec/services/milestones/closed_issues_count_service_spec.rb1102spec/graphql/mutations/release_asset_links/update_spec.rb1103spec/lib/gitlab/subscription_portal_spec.rb1104spec/serializers/stage_serializer_spec.rb1105spec/lib/sidebars/projects/menus/zentao_menu_spec.rb1106spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb1107spec/models/users/merge_request_interaction_spec.rb1108spec/views/admin/dashboard/index.html.haml_spec.rb1109spec/models/clusters/agent_token_spec.rb1110spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb1111spec/lib/bitbucket/representation/pull_request_spec.rb1112spec/graphql/resolvers/ci/runners_resolver_spec.rb1113spec/lib/gitlab/ci/config/external/file/base_spec.rb1114spec/lib/gitlab/config/entry/validators_spec.rb1115spec/lib/gitlab/ci/build/duration_parser_spec.rb1116spec/services/packages/debian/generate_distribution_key_service_spec.rb1117spec/lib/gitlab/sanitizers/exception_message_spec.rb1118spec/finders/packages/package_file_finder_spec.rb1119spec/finders/clusters_finder_spec.rb1120spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb1121spec/views/projects/merge_requests/_commits.html.haml_spec.rb1122spec/services/packages/composer/version_parser_service_spec.rb1123spec/lib/safe_zip/extract_spec.rb1124spec/services/projects/move_users_star_projects_service_spec.rb1125spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb1126spec/lib/gitlab/database/migrations/sidekiq_helpers_spec.rb1127spec/workers/gitlab_service_ping_worker_spec.rb1128spec/workers/web_hooks/log_destroy_worker_spec.rb1129spec/lib/gitlab/database/transaction/context_spec.rb1130spec/lib/api/helpers/pagination_strategies_spec.rb1131spec/services/google_cloud/fetch_google_ip_list_service_spec.rb1132spec/graphql/resolvers/releases_resolver_spec.rb1133spec/graphql/resolvers/projects/services_resolver_spec.rb1134spec/services/prometheus/proxy_variable_substitution_service_spec.rb1135spec/graphql/mutations/labels/create_spec.rb1136spec/tooling/danger/sidekiq_args_spec.rb1137spec/graphql/resolvers/ci/jobs_resolver_spec.rb1138spec/lib/gitlab/rack_attack/user_allowlist_spec.rb1139spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb1140spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb1141spec/models/ci/build_pending_state_spec.rb1142spec/services/labels/update_service_spec.rb1143spec/workers/projects/record_target_platforms_worker_spec.rb1144spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb1145spec/lib/gitlab/gitlab_import/client_spec.rb1146spec/lib/gitlab/ci/config/yaml_spec.rb1147spec/graphql/types/untrusted_regexp_spec.rb1148spec/lib/gitlab/auth/ip_rate_limiter_spec.rb1149spec/models/user_interacted_project_spec.rb1150spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb1151spec/lib/gitlab/gon_helper_spec.rb1152spec/lib/gitlab/memory/watchdog/configurator_spec.rb1153spec/lib/gitlab/ci/pipeline/chain/create_spec.rb1154spec/lib/gitlab/zoom_link_extractor_spec.rb1155spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb1156spec/services/ci/ensure_stage_service_spec.rb1157spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb1158spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb1159spec/graphql/types/base_argument_spec.rb1160spec/services/system_notes/incidents_service_spec.rb1161spec/graphql/types/ci/job_type_spec.rb1162spec/graphql/resolvers/group_members_resolver_spec.rb1163spec/services/incident_management/link_alerts/destroy_service_spec.rb1164spec/services/groups/auto_devops_service_spec.rb1165spec/lib/sidebars/your_work/menus/todos_menu_spec.rb1166spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb1167spec/tasks/admin_mode_spec.rb1168spec/support_specs/ability_check_spec.rb1169spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb1170spec/models/guest_spec.rb1171spec/initializers/00_rails_disable_joins_spec.rb1172spec/lib/gitlab/import_export/design_repo_saver_spec.rb1173spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb1174spec/serializers/admin/abuse_report_entity_spec.rb1175spec/serializers/lfs_file_lock_entity_spec.rb1176spec/lib/gitlab/phabricator_import/cache/map_spec.rb1177spec/views/notify/changed_milestone_email.html.haml_spec.rb1178spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb1179spec/lib/gitlab/git/remote_mirror_spec.rb1180spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb1181spec/views/shared/milestones/_issuable.html.haml_spec.rb1182spec/models/ref_matcher_spec.rb1183spec/lib/banzai/issuable_extractor_spec.rb1184spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb1185spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb1186spec/lib/gitlab/bullet/exclusions_spec.rb1187spec/components/pajamas/card_component_spec.rb1188spec/models/cycle_analytics/project_level_stage_adapter_spec.rb1189spec/helpers/branches_helper_spec.rb1190spec/services/alert_management/http_integrations/update_service_spec.rb1191spec/graphql/mutations/clusters/agent_tokens/create_spec.rb1192spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb1193spec/lib/gitlab/ci/reports/test_report_summary_spec.rb1194spec/graphql/resolvers/ci/project_runners_resolver_spec.rb1195spec/lib/gitlab/word_diff/chunk_collection_spec.rb1196spec/lib/gitlab/audit/null_author_spec.rb1197spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb1198spec/services/work_items/widgets/labels_service/update_service_spec.rb1199spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb1200spec/lib/gitlab/diff/stats_cache_spec.rb1201spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb1202spec/presenters/service_hook_presenter_spec.rb1203spec/views/registrations/welcome/show.html.haml_spec.rb1204spec/lib/gitlab/middleware/basic_health_check_spec.rb1205spec/lib/gitlab/request_endpoints_spec.rb1206spec/lib/gitlab/auth/atlassian/user_spec.rb1207spec/models/namespaces/randomized_suffix_path_spec.rb1208spec/lib/gitlab/cross_project_access_spec.rb1209spec/lib/api/entities/branch_spec.rb1210spec/lib/gitlab/health_checks/master_check_spec.rb1211spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb1212spec/models/concerns/integrations/has_web_hook_spec.rb1213spec/serializers/feature_flag_summary_entity_spec.rb1214spec/serializers/ci/daily_build_group_report_result_entity_spec.rb1215spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb1216spec/workers/user_status_cleanup/batch_worker_spec.rb1217spec/lib/gitlab/metrics/subscribers/ldap_spec.rb1218spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb1219spec/lib/gitlab/kubernetes/rollout_instances_spec.rb1220spec/services/users/email_verification/generate_token_service_spec.rb1221spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb1222spec/graphql/types/jira_import_type_spec.rb1223spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb1224spec/graphql/types/notes/system_note_metadata_type_spec.rb1225spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb1226spec/lib/gitlab/lets_encrypt/challenge_spec.rb1227spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb1228spec/graphql/types/time_type_spec.rb1229spec/serializers/evidences/evidence_serializer_spec.rb1230spec/lib/peek/views/rugged_spec.rb1231spec/lib/gitlab/cycle_analytics/summary/value_spec.rb1232spec/policies/instance_metadata_policy_spec.rb1233spec/services/import/github/gists_import_service_spec.rb1234spec/graphql/types/release_asset_link_type_spec.rb1235spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb1236spec/graphql/types/issuable_sort_enum_spec.rb1237spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb1238spec/graphql/types/ci/test_suite_type_spec.rb1239spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb1240spec/graphql/types/ci/recent_failures_type_spec.rb1241spec/models/integrations/base_slack_notification_spec.rb1242spec/models/clusters/project_spec.rb1243spec/presenters/member_presenter_spec.rb1244spec/serializers/request_aware_entity_spec.rb1245spec/lib/gitlab/phabricator_import/conduit/user_spec.rb1246spec/graphql/types/ci/config/include_type_spec.rb1247spec/workers/members_destroyer/unassign_issuables_worker_spec.rb1248spec/lib/gitlab/database/schema_migrations/migrations_spec.rb1249spec/graphql/types/projects/topic_type_spec.rb1250spec/lib/gitlab/faraday/error_callback_spec.rb1251spec/lib/gitlab/ci/secure_files/x509_name_spec.rb1252spec/graphql/types/release_source_type_spec.rb1253spec/serializers/detailed_status_entity_spec.rb1254spec/graphql/types/query_complexity_type_spec.rb1255spec/graphql/types/ci/config/include_type_enum_spec.rb1256spec/lib/gitlab/usage/metrics/instrumentations/merge_request_widget_extension_metric_spec.rb1257spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb1258spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb1259spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb1260spec/lib/gitlab/git/conflict/resolver_spec.rb1261spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb1262spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb1263spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb1264spec/helpers/enable_search_settings_helper_spec.rb1265spec/routing/projects/security/configuration_controller_routing_spec.rb1266spec/services/issues/issuable_base_service_spec.rb1267spec/graphql/types/ci/variable_interface_spec.rb1268Running all node tests without filter1269Running all node tests without filter1270Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration --default-path spec -- spec/lib/gitlab/relative_positioning/mover_spec.rb spec/services/auth/container_registry_authentication_service_spec.rb spec/services/git/branch_hooks_service_spec.rb spec/services/notes/update_service_spec.rb spec/uploaders/design_management/design_v432x230_uploader_spec.rb spec/services/packages/npm/create_package_service_spec.rb spec/finders/ci/runners_finder_spec.rb spec/services/members/invitation_reminder_email_service_spec.rb spec/lib/gitlab/ci/templates/templates_spec.rb spec/models/sent_notification_spec.rb spec/models/remote_mirror_spec.rb spec/graphql/mutations/merge_requests/set_labels_spec.rb spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb spec/models/hooks/web_hook_spec.rb spec/lib/gitlab/ci/trace_spec.rb spec/lib/gitlab/import_export/project/object_builder_spec.rb spec/services/members/groups/creator_service_spec.rb spec/graphql/mutations/merge_requests/accept_spec.rb spec/services/projects/cleanup_service_spec.rb spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb spec/models/integrations/chat_message/pipeline_message_spec.rb spec/support_specs/helpers/stub_feature_flags_spec.rb spec/lib/container_registry/gitlab_api_client_spec.rb spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb spec/models/customer_relations/contact_spec.rb spec/lib/banzai/filter/video_link_filter_spec.rb spec/workers/concerns/application_worker_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb spec/models/concerns/group_descendant_spec.rb spec/services/alert_management/alerts/update_service_spec.rb spec/lib/gitlab/middleware/read_only_spec.rb spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb spec/services/branches/delete_merged_service_spec.rb spec/lib/gitlab/ci/config/external/mapper_spec.rb spec/services/projects/git_deduplication_service_spec.rb spec/lib/gitlab/utils/sanitize_node_link_spec.rb spec/serializers/stage_entity_spec.rb spec/services/ci/delete_unit_tests_service_spec.rb spec/lib/gitlab_spec.rb spec/lib/gitlab/observability_spec.rb spec/presenters/group_clusterable_presenter_spec.rb spec/models/bulk_imports/entity_spec.rb spec/graphql/mutations/issues/set_confidential_spec.rb spec/helpers/tree_helper_spec.rb spec/policies/ci/trigger_policy_spec.rb spec/finders/projects/members/effective_access_level_finder_spec.rb spec/lib/gitlab/ci/build/auto_retry_spec.rb spec/lib/gitlab/data_builder/deployment_spec.rb spec/services/lfs/unlock_file_service_spec.rb spec/services/metrics/dashboard/clone_dashboard_service_spec.rb spec/models/merge_request/metrics_spec.rb spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb spec/workers/concerns/reenqueuer_spec.rb spec/serializers/issue_sidebar_basic_entity_spec.rb spec/workers/project_export_worker_spec.rb spec/services/projects/container_repository/destroy_service_spec.rb spec/helpers/users/callouts_helper_spec.rb spec/lib/gitlab/protocol_access_spec.rb spec/models/integrations/harbor_spec.rb spec/helpers/ci/pipeline_editor_helper_spec.rb spec/workers/chat_notification_worker_spec.rb spec/graphql/mutations/ci/runner/update_spec.rb spec/lib/gitlab/import_export/remote_stream_upload_spec.rb spec/lib/error_tracking/sentry_client/issue_link_spec.rb spec/services/milestones/closed_issues_count_service_spec.rb spec/graphql/mutations/release_asset_links/update_spec.rb spec/lib/gitlab/subscription_portal_spec.rb spec/serializers/stage_serializer_spec.rb spec/lib/sidebars/projects/menus/zentao_menu_spec.rb spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb spec/models/users/merge_request_interaction_spec.rb spec/views/admin/dashboard/index.html.haml_spec.rb spec/models/clusters/agent_token_spec.rb spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb spec/lib/bitbucket/representation/pull_request_spec.rb spec/graphql/resolvers/ci/runners_resolver_spec.rb spec/lib/gitlab/ci/config/external/file/base_spec.rb spec/lib/gitlab/config/entry/validators_spec.rb spec/lib/gitlab/ci/build/duration_parser_spec.rb spec/services/packages/debian/generate_distribution_key_service_spec.rb spec/lib/gitlab/sanitizers/exception_message_spec.rb spec/finders/packages/package_file_finder_spec.rb spec/finders/clusters_finder_spec.rb spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb spec/views/projects/merge_requests/_commits.html.haml_spec.rb spec/services/packages/composer/version_parser_service_spec.rb spec/lib/safe_zip/extract_spec.rb spec/services/projects/move_users_star_projects_service_spec.rb spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb spec/lib/gitlab/database/migrations/sidekiq_helpers_spec.rb spec/workers/gitlab_service_ping_worker_spec.rb spec/workers/web_hooks/log_destroy_worker_spec.rb spec/lib/gitlab/database/transaction/context_spec.rb spec/lib/api/helpers/pagination_strategies_spec.rb spec/services/google_cloud/fetch_google_ip_list_service_spec.rb spec/graphql/resolvers/releases_resolver_spec.rb spec/graphql/resolvers/projects/services_resolver_spec.rb spec/services/prometheus/proxy_variable_substitution_service_spec.rb spec/graphql/mutations/labels/create_spec.rb spec/tooling/danger/sidekiq_args_spec.rb spec/graphql/resolvers/ci/jobs_resolver_spec.rb spec/lib/gitlab/rack_attack/user_allowlist_spec.rb spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb spec/models/ci/build_pending_state_spec.rb spec/services/labels/update_service_spec.rb spec/workers/projects/record_target_platforms_worker_spec.rb spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb spec/lib/gitlab/gitlab_import/client_spec.rb spec/lib/gitlab/ci/config/yaml_spec.rb spec/graphql/types/untrusted_regexp_spec.rb spec/lib/gitlab/auth/ip_rate_limiter_spec.rb spec/models/user_interacted_project_spec.rb spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb spec/lib/gitlab/gon_helper_spec.rb spec/lib/gitlab/memory/watchdog/configurator_spec.rb spec/lib/gitlab/ci/pipeline/chain/create_spec.rb spec/lib/gitlab/zoom_link_extractor_spec.rb spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb spec/services/ci/ensure_stage_service_spec.rb spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb spec/graphql/types/base_argument_spec.rb spec/services/system_notes/incidents_service_spec.rb spec/graphql/types/ci/job_type_spec.rb spec/graphql/resolvers/group_members_resolver_spec.rb spec/services/incident_management/link_alerts/destroy_service_spec.rb spec/services/groups/auto_devops_service_spec.rb spec/lib/sidebars/your_work/menus/todos_menu_spec.rb spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb spec/tasks/admin_mode_spec.rb spec/support_specs/ability_check_spec.rb spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb spec/models/guest_spec.rb spec/initializers/00_rails_disable_joins_spec.rb spec/lib/gitlab/import_export/design_repo_saver_spec.rb spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb spec/serializers/admin/abuse_report_entity_spec.rb spec/serializers/lfs_file_lock_entity_spec.rb spec/lib/gitlab/phabricator_import/cache/map_spec.rb spec/views/notify/changed_milestone_email.html.haml_spec.rb spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb spec/lib/gitlab/git/remote_mirror_spec.rb spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb spec/views/shared/milestones/_issuable.html.haml_spec.rb spec/models/ref_matcher_spec.rb spec/lib/banzai/issuable_extractor_spec.rb spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb spec/lib/gitlab/bullet/exclusions_spec.rb spec/components/pajamas/card_component_spec.rb spec/models/cycle_analytics/project_level_stage_adapter_spec.rb spec/helpers/branches_helper_spec.rb spec/services/alert_management/http_integrations/update_service_spec.rb spec/graphql/mutations/clusters/agent_tokens/create_spec.rb spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb spec/lib/gitlab/ci/reports/test_report_summary_spec.rb spec/graphql/resolvers/ci/project_runners_resolver_spec.rb spec/lib/gitlab/word_diff/chunk_collection_spec.rb spec/lib/gitlab/audit/null_author_spec.rb spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb spec/services/work_items/widgets/labels_service/update_service_spec.rb spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb spec/lib/gitlab/diff/stats_cache_spec.rb spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb spec/presenters/service_hook_presenter_spec.rb spec/views/registrations/welcome/show.html.haml_spec.rb spec/lib/gitlab/middleware/basic_health_check_spec.rb spec/lib/gitlab/request_endpoints_spec.rb spec/lib/gitlab/auth/atlassian/user_spec.rb spec/models/namespaces/randomized_suffix_path_spec.rb spec/lib/gitlab/cross_project_access_spec.rb spec/lib/api/entities/branch_spec.rb spec/lib/gitlab/health_checks/master_check_spec.rb spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb spec/models/concerns/integrations/has_web_hook_spec.rb spec/serializers/feature_flag_summary_entity_spec.rb spec/serializers/ci/daily_build_group_report_result_entity_spec.rb spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb spec/workers/user_status_cleanup/batch_worker_spec.rb spec/lib/gitlab/metrics/subscribers/ldap_spec.rb spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb spec/lib/gitlab/kubernetes/rollout_instances_spec.rb spec/services/users/email_verification/generate_token_service_spec.rb spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb spec/graphql/types/jira_import_type_spec.rb spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb spec/graphql/types/notes/system_note_metadata_type_spec.rb spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb spec/lib/gitlab/lets_encrypt/challenge_spec.rb spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb spec/graphql/types/time_type_spec.rb spec/serializers/evidences/evidence_serializer_spec.rb spec/lib/peek/views/rugged_spec.rb spec/lib/gitlab/cycle_analytics/summary/value_spec.rb spec/policies/instance_metadata_policy_spec.rb spec/services/import/github/gists_import_service_spec.rb spec/graphql/types/release_asset_link_type_spec.rb spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb spec/graphql/types/issuable_sort_enum_spec.rb spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb spec/graphql/types/ci/test_suite_type_spec.rb spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb spec/graphql/types/ci/recent_failures_type_spec.rb spec/models/integrations/base_slack_notification_spec.rb spec/models/clusters/project_spec.rb spec/presenters/member_presenter_spec.rb spec/serializers/request_aware_entity_spec.rb spec/lib/gitlab/phabricator_import/conduit/user_spec.rb spec/graphql/types/ci/config/include_type_spec.rb spec/workers/members_destroyer/unassign_issuables_worker_spec.rb spec/lib/gitlab/database/schema_migrations/migrations_spec.rb spec/graphql/types/projects/topic_type_spec.rb spec/lib/gitlab/faraday/error_callback_spec.rb spec/lib/gitlab/ci/secure_files/x509_name_spec.rb spec/graphql/types/release_source_type_spec.rb spec/serializers/detailed_status_entity_spec.rb spec/graphql/types/query_complexity_type_spec.rb spec/graphql/types/ci/config/include_type_enum_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/merge_request_widget_extension_metric_spec.rb spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb spec/lib/gitlab/git/conflict/resolver_spec.rb spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb spec/helpers/enable_search_settings_helper_spec.rb spec/routing/projects/security/configuration_controller_routing_spec.rb spec/services/issues/issuable_base_service_spec.rb spec/graphql/types/ci/variable_interface_spec.rbRun options: exclude {:quarantine=>true, :level=>"background_migration"}1271Test environment set up in 0.547146497 seconds1272Gitlab::RelativePositioning::Mover1273 #move_to_end1274 all positions are taken1275 raises an error when placing a new item1276 index: 01277 behaves like able to move existing items to the end1278 can move any existing item1279 index: 11280 behaves like able to move existing items to the end1281 can move any existing item1282 index: 21283 behaves like able to move existing items to the end1284 can move any existing item1285 index: 31286 behaves like able to move existing items to the end1287 can move any existing item1288 index: 41289 behaves like able to move existing items to the end1290 can move any existing item1291 there are no siblings1292 behaves like able to place a new item at the end1293 can place any new item1294 there is only one sibling1295 pos: 1011296 behaves like able to place a new item at the end1297 can place any new item1298 behaves like able to move existing items to the end1299 can move any existing item1300 pos: 1021301 behaves like able to place a new item at the end1302 can place any new item1303 behaves like able to move existing items to the end1304 can move any existing item1305 pos: 1031306 behaves like able to place a new item at the end1307 can place any new item1308 behaves like able to move existing items to the end1309 can move any existing item1310 pos: 1041311 behaves like able to place a new item at the end1312 can place any new item1313 behaves like able to move existing items to the end1314 can move any existing item1315 pos: 1051316 behaves like able to place a new item at the end1317 can place any new item1318 behaves like able to move existing items to the end1319 can move any existing item1320 at least one position is free1321 free_space: 101, index: 01322 behaves like able to place a new item at the end1323 can place any new item1324 behaves like able to move existing items to the end1325 can move any existing item1326 free_space: 101, index: 11327 behaves like able to place a new item at the end1328 can place any new item1329 behaves like able to move existing items to the end1330 can move any existing item1331 free_space: 101, index: 21332 behaves like able to place a new item at the end1333 can place any new item1334 behaves like able to move existing items to the end1335 can move any existing item1336 free_space: 101, index: 31337 behaves like able to place a new item at the end1338 can place any new item1339 behaves like able to move existing items to the end1340 can move any existing item1341 free_space: 102, index: 01342 behaves like able to place a new item at the end1343 can place any new item1344 behaves like able to move existing items to the end1345 can move any existing item1346 free_space: 102, index: 11347 behaves like able to place a new item at the end1348 can place any new item1349 behaves like able to move existing items to the end1350 can move any existing item1351 free_space: 102, index: 21352 behaves like able to place a new item at the end1353 can place any new item1354 behaves like able to move existing items to the end1355 can move any existing item1356 free_space: 102, index: 31357 behaves like able to place a new item at the end1358 can place any new item1359 behaves like able to move existing items to the end1360 can move any existing item1361 free_space: 103, index: 01362 behaves like able to place a new item at the end1363 can place any new item1364 behaves like able to move existing items to the end1365 can move any existing item1366 free_space: 103, index: 11367 behaves like able to place a new item at the end1368 can place any new item1369 behaves like able to move existing items to the end1370 can move any existing item1371 free_space: 103, index: 21372 behaves like able to place a new item at the end1373 can place any new item1374 behaves like able to move existing items to the end1375 can move any existing item1376 free_space: 103, index: 31377 behaves like able to place a new item at the end1378 can place any new item1379 behaves like able to move existing items to the end1380 can move any existing item1381 free_space: 104, index: 01382 behaves like able to place a new item at the end1383 can place any new item1384 behaves like able to move existing items to the end1385 can move any existing item1386 free_space: 104, index: 11387 behaves like able to place a new item at the end1388 can place any new item1389 behaves like able to move existing items to the end1390 can move any existing item1391 free_space: 104, index: 21392 behaves like able to place a new item at the end1393 can place any new item1394 behaves like able to move existing items to the end1395 can move any existing item1396 free_space: 104, index: 31397 behaves like able to place a new item at the end1398 can place any new item1399 behaves like able to move existing items to the end1400 can move any existing item1401 free_space: 105, index: 01402 behaves like able to place a new item at the end1403 can place any new item1404 behaves like able to move existing items to the end1405 can move any existing item1406 free_space: 105, index: 11407 behaves like able to place a new item at the end1408 can place any new item1409 behaves like able to move existing items to the end1410 can move any existing item1411 free_space: 105, index: 21412 behaves like able to place a new item at the end1413 can place any new item1414 behaves like able to move existing items to the end1415 can move any existing item1416 free_space: 105, index: 31417 behaves like able to place a new item at the end1418 can place any new item1419 behaves like able to move existing items to the end1420 can move any existing item1421 #move_to_start1422 all positions are taken1423 raises an error when placing a new item1424 index: 01425 behaves like able to move existing items to the start1426 can move any existing item1427 index: 11428 behaves like able to move existing items to the start1429 can move any existing item1430 index: 21431 behaves like able to move existing items to the start1432 can move any existing item1433 index: 31434 behaves like able to move existing items to the start1435 can move any existing item1436 index: 41437 behaves like able to move existing items to the start1438 can move any existing item1439 there are no siblings1440 behaves like able to place a new item at the start1441 can place any new item1442 there is only one sibling1443 pos: 1011444 behaves like able to place a new item at the start1445 can place any new item1446 behaves like able to move existing items to the start1447 can move any existing item1448 pos: 1021449 behaves like able to place a new item at the start1450 can place any new item1451 behaves like able to move existing items to the start1452 can move any existing item1453 pos: 1031454 behaves like able to place a new item at the start1455 can place any new item1456 behaves like able to move existing items to the start1457 can move any existing item1458 pos: 1041459 behaves like able to place a new item at the start1460 can place any new item1461 behaves like able to move existing items to the start1462 can move any existing item1463 pos: 1051464 behaves like able to place a new item at the start1465 can place any new item1466 behaves like able to move existing items to the start1467 can move any existing item1468 at least one position is free1469 free_space: 101, index: 01470 behaves like able to place a new item at the start1471 can place any new item1472 behaves like able to move existing items to the start1473 can move any existing item1474 free_space: 101, index: 11475 behaves like able to place a new item at the start1476 can place any new item1477 behaves like able to move existing items to the start1478 can move any existing item1479 free_space: 101, index: 21480 behaves like able to place a new item at the start1481 can place any new item1482 behaves like able to move existing items to the start1483 can move any existing item1484 free_space: 101, index: 31485 behaves like able to place a new item at the start1486 can place any new item1487 behaves like able to move existing items to the start1488 can move any existing item1489 free_space: 102, index: 01490 behaves like able to place a new item at the start1491 can place any new item1492 behaves like able to move existing items to the start1493 can move any existing item1494 free_space: 102, index: 11495 behaves like able to place a new item at the start1496 can place any new item1497 behaves like able to move existing items to the start1498 can move any existing item1499 free_space: 102, index: 21500 behaves like able to place a new item at the start1501 can place any new item1502 behaves like able to move existing items to the start1503 can move any existing item1504 free_space: 102, index: 31505 behaves like able to place a new item at the start1506 can place any new item1507 behaves like able to move existing items to the start1508 can move any existing item1509 free_space: 103, index: 01510 behaves like able to place a new item at the start1511 can place any new item1512 behaves like able to move existing items to the start1513 can move any existing item1514 free_space: 103, index: 11515 behaves like able to place a new item at the start1516 can place any new item1517 behaves like able to move existing items to the start1518 can move any existing item1519 free_space: 103, index: 21520 behaves like able to place a new item at the start1521 can place any new item1522 behaves like able to move existing items to the start1523 can move any existing item1524 free_space: 103, index: 31525 behaves like able to place a new item at the start1526 can place any new item1527 behaves like able to move existing items to the start1528 can move any existing item1529 free_space: 104, index: 01530 behaves like able to place a new item at the start1531 can place any new item1532 behaves like able to move existing items to the start1533 can move any existing item1534 free_space: 104, index: 11535 behaves like able to place a new item at the start1536 can place any new item1537 behaves like able to move existing items to the start1538 can move any existing item1539 free_space: 104, index: 21540 behaves like able to place a new item at the start1541 can place any new item1542 behaves like able to move existing items to the start1543 can move any existing item1544 free_space: 104, index: 31545 behaves like able to place a new item at the start1546 can place any new item1547 behaves like able to move existing items to the start1548 can move any existing item1549 free_space: 105, index: 01550 behaves like able to place a new item at the start1551 can place any new item1552 behaves like able to move existing items to the start1553 can move any existing item1554 free_space: 105, index: 11555 behaves like able to place a new item at the start1556 can place any new item1557 behaves like able to move existing items to the start1558 can move any existing item1559 free_space: 105, index: 21560 behaves like able to place a new item at the start1561 can place any new item1562 behaves like able to move existing items to the start1563 can move any existing item1564 free_space: 105, index: 31565 behaves like able to place a new item at the start1566 can place any new item1567 behaves like able to move existing items to the start1568 can move any existing item1569 #move1570 all positions are taken1571 idx_a: 0, idx_b: 11572 raises an error when placing a new item anywhere1573 index: 01574 behaves like able to move an existing item1575 can place any item betwen two others1576 can place any item after another1577 can place any item before another1578 index: 11579 behaves like able to move an existing item1580 can place any item betwen two others1581 can place any item after another1582 can place any item before another1583 index: 21584 behaves like able to move an existing item1585 can place any item betwen two others1586 can place any item after another1587 can place any item before another1588 index: 31589 behaves like able to move an existing item1590 can place any item betwen two others1591 can place any item after another1592 can place any item before another1593 index: 41594 behaves like able to move an existing item1595 can place any item betwen two others1596 can place any item after another1597 can place any item before another1598 idx_a: 0, idx_b: 21599 raises an error when placing a new item anywhere1600 index: 01601 behaves like able to move an existing item1602 can place any item betwen two others1603 can place any item after another1604 can place any item before another1605 index: 11606 behaves like able to move an existing item1607 can place any item betwen two others1608 can place any item after another1609 can place any item before another1610 index: 21611 behaves like able to move an existing item1612 can place any item betwen two others1613 can place any item after another1614 can place any item before another1615 index: 31616 behaves like able to move an existing item1617 can place any item betwen two others1618 can place any item after another1619 can place any item before another1620 index: 41621 behaves like able to move an existing item1622 can place any item betwen two others1623 can place any item after another1624 can place any item before another1625 idx_a: 0, idx_b: 31626 raises an error when placing a new item anywhere1627 index: 01628 behaves like able to move an existing item1629 can place any item betwen two others1630 can place any item after another1631 can place any item before another1632 index: 11633 behaves like able to move an existing item1634 can place any item betwen two others1635 can place any item after another1636 can place any item before another1637 index: 21638 behaves like able to move an existing item1639 can place any item betwen two others1640 can place any item after another1641 can place any item before another1642 index: 31643 behaves like able to move an existing item1644 can place any item betwen two others1645 can place any item after another1646 can place any item before another1647 index: 41648 behaves like able to move an existing item1649 can place any item betwen two others1650 can place any item after another1651 can place any item before another1652 idx_a: 0, idx_b: 41653 raises an error when placing a new item anywhere1654 index: 01655 behaves like able to move an existing item1656 can place any item betwen two others1657 can place any item after another1658 can place any item before another1659 index: 11660 behaves like able to move an existing item1661 can place any item betwen two others1662 can place any item after another1663 can place any item before another1664 index: 21665 behaves like able to move an existing item1666 can place any item betwen two others1667 can place any item after another1668 can place any item before another1669 index: 31670 behaves like able to move an existing item1671 can place any item betwen two others1672 can place any item after another1673 can place any item before another1674 index: 41675 behaves like able to move an existing item1676 can place any item betwen two others1677 can place any item after another1678 can place any item before another1679 idx_a: 1, idx_b: 21680 raises an error when placing a new item anywhere1681 index: 01682 behaves like able to move an existing item1683 can place any item betwen two others1684 can place any item after another1685 can place any item before another1686 index: 11687 behaves like able to move an existing item1688 can place any item betwen two others1689 can place any item after another1690 can place any item before another1691 index: 21692 behaves like able to move an existing item1693 can place any item betwen two others1694 can place any item after another1695 can place any item before another1696 index: 31697 behaves like able to move an existing item1698 can place any item betwen two others1699 can place any item after another1700 can place any item before another1701 index: 41702 behaves like able to move an existing item1703 can place any item betwen two others1704 can place any item after another1705 can place any item before another1706 idx_a: 1, idx_b: 31707 raises an error when placing a new item anywhere1708 index: 01709 behaves like able to move an existing item1710 can place any item betwen two others1711 can place any item after another1712 can place any item before another1713 index: 11714 behaves like able to move an existing item1715 can place any item betwen two others1716 can place any item after another1717 can place any item before another1718 index: 21719 behaves like able to move an existing item1720 can place any item betwen two others1721 can place any item after another1722 can place any item before another1723 index: 31724 behaves like able to move an existing item1725 can place any item betwen two others1726 can place any item after another1727 can place any item before another1728 index: 41729 behaves like able to move an existing item1730 can place any item betwen two others1731 can place any item after another1732 can place any item before another1733 idx_a: 1, idx_b: 41734 raises an error when placing a new item anywhere1735 index: 01736 behaves like able to move an existing item1737 can place any item betwen two others1738 can place any item after another1739 can place any item before another1740 index: 11741 behaves like able to move an existing item1742 can place any item betwen two others1743 can place any item after another1744 can place any item before another1745 index: 21746 behaves like able to move an existing item1747 can place any item betwen two others1748 can place any item after another1749 can place any item before another1750 index: 31751 behaves like able to move an existing item1752 can place any item betwen two others1753 can place any item after another1754 can place any item before another1755 index: 41756 behaves like able to move an existing item1757 can place any item betwen two others1758 can place any item after another1759 can place any item before another1760 idx_a: 2, idx_b: 31761 raises an error when placing a new item anywhere1762 index: 01763 behaves like able to move an existing item1764 can place any item betwen two others1765 can place any item after another1766 can place any item before another1767 index: 11768 behaves like able to move an existing item1769 can place any item betwen two others1770 can place any item after another1771 can place any item before another1772 index: 21773 behaves like able to move an existing item1774 can place any item betwen two others1775 can place any item after another1776 can place any item before another1777 index: 31778 behaves like able to move an existing item1779 can place any item betwen two others1780 can place any item after another1781 can place any item before another1782 index: 41783 behaves like able to move an existing item1784 can place any item betwen two others1785 can place any item after another1786 can place any item before another1787 idx_a: 2, idx_b: 41788 raises an error when placing a new item anywhere1789 index: 01790 behaves like able to move an existing item1791 can place any item betwen two others1792 can place any item after another1793 can place any item before another1794 index: 11795 behaves like able to move an existing item1796 can place any item betwen two others1797 can place any item after another1798 can place any item before another1799 index: 21800 behaves like able to move an existing item1801 can place any item betwen two others1802 can place any item after another1803 can place any item before another1804 index: 31805 behaves like able to move an existing item1806 can place any item betwen two others1807 can place any item after another1808 can place any item before another1809 index: 41810 behaves like able to move an existing item1811 can place any item betwen two others1812 can place any item after another1813 can place any item before another1814 idx_a: 3, idx_b: 41815 raises an error when placing a new item anywhere1816 index: 01817 behaves like able to move an existing item1818 can place any item betwen two others1819 can place any item after another1820 can place any item before another1821 index: 11822 behaves like able to move an existing item1823 can place any item betwen two others1824 can place any item after another1825 can place any item before another1826 index: 21827 behaves like able to move an existing item1828 can place any item betwen two others1829 can place any item after another1830 can place any item before another1831 index: 31832 behaves like able to move an existing item1833 can place any item betwen two others1834 can place any item after another1835 can place any item before another1836 index: 41837 behaves like able to move an existing item1838 can place any item betwen two others1839 can place any item after another1840 can place any item before another1841 there are no siblings1842 raises an ArgumentError when both first and last are nil1843 there are a couple of siblings1844 pos_movable: 101, pos_a: 102, pos_b: 1031845 behaves like able to move a new item1846 can place any new item betwen two others1847 can place any new item after another1848 can place any new item before another1849 behaves like able to move an existing item1850 can place any item betwen two others1851 can place any item after another1852 can place any item before another1853 pos_movable: 101, pos_a: 102, pos_b: 1041854 behaves like able to move a new item1855 can place any new item betwen two others1856 can place any new item after another1857 can place any new item before another1858 behaves like able to move an existing item1859 can place any item betwen two others1860 can place any item after another1861 can place any item before another1862 pos_movable: 101, pos_a: 102, pos_b: 1051863 behaves like able to move a new item1864 can place any new item betwen two others1865 can place any new item after another1866 can place any new item before another1867 behaves like able to move an existing item1868 can place any item betwen two others1869 can place any item after another1870 can place any item before another1871 pos_movable: 101, pos_a: 103, pos_b: 1041872 behaves like able to move a new item1873 can place any new item betwen two others1874 can place any new item after another1875 can place any new item before another1876 behaves like able to move an existing item1877 can place any item betwen two others1878 can place any item after another1879 can place any item before another1880 pos_movable: 101, pos_a: 103, pos_b: 1051881 behaves like able to move a new item1882 can place any new item betwen two others1883 can place any new item after another1884 can place any new item before another1885 behaves like able to move an existing item1886 can place any item betwen two others1887 can place any item after another1888 can place any item before another1889 pos_movable: 101, pos_a: 104, pos_b: 1051890 behaves like able to move a new item1891 can place any new item betwen two others1892 can place any new item after another1893 can place any new item before another1894 behaves like able to move an existing item1895 can place any item betwen two others1896 can place any item after another1897 can place any item before another1898 pos_movable: 102, pos_a: 101, pos_b: 1031899 behaves like able to move a new item1900 can place any new item betwen two others1901 can place any new item after another1902 can place any new item before another1903 behaves like able to move an existing item1904 can place any item betwen two others1905 can place any item after another1906 can place any item before another1907 pos_movable: 102, pos_a: 101, pos_b: 1041908 behaves like able to move a new item1909 can place any new item betwen two others1910 can place any new item after another1911 can place any new item before another1912 behaves like able to move an existing item1913 can place any item betwen two others1914 can place any item after another1915 can place any item before another1916 pos_movable: 102, pos_a: 101, pos_b: 1051917 behaves like able to move a new item1918 can place any new item betwen two others1919 can place any new item after another1920 can place any new item before another1921 behaves like able to move an existing item1922 can place any item betwen two others1923 can place any item after another1924 can place any item before another1925 pos_movable: 102, pos_a: 103, pos_b: 1041926 behaves like able to move a new item1927 can place any new item betwen two others1928 can place any new item after another1929 can place any new item before another1930 behaves like able to move an existing item1931 can place any item betwen two others1932 can place any item after another1933 can place any item before another1934 pos_movable: 102, pos_a: 103, pos_b: 1051935 behaves like able to move a new item1936 can place any new item betwen two others1937 can place any new item after another1938 can place any new item before another1939 behaves like able to move an existing item1940 can place any item betwen two others1941 can place any item after another1942 can place any item before another1943 pos_movable: 102, pos_a: 104, pos_b: 1051944 behaves like able to move a new item1945 can place any new item betwen two others1946 can place any new item after another1947 can place any new item before another1948 behaves like able to move an existing item1949 can place any item betwen two others1950 can place any item after another1951 can place any item before another1952 pos_movable: 103, pos_a: 101, pos_b: 1021953 behaves like able to move a new item1954 can place any new item betwen two others1955 can place any new item after another1956 can place any new item before another1957 behaves like able to move an existing item1958 can place any item betwen two others1959 can place any item after another1960 can place any item before another1961 pos_movable: 103, pos_a: 101, pos_b: 1041962 behaves like able to move a new item1963 can place any new item betwen two others1964 can place any new item after another1965 can place any new item before another1966 behaves like able to move an existing item1967 can place any item betwen two others1968 can place any item after another1969 can place any item before another1970 pos_movable: 103, pos_a: 101, pos_b: 1051971 behaves like able to move a new item1972 can place any new item betwen two others1973 can place any new item after another1974 can place any new item before another1975 behaves like able to move an existing item1976 can place any item betwen two others1977 can place any item after another1978 can place any item before another1979 pos_movable: 103, pos_a: 102, pos_b: 1041980 behaves like able to move a new item1981 can place any new item betwen two others1982 can place any new item after another1983 can place any new item before another1984 behaves like able to move an existing item1985 can place any item betwen two others1986 can place any item after another1987 can place any item before another1988 pos_movable: 103, pos_a: 102, pos_b: 1051989 behaves like able to move a new item1990 can place any new item betwen two others1991 can place any new item after another1992 can place any new item before another1993 behaves like able to move an existing item1994 can place any item betwen two others1995 can place any item after another1996 can place any item before another1997 pos_movable: 103, pos_a: 104, pos_b: 1051998 behaves like able to move a new item1999 can place any new item betwen two others2000 can place any new item after another2001 can place any new item before another2002 behaves like able to move an existing item2003 can place any item betwen two others2004 can place any item after another2005 can place any item before another2006 pos_movable: 104, pos_a: 101, pos_b: 1022007 behaves like able to move a new item2008 can place any new item betwen two others2009 can place any new item after another2010 can place any new item before another2011 behaves like able to move an existing item2012 can place any item betwen two others2013 can place any item after another2014 can place any item before another2015 pos_movable: 104, pos_a: 101, pos_b: 1032016 behaves like able to move a new item2017 can place any new item betwen two others2018 can place any new item after another2019 can place any new item before another2020 behaves like able to move an existing item2021 can place any item betwen two others2022 can place any item after another2023 can place any item before another2024 pos_movable: 104, pos_a: 101, pos_b: 1052025 behaves like able to move a new item2026 can place any new item betwen two others2027 can place any new item after another2028 can place any new item before another2029 behaves like able to move an existing item2030 can place any item betwen two others2031 can place any item after another2032 can place any item before another2033 pos_movable: 104, pos_a: 102, pos_b: 1032034 behaves like able to move a new item2035 can place any new item betwen two others2036 can place any new item after another2037 can place any new item before another2038 behaves like able to move an existing item2039 can place any item betwen two others2040 can place any item after another2041 can place any item before another2042 pos_movable: 104, pos_a: 102, pos_b: 1052043 behaves like able to move a new item2044 can place any new item betwen two others2045 can place any new item after another2046 can place any new item before another2047 behaves like able to move an existing item2048 can place any item betwen two others2049 can place any item after another2050 can place any item before another2051 pos_movable: 104, pos_a: 103, pos_b: 1052052 behaves like able to move a new item2053 can place any new item betwen two others2054 can place any new item after another2055 can place any new item before another2056 behaves like able to move an existing item2057 can place any item betwen two others2058 can place any item after another2059 can place any item before another2060 pos_movable: 105, pos_a: 101, pos_b: 1022061 behaves like able to move a new item2062 can place any new item betwen two others2063 can place any new item after another2064 can place any new item before another2065 behaves like able to move an existing item2066 can place any item betwen two others2067 can place any item after another2068 can place any item before another2069 pos_movable: 105, pos_a: 101, pos_b: 1032070 behaves like able to move a new item2071 can place any new item betwen two others2072 can place any new item after another2073 can place any new item before another2074 behaves like able to move an existing item2075 can place any item betwen two others2076 can place any item after another2077 can place any item before another2078 pos_movable: 105, pos_a: 101, pos_b: 1042079 behaves like able to move a new item2080 can place any new item betwen two others2081 can place any new item after another2082 can place any new item before another2083 behaves like able to move an existing item2084 can place any item betwen two others2085 can place any item after another2086 can place any item before another2087 pos_movable: 105, pos_a: 102, pos_b: 1032088 behaves like able to move a new item2089 can place any new item betwen two others2090 can place any new item after another2091 can place any new item before another2092 behaves like able to move an existing item2093 can place any item betwen two others2094 can place any item after another2095 can place any item before another2096 pos_movable: 105, pos_a: 102, pos_b: 1042097 behaves like able to move a new item2098 can place any new item betwen two others2099 can place any new item after another2100 can place any new item before another2101 behaves like able to move an existing item2102 can place any item betwen two others2103 can place any item after another2104 can place any item before another2105 pos_movable: 105, pos_a: 103, pos_b: 1042106 behaves like able to move a new item2107 can place any new item betwen two others2108 can place any new item after another2109 can place any new item before another2110 behaves like able to move an existing item2111 can place any item betwen two others2112 can place any item after another2113 can place any item before another2114 at least one position is free2115 free_space: 101, index: 3, pos_a: 2, pos_b: 32116 behaves like able to move a new item2117 can place any new item betwen two others2118 can place any new item after another2119 can place any new item before another2120 behaves like able to move an existing item2121 can place any item betwen two others2122 can place any item after another2123 can place any item before another2124 free_space: 101, index: 3, pos_a: 1, pos_b: 32125 behaves like able to move a new item2126 can place any new item betwen two others2127 can place any new item after another2128 can place any new item before another2129 behaves like able to move an existing item2130 can place any item betwen two others2131 can place any item after another2132 can place any item before another2133 free_space: 101, index: 3, pos_a: 1, pos_b: 22134 behaves like able to move a new item2135 can place any new item betwen two others2136 can place any new item after another2137 can place any new item before another2138 behaves like able to move an existing item2139 can place any item betwen two others2140 can place any item after another2141 can place any item before another2142 free_space: 101, index: 3, pos_a: 0, pos_b: 32143 behaves like able to move a new item2144 can place any new item betwen two others2145 can place any new item after another2146 can place any new item before another2147 behaves like able to move an existing item2148 can place any item betwen two others2149 can place any item after another2150 can place any item before another2151 free_space: 101, index: 3, pos_a: 0, pos_b: 22152 behaves like able to move a new item2153 can place any new item betwen two others2154 can place any new item after another2155 can place any new item before another2156 behaves like able to move an existing item2157 can place any item betwen two others2158 can place any item after another2159 can place any item before another2160 free_space: 101, index: 3, pos_a: 0, pos_b: 12161 behaves like able to move a new item2162 can place any new item betwen two others2163 can place any new item after another2164 can place any new item before another2165 behaves like able to move an existing item2166 can place any item betwen two others2167 can place any item after another2168 can place any item before another2169 free_space: 101, index: 2, pos_a: 2, pos_b: 32170 behaves like able to move a new item2171 can place any new item betwen two others2172 can place any new item after another2173 can place any new item before another2174 behaves like able to move an existing item2175 can place any item betwen two others2176 can place any item after another2177 can place any item before another2178 free_space: 101, index: 2, pos_a: 1, pos_b: 32179 behaves like able to move a new item2180 can place any new item betwen two others2181 can place any new item after another2182 can place any new item before another2183 behaves like able to move an existing item2184 can place any item betwen two others2185 can place any item after another2186 can place any item before another2187 free_space: 101, index: 2, pos_a: 1, pos_b: 22188 behaves like able to move a new item2189 can place any new item betwen two others2190 can place any new item after another2191 can place any new item before another2192 behaves like able to move an existing item2193 can place any item betwen two others2194 can place any item after another2195 can place any item before another2196 free_space: 101, index: 2, pos_a: 0, pos_b: 32197 behaves like able to move a new item2198 can place any new item betwen two others2199 can place any new item after another2200 can place any new item before another2201 behaves like able to move an existing item2202 can place any item betwen two others2203 can place any item after another2204 can place any item before another2205 free_space: 101, index: 2, pos_a: 0, pos_b: 22206 behaves like able to move a new item2207 can place any new item betwen two others2208 can place any new item after another2209 can place any new item before another2210 behaves like able to move an existing item2211 can place any item betwen two others2212 can place any item after another2213 can place any item before another2214 free_space: 101, index: 2, pos_a: 0, pos_b: 12215 behaves like able to move a new item2216 can place any new item betwen two others2217 can place any new item after another2218 can place any new item before another2219 behaves like able to move an existing item2220 can place any item betwen two others2221 can place any item after another2222 can place any item before another2223 free_space: 101, index: 1, pos_a: 2, pos_b: 32224 behaves like able to move a new item2225 can place any new item betwen two others2226 can place any new item after another2227 can place any new item before another2228 behaves like able to move an existing item2229 can place any item betwen two others2230 can place any item after another2231 can place any item before another2232 free_space: 101, index: 1, pos_a: 1, pos_b: 32233 behaves like able to move a new item2234 can place any new item betwen two others2235 can place any new item after another2236 can place any new item before another2237 behaves like able to move an existing item2238 can place any item betwen two others2239 can place any item after another2240 can place any item before another2241 free_space: 101, index: 1, pos_a: 1, pos_b: 22242 behaves like able to move a new item2243 can place any new item betwen two others2244 can place any new item after another2245 can place any new item before another2246 behaves like able to move an existing item2247 can place any item betwen two others2248 can place any item after another2249 can place any item before another2250 free_space: 101, index: 1, pos_a: 0, pos_b: 32251 behaves like able to move a new item2252 can place any new item betwen two others2253 can place any new item after another2254 can place any new item before another2255 behaves like able to move an existing item2256 can place any item betwen two others2257 can place any item after another2258 can place any item before another2259 free_space: 101, index: 1, pos_a: 0, pos_b: 22260 behaves like able to move a new item2261 can place any new item betwen two others2262 can place any new item after another2263 can place any new item before another2264 behaves like able to move an existing item2265 can place any item betwen two others2266 can place any item after another2267 can place any item before another2268 free_space: 101, index: 1, pos_a: 0, pos_b: 12269 behaves like able to move a new item2270 can place any new item betwen two others2271 can place any new item after another2272 can place any new item before another2273 behaves like able to move an existing item2274 can place any item betwen two others2275 can place any item after another2276 can place any item before another2277 free_space: 101, index: 0, pos_a: 2, pos_b: 32278 behaves like able to move a new item2279 can place any new item betwen two others2280 can place any new item after another2281 can place any new item before another2282 behaves like able to move an existing item2283 can place any item betwen two others2284 can place any item after another2285 can place any item before another2286 free_space: 101, index: 0, pos_a: 1, pos_b: 32287 behaves like able to move a new item2288 can place any new item betwen two others2289 can place any new item after another2290 can place any new item before another2291 behaves like able to move an existing item2292 can place any item betwen two others2293 can place any item after another2294 can place any item before another2295 free_space: 101, index: 0, pos_a: 1, pos_b: 22296 behaves like able to move a new item2297 can place any new item betwen two others2298 can place any new item after another2299 can place any new item before another2300 behaves like able to move an existing item2301 can place any item betwen two others2302 can place any item after another2303 can place any item before another2304 free_space: 101, index: 0, pos_a: 0, pos_b: 32305 behaves like able to move a new item2306 can place any new item betwen two others2307 can place any new item after another2308 can place any new item before another2309 behaves like able to move an existing item2310 can place any item betwen two others2311 can place any item after another2312 can place any item before another2313 free_space: 101, index: 0, pos_a: 0, pos_b: 22314 behaves like able to move a new item2315 can place any new item betwen two others2316 can place any new item after another2317 can place any new item before another2318 behaves like able to move an existing item2319 can place any item betwen two others2320 can place any item after another2321 can place any item before another2322 free_space: 101, index: 0, pos_a: 0, pos_b: 12323 behaves like able to move a new item2324 can place any new item betwen two others2325 can place any new item after another2326 can place any new item before another2327 behaves like able to move an existing item2328 can place any item betwen two others2329 can place any item after another2330 can place any item before another2331 free_space: 102, index: 3, pos_a: 2, pos_b: 32332 behaves like able to move a new item2333 can place any new item betwen two others2334 can place any new item after another2335 can place any new item before another2336 behaves like able to move an existing item2337 can place any item betwen two others2338 can place any item after another2339 can place any item before another2340 free_space: 102, index: 3, pos_a: 1, pos_b: 32341 behaves like able to move a new item2342 can place any new item betwen two others2343 can place any new item after another2344 can place any new item before another2345 behaves like able to move an existing item2346 can place any item betwen two others2347 can place any item after another2348 can place any item before another2349 free_space: 102, index: 3, pos_a: 1, pos_b: 22350 behaves like able to move a new item2351 can place any new item betwen two others2352 can place any new item after another2353 can place any new item before another2354 behaves like able to move an existing item2355 can place any item betwen two others2356 can place any item after another2357 can place any item before another2358 free_space: 102, index: 3, pos_a: 0, pos_b: 32359 behaves like able to move a new item2360 can place any new item betwen two others2361 can place any new item after another2362 can place any new item before another2363 behaves like able to move an existing item2364 can place any item betwen two others2365 can place any item after another2366 can place any item before another2367 free_space: 102, index: 3, pos_a: 0, pos_b: 22368 behaves like able to move a new item2369 can place any new item betwen two others2370 can place any new item after another2371 can place any new item before another2372 behaves like able to move an existing item2373 can place any item betwen two others2374 can place any item after another2375 can place any item before another2376 free_space: 102, index: 3, pos_a: 0, pos_b: 12377 behaves like able to move a new item2378 can place any new item betwen two others2379 can place any new item after another2380 can place any new item before another2381 behaves like able to move an existing item2382 can place any item betwen two others2383 can place any item after another2384 can place any item before another2385 free_space: 102, index: 2, pos_a: 2, pos_b: 32386 behaves like able to move a new item2387 can place any new item betwen two others2388 can place any new item after another2389 can place any new item before another2390 behaves like able to move an existing item2391 can place any item betwen two others2392 can place any item after another2393 can place any item before another2394 free_space: 102, index: 2, pos_a: 1, pos_b: 32395 behaves like able to move a new item2396 can place any new item betwen two others2397 can place any new item after another2398 can place any new item before another2399 behaves like able to move an existing item2400 can place any item betwen two others2401 can place any item after another2402 can place any item before another2403 free_space: 102, index: 2, pos_a: 1, pos_b: 22404 behaves like able to move a new item2405 can place any new item betwen two others2406 can place any new item after another2407 can place any new item before another2408 behaves like able to move an existing item2409 can place any item betwen two others2410 can place any item after another2411 can place any item before another2412 free_space: 102, index: 2, pos_a: 0, pos_b: 32413 behaves like able to move a new item2414 can place any new item betwen two others2415 can place any new item after another2416 can place any new item before another2417 behaves like able to move an existing item2418 can place any item betwen two others2419 can place any item after another2420 can place any item before another2421 free_space: 102, index: 2, pos_a: 0, pos_b: 22422 behaves like able to move a new item2423 can place any new item betwen two others2424 can place any new item after another2425 can place any new item before another2426 behaves like able to move an existing item2427 can place any item betwen two others2428 can place any item after another2429 can place any item before another2430 free_space: 102, index: 2, pos_a: 0, pos_b: 12431 behaves like able to move a new item2432 can place any new item betwen two others2433 can place any new item after another2434 can place any new item before another2435 behaves like able to move an existing item2436 can place any item betwen two others2437 can place any item after another2438 can place any item before another2439 free_space: 102, index: 1, pos_a: 2, pos_b: 32440 behaves like able to move a new item2441 can place any new item betwen two others2442 can place any new item after another2443 can place any new item before another2444 behaves like able to move an existing item2445 can place any item betwen two others2446 can place any item after another2447 can place any item before another2448 free_space: 102, index: 1, pos_a: 1, pos_b: 32449 behaves like able to move a new item2450 can place any new item betwen two others2451 can place any new item after another2452 can place any new item before another2453 behaves like able to move an existing item2454 can place any item betwen two others2455 can place any item after another2456 can place any item before another2457 free_space: 102, index: 1, pos_a: 1, pos_b: 22458 behaves like able to move a new item2459 can place any new item betwen two others2460 can place any new item after another2461 can place any new item before another2462 behaves like able to move an existing item2463 can place any item betwen two others2464 can place any item after another2465 can place any item before another2466 free_space: 102, index: 1, pos_a: 0, pos_b: 32467 behaves like able to move a new item2468 can place any new item betwen two others2469 can place any new item after another2470 can place any new item before another2471 behaves like able to move an existing item2472 can place any item betwen two others2473 can place any item after another2474 can place any item before another2475 free_space: 102, index: 1, pos_a: 0, pos_b: 22476 behaves like able to move a new item2477 can place any new item betwen two others2478 can place any new item after another2479 can place any new item before another2480 behaves like able to move an existing item2481 can place any item betwen two others2482 can place any item after another2483 can place any item before another2484 free_space: 102, index: 1, pos_a: 0, pos_b: 12485 behaves like able to move a new item2486 can place any new item betwen two others2487 can place any new item after another2488 can place any new item before another2489 behaves like able to move an existing item2490 can place any item betwen two others2491 can place any item after another2492 can place any item before another2493 free_space: 102, index: 0, pos_a: 2, pos_b: 32494 behaves like able to move a new item2495 can place any new item betwen two others2496 can place any new item after another2497 can place any new item before another2498 behaves like able to move an existing item2499 can place any item betwen two others2500 can place any item after another2501 can place any item before another2502 free_space: 102, index: 0, pos_a: 1, pos_b: 32503 behaves like able to move a new item2504 can place any new item betwen two others2505 can place any new item after another2506 can place any new item before another2507 behaves like able to move an existing item2508 can place any item betwen two others2509 can place any item after another2510 can place any item before another2511 free_space: 102, index: 0, pos_a: 1, pos_b: 22512 behaves like able to move a new item2513 can place any new item betwen two others2514 can place any new item after another2515 can place any new item before another2516 behaves like able to move an existing item2517 can place any item betwen two others2518 can place any item after another2519 can place any item before another2520 free_space: 102, index: 0, pos_a: 0, pos_b: 32521 behaves like able to move a new item2522 can place any new item betwen two others2523 can place any new item after another2524 can place any new item before another2525 behaves like able to move an existing item2526 can place any item betwen two others2527 can place any item after another2528 can place any item before another2529 free_space: 102, index: 0, pos_a: 0, pos_b: 22530 behaves like able to move a new item2531 can place any new item betwen two others2532 can place any new item after another2533 can place any new item before another2534 behaves like able to move an existing item2535 can place any item betwen two others2536 can place any item after another2537 can place any item before another2538 free_space: 102, index: 0, pos_a: 0, pos_b: 12539 behaves like able to move a new item2540 can place any new item betwen two others2541 can place any new item after another2542 can place any new item before another2543 behaves like able to move an existing item2544 can place any item betwen two others2545 can place any item after another2546 can place any item before another2547 free_space: 103, index: 3, pos_a: 2, pos_b: 32548 behaves like able to move a new item2549 can place any new item betwen two others2550 can place any new item after another2551 can place any new item before another2552 behaves like able to move an existing item2553 can place any item betwen two others2554 can place any item after another2555 can place any item before another2556 free_space: 103, index: 3, pos_a: 1, pos_b: 32557 behaves like able to move a new item2558 can place any new item betwen two others2559 can place any new item after another2560 can place any new item before another2561 behaves like able to move an existing item2562 can place any item betwen two others2563 can place any item after another2564 can place any item before another2565 free_space: 103, index: 3, pos_a: 1, pos_b: 22566 behaves like able to move a new item2567 can place any new item betwen two others2568 can place any new item after another2569 can place any new item before another2570 behaves like able to move an existing item2571 can place any item betwen two others2572 can place any item after another2573 can place any item before another2574 free_space: 103, index: 3, pos_a: 0, pos_b: 32575 behaves like able to move a new item2576 can place any new item betwen two others2577 can place any new item after another2578 can place any new item before another2579 behaves like able to move an existing item2580 can place any item betwen two others2581 can place any item after another2582 can place any item before another2583 free_space: 103, index: 3, pos_a: 0, pos_b: 22584 behaves like able to move a new item2585 can place any new item betwen two others2586 can place any new item after another2587 can place any new item before another2588 behaves like able to move an existing item2589 can place any item betwen two others2590 can place any item after another2591 can place any item before another2592 free_space: 103, index: 3, pos_a: 0, pos_b: 12593 behaves like able to move a new item2594 can place any new item betwen two others2595 can place any new item after another2596 can place any new item before another2597 behaves like able to move an existing item2598 can place any item betwen two others2599 can place any item after another2600 can place any item before another2601 free_space: 103, index: 2, pos_a: 2, pos_b: 32602 behaves like able to move a new item2603 can place any new item betwen two others2604 can place any new item after another2605 can place any new item before another2606 behaves like able to move an existing item2607 can place any item betwen two others2608 can place any item after another2609 can place any item before another2610 free_space: 103, index: 2, pos_a: 1, pos_b: 32611 behaves like able to move a new item2612 can place any new item betwen two others2613 can place any new item after another2614 can place any new item before another2615 behaves like able to move an existing item2616 can place any item betwen two others2617 can place any item after another2618 can place any item before another2619 free_space: 103, index: 2, pos_a: 1, pos_b: 22620 behaves like able to move a new item2621 can place any new item betwen two others2622 can place any new item after another2623 can place any new item before another2624 behaves like able to move an existing item2625 can place any item betwen two others2626 can place any item after another2627 can place any item before another2628 free_space: 103, index: 2, pos_a: 0, pos_b: 32629 behaves like able to move a new item2630 can place any new item betwen two others2631 can place any new item after another2632 can place any new item before another2633 behaves like able to move an existing item2634 can place any item betwen two others2635 can place any item after another2636 can place any item before another2637 free_space: 103, index: 2, pos_a: 0, pos_b: 22638 behaves like able to move a new item2639 can place any new item betwen two others2640 can place any new item after another2641 can place any new item before another2642 behaves like able to move an existing item2643 can place any item betwen two others2644 can place any item after another2645 can place any item before another2646 free_space: 103, index: 2, pos_a: 0, pos_b: 12647 behaves like able to move a new item2648 can place any new item betwen two others2649 can place any new item after another2650 can place any new item before another2651 behaves like able to move an existing item2652 can place any item betwen two others2653 can place any item after another2654 can place any item before another2655 free_space: 103, index: 1, pos_a: 2, pos_b: 32656 behaves like able to move a new item2657 can place any new item betwen two others2658 can place any new item after another2659 can place any new item before another2660 behaves like able to move an existing item2661 can place any item betwen two others2662 can place any item after another2663 can place any item before another2664 free_space: 103, index: 1, pos_a: 1, pos_b: 32665 behaves like able to move a new item2666 can place any new item betwen two others2667 can place any new item after another2668 can place any new item before another2669 behaves like able to move an existing item2670 can place any item betwen two others2671 can place any item after another2672 can place any item before another2673 free_space: 103, index: 1, pos_a: 1, pos_b: 22674 behaves like able to move a new item2675 can place any new item betwen two others2676 can place any new item after another2677 can place any new item before another2678 behaves like able to move an existing item2679 can place any item betwen two others2680 can place any item after another2681 can place any item before another2682 free_space: 103, index: 1, pos_a: 0, pos_b: 32683 behaves like able to move a new item2684 can place any new item betwen two others2685 can place any new item after another2686 can place any new item before another2687 behaves like able to move an existing item2688 can place any item betwen two others2689 can place any item after another2690 can place any item before another2691 free_space: 103, index: 1, pos_a: 0, pos_b: 22692 behaves like able to move a new item2693 can place any new item betwen two others2694 can place any new item after another2695 can place any new item before another2696 behaves like able to move an existing item2697 can place any item betwen two others2698 can place any item after another2699 can place any item before another2700 free_space: 103, index: 1, pos_a: 0, pos_b: 12701 behaves like able to move a new item2702 can place any new item betwen two others2703 can place any new item after another2704 can place any new item before another2705 behaves like able to move an existing item2706 can place any item betwen two others2707 can place any item after another2708 can place any item before another2709 free_space: 103, index: 0, pos_a: 2, pos_b: 32710 behaves like able to move a new item2711 can place any new item betwen two others2712 can place any new item after another2713 can place any new item before another2714 behaves like able to move an existing item2715 can place any item betwen two others2716 can place any item after another2717 can place any item before another2718 free_space: 103, index: 0, pos_a: 1, pos_b: 32719 behaves like able to move a new item2720 can place any new item betwen two others2721 can place any new item after another2722 can place any new item before another2723 behaves like able to move an existing item2724 can place any item betwen two others2725 can place any item after another2726 can place any item before another2727 free_space: 103, index: 0, pos_a: 1, pos_b: 22728 behaves like able to move a new item2729 can place any new item betwen two others2730 can place any new item after another2731 can place any new item before another2732 behaves like able to move an existing item2733 can place any item betwen two others2734 can place any item after another2735 can place any item before another2736 free_space: 103, index: 0, pos_a: 0, pos_b: 32737 behaves like able to move a new item2738 can place any new item betwen two others2739 can place any new item after another2740 can place any new item before another2741 behaves like able to move an existing item2742 can place any item betwen two others2743 can place any item after another2744 can place any item before another2745 free_space: 103, index: 0, pos_a: 0, pos_b: 22746 behaves like able to move a new item2747 can place any new item betwen two others2748 can place any new item after another2749 can place any new item before another2750 behaves like able to move an existing item2751 can place any item betwen two others2752 can place any item after another2753 can place any item before another2754 free_space: 103, index: 0, pos_a: 0, pos_b: 12755 behaves like able to move a new item2756 can place any new item betwen two others2757 can place any new item after another2758 can place any new item before another2759 behaves like able to move an existing item2760 can place any item betwen two others2761 can place any item after another2762 can place any item before another2763 free_space: 104, index: 3, pos_a: 2, pos_b: 32764 behaves like able to move a new item2765 can place any new item betwen two others2766 can place any new item after another2767 can place any new item before another2768 behaves like able to move an existing item2769 can place any item betwen two others2770 can place any item after another2771 can place any item before another2772 free_space: 104, index: 3, pos_a: 1, pos_b: 32773 behaves like able to move a new item2774 can place any new item betwen two others2775 can place any new item after another2776 can place any new item before another2777 behaves like able to move an existing item2778 can place any item betwen two others2779 can place any item after another2780 can place any item before another2781 free_space: 104, index: 3, pos_a: 1, pos_b: 22782 behaves like able to move a new item2783 can place any new item betwen two others2784 can place any new item after another2785 can place any new item before another2786 behaves like able to move an existing item2787 can place any item betwen two others2788 can place any item after another2789 can place any item before another2790 free_space: 104, index: 3, pos_a: 0, pos_b: 32791 behaves like able to move a new item2792 can place any new item betwen two others2793 can place any new item after another2794 can place any new item before another2795 behaves like able to move an existing item2796 can place any item betwen two others2797 can place any item after another2798 can place any item before another2799 free_space: 104, index: 3, pos_a: 0, pos_b: 22800 behaves like able to move a new item2801 can place any new item betwen two others2802 can place any new item after another2803 can place any new item before another2804 behaves like able to move an existing item2805 can place any item betwen two others2806 can place any item after another2807 can place any item before another2808 free_space: 104, index: 3, pos_a: 0, pos_b: 12809 behaves like able to move a new item2810 can place any new item betwen two others2811 can place any new item after another2812 can place any new item before another2813 behaves like able to move an existing item2814 can place any item betwen two others2815 can place any item after another2816 can place any item before another2817 free_space: 104, index: 2, pos_a: 2, pos_b: 32818 behaves like able to move a new item2819 can place any new item betwen two others2820 can place any new item after another2821 can place any new item before another2822 behaves like able to move an existing item2823 can place any item betwen two others2824 can place any item after another2825 can place any item before another2826 free_space: 104, index: 2, pos_a: 1, pos_b: 32827 behaves like able to move a new item2828 can place any new item betwen two others2829 can place any new item after another2830 can place any new item before another2831 behaves like able to move an existing item2832 can place any item betwen two others2833 can place any item after another2834 can place any item before another2835 free_space: 104, index: 2, pos_a: 1, pos_b: 22836 behaves like able to move a new item2837 can place any new item betwen two others2838 can place any new item after another2839 can place any new item before another2840 behaves like able to move an existing item2841 can place any item betwen two others2842 can place any item after another2843 can place any item before another2844 free_space: 104, index: 2, pos_a: 0, pos_b: 32845 behaves like able to move a new item2846 can place any new item betwen two others2847 can place any new item after another2848 can place any new item before another2849 behaves like able to move an existing item2850 can place any item betwen two others2851 can place any item after another2852 can place any item before another2853 free_space: 104, index: 2, pos_a: 0, pos_b: 22854 behaves like able to move a new item2855 can place any new item betwen two others2856 can place any new item after another2857 can place any new item before another2858 behaves like able to move an existing item2859 can place any item betwen two others2860 can place any item after another2861 can place any item before another2862 free_space: 104, index: 2, pos_a: 0, pos_b: 12863 behaves like able to move a new item2864 can place any new item betwen two others2865 can place any new item after another2866 can place any new item before another2867 behaves like able to move an existing item2868 can place any item betwen two others2869 can place any item after another2870 can place any item before another2871 free_space: 104, index: 1, pos_a: 2, pos_b: 32872 behaves like able to move a new item2873 can place any new item betwen two others2874 can place any new item after another2875 can place any new item before another2876 behaves like able to move an existing item2877 can place any item betwen two others2878 can place any item after another2879 can place any item before another2880 free_space: 104, index: 1, pos_a: 1, pos_b: 32881 behaves like able to move a new item2882 can place any new item betwen two others2883 can place any new item after another2884 can place any new item before another2885 behaves like able to move an existing item2886 can place any item betwen two others2887 can place any item after another2888 can place any item before another2889 free_space: 104, index: 1, pos_a: 1, pos_b: 22890 behaves like able to move a new item2891 can place any new item betwen two others2892 can place any new item after another2893 can place any new item before another2894 behaves like able to move an existing item2895 can place any item betwen two others2896 can place any item after another2897 can place any item before another2898 free_space: 104, index: 1, pos_a: 0, pos_b: 32899 behaves like able to move a new item2900 can place any new item betwen two others2901 can place any new item after another2902 can place any new item before another2903 behaves like able to move an existing item2904 can place any item betwen two others2905 can place any item after another2906 can place any item before another2907 free_space: 104, index: 1, pos_a: 0, pos_b: 22908 behaves like able to move a new item2909 can place any new item betwen two others2910 can place any new item after another2911 can place any new item before another2912 behaves like able to move an existing item2913 can place any item betwen two others2914 can place any item after another2915 can place any item before another2916 free_space: 104, index: 1, pos_a: 0, pos_b: 12917 behaves like able to move a new item2918 can place any new item betwen two others2919 can place any new item after another2920 can place any new item before another2921 behaves like able to move an existing item2922 can place any item betwen two others2923 can place any item after another2924 can place any item before another2925 free_space: 104, index: 0, pos_a: 2, pos_b: 32926 behaves like able to move a new item2927 can place any new item betwen two others2928 can place any new item after another2929 can place any new item before another2930 behaves like able to move an existing item2931 can place any item betwen two others2932 can place any item after another2933 can place any item before another2934 free_space: 104, index: 0, pos_a: 1, pos_b: 32935 behaves like able to move a new item2936 can place any new item betwen two others2937 can place any new item after another2938 can place any new item before another2939 behaves like able to move an existing item2940 can place any item betwen two others2941 can place any item after another2942 can place any item before another2943 free_space: 104, index: 0, pos_a: 1, pos_b: 22944 behaves like able to move a new item2945 can place any new item betwen two others2946 can place any new item after another2947 can place any new item before another2948 behaves like able to move an existing item2949 can place any item betwen two others2950 can place any item after another2951 can place any item before another2952 free_space: 104, index: 0, pos_a: 0, pos_b: 32953 behaves like able to move a new item2954 can place any new item betwen two others2955 can place any new item after another2956 can place any new item before another2957 behaves like able to move an existing item2958 can place any item betwen two others2959 can place any item after another2960 can place any item before another2961 free_space: 104, index: 0, pos_a: 0, pos_b: 22962 behaves like able to move a new item2963 can place any new item betwen two others2964 can place any new item after another2965 can place any new item before another2966 behaves like able to move an existing item2967 can place any item betwen two others2968 can place any item after another2969 can place any item before another2970 free_space: 104, index: 0, pos_a: 0, pos_b: 12971 behaves like able to move a new item2972 can place any new item betwen two others2973 can place any new item after another2974 can place any new item before another2975 behaves like able to move an existing item2976 can place any item betwen two others2977 can place any item after another2978 can place any item before another2979 free_space: 105, index: 3, pos_a: 2, pos_b: 32980 behaves like able to move a new item2981 can place any new item betwen two others2982 can place any new item after another2983 can place any new item before another2984 behaves like able to move an existing item2985 can place any item betwen two others2986 can place any item after another2987 can place any item before another2988 free_space: 105, index: 3, pos_a: 1, pos_b: 32989 behaves like able to move a new item2990 can place any new item betwen two others2991 can place any new item after another2992 can place any new item before another2993 behaves like able to move an existing item2994 can place any item betwen two others2995 can place any item after another2996 can place any item before another2997 free_space: 105, index: 3, pos_a: 1, pos_b: 22998 behaves like able to move a new item2999 can place any new item betwen two others3000 can place any new item after another3001 can place any new item before another3002 behaves like able to move an existing item3003 can place any item betwen two others3004 can place any item after another3005 can place any item before another3006 free_space: 105, index: 3, pos_a: 0, pos_b: 33007 behaves like able to move a new item3008 can place any new item betwen two others3009 can place any new item after another3010 can place any new item before another3011 behaves like able to move an existing item3012 can place any item betwen two others3013 can place any item after another3014 can place any item before another3015 free_space: 105, index: 3, pos_a: 0, pos_b: 23016 behaves like able to move a new item3017 can place any new item betwen two others3018 can place any new item after another3019 can place any new item before another3020 behaves like able to move an existing item3021 can place any item betwen two others3022 can place any item after another3023 can place any item before another3024 free_space: 105, index: 3, pos_a: 0, pos_b: 13025 behaves like able to move a new item3026 can place any new item betwen two others3027 can place any new item after another3028 can place any new item before another3029 behaves like able to move an existing item3030 can place any item betwen two others3031 can place any item after another3032 can place any item before another3033 free_space: 105, index: 2, pos_a: 2, pos_b: 33034 behaves like able to move a new item3035 can place any new item betwen two others3036 can place any new item after another3037 can place any new item before another3038 behaves like able to move an existing item3039 can place any item betwen two others3040 can place any item after another3041 can place any item before another3042 free_space: 105, index: 2, pos_a: 1, pos_b: 33043 behaves like able to move a new item3044 can place any new item betwen two others3045 can place any new item after another3046 can place any new item before another3047 behaves like able to move an existing item3048 can place any item betwen two others3049 can place any item after another3050 can place any item before another3051 free_space: 105, index: 2, pos_a: 1, pos_b: 23052 behaves like able to move a new item3053 can place any new item betwen two others3054 can place any new item after another3055 can place any new item before another3056 behaves like able to move an existing item3057 can place any item betwen two others3058 can place any item after another3059 can place any item before another3060 free_space: 105, index: 2, pos_a: 0, pos_b: 33061 behaves like able to move a new item3062 can place any new item betwen two others3063 can place any new item after another3064 can place any new item before another3065 behaves like able to move an existing item3066 can place any item betwen two others3067 can place any item after another3068 can place any item before another3069 free_space: 105, index: 2, pos_a: 0, pos_b: 23070 behaves like able to move a new item3071 can place any new item betwen two others3072 can place any new item after another3073 can place any new item before another3074 behaves like able to move an existing item3075 can place any item betwen two others3076 can place any item after another3077 can place any item before another3078 free_space: 105, index: 2, pos_a: 0, pos_b: 13079 behaves like able to move a new item3080 can place any new item betwen two others3081 can place any new item after another3082 can place any new item before another3083 behaves like able to move an existing item3084 can place any item betwen two others3085 can place any item after another3086 can place any item before another3087 free_space: 105, index: 1, pos_a: 2, pos_b: 33088 behaves like able to move a new item3089 can place any new item betwen two others3090 can place any new item after another3091 can place any new item before another3092 behaves like able to move an existing item3093 can place any item betwen two others3094 can place any item after another3095 can place any item before another3096 free_space: 105, index: 1, pos_a: 1, pos_b: 33097 behaves like able to move a new item3098 can place any new item betwen two others3099 can place any new item after another3100 can place any new item before another3101 behaves like able to move an existing item3102 can place any item betwen two others3103 can place any item after another3104 can place any item before another3105 free_space: 105, index: 1, pos_a: 1, pos_b: 23106 behaves like able to move a new item3107 can place any new item betwen two others3108 can place any new item after another3109 can place any new item before another3110 behaves like able to move an existing item3111 can place any item betwen two others3112 can place any item after another3113 can place any item before another3114 free_space: 105, index: 1, pos_a: 0, pos_b: 33115 behaves like able to move a new item3116 can place any new item betwen two others3117 can place any new item after another3118 can place any new item before another3119 behaves like able to move an existing item3120 can place any item betwen two others3121 can place any item after another3122 can place any item before another3123 free_space: 105, index: 1, pos_a: 0, pos_b: 23124 behaves like able to move a new item3125 can place any new item betwen two others3126 can place any new item after another3127 can place any new item before another3128 behaves like able to move an existing item3129 can place any item betwen two others3130 can place any item after another3131 can place any item before another3132 free_space: 105, index: 1, pos_a: 0, pos_b: 13133 behaves like able to move a new item3134 can place any new item betwen two others3135 can place any new item after another3136 can place any new item before another3137 behaves like able to move an existing item3138 can place any item betwen two others3139 can place any item after another3140 can place any item before another3141 free_space: 105, index: 0, pos_a: 2, pos_b: 33142 behaves like able to move a new item3143 can place any new item betwen two others3144 can place any new item after another3145 can place any new item before another3146 behaves like able to move an existing item3147 can place any item betwen two others3148 can place any item after another3149 can place any item before another3150 free_space: 105, index: 0, pos_a: 1, pos_b: 33151 behaves like able to move a new item3152 can place any new item betwen two others3153 can place any new item after another3154 can place any new item before another3155 behaves like able to move an existing item3156 can place any item betwen two others3157 can place any item after another3158 can place any item before another3159 free_space: 105, index: 0, pos_a: 1, pos_b: 23160 behaves like able to move a new item3161 can place any new item betwen two others3162 can place any new item after another3163 can place any new item before another3164 behaves like able to move an existing item3165 can place any item betwen two others3166 can place any item after another3167 can place any item before another3168 free_space: 105, index: 0, pos_a: 0, pos_b: 33169 behaves like able to move a new item3170 can place any new item betwen two others3171 can place any new item after another3172 can place any new item before another3173 behaves like able to move an existing item3174 can place any item betwen two others3175 can place any item after another3176 can place any item before another3177 free_space: 105, index: 0, pos_a: 0, pos_b: 23178 behaves like able to move a new item3179 can place any new item betwen two others3180 can place any new item after another3181 can place any new item before another3182 behaves like able to move an existing item3183 can place any item betwen two others3184 can place any item after another3185 can place any item before another3186 free_space: 105, index: 0, pos_a: 0, pos_b: 13187 behaves like able to move a new item3188 can place any new item betwen two others3189 can place any new item after another3190 can place any new item before another3191 behaves like able to move an existing item3192 can place any item betwen two others3193 can place any item after another3194 can place any item before another3195Auth::ContainerRegistryAuthenticationService3196 behaves like a container registry auth service3197 .full_access_token3198 behaves like an accessible3199 has the correct scope3200 behaves like a valid token3201 is expected to include :token3202 is expected to include "access"3203 a expirable3204 for default configuration3205 is expected not to be within 2 of 2023-03-30 11:53:04.811370422 +00003206 for changed configuration3207 is expected to be within 2 of 2023-03-30 11:53:04.848348835 +00003208 behaves like not a container repository factory3209 does not create a new container repository resource3210 .import_access_token3211 has the correct scope3212 behaves like a valid token3213 is expected to include :token3214 is expected to include "access"3215 a expirable3216 for default configuration3217 is expected not to be within 2 of 2023-03-30 11:53:05.072099613 +00003218 for changed configuration3219 is expected to be within 2 of 2023-03-30 11:53:05.113312055 +00003220 behaves like not a container repository factory3221 does not create a new container repository resource3222 .pull_access_token3223 behaves like an accessible3224 has the correct scope3225 behaves like a valid token3226 is expected to include :token3227 is expected to include "access"3228 a expirable3229 for default configuration3230 is expected not to be within 2 of 2023-03-30 11:53:05.534266896 +00003231 for changed configuration3232 is expected to be within 2 of 2023-03-30 11:53:05.574117409 +00003233 behaves like not a container repository factory3234 does not create a new container repository resource3235 .pull_nested_repositories_access_token3236 has the correct scope3237 behaves like a valid token3238 is expected to include :token3239 is expected to include "access"3240 a expirable3241 for default configuration3242 is expected not to be within 2 of 2023-03-30 11:53:05.972185034 +00003243 for changed configuration3244 is expected to be within 2 of 2023-03-30 11:53:06.009898257 +00003245 behaves like not a container repository factory3246 does not create a new container repository resource3247 with path ending with a slash3248 has the correct scope3249 behaves like a valid token3250 is expected to include :token3251 is expected to include "access"3252 a expirable3253 for default configuration3254 is expected not to be within 2 of 2023-03-30 11:53:06.167097758 +00003255 for changed configuration3256 is expected to be within 2 of 2023-03-30 11:53:06.204032890 +00003257 behaves like not a container repository factory3258 does not create a new container repository resource3259 user authorization3260 for registry catalog3261 disallow browsing for users without GitLab admin rights3262 behaves like an inaccessible3263 is expected to include {"access" => []}3264 behaves like a valid token3265 is expected to include :token3266 is expected to include "access"3267 a expirable3268 for default configuration3269 is expected not to be within 2 of 2023-03-30 11:53:06.451972034 +00003270 for changed configuration3271 is expected to be within 2 of 2023-03-30 11:53:06.493524846 +00003272 behaves like not a container repository factory3273 does not create a new container repository resource3274 for private project3275 behaves like private project3276 allow to use scope-less authentication3277 behaves like a valid token3278 is expected to include :token3279 is expected to include "access"3280 a expirable3281 for default configuration3282 is expected not to be within 2 of 2023-03-30 11:53:06.847937100 +00003283 for changed configuration3284 is expected to be within 2 of 2023-03-30 11:53:06.885530943 +00003285 behaves like with auth_type3286 is expected to eq "foo"3287 allow developer to push images3288 behaves like a pushable3289 behaves like an accessible3290 has the correct scope3291 behaves like a valid token3292 is expected to include :token3293 is expected to include "access"3294 a expirable3295 for default configuration3296 is expected not to be within 2 of 2023-03-30 11:53:07.343965186 +00003297 for changed configuration3298 is expected to be within 2 of 2023-03-30 11:53:07.428428160 +00003299 behaves like container repository factory3300 creates a new container repository resource3301 behaves like with auth_type3302 is expected to eq "foo"3303 disallow developer to delete images3304 behaves like an inaccessible3305 is expected to include {"access" => []}3306 behaves like a valid token3307 is expected to include :token3308 is expected to include "access"3309 a expirable3310 for default configuration3311 is expected not to be within 2 of 2023-03-30 11:53:07.949166003 +00003312 for changed configuration3313 is expected to be within 2 of 2023-03-30 11:53:08.023029489 +00003314 behaves like not a container repository factory3315 does not create a new container repository resource3316 behaves like logs an auth warning3317 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace4/project9", :scope_type=>"repository", :user_id=>5, :username=>"user2"}) 1 time3318 disallow developer to delete images since registry 2.73319 behaves like an inaccessible3320 is expected to include {"access" => []}3321 behaves like a valid token3322 is expected to include :token3323 is expected to include "access"3324 a expirable3325 for default configuration3326 is expected not to be within 2 of 2023-03-30 11:53:08.556837559 +00003327 for changed configuration3328 is expected to be within 2 of 2023-03-30 11:53:08.635574894 +00003329 behaves like not a container repository factory3330 does not create a new container repository resource3331 allow reporter to pull images3332 when pulling from root level repository3333 behaves like a pullable3334 behaves like an accessible3335 has the correct scope3336 behaves like a valid token3337 is expected to include :token3338 is expected to include "access"3339 a expirable3340 for default configuration3341 is expected not to be within 2 of 2023-03-30 11:53:09.044854737 +00003342 for changed configuration3343 is expected to be within 2 of 2023-03-30 11:53:09.108472455 +00003344 behaves like not a container repository factory3345 does not create a new container repository resource3346 behaves like with auth_type3347 is expected to eq "foo"3348 disallow reporter to delete images3349 behaves like an inaccessible3350 is expected to include {"access" => []}3351 behaves like a valid token3352 is expected to include :token3353 is expected to include "access"3354 a expirable3355 for default configuration3356 is expected not to be within 2 of 2023-03-30 11:53:09.607848051 +00003357 for changed configuration3358 is expected to be within 2 of 2023-03-30 11:53:09.707859742 +00003359 behaves like not a container repository factory3360 does not create a new container repository resource3361 disallow reporter to delete images since registry 2.73362 behaves like an inaccessible3363 is expected to include {"access" => []}3364 behaves like a valid token3365 is expected to include :token3366 is expected to include "access"3367 a expirable3368 for default configuration3369 is expected not to be within 2 of 2023-03-30 11:53:10.128373243 +00003370 for changed configuration3371 is expected to be within 2 of 2023-03-30 11:53:10.207575738 +00003372 behaves like not a container repository factory3373 does not create a new container repository resource3374 return a least of privileges3375 behaves like a pullable3376 behaves like an accessible3377 has the correct scope3378 behaves like a valid token3379 is expected to include :token3380 is expected to include "access"3381 a expirable3382 for default configuration3383 is expected not to be within 2 of 2023-03-30 11:53:10.700049006 +00003384 for changed configuration3385 is expected to be within 2 of 2023-03-30 11:53:10.786285760 +00003386 behaves like not a container repository factory3387 does not create a new container repository resource3388 behaves like with auth_type3389 is expected to eq "foo"3390 disallow guest to pull or push images3391 behaves like an inaccessible3392 is expected to include {"access" => []}3393 behaves like a valid token3394 is expected to include :token3395 is expected to include "access"3396 a expirable3397 for default configuration3398 is expected not to be within 2 of 2023-03-30 11:53:11.365799131 +00003399 for changed configuration3400 is expected to be within 2 of 2023-03-30 11:53:11.489110538 +00003401 behaves like not a container repository factory3402 does not create a new container repository resource3403 disallow guest to delete images3404 behaves like an inaccessible3405 is expected to include {"access" => []}3406 behaves like a valid token3407 is expected to include :token3408 is expected to include "access"3409 a expirable3410 for default configuration3411 is expected not to be within 2 of 2023-03-30 11:53:11.946814642 +00003412 for changed configuration3413 is expected to be within 2 of 2023-03-30 11:53:12.033873896 +00003414 behaves like not a container repository factory3415 does not create a new container repository resource3416 disallow guest to delete images since registry 2.73417 behaves like an inaccessible3418 is expected to include {"access" => []}3419 behaves like a valid token3420 is expected to include :token3421 is expected to include "access"3422 a expirable3423 for default configuration3424 is expected not to be within 2 of 2023-03-30 11:53:12.466734534 +00003425 for changed configuration3426 is expected to be within 2 of 2023-03-30 11:53:12.547614329 +00003427 behaves like not a container repository factory3428 does not create a new container repository resource3429 for public project with private container registry3430 behaves like private project3431 allow to use scope-less authentication3432 behaves like a valid token3433 is expected to include :token3434 is expected to include "access"3435 a expirable3436 for default configuration3437 is expected not to be within 2 of 2023-03-30 11:53:12.992634435 +00003438 for changed configuration3439 is expected to be within 2 of 2023-03-30 11:53:13.032677638 +00003440 behaves like with auth_type3441 is expected to eq "foo"3442 allow developer to push images3443 behaves like a pushable3444 behaves like an accessible3445 has the correct scope3446 behaves like a valid token3447 is expected to include :token3448 is expected to include "access"3449 a expirable3450 for default configuration3451 is expected not to be within 2 of 2023-03-30 11:53:13.464407017 +00003452 for changed configuration3453 is expected to be within 2 of 2023-03-30 11:53:13.551837500 +00003454 behaves like container repository factory3455 creates a new container repository resource3456 behaves like with auth_type3457 is expected to eq "foo"3458 disallow developer to delete images3459 behaves like an inaccessible3460 is expected to include {"access" => []}3461 behaves like a valid token3462 is expected to include :token3463 is expected to include "access"3464 a expirable3465 for default configuration3466 is expected not to be within 2 of 2023-03-30 11:53:14.077859202 +00003467 for changed configuration3468 is expected to be within 2 of 2023-03-30 11:53:14.151681058 +00003469 behaves like not a container repository factory3470 does not create a new container repository resource3471 behaves like logs an auth warning3472 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ed_project_path=>"namespace5/project10", :scope_type=>"repository", :user_id=>5, :username=>"user2"}) 1 time3473 disallow developer to delete images since registry 2.73474 behaves like an inaccessible3475 is expected to include {"access" => []}3476 behaves like a valid token3477 is expected to include :token3478 is expected to include "access"3479 a expirable3480 for default configuration3481 is expected not to be within 2 of 2023-03-30 11:53:14.655546153 +00003482 for changed configuration3483 is expected to be within 2 of 2023-03-30 11:53:14.763458163 +00003484 behaves like not a container repository factory3485 does not create a new container repository resource3486 allow reporter to pull images3487 when pulling from root level repository3488 behaves like a pullable3489 behaves like an accessible3490 has the correct scope3491 behaves like a valid token3492 is expected to include :token3493 is expected to include "access"3494 a expirable3495 for default configuration3496 is expected not to be within 2 of 2023-03-30 11:53:15.167395797 +00003497 for changed configuration3498 is expected to be within 2 of 2023-03-30 11:53:15.234822284 +00003499 behaves like not a container repository factory3500 does not create a new container repository resource3501 behaves like with auth_type3502 is expected to eq "foo"3503 disallow reporter to delete images3504 behaves like an inaccessible3505 is expected to include {"access" => []}3506 behaves like a valid token3507 is expected to include :token3508 is expected to include "access"3509 a expirable3510 for default configuration3511 is expected not to be within 2 of 2023-03-30 11:53:15.746932188 +00003512 for changed configuration3513 is expected to be within 2 of 2023-03-30 11:53:15.829244003 +00003514 behaves like not a container repository factory3515 does not create a new container repository resource3516 disallow reporter to delete images since registry 2.73517 behaves like an inaccessible3518 is expected to include {"access" => []}3519 behaves like a valid token3520 is expected to include :token3521 is expected to include "access"3522 a expirable3523 for default configuration3524 is expected not to be within 2 of 2023-03-30 11:53:16.257612062 +00003525 for changed configuration3526 is expected to be within 2 of 2023-03-30 11:53:16.368683561 +00003527 behaves like not a container repository factory3528 does not create a new container repository resource3529 return a least of privileges3530 behaves like a pullable3531 behaves like an accessible3532 has the correct scope3533 behaves like a valid token3534 is expected to include :token3535 is expected to include "access"3536 a expirable3537 for default configuration3538 is expected not to be within 2 of 2023-03-30 11:53:16.848055301 +00003539 for changed configuration3540 is expected to be within 2 of 2023-03-30 11:53:16.936275125 +00003541 behaves like not a container repository factory3542 does not create a new container repository resource3543 behaves like with auth_type3544 is expected to eq "foo"3545 disallow guest to pull or push images3546 behaves like an inaccessible3547 is expected to include {"access" => []}3548 behaves like a valid token3549 is expected to include :token3550 is expected to include "access"3551 a expirable3552 for default configuration3553 is expected not to be within 2 of 2023-03-30 11:53:17.390156120 +00003554 for changed configuration3555 is expected to be within 2 of 2023-03-30 11:53:17.453120538 +00003556 behaves like not a container repository factory3557 does not create a new container repository resource3558 disallow guest to delete images3559 behaves like an inaccessible3560 is expected to include {"access" => []}3561 behaves like a valid token3562 is expected to include :token3563 is expected to include "access"3564 a expirable3565 for default configuration3566 is expected not to be within 2 of 2023-03-30 11:53:17.854950922 +00003567 for changed configuration3568 is expected to be within 2 of 2023-03-30 11:53:17.926039829 +00003569 behaves like not a container repository factory3570 does not create a new container repository resource3571 disallow guest to delete images since registry 2.73572 behaves like an inaccessible3573 is expected to include {"access" => []}3574 behaves like a valid token3575 is expected to include :token3576 is expected to include "access"3577 a expirable3578 for default configuration3579 is expected not to be within 2 of 2023-03-30 11:53:18.300159479 +00003580 for changed configuration3581 is expected to be within 2 of 2023-03-30 11:53:18.365418516 +00003582 behaves like not a container repository factory3583 does not create a new container repository resource3584 for public project with container_registry `enabled`3585 allow anyone to pull images3586 behaves like a pullable3587 behaves like an accessible3588 has the correct scope3589 behaves like a valid token3590 is expected to include :token3591 is expected to include "access"3592 a expirable3593 for default configuration3594 is expected not to be within 2 of 2023-03-30 11:53:18.862629093 +00003595 for changed configuration3596 is expected to be within 2 of 2023-03-30 11:53:18.917674123 +00003597 behaves like not a container repository factory3598 does not create a new container repository resource3599 behaves like with auth_type3600 is expected to eq "foo"3601 disallow anyone to push images3602 behaves like an inaccessible3603 is expected to include {"access" => []}3604 behaves like a valid token3605 is expected to include :token3606 is expected to include "access"3607 a expirable3608 for default configuration3609 is expected not to be within 2 of 2023-03-30 11:53:19.252942680 +00003610 for changed configuration3611 is expected to be within 2 of 2023-03-30 11:53:19.345119452 +00003612 behaves like not a container repository factory3613 does not create a new container repository resource3614 disallow anyone to delete images3615 behaves like an inaccessible3616 is expected to include {"access" => []}3617 behaves like a valid token3618 is expected to include :token3619 is expected to include "access"3620 a expirable3621 for default configuration3622 is expected not to be within 2 of 2023-03-30 11:53:19.670134891 +00003623 for changed configuration3624 is expected to be within 2 of 2023-03-30 11:53:19.742993618 +00003625 behaves like not a container repository factory3626 does not create a new container repository resource3627 disallow anyone to delete images since registry 2.73628 behaves like an inaccessible3629 is expected to include {"access" => []}3630 behaves like a valid token3631 is expected to include :token3632 is expected to include "access"3633 a expirable3634 for default configuration3635 is expected not to be within 2 of 2023-03-30 11:53:20.075811225 +00003636 for changed configuration3637 is expected to be within 2 of 2023-03-30 11:53:20.147126152 +00003638 behaves like not a container repository factory3639 does not create a new container repository resource3640 when repository name is invalid3641 behaves like an inaccessible3642 is expected to include {"access" => []}3643 behaves like a valid token3644 is expected to include :token3645 is expected to include "access"3646 a expirable3647 for default configuration3648 is expected not to be within 2 of 2023-03-30 11:53:20.345070905 +00003649 for changed configuration3650 is expected to be within 2 of 2023-03-30 11:53:20.384271407 +00003651 behaves like not a container repository factory3652 does not create a new container repository resource3653 for internal project with container_registry `enabled`3654 for internal user3655 allow anyone to pull images3656 behaves like a pullable3657 behaves like an accessible3658 has the correct scope3659 behaves like a valid token3660 is expected to include :token3661 is expected to include "access"3662 a expirable3663 for default configuration3664 is expected not to be within 2 of 2023-03-30 11:53:20.882990354 +00003665 for changed configuration3666 is expected to be within 2 of 2023-03-30 11:53:20.942904312 +00003667 behaves like not a container repository factory3668 does not create a new container repository resource3669 behaves like with auth_type3670 is expected to eq "foo"3671 disallow anyone to push images3672 behaves like an inaccessible3673 is expected to include {"access" => []}3674 behaves like a valid token3675 is expected to include :token3676 is expected to include "access"3677 a expirable3678 for default configuration3679 is expected not to be within 2 of 2023-03-30 11:53:21.293129556 +00003680 for changed configuration3681 is expected to be within 2 of 2023-03-30 11:53:21.366608703 +00003682 behaves like not a container repository factory3683 does not create a new container repository resource3684 disallow anyone to delete images3685 behaves like an inaccessible3686 is expected to include {"access" => []}3687 behaves like a valid token3688 is expected to include :token3689 is expected to include "access"3690 a expirable3691 for default configuration3692 is expected not to be within 2 of 2023-03-30 11:53:21.681579773 +00003693 for changed configuration3694 is expected to be within 2 of 2023-03-30 11:53:21.746015062 +00003695 behaves like not a container repository factory3696 does not create a new container repository resource3697 disallow anyone to delete images since registry 2.73698 behaves like an inaccessible3699 is expected to include {"access" => []}3700 behaves like a valid token3701 is expected to include :token3702 is expected to include "access"3703 a expirable3704 for default configuration3705 is expected not to be within 2 of 2023-03-30 11:53:22.101043065 +00003706 for changed configuration3707 is expected to be within 2 of 2023-03-30 11:53:22.170185072 +00003708 behaves like not a container repository factory3709 does not create a new container repository resource3710 for external user3711 disallow anyone to pull or push images3712 behaves like an inaccessible3713 is expected to include {"access" => []}3714 behaves like a valid token3715 is expected to include :token3716 is expected to include "access"3717 a expirable3718 for default configuration3719 is expected not to be within 2 of 2023-03-30 11:53:22.574453916 +00003720 for changed configuration3721 is expected to be within 2 of 2023-03-30 11:53:22.650801802 +00003722 behaves like not a container repository factory3723 does not create a new container repository resource3724 disallow anyone to delete images3725 behaves like an inaccessible3726 is expected to include {"access" => []}3727 behaves like a valid token3728 is expected to include :token3729 is expected to include "access"3730 a expirable3731 for default configuration3732 is expected not to be within 2 of 2023-03-30 11:53:23.055680735 +00003733 for changed configuration3734 is expected to be within 2 of 2023-03-30 11:53:23.127939782 +00003735 behaves like not a container repository factory3736 does not create a new container repository resource3737 disallow anyone to delete images since registry 2.73738 behaves like an inaccessible3739 is expected to include {"access" => []}3740 behaves like a valid token3741 is expected to include :token3742 is expected to include "access"3743 a expirable3744 for default configuration3745 is expected not to be within 2 of 2023-03-30 11:53:23.546231893 +00003746 for changed configuration3747 is expected to be within 2 of 2023-03-30 11:53:23.614973690 +00003748 behaves like not a container repository factory3749 does not create a new container repository resource3750 for internal project with private container registry3751 behaves like private project3752 allow to use scope-less authentication3753 behaves like a valid token3754 is expected to include :token3755 is expected to include "access"3756 a expirable3757 for default configuration3758 is expected not to be within 2 of 2023-03-30 11:53:23.978984242 +00003759 for changed configuration3760 is expected to be within 2 of 2023-03-30 11:53:24.019581994 +00003761 behaves like with auth_type3762 is expected to eq "foo"3763 allow developer to push images3764 behaves like a pushable3765 behaves like an accessible3766 has the correct scope3767 behaves like a valid token3768 is expected to include :token3769 is expected to include "access"3770 a expirable3771 for default configuration3772 is expected not to be within 2 of 2023-03-30 11:53:24.445852294 +00003773 for changed configuration3774 is expected to be within 2 of 2023-03-30 11:53:24.527943399 +00003775 behaves like container repository factory3776 creates a new container repository resource3777 behaves like with auth_type3778 is expected to eq "foo"3779 disallow developer to delete images3780 behaves like an inaccessible3781 is expected to include {"access" => []}3782 behaves like a valid token3783 is expected to include :token3784 is expected to include "access"3785 a expirable3786 for default configuration3787 is expected not to be within 2 of 2023-03-30 11:53:25.051716161 +00003788 for changed configuration3789 is expected to be within 2 of 2023-03-30 11:53:25.136287555 +00003790 behaves like not a container repository factory3791 does not create a new container repository resource3792 behaves like logs an auth warning3793 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ed_project_path=>"namespace8/project13", :scope_type=>"repository", :user_id=>5, :username=>"user2"}) 1 time3794 disallow developer to delete images since registry 2.73795 behaves like an inaccessible3796 is expected to include {"access" => []}3797 behaves like a valid token3798 is expected to include :token3799 is expected to include "access"3800 a expirable3801 for default configuration3802 is expected not to be within 2 of 2023-03-30 11:53:25.669424334 +00003803 for changed configuration3804 is expected to be within 2 of 2023-03-30 11:53:25.751363989 +00003805 behaves like not a container repository factory3806 does not create a new container repository resource3807 allow reporter to pull images3808 when pulling from root level repository3809 behaves like a pullable3810 behaves like an accessible3811 has the correct scope3812 behaves like a valid token3813 is expected to include :token3814 is expected to include "access"3815 a expirable3816 for default configuration3817 is expected not to be within 2 of 2023-03-30 11:53:26.177354769 +00003818 for changed configuration3819 is expected to be within 2 of 2023-03-30 11:53:26.246275646 +00003820 behaves like not a container repository factory3821 does not create a new container repository resource3822 behaves like with auth_type3823 is expected to eq "foo"3824 disallow reporter to delete images3825 behaves like an inaccessible3826 is expected to include {"access" => []}3827 behaves like a valid token3828 is expected to include :token3829 is expected to include "access"3830 a expirable3831 for default configuration3832 is expected not to be within 2 of 2023-03-30 11:53:26.765288019 +00003833 for changed configuration3834 is expected to be within 2 of 2023-03-30 11:53:26.843898404 +00003835 behaves like not a container repository factory3836 does not create a new container repository resource3837 disallow reporter to delete images since registry 2.73838 behaves like an inaccessible3839 is expected to include {"access" => []}3840 behaves like a valid token3841 is expected to include :token3842 is expected to include "access"3843 a expirable3844 for default configuration3845 is expected not to be within 2 of 2023-03-30 11:53:27.284603711 +00003846 for changed configuration3847 is expected to be within 2 of 2023-03-30 11:53:27.370253645 +00003848 behaves like not a container repository factory3849 does not create a new container repository resource3850 return a least of privileges3851 behaves like a pullable3852 behaves like an accessible3853 has the correct scope3854 behaves like a valid token3855 is expected to include :token3856 is expected to include "access"3857 a expirable3858 for default configuration3859 is expected not to be within 2 of 2023-03-30 11:53:27.850627245 +00003860 for changed configuration3861 is expected to be within 2 of 2023-03-30 11:53:27.931079989 +00003862 behaves like not a container repository factory3863 does not create a new container repository resource3864 behaves like with auth_type3865 is expected to eq "foo"3866 disallow guest to pull or push images3867 behaves like an inaccessible3868 is expected to include {"access" => []}3869 behaves like a valid token3870 is expected to include :token3871 is expected to include "access"3872 a expirable3873 for default configuration3874 is expected not to be within 2 of 2023-03-30 11:53:28.448588062 +00003875 for changed configuration3876 is expected to be within 2 of 2023-03-30 11:53:28.508603691 +00003877 behaves like not a container repository factory3878 does not create a new container repository resource3879 disallow guest to delete images3880 behaves like an inaccessible3881 is expected to include {"access" => []}3882 behaves like a valid token3883 is expected to include :token3884 is expected to include "access"3885 a expirable3886 for default configuration3887 is expected not to be within 2 of 2023-03-30 11:53:28.856501236 +00003888 for changed configuration3889 is expected to be within 2 of 2023-03-30 11:53:28.921949554 +00003890 behaves like not a container repository factory3891 does not create a new container repository resource3892 disallow guest to delete images since registry 2.73893 behaves like an inaccessible3894 is expected to include {"access" => []}3895 behaves like a valid token3896 is expected to include :token3897 is expected to include "access"3898 a expirable3899 for default configuration3900 is expected not to be within 2 of 2023-03-30 11:53:29.297475403 +00003901 for changed configuration3902 is expected to be within 2 of 2023-03-30 11:53:29.361859151 +00003903 behaves like not a container repository factory3904 does not create a new container repository resource3905 delete authorized as maintainer3906 behaves like allowed to delete container repository images3907 behaves like a valid token3908 is expected to include :token3909 is expected to include "access"3910 a expirable3911 for default configuration3912 is expected not to be within 2 of 2023-03-30 11:53:29.881079013 +00003913 for changed configuration3914 is expected to be within 2 of 2023-03-30 11:53:29.921118676 +00003915 allow to delete images3916 behaves like a deletable3917 behaves like an accessible3918 has the correct scope3919 behaves like a valid token3920 is expected to include :token3921 is expected to include "access"3922 a expirable3923 for default configuration3924 is expected not to be within 2 of 2023-03-30 11:53:30.144450274 +00003925 for changed configuration3926 is expected to be within 2 of 2023-03-30 11:53:30.208371842 +00003927 allow to delete images since registry 2.73928 behaves like a deletable since registry 2.73929 behaves like an accessible3930 has the correct scope3931 behaves like a valid token3932 is expected to include :token3933 is expected to include "access"3934 a expirable3935 for default configuration3936 is expected not to be within 2 of 2023-03-30 11:53:30.438193739 +00003937 for changed configuration3938 is expected to be within 2 of 2023-03-30 11:53:30.502914886 +00003939 build authorized as user3940 allow to use offline_token3941 behaves like an authenticated3942 is expected to include :token3943 is expected to include "access"3944 behaves like a valid token3945 is expected to include :token3946 is expected to include "access"3947 a expirable3948 for default configuration3949 is expected not to be within 2 of 2023-03-30 11:53:31.023374579 +00003950 for changed configuration3951 is expected to be within 2 of 2023-03-30 11:53:31.061693802 +00003952 behaves like with auth_type3953 is expected to eq "foo"3954 allow to pull and push images3955 behaves like a pullable and pushable3956 behaves like an accessible3957 has the correct scope3958 behaves like a valid token3959 is expected to include :token3960 is expected to include "access"3961 a expirable3962 for default configuration3963 is expected not to be within 2 of 2023-03-30 11:53:31.341149439 +00003964 for changed configuration3965 is expected to be within 2 of 2023-03-30 11:53:31.410033976 +00003966 behaves like container repository factory3967 creates a new container repository resource3968 allow to delete images since registry 2.73969 behaves like a deletable since registry 2.73970 behaves like an accessible3971 has the correct scope3972 behaves like a valid token3973 is expected to include :token3974 is expected to include "access"3975 a expirable3976 for default configuration3977 is expected not to be within 2 of 2023-03-30 11:53:31.686656736 +00003978 for changed configuration3979 is expected to be within 2 of 2023-03-30 11:53:31.745463885 +00003980 disallow to delete images3981 behaves like an inaccessible3982 is expected to include {"access" => []}3983 behaves like a valid token3984 is expected to include :token3985 is expected to include "access"3986 a expirable3987 for default configuration3988 is expected not to be within 2 of 2023-03-30 11:53:31.950273530 +00003989 for changed configuration3990 is expected to be within 2 of 2023-03-30 11:53:32.003904691 +00003991 for other projects3992 when pulling3993 allow for public3994 behaves like a pullable3995 behaves like an accessible3996 has the correct scope3997 behaves like a valid token3998 is expected to include :token3999 is expected to include "access"4000 a expirable4001 for default configuration4002 is expected not to be within 2 of 2023-03-30 11:53:32.424812787 +00004003 for changed configuration4004 is expected to be within 2 of 2023-03-30 11:53:32.482361487 +00004005 behaves like not a container repository factory4006 does not create a new container repository resource4007 for private4008 behaves like pullable for being team member4009 when you are not member4010 behaves like an inaccessible4011 is expected to include {"access" => []}4012 behaves like a valid token4013 is expected to include :token4014 is expected to include "access"4015 a expirable4016 for default configuration4017 is expected not to be within 2 of 2023-03-30 11:53:32.970201043 +00004018 for changed configuration4019 is expected to be within 2 of 2023-03-30 11:53:33.029746962 +00004020 behaves like not a container repository factory4021 does not create a new container repository resource4022 when you are member4023 behaves like a pullable4024 behaves like an accessible4025 has the correct scope4026 behaves like a valid token4027 is expected to include :token4028 is expected to include "access"4029 a expirable4030 for default configuration4031 is expected not to be within 2 of 2023-03-30 11:53:33.390884370 +00004032 for changed configuration4033 is expected to be within 2 of 2023-03-30 11:53:33.454751679 +00004034 behaves like not a container repository factory4035 does not create a new container repository resource4036 when you are owner4037 behaves like a pullable4038 behaves like an accessible4039 has the correct scope4040 behaves like a valid token4041 is expected to include :token4042 is expected to include "access"4043 a expirable4044 for default configuration4045 is expected not to be within 2 of 2023-03-30 11:53:33.915142538 +00004046 for changed configuration4047 is expected to be within 2 of 2023-03-30 11:53:33.977149018 +00004048 behaves like not a container repository factory4049 does not create a new container repository resource4050 when you are admin4051 when you are not member4052 behaves like an inaccessible4053 is expected to include {"access" => []}4054 behaves like a valid token4055 is expected to include :token4056 is expected to include "access"4057 a expirable4058 for default configuration4059 is expected not to be within 2 of 2023-03-30 11:53:34.288011614 +00004060 for changed configuration4061 is expected to be within 2 of 2023-03-30 11:53:34.347446523 +00004062 behaves like not a container repository factory4063 does not create a new container repository resource4064 when you are member4065 behaves like a pullable4066 behaves like an accessible4067 has the correct scope4068 behaves like a valid token4069 is expected to include :token4070 is expected to include "access"4071 a expirable4072 for default configuration4073 is expected not to be within 2 of 2023-03-30 11:53:34.716265149 +00004074 for changed configuration4075 is expected to be within 2 of 2023-03-30 11:53:34.781597038 +00004076 behaves like not a container repository factory4077 does not create a new container repository resource4078 when you are owner4079 behaves like a pullable4080 behaves like an accessible4081 has the correct scope4082 behaves like a valid token4083 is expected to include :token4084 is expected to include "access"4085 a expirable4086 for default configuration4087 is expected not to be within 2 of 2023-03-30 11:53:35.286184850 +00004088 for changed configuration4089 is expected to be within 2 of 2023-03-30 11:53:35.358261418 +00004090 behaves like not a container repository factory4091 does not create a new container repository resource4092 for public project with private container registry4093 behaves like pullable for being team member4094 when you are not member4095 behaves like an inaccessible4096 is expected to include {"access" => []}4097 behaves like a valid token4098 is expected to include :token4099 is expected to include "access"4100 a expirable4101 for default configuration4102 is expected not to be within 2 of 2023-03-30 11:53:35.876658008 +00004103 for changed configuration4104 is expected to be within 2 of 2023-03-30 11:53:35.939725917 +00004105 behaves like not a container repository factory4106 does not create a new container repository resource4107 when you are member4108 behaves like a pullable4109 behaves like an accessible4110 has the correct scope4111 behaves like a valid token4112 is expected to include :token4113 is expected to include "access"4114 a expirable4115 for default configuration4116 is expected not to be within 2 of 2023-03-30 11:53:36.313085042 +00004117 for changed configuration4118 is expected to be within 2 of 2023-03-30 11:53:36.385030450 +00004119 behaves like not a container repository factory4120 does not create a new container repository resource4121 when you are owner4122 behaves like a pullable4123 behaves like an accessible4124 has the correct scope4125 behaves like a valid token4126 is expected to include :token4127 is expected to include "access"4128 a expirable4129 for default configuration4130 is expected not to be within 2 of 2023-03-30 11:53:36.877017664 +00004131 for changed configuration4132 is expected to be within 2 of 2023-03-30 11:53:36.947432312 +00004133 behaves like not a container repository factory4134 does not create a new container repository resource4135 when you are admin4136 behaves like pullable for being team member4137 when you are not member4138 behaves like an inaccessible4139 is expected to include {"access" => []}4140 behaves like a valid token4141 is expected to include :token4142 is expected to include "access"4143 a expirable4144 for default configuration4145 is expected not to be within 2 of 2023-03-30 11:53:37.311439309 +00004146 for changed configuration4147 is expected to be within 2 of 2023-03-30 11:53:37.377106007 +00004148 behaves like not a container repository factory4149 does not create a new container repository resource4150 when you are member4151 behaves like a pullable4152 behaves like an accessible4153 has the correct scope4154 behaves like a valid token4155 is expected to include :token4156 is expected to include "access"4157 a expirable4158 for default configuration4159 is expected not to be within 2 of 2023-03-30 11:53:37.789164076 +00004160 for changed configuration4161 is expected to be within 2 of 2023-03-30 11:53:37.888280138 +00004162 behaves like not a container repository factory4163 does not create a new container repository resource4164 when you are owner4165 behaves like a pullable4166 behaves like an accessible4167 has the correct scope4168 behaves like a valid token4169 is expected to include :token4170 is expected to include "access"4171 a expirable4172 for default configuration4173 is expected not to be within 2 of 2023-03-30 11:53:38.324049293 +00004174 for changed configuration4175 is expected to be within 2 of 2023-03-30 11:53:38.389648121 +00004176 behaves like not a container repository factory4177 does not create a new container repository resource4178 when pushing4179 disallow for all4180 when you are member4181 behaves like an inaccessible4182 is expected to include {"access" => []}4183 behaves like a valid token4184 is expected to include :token4185 is expected to include "access"4186 a expirable4187 for default configuration4188 is expected not to be within 2 of 2023-03-30 11:53:38.936952686 +00004189 for changed configuration4190 is expected to be within 2 of 2023-03-30 11:53:38.992150666 +00004191 behaves like not a container repository factory4192 does not create a new container repository resource4193 when you are owner4194 behaves like an inaccessible4195 is expected to include {"access" => []}4196 behaves like a valid token4197 is expected to include :token4198 is expected to include "access"4199 a expirable4200 for default configuration4201 is expected not to be within 2 of 2023-03-30 11:53:39.394400707 +00004202 for changed configuration4203 is expected to be within 2 of 2023-03-30 11:53:39.451480727 +00004204 behaves like not a container repository factory4205 does not create a new container repository resource4206 for project without container registry4207 disallow when pulling4208 behaves like an inaccessible4209 is expected to include {"access" => []}4210 behaves like a valid token4211 is expected to include :token4212 is expected to include "access"4213 a expirable4214 for default configuration4215 is expected not to be within 2 of 2023-03-30 11:53:39.953245720 +00004216 for changed configuration4217 is expected to be within 2 of 2023-03-30 11:53:40.014101879 +00004218 behaves like not a container repository factory4219 does not create a new container repository resource4220 for project that disables repository4221 disallow when pulling4222 behaves like an inaccessible4223 is expected to include {"access" => []}4224 behaves like a valid token4225 is expected to include :token4226 is expected to include "access"4227 a expirable4228 for default configuration4229 is expected not to be within 2 of 2023-03-30 11:53:40.501913214 +00004230 for changed configuration4231 is expected to be within 2 of 2023-03-30 11:53:40.556276045 +00004232 behaves like not a container repository factory4233 does not create a new container repository resource4234 registry catalog browsing authorized as admin4235 behaves like a browsable4236 has the correct scope4237 behaves like a valid token4238 is expected to include :token4239 is expected to include "access"4240 a expirable4241 for default configuration4242 is expected not to be within 2 of 2023-03-30 11:53:41.059267057 +00004243 for changed configuration4244 is expected to be within 2 of 2023-03-30 11:53:41.096378081 +00004245 behaves like not a container repository factory4246 does not create a new container repository resource4247 support for multiple scopes4248 user has access to all projects4249 behaves like a browsable4250 has the correct scope4251 behaves like a valid token4252 is expected to include :token4253 is expected to include "access"4254 a expirable4255 for default configuration4256 is expected not to be within 2 of 2023-03-30 11:53:42.560001617 +00004257 for changed configuration4258 is expected to be within 2 of 2023-03-30 11:53:42.711316770 +00004259 behaves like not a container repository factory4260 does not create a new container repository resource4261 user only has access to internal and public projects4262 behaves like a browsable4263 has the correct scope4264 behaves like a valid token4265 is expected to include :token4266 is expected to include "access"4267 a expirable4268 for default configuration4269 is expected not to be within 2 of 2023-03-30 11:53:43.361950008 +00004270 for changed configuration4271 is expected to be within 2 of 2023-03-30 11:53:43.490372835 +00004272 behaves like not a container repository factory4273 does not create a new container repository resource4274 anonymous user has access only to public project4275 behaves like a browsable4276 has the correct scope4277 behaves like a valid token4278 is expected to include :token4279 is expected to include "access"4280 a expirable4281 for default configuration4282 is expected not to be within 2 of 2023-03-30 11:53:44.015012244 +00004283 for changed configuration4284 is expected to be within 2 of 2023-03-30 11:53:44.508002048 +00004285 behaves like not a container repository factory4286 does not create a new container repository resource4287 with no public container registry4288 behaves like a forbidden4289 is expected to include {:http_status => 403}4290 is expected not to include :token4291 unauthorized4292 disallow to use scope-less authentication4293 behaves like a forbidden4294 is expected to include {:http_status => 403}4295 is expected not to include :token4296 behaves like not a container repository factory4297 does not create a new container repository resource4298 for invalid scope4299 behaves like a forbidden4300 is expected to include {:http_status => 403}4301 is expected not to include :token4302 behaves like not a container repository factory4303 does not create a new container repository resource4304 for private project4305 behaves like a forbidden4306 is expected to include {:http_status => 403}4307 is expected not to include :token4308 for public project with container registry `enabled`4309 when pulling and pushing4310 behaves like a pullable4311 behaves like an accessible4312 has the correct scope4313 behaves like a valid token4314 is expected to include :token4315 is expected to include "access"4316 a expirable4317 for default configuration4318 is expected not to be within 2 of 2023-03-30 11:53:46.439070573 +00004319 for changed configuration4320 is expected to be within 2 of 2023-03-30 11:53:46.526304277 +00004321 behaves like not a container repository factory4322 does not create a new container repository resource4323 when pushing4324 behaves like a forbidden4325 is expected to include {:http_status => 403}4326 is expected not to include :token4327 behaves like not a container repository factory4328 does not create a new container repository resource4329 for public project with container registry `private`4330 when pulling and pushing4331 behaves like a forbidden4332 is expected to include {:http_status => 403}4333 is expected not to include :token4334 behaves like not a container repository factory4335 does not create a new container repository resource4336 for registry catalog4337 behaves like a forbidden4338 is expected to include {:http_status => 403}4339 is expected not to include :token4340 behaves like not a container repository factory4341 does not create a new container repository resource4342 for deploy tokens4343 when deploy token has read and write registry as scopes4344 for public project4345 when pulling4346 behaves like a pullable4347 behaves like an accessible4348 has the correct scope4349 behaves like a valid token4350 is expected to include :token4351 is expected to include "access"4352 a expirable4353 for default configuration4354 is expected not to be within 2 of 2023-03-30 11:53:47.884477631 +00004355 for changed configuration4356 is expected to be within 2 of 2023-03-30 11:53:47.973655296 +00004357 when pushing4358 behaves like a pushable4359 behaves like an accessible4360 has the correct scope4361 behaves like a valid token4362 is expected to include :token4363 is expected to include "access"4364 a expirable4365 for default configuration4366 is expected not to be within 2 of 2023-03-30 11:53:48.433658106 +00004367 for changed configuration4368 is expected to be within 2 of 2023-03-30 11:53:48.587452690 +00004369 behaves like able to login4370 registry provides read_container_image authentication_abilities4371 is expected to eq "deploy_token"4372 behaves like an authenticated4373 is expected to include :token4374 is expected to include "access"4375 for internal project4376 when pulling4377 behaves like a pullable4378 behaves like an accessible4379 has the correct scope4380 behaves like a valid token4381 is expected to include :token4382 is expected to include "access"4383 a expirable4384 for default configuration4385 is expected not to be within 2 of 2023-03-30 11:53:49.390912990 +00004386 for changed configuration4387 is expected to be within 2 of 2023-03-30 11:53:49.492994432 +00004388 when pushing4389 behaves like a pushable4390 behaves like an accessible4391 has the correct scope4392 behaves like a valid token4393 is expected to include :token4394 is expected to include "access"4395 a expirable4396 for default configuration4397 is expected not to be within 2 of 2023-03-30 11:53:49.919094808 +00004398 for changed configuration4399 is expected to be within 2 of 2023-03-30 11:53:50.023386140 +00004400 behaves like able to login4401 registry provides read_container_image authentication_abilities4402 is expected to eq "deploy_token"4403 behaves like an authenticated4404 is expected to include :token4405 is expected to include "access"4406 for private project4407 when pulling4408 behaves like a pullable4409 behaves like an accessible4410 has the correct scope4411 behaves like a valid token4412 is expected to include :token4413 is expected to include "access"4414 a expirable4415 for default configuration4416 is expected not to be within 2 of 2023-03-30 11:53:50.842224517 +00004417 for changed configuration4418 is expected to be within 2 of 2023-03-30 11:53:50.933512462 +00004419 when pushing4420 behaves like a pushable4421 behaves like an accessible4422 has the correct scope4423 behaves like a valid token4424 is expected to include :token4425 is expected to include "access"4426 a expirable4427 for default configuration4428 is expected not to be within 2 of 2023-03-30 11:53:51.350102879 +00004429 for changed configuration4430 is expected to be within 2 of 2023-03-30 11:53:51.460540270 +00004431 behaves like able to login4432 registry provides read_container_image authentication_abilities4433 is expected to eq "deploy_token"4434 behaves like an authenticated4435 is expected to include :token4436 is expected to include "access"4437 for public project with private container registry4438 when pulling4439 behaves like a pullable4440 behaves like an accessible4441 has the correct scope4442 behaves like a valid token4443 is expected to include :token4444 is expected to include "access"4445 a expirable4446 for default configuration4447 is expected not to be within 2 of 2023-03-30 11:53:52.366023963 +00004448 for changed configuration4449 is expected to be within 2 of 2023-03-30 11:53:52.479819633 +00004450 when pushing4451 behaves like a pushable4452 behaves like an accessible4453 has the correct scope4454 behaves like a valid token4455 is expected to include :token4456 is expected to include "access"4457 a expirable4458 for default configuration4459 is expected not to be within 2 of 2023-03-30 11:53:52.970224538 +00004460 for changed configuration4461 is expected to be within 2 of 2023-03-30 11:53:53.103454525 +00004462 behaves like able to login4463 registry provides read_container_image authentication_abilities4464 is expected to eq "deploy_token"4465 behaves like an authenticated4466 is expected to include :token4467 is expected to include "access"4468 when deploy token does not have read_registry scope4469 for public project with container registry `enabled`4470 when pulling4471 behaves like a pullable4472 behaves like an accessible4473 has the correct scope4474 behaves like a valid token4475 is expected to include :token4476 is expected to include "access"4477 a expirable4478 for default configuration4479 is expected not to be within 2 of 2023-03-30 11:53:54.026070245 +00004480 for changed configuration4481 is expected to be within 2 of 2023-03-30 11:53:54.143706614 +00004482 behaves like unable to login4483 registry provides no container authentication_abilities4484 behaves like a forbidden4485 is expected to include {:http_status => 403}4486 is expected not to include :token4487 registry provides inapplicable container authentication_abilities4488 behaves like a forbidden4489 is expected to include {:http_status => 403}4490 is expected not to include :token4491 for public project with container registry `private`4492 when pulling4493 behaves like an inaccessible4494 is expected to include {"access" => []}4495 behaves like a valid token4496 is expected to include :token4497 is expected to include "access"4498 a expirable4499 for default configuration4500 is expected not to be within 2 of 2023-03-30 11:53:55.139606061 +00004501 for changed configuration4502 is expected to be within 2 of 2023-03-30 11:53:55.237838424 +00004503 behaves like unable to login4504 registry provides no container authentication_abilities4505 behaves like a forbidden4506 is expected to include {:http_status => 403}4507 is expected not to include :token4508 registry provides inapplicable container authentication_abilities4509 behaves like a forbidden4510 is expected to include {:http_status => 403}4511 is expected not to include :token4512 for internal project4513 when pulling4514 behaves like an inaccessible4515 is expected to include {"access" => []}4516 behaves like a valid token4517 is expected to include :token4518 is expected to include "access"4519 a expirable4520 for default configuration4521 is expected not to be within 2 of 2023-03-30 11:53:56.174469621 +00004522 for changed configuration4523 is expected to be within 2 of 2023-03-30 11:53:56.268650395 +00004524 behaves like unable to login4525 registry provides no container authentication_abilities4526 behaves like a forbidden4527 is expected to include {:http_status => 403}4528 is expected not to include :token4529 registry provides inapplicable container authentication_abilities4530 behaves like a forbidden4531 is expected to include {:http_status => 403}4532 is expected not to include :token4533 for private project4534 when pulling4535 behaves like an inaccessible4536 is expected to include {"access" => []}4537 behaves like a valid token4538 is expected to include :token4539 is expected to include "access"4540 a expirable4541 for default configuration4542 is expected not to be within 2 of 2023-03-30 11:53:57.076752965 +00004543 for changed configuration4544 is expected to be within 2 of 2023-03-30 11:53:57.170236908 +00004545 when logging in4546 behaves like a forbidden4547 is expected to include {:http_status => 403}4548 is expected not to include :token4549 behaves like unable to login4550 registry provides no container authentication_abilities4551 behaves like a forbidden4552 is expected to include {:http_status => 403}4553 is expected not to include :token4554 registry provides inapplicable container authentication_abilities4555 behaves like a forbidden4556 is expected to include {:http_status => 403}4557 is expected not to include :token4558 when deploy token is not related to the project4559 for public project with container registry `enabled`4560 when pulling4561 behaves like a pullable4562 behaves like an accessible4563 has the correct scope4564 behaves like a valid token4565 is expected to include :token4566 is expected to include "access"4567 a expirable4568 for default configuration4569 is expected not to be within 2 of 2023-03-30 11:53:57.987766186 +00004570 for changed configuration4571 is expected to be within 2 of 2023-03-30 11:53:58.057372324 +00004572 for public project with container registry `private`4573 when pulling4574 behaves like an inaccessible4575 is expected to include {"access" => []}4576 behaves like a valid token4577 is expected to include :token4578 is expected to include "access"4579 a expirable4580 for default configuration4581 is expected not to be within 2 of 2023-03-30 11:53:58.491293749 +00004582 for changed configuration4583 is expected to be within 2 of 2023-03-30 11:53:58.556065097 +00004584 for internal project4585 when pulling4586 behaves like an inaccessible4587 is expected to include {"access" => []}4588 behaves like a valid token4589 is expected to include :token4590 is expected to include "access"4591 a expirable4592 for default configuration4593 is expected not to be within 2 of 2023-03-30 11:53:59.034148114 +00004594 for changed configuration4595 is expected to be within 2 of 2023-03-30 11:53:59.087224145 +00004596 for private project4597 when pulling4598 behaves like an inaccessible4599 is expected to include {"access" => []}4600 behaves like a valid token4601 is expected to include :token4602 is expected to include "access"4603 a expirable4604 for default configuration4605 is expected not to be within 2 of 2023-03-30 11:53:59.500030543 +00004606 for changed configuration4607 is expected to be within 2 of 2023-03-30 11:53:59.556974864 +00004608 when deploy token has been revoked4609 for public project with container registry `enabled`4610 behaves like a pullable4611 behaves like an accessible4612 has the correct scope4613 behaves like a valid token4614 is expected to include :token4615 is expected to include "access"4616 a expirable4617 for default configuration4618 is expected not to be within 2 of 2023-03-30 11:54:00.106673928 +00004619 for changed configuration4620 is expected to be within 2 of 2023-03-30 11:54:00.198222732 +00004621 for public project with container registry `private`4622 behaves like an inaccessible4623 is expected to include {"access" => []}4624 behaves like a valid token4625 is expected to include :token4626 is expected to include "access"4627 a expirable4628 for default configuration4629 is expected not to be within 2 of 2023-03-30 11:54:00.796042798 +00004630 for changed configuration4631 is expected to be within 2 of 2023-03-30 11:54:00.889771212 +00004632 for internal project4633 behaves like an inaccessible4634 is expected to include {"access" => []}4635 behaves like a valid token4636 is expected to include :token4637 is expected to include "access"4638 a expirable4639 for default configuration4640 is expected not to be within 2 of 2023-03-30 11:54:01.441357206 +00004641 for changed configuration4642 is expected to be within 2 of 2023-03-30 11:54:01.534211990 +00004643 for private project4644 behaves like an inaccessible4645 is expected to include {"access" => []}4646 behaves like a valid token4647 is expected to include :token4648 is expected to include "access"4649 a expirable4650 for default configuration4651 is expected not to be within 2 of 2023-03-30 11:54:02.096927352 +00004652 for changed configuration4653 is expected to be within 2 of 2023-03-30 11:54:02.207998303 +00004654 user authorization4655 with multiple scopes4656 allow developer to push images4657 behaves like a pushable4658 behaves like an accessible4659 has the correct scope4660 behaves like a valid token4661 is expected to include :token4662 is expected to include "access"4663 a expirable4664 for default configuration4665 is expected not to be within 2 of 2023-03-30 11:54:02.842482153 +00004666 for changed configuration4667 is expected to be within 2 of 2023-03-30 11:54:02.916403010 +00004668 behaves like container repository factory4669 creates a new container repository resource4670 when importing4671 push request4672 behaves like a forbidden4673 is expected to include {:http_status => 403}4674 is expected not to include :token4675 behaves like containing the import error4676 includes a helpful error message4677 delete request4678 behaves like a forbidden4679 is expected to include {:http_status => 403}4680 is expected not to include :token4681 behaves like containing the import error4682 includes a helpful error message4683 * request4684 behaves like a forbidden4685 is expected to include {:http_status => 403}4686 is expected not to include :token4687 behaves like containing the import error4688 includes a helpful error message4689 pull request4690 behaves like a pullable4691 behaves like an accessible4692 has the correct scope4693 behaves like a valid token4694 is expected to include :token4695 is expected to include "access"4696 a expirable4697 for default configuration4698 is expected not to be within 2 of 2023-03-30 11:54:05.117439457 +00004699 for changed configuration4700 is expected to be within 2 of 2023-03-30 11:54:05.289032808 +00004701 mixed request4702 behaves like a forbidden4703 is expected to include {:http_status => 403}4704 is expected not to include :token4705 behaves like containing the import error4706 includes a helpful error message4707Git::BranchHooksService4708 Git Push Data4709 has expected push data attributes4710 with repository data4711 has expected attributes4712 with commits4713 is expected to be a kind of Array4714 has 1 element4715 the commit4716 is expected to eq 2014-02-27 08:57:31.000000000 +00004717 includes expected commit data4718 with a author4719 includes expected author data4720 Push Event4721 with an existing branch4722 generates a push event with one commit4723 with changing CI config4724 tracks the event4725 when usage ping is disabled4726 does not track the event4727 when the branch is not the main branch4728 does not track the event4729 when the CI config is a different path4730 does not track the event4731 with a new default branch4732 generates a push event with more than one commit4733 with a new non-default branch4734 generates a push event with more than one commit4735 removing a branch4736 generates a push event with no commits4737 Invalidating project cache4738 on default branch4739 create4740 is expected to receive invalidated_file_types(*(any args)) 1 time4741 update4742 is expected to receive perform_async(69, [:readme], [], false) 1 time4743 remove4744 is expected to receive invalidated_file_types(*(any args)) 1 time4745 on ordinary branch4746 create4747 is expected to receive invalidated_file_types(*(any args)) 1 time4748 update4749 is expected to receive invalidated_file_types(*(any args)) 1 time4750 remove4751 is expected to receive invalidated_file_types(*(any args)) 1 time4752 signatures4753 when the commit has a signature4754 when the signature is already cached4755 does not queue a CreateCommitSignatureWorker4756 when the signature is not yet cached4757 queues a CreateCommitSignatureWorker4758 can queue several commits to create the gpg signature4759 when the commit does not have a signature4760 does not queue a CreateCommitSignatureWorker4761 Processing commit messages4762 creating the default branch4763 processes a limited number of commit messages4764 collects the related metrics4765 when limit is not hit4766 does not collect the corresponding metric4767 updating the default branch4768 processes a limited number of commit messages4769 removing the default branch4770 does not process commit messages4771 creating a normal branch4772 processes a limited number of commit messages4773 updating a normal branch4774 processes a limited number of commit messages4775 removing a normal branch4776 does not process commit messages4777 when the project is forked4778 when commits already exists in the upstream project4779 does not process commit messages4780 when a commit does not exist in the upstream repo4781 processes the commit message4782 when the upstream project no longer exists4783 processes the commit messages4784 New branch detection4785 oldrev is the blank SHA4786 is treated as a new branch4787 oldrev is set4788 Gitaly does not know about the branch4789 is treated as a new branch4790 Gitaly knows about the branch4791 is not treated as a new branch4792 Metrics dashboard sync4793 with default branch4794 when adding files4795 also related4796 imports metrics to database4797 only unrelated4798 does not sync metrics to database4799 when deleting files4800 also related4801 imports metrics to database4802 only unrelated4803 does not sync metrics to database4804 when updating files4805 also related4806 imports metrics to database4807 only unrelated4808 does not sync metrics to database4809 without changes4810 does not sync metrics to database4811 with other branch4812 does not sync metrics to database4813Notes::UpdateService4814 #execute4815 does not update the note when params is blank4816 event tracking4817 does not track usage data when params is blank4818 tracks issue usage data4819 behaves like issue_edit snowplow tracking4820 behaves like Snowplow event tracking with RedisHLL context4821 behaves like Snowplow event tracking4822 is emitted4823 when note text was changed4824 update last_edited_at4825 update updated_by4826 when note text was not changed4827 does not update last_edited_at4828 does not update updated_by4829 when the notable is a merge request4830 tracks merge request usage data4831 with system note4832 does not update the note4833 does not track usage data4834 suggestions4835 refreshes note suggestions4836 todos4837 when note includes a user mention4838 when the note does not change mentions4839 behaves like does not update todos4840 keep todos4841 does not create any new todos4842 when the note changes to include one more user mention4843 behaves like creates one todo4844 marks todos as done4845 creates only 1 new todo4846 when the note changes to include a group mentions4847 behaves like creates one todo4848 marks todos as done4849 creates only 1 new todo4850 when note includes a group mention4851 when the group is public4852 when the note does not change mentions4853 behaves like does not update todos4854 keep todos4855 does not create any new todos4856 when the note changes mentions4857 behaves like creates one todo4858 marks todos as done4859 creates only 1 new todo4860 when the group is private4861 when the note does not change mentions4862 behaves like does not update todos4863 keep todos4864 does not create any new todos4865 when the note changes mentions4866 behaves like creates one todo4867 marks todos as done4868 creates only 1 new todo4869 for a personal snippet4870 does not create todos4871 does not create suggestions4872 does not create mentions4873 does not track usage data4874DesignManagement::DesignV432x230Uploader4875 resizes images4876 behaves like builds correct paths4877 #store_dir4878 behaves like matches the method pattern4879 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//4880 #cache_dir4881 behaves like matches the method pattern4882 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4883 #work_dir4884 behaves like matches the method pattern4885 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4886 #upload_path4887 behaves like matches the method pattern4888 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//4889 #relative_path4890 is relative (PENDING: Path not set, skipping.)4891 .absolute_path4892 behaves like matches the method pattern4893 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//4894 .base_dir4895 behaves like matches the method pattern4896 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4897 path traversal exploits4898 throws an exception4899 object_store is REMOTE4900 behaves like builds correct paths4901 #store_dir4902 behaves like matches the method pattern4903 is expected to match /design_management\/action\/image_v432x230\//4904 #cache_dir4905 behaves like matches the method pattern4906 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4907 #work_dir4908 behaves like matches the method pattern4909 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4910 #upload_path4911 behaves like matches the method pattern4912 is expected to match /design_management\/action\/image_v432x230\//4913 #relative_path4914 is relative (PENDING: Path not set, skipping.)4915 .absolute_path4916 behaves like matches the method pattern4917 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4918 .base_dir4919 behaves like matches the method pattern4920 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4921 path traversal exploits4922 throws an exception4923 #migrate!4924 behaves like migrates4925 returns corresponding file type4926 does nothing when migrating to the current store4927 migrate to the specified store4928 removes the original file after the migration4929 can access to the original file during migration4930 when migrate! is not occupied by another process4931 executes migrate!4932 executes use_file4933 when migrate! is occupied by another process4934 does not execute migrate!4935 does not execute use_file4936 migration is unsuccessful4937 when the store is not supported4938 does not update the object_store4939 does not delete the original file4940 upon a fog failure4941 does not update the object_store4942 does not delete the original file4943 upon a database failure4944 does not update the object_store4945 does not delete the original file4946 behaves like migrates4947 returns corresponding file type4948 does nothing when migrating to the current store4949 migrate to the specified store4950 removes the original file after the migration4951 can access to the original file during migration4952 when migrate! is not occupied by another process4953 executes migrate!4954 executes use_file4955 when migrate! is occupied by another process4956 does not execute migrate!4957 does not execute use_file4958 migration is unsuccessful4959 when the store is not supported4960 does not update the object_store4961 does not delete the original file4962 upon a fog failure4963 does not update the object_store4964 does not delete the original file4965 upon a database failure4966 does not update the object_store4967 does not delete the original file4968 accept whitelist file content type4969 mime_type: "image/png"4970 behaves like accepted carrierwave upload4971 will accept upload4972 will cache uploaded file4973 mime_type: "image/jpeg"4974 behaves like accepted carrierwave upload4975 will accept upload4976 will cache uploaded file4977 mime_type: "image/bmp"4978 behaves like accepted carrierwave upload4979 will accept upload4980 will cache uploaded file4981 mime_type: "image/gif"4982 behaves like accepted carrierwave upload4983 will accept upload4984 will cache uploaded file4985 upload non-whitelisted file content type4986 behaves like denied carrierwave upload4987 will deny upload4988 upload misnamed non-whitelisted file content type4989 behaves like denied carrierwave upload4990 will deny upload4991Packages::Npm::CreatePackageService4992 #execute4993 obtains a lease to create a new package4994 scoped package4995 behaves like valid package4996 creates a package4997 is expected to be valid4998 creates a package with name and version4999 is expected to eq {"dependencies"=>{"express"=>"^4.16.4"}, "dist"=>{"shasum"=>"f572d396fae9206628714fb2ce00f72e94f2258f...//localhost/npm/package.tgz"}, "main"=>"app.js", "name"=>"@namespace270/my-app", "version"=>"1.0.1"}5000 is expected to eq "@namespace271/my-app"5001 is expected to eq "1.0.1"5002 behaves like assigns the package creator5003 assigns the package creator5004 with build info5005 creates a package file build info5006 behaves like assigns build to package5007 with build info5008 assigns the pipeline to the package5009 behaves like assigns status to package5010 with status param5011 assigns the status to the package5012 with a too large metadata structure5013 does not create the package5014 with not allowed readme field5015 is persisted without the field5016 with not allowed readmeFilename field5017 is persisted without the field5018 scoped package not following the naming convention5019 behaves like valid package5020 creates a package5021 is expected to be valid5022 creates a package with name and version5023 is expected to eq {"dependencies"=>{"express"=>"^4.16.4"}, "dist"=>{"shasum"=>"f572d396fae9206628714fb2ce00f72e94f2258f...p://localhost/npm/package.tgz"}, "main"=>"app.js", "name"=>"@any-scope/package", "version"=>"1.0.1"}5024 is expected to eq "@any-scope/package"5025 is expected to eq "1.0.1"5026 behaves like assigns the package creator5027 assigns the package creator5028 with build info5029 creates a package file build info5030 behaves like assigns build to package5031 with build info5032 assigns the pipeline to the package5033 behaves like assigns status to package5034 with status param5035 assigns the status to the package5036 with a too large metadata structure5037 does not create the package5038 with not allowed readme field5039 is persisted without the field5040 with not allowed readmeFilename field5041 is persisted without the field5042 unscoped package5043 behaves like valid package5044 creates a package5045 is expected to be valid5046 creates a package with name and version5047 is expected to eq {"dependencies"=>{"express"=>"^4.16.4"}, "dist"=>{"shasum"=>"f572d396fae9206628714fb2ce00f72e94f2258f...ttp://localhost/npm/package.tgz"}, "main"=>"app.js", "name"=>"unscoped-package", "version"=>"1.0.1"}5048 is expected to eq "unscoped-package"5049 is expected to eq "1.0.1"5050 behaves like assigns the package creator5051 assigns the package creator5052 with build info5053 creates a package file build info5054 behaves like assigns build to package5055 with build info5056 assigns the pipeline to the package5057 behaves like assigns status to package5058 with status param5059 assigns the status to the package5060 with a too large metadata structure5061 does not create the package5062 with not allowed readme field5063 is persisted without the field5064 with not allowed readmeFilename field5065 is persisted without the field5066 package already exists5067 is expected to eq 4035068 is expected to equal "Package already exists."5069 marked as pending_destruction5070 creates a new package5071 max file size validation5072 when max file size is exceeded5073 behaves like max file size validation failure5074 returns a 400 error5075 when file size is faked by setting the attachment length param to a lower size5076 when encoded package data is not padded5077 behaves like max file size validation failure5078 returns a 400 error5079 when encoded package data is padded with '='5080 behaves like max file size validation failure5081 returns a 400 error5082 when encoded package data is padded with '=='5083 behaves like max file size validation failure5084 returns a 400 error5085 with invalid name @inv@lid_scope/package5086 raises a RecordInvalid error5087 with invalid name @scope/sub/group5088 raises a RecordInvalid error5089 with invalid name @scope/../../package5090 raises a RecordInvalid error5091 with invalid name @scope%2e%2e%2fpackage5092 raises a RecordInvalid error5093 with empty versions5094 is expected to eq 4005095 is expected to eq "Version is empty."5096 with invalid versions5097 version: "1"5098 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"5099 version: "1.2"5100 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"5101 version: "1./2.3"5102 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"5103 version: "../../../../../1.2.3"5104 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"5105 version: "%2e%2e%2f1.2.3"5106 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"5107 with npm_obtain_lease_to_create_package disabled5108 does not obtain a lease5109 when the lease is already taken5110 is expected to eq 4005111 is expected to eq "Could not obtain package lease."5112 when many of the same packages are created at the same time5113 only creates one package5114 #lease_key5115 returns an unique key5116Ci::RunnersFinder5117 admin5118 #execute5119 when admin mode setting is disabled5120 behaves like executes as admin5121 with 2 runners5122 with empty params5123 returns all runners5124 with nil group5125 returns all runners5126 with preload param set to :tag_name true5127 requests tags5128 with preload param set to :tag_name false5129 does not request tags5130 filtering5131 by search term5132 calls Ci::Runner.search5133 by upgrade status5134 set to :not_processed5135 calls with_upgrade_status scope with corresponding :not_processed status5136 set to :invalid_version5137 calls with_upgrade_status scope with corresponding :invalid_version status5138 set to :unavailable5139 calls with_upgrade_status scope with corresponding :unavailable status5140 set to :available5141 calls with_upgrade_status scope with corresponding :available status5142 set to :recommended5143 calls with_upgrade_status scope with corresponding :recommended status5144 set to an invalid value5145 raises ArgumentError5146 set to nil5147 does not call with_upgrade_status5148 by status5149 calls the corresponding :active scope on Ci::Runner5150 calls the corresponding :paused scope on Ci::Runner5151 calls the corresponding :online scope on Ci::Runner5152 calls the corresponding :offline scope on Ci::Runner5153 calls the corresponding :never_contacted scope on Ci::Runner5154 calls the corresponding :stale scope on Ci::Runner5155 by active status5156 with active set as false calls the corresponding scope on Ci::Runner with false5157 with active set as true calls the corresponding scope on Ci::Runner with true5158 by runner type5159 calls the corresponding scope on Ci::Runner5160 by tag_name5161 calls the corresponding scope on Ci::Runner5162 sorting5163 without sort param5164 behaves like sorts by created_at descending5165 sorts by created_at descending5166 with sort param equal to created_date5167 behaves like sorts by created_at descending5168 sorts by created_at descending5169 with sort param equal to created_at_desc5170 behaves like sorts by created_at descending5171 sorts by created_at descending5172 with sort param equal to created_at_asc5173 sorts by created_at ascending5174 with sort param equal to contacted_asc5175 sorts by contacted_at ascending5176 with sort param equal to contacted_desc5177 sorts by contacted_at descending5178 with sort param equal to token_expires_at_asc5179 sorts by contacted_at ascending5180 with sort param equal to token_expires_at_desc5181 sorts by contacted_at descending5182 when admin mode setting is enabled5183 when in admin mode5184 behaves like executes as admin5185 with 2 runners5186 with empty params5187 returns all runners5188 with nil group5189 returns all runners5190 with preload param set to :tag_name true5191 requests tags5192 with preload param set to :tag_name false5193 does not request tags5194 filtering5195 by search term5196 calls Ci::Runner.search5197 by upgrade status5198 set to :not_processed5199 calls with_upgrade_status scope with corresponding :not_processed status5200 set to :invalid_version5201 calls with_upgrade_status scope with corresponding :invalid_version status5202 set to :unavailable5203 calls with_upgrade_status scope with corresponding :unavailable status5204 set to :available5205 calls with_upgrade_status scope with corresponding :available status5206 set to :recommended5207 calls with_upgrade_status scope with corresponding :recommended status5208 set to an invalid value5209 raises ArgumentError5210 set to nil5211 does not call with_upgrade_status5212 by status5213 calls the corresponding :active scope on Ci::Runner5214 calls the corresponding :paused scope on Ci::Runner5215 calls the corresponding :online scope on Ci::Runner5216 calls the corresponding :offline scope on Ci::Runner5217 calls the corresponding :never_contacted scope on Ci::Runner5218 calls the corresponding :stale scope on Ci::Runner5219 by active status5220 with active set as false calls the corresponding scope on Ci::Runner with false5221 with active set as true calls the corresponding scope on Ci::Runner with true5222 by runner type5223 calls the corresponding scope on Ci::Runner5224 by tag_name5225 calls the corresponding scope on Ci::Runner5226 sorting5227 without sort param5228 behaves like sorts by created_at descending5229 sorts by created_at descending5230 with sort param equal to created_date5231 behaves like sorts by created_at descending5232 sorts by created_at descending5233 with sort param equal to created_at_desc5234 behaves like sorts by created_at descending5235 sorts by created_at descending5236 with sort param equal to created_at_asc5237 sorts by created_at ascending5238 with sort param equal to contacted_asc5239 sorts by contacted_at ascending5240 with sort param equal to contacted_desc5241 sorts by contacted_at descending5242 with sort param equal to token_expires_at_asc5243 sorts by contacted_at ascending5244 with sort param equal to token_expires_at_desc5245 sorts by contacted_at descending5246 when not in admin mode5247 behaves like executes as normal user5248 returns no runners5249 by non admin user5250 behaves like executes as normal user5251 returns no runners5252 when user is nil5253 returns no runners5254 group5255 #execute5256 with user as group owner5257 with :group as target group5258 passing no params5259 behaves like membership equal to :descendants5260 returns all descendant runners5261 with :descendants membership5262 behaves like membership equal to :descendants5263 returns all descendant runners5264 with :direct membership5265 returns runners belonging to group5266 with :all_available membership5267 returns runners available to group5268 with unknown membership5269 raises an error5270 with nil group5271 returns no runners5272 with sort param5273 sorts by specified attribute5274 filtering5275 by search term5276 returns correct runner5277 by active status5278 returns correct runner5279 by status5280 returns correct runner5281 by tag_name5282 returns correct runner5283 by runner type5284 returns correct runners5285 when user is not group owner5286 user_permission: :maintainer5287 with :sub_group_1 as target group5288 returns no runners5289 with :group as target group5290 returns no runners5291 with :all_available membership5292 returns no runners5293 user_permission: :developer5294 with :sub_group_1 as target group5295 returns no runners5296 with :group as target group5297 returns no runners5298 with :all_available membership5299 returns no runners5300 user_permission: :reporter5301 with :sub_group_1 as target group5302 returns no runners5303 with :group as target group5304 returns no runners5305 with :all_available membership5306 returns no runners5307 user_permission: :guest5308 with :sub_group_1 as target group5309 returns no runners5310 with :group as target group5311 returns no runners5312 with :all_available membership5313 returns no runners5314 when user has no access5315 returns no runners5316 when user is nil5317 returns no runners5318 #sort_key5319 without params5320 returns created_at_desc5321 with params5322 returns contacted_asc5323 project5324 #execute5325 with user as project admin5326 with project runners5327 returns runners available to project5328 with ancestor group runners5329 returns runners available to project5330 with allowed shared runners5331 returns runners available to project5332 with project, ancestor group, and allowed shared runners5333 returns runners available to project5334 filtering5335 by search term5336 returns the correct runner5337 by active status5338 returns the correct runners5339 by status5340 returns correct runner5341 by tag_name5342 returns correct runner5343 by runner type5344 returns correct runners5345 with user as project developer5346 returns no runners5347 when user is nil5348 returns no runners5349 with nil project_full_path5350 returns no runners5351Members::InvitationReminderEmailService5352 sending invitation reminders5353 expires_at_days: 0, send_reminder_at_days: []5354 sends an invitation reminder only on the expected days5355 sends an invitation reminder only on the expected days5356 sends an invitation reminder only on the expected days5357 sends an invitation reminder only on the expected days5358 sends an invitation reminder only on the expected days5359 sends an invitation reminder only on the expected days5360 sends an invitation reminder only on the expected days5361 sends an invitation reminder only on the expected days5362 sends an invitation reminder only on the expected days5363 sends an invitation reminder only on the expected days5364 sends an invitation reminder only on the expected days5365 expires_at_days: 1, send_reminder_at_days: []5366 sends an invitation reminder only on the expected days5367 sends an invitation reminder only on the expected days5368 sends an invitation reminder only on the expected days5369 sends an invitation reminder only on the expected days5370 sends an invitation reminder only on the expected days5371 sends an invitation reminder only on the expected days5372 sends an invitation reminder only on the expected days5373 sends an invitation reminder only on the expected days5374 sends an invitation reminder only on the expected days5375 sends an invitation reminder only on the expected days5376 sends an invitation reminder only on the expected days5377 expires_at_days: 2, send_reminder_at_days: [1]5378 sends an invitation reminder only on the expected days5379 sends an invitation reminder only on the expected days5380 sends an invitation reminder only on the expected days5381 sends an invitation reminder only on the expected days5382 sends an invitation reminder only on the expected days5383 sends an invitation reminder only on the expected days5384 sends an invitation reminder only on the expected days5385 sends an invitation reminder only on the expected days5386 sends an invitation reminder only on the expected days5387 sends an invitation reminder only on the expected days5388 sends an invitation reminder only on the expected days5389 expires_at_days: 3, send_reminder_at_days: [1, 2]5390 sends an invitation reminder only on the expected days5391 sends an invitation reminder only on the expected days5392 sends an invitation reminder only on the expected days5393 sends an invitation reminder only on the expected days5394 sends an invitation reminder only on the expected days5395 sends an invitation reminder only on the expected days5396 sends an invitation reminder only on the expected days5397 sends an invitation reminder only on the expected days5398 sends an invitation reminder only on the expected days5399 sends an invitation reminder only on the expected days5400 sends an invitation reminder only on the expected days5401 expires_at_days: 4, send_reminder_at_days: [1, 2, 3]5402 sends an invitation reminder only on the expected days5403 sends an invitation reminder only on the expected days5404 sends an invitation reminder only on the expected days5405 sends an invitation reminder only on the expected days5406 sends an invitation reminder only on the expected days5407 sends an invitation reminder only on the expected days5408 sends an invitation reminder only on the expected days5409 sends an invitation reminder only on the expected days5410 sends an invitation reminder only on the expected days5411 sends an invitation reminder only on the expected days5412 sends an invitation reminder only on the expected days5413 expires_at_days: 5, send_reminder_at_days: [1, 2, 4]5414 sends an invitation reminder only on the expected days5415 sends an invitation reminder only on the expected days5416 sends an invitation reminder only on the expected days5417 sends an invitation reminder only on the expected days5418 sends an invitation reminder only on the expected days5419 sends an invitation reminder only on the expected days5420 sends an invitation reminder only on the expected days5421 sends an invitation reminder only on the expected days5422 sends an invitation reminder only on the expected days5423 sends an invitation reminder only on the expected days5424 sends an invitation reminder only on the expected days5425 expires_at_days: 6, send_reminder_at_days: [1, 3, 5]5426 sends an invitation reminder only on the expected days5427 sends an invitation reminder only on the expected days5428 sends an invitation reminder only on the expected days5429 sends an invitation reminder only on the expected days5430 sends an invitation reminder only on the expected days5431 sends an invitation reminder only on the expected days5432 sends an invitation reminder only on the expected days5433 sends an invitation reminder only on the expected days5434 sends an invitation reminder only on the expected days5435 sends an invitation reminder only on the expected days5436 sends an invitation reminder only on the expected days5437 expires_at_days: 7, send_reminder_at_days: [1, 3, 5]5438 sends an invitation reminder only on the expected days5439 sends an invitation reminder only on the expected days5440 sends an invitation reminder only on the expected days5441 sends an invitation reminder only on the expected days5442 sends an invitation reminder only on the expected days5443 sends an invitation reminder only on the expected days5444 sends an invitation reminder only on the expected days5445 sends an invitation reminder only on the expected days5446 sends an invitation reminder only on the expected days5447 sends an invitation reminder only on the expected days5448 sends an invitation reminder only on the expected days5449 expires_at_days: 8, send_reminder_at_days: [2, 3, 6]5450 sends an invitation reminder only on the expected days5451 sends an invitation reminder only on the expected days5452 sends an invitation reminder only on the expected days5453 sends an invitation reminder only on the expected days5454 sends an invitation reminder only on the expected days5455 sends an invitation reminder only on the expected days5456 sends an invitation reminder only on the expected days5457 sends an invitation reminder only on the expected days5458 sends an invitation reminder only on the expected days5459 sends an invitation reminder only on the expected days5460 sends an invitation reminder only on the expected days5461 expires_at_days: 9, send_reminder_at_days: [2, 4, 7]5462 sends an invitation reminder only on the expected days5463 sends an invitation reminder only on the expected days5464 sends an invitation reminder only on the expected days5465 sends an invitation reminder only on the expected days5466 sends an invitation reminder only on the expected days5467 sends an invitation reminder only on the expected days5468 sends an invitation reminder only on the expected days5469 sends an invitation reminder only on the expected days5470 sends an invitation reminder only on the expected days5471 sends an invitation reminder only on the expected days5472 sends an invitation reminder only on the expected days5473 expires_at_days: 10, send_reminder_at_days: [2, 4, 8]5474 sends an invitation reminder only on the expected days5475 sends an invitation reminder only on the expected days5476 sends an invitation reminder only on the expected days5477 sends an invitation reminder only on the expected days5478 sends an invitation reminder only on the expected days5479 sends an invitation reminder only on the expected days5480 sends an invitation reminder only on the expected days5481 sends an invitation reminder only on the expected days5482 sends an invitation reminder only on the expected days5483 sends an invitation reminder only on the expected days5484 sends an invitation reminder only on the expected days5485 expires_at_days: 11, send_reminder_at_days: [2, 4, 8]5486 sends an invitation reminder only on the expected days5487 sends an invitation reminder only on the expected days5488 sends an invitation reminder only on the expected days5489 sends an invitation reminder only on the expected days5490 sends an invitation reminder only on the expected days5491 sends an invitation reminder only on the expected days5492 sends an invitation reminder only on the expected days5493 sends an invitation reminder only on the expected days5494 sends an invitation reminder only on the expected days5495 sends an invitation reminder only on the expected days5496 sends an invitation reminder only on the expected days5497 expires_at_days: 12, send_reminder_at_days: [2, 5, 9]5498 sends an invitation reminder only on the expected days5499 sends an invitation reminder only on the expected days5500 sends an invitation reminder only on the expected days5501 sends an invitation reminder only on the expected days5502 sends an invitation reminder only on the expected days5503 sends an invitation reminder only on the expected days5504 sends an invitation reminder only on the expected days5505 sends an invitation reminder only on the expected days5506 sends an invitation reminder only on the expected days5507 sends an invitation reminder only on the expected days5508 sends an invitation reminder only on the expected days5509 expires_at_days: 13, send_reminder_at_days: [2, 5, 10]5510 sends an invitation reminder only on the expected days5511 sends an invitation reminder only on the expected days5512 sends an invitation reminder only on the expected days5513 sends an invitation reminder only on the expected days5514 sends an invitation reminder only on the expected days5515 sends an invitation reminder only on the expected days5516 sends an invitation reminder only on the expected days5517 sends an invitation reminder only on the expected days5518 sends an invitation reminder only on the expected days5519 sends an invitation reminder only on the expected days5520 sends an invitation reminder only on the expected days5521 expires_at_days: 14, send_reminder_at_days: [2, 5, 10]5522 sends an invitation reminder only on the expected days5523 sends an invitation reminder only on the expected days5524 sends an invitation reminder only on the expected days5525 sends an invitation reminder only on the expected days5526 sends an invitation reminder only on the expected days5527 sends an invitation reminder only on the expected days5528 sends an invitation reminder only on the expected days5529 sends an invitation reminder only on the expected days5530 sends an invitation reminder only on the expected days5531 sends an invitation reminder only on the expected days5532 sends an invitation reminder only on the expected days5533 expires_at_days: 15, send_reminder_at_days: [2, 5, 10]5534 sends an invitation reminder only on the expected days5535 sends an invitation reminder only on the expected days5536 sends an invitation reminder only on the expected days5537 sends an invitation reminder only on the expected days5538 sends an invitation reminder only on the expected days5539 sends an invitation reminder only on the expected days5540 sends an invitation reminder only on the expected days5541 sends an invitation reminder only on the expected days5542 sends an invitation reminder only on the expected days5543 sends an invitation reminder only on the expected days5544 sends an invitation reminder only on the expected days5545 expires_at_days: nil, send_reminder_at_days: [2, 5, 10]5546 sends an invitation reminder only on the expected days5547 sends an invitation reminder only on the expected days5548 sends an invitation reminder only on the expected days5549 sends an invitation reminder only on the expected days5550 sends an invitation reminder only on the expected days5551 sends an invitation reminder only on the expected days5552 sends an invitation reminder only on the expected days5553 sends an invitation reminder only on the expected days5554 sends an invitation reminder only on the expected days5555 sends an invitation reminder only on the expected days5556 sends an invitation reminder only on the expected days5557CI YML Templates5558 that support autodevops5559 when including available templates in a CI YAML configuration5560 template_name: "5-Minute-Production-App.gitlab-ci.yml"5561 is expected to be valid5562 require default stages to be included5563 template_name: "Android.gitlab-ci.yml"5564 is expected to be valid5565 require default stages to be included5566 template_name: "Android-Fastlane.gitlab-ci.yml"5567 is expected to be valid5568 require default stages to be included5569 template_name: "Auto-DevOps.gitlab-ci.yml"5570 is expected to be valid5571 require default stages to be included5572 template_name: "Bash.gitlab-ci.yml"5573 is expected to be valid5574 require default stages to be included5575 template_name: "C++.gitlab-ci.yml"5576 is expected to be valid5577 require default stages to be included5578 template_name: "Chef.gitlab-ci.yml"5579 is expected to be valid5580 require default stages to be included5581 template_name: "Clojure.gitlab-ci.yml"5582 is expected to be valid5583 require default stages to be included5584 template_name: "Code-Quality.gitlab-ci.yml"5585 is expected to be valid5586 require default stages to be included5587 template_name: "Composer.gitlab-ci.yml"5588 is expected to be valid5589 require default stages to be included5590 template_name: "Crystal.gitlab-ci.yml"5591 is expected to be valid5592 require default stages to be included5593 template_name: "Dart.gitlab-ci.yml"5594 is expected to be valid5595 require default stages to be included5596 template_name: "Deploy-ECS.gitlab-ci.yml"5597 is expected to be valid5598 require default stages to be included5599 template_name: "Django.gitlab-ci.yml"5600 is expected to be valid5601 require default stages to be included5602 template_name: "Docker.gitlab-ci.yml"5603 is expected to be valid5604 require default stages to be included5605 template_name: "Elixir.gitlab-ci.yml"5606 is expected to be valid5607 require default stages to be included5608 template_name: "Flutter.gitlab-ci.yml"5609 is expected to be valid5610 require default stages to be included5611 template_name: "Getting-Started.gitlab-ci.yml"5612 is expected to be valid5613 require default stages to be included5614 template_name: "Go.gitlab-ci.yml"5615 is expected to be valid5616 require default stages to be included5617 template_name: "Gradle.gitlab-ci.yml"5618 is expected to be valid5619 require default stages to be included5620 template_name: "Grails.gitlab-ci.yml"5621 is expected to be valid5622 require default stages to be included5623 template_name: "Indeni.Cloudrail.gitlab-ci.yml"5624 is expected to be valid5625 require default stages to be included5626 template_name: "Julia.gitlab-ci.yml"5627 is expected to be valid5628 require default stages to be included5629 template_name: "Kaniko.gitlab-ci.yml"5630 is expected to be valid5631 require default stages to be included5632 template_name: "Katalon.gitlab-ci.yml"5633 is expected to be valid5634 require default stages to be included5635 template_name: "LaTeX.gitlab-ci.yml"5636 is expected to be valid5637 require default stages to be included5638 template_name: "Laravel.gitlab-ci.yml"5639 is expected to be valid5640 require default stages to be included5641 template_name: "MATLAB.gitlab-ci.yml"5642 is expected to be valid5643 require default stages to be included5644 template_name: "Maven.gitlab-ci.yml"5645 is expected to be valid5646 require default stages to be included5647 template_name: "Mono.gitlab-ci.yml"5648 is expected to be valid5649 require default stages to be included5650 template_name: "Nodejs.gitlab-ci.yml"5651 is expected to be valid5652 require default stages to be included5653 template_name: "OpenShift.gitlab-ci.yml"5654 is expected to be valid5655 require default stages to be included5656 template_name: "PHP.gitlab-ci.yml"5657 is expected to be valid5658 require default stages to be included5659 template_name: "Packer.gitlab-ci.yml"5660 is expected to be valid5661 require default stages to be included5662 template_name: "Python.gitlab-ci.yml"5663 is expected to be valid5664 require default stages to be included5665 template_name: "Qualys-IaC-Security.gitlab-ci.yml"5666 is expected to be valid5667 require default stages to be included5668 template_name: "Ruby.gitlab-ci.yml"5669 is expected to be valid5670 require default stages to be included5671 template_name: "Rust.gitlab-ci.yml"5672 is expected to be valid5673 require default stages to be included5674 template_name: "Scala.gitlab-ci.yml"5675 is expected to be valid5676 require default stages to be included5677 template_name: "Swift.gitlab-ci.yml"5678 is expected to be valid5679 require default stages to be included5680 template_name: "Terraform.gitlab-ci.yml"5681 is expected to be valid5682 require default stages to be included5683 template_name: "Terraform-Module.gitlab-ci.yml"5684 is expected to be valid5685 require default stages to be included5686 template_name: "dotNET.gitlab-ci.yml"5687 is expected to be valid5688 require default stages to be included5689 template_name: "dotNET-Core.gitlab-ci.yml"5690 is expected to be valid5691 require default stages to be included5692 template_name: "iOS-Fastlane.gitlab-ci.yml"5693 is expected to be valid5694 require default stages to be included5695 template_name: "liquibase.gitlab-ci.yml"5696 is expected to be valid5697 require default stages to be included5698 template_name: "npm.gitlab-ci.yml"5699 is expected to be valid5700 require default stages to be included5701 template_name: "Pages/Brunch.gitlab-ci.yml"5702 is expected to be valid5703 require default stages to be included5704 template_name: "Pages/Doxygen.gitlab-ci.yml"5705 is expected to be valid5706 require default stages to be included5707 template_name: "Pages/Gatsby.gitlab-ci.yml"5708 is expected to be valid5709 require default stages to be included5710 template_name: "Pages/HTML.gitlab-ci.yml"5711 is expected to be valid5712 require default stages to be included5713 template_name: "Pages/Harp.gitlab-ci.yml"5714 is expected to be valid5715 require default stages to be included5716 template_name: "Pages/Hexo.gitlab-ci.yml"5717 is expected to be valid5718 require default stages to be included5719 template_name: "Pages/Hugo.gitlab-ci.yml"5720 is expected to be valid5721 require default stages to be included5722 template_name: "Pages/Hyde.gitlab-ci.yml"5723 is expected to be valid5724 require default stages to be included5725 template_name: "Pages/JBake.gitlab-ci.yml"5726 is expected to be valid5727 require default stages to be included5728 template_name: "Pages/Jekyll.gitlab-ci.yml"5729 is expected to be valid5730 require default stages to be included5731 template_name: "Pages/Jigsaw.gitlab-ci.yml"5732 is expected to be valid5733 require default stages to be included5734 template_name: "Pages/Lektor.gitlab-ci.yml"5735 is expected to be valid5736 require default stages to be included5737 template_name: "Pages/Metalsmith.gitlab-ci.yml"5738 is expected to be valid5739 require default stages to be included5740 template_name: "Pages/Middleman.gitlab-ci.yml"5741 is expected to be valid5742 require default stages to be included5743 template_name: "Pages/Nanoc.gitlab-ci.yml"5744 is expected to be valid5745 require default stages to be included5746 template_name: "Pages/Octopress.gitlab-ci.yml"5747 is expected to be valid5748 require default stages to be included5749 template_name: "Pages/Pelican.gitlab-ci.yml"5750 is expected to be valid5751 require default stages to be included5752 template_name: "Pages/SwaggerUI.gitlab-ci.yml"5753 is expected to be valid5754 require default stages to be included5755 template_name: "Verify/Accessibility.gitlab-ci.yml"5756 is expected to be valid5757 require default stages to be included5758 template_name: "Verify/FailFast.gitlab-ci.yml"5759 is expected to be valid5760 require default stages to be included5761 template_name: "Verify/Load-Performance-Testing.gitlab-ci.yml"5762 is expected to be valid5763 require default stages to be included5764 that do not support autodevops5765 when DAST API template5766 with default stages5767 is expected not to be valid5768 with defined stages5769 is expected to be valid5770 require default stages to be included5771 when API Fuzzing template5772 with default stages5773 is expected not to be valid5774 with defined stages5775 is expected to be valid5776 require default stages to be included5777SentNotification5778 validation5779 note validity5780 when the project doesn't match the noteable's project5781 is invalid5782 when the project doesn't match the discussion project5783 is invalid5784 when the noteable project and discussion project match5785 is valid5786 .record5787 behaves like a successful sent notification5788 creates a new SentNotification5789 .record_note5790 for a discussion note5791 sets in_reply_to_discussion_id5792 behaves like a successful sent notification5793 creates a new SentNotification5794 for an individual note5795 sets in_reply_to_discussion_id5796 behaves like a successful sent notification5797 creates a new SentNotification5798 #unsubscribable?5799 behaves like an unsubscribable notification5800 for issue5801 is expected to be unsubscribable5802 behaves like an unsubscribable notification5803 for merge request5804 is expected to be unsubscribable5805 behaves like a non-unsubscribable notification5806 for a commit5807 is expected not to be unsubscribable5808 behaves like a non-unsubscribable notification5809 for a personal snippet5810 is expected not to be unsubscribable5811 behaves like a non-unsubscribable notification5812 for a project snippet5813 is expected not to be unsubscribable5814 #for_commit?5815 behaves like a non-commit notification5816 for a issue5817 is expected not to be for commit5818 behaves like a non-commit notification5819 for a merge request5820 is expected not to be for commit5821 behaves like a commit notification5822 for commit5823 is expected to be for commit5824 behaves like a non-commit notification5825 for a personal snippet5826 is expected not to be for commit5827 behaves like a non-commit notification5828 for a project snippet5829 is expected not to be for commit5830 #for_snippet?5831 behaves like a non-snippet notification5832 for a issue5833 is expected not to be for snippet5834 behaves like a non-snippet notification5835 for a merge request5836 is expected not to be for snippet5837 behaves like a non-snippet notification5838 for a commit5839 is expected not to be for snippet5840 behaves like a snippet notification5841 for personal snippet5842 is expected to be for snippet5843 behaves like a snippet notification5844 for project snippet5845 is expected to be for snippet5846 #create_reply5847 for issue5848 creates a comment on the issue5849 for issue comment5850 converts the comment to a discussion on the issue5851 for issue discussion5852 creates a reply on the discussion5853 for merge request5854 creates a comment on the merge_request5855 for merge request comment5856 converts the comment to a discussion on the merge request5857 for merge request diff discussion5858 creates a reply on the discussion5859 for merge request non-diff discussion5860 creates a reply on the discussion5861 for commit5862 creates a comment on the commit5863 for commit comment5864 creates a comment on the commit5865 for commit diff discussion5866 creates a reply on the discussion5867 for commit non-diff discussion5868 creates a reply on the discussion5869 #position=5870 doesn't accept non-hash JSON passed as a string5871 does accept a position hash as a string5872 does accept a hash5873RemoteMirror5874 URL validation5875 with a valid URL5876 is valid5877 with an invalid URL5878 is not valid5879 does not allow url with an invalid user5880 does not allow url pointing to localhost5881 does not allow url pointing to the local network5882 returns a nil safe_url5883 encrypting credentials5884 when setting URL for a first time5885 stores the URL without credentials5886 stores the credentials on a separate field5887 handles credentials with large content5888 when updating the URL5889 allows a new URL without credentials5890 allows a new URL with credentials5891 #bare_url5892 returns the URL without any credentials5893 returns an empty string when the URL is nil5894 #update_repository5895 performs update including options5896 #options_for_update5897 includes the `keep_divergent_refs` option5898 includes the `only_branches_matching` option5899 includes the `ssh_key` option5900 includes the `known_hosts` option5901 #safe_url5902 when URL contains credentials5903 masks the credentials5904 when URL does not contain credentials5905 shows the full URL5906 #mark_as_failed!5907 sets the update_status to failed5908 saves the sanitized error5909 notifications5910 notifies the project maintainers5911 #hard_retry!5912 transitions an invalid mirror to the to_retry state5913 #hard_fail!5914 transitions an invalid mirror to the failed state5915 when remote mirror gets destroyed5916 does not remove the remote5917 stuck mirrors5918 includes mirrors that were started over an hour ago5919 includes mirrors started over 3 hours ago for their first sync5920 #sync5921 with remote mirroring disabled5922 returns nil5923 with remote mirroring enabled5924 defaults to disabling only protected branches5925 with only protected branches enabled5926 when it did not update in the last minute5927 schedules a RepositoryUpdateRemoteMirrorWorker to run now5928 when it did update in the last minute5929 schedules a RepositoryUpdateRemoteMirrorWorker to run in the next minute5930 with only protected branches disabled5931 when it did not update in the last 5 minutes5932 schedules a RepositoryUpdateRemoteMirrorWorker to run now5933 when it did update within the last 5 minutes5934 schedules a RepositoryUpdateRemoteMirrorWorker to run in the next 5 minutes5935 when remote_mirror_no_delay is enabled5936 schedules a RepositoryUpdateRemoteMirrorWorker to run now5937 #url=5938 resets all the columns when URL changes5939 #updated_since?5940 when remote mirror does not have status failed5941 returns true when last update started after the timestamp5942 returns false when last update started before the timestamp5943 when remote mirror has status failed5944 returns false when last update started after the timestamp5945 no project5946 includes mirror with a project in pending_delete5947 #disabled?5948 when disabled5949 is expected to be truthy5950 when enabled5951 is expected to be falsy5952Mutations::MergeRequests::SetLabels5953 is expected to require graphql authorizations :update_merge_request5954 #resolve5955 behaves like permission level for merge request mutation is correctly verified5956 when the user is not a project member5957 behaves like when the user does not have access to the resource5958 raises an error5959 even if assigned to the merge request5960 does not modify merge request5961 even if reviewer of the merge request5962 raises an error5963 even if author of the merge request5964 raises an error5965 when the user is a project member5966 with guest role5967 behaves like when the user does not have access to the resource5968 raises an error5969 even if assigned to the merge request5970 does not modify merge request5971 even if reviewer of the merge request5972 raises an error5973 even if author of the merge request5974 raises an error5975 with reporter role5976 behaves like when the user does not have access to the resource5977 raises an error5978 even if assigned to the merge request5979 does not modify merge request5980 even if reviewer of the merge request5981 raises an error5982 even if author of the merge request5983 raises an error5984 when the user can update the merge request5985 sets the labels, removing all others5986 returns errors merge request could not be updated5987 when passing an empty array5988 removes all labels5989 when passing operation_mode as APPEND5990 sets the labels, without removing others5991 when passing operation_mode as REMOVE5992 removes the labels, without removing others5993WebHook5994 associations5995 is expected to have many web_hook_logs5996 validations5997 is expected to validate that :url cannot be empty/falsy5998 only consider these branch filter strategies are valid5999 url_variables6000 is expected to allow :url_variables to be ‹{}›6001 is expected to allow :url_variables to be ‹{"foo" => "bar"}›6002 is expected to allow :url_variables to be ‹{"FOO" => "bar"}›6003 is expected to allow :url_variables to be ‹{"MY_TOKEN" => "bar"}›6004 is expected to allow :url_variables to be ‹{"foo2" => "bar"}›6005 is expected to allow :url_variables to be ‹{"x" => "y"}›6006 is expected to allow :url_variables to be ‹{"x" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›6007 is expected to allow :url_variables to be ‹{"foo" => "bar", "bar" => "baz"}›6008 is expected to allow :url_variables to be ‹{"k1" => "value", "k2" => "value", "k3" => "value", "k4" => "value", "k5" => "value", "k6" => "value", "k7" => "value", "k8" => "value", "k9" => "value", "k10" => "value", "k11" => "value", "k12" => "value", "k13" => "value", "k14" => "value", "k15" => "value", "k16" => "value", "k17" => "value", "k18" => "value", "k19" => "value", "k20" => "value"}›6009 is expected to allow :url_variables to be ‹{"MY-TOKEN" => "bar"}›6010 is expected to allow :url_variables to be ‹{"my_secr3t-token" => "bar"}›6011 is expected to allow :url_variables to be ‹{"x-y-z" => "bar"}›6012 is expected to allow :url_variables to be ‹{"x_y_z" => "bar"}›6013 is expected to allow :url_variables to be ‹{"f.o.o" => "bar"}›6014 is expected not to allow :url_variables to be ‹[]›6015 is expected not to allow :url_variables to be ‹{"foo" => 1}›6016 is expected not to allow :url_variables to be ‹{"bar" => :baz}›6017 is expected not to allow :url_variables to be ‹{"bar" => nil}›6018 is expected not to allow :url_variables to be ‹{"foo" => ""}›6019 is expected not to allow :url_variables to be ‹{"foo" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›6020 is expected not to allow :url_variables to be ‹{"has spaces" => "foo"}›6021 is expected not to allow :url_variables to be ‹{"" => "foo"}›6022 is expected not to allow :url_variables to be ‹{"1foo" => "foo"}›6023 is expected not to allow :url_variables to be ‹{"k1" => "value", "k2" => "value", "k3" => "value", "k4" => "value", "k5" => "value", "k6" => "value", "k7" => "value", "k8" => "value", "k9" => "value", "k10" => "value", "k11" => "value", "k12" => "value", "k13" => "value", "k14" => "value", "k15" => "value", "k16" => "value", "k17" => "value", "k18" => "value", "k19" => "value", "k20" => "value", "k21" => "value"}›6024 is expected not to allow :url_variables to be ‹{"MY--TOKEN" => "foo"}›6025 is expected not to allow :url_variables to be ‹{"MY__SECRET" => "foo"}›6026 is expected not to allow :url_variables to be ‹{"x-_y" => "foo"}›6027 is expected not to allow :url_variables to be ‹{"x..y" => "foo"}›6028 url6029 is expected to allow :url to be ‹"http://example.com"›6030 is expected to allow :url to be ‹"https://example.com"›6031 is expected to allow :url to be ‹" https://example.com "›6032 is expected to allow :url to be ‹"http://test.com/api"›6033 is expected to allow :url to be ‹"http://test.com/api?key=abc"›6034 is expected to allow :url to be ‹"http://test.com/api?key=abc&type=def"›6035 is expected not to allow :url to be ‹"example.com"›6036 is expected not to allow :url to be ‹"ftp://example.com"›6037 is expected not to allow :url to be ‹"herp-and-derp"›6038 strips :url before saving it6039 when url is local6040 is expected not to allow :url to be ‹"http://localhost:9000"›6041 is valid if application settings allow local requests from web hooks6042 when there are URL variables6043 is expected to allow :url to be ‹"http://example.com"›6044 is expected to allow :url to be ‹"http://example.com/{one}/{two}"›6045 is expected to allow :url to be ‹"http://example.com/{one}"›6046 is expected to allow :url to be ‹"http://example.com/{two}"›6047 is expected to allow :url to be ‹"http://user:s3cret@example.com/{two}"›6048 is expected to allow :url to be ‹"http://{one}:{two}@example.com"›6049 is expected to allow :url to be ‹"http://{one}"›6050 is expected to allow :url to be ‹"{url}"›6051 is expected not to allow :url to be ‹"http://example.com/{one}/{two}/{three}"›6052 is expected not to allow :url to be ‹"http://example.com/{foo}"›6053 is expected not to allow :url to be ‹"http:{user}:{pwd}//example.com/{foo}"›6054 mentions all missing variable names6055 token6056 is expected to allow :token to be ‹"foobar"›6057 is expected not to allow :token to be ‹"foo\nbar"› or ‹"foo\r\nbar"›6058 push_events_branch_filter6059 with "all branches" strategy6060 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branchname"›, ‹"good_branchname("›, ‹"good_branchname["›, or ‹""›6061 with "wildcard" strategy6062 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good_branch_name("›, or ‹""›6063 is expected not to allow :push_events_branch_filter to be ‹"bad branch name"›, ‹"bad~branchname"›, or ‹"bad_branch_name["›6064 gets rid of whitespace6065 stores whitespace only as empty6066 with "regex" strategy6067 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branch~name"›, or ‹""›6068 is expected not to allow :push_events_branch_filter to be ‹"bad_branch_name("› or ‹"bad_branch_name["›6069 before_validation :reset_token6070 resets token if url changed6071 does not reset token if new url is set together with the same token6072 does not reset token if new url is set together with a new token6073 before_validation :reset_url_variables6074 resets url variables if url changed6075 resets url variables if url is changed but url variables stayed the same6076 does not reset url variables if both url and url variables are changed6077 encrypted attributes6078 is expected to contain exactly :token, :url, and :url_variables6079 execute6080 #execute6081 passes force: false to the web hook service by default6082 passes force: true to the web hook service if required6083 #async_execute6084 does not async execute non-executable hooks6085 #destroy6086 does not cascade to web_hook_logs6087 #next_backoff6088 when there was no last backoff6089 is 10 minutes6090 when we have backed off once6091 is twice the initial value6092 when we have backed off 3 times6093 grows exponentially6094 when the previous backoff was large6095 does not exceed the max backoff value6096 #rate_limited?6097 is false when hook has not been rate limited6098 is true when hook has been rate limited6099 #rate_limit6100 returns the hook rate limit6101 #to_json6102 does not error6103 does not contain binary attributes6104 #interpolated_url6105 is not vulnerable to malicious input6106 when the hook URL does not contain variables6107 is expected to have attributes {:interpolated_url => "http://example.com"}6108 when the hook URL contains variables6109 is expected to have attributes {:interpolated_url => "http://example.com/abc/resource?token=xyz"}6110 when a variable is missing6111 raises an error6112 when the URL appears to include percent formatting6113 succeeds, interpolates correctly6114 #update_last_failure6115 is a method of this class6116 #masked_token6117 is expected to be nil6118 with a token6119 is expected to eq "************"6120 #backoff!6121 when we have not backed off before6122 increments the recent_failures count6123 when the recent failure value is the max value of a smallint6124 reduces to MAX_FAILURES6125 when the recent failure value is MAX_FAILURES6126 does not change recent_failures6127 when we have exhausted the grace period6128 sets disabled_until to the next backoff6129 increments the backoff count6130 when we have backed off MAX_FAILURES times6131 does not let the backoff count exceed the maximum failure count6132 does not change disabled_until6133 changes disabled_until when it has elapsed6134 #failed!6135 increments the failure count6136 does not update the hook if the the failure count exceeds the maximum value6137 when the recent failure value is the max value of a smallint6138 does not change recent_failures6139Gitlab::Ci::Trace6140 associations6141 is expected to respond to #job6142 when trace is migrated to object storage6143 reloads the trace in case of a chunk error6144 when live trace feature is disabled6145 behaves like trace with disabled live trace feature6146 behaves like common trace features6147 #html6148 returns formatted html6149 returns last line of formatted html6150 #raw6151 returns raw output6152 returns last line of raw output6153 #read6154 gitlab_ci_archived_trace_consistent_reads feature flag enabled6155 calls ::Ci::Build.sticking.unstick_or_continue_sticking6156 gitlab_ci_archived_trace_consistent_reads feature flag disabled6157 does not call ::Ci::Build.sticking.unstick_or_continue_sticking6158 #extract_coverage6159 matching coverage6160 returns valid coverage6161 no coverage6162 returs nil6163 #extract_sections6164 no sections6165 returs []6166 multiple sections available6167 returns valid sections6168 logs contains "section_start"6169 returns only one section6170 missing section_end6171 returns no sections6172 missing section_start6173 returns no sections6174 inverted section_start section_end6175 returns no sections6176 #write6177 when arhicved trace does not exist yet6178 does not raise an error6179 when arhicved trace already exists6180 raises an error6181 #set6182 returns trace6183 overwrite trace6184 returns new trace6185 runners token6186 hides token6187 hides build token6188 hides token6189 #append6190 returns correct trace6191 tries to append trace at different offset6192 fails with append6193 runners token6194 hides token6195 build token6196 hides token6197 #archive!6198 when live trace chunks exists6199 has job trace_chunks6200 gitlab_ci_archived_trace_consistent_reads feature flag enabled6201 calls ::Ci::Build.sticking.stick6202 gitlab_ci_archived_trace_consistent_reads feature flag disabled6203 does not call ::Ci::Build.sticking.stick6204 when build status is success6205 does not have an archived trace yet6206 when archives6207 has an archived trace6208 when another process has already been archiving6209 blocks concurrent archiving6210 #read6211 when trace artifact exists6212 behaves like read successfully with IO6213 yields with source6214 when current_path (with project_id) exists6215 behaves like read successfully with IO6216 yields with source6217 when no sources exist6218 behaves like failed to read6219 yields without source6220 trace handling6221 trace does not exist6222 is expected to equal false6223 when trace artifact exists6224 is expected to be truthy6225 when the trace artifact has been erased6226 is expected to be falsy6227 removes associations6228 new trace path is used6229 trace exist6230 can be erased6231 #archive!6232 when job does not have trace artifact6233 when trace file stored in default path6234 behaves like archive trace file6235 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"6236 when failed to create clone file6237 behaves like source trace file stays intact6238 is expected to be truthy6239 when failed to create job artifact record6240 behaves like source trace file stays intact6241 is expected to be truthy6242 when job has trace artifact6243 does not archive6244 when job is not finished yet6245 does not archive6246 #erase!6247 when it is a live trace6248 when trace is stored in file storage6249 is expected not to be nil6250 removes trace6251 when it is an archived trace6252 has trace at first6253 removes trace6254 when live trace feature is enabled6255 behaves like trace with enabled live trace feature6256 behaves like common trace features6257 #html6258 returns formatted html6259 returns last line of formatted html6260 #raw6261 returns raw output6262 returns last line of raw output6263 #read6264 gitlab_ci_archived_trace_consistent_reads feature flag enabled6265 calls ::Ci::Build.sticking.unstick_or_continue_sticking6266 gitlab_ci_archived_trace_consistent_reads feature flag disabled6267 does not call ::Ci::Build.sticking.unstick_or_continue_sticking6268 #extract_coverage6269 matching coverage6270 returns valid coverage6271 no coverage6272 returs nil6273 #extract_sections6274 no sections6275 returs []6276 multiple sections available6277 returns valid sections6278 logs contains "section_start"6279 returns only one section6280 missing section_end6281 returns no sections6282 missing section_start6283 returns no sections6284 inverted section_start section_end6285 returns no sections6286 #write6287 when arhicved trace does not exist yet6288 does not raise an error6289 when arhicved trace already exists6290 raises an error6291 #set6292 returns trace6293 overwrite trace6294 returns new trace6295 runners token6296 hides token6297 hides build token6298 hides token6299 #append6300 returns correct trace6301 tries to append trace at different offset6302 fails with append6303 runners token6304 hides token6305 build token6306 hides token6307 #archive!6308 when live trace chunks exists6309 has job trace_chunks6310 gitlab_ci_archived_trace_consistent_reads feature flag enabled6311 calls ::Ci::Build.sticking.stick6312 gitlab_ci_archived_trace_consistent_reads feature flag disabled6313 does not call ::Ci::Build.sticking.stick6314 when build status is success6315 does not have an archived trace yet6316 when archives6317 has an archived trace6318 when another process has already been archiving6319 blocks concurrent archiving6320 #read6321 when trace artifact exists6322 behaves like read successfully with IO6323 yields with source6324 when live trace exists6325 behaves like read successfully with ChunkedIO6326 yields with source6327 when no sources exist6328 behaves like failed to read6329 yields without source6330 trace handling6331 trace does not exist6332 is expected to equal false6333 when trace artifact exists6334 is expected to be truthy6335 when the trace artifact has been erased6336 is expected to be falsy6337 removes associations6338 stored in live trace6339 trace exist6340 can be erased6341 returns live trace data6342 #archived?6343 when trace does not exist6344 is expected to be falsy6345 when archived trace exists6346 is truthy6347 when archived trace record exists but file is not stored6348 is falsy6349 when live trace exists6350 is expected to be falsy6351 #live?6352 when trace does not exist6353 is expected to be falsy6354 when archived trace exists6355 is expected to be falsy6356 when live trace exists6357 is expected to be truthy6358 #archive!6359 when job does not have trace artifact6360 when trace is stored in ChunkedIO6361 behaves like archive trace file in ChunkedIO6362 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"6363 when failed to create clone file6364 behaves like a pre-commit error6365 does not save the trace artifact6366 behaves like source trace in ChunkedIO stays intact6367 is expected to eq "BUILD TRACE"6368 when failed to create job artifact record6369 behaves like a pre-commit error6370 does not save the trace artifact6371 behaves like source trace in ChunkedIO stays intact6372 is expected to eq "BUILD TRACE"6373 when storing the file raises an error6374 behaves like a post-commit error6375 saves the trace artifact but not the file6376 behaves like source trace in ChunkedIO stays intact6377 is expected to eq "BUILD TRACE"6378 when job has trace artifact6379 does not archive6380 when live trace chunks still exist6381 removes the traces6382 when job is not finished yet6383 does not archive6384 #erase!6385 when it is a live trace6386 is expected not to be nil6387 removes trace6388 when it is an archived trace6389 has trace at first6390 removes trace6391 #update_interval6392 it is not being watched6393 is expected to eq 60 seconds6394 it is being watched6395 returns 3 seconds6396 #being_watched!6397 sets gitlab:ci:trace:<job.id>:watched in redis6398 updates the expiry of gitlab:ci:trace:<job.id>:watched in redis6399 #being_watched?6400 gitlab:ci:trace:<job.id>:watched in redis is set6401 returns true6402 gitlab:ci:trace:<job.id>:watched in redis is not set6403 returns false6404 #lock6405 acquires an exclusive lease on the trace6406 #can_attempt_archival_now?6407 creates the record and returns true6408 #increment_archival_attempts!6409 creates the record and increments its value6410Gitlab::ImportExport::Project::ObjectBuilder6411 request store is not active6412 ignore cache initialize6413 request store is active6414 initialize cache in memory6415 cache object when first time find the object6416 read from cache when object has been cached6417 labels6418 finds the existing group label6419 finds the existing group label in root ancestor6420 creates a new project label6421 milestones6422 finds the existing group milestone6423 finds the existing group milestone in root ancestor6424 creates a new milestone6425 with clashing iid6426 creates milestone and claims iid for the new milestone6427 merge_request6428 finds the existing merge_request6429 creates a new merge_request6430 merge request diff commit users6431 finds the existing user6432 creates a new user6433 merge request diff commits6434 when the "committer" object is present6435 uses this object as the committer6436 when the "committer" object is missing6437 creates one from the committer name and Email6438 when the "commit_author" object is present6439 uses this object as the author6440 when the "commit_author" object is missing6441 creates one from the author name and Email6442 #find_or_create_diff_commit_user6443 caches the results6444 when the user already exists6445 returns the existing user6446 when the user does not exist6447 creates the user6448Members::Groups::CreatorService6449 .access_levels6450 returns Gitlab::Access.options_with_owner6451 behaves like owner management6452 .cannot_manage_owners?6453 when maintainer6454 cannot manage owners6455 when owner6456 can manage owners6457 .add_members6458 behaves like bulk member creation6459 returns Member objects6460 returns an empty array6461 supports different formats6462 with the same user sent more than once by user and by email6463 with the same user sent more than once by user id and by email6464 when current user does not have permission6465 does not succeed6466 with de-duplication6467 has the same user by id and user6468 has the same user sent more than once6469 when a member already exists6470 has the same user sent more than once with the member already existing6471 supports existing users as expected with user_ids passed6472 supports existing users as expected without user ids passed6473 when `tasks_to_be_done` and `tasks_project_id` are passed6474 creates a member_task with the correct attributes6475 with an already existing member6476 does not update tasks to be done if tasks already exist6477 adds tasks to be done if they do not exist6478 .add_member6479 behaves like member creation6480 returns a Member object6481 sets members.expires_at to the given expires_at6482 accepts the :guest symbol as access level6483 accepts the 10 integer as access level6484 accepts the :reporter symbol as access level6485 accepts the 20 integer as access level6486 accepts the :developer symbol as access level6487 accepts the 30 integer as access level6488 accepts the :maintainer symbol as access level6489 accepts the 40 integer as access level6490 accepts the :owner symbol as access level6491 accepts the 50 integer as access level6492 when adding a project_bot6493 when project_bot is already a member6494 does not update the member6495 when project_bot is not already a member6496 adds the member6497 when admin mode is enabled6498 sets members.created_by to the given admin current_user6499 when admin mode is disabled6500 rejects setting members.created_by to the given admin current_user6501 with no current_user6502 when called with a known user id6503 adds the user as a member6504 when called with an unknown user id6505 does not add the user as a member6506 when called with a user object6507 adds the user as a member6508 when called with a requester user object6509 adds the requester as a member6510 when called with a known user email6511 adds the user as a member6512 when called with an unknown user email6513 creates an invited member6514 when called with an unknown user email starting with a number6515 creates an invited member6516 when current_user can update member6517 creates the member6518 when called with a requester user object6519 adds the requester as a member6520 when current_user cannot update member6521 does not create the member6522 when called with a requester user object6523 does not destroy the requester6524 when member already exists6525 when member is a user6526 with no current_user6527 updates the member6528 when current_user can update member6529 updates the member6530 when current_user cannot update member6531 does not update the member6532 when member is an invite by email6533 updates the member for that email6534 authorized projects update6535 schedules a single project authorization update job when called multiple times6536Mutations::MergeRequests::Accept6537 #resolve6538 merges the merge request6539 rejects the mutation if the SHA is a mismatch6540 respects the merge commit message6541 respects the squash flag6542 respects the squash_commit_message argument6543 respects the should_remove_source_branch argument when true6544 respects the should_remove_source_branch argument when false6545 rejects unmergeable MRs6546 rejects merges when we cannot validate the hooks6547 rejects merges when the merge service returns an error6548 rejects merges when the merge service raises merge error6549 can use the MERGE_WHEN_PIPELINE_SUCCEEDS strategy6550Projects::CleanupService6551 .enqueue6552 makes the repository read-only6553 sets the bfg_object_map of the project6554 enqueues a RepositoryCleanupWorker6555 returns success6556 returns an error if making the repository read-only fails6557 returns an error if updating the project fails6558 .cleanup_after6559 sets the repository read-write6560 removes the BFG object map6561 #execute6562 runs the apply_bfg_object_map_stream gitaly RPC6563 runs garbage collection on the repository6564 clears the repository cache6565 removes the object map file6566 makes the repository read-write again6567 raises an error if no object map can be found6568 with a tainted merge request diff6569 removes the tainted commit from the database6570 ignores non-commit responses from Gitaly6571 with a tainted diff note6572 removes the tainted commit from the database6573 removes the highlight cache from redis6574 ignores non-commit responses from Gitaly6575Gitlab::Database::Migrations::TestBatchedBackgroundRunner6576 main database6577 running a real background migration6578 runs sampled jobs from the batched background migration6579 uses the correct params to instrument the background migration6580 uses the filtering clause from the migration6581 exports migration details to a file6582 with jobs to run6583 samples jobs6584 samples 1 job with a batch size higher than the table size6585 with multiple jobs to run6586 runs all pending jobs based on the last migration id6587 choosing uniform batches to run6588 #uniform_fractions6589 generates evenly distributed sequences of fractions6590 ci database6591 running a real background migration6592 runs sampled jobs from the batched background migration6593 uses the correct params to instrument the background migration6594 uses the filtering clause from the migration6595 exports migration details to a file6596 with jobs to run6597 samples jobs6598 samples 1 job with a batch size higher than the table size6599 with multiple jobs to run6600 runs all pending jobs based on the last migration id6601 choosing uniform batches to run6602 #uniform_fractions6603 generates evenly distributed sequences of fractions6604Integrations::ChatMessage::PipelineMessage6605 returns an empty pretext6606 returns the pipeline summary in the activity's title6607 returns pipeline name6608 returns a link to the project in the activity's subtitle6609 returns the build duration in the activity's text property6610 returns the user's avatar image URL in the activity's image property6611 returns the pipeline summary as the attachment's fallback property6612 returns 'good' as the attachment's color property6613 returns the committer's name and username as the attachment's author_name property6614 returns the committer's avatar URL as the attachment's author_icon property6615 returns the committer's GitLab profile URL as the attachment's author_link property6616 returns the pipeline ID, status, and duration as the attachment's title property6617 returns the pipeline URL as the attachment's title_link property6618 returns three attachment fields6619 returns the commit message as the attachment's second field property6620 returns the ref name and link as the attachment's second field property6621 returns the project's name as the attachment's footer property6622 returns the project's avatar URL as the attachment's footer_icon property6623 returns the pipeline's timestamp as the attachment's ts property6624 behaves like Integrations::ChatMessage6625 when input contains link markup6626 strips all link markup characters6627 when the pipeline failed6628 returns the summary with a 'failed' status6629 when the pipeline passed with warnings6630 returns the summary with a 'passed with warnings' status6631 when no user is provided because the pipeline was triggered by the API6632 returns the summary with 'API' as the username6633 when the user does not have an avatar6634 returns an empty string in the activity's image property6635 when the pipeline failed6636 returns 'danger' as the attachment's color property6637 when the pipeline passed with warnings6638 returns 'warning' as the attachment's color property6639 when no user is provided because the pipeline was triggered by the API6640 returns the committer's name and username as the attachment's author_name property6641 returns nil as the attachment's author_icon property6642 returns nil as the attachment's author_link property6643 when a job in the pipeline fails6644 returns five attachment fields6645 returns the stage name and link to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property6646 returns the job name and link as the attachment's fourth field property6647 when lots of jobs across multiple stages fail6648 returns the stage names and links to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property6649 returns the job names and links as the attachment's fourth field property6650 when jobs succeed on retries6651 do not return a job which succeeded on retry6652 when jobs failed even on retries6653 returns only first instance of the failed job6654 when the CI config file contains a YAML error6655 returns four attachment fields6656 returns the YAML error deatils as the attachment's third field property6657 when rendering markdown6658 returns the pipeline summary as the attachments in markdown format6659StubFeatureFlags6660 #stub_feature_flags6661 subsquent run changes state6662 when checking global state6663 feature_actors: false, expected_result: false6664 is expected to eq false6665 is expected not to eq false6666 default_enabled_if_undefined does not impact feature state6667 is expected to eq false6668 is expected not to eq false6669 feature_actors: true, expected_result: true6670 is expected to eq true6671 is expected not to eq true6672 default_enabled_if_undefined does not impact feature state6673 is expected to eq true6674 is expected not to eq true6675 feature_actors: :A, expected_result: false6676 is expected to eq false6677 is expected not to eq false6678 default_enabled_if_undefined does not impact feature state6679 is expected to eq false6680 is expected not to eq false6681 feature_actors: [:A], expected_result: false6682 is expected to eq false6683 is expected not to eq false6684 default_enabled_if_undefined does not impact feature state6685 is expected to eq false6686 is expected not to eq false6687 feature_actors: [:A, :B], expected_result: false6688 is expected to eq false6689 is expected not to eq false6690 default_enabled_if_undefined does not impact feature state6691 is expected to eq false6692 is expected not to eq false6693 when checking scoped state6694 feature_actors: false, tested_actor: nil, expected_result: false6695 is expected to eq false6696 is expected not to eq false6697 default_enabled_if_undefined does not impact feature state6698 is expected to eq false6699 is expected not to eq false6700 feature_actors: true, tested_actor: nil, expected_result: true6701 is expected to eq true6702 is expected not to eq true6703 default_enabled_if_undefined does not impact feature state6704 is expected to eq true6705 is expected not to eq true6706 feature_actors: false, tested_actor: :A, expected_result: false6707 is expected to eq false6708 is expected not to eq false6709 default_enabled_if_undefined does not impact feature state6710 is expected to eq false6711 is expected not to eq false6712 feature_actors: true, tested_actor: :A, expected_result: true6713 is expected to eq true6714 is expected not to eq true6715 default_enabled_if_undefined does not impact feature state6716 is expected to eq true6717 is expected not to eq true6718 feature_actors: :A, tested_actor: nil, expected_result: false6719 is expected to eq false6720 is expected not to eq false6721 default_enabled_if_undefined does not impact feature state6722 is expected to eq false6723 is expected not to eq false6724 feature_actors: :A, tested_actor: :A, expected_result: true6725 is expected to eq true6726 is expected not to eq true6727 default_enabled_if_undefined does not impact feature state6728 is expected to eq true6729 is expected not to eq true6730 feature_actors: :A, tested_actor: :B, expected_result: false6731 is expected to eq false6732 is expected not to eq false6733 default_enabled_if_undefined does not impact feature state6734 is expected to eq false6735 is expected not to eq false6736 feature_actors: [:A], tested_actor: nil, expected_result: false6737 is expected to eq false6738 is expected not to eq false6739 default_enabled_if_undefined does not impact feature state6740 is expected to eq false6741 is expected not to eq false6742 feature_actors: [:A], tested_actor: :A, expected_result: true6743 is expected to eq true6744 is expected not to eq true6745 default_enabled_if_undefined does not impact feature state6746 is expected to eq true6747 is expected not to eq true6748 feature_actors: [:A], tested_actor: :B, expected_result: false6749 is expected to eq false6750 is expected not to eq false6751 default_enabled_if_undefined does not impact feature state6752 is expected to eq false6753 is expected not to eq false6754 feature_actors: [:A, :B], tested_actor: nil, expected_result: false6755 is expected to eq false6756 is expected not to eq false6757 default_enabled_if_undefined does not impact feature state6758 is expected to eq false6759 is expected not to eq false6760 feature_actors: [:A, :B], tested_actor: :A, expected_result: true6761 is expected to eq true6762 is expected not to eq true6763 default_enabled_if_undefined does not impact feature state6764 is expected to eq true6765 is expected not to eq true6766 feature_actors: [:A, :B], tested_actor: :B, expected_result: true6767 is expected to eq true6768 is expected not to eq true6769 default_enabled_if_undefined does not impact feature state6770 is expected to eq true6771 is expected not to eq true6772 type handling6773 raises error6774 feature_actors: "string"6775 is expected to raise ArgumentError with message matching /accepts only/6776 feature_actors: 16777 is expected to raise ArgumentError with message matching /accepts only/6778 feature_actors: 1.06779 is expected to raise ArgumentError with message matching /accepts only/6780 feature_actors: #<Object:0x00007f4be8b18790>6781 is expected to raise ArgumentError with message matching /accepts only/6782 does not raise error6783 feature_actors: true6784 is expected not to raise Exception6785 feature_actors: false6786 is expected not to raise Exception6787 feature_actors: nil6788 is expected not to raise Exception6789 feature_actors: #<StubFeatureFlags::StubFeatureGate:0x00007f4be8b56720 @flipper_id=100>6790 is expected not to raise Exception6791 feature_actors: #<User id: @>6792 is expected not to raise Exception6793 stub timing6794 let_it_be variable6795 is expected to eq true6796 before_all variable6797 is expected to eq true6798 before(:all) variable6799 is expected to eq true6800 with stub_feature_flags meta6801 as true6802 is expected to eq true6803 as false6804 is expected to eq false6805ContainerRegistry::GitlabApiClient6806 #supports_gitlab_api?6807 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6808 returns the expected result6809 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true6810 returns the expected result6811 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6812 returns the expected result6813 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6814 returns the expected result6815 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6816 returns the expected result6817 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false6818 returns the expected result6819 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6820 returns the expected result6821 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6822 returns the expected result6823 with 401 response6824 is expected to be truthy6825 #pre_import_repository6826 status_code: 200, expected_result: :already_imported6827 is expected to eq :already_imported6828 status_code: 202, expected_result: :ok6829 is expected to eq :ok6830 status_code: 400, expected_result: :bad_request6831 is expected to eq :bad_request6832 status_code: 401, expected_result: :unauthorized6833 is expected to eq :unauthorized6834 status_code: 404, expected_result: :not_found6835 is expected to eq :not_found6836 status_code: 409, expected_result: :already_being_imported6837 is expected to eq :already_being_imported6838 status_code: 418, expected_result: :error6839 is expected to eq :error6840 status_code: 424, expected_result: :pre_import_failed6841 is expected to eq :pre_import_failed6842 status_code: 425, expected_result: :already_being_imported6843 is expected to eq :already_being_imported6844 status_code: 429, expected_result: :too_many_imports6845 is expected to eq :too_many_imports6846 #import_repository6847 status_code: 200, expected_result: :already_imported6848 is expected to eq :already_imported6849 status_code: 202, expected_result: :ok6850 is expected to eq :ok6851 status_code: 400, expected_result: :bad_request6852 is expected to eq :bad_request6853 status_code: 401, expected_result: :unauthorized6854 is expected to eq :unauthorized6855 status_code: 404, expected_result: :not_found6856 is expected to eq :not_found6857 status_code: 409, expected_result: :already_being_imported6858 is expected to eq :already_being_imported6859 status_code: 418, expected_result: :error6860 is expected to eq :error6861 status_code: 424, expected_result: :pre_import_failed6862 is expected to eq :pre_import_failed6863 status_code: 425, expected_result: :already_being_imported6864 is expected to eq :already_being_imported6865 status_code: 429, expected_result: :too_many_imports6866 is expected to eq :too_many_imports6867 #cancel_repository_import6868 status_code: 200, expected_result: :already_imported6869 is expected to eq {:migration_state=>nil, :status=>:already_imported}6870 status_code: 202, expected_result: :ok6871 is expected to eq {:migration_state=>nil, :status=>:ok}6872 status_code: 400, expected_result: :bad_request6873 is expected to eq {:migration_state=>nil, :status=>:bad_request}6874 status_code: 401, expected_result: :unauthorized6875 is expected to eq {:migration_state=>nil, :status=>:unauthorized}6876 status_code: 404, expected_result: :not_found6877 is expected to eq {:migration_state=>nil, :status=>:not_found}6878 status_code: 409, expected_result: :already_being_imported6879 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}6880 status_code: 418, expected_result: :error6881 is expected to eq {:migration_state=>nil, :status=>:error}6882 status_code: 424, expected_result: :pre_import_failed6883 is expected to eq {:migration_state=>nil, :status=>:pre_import_failed}6884 status_code: 425, expected_result: :already_being_imported6885 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}6886 status_code: 429, expected_result: :too_many_imports6887 is expected to eq {:migration_state=>nil, :status=>:too_many_imports}6888 bad request6889 is expected to eq {:migration_state=>"this_is_a_test", :status=>:bad_request}6890 force cancel6891 is expected to eq {:migration_state=>nil, :status=>:ok}6892 #import_status6893 with successful response6894 with a status6895 is expected to eq "this_is_a_test"6896 with no status6897 is expected to eq "error"6898 with non successful response6899 is expected to eq "pre_import_failed"6900 #repository_details6901 with sizing self6902 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}6903 with sizing self_with_descendants6904 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}6905 with sizing6906 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}6907 with non successful response6908 is expected to eq {}6909 #tags6910 with valid parameters6911 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-03-30T11:47:28.846Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6912 with a response with a link header6913 is expected to eq {:pagination=>{:next=>{:uri=>#<URI::HTTP http://sandbox.org/test?last=b>}}, :response_body=>[{"create...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6914 with a large page size set6915 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-03-30T11:47:28.924Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6916 with a last parameter set6917 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-03-30T11:47:28.962Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6918 with non successful response6919 logs an error and returns an empty hash6920 #sub_repositories_with_tag6921 with valid parameters6922 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}6923 with a response with a link header6924 is expected to eq {:pagination=>{:next=>{:uri=>#<URI::HTTP http://sandbox.org/test?last=c>}}, :response_body=>[{"create...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}6925 with a large page size set6926 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}6927 with a last parameter set6928 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}6929 with non successful response6930 logs an error and returns an empty hash6931 .supports_gitlab_api?6932 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6933 returns the expected result6934 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true6935 returns the expected result6936 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6937 returns the expected result6938 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false6939 returns the expected result6940 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6941 returns the expected result6942 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6943 returns the expected result6944 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6945 returns the expected result6946 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6947 returns the expected result6948 with the registry disabled6949 returns false6950 with a blank registry url6951 returns false6952 .deduplicated_size6953 with successful response6954 is expected to eq 5556955 with unsuccessful response6956 is expected to eq nil6957 with the registry disabled6958 is expected to eq nil6959 with a nil path6960 is expected to eq nil6961 with uppercase path6962 is expected to eq 5556963 .one_project_with_container_registry_tag6964 with successful response6965 behaves like fetching the project from container repository and path6966 fetches the project from the given path details6967 returns nil when path is invalid6968 returns nil when there is no container_repository matching the path6969 with unsuccessful response6970 is expected to eq nil6971 with uppercase path6972 behaves like fetching the project from container repository and path6973 fetches the project from the given path details6974 returns nil when path is invalid6975 returns nil when there is no container_repository matching the path6976AuthorizedProjectUpdate::FindRecordsDueForRefreshService6977 #execute6978 callbacks6979 incorrect_auth_found_callback callback6980 is called6981 missing_auth_found_callback callback6982 is called6983 finding project authorizations due for refresh6984 when there are changes to be made6985 finds projects authorizations that needs to be refreshed6986 finds entries with wrong access levels6987 when there are no changes to be made6988 returns empty arrays6989 #needs_refresh?6990 when there are records due for either removal or addition6991 when there are both removals and additions to be made6992 is expected to eq true6993 when there are no removals, but there are additions to be made6994 is expected to eq true6995 when there are no additions, but there are removals to be made6996 is expected to eq true6997 when there are no additions or removals to be made6998 is expected to eq false6999 #fresh_access_levels_per_project7000 returns a Hash7001 sets the keys to the project IDs7002 sets the values to the access levels7003 personal projects7004 includes the project with the right access level7005 projects the user is a member of7006 includes the project with the right access level7007 projects of groups the user is a member of7008 includes the project with the right access level7009 projects of subgroups of groups the user is a member of7010 includes the project with the right access level7011 projects shared with groups the user is a member of7012 includes the project with the right access level7013 projects shared with subgroups of groups the user is a member of7014 includes the project with the right access level7015 #current_authorizations_per_project7016 returns a Hash7017 sets the keys to the project IDs7018 sets the values to the project authorization rows7019 #current_authorizations7020 without authorizations7021 returns an empty list7022 with an authorization7023 returns the currently authorized projects7024 includes the project ID for every row7025 includes the access level for every row7026 #fresh_authorizations7027 returns the new authorized projects7028 returns the highest access level7029 every returned row7030 includes the project ID7031 includes the access level7032CustomerRelations::Contact7033 associations7034 is expected to belong to group required: false7035 is expected to belong to organization optional: true7036 is expected to have many issue_contacts7037 is expected to have many issues7038 validations7039 is expected to validate that :group cannot be empty/falsy7040 is expected to validate that :first_name cannot be empty/falsy7041 is expected to validate that :last_name cannot be empty/falsy7042 is expected to validate that the length of :phone is at most 327043 is expected to validate that the length of :first_name is at most 2557044 is expected to validate that the length of :last_name is at most 2557045 is expected to validate that the length of :email is at most 2557046 is expected to validate that the length of :description is at most 10247047 is expected to validate that :email is case-insensitively unique within the scope of :group_id7048 behaves like an object with RFC3696 compliant email-formatted attributes7049 specifically its :email attribute7050 with a value of 'info@example.com'7051 is valid7052 with a value of 'info+test@example.com'7053 is valid7054 with a value of 'o'reilly@example.com'7055 is valid7056 with a value of 'foobar'7057 is invalid7058 with a value of 'test@test@example.com'7059 is invalid7060 with a value of 'test.test.@example.com'7061 is invalid7062 with a value of '.test.test@example.com'7063 is invalid7064 with a value of 'mailto:test@example.com'7065 is invalid7066 with a value of 'lol!'+=?><#$%^&*()@gmail.com'7067 is invalid7068 .reference_prefix7069 is expected to eq "[contact:"7070 .reference_prefix_quoted7071 is expected to eq "[\"contact:"7072 .reference_postfix7073 is expected to eq "]"7074 #root_group7075 when root group7076 is expected to be valid7077 when subgroup7078 is expected to be invalid7079 #before_validation7080 strips leading and trailing whitespace7081 #self.find_ids_by_emails7082 returns ids of contacts from group7083 does not return ids of contacts from other groups7084 raises ArgumentError when called with too many emails7085 finds contacts regardless of email casing7086 #self.exists_for_group?7087 with no contacts in group7088 returns false7089 with contacts in group7090 returns true7091 #self.move_to_root_group7092 moves contacts with unique emails and deletes the rest7093 updates issue_contact.contact_id for dupes and leaves the rest untouched7094 .search7095 when search term is empty7096 returns all group contacts7097 when search term is not empty7098 when searching for first name ignoring casing7099 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 1566, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]>7100 when searching for last name ignoring casing7101 is expected to contain exactly #<CustomerRelations::Contact id: 21, group_id: 1566, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>7102 when searching for email7103 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 1566, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]>7104 when searching description ignoring casing7105 is expected to contain exactly #<CustomerRelations::Contact id: 21, group_id: 1566, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>7106 when fuzzy searching for email and last name7107 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 1566, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]> and #<CustomerRelations::Contact id: 21, group_id: 1566, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>7108 .search_by_state7109 when searching for contacts state7110 returns only inactive contacts7111 returns only active contacts7112 .counts_by_state7113 returns correct contact counts7114 sorting7115 .sort_by_name7116 sorts them by last name then first name in ascending order7117 .sort_by_organization7118 sorts them by organization in descending order7119 .sort_by_field7120 sorts them by phone in ascending order7121Banzai::Filter::VideoLinkFilter7122 when the element src has a video extension7123 behaves like a video element7124 replaces the image tag with a video tag7125 behaves like a video element7126 replaces the image tag with a video tag7127 behaves like a video element7128 replaces the image tag with a video tag7129 behaves like a video element7130 replaces the image tag with a video tag7131 behaves like a video element7132 replaces the image tag with a video tag7133 behaves like a video element7134 replaces the image tag with a video tag7135 behaves like a video element7136 replaces the image tag with a video tag7137 behaves like a video element7138 replaces the image tag with a video tag7139 behaves like a video element7140 replaces the image tag with a video tag7141 behaves like a video element7142 replaces the image tag with a video tag7143 when the element has height or width specified7144 behaves like a video element7145 replaces the image tag with a video tag7146 behaves like a video element7147 replaces the image tag with a video tag7148 behaves like a video element7149 replaces the image tag with a video tag7150 when the element has no src attribute7151 behaves like an unchanged element7152 leaves the document unchanged7153 when the element src is an image7154 behaves like an unchanged element7155 leaves the document unchanged7156 when the element src has an invalid file extension7157 behaves like an unchanged element7158 leaves the document unchanged7159 when data-canonical-src is empty7160 and src is a video7161 behaves like a video element7162 replaces the image tag with a video tag7163 and src is an image7164 behaves like an unchanged element7165 leaves the document unchanged7166 when data-canonical-src is set7167 uses the correct src7168ApplicationWorker7169 Sidekiq attributes7170 sets the queue name based on the output of the router7171 when a worker attribute is updated7172 updates the queue name afterward7173 when the worker is inherited7174 sets the queue name for the inherited worker7175 #logging_extras7176 returns extra data to be logged that was set from #log_extra_metadata_on_done7177 returns extra data to be logged that was set from #log_hash_metadata_on_done7178 when nothing is set7179 returns {}7180 #structured_payload7181 adds worker related payload7182 adds labkit context7183 adds custom payload converting stringified keys7184 does not override predefined context keys with custom payload7185 .queue_namespace7186 updates the queue name from the router again7187 updates the queue_namespace options of the worker7188 .queue7189 returns the queue name7190 .data_consistency7191 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true7192 when workers data consistency is7193 not to raise an exception7194 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true7195 when workers data consistency is7196 not to raise an exception7197 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false7198 when workers data consistency is7199 not to raise an exception7200 data_consistency: :delayed, sidekiq_option_retry: nil, expect_error: false7201 when workers data consistency is7202 not to raise an exception7203 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false7204 when workers data consistency is7205 not to raise an exception7206 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false7207 when workers data consistency is7208 not to raise an exception7209 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false7210 when workers data consistency is7211 not to raise an exception7212 data_consistency: :sticky, sidekiq_option_retry: nil, expect_error: false7213 when workers data consistency is7214 not to raise an exception7215 data_consistency: :always, sidekiq_option_retry: false, expect_error: false7216 when workers data consistency is7217 not to raise an exception7218 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false7219 when workers data consistency is7220 not to raise an exception7221 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false7222 when workers data consistency is7223 not to raise an exception7224 data_consistency: :always, sidekiq_option_retry: nil, expect_error: false7225 when workers data consistency is7226 not to raise an exception7227 .retry7228 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true7229 when retry sidekiq option is7230 not to raise an exception7231 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true7232 when retry sidekiq option is7233 not to raise an exception7234 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false7235 when retry sidekiq option is7236 not to raise an exception7237 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false7238 when retry sidekiq option is7239 not to raise an exception7240 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false7241 when retry sidekiq option is7242 not to raise an exception7243 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false7244 when retry sidekiq option is7245 not to raise an exception7246 data_consistency: :always, sidekiq_option_retry: false, expect_error: false7247 when retry sidekiq option is7248 not to raise an exception7249 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false7250 when retry sidekiq option is7251 not to raise an exception7252 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false7253 when retry sidekiq option is7254 not to raise an exception7255 different kinds of push_bulk7256 .bulk_perform_async7257 push_bulk in safe limit batches7258 when the number of jobs to be enqueued does not exceed the safe limit7259 behaves like enqueues jobs in one go7260 enqueues jobs in one go7261 behaves like logs bulk insertions7262 logs arguments and job IDs7263 behaves like returns job_id of all enqueued jobs7264 returns job_id of all enqueued jobs7265 behaves like does not schedule the jobs for any specific time7266 does not schedule the jobs for any specific time7267 when the number of jobs to be enqueued exceeds safe limit7268 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit7269 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit7270 behaves like returns job_id of all enqueued jobs7271 returns job_id of all enqueued jobs7272 behaves like does not schedule the jobs for any specific time7273 does not schedule the jobs for any specific time7274 .bulk_perform_in7275 without batches7276 when the scheduled time falls in the past7277 raises an ArgumentError exception7278 push_bulk in safe limit batches7279 when the number of jobs to be enqueued does not exceed the safe limit7280 behaves like enqueues jobs in one go7281 enqueues jobs in one go7282 behaves like returns job_id of all enqueued jobs7283 returns job_id of all enqueued jobs7284 behaves like schedules all the jobs at a specific time7285 schedules all the jobs at a specific time7286 when the number of jobs to be enqueued exceeds safe limit7287 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit7288 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit7289 behaves like returns job_id of all enqueued jobs7290 returns job_id of all enqueued jobs7291 behaves like schedules all the jobs at a specific time7292 schedules all the jobs at a specific time7293 with batches7294 when the `batch_size` is invalid7295 when `batch_size` is 07296 raises an ArgumentError exception7297 when `batch_size` is negative7298 raises an ArgumentError exception7299 when the `batch_delay` is invalid7300 when `batch_delay` is 07301 raises an ArgumentError exception7302 when `batch_delay` is negative7303 raises an ArgumentError exception7304 push_bulk in safe limit batches7305 when the number of jobs to be enqueued does not exceed the safe limit7306 behaves like enqueues jobs in one go7307 enqueues jobs in one go7308 behaves like returns job_id of all enqueued jobs7309 returns job_id of all enqueued jobs7310 behaves like schedules all the jobs at a specific time, per batch7311 schedules all the jobs at a specific time, per batch7312 when the number of jobs to be enqueued exceeds safe limit7313 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit7314 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit7315 behaves like returns job_id of all enqueued jobs7316 returns job_id of all enqueued jobs7317 behaves like schedules all the jobs at a specific time, per batch7318 schedules all the jobs at a specific time, per batch7319 .with_status7320 when the worker does have status_expiration set7321 uses status_expiration from the worker7322 uses status_expiration from the worker without with_status7323 when the worker does not have status_expiration set7324 uses the default status_expiration7325 does not set status_expiration without with_status7326Gitlab::Ci::Build::Rules::Rule::Clause::Changes7327 #satisfied_by?7328 a glob matching rule7329 exact top-level match7330 is expected to eq true7331 exact top-level no match7332 is expected to eq false7333 pattern top-level match7334 is expected to eq true7335 pattern top-level no match7336 is expected to eq false7337 exact nested match7338 is expected to eq true7339 exact nested no match7340 is expected to eq false7341 pattern nested match7342 is expected to eq true7343 pattern nested no match7344 is expected to eq false7345 ext top-level match7346 is expected to eq true7347 ext nested no match7348 is expected to eq false7349 ext slash no match7350 is expected to eq false7351 when pipeline is nil7352 is expected to be truthy7353 when using variable expansion7354 when context is nil7355 is expected to be falsey7356 when modified paths are nil7357 is expected to be truthy7358 when context has the specified variables7359 is expected to be truthy7360 when variable expansion does not match7361 is expected to be truthy7362 when using compare_to7363 when compare_to is branch or tag7364 pipeline_ref: "feature_1", compare_to: "master", paths: ["file1.txt"], result: true7365 is expected to eq true7366 pipeline_ref: "feature_1", compare_to: "master", paths: ["README.md"], result: false7367 is expected to eq false7368 pipeline_ref: "feature_1", compare_to: "master", paths: ["xyz.md"], result: false7369 is expected to eq false7370 pipeline_ref: "feature_2", compare_to: "master", paths: ["file1.txt"], result: true7371 is expected to eq true7372 pipeline_ref: "feature_2", compare_to: "master", paths: ["file2.txt"], result: true7373 is expected to eq true7374 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file1.txt"], result: false7375 is expected to eq false7376 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file2.txt"], result: true7377 is expected to eq true7378 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file1.txt"], result: false7379 is expected to eq false7380 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file2.txt"], result: true7381 is expected to eq true7382 pipeline_ref: "feature_2", compare_to: "tag_1", paths: ["file2.txt"], result: true7383 is expected to eq true7384 when compare_to is a sha7385 is expected to be truthy7386 when compare_to is not a valid ref7387 raises ParseError7388GroupDescendant7389 for a group7390 #hierarchy7391 only queries once for the ancestors7392 only queries once for the ancestors when a top is given7393 builds a hierarchy for a group7394 builds a hierarchy upto a specified parent7395 raises an error if specifying a base that is not part of the tree7396 .build_hierarchy7397 combines hierarchies until the top7398 combines upto a given parent7399 handles building a tree out of order7400 tracks the exception when a parent was not preloaded7401 recovers if a parent was not reloaded by querying for the parent7402 raises an error if not all elements were preloaded7403 for a project7404 #hierarchy7405 builds a hierarchy for a project7406 builds a hierarchy upto a specified parent7407 .build_hierarchy7408 combines hierarchies until the top7409 combines upto a given parent7410 merges to elements in the same hierarchy7411 merges complex hierarchies7412AlertManagement::Alerts::UpdateService7413 #execute7414 when the current_user is nil7415 behaves like error response7416 has an informative message7417 behaves like does not add a todo7418 is expected not to change `Todo.count`7419 behaves like does not add a system note7420 is expected not to change `Note.count`7421 when current_user does not have permission to update alerts7422 behaves like error response7423 has an informative message7424 behaves like does not add a todo7425 is expected not to change `Todo.count`7426 behaves like does not add a system note7427 is expected not to change `Note.count`7428 when no parameters are included7429 behaves like error response7430 has an informative message7431 behaves like does not add a todo7432 is expected not to change `Todo.count`7433 behaves like does not add a system note7434 is expected not to change `Note.count`7435 when an error occurs during update7436 behaves like error response7437 has an informative message7438 behaves like does not add a todo7439 is expected not to change `Todo.count`7440 behaves like does not add a system note7441 is expected not to change `Note.count`7442 when a model attribute is included without assignees7443 behaves like title update7444 updates the attribute7445 behaves like does not add a todo7446 is expected not to change `Todo.count`7447 behaves like does not add a system note7448 is expected not to change `Note.count`7449 when alert is resolved and another existing unresolved alert7450 behaves like title update7451 updates the attribute7452 behaves like does not add a todo7453 is expected not to change `Todo.count`7454 behaves like does not add a system note7455 is expected not to change `Note.count`7456 when assignees are included7457 when the assignee is the current user7458 behaves like successful assignment7459 is expected to be success7460 behaves like adds a system note7461 is expected to change `alert.reload.notes.count` by 17462 behaves like adds a todo7463 is expected to eq #<User id:917 @user334>7464 when the assignee has read permissions7465 behaves like successful assignment7466 is expected to be success7467 behaves like adds a system note7468 is expected to change `alert.reload.notes.count` by 17469 behaves like adds a todo7470 is expected to eq #<User id:917 @user334>7471 when the assignee does not have read permissions7472 behaves like error response7473 has an informative message7474 behaves like does not add a todo7475 is expected not to change `Todo.count`7476 behaves like does not add a system note7477 is expected not to change `Note.count`7478 when user is already assigned7479 behaves like does not add a system note7480 is expected not to change `Note.count`7481 behaves like does not add a todo7482 is expected not to change `Todo.count`7483 with multiple users included7484 behaves like successful assignment7485 is expected to be success7486 behaves like adds a system note7487 is expected to change `alert.reload.notes.count` by 17488 behaves like adds a todo7489 is expected to eq #<User id:917 @user334>7490 when a status is included7491 successfully changes the status7492 behaves like adds a system note7493 is expected to change `alert.reload.notes.count` by 17494 with unknown status7495 behaves like error response7496 has an informative message7497 behaves like does not add a todo7498 is expected not to change `Todo.count`7499 behaves like does not add a system note7500 is expected not to change `Note.count`7501 with resolving status7502 changes the status7503 resolves the current user's related todos7504 with existing unresolved alert7505 with fingerprints7506 does not query for existing alerts7507 when status was resolved7508 has an informative message7509 behaves like does not add a todo7510 is expected not to change `Todo.count`7511 behaves like does not add a system note7512 is expected not to change `Note.count`7513 without fingerprints7514 successfully changes the status7515 behaves like adds a system note7516 is expected to change `alert.reload.notes.count` by 17517 two existing closed alerts7518 successfully changes the status7519 behaves like adds a system note7520 is expected to change `alert.reload.notes.count` by 17521Gitlab::Middleware::ReadOnly7522 when database is read-only7523 behaves like write access for a read-only GitLab instance7524 normal requests to a read-only GitLab instance7525 expects PATCH requests to be disallowed7526 expects PUT requests to be disallowed7527 expects POST requests to be disallowed7528 expects a internal POST request to be allowed after a disallowed request7529 expects DELETE requests to be disallowed7530 expects POST of new file that looks like an LFS batch url to be disallowed7531 returns last_vistited_url for disallowed request7532 allowlisted requests7533 expects a POST internal request to be allowed7534 expects a POST internal request with trailing slash to be allowed7535 expects a graphql request to be allowed7536 expects a graphql request with trailing slash to be allowed7537 relative URL is configured7538 expects a graphql request to be allowed7539 expects a graphql request with trailing slash to be allowed7540 sidekiq admin requests7541 mounted_at: ""7542 allows requests7543 allows requests with trailing slash7544 mounted_at: "/"7545 allows requests7546 allows requests with trailing slash7547 mounted_at: "/gitlab"7548 allows requests7549 allows requests with trailing slash7550 mounted_at: "/gitlab/"7551 allows requests7552 allows requests with trailing slash7553 mounted_at: "/gitlab/gitlab"7554 allows requests7555 allows requests with trailing slash7556 mounted_at: "/gitlab/gitlab/"7557 allows requests7558 allows requests with trailing slash7559 description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"7560 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed7561 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL with trailing slash to be allowed7562 description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"7563 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed7564 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL with trailing slash to be allowed7565 description: "user sign out", path: "/users/sign_out"7566 expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed7567 expects a POST description: "user sign out", path: "/users/sign_out" URL with trailing slash to be allowed7568 description: "admin session", path: "/admin/session"7569 expects a POST description: "admin session", path: "/admin/session" URL to be allowed7570 expects a POST description: "admin session", path: "/admin/session" URL with trailing slash to be allowed7571 description: "admin session destroy", path: "/admin/session/destroy"7572 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed7573 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL with trailing slash to be allowed7574 description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"7575 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed7576 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL with trailing slash not to be allowed7577 description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"7578 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed7579 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL with trailing slash not to be allowed7580 description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"7581 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed7582 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 allowed7583 JSON requests to a read-only GitLab instance7584 expects PATCH requests to be disallowed7585 expects PUT requests to be disallowed7586 expects POST requests to be disallowed7587 expects DELETE requests to be disallowed7588RuboCop::Cop::Gitlab::MarkUsedFeatureFlags7589 # order random7590 push_frontend_feature_flag method7591 a string feature flag7592 sets the flag as used7593 a symbol feature flag7594 sets the flag as used7595 an interpolated string feature flag with a string prefix7596 sets the flag as used7597 an interpolated symbol feature flag with a string prefix7598 sets the flag as used7599 a string with a "/" in it7600 sets the flag as used7601 an interpolated string feature flag with a string prefix and suffix7602 sets the flag as used7603 a dynamic string feature flag as a variable7604 sets the flag as used7605 an integer feature flag7606 sets the flag as used7607 self.limit_feature_flag = :foo7608 sets the flag as used7609 Feature::Gitaly.disabled? method7610 a string feature flag7611 sets the flag as used7612 a symbol feature flag7613 sets the flag as used7614 an interpolated string feature flag with a string prefix7615 sets the flag as used7616 an interpolated symbol feature flag with a string prefix7617 sets the flag as used7618 an interpolated string feature flag with a string prefix and suffix7619 sets the flag as used7620 a dynamic string feature flag as a variable7621 sets the flag as used7622 an integer feature flag7623 sets the flag as used7624 with the experiment method7625 a string feature flag7626 sets the flag as used7627 a symbol feature flag7628 sets the flag as used7629 an interpolated string feature flag with a string prefix7630 sets the flag as used7631 an interpolated symbol feature flag with a string prefix7632 sets the flag as used7633 an interpolated string feature flag with a string prefix and suffix7634 sets the flag as used7635 a dynamic string feature flag as a variable7636 sets the flag as used7637 an integer feature flag7638 sets the flag as used7639 FEATURE_FLAG = :foo7640 sets the flag as used7641 Feature::Gitaly.enabled? method7642 a string feature flag7643 sets the flag as used7644 a symbol feature flag7645 sets the flag as used7646 an interpolated string feature flag with a string prefix7647 sets the flag as used7648 an interpolated symbol feature flag with a string prefix7649 sets the flag as used7650 an interpolated string feature flag with a string prefix and suffix7651 sets the flag as used7652 a dynamic string feature flag as a variable7653 sets the flag as used7654 an integer feature flag7655 sets the flag as used7656 Worker `data_consistency` method7657 sets the flag as used7658 sets the flag as used7659 Worker `deduplicate` method7660 sets the flag as used7661 sets the flag as used7662 ROUTING_FEATURE_FLAG = :foo7663 sets the flag as used7664 Feature.disabled? method7665 a string feature flag7666 sets the flag as used7667 a symbol feature flag7668 sets the flag as used7669 an interpolated string feature flag with a string prefix7670 sets the flag as used7671 an interpolated symbol feature flag with a string prefix7672 sets the flag as used7673 a string with a "/" in it7674 sets the flag as used7675 an interpolated string feature flag with a string prefix and suffix7676 sets the flag as used7677 a dynamic string feature flag as a variable7678 sets the flag as used7679 an integer feature flag7680 sets the flag as used7681 YamlProcessor::FeatureFlags.enabled? method7682 a string feature flag7683 sets the flag as used7684 a symbol feature flag7685 sets the flag as used7686 an interpolated string feature flag with a string prefix7687 sets the flag as used7688 an interpolated symbol feature flag with a string prefix7689 sets the flag as used7690 a string with a "/" in it7691 sets the flag as used7692 an interpolated string feature flag with a string prefix and suffix7693 sets the flag as used7694 a dynamic string feature flag as a variable7695 sets the flag as used7696 an integer feature flag7697 sets the flag as used7698 self.limit_feature_flag_for_override = :foo7699 sets the flag as used7700 use_rugged? method7701 a string feature flag7702 sets the flag as used7703 a symbol feature flag7704 sets the flag as used7705 an interpolated string feature flag with a string prefix7706 sets the flag as used7707 an interpolated symbol feature flag with a string prefix7708 sets the flag as used7709 an interpolated string feature flag with a string prefix and suffix7710 sets the flag as used7711 a dynamic string feature flag as a variable7712 sets the flag as used7713 an integer feature flag7714 sets the flag as used7715 Feature.enabled? method7716 a string feature flag7717 sets the flag as used7718 a symbol feature flag7719 sets the flag as used7720 an interpolated string feature flag with a string prefix7721 sets the flag as used7722 an interpolated symbol feature flag with a string prefix7723 sets the flag as used7724 a string with a "/" in it7725 sets the flag as used7726 an interpolated string feature flag with a string prefix and suffix7727 sets the flag as used7728 a dynamic string feature flag as a variable7729 sets the flag as used7730 an integer feature flag7731 sets the flag as used7732Branches::DeleteMergedService7733 #execute7734 deletes a branch that was merged7735 keeps branch that is unmerged7736 keeps "master"7737 keeps protected branches7738 keeps wildcard protected branches7739 ignores protected tags7740 user without rights7741 cannot execute7742 open merge requests7743 does not delete branches from open merge requests7744 #async_execute7745 calls DeleteMergedBranchesWorker async7746Gitlab::Ci::Config::External::Mapper7747 #process7748 when single 'include' keyword is defined7749 when the string is a local file7750 returns File instances7751 behaves like logging config file fetch7752 propagates the pipeline logger7753 when the key is a local file hash7754 returns File instances7755 when the string is a remote file7756 returns File instances7757 behaves like logging config file fetch7758 propagates the pipeline logger7759 when the key is a remote file hash7760 returns File instances7761 when the key is a template file hash7762 returns File instances7763 behaves like logging config file fetch7764 propagates the pipeline logger7765 when the key is not valid7766 returns ambigious specification error7767 when the key is a hash of local and remote7768 returns ambigious specification error7769 when the key is a project's file7770 returns File instances7771 behaves like logging config file fetch7772 propagates the pipeline logger7773 when the key is project's files7774 returns two File instances7775 behaves like logging config file fetch7776 propagates the pipeline logger7777 when 'include' is defined as an array7778 returns Files instances7779 when 'include' is defined as an array of hashes7780 returns Files instances7781 when it has ambigious match7782 returns ambigious specification error7783 when 'include' is not defined7784 returns an empty array7785 when duplicate 'include's are defined7786 does not raise an exception7787 has expanset with two7788 when passing max number of files7789 does not raise an exception7790 when too many 'includes' are defined7791 raises an exception7792 when including multiple files from a project7793 raises an exception7794 when 'include' section uses project variable7795 when local file is included as a single string7796 expands the variable7797 when remote file is included as a single string7798 expands the variable7799 defined as an array7800 expands the variable7801 defined as an array of hashes7802 expands the variable7803 local file hash7804 expands the variable7805 project name7806 expands the variable7807 with multiple files7808 expands the variable7809 when include variable has an unsupported type for variable expansion7810 does not invoke expansion for the variable7811 when local file path has wildcard7812 includes the matched local files7813 when 'include' has rules7814 when the rules matches7815 includes the file7816 when the rules does not match7817 does not include the file7818 when locations are same after masking variables7819 has expanset with two7820Projects::GitDeduplicationService7821 #execute7822 when there is not already a lease7823 when the project does not have a pool repository7824 calls disconnect_git_alternates7825 when the project has a pool repository7826 links the repository to the object pool7827 does not link the repository to the object pool if they are not on the same storage7828 when the project is a source project7829 calls fetch7830 does not call fetch if git objects are not poolable7831 does not call fetch if pool and project are not on the same storage7832 when visibility level of the project7833 is private7834 does not call fetch7835 is public7836 calls fetch7837 is internal7838 calls fetch7839 when the repository access level7840 is private7841 does not call fetch7842 is greater than private7843 calls fetch7844 when a lease is already out7845 fails when a lease is already out7846Gitlab::Utils::SanitizeNodeLink7847 # order random7848 with the scheme: JaVaScRiPt:7849 #remove_unsafe_links7850 <a> tags7851 removes the unsafe link7852 <img> tags7853 removes the unsafe link7854 <video> tags7855 removes the unsafe link7856 <audio> tags7857 removes the unsafe link7858 #safe_protocol?7859 returns false7860 with the scheme:  javascript:7861 #remove_unsafe_links7862 <a> tags7863 removes the unsafe link7864 <img> tags7865 removes the unsafe link7866 <video> tags7867 removes the unsafe link7868 <audio> tags7869 removes the unsafe link7870 #safe_protocol?7871 returns false7872 with the scheme: javascript :7873 #remove_unsafe_links7874 <a> tags7875 removes the unsafe link7876 <img> tags7877 removes the unsafe link7878 <video> tags7879 removes the unsafe link7880 <audio> tags7881 removes the unsafe link7882 #safe_protocol?7883 returns false7884 with the scheme: javascript :7885 #remove_unsafe_links7886 <a> tags7887 removes the unsafe link7888 <img> tags7889 removes the unsafe link7890 <video> tags7891 removes the unsafe link7892 <audio> tags7893 removes the unsafe link7894 #safe_protocol?7895 returns false7896 with the scheme: javascript:7897 #remove_unsafe_links7898 <a> tags7899 removes the unsafe link7900 <img> tags7901 removes the unsafe link7902 <video> tags7903 removes the unsafe link7904 <audio> tags7905 removes the unsafe link7906 #safe_protocol?7907 returns false7908 with the scheme: javascript:7909 #remove_unsafe_links7910 <a> tags7911 removes the unsafe link7912 <img> tags7913 removes the unsafe link7914 <video> tags7915 removes the unsafe link7916 <audio> tags7917 removes the unsafe link7918 #safe_protocol?7919 returns false7920 with the scheme: javascript:7921 #remove_unsafe_links7922 <a> tags7923 removes the unsafe link7924 <img> tags7925 removes the unsafe link7926 <video> tags7927 removes the unsafe link7928 <audio> tags7929 removes the unsafe link7930 #safe_protocol?7931 returns false7932 with the scheme: javascript:7933 #remove_unsafe_links7934 <a> tags7935 removes the unsafe link7936 <img> tags7937 removes the unsafe link7938 <video> tags7939 removes the unsafe link7940 <audio> tags7941 removes the unsafe link7942 #safe_protocol?7943 returns false7944 with the scheme: :javascript:7945 #remove_unsafe_links7946 <a> tags7947 removes the unsafe link7948 <img> tags7949 removes the unsafe link7950 <video> tags7951 removes the unsafe link7952 <audio> tags7953 removes the unsafe link7954 #safe_protocol?7955 returns false7956 with the scheme: javascript:7957 #remove_unsafe_links7958 <a> tags7959 removes the unsafe link7960 <img> tags7961 removes the unsafe link7962 <video> tags7963 removes the unsafe link7964 <audio> tags7965 removes the unsafe link7966 #safe_protocol?7967 returns false7968StageEntity7969 #as_json7970 contains relevant fields7971 contains detailed status7972 contains valid name7973 contains path to the stage7974 contains path to the stage dropdown7975 contains stage title7976 does not contain play_details info7977 when the jobs should be grouped7978 exposes the group key7979 and contains commit status7980 contains commit status7981 with a skipped stage7982 contains play_all_manual7983 with a scheduled stage7984 contains play_all_manual7985 with a manual stage7986 contains play_all_manual7987Ci::DeleteUnitTestsService7988 #execute7989 does not delete unit test failures not older than 14 days7990 deletes unit test failures older than 14 days7991 deletes unit tests that have no more associated unit test failures7992Gitlab7993 delegates root to GitlabEdition7994 delegates extensions to GitlabEdition7995 delegates ee? to GitlabEdition7996 delegates jh? to GitlabEdition7997 delegates ee to GitlabEdition7998 delegates jh to GitlabEdition7999 .revision8000 when a REVISION file exists8001 returns the actual Git revision8002 memoizes the revision8003 when no REVISION file exist8004 when the Git command succeeds8005 returns the actual Git revision8006 when the Git command fails8007 returns "Unknown"8008 .com?8009 is true when GITLAB_SIMULATE_SAAS is true and in development8010 is false when GITLAB_SIMULATE_SAAS is true and in test8011 when not simulating SaaS8012 is true when on https://gitlab.com8013 is true when on https://staging.gitlab.com8014 is true when on other gitlab subdomain8015 is true when on other gitlab subdomain with hyphen8016 is false when not on GitLab.com8017 .com8018 when on GitLab.com8019 is expected to equal true8020 when not on GitLab.com8021 is expected to be nil8022 .staging?8023 is false when on https://gitlab.com8024 is true when on https://staging.gitlab.com8025 is false when not on staging8026 .canary?8027 is true when CANARY env var is set to true8028 is false when CANARY env var is set to false8029 .com_and_canary?8030 is true when on .com and canary8031 is false when on .com but not on canary8032 .com_but_not_canary?8033 is false when on .com and canary8034 is true when on .com but not on canary8035 .org_or_com?8036 is true when on .com8037 is true when org8038 is false when not dev, org or com8039 .simulate_com?8040 when GITLAB_SIMULATE_SAAS is true8041 is false when test env8042 is true when dev env8043 is false when env is not dev8044 when GITLAB_SIMULATE_SAAS is false8045 is false when test env8046 is false when dev env8047 is false when env is not dev or test8048 .dev_or_test_env?8049 is true when test env8050 is true when dev env8051 is false when env is not dev or test8052 .http_proxy_env?8053 returns true when lower case https8054 returns true when upper case https8055 returns true when lower case http8056 returns true when upper case http8057 returns false when not set8058 .maintenance_mode?8059 returns true when maintenance mode is enabled8060 returns false when maintenance mode is disabled8061 returns false when maintenance mode column is not present8062Gitlab::Observability8063 # order random8064 .allowed_for_action?8065 returns false if action is nil8066 allowed? calls8067 action: :foo, permission: :admin_observability8068 calls allowed? with admin_observability when actions is foo8069 action: :explore, permission: :read_observability8070 calls allowed? with read_observability when actions is explore8071 action: :datasources, permission: :admin_observability8072 calls allowed? with admin_observability when actions is datasources8073 action: :manage, permission: :admin_observability8074 calls allowed? with admin_observability when actions is manage8075 action: :dashboards, permission: :read_observability8076 calls allowed? with read_observability when actions is dashboards8077 .observability_url8078 is expected to eq "https://observe.gitlab.com"8079 when on staging.gitlab.com8080 is expected to eq "https://observe.staging.gitlab.com"8081 when overriden via ENV8082 is expected to eq "https://example.net"8083 .allowed?8084 checks if ability is allowed for the given user and group8085 checks for admin_observability if permission is missing8086 returns true if the ability is allowed8087 returns false if the ability is not allowed8088 returns false if observability url is missing8089 returns false if group is missing8090 returns false if user is missing8091 .embeddable_url8092 when URL is valid8093 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=%2Fexplore%3FgroupId%3D14485840%26left%3D%255B%2522now-1h%2522,%2522now%2522,%2522new-sentry.gitlab.net%2522,%257B%257D%255D", expected: "https://observe.gitlab.com/-/123/explore?groupId=14485840&left=%5B%22now-1h%22,%22now%22,%22new-sentry.gitlab.net%22,%7B%7D%5D"8094 returns an embeddable observability url8095 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/goto/foo", expected: "https://observe.gitlab.com/-/123/goto/foo"8096 returns an embeddable observability url8097 when URL is invalid8098 returns nil if the path detection throws an error8099 returns nil if parsing observaboility path throws an error8101 returns nil8103 returns nil8104 input: "not a link"8105 returns nil8107 returns nil8108 input: "http://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/explore"8109 returns nil8110 input: "https://www.gitlab.com:123/groups/test-path/-/observability/explore?observability_path=/explore"8111 returns nil8112 input: "https://www.gitlab.com@example.com/groups/test-path/-/observability/explore?observability_path=/explore"8113 returns nil8114 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=@example.com"8115 returns nil8116 input: "https://www.gitlab.com/groups/INVALID_GROUP/-/observability/explore?observability_path=/explore"8117 returns nil8118 input: "https://www.gitlab.com/groups/test-path/-/INVALID_CONTROLLER/explore?observability_path=/explore"8119 returns nil8120 input: "https://www.gitlab.com/groups/test-path/-/observability/INVALID_ACTION?observability_path=/explore"8121 returns nil8123 returns nil8124 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?missing_observability_path=/explore"8125 returns nil8126 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/not_embeddable"8127 returns nil8128 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/datasources"8129 returns nil8130 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=not a valid path"8131 returns nil8132 .build_full_url8133 returns the full observability url for the given params8134 handles missing / from observability_path8135 sanitises observability_path8136 when observability_path is missing8137 builds the url with the fallback_path8138 defaults to / if fallback_path is also missing8139GroupClusterablePresenter8140 #can_create_cluster?8141 when user can create8142 is expected to be truthy8143 when user cannot create8144 is expected to be falsey8145 #index_path8146 is expected to eq "/groups/group268/-/clusters"8147 #connect_path8148 is expected to eq "/groups/group269/-/clusters/connect"8149 #create_user_clusters_path8150 is expected to eq "/groups/group270/-/clusters/create_user"8151 #cluster_status_cluster_path8152 is expected to eq "/groups/group271/-/clusters/18/cluster_status"8153 #clear_cluster_cache_path8154 is expected to eq "/groups/group272/-/clusters/21/clear_cache"8155 #cluster_path8156 is expected to eq "/groups/group273/-/clusters/24"8157 #metrics_dashboard_path8158 is expected to eq "/groups/group274/-/clusters/27/metrics_dashboard"8159 #learn_more_link8160 is expected to include "user/group/clusters/index"8161BulkImports::Entity8162 associations8163 is expected to belong to bulk_import required: true8164 is expected to belong to parent required: false8165 is expected to belong to group optional: true inverse_of => bulk_import_entities8166 is expected to belong to project required: false8167 is expected to have many trackers class_name => BulkImports::Tracker inverse_of => entity8168 validations8169 is expected to validate that :source_type cannot be empty/falsy8170 is expected to validate that :source_full_path cannot be empty/falsy8171 is expected to validate that :destination_name cannot be empty/falsy8172 is expected to define :source_type as an enum backed by an integer with values ‹[:group_entity, :project_entity]›8173 when formatting with regexes8174 is expected to allow :destination_namespace to be ‹"namespace"›, ‹"parent/namespace"›, ‹"parent/group/subgroup"›, or ‹""›8175 is expected not to allow :destination_namespace to be ‹"parent/namespace/"›, ‹"/namespace"›, ‹"parent group/subgroup"›, or ‹"@namespace"›8176 is expected to allow :source_full_path to be ‹"source"›, ‹"source/path"›, or ‹"source/full/path"›8177 is expected not to allow :source_full_path to be ‹"/source"›, ‹"http://source/path"›, ‹"sou rce/full/path"›, or ‹""›8178 is expected to allow :destination_slug to be ‹"destination"›, ‹"destination-slug"›, or ‹"new-destination-slug"›8179 when destination_slug is invalid8180 raises an error8181 when associated with a group and project8182 is invalid8183 when not associated with a group or project8184 is valid8185 when associated with a group and no project8186 is valid as a group_entity8187 is valid when destination_namespace is empty8188 is invalid when destination_namespace is nil8189 is invalid when destination_slug is empty8190 is invalid when destination_slug is nil8191 is invalid as a project_entity8192 when associated with a project and no group8193 is valid8194 is invalid when destination_namespace is nil8195 is invalid as a project_entity8196 when the parent is a group import8197 is valid8198 when the parent is a project import8199 is invalid8200 validate destination namespace of a group_entity8201 is invalid if destination namespace is the source namespace8202 is invalid if destination namespace is a descendant of the source8203 when source_type is a project_entity8204 is valid8205 #encoded_source_full_path8206 encodes entity source full path8207 scopes8208 .by_user_id8209 returns entities associated with specified user8210 .all_human_statuses8211 returns all human readable entity statuses8212 #pipelines8213 when entity is group8214 returns group pipelines8215 when entity is project8216 returns project pipelines8217 #pipeline_exists?8218 returns true when the given pipeline name exists in the pipelines list8219 returns false when the given pipeline name exists in the pipelines list8220 #pluralized_name8221 when entity is group8222 returns groups8223 when entity is project8224 returns projects8225 #export_relations_url_path8226 when entity is group8227 returns group export relations url8228 when entity is project8229 returns project export relations url8230 #relation_download_url_path8231 returns export relations url with download query string8232 #entity_type8233 returns entity type8234 #project?8235 returns true if project entity8236 #group?8237 returns true if group entity8238 #base_resource_url_path8239 returns base entity url path8240 #wiki_url_path8241 returns entity wiki url path8242 #update_service8243 returns correct update service class8244 #full_path8245 returns group full path for project entity8246 returns project full path for project entity8247 returns nil when not associated with group or project8248 #default_visibility_level8249 when entity is a group8250 returns default group visibility8251 when entity is a project8252 returns default project visibility8253 #update_has_failures8254 when entity has failures8255 sets has_failures flag to true8256 when entity does not have failures8257 sets has_failures flag to false8258Mutations::Issues::SetConfidential8259 is expected to require graphql authorizations :update_issue8260 #resolve8261 behaves like permission level for issue mutation is correctly verified8262 when the user is not a project member8263 behaves like when the user does not have access to the resource8264 raises an error8265 even if assigned to the issue8266 does not modify issue8267 even if author of the issue8268 does not modify issue8269 when the user is a project member8270 with guest role8271 behaves like when the user does not have access to the resource8272 raises an error8273 even if assigned to the issue8274 does not modify issue8275 even if author of the issue8276 does not modify issue8277 when the user can update the issue8278 returns the issue as confidential8279 when passing confidential as false8280 updates the issue confidentiality to false8281 when guest user is an assignee8282 does not change issue confidentiality8283TreeHelper8284 #commit_in_single_accessible_branch8285 escapes HTML from the branch name8286 #vue_file_list_data8287 returns a list of attributes related to the project8288 #web_ide_button_data8289 returns a list of attributes related to the project8290 a blob is passed8291 returns edit url and webide url for the blob8292 does not load blob from repository again8293 nil blob is passed8294 does not load blob from repository8295 user does not have write access but a personal fork exists8296 includes forked project path as project_path8297 a blob is passed8298 returns edit url and web ide for the blob in the fork8299 for archived project8300 does not show any buttons8301 user has write access8302 includes original project path as project_path8303 a blob is passed8304 returns edit url and web ide for the blob in the fork8305 gitpod settings is enabled8306 has show_gitpod_button: true8307 has gitpod_enabled: true when user has enabled gitpod8308 has gitpod_enabled: false when user has not enabled gitpod8309 has show_gitpod_button: false when web ide button is not shown8310 .patch_branch_name8311 returns a patch branch name8312 without a current_user8313 returns nil8314Ci::TriggerPolicy8315 #rules8316 when owner is an user8317 when user is maintainer of the project8318 is expected to be allowed :manage_trigger8319 is expected to be allowed :admin_trigger8320 when owner is another user8321 when user is maintainer of the project8322 is expected to be allowed :manage_trigger8323 is expected not to be allowed :admin_trigger8324 when user is developer of the project8325 is expected not to be allowed :manage_trigger8326 is expected not to be allowed :admin_trigger8327 when user is not member of the project8328 is expected not to be allowed :manage_trigger8329 is expected not to be allowed :admin_trigger8330Projects::Members::EffectiveAccessLevelFinder#execute8331 for a personal project8332 when the project owner is a member of the project8333 behaves like includes access level of the owner of the project8334 includes access level of the owner of the project as Owner8335 when the project owner is not explicitly a member of the project8336 behaves like includes access level of the owner of the project8337 includes access level of the owner of the project as Owner8338 direct members of the project8339 includes access levels of the direct members of the project8340 does not include access levels of users who have requested access to the project8341 includes access levels of users who are in non-active state8342 for a project within a group8343 project in a root group8344 includes access levels of users who are direct members of the parent group8345 when access level is developer8346 when access level is owner8347 project in a subgroup8348 includes access levels of users who are members of the ancestors of the parent group8349 user is both a member of the project and a member of the parent group8350 includes the maximum access level among project and group membership8351 members from group share8352 includes the user from the group share with the right access level8353 when the project also has the same user as a member, but with a different access level8354 includes the maximum access level among project and group membership8355 when the project's ancestor also has the same user as a member, but with a different access level8356 includes the maximum access level among project and group membership8357 for a project that is shared with other group(s)8358 includes the least among the specified access levels8359 even when the `lock_memberships_to_ldap` setting has been turned ON8360 includes the least among the specified access levels8361 when the group containing the project has forbidden group shares for any of its projects8362 does not include the users from any group shares8363 a combination of all possible avenues of membership8364 includes the highest access level from all avenues of memberships8365Gitlab::Ci::Build::AutoRetry8366 #allowed?8367 description: "retries are disabled", retry_count: 0, options: {:max=>0}, failure_reason: nil, result: false8368 is expected to eq false8369 description: "max equals count", retry_count: 2, options: {:max=>2}, failure_reason: nil, result: false8370 is expected to eq false8371 description: "max is higher than count", retry_count: 1, options: {:max=>2}, failure_reason: nil, result: true8372 is expected to eq true8373 description: "max is a string", retry_count: 1, options: {:max=>"2"}, failure_reason: nil, result: true8374 is expected to eq true8375 description: "matching failure reason", retry_count: 0, options: {:when=>["api_failure"], :max=>2}, failure_reason: :api_failure, result: true8376 is expected to eq true8377 description: "not matching with always", retry_count: 0, options: {:when=>["always"], :max=>2}, failure_reason: :api_failure, result: true8378 is expected to eq true8379 description: "not matching reason", retry_count: 0, options: {:when=>["script_error"], :max=>2}, failure_reason: :api_failure, result: false8380 is expected to eq false8381 description: "scheduler failure override", retry_count: 1, options: {:when=>["scheduler_failure"], :max=>1}, failure_reason: :scheduler_failure, result: false8382 is expected to eq false8383 description: "default for scheduler failure", retry_count: 1, options: {}, failure_reason: :scheduler_failure, result: true8384 is expected to eq true8385 description: "quota is exceeded", retry_count: 0, options: {:max=>2}, failure_reason: :ci_quota_exceeded, result: false8386 is expected to eq false8387 description: "no matching runner", retry_count: 0, options: {:max=>2}, failure_reason: :no_matching_runner, result: false8388 is expected to eq false8389 description: "missing dependencies", retry_count: 0, options: {:max=>2}, failure_reason: :missing_dependency_failure, result: false8390 is expected to eq false8391 description: "forward deployment failure", retry_count: 0, options: {:max=>2}, failure_reason: :forward_deployment_failure, result: false8392 is expected to eq false8393 description: "environment creation failure", retry_count: 0, options: {:max=>2}, failure_reason: :environment_creation_failure, result: false8394 is expected to eq false8395 when build is not retryable8396 is expected to eq false8397 #options_retry_max8398 with retries max config option8399 returns the number of configured max retries8400 without retries max config option8401 returns nil8402 when build is degenerated8403 returns nil8404 with integer only config option8405 returns the number of configured max retries8406 #options_retry_when8407 with retries when config option8408 returns the configured when8409 without retries when config option8410 returns always array8411 with integer only config option8412 returns always array8413 with retry[:when] set to nil8414 returns always array8415Gitlab::DataBuilder::Deployment8416 .build8417 returns the object kind for a deployment8418 returns data for the given build8419 does not include the deployable URL when there is no deployable8420 when commit does not exist in the repository8421 returns nil for commit_url8422 returns nil for commit_title8423 when deployed_by is nil8424 returns nil for user8425 returns nil for user_url8426Lfs::UnlockFileService8427 #execute8428 when not authorized8429 doesn't succeed8430 when authorized8431 when lock does not exists8432 doesn't succeed8433 when unlocked by the author8434 succeeds8435 when unlocked by a different user8436 doesn't succeed8437 when forced8438 by a regular user8439 doesn't succeed8440 by a maintainer user8441 succeeds8442Metrics::Dashboard::CloneDashboardService8443 #execute8444 user does not have push right to repository8445 behaves like misconfigured dashboard service response with stepable8446 returns an appropriate message and status code8447 with rights to push to the repository8448 wrong target file extension8449 behaves like misconfigured dashboard service response with stepable8450 returns an appropriate message and status code8451 wrong source dashboard file8452 behaves like misconfigured dashboard service response with stepable8453 returns an appropriate message and status code8454 path traversal attack attempt8455 behaves like misconfigured dashboard service response with stepable8456 returns an appropriate message and status code8457 path traversal attack attempt on target file8458 strips target file name to safe value8459 valid parameters8460 extends dashboard template path to absolute url8461 behaves like valid dashboard cloning process8462 dashboard template: config/prometheus/common_metrics.yml8463 delegates commit creation to Files::CreateService8464 user has defined custom metrics8465 uses external service to includes them into new file content8466 behaves like valid dashboard cloning process8467 dashboard template: config/prometheus/cluster_metrics.yml8468 delegates commit creation to Files::CreateService8469 user has defined custom metrics8470 uses external service to includes them into new file content8471 behaves like valid dashboard cloning process8472 dashboard template: config/prometheus/self_monitoring_default.yml8473 delegates commit creation to Files::CreateService8474 user has defined custom metrics8475 uses external service to includes them into new file content8476 selected branch already exists8477 behaves like misconfigured dashboard service response with stepable8478 returns an appropriate message and status code8479 blank branch name8480 behaves like misconfigured dashboard service response with stepable8481 returns an appropriate message and status code8482 dashboard file already exists8483 behaves like misconfigured dashboard service response with stepable8484 returns an appropriate message and status code8485 Files::CreateService success8486 clears dashboards cache8487 returns success8488 Files::CreateService fails8489 does NOT clear dashboards cache8490 returns error8491MergeRequest::Metrics8492 associations8493 is expected to belong to merge_request required: false8494 is expected to belong to target_project class_name => Project required: false8495 is expected to belong to latest_closed_by class_name => User required: false8496 is expected to belong to merged_by class_name => User required: false8497 scopes8498 .merged_after8499 finds the record8500 doesn't include record outside of the filter8501 .merged_before8502 finds the record8503 doesn't include record outside of the filter8504 .by_target_project8505 finds metrics record with the associated target project8506 behaves like cleanup by a loose foreign key8507 cleans up (delete or nullify) the model8508 update8509 when pipeline_id is nullified8510 nullifies build related columns via DB trigger8511 when updated but pipeline_id is not nullified8512 does not nullify build related columns8513Security::CiConfiguration::DependencyScanningCreateService8514 # order random8515 #execute8516 user does not belong to project8517 returns an error status8518 does not track a snowplow event8519 user belongs to project8520 does track the snowplow event8521 raises exception if the user does not have permission to create a new branch8522 when exception is raised8523 when branch was created8524 tries to rm branch8525 when branch was not created8526 does not try to rm branch8527 with no parameters8528 returns the path to create a new merge request8529 when the project has a non-default ci config file8530 does track the snowplow event8531 when existing ci config contains anchors/aliases8532 fails with error8533 when parsing existing ci config gives a Psych error8534 fails with error8535 when parsing existing ci config gives any other error8536 is successful8537 when the project is empty8538 returns an error8539Reenqueuer8540 disables Sidekiq retries8541 behaves like reenqueuer8542 implements lease_timeout8543 uses the :none deduplication strategy8544 #perform8545 tries to obtain a lease8546 behaves like #perform is rate limited to 1 call per8547 when the work finishes in 0 seconds8548 sleeps exactly the minimum duration8549 when the work finishes in 10% of minimum duration8550 sleeps 90% of minimum duration8551 when the work finishes in 90% of minimum duration8552 sleeps 10% of minimum duration8553 when the work finishes exactly at minimum duration8554 does not sleep8555 when the work takes 10% longer than minimum duration8556 does not sleep8557 when the work takes twice as long as minimum duration8558 does not sleep8559 #perform8560 when the lease is available8561 does perform8562 when the lease is taken8563 does not perform8564 when #perform returns truthy8565 reenqueues the worker8566 returns the original value from #perform8567 when #perform returns falsey8568 does not reenqueue the worker8569 returns the original value from #perform8570Reenqueuer::ReenqueuerSleeper8571 behaves like #perform is rate limited to 1 call per8572 when the work finishes in 0 seconds8573 sleeps exactly the minimum duration8574 when the work finishes in 10% of minimum duration8575 sleeps 90% of minimum duration8576 when the work finishes in 90% of minimum duration8577 sleeps 10% of minimum duration8578 when the work finishes exactly at minimum duration8579 does not sleep8580 when the work takes 10% longer than minimum duration8581 does not sleep8582 when the work takes twice as long as minimum duration8583 does not sleep8584 #ensure_minimum_duration8585 when the block completes well before the minimum duration8586 sleeps until the minimum duration8587 when the block completes just before the minimum duration8588 sleeps until the minimum duration8589 when the block completes just after the minimum duration8590 does not sleep8591 when the block completes well after the minimum duration8592 does not sleep8593IssueSidebarBasicEntity8594 contains keys related to issuables8595 contains attributes related to the issue8596 current_user8597 contains attributes related to the current user8598 can_update_escalation_status8599 for a standard issue8600 is not present8601 for an incident issue8602 is present and true8603 without permissions8604 is present and false8605 show_crm_contacts8606 is_reporter: false, contacts_exist_for_group: false, expected: false8607 sets proper boolean value for show_crm_contacts8608 is_reporter: false, contacts_exist_for_group: true, expected: false8609 sets proper boolean value for show_crm_contacts8610 is_reporter: true, contacts_exist_for_group: false, expected: false8611 sets proper boolean value for show_crm_contacts8612 is_reporter: true, contacts_exist_for_group: true, expected: true8613 sets proper boolean value for show_crm_contacts8614 in subgroup8615 with crm enabled8616 is true8617 with crm disabled8618 is false8619ProjectExportWorker8620 behaves like export worker8621 #perform8622 when it succeeds8623 calls the ExportService8624 export job8625 creates an export job record for the project8626 sets the export job status to started8627 sets the export job status to finished8628 when it fails8629 does not raise an exception when strategy is invalid8630 does not raise error when project cannot be found8631 does not raise error when user cannot be found8632 fails the export job status8633 sidekiq options8634 disables retry8635 disables dead8636 sets default status expiration8637 exporters duration measuring8638 logs exporters execution duration8639Projects::ContainerRepository::DestroyService8640 when user has access to registry8641 behaves like executing with permissions8642 deletes the repository8643 sends disable_timeout = true as part of the params as default8644 sends disable_timeout = false as part of the params if it is set to false8645 when deleting the tags fails8646 sets status as deleted_failed8647 logs the error8648 behaves like returning an error status with message8649 returns an error status8650 when destroying the repository fails8651 sets status as deleted_failed8652 logs the error8653 behaves like returning an error status with message8654 returns an error status8655 when user does not have access to registry8656 does not delete a repository8657 behaves like returning an error status with message8658 returns an error status8659 when called during project deletion8660 behaves like executing with permissions8661 deletes the repository8662 sends disable_timeout = true as part of the params as default8663 sends disable_timeout = false as part of the params if it is set to false8664 when deleting the tags fails8665 sets status as deleted_failed8666 logs the error8667 behaves like returning an error status with message8668 returns an error status8669 when destroying the repository fails8670 sets status as deleted_failed8671 logs the error8672 behaves like returning an error status with message8673 returns an error status8674 when there is no user8675 behaves like returning an error status with message8676 returns an error status8677Users::CalloutsHelper8678 .show_gke_cluster_integration_callout?8679 when user can create a cluster8680 when user has not dismissed8681 when active_nav_link is in the operations section8682 is expected to equal true8683 when active_nav_link is not in the operations section8684 is expected to equal false8685 when user dismissed8686 is expected to equal false8687 when user can not create a cluster8688 is expected to equal false8689 .show_feature_flags_new_version?8690 when the feature flags new version info has not been dismissed8691 is expected to be truthy8692 when the feature flags new version has been dismissed8693 is expected to be falsy8694 .show_registration_enabled_user_callout?8695 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: true8696 is expected to equal true8697 gitlab_com: true, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false8698 is expected to equal false8699 gitlab_com: false, current_user: user, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false8700 is expected to equal false8701 gitlab_com: false, current_user: admin, signup_enabled: false, user_dismissed: false, controller_path: "admin/users", expected_result: false8702 is expected to equal false8703 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: true, controller_path: "admin/users", expected_result: false8704 is expected to equal false8705 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "projects/issues", expected_result: false8706 is expected to equal false8707 .show_unfinished_tag_cleanup_callout?8708 when user has not dismissed8709 is expected to equal true8710 when user dismissed8711 is expected to equal false8712 .show_security_newsletter_user_callout?8713 when `current_user` is not an admin8714 is expected to equal false8715 when user has dismissed callout8716 is expected to equal false8717 when `current_user` is an admin and user has not dismissed callout8718 is expected to equal true8719 .show_pages_menu_callout?8720 when user has not dismissed8721 is expected to equal true8722 when user dismissed8723 is expected to equal false8724 #web_hook_disabled_dismissed?8725 without a project8726 is false8727 with a project8728 when the web-hook failure callout has never been dismissed8729 is false8730 when the web-hook failure callout has been dismissed8731 is true8732 is true when passed as a presenter8733 when there was an older failure8734 is true8735 when there has been a more recent failure8736 is false8737Gitlab::ProtocolAccess8738 .allowed?8739 protocol: "web", project: nil, admin_setting: nil, namespace_setting: nil, expected_result: true8740 is expected to equal true8741 protocol: "ssh", project: nil, admin_setting: nil, namespace_setting: nil, expected_result: true8742 is expected to equal true8743 protocol: "http", project: nil, admin_setting: nil, namespace_setting: nil, expected_result: true8744 is expected to equal true8745 protocol: "ssh", project: nil, admin_setting: "", namespace_setting: nil, expected_result: true8746 is expected to equal true8747 protocol: "http", project: nil, admin_setting: "", namespace_setting: nil, expected_result: true8748 is expected to equal true8749 protocol: "ssh", project: nil, admin_setting: "ssh", namespace_setting: nil, expected_result: true8750 is expected to equal true8751 protocol: "http", project: nil, admin_setting: "http", namespace_setting: nil, expected_result: true8752 is expected to equal true8753 protocol: "ssh", project: nil, admin_setting: "http", namespace_setting: nil, expected_result: false8754 is expected to equal false8755 protocol: "http", project: nil, admin_setting: "ssh", namespace_setting: nil, expected_result: false8756 is expected to equal false8757 protocol: "ssh", project: p1, admin_setting: nil, namespace_setting: "all", expected_result: true8758 is expected to equal true8759 protocol: "http", project: p1, admin_setting: nil, namespace_setting: "all", expected_result: true8760 is expected to equal true8761 protocol: "ssh", project: p1, admin_setting: nil, namespace_setting: "ssh", expected_result: true8762 is expected to equal true8763 protocol: "http", project: p1, admin_setting: nil, namespace_setting: "http", expected_result: true8764 is expected to equal true8765 protocol: "ssh", project: p1, admin_setting: nil, namespace_setting: "http", expected_result: false8766 is expected to equal false8767 protocol: "http", project: p1, admin_setting: nil, namespace_setting: "ssh", expected_result: false8768 is expected to equal false8769 protocol: "ssh", project: p1, admin_setting: "", namespace_setting: "all", expected_result: true8770 is expected to equal true8771 protocol: "http", project: p1, admin_setting: "", namespace_setting: "all", expected_result: true8772 is expected to equal true8773 protocol: "ssh", project: p1, admin_setting: "ssh", namespace_setting: "ssh", expected_result: true8774 is expected to equal true8775 protocol: "http", project: p1, admin_setting: "http", namespace_setting: "http", expected_result: true8776 is expected to equal true8777Integrations::Harbor8778 behaves like Integrations::ResetSecretFields8779 #exposing_secrets_fields8780 returns an array of strings8781 #reset_secret_fields?8782 returns false if no exposing field has changed8783 returns true if any exposing field has changed8784 validation callback8785 when an exposing field has changed8786 clears all secret fields8787 when a secret field has been updated8788 does not clear this secret field8789 when a secret field has been updated with the same value8790 does not clear this secret field8791 when no exposing field has changed8792 does not clear any secret fields8793 masked password8794 is expected not to allow :password to be ‹"hello"›8795 is expected not to allow :password to be ‹"hello world"›8796 is expected not to allow :password to be ‹"hello$VARIABLEworld"›8797 is expected not to allow :password to be ‹"hello\\rworld"›8798 is expected to allow :password to be ‹"helloworld"›8799 url8800 is expected not to allow :url to be ‹"https://192.168.1.1"›8801 is expected not to allow :url to be ‹"https://127.0.0.1"›8802 is expected to allow :url to be ‹"https://demo.goharbor.io"›8803 hostname8804 returns the host of the integration url8805 #fields8806 returns custom fields8807 #test8808 gets response from Gitlab::Harbor::Client#ping8809 #help8810 renders prompt information8811 .to_param8812 returns the name of the integration8813 ci variables8814 returns vars when harbor_integration is activated8815 when harbor_integration is inactive8816 returns []8817 with robot username8818 returns username variable with $$8819Ci::PipelineEditorHelper8820 can_view_pipeline_editor?8821 user can view editor if they can collaborate8822 user can not view editor if they cannot collaborate8823 #js_pipeline_editor_data8824 with a project with commits8825 returns pipeline editor data8826 with an empty project8827 returns pipeline editor data8828 with a project with no repository8829 returns pipeline editor data8830 with a remote CI config8831 returns true for uses-external-config in pipeline editor data8832 with a CI config from an external project8833 returns true for uses-external-config in pipeline editor data8834 with a non-default branch name8835 returns correct values8836ChatNotificationWorker8837 instructs sidekiq not to retry on failure8838 #perform8839 does nothing when the build no longer exists8840 sends a response for an existing build8841 when the trace sections could not be found8842 reschedules the job8843 raises an error after 300 seconds of retrying8844 #send_response8845 when a responder could not be found8846 does nothing8847 when a responder could be found8848 sends the response for a succeeded build8849 sends the response for a failed build8850Mutations::Ci::Runner::Update8851 is expected to require graphql authorizations :update_runner8852 #resolve8853 when the user cannot admin the runner8854 generates an error8855 when required arguments are missing8856 raises an error8857 when user can update runner8858 with valid arguments8859 updates runner with correct values8860 with associatedProjects argument8861 with id set to project runner8862 updates runner attributes and project relationships8863 with user not allowed to assign runner8864 does not update runner8865 with an empty list of projects8866 removes project relationships8867 with id set to instance runner8868 raises error8869 with non-existing project ID in associatedProjects argument8870 does not change associated projects8871 with out-of-range maximum_timeout and missing tag_list8872 returns a descriptive error8873 with too long maintenance note8874 returns a descriptive error8875Gitlab::ImportExport::RemoteStreamUpload8876 #execute8877 when download request and upload request return 2008878 uploads the downloaded content8879 when upload method is put8880 uploads using the put method8881 when download request does not return 2008882 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while downloading file. Code: 404"8883 when upload request does not returns 2008884 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while uploading file. Code: 403"8885 when download URL is a local address8886 raises error8887 when local requests are allowed8888 raises does not error8889 when download URL is a local network8890 raises error8891 when local network requests are allowed8892 raises does not error8893 when upload URL is a local address8894 raises error8895 when local requests are allowed8896 raises does not error8897 when upload URL it is a request to local network8898 raises error8899 when local network requests are allowed8900 raises does not error8901 when upload URL resolves to a local address8902 raises error8903 Gitlab::ImportExport::RemoteStreamUpload::ChunkStream8904 StringIO#copy_stream compatibility8905 copies all chunks8906 with chunks smaller and bigger than buffer size8907 copies all chunks8908ErrorTracking::SentryClient::IssueLink8909 # order random8910 #create_issue_link8911 is expected to be present8912 behaves like Sentry API response size limit8913 raises an exception when response is too large8914 behaves like calls sentry api8915 calls sentry api8916 with redirects8917 behaves like no Sentry redirects8918 does not follow redirects8919 when exception is raised8920 behaves like maps Sentry exceptions8921 HTTParty::Error8922 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"8923 Net::OpenTimeout8924 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"8925 SocketError8926 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"8927 OpenSSL::SSL::SSLError8928 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"8929 Errno::ECONNREFUSED8930 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"8931 StandardError8932 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"8933 when integration_id is not provided8934 is expected to be present8935 behaves like Sentry API response size limit8936 raises an exception when response is too large8937 behaves like calls sentry api8938 calls sentry api8939 with redirects8940 behaves like no Sentry redirects8941 does not follow redirects8942 when exception is raised8943 behaves like maps Sentry exceptions8944 HTTParty::Error8945 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"8946 Net::OpenTimeout8947 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"8948 SocketError8949 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"8950 OpenSSL::SSL::SSLError8951 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"8952 Errno::ECONNREFUSED8953 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"8954 StandardError8955 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"8956Milestones::ClosedIssuesCountService8957 counts closed issues including confidential8958 behaves like a counter caching service8959 #count8960 caches the count8961 #refresh_cache8962 refreshes the cache8963 #delete_cache8964 removes the cache8965 #uncached_count8966 does not cache the count8967Mutations::ReleaseAssetLinks::Update8968 #ready?8969 when link_type is included as an argument but is passed nil8970 raises a validation error8971 #resolve8972 when the current user has access to update the link8973 name8974 when a new name is provided8975 updates the name8976 behaves like no changes to the link except for the8977 does not change other link properties8978 with protected tag8979 when user has access to the protected tag8980 does not have errors8981 when user does not have access to the protected tag8982 raises a resource access error8983 when nil is provided8984 behaves like validation error with messages8985 returns the updated link as nil8986 returns a validation error8987 url8988 when a new URL is provided8989 updates the url8990 behaves like no changes to the link except for the8991 does not change other link properties8992 when nil is provided8993 behaves like validation error with messages8994 returns the updated link as nil8995 returns a validation error8996 filepath8997 when a new filepath is provided8998 updates the filepath8999 behaves like no changes to the link except for the9000 does not change other link properties9001 when nil is provided9002 updates the filepath to nil9003 link_type9004 when a new link type is provided9005 updates the link type9006 behaves like no changes to the link except for the9007 does not change other link properties9008 when the current user does not have access to update the link9009 raises an error9010 when the link doesn't exist9011 raises an error9012Gitlab::SubscriptionPortal9013 .default_subscriptions_url9014 test: false, development: false, result: "https://customers.gitlab.com"9015 is expected to eq "https://customers.gitlab.com"9016 test: false, development: true, result: "https://customers.staging.gitlab.com"9017 is expected to eq "https://customers.staging.gitlab.com"9018 test: true, development: false, result: "https://customers.staging.gitlab.com"9019 is expected to eq "https://customers.staging.gitlab.com"9020 .subscriptions_url9021 when CUSTOMER_PORTAL_URL ENV is unset9022 is expected to eq "https://customers.staging.gitlab.com"9023 when CUSTOMER_PORTAL_URL ENV is set9024 is expected to eq "https://customers.example.com"9025 .subscriptions_comparison_url9026 is expected to match /\Ahttps:\/\/about\.gitlab\.((cn\/pricing\/saas)|(com\/pricing\/gitlab-com))\/feature-comparison\z/9027 class methods9028 method_name: :default_subscriptions_url, result: "https://customers.staging.gitlab.com"9029 is expected to eq "https://customers.staging.gitlab.com"9030 method_name: :payment_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_validation"9031 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_validation"9032 method_name: :payment_validation_form_id, result: "payment_method_validation"9033 is expected to eq "payment_method_validation"9034 method_name: :registration_validation_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"9035 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"9036 method_name: :registration_validation_form_id, result: "cc_registration_validation"9037 is expected to eq "cc_registration_validation"9038 method_name: :subscriptions_graphql_url, result: "https://customers.staging.gitlab.com/graphql"9039 is expected to eq "https://customers.staging.gitlab.com/graphql"9040 method_name: :subscriptions_more_minutes_url, result: "https://customers.staging.gitlab.com/buy_pipeline_minutes"9041 is expected to eq "https://customers.staging.gitlab.com/buy_pipeline_minutes"9042 method_name: :subscriptions_more_storage_url, result: "https://customers.staging.gitlab.com/buy_storage"9043 is expected to eq "https://customers.staging.gitlab.com/buy_storage"9044 method_name: :subscriptions_manage_url, result: "https://customers.staging.gitlab.com/subscriptions"9045 is expected to eq "https://customers.staging.gitlab.com/subscriptions"9046 method_name: :subscriptions_instance_review_url, result: "https://customers.staging.gitlab.com/instance_review"9047 is expected to eq "https://customers.staging.gitlab.com/instance_review"9048 method_name: :subscriptions_gitlab_plans_url, result: "https://customers.staging.gitlab.com/gitlab_plans"9049 is expected to eq "https://customers.staging.gitlab.com/gitlab_plans"9050 method_name: :edit_account_url, result: "https://customers.staging.gitlab.com/customers/edit"9051 is expected to eq "https://customers.staging.gitlab.com/customers/edit"9052 .add_extra_seats_url9053 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/extra_seats"9054 .upgrade_subscription_url9055 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/upgrade/5"9056 .renew_subscription_url9057 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/renew"9058 constants9059 constant_name: "REGISTRATION_VALIDATION_FORM_ID", result: "cc_registration_validation"9060 is expected to eq "cc_registration_validation"9061StageSerializer9062 #represent9063 with a single entity9064 serializes the stage object9065 with an array of entities9066 serializes the array of pipelines9067Sidebars::Projects::Menus::ZentaoMenu9068 behaves like ZenTao menu with CE version9069 #render?9070 when issues integration is disabled9071 returns false9072 when issues integration is enabled9073 returns true9074 renders menu link9075 renders external-link icon9076 renders ZenTao menu9077 does not contain items9078Packages::Pypi::SimplePackageVersionsPresenter9079 #body9080 for project9081 behaves like pypi package presenter9082 avoids N+1 database queries9083 version: ">=2.7", expected_version: ">=2.7", with_package1: true9084 is expected to include "<a href=\"http://localhost/api/v4/projects/785/packages/pypi/files/440e5e148a25331bbd7991575f7d54933...c0ebf6cc735a18ee5066ac1381bb590\" data-requires-python=\">=2.7\">sample-project-1.0.0.tar.gz</a>"9085 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>", with_package1: true9086 is expected to include "<a href=\"http://localhost/api/v4/projects/785/packages/pypi/files/440e5e148a25331bbd7991575f7d54933...requires-python=\""><script>alert(1)</script>\">sample-project-1.0.0.tar.gz</a>"9087 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0", with_package1: false9088 is expected to include "<a href=\"http://localhost/api/v4/projects/785/packages/pypi/files/440e5e148a25331bbd7991575f7d54933...c735a18ee5066ac1381bb590\" data-requires-python=\">=2.7, !=3.0\">sample-project-2.0.0.tar.gz</a>"9089 for group9090 behaves like pypi package presenter9091 avoids N+1 database queries9092 version: ">=2.7", expected_version: ">=2.7", with_package1: true9093 is expected to include "<a href=\"http://localhost/api/v4/groups/2250/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c0ebf6cc735a18ee5066ac1381bb590\" data-requires-python=\">=2.7\">sample-project-1.0.0.tar.gz</a>"9094 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>", with_package1: true9095 is expected to include "<a href=\"http://localhost/api/v4/groups/2250/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...requires-python=\""><script>alert(1)</script>\">sample-project-1.0.0.tar.gz</a>"9096 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0", with_package1: false9097 is expected to include "<a href=\"http://localhost/api/v4/groups/2250/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c735a18ee5066ac1381bb590\" data-requires-python=\">=2.7, !=3.0\">sample-project-2.0.0.tar.gz</a>"9098 with package files pending destruction9099 is expected not to include "package_file_pending_destruction"9100Users::MergeRequestInteraction9101 declarative policy delegation9102 delegates to the merge request9103 #can_merge?9104 when the user cannot merge9105 is expected not to be can merge9106 when the user can merge9107 is expected to be can merge9108 #can_update?9109 when the user cannot update the MR9110 is expected not to be can update9111 when the user can update the MR9112 is expected to be can update9113 #review_state9114 when the user has not been asked to review the MR9115 is expected to be nil9116 implies not reviewed9117 when the user has been asked to review the MR9118 implies not reviewed9119 when the user has provided a review9120 is expected to eq "reviewed"9121 implies reviewed9122 #approved?9123 when the user has not approved the MR9124 is expected not to be approved9125 when the user has approved the MR9126 is expected to be approved9127admin/dashboard/index.html.haml9128 shows version of GitLab Workhorse9129 includes revision of GitLab for pre VERSION9130 shows the tag for GitLab version9131 does not include license breakdown9132 shows database versions for all database models9133 when show_version_check? is true9134 renders the version check badge9135 GitLab KAS9136 KAS enabled9137 includes KAS version9138 KAS disabled9139 does not include KAS version9140Clusters::AgentToken9141 is expected to belong to agent class_name => Clusters::Agent required: true9142 is expected to belong to created_by_user class_name => User optional: true9143 is expected to validate that the length of :description is at most 10249144 is expected to validate that the length of :name is at most 2559145 is expected to validate that :name cannot be empty/falsy9146 behaves like having unique enum values9147 has unique values in "status"9148 scopes9149 .order_last_used_at_desc9150 sorts by last_used_at descending, with null values at last9151 .with_status9152 is expected to contain exactly #<Clusters::AgentToken id: 4, created_at: "2023-03-30 11:56:42.374360983 +0000", updated_at: "2023-03...ated_by_user_id: 1256, description: nil, name: "agent-token-4", last_used_at: nil, status: "active">9153 #token9154 is generated on save9155 is at least 50 characters9156 #to_ability_name9157 is :cluster9158Gitlab::ImportExport::Base::RelationObjectSaver9159 #save9160 saves relation object9161 when subrelation is present9162 saves relation object with subrelations9163 when subrelation is not a collection9164 saves subrelation as part of the relation object itself9165 when subrelation collection count is small9166 saves subrelation as part of the relation object itself9167 when some subrelations are invalid9168 saves valid subrelations and logs invalid subrelation9169 when invalid subrelation can still be persisted9170 saves the subrelation9171 when importable is group9172 saves relation without invalid subrelations9173Bitbucket::Representation::PullRequest9174 #iid9175 is expected to eq 19176 #author9177 is expected to eq "Ben"9178 is expected to be nil9179 #description9180 is expected to eq "Text"9181 is expected to be nil9182 #state9183 is expected to eq "merged"9184 is expected to eq "closed"9185 is expected to eq "closed"9186 is expected to eq "opened"9187 #title9188 is expected to eq "Issue"9189 #source_branch_name9190 is expected to eq "feature"9191 is expected to be nil9192 #source_branch_sha9193 is expected to eq "abcd123"9194 is expected to be nil9195 #target_branch_name9196 is expected to eq "master"9197 is expected to be nil9198 #target_branch_sha9199 is expected to eq "abcd123"9200 is expected to be nil9201Resolvers::Ci::RunnersResolver9202 #resolve9203 when user cannot see runners9204 returns no runners9205 when user can see runners9206 when admin mode setting is disabled9207 returns all the runners9208 when admin mode setting is enabled9209 when in admin mode9210 returns all the runners9211 when not in admin mode9212 returns no runners9213 with obj not set to nil9214 raises an error9215 Allowed query arguments9216 with active filter9217 calls RunnersFinder with expected arguments9218 with both active and paused filter9219 calls RunnersFinder with expected arguments9220 with paused filter9221 calls RunnersFinder with expected arguments9222 with neither paused or active filters9223 calls RunnersFinder with expected arguments9224Gitlab::Ci::Config::External::File::Base9225 #matching?9226 when a location is present9227 returns true9228 with a location is missing9229 returns false9230 #valid?9231 when location is not a string9232 is expected to be falsy9233 when location is not a YAML file9234 is expected to be falsy9235 when location has not a valid naming scheme9236 is expected to be falsy9237 when location is a valid .yml extension9238 is expected to be truthy9239 when location is a valid .yaml extension9240 is expected to be truthy9241 when there are YAML syntax errors9242 is not a valid file9243 when the class has no validate_context!9244 raises an error9245 #to_hash9246 with includes9247 does expand hash to include the template9248 #metadata9249 is expected to eq {:context_project=>nil, :context_sha=>"HEAD"}9250 #eql?9251 when the other file has the same params9252 is expected to eq true9253 when the other file has not the same params9254 is expected to eq false9255 #hash9256 with a project9257 is expected to eq -24639097336076725999258 without a project9259 is expected to eq 29617192616765973159260Gitlab::Config::Entry::Validators9261 Gitlab::Config::Entry::Validators::MutuallyExclusiveKeysValidator9262 context: "with mutually exclusive keys", config: {:foo=>1, :bar=>2}, valid_result: false9263 validates the instance9264 context: "without mutually exclusive keys", config: {:foo=>1}, valid_result: true9265 validates the instance9266 context: "without mutually exclusive keys", config: {:bar=>1}, valid_result: true9267 validates the instance9268 context: "with other keys", config: {:foo=>1, :baz=>2}, valid_result: true9269 validates the instance9270 Gitlab::Config::Entry::Validators::DisallowedKeysValidator9271 config: {:foo=>"1"}, disallowed_keys: "foo", ignore_nil: false, valid_result: false9272 validates the instance9273 config: {:foo=>"1", :bar=>"2", :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: false, valid_result: false9274 validates the instance9275 config: {:baz=>"1", :qux=>"2"}, disallowed_keys: "", ignore_nil: false, valid_result: true9276 validates the instance9277 config: {:foo=>nil}, disallowed_keys: "foo", ignore_nil: false, valid_result: false9278 validates the instance9279 config: {:foo=>nil, :bar=>"2", :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: false, valid_result: false9280 validates the instance9281 config: {:foo=>nil, :bar=>nil, :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: false, valid_result: false9282 validates the instance9283 config: {:baz=>nil, :qux=>nil}, disallowed_keys: "", ignore_nil: false, valid_result: true9284 validates the instance9285 config: {:foo=>"1"}, disallowed_keys: "foo", ignore_nil: true, valid_result: false9286 validates the instance9287 config: {:foo=>"1", :bar=>"2", :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: true, valid_result: false9288 validates the instance9289 config: {:baz=>"1", :qux=>"2"}, disallowed_keys: "", ignore_nil: true, valid_result: true9290 validates the instance9291 config: {:foo=>nil}, disallowed_keys: "", ignore_nil: true, valid_result: true9292 validates the instance9293 config: {:foo=>nil, :bar=>"2", :baz=>"3"}, disallowed_keys: "bar", ignore_nil: true, valid_result: false9294 validates the instance9295 config: {:foo=>nil, :bar=>nil, :baz=>"3"}, disallowed_keys: "", ignore_nil: true, valid_result: true9296 validates the instance9297 config: {:baz=>nil, :qux=>nil}, disallowed_keys: "", ignore_nil: true, valid_result: true9298 validates the instance9299 when custom message is provided9300 returns the custom message when invalid9301Gitlab::Ci::Build::DurationParser9302 .validate_duration9303 with never9304 is expected to be truthy9305 with never value camelized9306 is expected to be truthy9307 with a duration9308 is expected to be truthy9309 caches data9310 without a duration9311 is expected to be falsy9312 caches data9313 #seconds_from_now9314 with never9315 is expected to be nil9316 with an empty string9317 is expected to be nil9318 with a duration9319 is expected to within one second of 2023-03-31 11:56:53 UTC9320Packages::Debian::GenerateDistributionKeyService9321 returns an Hash9322Gitlab::Sanitizers::ExceptionMessage9323 .clean9324 when error is a URI::InvalidURIError9325 is expected to eq "bad URI(is not URI?): [FILTERED]"9326 when error is an Addressable::URI::InvalidURIError9327 uri: "http://foo:bar", result: "Invalid port number: [FILTERED]"9328 is expected to eq "Invalid port number: [FILTERED]"9329 uri: "http://foo:%eb", result: "Invalid encoding in port"9330 is expected to eq "Invalid encoding in port"9331 uri: "ht%0atp://foo", result: "Invalid scheme format: [FILTERED]"9332 is expected to eq "Invalid scheme format: [FILTERED]"9333 uri: "http:", result: "Absolute URI missing hierarchical segment: [FILTERED]"9334 is expected to eq "Absolute URI missing hierarchical segment: [FILTERED]"9335 uri: "::http", result: "Cannot assemble URI string with ambiguous path: [FILTERED]"9336 is expected to eq "Cannot assemble URI string with ambiguous path: [FILTERED]"9337 uri: "http://foo bar", result: "Invalid character in host: [FILTERED]"9338 is expected to eq "Invalid character in host: [FILTERED]"9339 with any other exception9340 is not invoked and does nothing9341Packages::PackageFileFinder9342 #execute9343 behaves like package file finder examples9344 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:56:58.651666000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9345 with file_name_like9346 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:56:58.651666000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9347 behaves like not returning pending_destruction package files9348 returns the correct package file9349 with unknown file_name9350 is expected to be nil9351 #execute!9352 behaves like package file finder examples9353 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:56:58.651666000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9354 with file_name_like9355 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:56:58.651666000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9356 behaves like not returning pending_destruction package files9357 returns the correct package file9358 with unknown file_name9359 is expected to raise ActiveRecord::RecordNotFound9360ClustersFinder9361 #execute9362 when scope is all9363 is expected to contain exactly #<Clusters::Cluster id: 33, user_id: 1285, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3> and #<Clusters::Cluster id: 36, user_id: 1288, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>9364 when scope is active9365 is expected to contain exactly #<Clusters::Cluster id: 39, user_id: 1292, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>9366 when scope is inactive9367 is expected to contain exactly #<Clusters::Cluster id: 42, user_id: 1296, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>9368Gitlab::Ci::Config::Entry::AllowFailure9369 validations9370 when entry config value is valid9371 with boolean values9372 behaves like valid entry9373 #value9374 returns key value9375 #valid?9376 is valid9377 behaves like valid entry9378 #value9379 returns key value9380 #valid?9381 is valid9382 with hash values9383 behaves like valid entry9384 #value9385 returns key value9386 #valid?9387 is valid9388 behaves like valid entry9389 #value9390 returns key value9391 #valid?9392 is valid9393 when entry value is not valid9394 when it has a wrong type9395 behaves like invalid entry9396 #valid?9397 is expected not to be valid9398 is expected to include "allow failure config should be a hash or a boolean value"9399 with string exit codes9400 behaves like invalid entry9401 #valid?9402 is expected not to be valid9403 is expected to include "allow failure exit codes should be an array of integers or an integer"9404 with array of strings as exit codes9405 behaves like invalid entry9406 #valid?9407 is expected not to be valid9408 is expected to include "allow failure exit codes should be an array of integers or an integer"9409 when it has an extra keys9410 behaves like invalid entry9411 #valid?9412 is expected not to be valid9413 is expected to include "allow failure config contains unknown keys: extra"9414projects/merge_requests/_commits.html.haml9415 shows commits from source project9416 shows signature verification badge9417Packages::Composer::VersionParserService9418 #execute9419 tagname: nil, branchname: "master", expected_version: "dev-master"9420 is expected to eq "dev-master"9421 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"9422 is expected to eq "dev-my-feature"9423 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"9424 is expected to eq "dev-12-feature"9425 tagname: nil, branchname: "v1", expected_version: "1.x-dev"9426 is expected to eq "1.x-dev"9427 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"9428 is expected to eq "1.x-dev"9429 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"9430 is expected to eq "1.7.x-dev"9431 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"9432 is expected to eq "1.7.x-dev"9433 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"9434 is expected to eq "1.7.x-dev"9435 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"9436 is expected to eq "1.0.0"9437 tagname: "v1.0", branchname: nil, expected_version: "1.0"9438 is expected to eq "1.0"9439 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"9440 is expected to eq "1.0.1+meta"9441 tagname: "1.0", branchname: nil, expected_version: "1.0"9442 is expected to eq "1.0"9443 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"9444 is expected to eq "1.0.2"9445 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"9446 is expected to eq "1.0.2-beta2"9447 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"9448 is expected to eq "1.0.1+meta"9449SafeZip::Extract9450 #extract9451 when using valid-simple.zip archive9452 behaves like extracts archive9453 when specifying directories9454 does extract archive9455 when specifying files9456 does extract archive9457 when using valid-symlinks-first.zip archive9458 behaves like extracts archive9459 when specifying directories9460 does extract archive9461 when specifying files9462 does extract archive9463 when using valid-non-writeable.zip archive9464 behaves like extracts archive9465 when specifying directories9466 does extract archive9467 when specifying files9468 does extract archive9469 when zip files are invalid9470 name: "invalid-symlink-does-not-exist.zip", message: "does not exist"9471 behaves like fails to extract archive9472 does not extract archive9473 name: "invalid-symlinks-outside.zip", message: "Symlink cannot be created"9474 behaves like fails to extract archive9475 does not extract archive9476 name: "invalid-unexpected-large.zip", message: "larger when inflated"9477 behaves like fails to extract archive9478 does not extract archive9479 when no matching directories are found9480 behaves like fails to extract archive9481 does not extract archive9482 when no matching files are found9483 behaves like fails to extract archive9484 does not extract archive9485Projects::MoveUsersStarProjectsService9486 #execute9487 moves the user's stars from one project to another9488 rollbacks changes if transaction fails9489Gitlab::Database::Count::TablesampleCountStrategy9490 #count9491 for tables with an estimated small size9492 performs an exact count9493 for tables with an estimated large size9494 performs a tablesample count9495 insufficient permissions9496 returns an empty hash9497Gitlab::Database::Migrations::SidekiqHelpers9498 # order random9499 sidekiq migration helpers9500 #sidekiq_remove_jobs9501 removes all related job instances from the job classes' queues9502 when the constant is not defined9503 doesn't try to delete it9504 when the constant is defined9505 will use it find job instances to delete9506 when job instances are in the scheduled set9507 removes all related job instances from the scheduled set9508 when job instances are in the retry set9509 removes all related job instances from the retry set9510 when job fails to be deleted9511 and does not work enough times in a row before max attempts9512 tries the max attempts without succeeding9513 and then it works enough times in a row before max attempts9514 succeeds9515 #sidekiq_queue_length9516 when queue is empty9517 returns zero9518 when queue contains jobs9519 returns correct size of the queue9520 #sidekiq_queue_migrate9521 migrates jobs from one sidekiq queue to another9522GitlabServicePingWorker9523 does not run for SaaS when triggered from cron9524 runs for SaaS when triggered manually9525 delegates to ServicePing::SubmitService9526 passes Hash arguments to ServicePing::SubmitService9527 obtains a 86400 second exclusive lease9528 sleeps for between 0 and 60 seconds9529 payload computation9530 creates RawUsageData entry when there is NO entry with the same recorded_at timestamp9531 updates RawUsageData entry when there is entry with the same recorded_at timestamp9532 reports errors and continue on execution9533 when lease is not obtained9534 does not invoke ServicePing::SubmitService9535WebHooks::LogDestroyWorker9536 #perform9537 with a Web hook9538 deletes the relevant logs9539 is idempotent9540 raises and tracks an error if destroy failed9541 with extra arguments9542 does not raise an error9543 with no arguments9544 does not raise an error9545 with empty arguments9546 does not raise an error9547 with unknown hook9548 does not raise an error9549Gitlab::Database::Transaction::Context9550 #set_start_time9551 sets start_time9552 #increment_savepoints9553 is expected to eq 29554 #increment_rollbacks9555 is expected to eq 39556 #increment_releases9557 is expected to eq 49558 #set_depth9559 is expected to eq 29560 #track_sql9561 is expected to eq ["SELECT 1", "SELECT * FROM users"]9562 #track_backtrace9563 is expected to be a kind of Array9564 is expected to all be a kind of Array9565 is expected to eq 19566 is expected to be a kind of String9567 appends the backtrace9568 #duration9569 is expected to be >= 09570 when savepoints count exceeds threshold9571 behaves like logs transaction data9572 logs once upon COMMIT9573 logs once upon ROLLBACK9574 logs again when log throttle duration passes9575 #should_log? returns true9576 when duration exceeds threshold9577 behaves like logs transaction data9578 logs once upon COMMIT9579 logs once upon ROLLBACK9580 logs again when log throttle duration passes9581 #should_log? returns true9582 when there are too many external HTTP requests9583 behaves like logs transaction data9584 logs once upon COMMIT9585 logs once upon ROLLBACK9586 logs again when log throttle duration passes9587 #should_log? returns true9588 when there are too many too long external HTTP requests9589 behaves like logs transaction data9590 logs once upon COMMIT9591 logs once upon ROLLBACK9592 logs again when log throttle duration passes9593 #should_log? returns true9594API::Helpers::PaginationStrategies9595 #paginate_with_strategies9596 yields paginated relation9597 calls #finalize with first value returned from block9598 returns whatever the block returns9599 with paginator_params9600 correctly passes multiple parameters9601 #paginator9602 offset pagination9603 when keyset pagination is available and enforced for the relation9604 when a request scope is given9605 when the scope limit is exceeded9606 renders a 405 error9607 when keyset pagination is not enforced9608 returns no errors9609 when the scope limit is not exceeded9610 delegates to OffsetPagination9611 when a request scope is not given9612 when the default limits are exceeded9613 renders a 405 error9614 when the default limits are not exceeded9615 delegates to OffsetPagination9616 when keyset pagination is not available for the relation9617 delegates to OffsetPagination9618 for keyset pagination9619 when keyset pagination is available9620 delegates to Pager9621 when keyset pagination is not available9622 renders a 501 error9623GoogleCloud::FetchGoogleIpListService9624 # order random9625 #execute9626 returns a list of IPAddr subnets and caches the result9627 with rate limit in effect9628 returns rate limit error9629 when the URL returns a 4049630 behaves like IP range retrieval failure9631 does not cache the result and logs an error9632 when the URL returns too large of a payload9633 behaves like IP range retrieval failure9634 does not cache the result and logs an error9635 when the URL returns HTML9636 behaves like IP range retrieval failure9637 does not cache the result and logs an error9638 when the URL returns empty results9639 behaves like IP range retrieval failure9640 does not cache the result and logs an error9641Resolvers::ReleasesResolver9642 #resolve9643 behaves like releases and group releases resolver9644 when the user does not have access to the project9645 returns an empty array9646 when the user has full access to the project's releases9647 returns all releases associated to the project9648 when order_by is released_at9649 with sort: desc9650 returns the releases ordered by released_at in descending order9651 with sort: asc9652 returns the releases ordered by released_at in ascending order9653 when order_by is created_at9654 with sort: desc9655 returns the releases ordered by created_at in descending order9656 with sort: asc9657 returns the releases ordered by created_at in ascending order9658Resolvers::Projects::ServicesResolver9659 is expected to have nullable GraphQL type ServiceConnection9660 #resolve9661 when project does not have services9662 when user cannot access services9663 when anonymous user9664 behaves like cannot access project services9665 raises error9666 when user developer9667 behaves like cannot access project services9668 raises error9669 when user can read project services9670 behaves like no project services9671 returns empty collection9672 when project has services9673 when user cannot access services9674 when anonymous user9675 behaves like cannot access project services9676 raises error9677 when user developer9678 behaves like cannot access project services9679 raises error9680 when user can read project services9681 returns project services9682Prometheus::ProxyVariableSubstitutionService9683 #execute9684 does not alter params passed to the service9685 is expected to eq #<ActionController::Parameters {"query"=>"up{environment=\"{{ci_environment_slug}}\"}"} permitted: true>9686 with predefined variables9687 with nil query9688 behaves like success9689 replaces variables with values9690 with liquid format9691 behaves like success9692 replaces variables with values9693 with custom variables9694 behaves like success9695 replaces variables with values9696 with predefined variables in variables parameter9697 behaves like success9698 replaces variables with values9699 with invalid variables parameter9700 behaves like error9701 returns error9702 with nil variables9703 behaves like success9704 replaces variables with values9705 gsub variable substitution tolerance for weirdness9706 with whitespace around variable9707 behaves like success9708 replaces variables with values9709 with empty variables9710 behaves like success9711 replaces variables with values9712 with multiple occurrences of variable in string9713 behaves like success9714 replaces variables with values9715 with multiple variables in string9716 behaves like success9717 replaces variables with values9718 with unknown variables in string9719 behaves like success9720 replaces variables with values9721 with unknown and known variables in string9722 behaves like success9723 replaces variables with values9724 __range9725 behaves like success9726 replaces variables with values9727Mutations::Labels::Create9728 is expected to require graphql authorizations :admin_label9729 when creating a project label9730 behaves like create labels mutation9731 #resolve9732 when the user does not have permission to create a label9733 raises an error9734 when the user can create a label9735 creates label with correct values9736 when creating a group label9737 behaves like create labels mutation9738 #resolve9739 when the user does not have permission to create a label9740 raises an error9741 when the user can create a label9742 creates label with correct values9743 #ready?9744 when passing both project_path and group_path9745 raises an argument error9746 when passing only project_path or group_path9747 does not raise an error9748Tooling::Danger::SidekiqArgs9749 # order random9750 #add_comment_for_matched_line9751 when args are changed9752 adds suggestion at the correct lines9753 when args are not changed9754 does not add suggestion9755 #args_changed?9756 before: " - def perform", after: " + def perform(abc)", result: true9757 returns correct result9758 before: " - def perform", after: " + def perform(abc)", result: true9759 returns correct result9760 before: " - def perform(abc)", after: " + def perform(def)", result: true9761 returns correct result9762 before: " - def perform(abc, def)", after: " + def perform(abc)", result: true9763 returns correct result9764 before: " - def perform(abc, def)", after: " + def perform(def, abc)", result: true9765 returns correct result9766 before: " - def perform", after: " - def perform", result: false9767 returns correct result9768 before: " + def perform", after: " + def perform", result: false9769 returns correct result9770 before: " - def perform(abc)", after: " - def perform(abc)", result: false9771 returns correct result9772 before: " + def perform(abc)", after: " + def perform(abc)", result: false9773 returns correct result9774 before: " - def perform(abc)", after: " + def perform_foo(abc)", result: false9775 returns correct result9776 #changed_worker_files9777 returns added, modified, and renamed_after files by default9778 with include_ee: :exclude9779 returns spec files without EE-specific files9780 with include_ee: :only9781 returns EE-specific spec files only9782Resolvers::Ci::JobsResolver9783 #resolve9784 when security_report_types is empty9785 returns all of the pipeline's jobs9786 when security_report_types is present9787 returns the pipeline's jobs with the given security report types9788 when a job has tags9789 returns jobs with tags when applicable9790 when a job is manual9791 returns jobs with when set to 'manual'9792Gitlab::RackAttack::UserAllowlist9793 input: nil, elements: []9794 has the expected elements9795 implements empty?9796 implements include?9797 input: "", elements: []9798 has the expected elements9799 implements empty?9800 implements include?9801 input: "123", elements: [123]9802 has the expected elements9803 implements empty?9804 implements include?9805 input: "123,456", elements: [123, 456]9806 has the expected elements9807 implements empty?9808 implements include?9809 input: "123,foobar, 456,", elements: [123, 456]9810 has the expected elements9811 implements empty?9812 implements include?9813RuboCop::Cop::Gitlab::AvoidFeatureCategoryNotOwned9814 # order random9815 for grape endpoints9816 flags when passed as a hash for a Grape endpoint as keyword args9817 flags when passed as a hash for a Grape endpoint in a hash9818 behaves like defining feature category on a class9819 flags a method call on a class9820 flags a method call on a class with an array passed9821 flags a method call on a class with an array passed9822 in workers9823 behaves like defining feature category on a class9824 flags a method call on a class9825 flags a method call on a class with an array passed9826 flags a method call on a class with an array passed9827 in controllers9828 behaves like defining feature category on a class9829 flags a method call on a class9830 flags a method call on a class with an array passed9831 flags a method call on a class with an array passed9832Terraform.gitlab-ci.yml9833 the created pipeline9834 on master branch9835 creates init, validate,build terraform jobs as well as kics-iac-sast job9836 outside the master branch9837 does not creates a deploy and a test job9838 on merge request9839 creates a pipeline with no jobs9840Ci::BuildPendingState9841 associations9842 is expected to belong to build class_name => Ci::Build required: false inverse_of => pending_state9843 validations9844 is expected to validate that :build cannot be empty/falsy9845 #crc329846 when checksum does not exist9847 returns nil9848 when checksum is in hexadecimal9849 returns decimal representation of the checksum9850 partitioning9851 with build9852 sets partition_id to the current partition value9853 when it is already set9854 does not change the partition_id value9855 without build9856 is expected to validate that :partition_id cannot be empty/falsy9857 does not change the partition_id value9858Labels::UpdateService9859 #execute9860 with color in hex-code9861 updates the label9862 with color in allowed name9863 updates the label9864 with color in up-case allowed name9865 updates the label9866 with color surrounded by spaces9867 updates the label9868 with unknown color9869 doesn't update the label9870 with no color9871 doesn't update the label9872Projects::RecordTargetPlatformsWorker9873 has the `until_executed` deduplicate strategy9874 overrides #lease_release? to return false9875 when project uses programming language for Apple platform9876 when project uses Swift programming language9877 behaves like performs detection9878 creates and executes a Projects::AppleTargetPlatformDetectorService instance for the project9879 logs extra metadata on done9880 when project uses Objective-C programming language9881 behaves like performs detection9882 creates and executes a Projects::AppleTargetPlatformDetectorService instance for the project9883 logs extra metadata on done9884 when project uses programming language for Android platform9885 when project uses Java9886 behaves like performs detection9887 creates and executes a Projects::AndroidTargetPlatformDetectorService instance for the project9888 logs extra metadata on done9889 when feature flag is disabled9890 behaves like does nothing9891 does nothing9892 when project uses Kotlin9893 behaves like performs detection9894 creates and executes a Projects::AndroidTargetPlatformDetectorService instance for the project9895 logs extra metadata on done9896 when feature flag is disabled9897 behaves like does nothing9898 does nothing9899 when the project does not use programming languages for Apple or Android platforms9900 behaves like does nothing9901 does nothing9902 when project is not found9903 does nothing9904 when exclusive lease cannot be obtained9905 behaves like does nothing9906 does nothing9907Ci::GenerateCodequalityMrDiffReportService9908 #execute9909 when head pipeline has codequality mr diff report9910 returns status and data9911 when head pipeline does not have a codequality mr diff report9912 returns status and error message9913 when head pipeline has codequality mr diff report and no merge request associated9914 returns status and error message9915Gitlab::GitlabImport::Client9916 all OAuth2 client options are symbols9917 uses membership and simple flags9918 #projects9919 behaves like pagination params9920 allows page_limit param9921 allows per_page param9922 allows starting_page param9923 #issues9924 behaves like pagination params9925 allows page_limit param9926 allows per_page param9927 allows starting_page param9928 #issue_comments9929 behaves like pagination params9930 allows page_limit param9931 allows per_page param9932 allows starting_page param9933Gitlab::Ci::Config::Yaml9934 # order random9935 .load!9936 loads a single-doc YAML file9937 loads the first document from a multi-doc YAML file9938 when YAML is invalid9939 raises an error9940 when ci_multi_doc_yaml is disabled9941 loads a single-doc YAML file9942 loads the first document from a multi-doc YAML file9943 .load_result!9944 when syntax is invalid9945 returns an invalid result object9946 when the first document is a header9947 considers the first document as header and the second as content9948 with explicit document start marker9949 considers the first document as header and the second as content9950 when the first document is not a header9951 considers the first document as content for backwards compatibility9952 with explicit document start marker9953 considers the first document as content for backwards compatibility9954 when the first document is not a header and second document is empty9955 considers the first document as content9956 with explicit document start marker9957 considers the first document as content9958Types::UntrustedRegexp9959 is expected to eq "UntrustedRegexp"9960 is expected to eq "A regexp containing patterns sourced from user input"9961 .coerce_input9962 input: ".*", expected_result: ".*"9963 with input .*9964 is expected to eq ".*"9965 input: "(.*)", expected_result: "(.*)"9966 with input (.*)9967 is expected to eq "(.*)"9968 input: "[test*]+", expected_result: "[test*]+"9969 with input [test*]+9970 is expected to eq "[test*]+"9971 input: "*v1", expected_result: :raise_error9972 with input *v19973 raises a coercion error9974 input: "[test*", expected_result: :raise_error9975 with input [test*9976 raises a coercion error9977 input: "test*+", expected_result: :raise_error9978 with input test*+9979 raises a coercion error9980 .coerce_result9981 input: "1", expected_result: "1"9982 with input 19983 is expected to eq "1"9984 input: 1, expected_result: "1"9985 with input 19986 is expected to eq "1"9987 input: true, expected_result: "true"9988 with input true9989 is expected to eq "true"9990Gitlab::Auth::IpRateLimiter9991 #register_fail!9992 bans after 3 consecutive failures9993 with a whitelisted netmask9994 behaves like whitelisted IPs9995 does not ban after max retry limit9996 with a whitelisted IP9997 behaves like whitelisted IPs9998 does not ban after max retry limit9999 when IP is allow listed10000 behaves like skips the rate limiter10001 does not call Rack::Attack::Allow2Ban.reset!10002 does not call Rack::Attack::Allow2Ban.banned?10003 does not call Rack::Attack::Allow2Ban.filter10004 when rate limiter is disabled10005 behaves like skips the rate limiter10006 does not call Rack::Attack::Allow2Ban.reset!10007 does not call Rack::Attack::Allow2Ban.banned?10008 does not call Rack::Attack::Allow2Ban.filter10009 #trusted_ip?10010 when ip is in the trusted list10011 is expected to be truthy10012 when ip is not in the trusted list10013 is expected to be falsey10014UserInteractedProject10015 is expected to validate that :project_id cannot be empty/falsy10016 is expected to validate that :user_id cannot be empty/falsy10017 .track10018 sets project accordingly10019 sets user accordingly10020 only creates a record once per user/project10021 for all actions (event types)10022 creates a record10023 for all actions (event types)10024 creates a record10025 for all actions (event types)10026 creates a record10027 for all actions (event types)10028 creates a record10029 for all actions (event types)10030 creates a record10031 for all actions (event types)10032 creates a record10033 for all actions (event types)10034 creates a record10035 for all actions (event types)10036 creates a record10037 for all actions (event types)10038 creates a record10039 for all actions (event types)10040 creates a record10041 for all actions (event types)10042 creates a record10043 for all actions (event types)10044 creates a record10045 with an event without a project10046 ignores the event10047Gitlab::FormBuilders::GitlabUiFormBuilder10048 #submit10049 without pajamas_button enabled10050 renders a submit input10051 with pajamas_button enabled10052 renders a submit button10053 #gitlab_ui_checkbox_component10054 when not using slots10055 without optional arguments10056 renders correct html10057 with optional arguments10058 renders help text10059 with checkbox_options: { multiple: true }10060 renders labels with correct for attributes10061 when using slots10062 renders correct html10063 #gitlab_ui_radio_component10064 when not using slots10065 without optional arguments10066 renders correct html10067 with optional arguments10068 renders help text10069 when using slots10070 renders correct html10071 #gitlab_ui_datepicker10072 without optional arguments10073 renders correct html10074 with optional arguments10075 renders correct html10076Gitlab::GonHelper10077 #add_gon_variables10078 when HTTPS is enabled10079 sets the secure flag to true10080 when HTTP is enabled10081 sets the secure flag to false10082 when sentry is configured10083 with legacy sentry configuration10084 sets sentry dsn and environment from config10085 with sentry settings10086 when enable_new_sentry_clientside_integration is disabled10087 does not set sentry dsn and environment from config10088 when enable_new_sentry_clientside_integration is enabled10089 sets sentry dsn and environment from config10090 #push_frontend_feature_flag10091DEPRECATION WARNING: Invalid Feature Flag my_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)10092 pushes a feature flag to the frontend10093 #push_force_frontend_feature_flag10094 pushes a feature flag to the frontend with the provided value10095 pushes a disabled feature flag if provided value is nil10096 #default_avatar_url10097 returns an absolute URL10098Gitlab::Memory::Watchdog::Configurator10099 # order random10100 .configure_for_puma10101 behaves like as configurator10102 configures the correct handler10103 configures the correct event reporter10104 configures the correct logger10105 when sleep_time_seconds is not passed through the environment10106 configures the correct sleep time10107 when sleep_time_seconds is passed through the environment10108 configures the correct sleep time10109 with DISABLE_PUMA_WORKER_KILLER set to true10110 when settings are set via environment variables10111 behaves like as monitor configurator10112 executes monitors and returns correct results10113 when settings are not set via environment variables10114 behaves like as monitor configurator10115 executes monitors and returns correct results10116 with DISABLE_PUMA_WORKER_KILLER set to false10117 when settings are set via environment variables10118 behaves like as monitor configurator10119 executes monitors and returns correct results10120 when settings are not set via environment variables10121 behaves like as monitor configurator10122 executes monitors and returns correct results10123 .configure_for_sidekiq10124 behaves like as configurator10125 configures the correct handler10126 configures the correct event reporter10127 configures the correct logger10128 when sleep_time_seconds is not passed through the environment10129 configures the correct sleep time10130 when sleep_time_seconds is passed through the environment10131 configures the correct sleep time10132 when sleep_time_seconds is less than MIN_SIDEKIQ_SLEEP_INTERVAL_S seconds10133 configures the correct sleep time10134 with monitors10135 when settings are set via environment variables10136 behaves like as monitor configurator10137 executes monitors and returns correct results10138 when only SIDEKIQ_MEMORY_KILLER_MAX_RSS is set via environment variable10139 behaves like as monitor configurator10140 executes monitors and returns correct results10141 when only SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS is set via environment variable10142 behaves like as monitor configurator10143 executes monitors and returns correct results10144 when both SIDEKIQ_MEMORY_KILLER_MAX_RSS and SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS are not set10145 behaves like as monitor configurator10146 executes monitors and returns correct results10147Gitlab::Ci::Pipeline::Chain::Create10148 when pipeline is ready to be saved10149 saves a pipeline10150 does not break the chain10151 creates stages10152 when pipeline has validation errors10153 breaks the chain10154 appends validation error10155 tags persistence10156 without tags10157 extracts an empty tag list10158 with tags10159 bulk inserts tags10160Gitlab::ZoomLinkExtractor10161 #links10162 text: "issue text https://zoom.us/j/123 and https://zoom.us/s/1123433", links: ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]10163 is expected to eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]10164 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]10165 is expected to eq ["https://zoom.us/j/1123433"]10166 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]10167 is expected to eq ["https://zoom.us/my/1123433"]10168 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]10169 is expected to eq ["https://gitlab.zoom.us/s/1123433"]10170 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]10171 is expected to eq ["https://gitlab.zoom.us/j/1123433"]10172 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]10173 is expected to eq ["https://gitlab.zoom.us/my/1123433"]10174 #match?10175 is true when a zoom link found10176 is false when no zoom link found10177Gitlab::DependencyLinker::GemfileLinker10178 .support?10179 supports Gemfile10180 supports gems.rb10181 does not support other files10182 #link10183 links sources10184 links dependencies10185 links to external dependencies10186 links GitHub repos10187 links Git repos10188Ci::EnsureStageService#execute10189 when build has a stage assigned10190 does not create a new stage10191 when build does not have a stage assigned10192 creates a new stage10193 when build is invalid10194 does not create a new stage10195 when new stage can not be created because of an exception10196 retries up to two times10197Gitlab::ImportExport::SnippetRepoSaver10198 bundle a project Git repo10199 with project snippet10200 bundles the repo successfully10201 when snippet does not have a repository10202 returns true10203 does not create any file10204Gitlab::Issuable::Clone::CopyResourceEventsService10205 copies the resource label events10206 with existing milestone events10207 copies existing resource milestone events10208 with existing state events10209 copies existing state events as expected10210Types::BaseArgument10211 adds a formatted `deprecated_reason` to the subject10212 appends to the description if given10213 does not append to the description if it is absent10214 adds information about the replacement if provided10215 supports named reasons: renamed10216 supports named reasons: alpha10217 supports :alpha10218 does not allow :alpha and :deprecated together10219 validations10220 raises an informative error if `deprecation_reason` is used10221 raises an error if a required property is missing10222 raises an error if milestone is not a String10223 visible?10224 defaults to true10225 when subject is deprecated10226 defaults to true10227 returns false if `remove_deprecated` is true in context10228 required argument declarations10229 accepts nullable, required arguments10230 accepts required, non-nullable arguments10231 accepts non-required arguments10232 accepts no required argument declaration10233SystemNotes::IncidentsService10234 # order random10235 #add_timeline_event10236 posts the correct text to the system note10237 behaves like a system note10238 has the correct attributes10239 #edit_timeline_event10240 behaves like a system note10241 has the correct attributes10242 when only timeline event's occurred_at was changed10243 posts the correct text to the system note10244 when only timeline event's note was changed10245 posts the correct text to the system note10246 when both timeline events occurred_at and note was changed10247 posts the correct text to the system note10248 when was changed reason is unknown10249 posts the correct text to the system note10250 #delete_timeline_event10251 posts the correct text to the system note10252 behaves like a system note10253 has the correct attributes10254Types::Ci::JobType10255 is expected to eq "CiJob"10256 is expected to expose permissions using Types::PermissionTypes::Ci::Job10257 exposes the expected fields10258 #web_path10259 returns the web path of the job10260 #browse_artifacts_path10261 returns the path to browse the artifacts of the job10262Resolvers::GroupMembersResolver10263 is expected to have nullable GraphQL type GroupMemberConnection10264 behaves like querying members with a group10265 #resolve10266 finds all resource members10267 with sort options10268 searches users by user name10269 with search10270 when the search term matches a user10271 searches users by user name10272 when the search term does not match any user10273 is empty10274 when user can not see resource members10275 generates an error10276IncidentManagement::LinkAlerts::DestroyService10277 # order random10278 #execute10279 when current user is a guest10280 responds with error10281 does not unlink alert from the incident10282 when current user is a developer10283 responds with success10284 when unlinking internal alert10285 unlinks the alert10286 when unlinking external alert10287 unlinks the alert10288 when unlinking an alert not related to the incident10289 does not change the incident's alerts10290 does not change another incident's alerts10291 does not change the alert's incident10292Groups::AutoDevopsService#execute10293 when user does not have enough privileges10294 raises exception10295 when user has enough privileges10296 updates group auto devops enabled accordingly10297 when group has projects10298 reflects changes on projects10299 when group has subgroups10300 reflects changes on subgroups10301 when subgroups have projects10302 reflects changes on projects10303Sidebars::YourWork::Menus::TodosMenu10304 # order random10305 #pill_count10306 returns the todos_pending_count of the user10307 memoizes the query10308 #has_pill?10309 when count is zero10310 returns false10311 when count is larger than zero10312 returns true10313Gitlab::DependencyLinker::CartfileLinker10314 .support?10315 supports Cartfile10316 supports Cartfile.private10317 does not support other files10318 #link10319 links dependencies10320 links Git repos10321 links binary-only frameworks10322admin mode on tasks10323 with a regular user10324 matches the expected admin mode10325 with an admin10326 matches the expected admin mode10327Support::AbilityCheck10328 # order random10329 checking ability10330 with valid direct ability10331 policy ability is found10332 with empty TODO yaml10333 policy ability is found10334 with non-Hash TODO yaml10335 policy ability is found10336 with unreachable ability10337 policy ability is not found and emits a warning10338 when ignored in TODO YAML10339 policy ability is not found without warning10340 with unknown ability10341 policy ability is not found and emits a warning10342 with delegated ability10343 policy ability is found10344Gitlab::SidekiqMiddleware::DuplicateJobs::Client10345 with until_executing strategy10346 behaves like client duplicate job10347 #call10348 adds a correct duplicate tag to the jobs10349 without scheduled deduplication10350 does not mark a job that's scheduled in the future as a duplicate10351 with scheduled deduplication10352 adds a correct duplicate tag to the jobs10353 with until_executed strategy10354 behaves like client duplicate job10355 #call10356 adds a correct duplicate tag to the jobs10357 without scheduled deduplication10358 does not mark a job that's scheduled in the future as a duplicate10359 with scheduled deduplication10360 adds a correct duplicate tag to the jobs10361Guest10362 .can_pull?10363 when project is private10364 does not allow to pull the repo10365 when project is internal10366 does not allow to pull the repo10367 when project is public10368 when repository is disabled10369 does not allow to pull the repo10370 when repository is accessible only by team members10371 does not allow to pull the repo10372 when repository is enabled10373 allows to pull the repo10374DisableJoins10375 passing disable_joins as an association option10376 when the association is a bare has_one10377 disallows the disable_joins option10378 when the association is a belongs_to10379 disallows the disable_joins option10380 when the association is has_one :through10381 allows the disable_joins option10382 when the association is a bare has_many10383 disallows the disable_joins option10384 when the association is a has_many :through10385 allows the disable_joins option10386 querying has_one :through when disable_joins is set10387 when disable_joins evaluates to true10388 executes separate queries10389 when disable_joins evalutes to false10390 executes a single query10391 querying has_many :through when disable_joins is set10392 when disable_joins evaluates to true10393 executes separate queries10394 when disable_joins evalutes to false10395 executes a single query10396 querying STI relationships10397 filters correctly by the STI type across multiple queries10398 querying polymorphic relationships10399 filters correctly by the polymorphic type across multiple queries10400Gitlab::ImportExport::DesignRepoSaver10401 bundle a design Git repo10402 bundles the repo successfully10403 when the repo is empty10404 bundles the repo successfully10405Mutations::AlertManagement::Alerts::Todo::Create10406 is expected to require graphql authorizations :update_alert_management_alert10407 #resolve10408 behaves like an incident management tracked event10409 .track_event10410 tracks the event using redis10411 behaves like Snowplow event tracking with RedisHLL context10412 behaves like Snowplow event tracking10413 is emitted10414 when user does not have permissions10415 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable10416 when project is invalid10417 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable10418 when alert is invalid10419 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable10420 when the create service yields errors10421 is expected not to change `Todo.count`10422 is expected to eq ["error"]10423 with valid inputs10424 creates a new todo10425 is expected to eq {:alert=>#<AlertManagement::Alert id:17 namespace957/project929^alert#1>, :errors=>[], :todo=>#<Todo ...30 11:58:19.247562000 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>}10426Admin::AbuseReportEntity10427 # order random10428 #as_json10429 exposes correct attributes10430 correctly exposes `reported user`10431 correctly exposes `reporter`10432 correctly exposes :reported_user_path10433 correctly exposes :reporter_path10434 correctly exposes :block_user_path10435 correctly exposes :remove_report_path10436 correctly exposes :remove_user_and_report_path10437 correctly exposes :message10438 user_blocked10439 when user is blocked10440 is expected to equal true10441 when user is not blocked10442 is expected to equal false10443LfsFileLockEntity10444 exposes basic attrs of the lock10445 exposes the owner info10446Gitlab::PhabricatorImport::Cache::Map10447 #get_gitlab_model10448 returns nil if there was nothing cached for the phabricator id10449 returns the object if it was set in redis10450 extends the TTL for the cache key10451 sets the object in redis once if a block was given and nothing was cached10452 does not cache `nil` objects10453 #set_gitlab_model10454 sets the class and id in redis with a ttl10455notify/changed_milestone_email.html.haml10456 milestone without start and due dates10457 renders without date range10458 milestone with start and due dates10459 renders with date range10460Gitlab::GithubImport::Importer::IssueEventsImporter10461 #parallel?10462 when running in parallel mode10463 is expected to be parallel10464 when running in sequential mode10465 is expected not to be parallel10466 #execute10467 when running in parallel mode10468 imports events in parallel10469 when running in sequential mode10470 imports notes in sequence10471 #sequential_import10472 imports each event in sequence10473 #parallel_import10474 imports each note in parallel10475 #importer_class10476 is expected to eq Gitlab::GithubImport::Importer::IssueEventImporter10477 #representation_class10478 is expected to eq Gitlab::GithubImport::Representation::IssueEvent10479 #sidekiq_worker_class10480 is expected to eq Gitlab::GithubImport::ImportIssueEventWorker10481 #object_type10482 is expected to eq :issue_event10483 #collection_method10484 is expected to eq :repository_issue_events10485 #id_for_already_imported_cache10486 returns the ID of the given note10487 #collection_options10488 is expected to eq {}10489Gitlab::Git::RemoteMirror10490 #update10491 delegates to the Gitaly client10492 wraps gitaly errors10493Gitlab::Ci::Config::Entry::PullPolicy10494 #value10495 when config value is nil10496 is expected to be nil10497 when retry value is an empty array10498 is expected to eq nil10499 when retry value is string10500 is expected to eq ["always"]10501 when retry value is array10502 is expected to eq ["always", "if-not-present"]10503 validation10504 when retry value is nil10505 is expected to eq false10506 when retry value is an empty array10507 is expected to eq false10508 when retry value is a hash10509 is expected to eq false10510 when retry value is string10511 is expected to eq true10512 when it is an invalid policy10513 is expected to eq false10514 when it is an empty string10515 is expected to eq false10516 when retry value is array10517 is expected to eq true10518 when config contains an invalid policy10519 is expected to eq false10520shared/milestones/_issuable.html.haml10521 issue10522 links to the page for the issue10523 links to issues page for user10524 merge request10525 links to merge requests page for user10526 links to the page for the merge request10527RefMatcher10528 #matching10529 when refs are strings10530 is expected to contain exactly "v1.0"10531 behaves like matching_refs10532 when there is no match10533 is expected to contain exactly10534 when ref pattern is a wildcard10535 is expected to contain exactly "v1.0" and "v1.1"10536 when refs are ref objects10537 is expected to contain exactly #<Double "tag">10538 behaves like matching_refs10539 when there is no match10540 is expected to contain exactly10541 when ref pattern is a wildcard10542 is expected to contain exactly #<Double "tag"> and #<Double "tag">10543 #matches?10544 is expected to be truthy10545 when ref_name is empty10546 is expected to be falsey10547 when ref pattern matches wildcard10548 is expected to be truthy10549 when ref pattern does not match wildcard10550 is expected to be falsey10551 #wildcard?10552 is expected to be falsey10553 when pattern is a wildcard10554 is expected to be truthy10555Banzai::IssuableExtractor10556 returns instances of issuables for nodes with references10557 caching10558 saves records to cache10559RuboCop::Cop::UsageData::HistogramWithLargeTable10560 # order random10561 with non related method10562 does not register an offense10563 with large tables10564 with one-level constants10565 when calling histogram(Issue)10566 registers an offense10567 when calling histogram(::Issue)10568 registers an offense10569 when calling histogram(Issue.closed)10570 registers an offense10571 when calling histogram(::Issue.closed)10572 registers an offense10573 with two-level constants10574 when calling histogram(::Ci::Build)10575 registers an offense10576 when calling histogram(::Ci::Build.active)10577 registers an offense10578 when calling histogram(Ci::Build)10579 registers an offense10580 when calling histogram(Ci::Build.active)10581 registers an offense10582 with non related class10583 does not register an offense10584Gitlab::Analytics::CycleAnalytics::Median10585 retruns nil when no results10586 returns median duration seconds as float10587Gitlab::Bullet::Exclusions10588 #execute10589 with preferred method of path and method name10590 behaves like loads exclusion results10591 is expected to match [["_path_", "_method_"]]10592 with file pattern10593 behaves like loads exclusion results10594 is expected to match [["_file_pattern_"]]10595 with file name and line range10596 behaves like loads exclusion results10597 is expected to match [["file_name.rb", 5..10]]10598 without exclusions10599 behaves like loads exclusion results10600 is expected to match [[]]10601 without exclusions key in config10602 behaves like loads exclusion results10603 is expected to match []10604 when config file does not exist10605 provides an empty array for exclusions10606 #validate_paths!10607 when validating scenarios10608 when using paths with method name10609 when source file for exclusion exists10610 is expected not to raise Exception10611 when source file for exclusion does not exist10612 is expected to raise RuntimeError10613 when using path only10614 when source file for exclusion exists10615 is expected not to raise Exception10616 when source file for exclusion does not exist10617 is expected to raise RuntimeError10618 when path_with_method is false for a file pattern10619 is expected not to raise Exception10620Pajamas::CardComponent10621 slots10622 renders card header10623 renders card body10624 renders footer10625 with defaults10626 does not have a header or footer10627 renders the card and body10628 with custom options10629 renders card options10630 renders header options10631 renders body options10632 renders footer options10633CycleAnalytics::ProjectLevelStageAdapter10634 calculates median10635 lists events10636 presents the data as json10637BranchesHelper10638 #access_levels_data10639 when access_levels is nil10640 is expected to be empty10641 when access levels are provided10642 returns the correct array10643 when an access level tied to a deploy key is provided10644 returns the correct array10645AlertManagement::HttpIntegrations::UpdateService10646 #execute10647 when the current_user is anonymous10648 behaves like error response10649 has an informative message10650 when current_user does not have permission to create integrations10651 behaves like error response10652 has an informative message10653 when an error occurs during update10654 behaves like error response10655 has an informative message10656 with name param10657 successfully updates the integration10658 with active param10659 successfully updates the integration10660 with regenerate_token flag10661 successfully updates the integration10662Mutations::Clusters::AgentTokens::Create10663 is expected to require graphql authorizations :create_cluster10664 #resolve10665 without token permissions10666 raises an error if the resource is not accessible to the user10667 with user permissions10668 creates a new token10669 returns token information10670RuboCop::Cop::Style::RegexpLiteralMixedPreserve10671 # order random10672 when EnforcedStyle is set to mixed_preserve10673 a single-line `//` regex without slashes10674 is accepted10675 a single-line `//` regex with slashes10676 registers an offense and corrects10677 when configured to allow inner slashes10678 is accepted10679 a multi-line `//` regex without slashes10680 is accepted10681 a multi-line `//` regex with slashes10682 registers an offense and corrects10683 a single-line %r regex without slashes10684 is accepted10685 a single-line %r regex with slashes10686 is accepted10687 when configured to allow inner slashes10688 is accepted10689 a multi-line %r regex without slashes10690 is accepted10691 a multi-line %r regex with slashes10692 is accepted10693Gitlab::Ci::Reports::TestReportSummary10694 #total10695 when test report summary has several build report results10696 returns all the total count in a hash10697 #test_suites10698 when test report summary has several build report results10699 returns test suites grouped by name10700Resolvers::Ci::ProjectRunnersResolver10701 # order random10702 #resolve10703 when user cannot see runners10704 returns no runners10705 with user as project admin10706 returns all runners available to the project10707 with obj set to nil10708 raises an error10709 with obj not set to project10710 raises an error10711 Allowed query arguments10712 calls RunnersFinder with expected arguments10713Gitlab::WordDiff::ChunkCollection10714 #add10715 adds elements to the chunk collection10716 #content10717 when no elements in the collection10718 is expected to eq ""10719 when elements exist10720 is expected to eq "Hi GitLab!"10721 #reset10722 clears the collection10723 #marker_ranges10724 returns marker ranges for every chunk with changes10725Gitlab::Audit::NullAuthor10726 .for10727 returns an DeletedAuthor10728 returns an UnauthenticatedAuthor when id equals -110729 returns a CiRunnerTokenAuthor when details contain runner registration token10730 returns a CiRunnerTokenAuthor when details contain runner authentication token10731 returns DeployTokenAuthor when id equals -210732 returns DeployKeyAuthor when id equals -310733 #current_sign_in_ip10734 is expected to be nil10735projects/pipeline_schedules/_pipeline_schedule10736 taking ownership of schedule10737 when non-owner is signed in10738 non-owner can take ownership of pipeline10739 when owner is signed in10740 owner cannot take ownership of pipeline10741WorkItems::Widgets::LabelsService::UpdateService10742 # order random10743 #prepare_update_params10744 when params are set10745 sets params correctly10746 when widget does not exist in new type10747 sets correct params to remove work item labels10748Gitlab::DependencyLinker::GodepsJsonLinker10749 .support?10750 supports Godeps.json10751 does not support other files10752 #link10753 links the package name10754 links GitHub repos10755 links GitLab projects10756 links Golang packages10757Gitlab::Diff::StatsCache10758 VERSION is set10759 #read10760 returns the expected stats10761 #write_if_empty10762 when the cache already exists10763 does not write the stats10764 when the cache does not exist10765 writes the stats10766 when given non utf-8 characters10767 writes the stats10768 when given empty stats10769 does not write the stats10770 #clear10771 clears cache10772 with multiple cache versions10773 does not read from a stale cache10774Mutations::Security::CiConfiguration::BaseSecurityAnalyzer10775 raises a NotImplementedError error if the resolve method is called on the base class10776ServiceHookPresenter10777 #logs_details_path10778 is expected to eq "/namespace987/project959/-/settings/integrations/drone_ci/hook_logs/18"10779 #logs_retry_path10780 is expected to eq "/namespace988/project960/-/settings/integrations/drone_ci/hook_logs/19/retry"10781registrations/welcome/show10782 is expected not to have visible css "label[for=\"user_setup_for_company\"]"10783 is expected to have visible button "Get started!" that is not disabled10784 is expected not to have visible css "input[name=\"user[email_opted_in]\"]"10785Gitlab::Middleware::BasicHealthCheck10786 #call10787 outside IP10788 returns a 40410789 forwards the call for other paths10790 with X-Forwarded-For headers10791 returns 200 response when endpoint is allowed10792 returns 404 when whitelist is not configured10793 whitelisted IP10794 returns 200 response when endpoint is hit10795 forwards the call for other paths10796Gitlab::RequestEndpoints10797 .all_api_endpoints10798 selects all feature API classes10799 .all_controller_actions10800 selects all feature controllers and action names10801Gitlab::Auth::Atlassian::User10802 .assign_identity_from_auth_hash!10803 behaves like an atlassian identity10804 sets the proper values10805 #save10806 for an existing user10807 with an existing Atlassian Identity10808 finds the existing user and identity10809 behaves like an atlassian identity10810 sets the proper values10811 for a new user10812 creates the user and identity10813Namespaces::RandomizedSuffixPath10814 # order random10815 #call10816 returns path without count when count is 010817 returns path suffixed with count when between 0 and 410818 adds a "randomized" suffix when MAX_TRIES is exhausted10819 adds an offset to the "randomized" suffix when MAX_TRIES is exhausted10820 #to_s10821 represents with given path10822Gitlab::CrossProjectAccess10823 #add_check10824 keeps track of the properties to check10825 builds the check correctly10826 merges the checks of a parent class into existing checks of a subclass10827 merges the existing checks of a superclass into the checks of a subclass10828 #find_check10829 returns a check when it was defined for a superclass10830 caches the result for a subclass10831 returns the checks for the closest class if there are more checks available10832API::Entities::Branch10833 #as_json10834 includes basic fields10835Gitlab::HealthChecks::MasterCheck10836 when Puma runs in Clustered mode10837 .available?10838 is expected to equal true10839 .readiness10840 when no worker registered10841 succeeds10842 when worker registers itself10843 when reading from pipe succeeds10844 succeeds10845 when read pipe is open but not ready for reading10846 succeeds10847 when master finishes early10848 fails10849 when Puma runs in Single mode10850 .available?10851 is expected to equal false10852BulkImports::Common::Extractors::JsonExtractor10853 #extract10854 returns ExtractedData10855 #remove_tmpdir10856 removes tmp dir10857Integrations::HasWebHook10858 # order random10859 when integration responds to enable_ssl_verification10860 is expected to eq true10861 when hook_url and url_variables are not implemented10862 is expected to raise NotImplementedError10863 is expected to raise NotImplementedError10864 when integration does not respond to enable_ssl_verification10865 is expected to eq true10866FeatureFlagSummaryEntity10867 has summary information10868Ci::DailyBuildGroupReportResultEntity10869 #as_json10870 is expected to include :date10871 is expected not to include :group_name10872 is expected to include :coverage10873 when given param_type is not allowed10874 is expected not to include :coverage10875 is expected not to include :something_else10876Gitlab::Graphql::Representation::SubmoduleTreeEntry10877 .decorate10878 returns array of SubmoduleTreeEntry10879UserStatusCleanup::BatchWorker10880 is labeled as idempotent10881 performs multiple times sequentially without raising an exception10882 #perform10883 cleans up the records10884 when no records are scheduled for cleanup10885 does nothing10886Gitlab::Metrics::Subscribers::Ldap10887 # order random10888 .payload10889 when SafeRequestStore is empty10890 returns an empty array10891 when LDAP recorded some values10892 returns the populated payload10893 #observe_event10894 tracks LDAP request count10895 tracks LDAP request duration10896 stores per-request counters10897Gitlab::DependencyLinker::GoSumLinker10898 .support?10899 supports go.sum10900 does not support other files10901 #link10902 links modules10903 links checksums10904Gitlab::Kubernetes::RolloutInstances10905 #pod_instances10906 returns an instance for a deployment with one pod10907 returns a pending pod for a missing replica10908 returns instances when there are two stable deployments10909 returns instances for two deployments with different tracks10910 sorts stable tracks after canary tracks10911Users::EmailVerification::GenerateTokenService10912 #execute10913 with a valid attribute10914 attr: :unlock_token10915 returns a token and it's digest10916 attr: :confirmation_token10917 returns a token and it's digest10918 with an invalid attribute10919 raises an error10920shared/projects/_inactive_project_deletion_alert10921 without a project10922 behaves like does not render10923 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"10924 with a project10925 when the project is active10926 behaves like does not render10927 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"10928 when the project is inactive10929 does render the alert10930Types::JiraImportType10931 is expected to eq "JiraImport"10932 has the expected fields10933Autocomplete::ActsAsTaggableOn::TagsFinder10934 #execute10935 with empty params10936 returns all tags10937 filter by search10938 with an empty search term10939 returns all tags10940 with a search containing 2 characters10941 returns the tag that strictly matches the search term10942 with a search containing 3 characters10943 returns the tag that partially matches the search term10944 limit10945 limits the result set by the limit constant10946Types::Notes::SystemNoteMetadataType10947 # order random10948 is expected to require graphql authorizations :read_note10949 is expected to have graphql field :action10950 is expected to have graphql field :description_version10951 is expected to have graphql field :id10952Gitlab::Ci::Pipeline::Chain::TemplateUsage10953 #perform!10954 tracks the included templates10955Gitlab::LetsEncrypt::Challenge10956 #status10957 delegates to Acme::Client::Resources::Challenge10958 #token10959 delegates to Acme::Client::Resources::Challenge10960 #file_content10961 delegates to Acme::Client::Resources::Challenge10962 #request_validation10963 delegates to Acme::Client::Resources::Challenge10964 #error10965 delegates to Acme::Client::Resources::Challenge10966Gitlab::Ci::Config::External::Mapper::VariablesExpander10967 # order random10968 #process10969 when locations are strings10970 expands variables10971 when locations are hashes10972 expands variables10973 when locations are arrays10974 expands variables10975Types::TimeType10976 is expected to eq "Time"10977 coerces Time object into ISO 860110978 coerces an ISO-time into Time object10979 rejects invalid input10980 allows nil10981Evidences::EvidenceSerializer10982 represents an EvidenceEntity entity10983Peek::Views::Rugged10984 returns no results10985 returns aggregated results10986Gitlab::CycleAnalytics::Summary::Value10987 Gitlab::CycleAnalytics::Summary::Value::None10988 returns `-`10989 Gitlab::CycleAnalytics::Summary::Value::Numeric10990 returns the string representation of the number10991 Gitlab::CycleAnalytics::Summary::Value::PrettyNumeric10992 #to_s10993 returns `-` when the number is 010994 returns `-` when the number is nil10995 returns the string representation of the number10996InstanceMetadataPolicy10997 for any logged-in user10998 is expected to be allowed :read_instance_metadata10999 for anonymous users11000 is expected not to be allowed :read_instance_metadata11001Import::Github::GistsImportService11002 # order random11003 #execute11004 when import in progress11005 returns error11006 when import was not started11007 returns success11008 when user token is invalid11009 returns 401 error11010Types::ReleaseAssetLinkType11011 is expected to require graphql authorizations :read_release11012 has the expected fields11013Gitlab::Ci::Reports::CodequalityMrDiff11014 #initialize!11015 when quality has degradations11016 with several degradations on the same line11017 generates quality report for mr diff11018 with several degradations on several files11019 returns quality report for mr diff11020 when quality has no degradation11021 returns an empty hash11022Types::IssuableSortEnum11023 is expected to eq "IssuableSort"11024 exposes all the existing issuable sort values11025Types::WorkItems::Widgets::HierarchyType11026 exposes the expected fields11027Types::Ci::TestSuiteType11028 is expected to eq "TestSuite"11029 contains attributes related to a pipeline test suite11030Banzai::Filter::JiraImport::AdfToCommonmarkFilter11031 renders a complex document11032 renders original source when it is invalid JSON11033 renders original source when missing document node11034Types::Ci::RecentFailuresType11035 is expected to eq "RecentFailures"11036 contains attributes related to a recent failure history for a test case11037Integrations::BaseSlackNotification11038 # order random11039 #metrics_key_prefix (private method)11040 raises a NotImplementedError error when not defined11041Clusters::Project11042 is expected to belong to cluster required: false11043 is expected to belong to project required: false11044 is expected to have many kubernetes_namespaces11045MemberPresenter11046 # order random11047 #last_owner?11048 raises `NotImplementedError`11049RequestAwareEntity11050 includes URL helpers11051 includes method for checking abilities11052 fetches request from options11053Gitlab::PhabricatorImport::Conduit::User11054 #users11055 calls the api with the correct params11056 returns an array of parsed responses11057 performs multiple requests if more phids than the maximum page size are passed11058Types::Ci::Config::IncludeType11059 is expected to eq "CiConfigInclude"11060 exposes the expected fields11061MembersDestroyer::UnassignIssuablesWorker11062 calls the Members::UnassignIssuablesService with the params it was given11063 when unsupported membership source entity11064 exits early and logs error11065Gitlab::Database::SchemaMigrations::Migrations11066 #touch_all11067 creates a file containing a checksum for each version with a matching migration11068 #load_all11069 when there are no version files11070 does nothing11071 when there are version files11072 inserts the missing versions into schema_migrations11073Types::Projects::TopicType11074 is expected to eq "Topic"11075 is expected to have graphql fields :id, :name, :title, :description, :description_html, and :avatar_url11076Gitlab::Faraday::ErrorCallback11077 #call11078 with no errors11079 is expected to eq "success"11080 with errors11081 with no callback11082 uses the default callback11083 with a custom callback11084 uses the custom callback11085Gitlab::Ci::SecureFiles::X509Name11086 # order random11087 .parse11088 parses an X509Name object into a hash format11089 returns an empty hash when an error occurs11090Types::ReleaseSourceType11091 is expected to require graphql authorizations :read_code11092 has the expected fields11093DetailedStatusEntity11094 #as_json11095 contains status details11096Types::QueryComplexityType11097 is expected to have graphql fields :limit and :score11098 works when executed11099Types::Ci::Config::IncludeTypeEnum11100 is expected to eq "CiConfigIncludeType"11101 exposes all the existing include types11102Gitlab::Usage::Metrics::Instrumentations::MergeRequestWidgetExtensionMetric11103 # order random11104 raises an exception if widget option is not present11105 behaves like a correct instrumented metric value11106 has correct value11107Gitlab::GrapeLogging::Loggers::PerfLogger11108 .parameters11109 when no performance data present11110 is expected not to include {:redis_calls => 1}11111 when performance data present11112 is expected to include {:redis_calls => 1}11113shared/gitlab_version/_security_patch_upgrade_alert11114 # order random11115 when show_security_patch_upgrade_alert? is true11116 renders the security patch upgrade alert modal11117Gitlab::ImportExport::LegacyRelationTreeSaver11118 #serialize11119 uses FastHashSerializer11120Gitlab::Git::Conflict::Resolver11121 #conflicts11122 returns list of conflicts11123 when GRPC::FailedPrecondition is raised11124 rescues and raises Gitlab::Git::Conflict::Resolver::ConflictSideMissing11125Types::Ci::PipelineScheduleStatusEnum11126 # order random11127 is expected to eq "PipelineScheduleStatus"11128 exposes the status of a pipeline schedule11129Gitlab::GitalyClient::DiffStitcher11130 enumeration11131 combines segregated diff messages together11132Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker11133 # order random11134 #import11135 imports an pull request review requests11136EnableSearchSettingsHelper11137 #enable_search_settings11138 sets content for before_content11139Projects::Security::ConfigurationController routing11140 routes to #show11141IssuableBaseService11142 # order random11143 #constructor_container_arg11144 is expected to eq {:container=>"some-value"}11145Types::Ci::VariableInterface11146 is expected to have graphql fields :id, :key, :raw, :value, and :variable_type11147Pending: (Failures listed here are expected and do not affect your suite's status)11148 1) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 11149 # No pattern provided, skipping.11150 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811151 2) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 11152 # No pattern provided, skipping.11153 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811154 3) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative11155 # Path not set, skipping.11156 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4011157 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 11158 # No pattern provided, skipping.11159 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811160 5) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 11161 # No pattern provided, skipping.11162 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811163 6) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 11164 # No pattern provided, skipping.11165 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811166 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative11167 # Path not set, skipping.11168 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4011169 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 11170 # No pattern provided, skipping.11171 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811172 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 11173 # No pattern provided, skipping.11174 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:811175Finished in 18 minutes 55 seconds (files took 54.58 seconds to load)111765078 examples, 0 failures, 9 pending11177Randomized with seed 2199911178[TEST PROF INFO] Time spent in factories: 09:14.869 (47.74% of total time)11179RSpec exited with 0.11180No examples to retry, congrats!11182Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy11183Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy11185Uploading artifacts...11186coverage/: found 5 matching artifact files and directories 11187crystalball/: found 2 matching artifact files and directories 11188deprecations/: found 6 matching artifact files and directories 11189knapsack/: found 3 matching artifact files and directories 11190WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 11191rspec/: found 12 matching artifact files and directories 11192WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 11193log/*.log: found 17 matching artifact files and directories 11194WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138873/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com11195WARNING: Retrying... context=artifacts-uploader error=request redirected11196Uploading artifacts as "archive" to coordinator... 201 Created id=4031138873 responseStatus=201 Created token=64_NwWjx11197Uploading artifacts...11198rspec/junit_rspec.xml: found 1 matching artifact files and directories 11199WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138873/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com11200WARNING: Retrying... context=artifacts-uploader error=request redirected11201Uploading artifacts as "junit" to coordinator... 201 Created id=4031138873 responseStatus=201 Created token=64_NwWjx11203Job succeeded