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

🤖 GitLab Bot 🤖
1SELECT pg_catalog.set_config('search_path', '', false);2CREATE DATABASE praefect_test ENCODING 'UTF8';3==> 'setup_db_praefect' succeeded in 0 seconds.4$ source ./scripts/rspec_helpers.sh5$ run_timed_command "gem install knapsack --no-document"6$ gem install knapsack --no-document7Successfully installed knapsack-4.0.081 gem installed9==> 'gem install knapsack --no-document' succeeded in 1 seconds.10$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"114$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"115SKIP_FLAKY_TESTS_AUTOMATICALLY: false116RETRY_FAILED_TESTS_IN_NEW_PROCESS: true117KNAPSACK_GENERATE_REPORT: true118FLAKY_RSPEC_GENERATE_REPORT: true119KNAPSACK_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.rb120KNAPSACK_LOG_LEVEL: debug121KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_single-db_10_28_report.json122FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json123FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_single-db_10_28_report.json124NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_single-db_10_28_report.json125SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_single-db_10_28_report.txt126CRYSTALBALL: 127Knapsack node specs:128spec/lib/gitlab/relative_positioning/mover_spec.rb129spec/services/auth/container_registry_authentication_service_spec.rb130spec/services/git/branch_hooks_service_spec.rb131spec/services/notes/update_service_spec.rb132spec/uploaders/design_management/design_v432x230_uploader_spec.rb133spec/services/packages/npm/create_package_service_spec.rb134spec/finders/ci/runners_finder_spec.rb135spec/services/members/invitation_reminder_email_service_spec.rb136spec/lib/gitlab/ci/templates/templates_spec.rb137spec/models/sent_notification_spec.rb138spec/models/remote_mirror_spec.rb139spec/graphql/mutations/merge_requests/set_labels_spec.rb140spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb141spec/models/hooks/web_hook_spec.rb142spec/lib/gitlab/ci/trace_spec.rb143spec/lib/gitlab/import_export/project/object_builder_spec.rb144spec/services/members/groups/creator_service_spec.rb145spec/graphql/mutations/merge_requests/accept_spec.rb146spec/services/projects/cleanup_service_spec.rb147spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb148spec/models/integrations/chat_message/pipeline_message_spec.rb149spec/support_specs/helpers/stub_feature_flags_spec.rb150spec/lib/container_registry/gitlab_api_client_spec.rb151spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb152spec/models/customer_relations/contact_spec.rb153spec/lib/banzai/filter/video_link_filter_spec.rb154spec/workers/concerns/application_worker_spec.rb155spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb156spec/models/concerns/group_descendant_spec.rb157spec/services/alert_management/alerts/update_service_spec.rb158spec/lib/gitlab/middleware/read_only_spec.rb159spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb160spec/services/branches/delete_merged_service_spec.rb161spec/lib/gitlab/ci/config/external/mapper_spec.rb162spec/services/projects/git_deduplication_service_spec.rb163spec/lib/gitlab/utils/sanitize_node_link_spec.rb164spec/serializers/stage_entity_spec.rb165spec/services/ci/delete_unit_tests_service_spec.rb166spec/lib/gitlab_spec.rb167spec/lib/gitlab/observability_spec.rb168spec/presenters/group_clusterable_presenter_spec.rb169spec/models/bulk_imports/entity_spec.rb170spec/graphql/mutations/issues/set_confidential_spec.rb171spec/helpers/tree_helper_spec.rb172spec/policies/ci/trigger_policy_spec.rb173spec/finders/projects/members/effective_access_level_finder_spec.rb174spec/lib/gitlab/ci/build/auto_retry_spec.rb175spec/lib/gitlab/data_builder/deployment_spec.rb176spec/services/lfs/unlock_file_service_spec.rb177spec/services/metrics/dashboard/clone_dashboard_service_spec.rb178spec/models/merge_request/metrics_spec.rb179spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb180spec/workers/concerns/reenqueuer_spec.rb181spec/serializers/issue_sidebar_basic_entity_spec.rb182spec/workers/project_export_worker_spec.rb183spec/services/projects/container_repository/destroy_service_spec.rb184spec/helpers/users/callouts_helper_spec.rb185spec/lib/gitlab/protocol_access_spec.rb186spec/models/integrations/harbor_spec.rb187spec/helpers/ci/pipeline_editor_helper_spec.rb188spec/workers/chat_notification_worker_spec.rb189spec/graphql/mutations/ci/runner/update_spec.rb190spec/lib/gitlab/import_export/remote_stream_upload_spec.rb191spec/lib/error_tracking/sentry_client/issue_link_spec.rb192spec/services/milestones/closed_issues_count_service_spec.rb193spec/graphql/mutations/release_asset_links/update_spec.rb194spec/lib/gitlab/subscription_portal_spec.rb195spec/serializers/stage_serializer_spec.rb196spec/lib/sidebars/projects/menus/zentao_menu_spec.rb197spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb198spec/models/users/merge_request_interaction_spec.rb199spec/views/admin/dashboard/index.html.haml_spec.rb200spec/models/clusters/agent_token_spec.rb201spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb202spec/lib/bitbucket/representation/pull_request_spec.rb203spec/graphql/resolvers/ci/runners_resolver_spec.rb204spec/lib/gitlab/ci/config/external/file/base_spec.rb205spec/lib/gitlab/config/entry/validators_spec.rb206spec/lib/gitlab/ci/build/duration_parser_spec.rb207spec/services/packages/debian/generate_distribution_key_service_spec.rb208spec/lib/gitlab/sanitizers/exception_message_spec.rb209spec/finders/packages/package_file_finder_spec.rb210spec/finders/clusters_finder_spec.rb211spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb212spec/views/projects/merge_requests/_commits.html.haml_spec.rb213spec/services/packages/composer/version_parser_service_spec.rb214spec/lib/safe_zip/extract_spec.rb215spec/services/projects/move_users_star_projects_service_spec.rb216spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb217spec/lib/gitlab/database/migrations/sidekiq_helpers_spec.rb218spec/workers/gitlab_service_ping_worker_spec.rb219spec/workers/web_hooks/log_destroy_worker_spec.rb220spec/lib/gitlab/database/transaction/context_spec.rb221spec/lib/api/helpers/pagination_strategies_spec.rb222spec/services/google_cloud/fetch_google_ip_list_service_spec.rb223spec/graphql/resolvers/releases_resolver_spec.rb224spec/graphql/resolvers/projects/services_resolver_spec.rb225spec/services/prometheus/proxy_variable_substitution_service_spec.rb226spec/graphql/mutations/labels/create_spec.rb227spec/tooling/danger/sidekiq_args_spec.rb228spec/graphql/resolvers/ci/jobs_resolver_spec.rb229spec/lib/gitlab/rack_attack/user_allowlist_spec.rb230spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb231spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb232spec/models/ci/build_pending_state_spec.rb233spec/services/labels/update_service_spec.rb234spec/workers/projects/record_target_platforms_worker_spec.rb235spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb236spec/lib/gitlab/gitlab_import/client_spec.rb237spec/lib/gitlab/ci/config/yaml_spec.rb238spec/graphql/types/untrusted_regexp_spec.rb239spec/lib/gitlab/auth/ip_rate_limiter_spec.rb240spec/models/user_interacted_project_spec.rb241spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb242spec/lib/gitlab/gon_helper_spec.rb243spec/lib/gitlab/memory/watchdog/configurator_spec.rb244spec/lib/gitlab/ci/pipeline/chain/create_spec.rb245spec/lib/gitlab/zoom_link_extractor_spec.rb246spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb247spec/services/ci/ensure_stage_service_spec.rb248spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb249spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb250spec/graphql/types/base_argument_spec.rb251spec/services/system_notes/incidents_service_spec.rb252spec/graphql/types/ci/job_type_spec.rb253spec/graphql/resolvers/group_members_resolver_spec.rb254spec/services/incident_management/link_alerts/destroy_service_spec.rb255spec/services/groups/auto_devops_service_spec.rb256spec/lib/sidebars/your_work/menus/todos_menu_spec.rb257spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb258spec/tasks/admin_mode_spec.rb259spec/support_specs/ability_check_spec.rb260spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb261spec/models/guest_spec.rb262spec/initializers/00_rails_disable_joins_spec.rb263spec/lib/gitlab/import_export/design_repo_saver_spec.rb264spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb265spec/serializers/admin/abuse_report_entity_spec.rb266spec/serializers/lfs_file_lock_entity_spec.rb267spec/lib/gitlab/phabricator_import/cache/map_spec.rb268spec/views/notify/changed_milestone_email.html.haml_spec.rb269spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb270spec/lib/gitlab/git/remote_mirror_spec.rb271spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb272spec/views/shared/milestones/_issuable.html.haml_spec.rb273spec/models/ref_matcher_spec.rb274spec/lib/banzai/issuable_extractor_spec.rb275spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb276spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb277spec/lib/gitlab/bullet/exclusions_spec.rb278spec/components/pajamas/card_component_spec.rb279spec/models/cycle_analytics/project_level_stage_adapter_spec.rb280spec/helpers/branches_helper_spec.rb281spec/services/alert_management/http_integrations/update_service_spec.rb282spec/graphql/mutations/clusters/agent_tokens/create_spec.rb283spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb284spec/lib/gitlab/ci/reports/test_report_summary_spec.rb285spec/graphql/resolvers/ci/project_runners_resolver_spec.rb286spec/lib/gitlab/word_diff/chunk_collection_spec.rb287spec/lib/gitlab/audit/null_author_spec.rb288spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb289spec/services/work_items/widgets/labels_service/update_service_spec.rb290spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb291spec/lib/gitlab/diff/stats_cache_spec.rb292spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb293spec/presenters/service_hook_presenter_spec.rb294spec/views/registrations/welcome/show.html.haml_spec.rb295spec/lib/gitlab/middleware/basic_health_check_spec.rb296spec/lib/gitlab/request_endpoints_spec.rb297spec/lib/gitlab/auth/atlassian/user_spec.rb298spec/models/namespaces/randomized_suffix_path_spec.rb299spec/lib/gitlab/cross_project_access_spec.rb300spec/lib/api/entities/branch_spec.rb301spec/lib/gitlab/health_checks/master_check_spec.rb302spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb303spec/models/concerns/integrations/has_web_hook_spec.rb304spec/serializers/feature_flag_summary_entity_spec.rb305spec/serializers/ci/daily_build_group_report_result_entity_spec.rb306spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb307spec/workers/user_status_cleanup/batch_worker_spec.rb308spec/lib/gitlab/metrics/subscribers/ldap_spec.rb309spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb310spec/lib/gitlab/kubernetes/rollout_instances_spec.rb311spec/services/users/email_verification/generate_token_service_spec.rb312spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb313spec/graphql/types/jira_import_type_spec.rb314spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb315spec/graphql/types/notes/system_note_metadata_type_spec.rb316spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb317spec/lib/gitlab/lets_encrypt/challenge_spec.rb318spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb319spec/graphql/types/time_type_spec.rb320spec/serializers/evidences/evidence_serializer_spec.rb321spec/lib/peek/views/rugged_spec.rb322spec/lib/gitlab/cycle_analytics/summary/value_spec.rb323spec/policies/instance_metadata_policy_spec.rb324spec/services/import/github/gists_import_service_spec.rb325spec/graphql/types/release_asset_link_type_spec.rb326spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb327spec/graphql/types/issuable_sort_enum_spec.rb328spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb329spec/graphql/types/ci/test_suite_type_spec.rb330spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb331spec/graphql/types/ci/recent_failures_type_spec.rb332spec/models/integrations/base_slack_notification_spec.rb333spec/models/clusters/project_spec.rb334spec/presenters/member_presenter_spec.rb335spec/serializers/request_aware_entity_spec.rb336spec/lib/gitlab/phabricator_import/conduit/user_spec.rb337spec/graphql/types/ci/config/include_type_spec.rb338spec/workers/members_destroyer/unassign_issuables_worker_spec.rb339spec/lib/gitlab/database/schema_migrations/migrations_spec.rb340spec/graphql/types/projects/topic_type_spec.rb341spec/lib/gitlab/faraday/error_callback_spec.rb342spec/lib/gitlab/ci/secure_files/x509_name_spec.rb343spec/graphql/types/release_source_type_spec.rb344spec/serializers/detailed_status_entity_spec.rb345spec/graphql/types/query_complexity_type_spec.rb346spec/graphql/types/ci/config/include_type_enum_spec.rb347spec/lib/gitlab/usage/metrics/instrumentations/merge_request_widget_extension_metric_spec.rb348spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb349spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb350spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb351spec/lib/gitlab/git/conflict/resolver_spec.rb352spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb353spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb354spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb355spec/helpers/enable_search_settings_helper_spec.rb356spec/routing/projects/security/configuration_controller_routing_spec.rb357spec/services/issues/issuable_base_service_spec.rb358spec/graphql/types/ci/variable_interface_spec.rb359Filter specs:360Running specs:361Running all node tests without filter362spec/lib/gitlab/relative_positioning/mover_spec.rb363spec/services/auth/container_registry_authentication_service_spec.rb364spec/services/git/branch_hooks_service_spec.rb365spec/services/notes/update_service_spec.rb366spec/uploaders/design_management/design_v432x230_uploader_spec.rb367spec/services/packages/npm/create_package_service_spec.rb368spec/finders/ci/runners_finder_spec.rb369spec/services/members/invitation_reminder_email_service_spec.rb370spec/lib/gitlab/ci/templates/templates_spec.rb371spec/models/sent_notification_spec.rb372spec/models/remote_mirror_spec.rb373spec/graphql/mutations/merge_requests/set_labels_spec.rb374spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb375spec/models/hooks/web_hook_spec.rb376spec/lib/gitlab/ci/trace_spec.rb377spec/lib/gitlab/import_export/project/object_builder_spec.rb378spec/services/members/groups/creator_service_spec.rb379spec/graphql/mutations/merge_requests/accept_spec.rb380spec/services/projects/cleanup_service_spec.rb381spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb382spec/models/integrations/chat_message/pipeline_message_spec.rb383spec/support_specs/helpers/stub_feature_flags_spec.rb384spec/lib/container_registry/gitlab_api_client_spec.rb385spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb386spec/models/customer_relations/contact_spec.rb387spec/lib/banzai/filter/video_link_filter_spec.rb388spec/workers/concerns/application_worker_spec.rb389spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb390spec/models/concerns/group_descendant_spec.rb391spec/services/alert_management/alerts/update_service_spec.rb392spec/lib/gitlab/middleware/read_only_spec.rb393spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb394spec/services/branches/delete_merged_service_spec.rb395spec/lib/gitlab/ci/config/external/mapper_spec.rb396spec/services/projects/git_deduplication_service_spec.rb397spec/lib/gitlab/utils/sanitize_node_link_spec.rb398spec/serializers/stage_entity_spec.rb399spec/services/ci/delete_unit_tests_service_spec.rb400spec/lib/gitlab_spec.rb401spec/lib/gitlab/observability_spec.rb402spec/presenters/group_clusterable_presenter_spec.rb403spec/models/bulk_imports/entity_spec.rb404spec/graphql/mutations/issues/set_confidential_spec.rb405spec/helpers/tree_helper_spec.rb406spec/policies/ci/trigger_policy_spec.rb407spec/finders/projects/members/effective_access_level_finder_spec.rb408spec/lib/gitlab/ci/build/auto_retry_spec.rb409spec/lib/gitlab/data_builder/deployment_spec.rb410spec/services/lfs/unlock_file_service_spec.rb411spec/services/metrics/dashboard/clone_dashboard_service_spec.rb412spec/models/merge_request/metrics_spec.rb413spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb414spec/workers/concerns/reenqueuer_spec.rb415spec/serializers/issue_sidebar_basic_entity_spec.rb416spec/workers/project_export_worker_spec.rb417spec/services/projects/container_repository/destroy_service_spec.rb418spec/helpers/users/callouts_helper_spec.rb419spec/lib/gitlab/protocol_access_spec.rb420spec/models/integrations/harbor_spec.rb421spec/helpers/ci/pipeline_editor_helper_spec.rb422spec/workers/chat_notification_worker_spec.rb423spec/graphql/mutations/ci/runner/update_spec.rb424spec/lib/gitlab/import_export/remote_stream_upload_spec.rb425spec/lib/error_tracking/sentry_client/issue_link_spec.rb426spec/services/milestones/closed_issues_count_service_spec.rb427spec/graphql/mutations/release_asset_links/update_spec.rb428spec/lib/gitlab/subscription_portal_spec.rb429spec/serializers/stage_serializer_spec.rb430spec/lib/sidebars/projects/menus/zentao_menu_spec.rb431spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb432spec/models/users/merge_request_interaction_spec.rb433spec/views/admin/dashboard/index.html.haml_spec.rb434spec/models/clusters/agent_token_spec.rb435spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb436spec/lib/bitbucket/representation/pull_request_spec.rb437spec/graphql/resolvers/ci/runners_resolver_spec.rb438spec/lib/gitlab/ci/config/external/file/base_spec.rb439spec/lib/gitlab/config/entry/validators_spec.rb440spec/lib/gitlab/ci/build/duration_parser_spec.rb441spec/services/packages/debian/generate_distribution_key_service_spec.rb442spec/lib/gitlab/sanitizers/exception_message_spec.rb443spec/finders/packages/package_file_finder_spec.rb444spec/finders/clusters_finder_spec.rb445spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb446spec/views/projects/merge_requests/_commits.html.haml_spec.rb447spec/services/packages/composer/version_parser_service_spec.rb448spec/lib/safe_zip/extract_spec.rb449spec/services/projects/move_users_star_projects_service_spec.rb450spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb451spec/lib/gitlab/database/migrations/sidekiq_helpers_spec.rb452spec/workers/gitlab_service_ping_worker_spec.rb453spec/workers/web_hooks/log_destroy_worker_spec.rb454spec/lib/gitlab/database/transaction/context_spec.rb455spec/lib/api/helpers/pagination_strategies_spec.rb456spec/services/google_cloud/fetch_google_ip_list_service_spec.rb457spec/graphql/resolvers/releases_resolver_spec.rb458spec/graphql/resolvers/projects/services_resolver_spec.rb459spec/services/prometheus/proxy_variable_substitution_service_spec.rb460spec/graphql/mutations/labels/create_spec.rb461spec/tooling/danger/sidekiq_args_spec.rb462spec/graphql/resolvers/ci/jobs_resolver_spec.rb463spec/lib/gitlab/rack_attack/user_allowlist_spec.rb464spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb465spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb466spec/models/ci/build_pending_state_spec.rb467spec/services/labels/update_service_spec.rb468spec/workers/projects/record_target_platforms_worker_spec.rb469spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb470spec/lib/gitlab/gitlab_import/client_spec.rb471spec/lib/gitlab/ci/config/yaml_spec.rb472spec/graphql/types/untrusted_regexp_spec.rb473spec/lib/gitlab/auth/ip_rate_limiter_spec.rb474spec/models/user_interacted_project_spec.rb475spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb476spec/lib/gitlab/gon_helper_spec.rb477spec/lib/gitlab/memory/watchdog/configurator_spec.rb478spec/lib/gitlab/ci/pipeline/chain/create_spec.rb479spec/lib/gitlab/zoom_link_extractor_spec.rb480spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb481spec/services/ci/ensure_stage_service_spec.rb482spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb483spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb484spec/graphql/types/base_argument_spec.rb485spec/services/system_notes/incidents_service_spec.rb486spec/graphql/types/ci/job_type_spec.rb487spec/graphql/resolvers/group_members_resolver_spec.rb488spec/services/incident_management/link_alerts/destroy_service_spec.rb489spec/services/groups/auto_devops_service_spec.rb490spec/lib/sidebars/your_work/menus/todos_menu_spec.rb491spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb492spec/tasks/admin_mode_spec.rb493spec/support_specs/ability_check_spec.rb494spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb495spec/models/guest_spec.rb496spec/initializers/00_rails_disable_joins_spec.rb497spec/lib/gitlab/import_export/design_repo_saver_spec.rb498spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb499spec/serializers/admin/abuse_report_entity_spec.rb500spec/serializers/lfs_file_lock_entity_spec.rb501spec/lib/gitlab/phabricator_import/cache/map_spec.rb502spec/views/notify/changed_milestone_email.html.haml_spec.rb503spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb504spec/lib/gitlab/git/remote_mirror_spec.rb505spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb506spec/views/shared/milestones/_issuable.html.haml_spec.rb507spec/models/ref_matcher_spec.rb508spec/lib/banzai/issuable_extractor_spec.rb509spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb510spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb511spec/lib/gitlab/bullet/exclusions_spec.rb512spec/components/pajamas/card_component_spec.rb513spec/models/cycle_analytics/project_level_stage_adapter_spec.rb514spec/helpers/branches_helper_spec.rb515spec/services/alert_management/http_integrations/update_service_spec.rb516spec/graphql/mutations/clusters/agent_tokens/create_spec.rb517spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb518spec/lib/gitlab/ci/reports/test_report_summary_spec.rb519spec/graphql/resolvers/ci/project_runners_resolver_spec.rb520spec/lib/gitlab/word_diff/chunk_collection_spec.rb521spec/lib/gitlab/audit/null_author_spec.rb522spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb523spec/services/work_items/widgets/labels_service/update_service_spec.rb524spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb525spec/lib/gitlab/diff/stats_cache_spec.rb526spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb527spec/presenters/service_hook_presenter_spec.rb528spec/views/registrations/welcome/show.html.haml_spec.rb529spec/lib/gitlab/middleware/basic_health_check_spec.rb530spec/lib/gitlab/request_endpoints_spec.rb531spec/lib/gitlab/auth/atlassian/user_spec.rb532spec/models/namespaces/randomized_suffix_path_spec.rb533spec/lib/gitlab/cross_project_access_spec.rb534spec/lib/api/entities/branch_spec.rb535spec/lib/gitlab/health_checks/master_check_spec.rb536spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb537spec/models/concerns/integrations/has_web_hook_spec.rb538spec/serializers/feature_flag_summary_entity_spec.rb539spec/serializers/ci/daily_build_group_report_result_entity_spec.rb540spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb541spec/workers/user_status_cleanup/batch_worker_spec.rb542spec/lib/gitlab/metrics/subscribers/ldap_spec.rb543spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb544spec/lib/gitlab/kubernetes/rollout_instances_spec.rb545spec/services/users/email_verification/generate_token_service_spec.rb546spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb547spec/graphql/types/jira_import_type_spec.rb548spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb549spec/graphql/types/notes/system_note_metadata_type_spec.rb550spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb551spec/lib/gitlab/lets_encrypt/challenge_spec.rb552spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb553spec/graphql/types/time_type_spec.rb554spec/serializers/evidences/evidence_serializer_spec.rb555spec/lib/peek/views/rugged_spec.rb556spec/lib/gitlab/cycle_analytics/summary/value_spec.rb557spec/policies/instance_metadata_policy_spec.rb558spec/services/import/github/gists_import_service_spec.rb559spec/graphql/types/release_asset_link_type_spec.rb560spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb561spec/graphql/types/issuable_sort_enum_spec.rb562spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb563spec/graphql/types/ci/test_suite_type_spec.rb564spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb565spec/graphql/types/ci/recent_failures_type_spec.rb566spec/models/integrations/base_slack_notification_spec.rb567spec/models/clusters/project_spec.rb568spec/presenters/member_presenter_spec.rb569spec/serializers/request_aware_entity_spec.rb570spec/lib/gitlab/phabricator_import/conduit/user_spec.rb571spec/graphql/types/ci/config/include_type_spec.rb572spec/workers/members_destroyer/unassign_issuables_worker_spec.rb573spec/lib/gitlab/database/schema_migrations/migrations_spec.rb574spec/graphql/types/projects/topic_type_spec.rb575spec/lib/gitlab/faraday/error_callback_spec.rb576spec/lib/gitlab/ci/secure_files/x509_name_spec.rb577spec/graphql/types/release_source_type_spec.rb578spec/serializers/detailed_status_entity_spec.rb579spec/graphql/types/query_complexity_type_spec.rb580spec/graphql/types/ci/config/include_type_enum_spec.rb581spec/lib/gitlab/usage/metrics/instrumentations/merge_request_widget_extension_metric_spec.rb582spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb583spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb584spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb585spec/lib/gitlab/git/conflict/resolver_spec.rb586spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb587spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb588spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb589spec/helpers/enable_search_settings_helper_spec.rb590spec/routing/projects/security/configuration_controller_routing_spec.rb591spec/services/issues/issuable_base_service_spec.rb592spec/graphql/types/ci/variable_interface_spec.rb593Running all node tests without filter594Running all node tests without filter595Running 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.rbKnapsack report generator started!596Run options: exclude {:quarantine=>true, :level=>"background_migration"}597Test environment set up in 1.028355442 seconds598Gitlab::RelativePositioning::Mover599 #move_to_end600 all positions are taken601 raises an error when placing a new item602 index: 0603 behaves like able to move existing items to the end604 can move any existing item605 index: 1606 behaves like able to move existing items to the end607 can move any existing item608 index: 2609 behaves like able to move existing items to the end610 can move any existing item611 index: 3612 behaves like able to move existing items to the end613 can move any existing item614 index: 4615 behaves like able to move existing items to the end616 can move any existing item617 there are no siblings618 behaves like able to place a new item at the end619 can place any new item620 there is only one sibling621 pos: 101622 behaves like able to place a new item at the end623 can place any new item624 behaves like able to move existing items to the end625 can move any existing item626 pos: 102627 behaves like able to place a new item at the end628 can place any new item629 behaves like able to move existing items to the end630 can move any existing item631 pos: 103632 behaves like able to place a new item at the end633 can place any new item634 behaves like able to move existing items to the end635 can move any existing item636 pos: 104637 behaves like able to place a new item at the end638 can place any new item639 behaves like able to move existing items to the end640 can move any existing item641 pos: 105642 behaves like able to place a new item at the end643 can place any new item644 behaves like able to move existing items to the end645 can move any existing item646 at least one position is free647 free_space: 101, index: 0648 behaves like able to place a new item at the end649 can place any new item650 behaves like able to move existing items to the end651 can move any existing item652 free_space: 101, index: 1653 behaves like able to place a new item at the end654 can place any new item655 behaves like able to move existing items to the end656 can move any existing item657 free_space: 101, index: 2658 behaves like able to place a new item at the end659 can place any new item660 behaves like able to move existing items to the end661 can move any existing item662 free_space: 101, index: 3663 behaves like able to place a new item at the end664 can place any new item665 behaves like able to move existing items to the end666 can move any existing item667 free_space: 102, index: 0668 behaves like able to place a new item at the end669 can place any new item670 behaves like able to move existing items to the end671 can move any existing item672 free_space: 102, index: 1673 behaves like able to place a new item at the end674 can place any new item675 behaves like able to move existing items to the end676 can move any existing item677 free_space: 102, index: 2678 behaves like able to place a new item at the end679 can place any new item680 behaves like able to move existing items to the end681 can move any existing item682 free_space: 102, index: 3683 behaves like able to place a new item at the end684 can place any new item685 behaves like able to move existing items to the end686 can move any existing item687 free_space: 103, index: 0688 behaves like able to place a new item at the end689 can place any new item690 behaves like able to move existing items to the end691 can move any existing item692 free_space: 103, index: 1693 behaves like able to place a new item at the end694 can place any new item695 behaves like able to move existing items to the end696 can move any existing item697 free_space: 103, index: 2698 behaves like able to place a new item at the end699 can place any new item700 behaves like able to move existing items to the end701 can move any existing item702 free_space: 103, index: 3703 behaves like able to place a new item at the end704 can place any new item705 behaves like able to move existing items to the end706 can move any existing item707 free_space: 104, index: 0708 behaves like able to place a new item at the end709 can place any new item710 behaves like able to move existing items to the end711 can move any existing item712 free_space: 104, index: 1713 behaves like able to place a new item at the end714 can place any new item715 behaves like able to move existing items to the end716 can move any existing item717 free_space: 104, index: 2718 behaves like able to place a new item at the end719 can place any new item720 behaves like able to move existing items to the end721 can move any existing item722 free_space: 104, index: 3723 behaves like able to place a new item at the end724 can place any new item725 behaves like able to move existing items to the end726 can move any existing item727 free_space: 105, index: 0728 behaves like able to place a new item at the end729 can place any new item730 behaves like able to move existing items to the end731 can move any existing item732 free_space: 105, index: 1733 behaves like able to place a new item at the end734 can place any new item735 behaves like able to move existing items to the end736 can move any existing item737 free_space: 105, index: 2738 behaves like able to place a new item at the end739 can place any new item740 behaves like able to move existing items to the end741 can move any existing item742 free_space: 105, index: 3743 behaves like able to place a new item at the end744 can place any new item745 behaves like able to move existing items to the end746 can move any existing item747 #move_to_start748 all positions are taken749 raises an error when placing a new item750 index: 0751 behaves like able to move existing items to the start752 can move any existing item753 index: 1754 behaves like able to move existing items to the start755 can move any existing item756 index: 2757 behaves like able to move existing items to the start758 can move any existing item759 index: 3760 behaves like able to move existing items to the start761 can move any existing item762 index: 4763 behaves like able to move existing items to the start764 can move any existing item765 there are no siblings766 behaves like able to place a new item at the start767 can place any new item768 there is only one sibling769 pos: 101770 behaves like able to place a new item at the start771 can place any new item772 behaves like able to move existing items to the start773 can move any existing item774 pos: 102775 behaves like able to place a new item at the start776 can place any new item777 behaves like able to move existing items to the start778 can move any existing item779 pos: 103780 behaves like able to place a new item at the start781 can place any new item782 behaves like able to move existing items to the start783 can move any existing item784 pos: 104785 behaves like able to place a new item at the start786 can place any new item787 behaves like able to move existing items to the start788 can move any existing item789 pos: 105790 behaves like able to place a new item at the start791 can place any new item792 behaves like able to move existing items to the start793 can move any existing item794 at least one position is free795 free_space: 101, index: 0796 behaves like able to place a new item at the start797 can place any new item798 behaves like able to move existing items to the start799 can move any existing item800 free_space: 101, index: 1801 behaves like able to place a new item at the start802 can place any new item803 behaves like able to move existing items to the start804 can move any existing item805 free_space: 101, index: 2806 behaves like able to place a new item at the start807 can place any new item808 behaves like able to move existing items to the start809 can move any existing item810 free_space: 101, index: 3811 behaves like able to place a new item at the start812 can place any new item813 behaves like able to move existing items to the start814 can move any existing item815 free_space: 102, index: 0816 behaves like able to place a new item at the start817 can place any new item818 behaves like able to move existing items to the start819 can move any existing item820 free_space: 102, index: 1821 behaves like able to place a new item at the start822 can place any new item823 behaves like able to move existing items to the start824 can move any existing item825 free_space: 102, index: 2826 behaves like able to place a new item at the start827 can place any new item828 behaves like able to move existing items to the start829 can move any existing item830 free_space: 102, index: 3831 behaves like able to place a new item at the start832 can place any new item833 behaves like able to move existing items to the start834 can move any existing item835 free_space: 103, index: 0836 behaves like able to place a new item at the start837 can place any new item838 behaves like able to move existing items to the start839 can move any existing item840 free_space: 103, index: 1841 behaves like able to place a new item at the start842 can place any new item843 behaves like able to move existing items to the start844 can move any existing item845 free_space: 103, index: 2846 behaves like able to place a new item at the start847 can place any new item848 behaves like able to move existing items to the start849 can move any existing item850 free_space: 103, index: 3851 behaves like able to place a new item at the start852 can place any new item853 behaves like able to move existing items to the start854 can move any existing item855 free_space: 104, index: 0856 behaves like able to place a new item at the start857 can place any new item858 behaves like able to move existing items to the start859 can move any existing item860 free_space: 104, index: 1861 behaves like able to place a new item at the start862 can place any new item863 behaves like able to move existing items to the start864 can move any existing item865 free_space: 104, index: 2866 behaves like able to place a new item at the start867 can place any new item868 behaves like able to move existing items to the start869 can move any existing item870 free_space: 104, index: 3871 behaves like able to place a new item at the start872 can place any new item873 behaves like able to move existing items to the start874 can move any existing item875 free_space: 105, index: 0876 behaves like able to place a new item at the start877 can place any new item878 behaves like able to move existing items to the start879 can move any existing item880 free_space: 105, index: 1881 behaves like able to place a new item at the start882 can place any new item883 behaves like able to move existing items to the start884 can move any existing item885 free_space: 105, index: 2886 behaves like able to place a new item at the start887 can place any new item888 behaves like able to move existing items to the start889 can move any existing item890 free_space: 105, index: 3891 behaves like able to place a new item at the start892 can place any new item893 behaves like able to move existing items to the start894 can move any existing item895 #move896 all positions are taken897 idx_a: 0, idx_b: 1898 raises an error when placing a new item anywhere899 index: 0900 behaves like able to move an existing item901 can place any item betwen two others902 can place any item after another903 can place any item before another904 index: 1905 behaves like able to move an existing item906 can place any item betwen two others907 can place any item after another908 can place any item before another909 index: 2910 behaves like able to move an existing item911 can place any item betwen two others912 can place any item after another913 can place any item before another914 index: 3915 behaves like able to move an existing item916 can place any item betwen two others917 can place any item after another918 can place any item before another919 index: 4920 behaves like able to move an existing item921 can place any item betwen two others922 can place any item after another923 can place any item before another924 idx_a: 0, idx_b: 2925 raises an error when placing a new item anywhere926 index: 0927 behaves like able to move an existing item928 can place any item betwen two others929 can place any item after another930 can place any item before another931 index: 1932 behaves like able to move an existing item933 can place any item betwen two others934 can place any item after another935 can place any item before another936 index: 2937 behaves like able to move an existing item938 can place any item betwen two others939 can place any item after another940 can place any item before another941 index: 3942 behaves like able to move an existing item943 can place any item betwen two others944 can place any item after another945 can place any item before another946 index: 4947 behaves like able to move an existing item948 can place any item betwen two others949 can place any item after another950 can place any item before another951 idx_a: 0, idx_b: 3952 raises an error when placing a new item anywhere953 index: 0954 behaves like able to move an existing item955 can place any item betwen two others956 can place any item after another957 can place any item before another958 index: 1959 behaves like able to move an existing item960 can place any item betwen two others961 can place any item after another962 can place any item before another963 index: 2964 behaves like able to move an existing item965 can place any item betwen two others966 can place any item after another967 can place any item before another968 index: 3969 behaves like able to move an existing item970 can place any item betwen two others971 can place any item after another972 can place any item before another973 index: 4974 behaves like able to move an existing item975 can place any item betwen two others976 can place any item after another977 can place any item before another978 idx_a: 0, idx_b: 4979 raises an error when placing a new item anywhere980 index: 0981 behaves like able to move an existing item982 can place any item betwen two others983 can place any item after another984 can place any item before another985 index: 1986 behaves like able to move an existing item987 can place any item betwen two others988 can place any item after another989 can place any item before another990 index: 2991 behaves like able to move an existing item992 can place any item betwen two others993 can place any item after another994 can place any item before another995 index: 3996 behaves like able to move an existing item997 can place any item betwen two others998 can place any item after another999 can place any item before another1000 index: 41001 behaves like able to move an existing item1002 can place any item betwen two others1003 can place any item after another1004 can place any item before another1005 idx_a: 1, idx_b: 21006 raises an error when placing a new item anywhere1007 index: 01008 behaves like able to move an existing item1009 can place any item betwen two others1010 can place any item after another1011 can place any item before another1012 index: 11013 behaves like able to move an existing item1014 can place any item betwen two others1015 can place any item after another1016 can place any item before another1017 index: 21018 behaves like able to move an existing item1019 can place any item betwen two others1020 can place any item after another1021 can place any item before another1022 index: 31023 behaves like able to move an existing item1024 can place any item betwen two others1025 can place any item after another1026 can place any item before another1027 index: 41028 behaves like able to move an existing item1029 can place any item betwen two others1030 can place any item after another1031 can place any item before another1032 idx_a: 1, idx_b: 31033 raises an error when placing a new item anywhere1034 index: 01035 behaves like able to move an existing item1036 can place any item betwen two others1037 can place any item after another1038 can place any item before another1039 index: 11040 behaves like able to move an existing item1041 can place any item betwen two others1042 can place any item after another1043 can place any item before another1044 index: 21045 behaves like able to move an existing item1046 can place any item betwen two others1047 can place any item after another1048 can place any item before another1049 index: 31050 behaves like able to move an existing item1051 can place any item betwen two others1052 can place any item after another1053 can place any item before another1054 index: 41055 behaves like able to move an existing item1056 can place any item betwen two others1057 can place any item after another1058 can place any item before another1059 idx_a: 1, idx_b: 41060 raises an error when placing a new item anywhere1061 index: 01062 behaves like able to move an existing item1063 can place any item betwen two others1064 can place any item after another1065 can place any item before another1066 index: 11067 behaves like able to move an existing item1068 can place any item betwen two others1069 can place any item after another1070 can place any item before another1071 index: 21072 behaves like able to move an existing item1073 can place any item betwen two others1074 can place any item after another1075 can place any item before another1076 index: 31077 behaves like able to move an existing item1078 can place any item betwen two others1079 can place any item after another1080 can place any item before another1081 index: 41082 behaves like able to move an existing item1083 can place any item betwen two others1084 can place any item after another1085 can place any item before another1086 idx_a: 2, idx_b: 31087 raises an error when placing a new item anywhere1088 index: 01089 behaves like able to move an existing item1090 can place any item betwen two others1091 can place any item after another1092 can place any item before another1093 index: 11094 behaves like able to move an existing item1095 can place any item betwen two others1096 can place any item after another1097 can place any item before another1098 index: 21099 behaves like able to move an existing item1100 can place any item betwen two others1101 can place any item after another1102 can place any item before another1103 index: 31104 behaves like able to move an existing item1105 can place any item betwen two others1106 can place any item after another1107 can place any item before another1108 index: 41109 behaves like able to move an existing item1110 can place any item betwen two others1111 can place any item after another1112 can place any item before another1113 idx_a: 2, idx_b: 41114 raises an error when placing a new item anywhere1115 index: 01116 behaves like able to move an existing item1117 can place any item betwen two others1118 can place any item after another1119 can place any item before another1120 index: 11121 behaves like able to move an existing item1122 can place any item betwen two others1123 can place any item after another1124 can place any item before another1125 index: 21126 behaves like able to move an existing item1127 can place any item betwen two others1128 can place any item after another1129 can place any item before another1130 index: 31131 behaves like able to move an existing item1132 can place any item betwen two others1133 can place any item after another1134 can place any item before another1135 index: 41136 behaves like able to move an existing item1137 can place any item betwen two others1138 can place any item after another1139 can place any item before another1140 idx_a: 3, idx_b: 41141 raises an error when placing a new item anywhere1142 index: 01143 behaves like able to move an existing item1144 can place any item betwen two others1145 can place any item after another1146 can place any item before another1147 index: 11148 behaves like able to move an existing item1149 can place any item betwen two others1150 can place any item after another1151 can place any item before another1152 index: 21153 behaves like able to move an existing item1154 can place any item betwen two others1155 can place any item after another1156 can place any item before another1157 index: 31158 behaves like able to move an existing item1159 can place any item betwen two others1160 can place any item after another1161 can place any item before another1162 index: 41163 behaves like able to move an existing item1164 can place any item betwen two others1165 can place any item after another1166 can place any item before another1167 there are no siblings1168 raises an ArgumentError when both first and last are nil1169 there are a couple of siblings1170 pos_movable: 101, pos_a: 102, pos_b: 1031171 behaves like able to move a new item1172 can place any new item betwen two others1173 can place any new item after another1174 can place any new item before another1175 behaves like able to move an existing item1176 can place any item betwen two others1177 can place any item after another1178 can place any item before another1179 pos_movable: 101, pos_a: 102, pos_b: 1041180 behaves like able to move a new item1181 can place any new item betwen two others1182 can place any new item after another1183 can place any new item before another1184 behaves like able to move an existing item1185 can place any item betwen two others1186 can place any item after another1187 can place any item before another1188 pos_movable: 101, pos_a: 102, pos_b: 1051189 behaves like able to move a new item1190 can place any new item betwen two others1191 can place any new item after another1192 can place any new item before another1193 behaves like able to move an existing item1194 can place any item betwen two others1195 can place any item after another1196 can place any item before another1197 pos_movable: 101, pos_a: 103, pos_b: 1041198 behaves like able to move a new item1199 can place any new item betwen two others1200 can place any new item after another1201 can place any new item before another1202 behaves like able to move an existing item1203 can place any item betwen two others1204 can place any item after another1205 can place any item before another1206 pos_movable: 101, pos_a: 103, pos_b: 1051207 behaves like able to move a new item1208 can place any new item betwen two others1209 can place any new item after another1210 can place any new item before another1211 behaves like able to move an existing item1212 can place any item betwen two others1213 can place any item after another1214 can place any item before another1215 pos_movable: 101, pos_a: 104, pos_b: 1051216 behaves like able to move a new item1217 can place any new item betwen two others1218 can place any new item after another1219 can place any new item before another1220 behaves like able to move an existing item1221 can place any item betwen two others1222 can place any item after another1223 can place any item before another1224 pos_movable: 102, pos_a: 101, pos_b: 1031225 behaves like able to move a new item1226 can place any new item betwen two others1227 can place any new item after another1228 can place any new item before another1229 behaves like able to move an existing item1230 can place any item betwen two others1231 can place any item after another1232 can place any item before another1233 pos_movable: 102, pos_a: 101, pos_b: 1041234 behaves like able to move a new item1235 can place any new item betwen two others1236 can place any new item after another1237 can place any new item before another1238 behaves like able to move an existing item1239 can place any item betwen two others1240 can place any item after another1241 can place any item before another1242 pos_movable: 102, pos_a: 101, pos_b: 1051243 behaves like able to move a new item1244 can place any new item betwen two others1245 can place any new item after another1246 can place any new item before another1247 behaves like able to move an existing item1248 can place any item betwen two others1249 can place any item after another1250 can place any item before another1251 pos_movable: 102, pos_a: 103, pos_b: 1041252 behaves like able to move a new item1253 can place any new item betwen two others1254 can place any new item after another1255 can place any new item before another1256 behaves like able to move an existing item1257 can place any item betwen two others1258 can place any item after another1259 can place any item before another1260 pos_movable: 102, pos_a: 103, pos_b: 1051261 behaves like able to move a new item1262 can place any new item betwen two others1263 can place any new item after another1264 can place any new item before another1265 behaves like able to move an existing item1266 can place any item betwen two others1267 can place any item after another1268 can place any item before another1269 pos_movable: 102, pos_a: 104, pos_b: 1051270 behaves like able to move a new item1271 can place any new item betwen two others1272 can place any new item after another1273 can place any new item before another1274 behaves like able to move an existing item1275 can place any item betwen two others1276 can place any item after another1277 can place any item before another1278 pos_movable: 103, pos_a: 101, pos_b: 1021279 behaves like able to move a new item1280 can place any new item betwen two others1281 can place any new item after another1282 can place any new item before another1283 behaves like able to move an existing item1284 can place any item betwen two others1285 can place any item after another1286 can place any item before another1287 pos_movable: 103, pos_a: 101, pos_b: 1041288 behaves like able to move a new item1289 can place any new item betwen two others1290 can place any new item after another1291 can place any new item before another1292 behaves like able to move an existing item1293 can place any item betwen two others1294 can place any item after another1295 can place any item before another1296 pos_movable: 103, pos_a: 101, pos_b: 1051297 behaves like able to move a new item1298 can place any new item betwen two others1299 can place any new item after another1300 can place any new item before another1301 behaves like able to move an existing item1302 can place any item betwen two others1303 can place any item after another1304 can place any item before another1305 pos_movable: 103, pos_a: 102, pos_b: 1041306 behaves like able to move a new item1307 can place any new item betwen two others1308 can place any new item after another1309 can place any new item before another1310 behaves like able to move an existing item1311 can place any item betwen two others1312 can place any item after another1313 can place any item before another1314 pos_movable: 103, pos_a: 102, pos_b: 1051315 behaves like able to move a new item1316 can place any new item betwen two others1317 can place any new item after another1318 can place any new item before another1319 behaves like able to move an existing item1320 can place any item betwen two others1321 can place any item after another1322 can place any item before another1323 pos_movable: 103, pos_a: 104, pos_b: 1051324 behaves like able to move a new item1325 can place any new item betwen two others1326 can place any new item after another1327 can place any new item before another1328 behaves like able to move an existing item1329 can place any item betwen two others1330 can place any item after another1331 can place any item before another1332 pos_movable: 104, pos_a: 101, pos_b: 1021333 behaves like able to move a new item1334 can place any new item betwen two others1335 can place any new item after another1336 can place any new item before another1337 behaves like able to move an existing item1338 can place any item betwen two others1339 can place any item after another1340 can place any item before another1341 pos_movable: 104, pos_a: 101, pos_b: 1031342 behaves like able to move a new item1343 can place any new item betwen two others1344 can place any new item after another1345 can place any new item before another1346 behaves like able to move an existing item1347 can place any item betwen two others1348 can place any item after another1349 can place any item before another1350 pos_movable: 104, pos_a: 101, pos_b: 1051351 behaves like able to move a new item1352 can place any new item betwen two others1353 can place any new item after another1354 can place any new item before another1355 behaves like able to move an existing item1356 can place any item betwen two others1357 can place any item after another1358 can place any item before another1359 pos_movable: 104, pos_a: 102, pos_b: 1031360 behaves like able to move a new item1361 can place any new item betwen two others1362 can place any new item after another1363 can place any new item before another1364 behaves like able to move an existing item1365 can place any item betwen two others1366 can place any item after another1367 can place any item before another1368 pos_movable: 104, pos_a: 102, pos_b: 1051369 behaves like able to move a new item1370 can place any new item betwen two others1371 can place any new item after another1372 can place any new item before another1373 behaves like able to move an existing item1374 can place any item betwen two others1375 can place any item after another1376 can place any item before another1377 pos_movable: 104, pos_a: 103, pos_b: 1051378 behaves like able to move a new item1379 can place any new item betwen two others1380 can place any new item after another1381 can place any new item before another1382 behaves like able to move an existing item1383 can place any item betwen two others1384 can place any item after another1385 can place any item before another1386 pos_movable: 105, pos_a: 101, pos_b: 1021387 behaves like able to move a new item1388 can place any new item betwen two others1389 can place any new item after another1390 can place any new item before another1391 behaves like able to move an existing item1392 can place any item betwen two others1393 can place any item after another1394 can place any item before another1395 pos_movable: 105, pos_a: 101, pos_b: 1031396 behaves like able to move a new item1397 can place any new item betwen two others1398 can place any new item after another1399 can place any new item before another1400 behaves like able to move an existing item1401 can place any item betwen two others1402 can place any item after another1403 can place any item before another1404 pos_movable: 105, pos_a: 101, pos_b: 1041405 behaves like able to move a new item1406 can place any new item betwen two others1407 can place any new item after another1408 can place any new item before another1409 behaves like able to move an existing item1410 can place any item betwen two others1411 can place any item after another1412 can place any item before another1413 pos_movable: 105, pos_a: 102, pos_b: 1031414 behaves like able to move a new item1415 can place any new item betwen two others1416 can place any new item after another1417 can place any new item before another1418 behaves like able to move an existing item1419 can place any item betwen two others1420 can place any item after another1421 can place any item before another1422 pos_movable: 105, pos_a: 102, pos_b: 1041423 behaves like able to move a new item1424 can place any new item betwen two others1425 can place any new item after another1426 can place any new item before another1427 behaves like able to move an existing item1428 can place any item betwen two others1429 can place any item after another1430 can place any item before another1431 pos_movable: 105, pos_a: 103, pos_b: 1041432 behaves like able to move a new item1433 can place any new item betwen two others1434 can place any new item after another1435 can place any new item before another1436 behaves like able to move an existing item1437 can place any item betwen two others1438 can place any item after another1439 can place any item before another1440 at least one position is free1441 free_space: 101, index: 3, pos_a: 2, pos_b: 31442 behaves like able to move a new item1443 can place any new item betwen two others1444 can place any new item after another1445 can place any new item before another1446 behaves like able to move an existing item1447 can place any item betwen two others1448 can place any item after another1449 can place any item before another1450 free_space: 101, index: 3, pos_a: 1, pos_b: 31451 behaves like able to move a new item1452 can place any new item betwen two others1453 can place any new item after another1454 can place any new item before another1455 behaves like able to move an existing item1456 can place any item betwen two others1457 can place any item after another1458 can place any item before another1459 free_space: 101, index: 3, pos_a: 1, pos_b: 21460 behaves like able to move a new item1461 can place any new item betwen two others1462 can place any new item after another1463 can place any new item before another1464 behaves like able to move an existing item1465 can place any item betwen two others1466 can place any item after another1467 can place any item before another1468 free_space: 101, index: 3, pos_a: 0, pos_b: 31469 behaves like able to move a new item1470 can place any new item betwen two others1471 can place any new item after another1472 can place any new item before another1473 behaves like able to move an existing item1474 can place any item betwen two others1475 can place any item after another1476 can place any item before another1477 free_space: 101, index: 3, pos_a: 0, pos_b: 21478 behaves like able to move a new item1479 can place any new item betwen two others1480 can place any new item after another1481 can place any new item before another1482 behaves like able to move an existing item1483 can place any item betwen two others1484 can place any item after another1485 can place any item before another1486 free_space: 101, index: 3, pos_a: 0, pos_b: 11487 behaves like able to move a new item1488 can place any new item betwen two others1489 can place any new item after another1490 can place any new item before another1491 behaves like able to move an existing item1492 can place any item betwen two others1493 can place any item after another1494 can place any item before another1495 free_space: 101, index: 2, pos_a: 2, pos_b: 31496 behaves like able to move a new item1497 can place any new item betwen two others1498 can place any new item after another1499 can place any new item before another1500 behaves like able to move an existing item1501 can place any item betwen two others1502 can place any item after another1503 can place any item before another1504 free_space: 101, index: 2, pos_a: 1, pos_b: 31505 behaves like able to move a new item1506 can place any new item betwen two others1507 can place any new item after another1508 can place any new item before another1509 behaves like able to move an existing item1510 can place any item betwen two others1511 can place any item after another1512 can place any item before another1513 free_space: 101, index: 2, pos_a: 1, pos_b: 21514 behaves like able to move a new item1515 can place any new item betwen two others1516 can place any new item after another1517 can place any new item before another1518 behaves like able to move an existing item1519 can place any item betwen two others1520 can place any item after another1521 can place any item before another1522 free_space: 101, index: 2, pos_a: 0, pos_b: 31523 behaves like able to move a new item1524 can place any new item betwen two others1525 can place any new item after another1526 can place any new item before another1527 behaves like able to move an existing item1528 can place any item betwen two others1529 can place any item after another1530 can place any item before another1531 free_space: 101, index: 2, pos_a: 0, pos_b: 21532 behaves like able to move a new item1533 can place any new item betwen two others1534 can place any new item after another1535 can place any new item before another1536 behaves like able to move an existing item1537 can place any item betwen two others1538 can place any item after another1539 can place any item before another1540 free_space: 101, index: 2, pos_a: 0, pos_b: 11541 behaves like able to move a new item1542 can place any new item betwen two others1543 can place any new item after another1544 can place any new item before another1545 behaves like able to move an existing item1546 can place any item betwen two others1547 can place any item after another1548 can place any item before another1549 free_space: 101, index: 1, pos_a: 2, pos_b: 31550 behaves like able to move a new item1551 can place any new item betwen two others1552 can place any new item after another1553 can place any new item before another1554 behaves like able to move an existing item1555 can place any item betwen two others1556 can place any item after another1557 can place any item before another1558 free_space: 101, index: 1, pos_a: 1, pos_b: 31559 behaves like able to move a new item1560 can place any new item betwen two others1561 can place any new item after another1562 can place any new item before another1563 behaves like able to move an existing item1564 can place any item betwen two others1565 can place any item after another1566 can place any item before another1567 free_space: 101, index: 1, pos_a: 1, pos_b: 21568 behaves like able to move a new item1569 can place any new item betwen two others1570 can place any new item after another1571 can place any new item before another1572 behaves like able to move an existing item1573 can place any item betwen two others1574 can place any item after another1575 can place any item before another1576 free_space: 101, index: 1, pos_a: 0, pos_b: 31577 behaves like able to move a new item1578 can place any new item betwen two others1579 can place any new item after another1580 can place any new item before another1581 behaves like able to move an existing item1582 can place any item betwen two others1583 can place any item after another1584 can place any item before another1585 free_space: 101, index: 1, pos_a: 0, pos_b: 21586 behaves like able to move a new item1587 can place any new item betwen two others1588 can place any new item after another1589 can place any new item before another1590 behaves like able to move an existing item1591 can place any item betwen two others1592 can place any item after another1593 can place any item before another1594 free_space: 101, index: 1, pos_a: 0, pos_b: 11595 behaves like able to move a new item1596 can place any new item betwen two others1597 can place any new item after another1598 can place any new item before another1599 behaves like able to move an existing item1600 can place any item betwen two others1601 can place any item after another1602 can place any item before another1603 free_space: 101, index: 0, pos_a: 2, pos_b: 31604 behaves like able to move a new item1605 can place any new item betwen two others1606 can place any new item after another1607 can place any new item before another1608 behaves like able to move an existing item1609 can place any item betwen two others1610 can place any item after another1611 can place any item before another1612 free_space: 101, index: 0, pos_a: 1, pos_b: 31613 behaves like able to move a new item1614 can place any new item betwen two others1615 can place any new item after another1616 can place any new item before another1617 behaves like able to move an existing item1618 can place any item betwen two others1619 can place any item after another1620 can place any item before another1621 free_space: 101, index: 0, pos_a: 1, pos_b: 21622 behaves like able to move a new item1623 can place any new item betwen two others1624 can place any new item after another1625 can place any new item before another1626 behaves like able to move an existing item1627 can place any item betwen two others1628 can place any item after another1629 can place any item before another1630 free_space: 101, index: 0, pos_a: 0, pos_b: 31631 behaves like able to move a new item1632 can place any new item betwen two others1633 can place any new item after another1634 can place any new item before another1635 behaves like able to move an existing item1636 can place any item betwen two others1637 can place any item after another1638 can place any item before another1639 free_space: 101, index: 0, pos_a: 0, pos_b: 21640 behaves like able to move a new item1641 can place any new item betwen two others1642 can place any new item after another1643 can place any new item before another1644 behaves like able to move an existing item1645 can place any item betwen two others1646 can place any item after another1647 can place any item before another1648 free_space: 101, index: 0, pos_a: 0, pos_b: 11649 behaves like able to move a new item1650 can place any new item betwen two others1651 can place any new item after another1652 can place any new item before another1653 behaves like able to move an existing item1654 can place any item betwen two others1655 can place any item after another1656 can place any item before another1657 free_space: 102, index: 3, pos_a: 2, pos_b: 31658 behaves like able to move a new item1659 can place any new item betwen two others1660 can place any new item after another1661 can place any new item before another1662 behaves like able to move an existing item1663 can place any item betwen two others1664 can place any item after another1665 can place any item before another1666 free_space: 102, index: 3, pos_a: 1, pos_b: 31667 behaves like able to move a new item1668 can place any new item betwen two others1669 can place any new item after another1670 can place any new item before another1671 behaves like able to move an existing item1672 can place any item betwen two others1673 can place any item after another1674 can place any item before another1675 free_space: 102, index: 3, pos_a: 1, pos_b: 21676 behaves like able to move a new item1677 can place any new item betwen two others1678 can place any new item after another1679 can place any new item before another1680 behaves like able to move an existing item1681 can place any item betwen two others1682 can place any item after another1683 can place any item before another1684 free_space: 102, index: 3, pos_a: 0, pos_b: 31685 behaves like able to move a new item1686 can place any new item betwen two others1687 can place any new item after another1688 can place any new item before another1689 behaves like able to move an existing item1690 can place any item betwen two others1691 can place any item after another1692 can place any item before another1693 free_space: 102, index: 3, pos_a: 0, pos_b: 21694 behaves like able to move a new item1695 can place any new item betwen two others1696 can place any new item after another1697 can place any new item before another1698 behaves like able to move an existing item1699 can place any item betwen two others1700 can place any item after another1701 can place any item before another1702 free_space: 102, index: 3, pos_a: 0, pos_b: 11703 behaves like able to move a new item1704 can place any new item betwen two others1705 can place any new item after another1706 can place any new item before another1707 behaves like able to move an existing item1708 can place any item betwen two others1709 can place any item after another1710 can place any item before another1711 free_space: 102, index: 2, pos_a: 2, pos_b: 31712 behaves like able to move a new item1713 can place any new item betwen two others1714 can place any new item after another1715 can place any new item before another1716 behaves like able to move an existing item1717 can place any item betwen two others1718 can place any item after another1719 can place any item before another1720 free_space: 102, index: 2, pos_a: 1, pos_b: 31721 behaves like able to move a new item1722 can place any new item betwen two others1723 can place any new item after another1724 can place any new item before another1725 behaves like able to move an existing item1726 can place any item betwen two others1727 can place any item after another1728 can place any item before another1729 free_space: 102, index: 2, pos_a: 1, pos_b: 21730 behaves like able to move a new item1731 can place any new item betwen two others1732 can place any new item after another1733 can place any new item before another1734 behaves like able to move an existing item1735 can place any item betwen two others1736 can place any item after another1737 can place any item before another1738 free_space: 102, index: 2, pos_a: 0, pos_b: 31739 behaves like able to move a new item1740 can place any new item betwen two others1741 can place any new item after another1742 can place any new item before another1743 behaves like able to move an existing item1744 can place any item betwen two others1745 can place any item after another1746 can place any item before another1747 free_space: 102, index: 2, pos_a: 0, pos_b: 21748 behaves like able to move a new item1749 can place any new item betwen two others1750 can place any new item after another1751 can place any new item before another1752 behaves like able to move an existing item1753 can place any item betwen two others1754 can place any item after another1755 can place any item before another1756 free_space: 102, index: 2, pos_a: 0, pos_b: 11757 behaves like able to move a new item1758 can place any new item betwen two others1759 can place any new item after another1760 can place any new item before another1761 behaves like able to move an existing item1762 can place any item betwen two others1763 can place any item after another1764 can place any item before another1765 free_space: 102, index: 1, pos_a: 2, pos_b: 31766 behaves like able to move a new item1767 can place any new item betwen two others1768 can place any new item after another1769 can place any new item before another1770 behaves like able to move an existing item1771 can place any item betwen two others1772 can place any item after another1773 can place any item before another1774 free_space: 102, index: 1, pos_a: 1, pos_b: 31775 behaves like able to move a new item1776 can place any new item betwen two others1777 can place any new item after another1778 can place any new item before another1779 behaves like able to move an existing item1780 can place any item betwen two others1781 can place any item after another1782 can place any item before another1783 free_space: 102, index: 1, pos_a: 1, pos_b: 21784 behaves like able to move a new item1785 can place any new item betwen two others1786 can place any new item after another1787 can place any new item before another1788 behaves like able to move an existing item1789 can place any item betwen two others1790 can place any item after another1791 can place any item before another1792 free_space: 102, index: 1, pos_a: 0, pos_b: 31793 behaves like able to move a new item1794 can place any new item betwen two others1795 can place any new item after another1796 can place any new item before another1797 behaves like able to move an existing item1798 can place any item betwen two others1799 can place any item after another1800 can place any item before another1801 free_space: 102, index: 1, pos_a: 0, pos_b: 21802 behaves like able to move a new item1803 can place any new item betwen two others1804 can place any new item after another1805 can place any new item before another1806 behaves like able to move an existing item1807 can place any item betwen two others1808 can place any item after another1809 can place any item before another1810 free_space: 102, index: 1, pos_a: 0, pos_b: 11811 behaves like able to move a new item1812 can place any new item betwen two others1813 can place any new item after another1814 can place any new item before another1815 behaves like able to move an existing item1816 can place any item betwen two others1817 can place any item after another1818 can place any item before another1819 free_space: 102, index: 0, pos_a: 2, pos_b: 31820 behaves like able to move a new item1821 can place any new item betwen two others1822 can place any new item after another1823 can place any new item before another1824 behaves like able to move an existing item1825 can place any item betwen two others1826 can place any item after another1827 can place any item before another1828 free_space: 102, index: 0, pos_a: 1, pos_b: 31829 behaves like able to move a new item1830 can place any new item betwen two others1831 can place any new item after another1832 can place any new item before another1833 behaves like able to move an existing item1834 can place any item betwen two others1835 can place any item after another1836 can place any item before another1837 free_space: 102, index: 0, pos_a: 1, pos_b: 21838 behaves like able to move a new item1839 can place any new item betwen two others1840 can place any new item after another1841 can place any new item before another1842 behaves like able to move an existing item1843 can place any item betwen two others1844 can place any item after another1845 can place any item before another1846 free_space: 102, index: 0, pos_a: 0, pos_b: 31847 behaves like able to move a new item1848 can place any new item betwen two others1849 can place any new item after another1850 can place any new item before another1851 behaves like able to move an existing item1852 can place any item betwen two others1853 can place any item after another1854 can place any item before another1855 free_space: 102, index: 0, pos_a: 0, pos_b: 21856 behaves like able to move a new item1857 can place any new item betwen two others1858 can place any new item after another1859 can place any new item before another1860 behaves like able to move an existing item1861 can place any item betwen two others1862 can place any item after another1863 can place any item before another1864 free_space: 102, index: 0, pos_a: 0, pos_b: 11865 behaves like able to move a new item1866 can place any new item betwen two others1867 can place any new item after another1868 can place any new item before another1869 behaves like able to move an existing item1870 can place any item betwen two others1871 can place any item after another1872 can place any item before another1873 free_space: 103, index: 3, pos_a: 2, pos_b: 31874 behaves like able to move a new item1875 can place any new item betwen two others1876 can place any new item after another1877 can place any new item before another1878 behaves like able to move an existing item1879 can place any item betwen two others1880 can place any item after another1881 can place any item before another1882 free_space: 103, index: 3, pos_a: 1, pos_b: 31883 behaves like able to move a new item1884 can place any new item betwen two others1885 can place any new item after another1886 can place any new item before another1887 behaves like able to move an existing item1888 can place any item betwen two others1889 can place any item after another1890 can place any item before another1891 free_space: 103, index: 3, pos_a: 1, pos_b: 21892 behaves like able to move a new item1893 can place any new item betwen two others1894 can place any new item after another1895 can place any new item before another1896 behaves like able to move an existing item1897 can place any item betwen two others1898 can place any item after another1899 can place any item before another1900 free_space: 103, index: 3, pos_a: 0, pos_b: 31901 behaves like able to move a new item1902 can place any new item betwen two others1903 can place any new item after another1904 can place any new item before another1905 behaves like able to move an existing item1906 can place any item betwen two others1907 can place any item after another1908 can place any item before another1909 free_space: 103, index: 3, pos_a: 0, pos_b: 21910 behaves like able to move a new item1911 can place any new item betwen two others1912 can place any new item after another1913 can place any new item before another1914 behaves like able to move an existing item1915 can place any item betwen two others1916 can place any item after another1917 can place any item before another1918 free_space: 103, index: 3, pos_a: 0, pos_b: 11919 behaves like able to move a new item1920 can place any new item betwen two others1921 can place any new item after another1922 can place any new item before another1923 behaves like able to move an existing item1924 can place any item betwen two others1925 can place any item after another1926 can place any item before another1927 free_space: 103, index: 2, pos_a: 2, pos_b: 31928 behaves like able to move a new item1929 can place any new item betwen two others1930 can place any new item after another1931 can place any new item before another1932 behaves like able to move an existing item1933 can place any item betwen two others1934 can place any item after another1935 can place any item before another1936 free_space: 103, index: 2, pos_a: 1, pos_b: 31937 behaves like able to move a new item1938 can place any new item betwen two others1939 can place any new item after another1940 can place any new item before another1941 behaves like able to move an existing item1942 can place any item betwen two others1943 can place any item after another1944 can place any item before another1945 free_space: 103, index: 2, pos_a: 1, pos_b: 21946 behaves like able to move a new item1947 can place any new item betwen two others1948 can place any new item after another1949 can place any new item before another1950 behaves like able to move an existing item1951 can place any item betwen two others1952 can place any item after another1953 can place any item before another1954 free_space: 103, index: 2, pos_a: 0, pos_b: 31955 behaves like able to move a new item1956 can place any new item betwen two others1957 can place any new item after another1958 can place any new item before another1959 behaves like able to move an existing item1960 can place any item betwen two others1961 can place any item after another1962 can place any item before another1963 free_space: 103, index: 2, pos_a: 0, pos_b: 21964 behaves like able to move a new item1965 can place any new item betwen two others1966 can place any new item after another1967 can place any new item before another1968 behaves like able to move an existing item1969 can place any item betwen two others1970 can place any item after another1971 can place any item before another1972 free_space: 103, index: 2, pos_a: 0, pos_b: 11973 behaves like able to move a new item1974 can place any new item betwen two others1975 can place any new item after another1976 can place any new item before another1977 behaves like able to move an existing item1978 can place any item betwen two others1979 can place any item after another1980 can place any item before another1981 free_space: 103, index: 1, pos_a: 2, pos_b: 31982 behaves like able to move a new item1983 can place any new item betwen two others1984 can place any new item after another1985 can place any new item before another1986 behaves like able to move an existing item1987 can place any item betwen two others1988 can place any item after another1989 can place any item before another1990 free_space: 103, index: 1, pos_a: 1, pos_b: 31991 behaves like able to move a new item1992 can place any new item betwen two others1993 can place any new item after another1994 can place any new item before another1995 behaves like able to move an existing item1996 can place any item betwen two others1997 can place any item after another1998 can place any item before another1999 free_space: 103, index: 1, pos_a: 1, pos_b: 22000 behaves like able to move a new item2001 can place any new item betwen two others2002 can place any new item after another2003 can place any new item before another2004 behaves like able to move an existing item2005 can place any item betwen two others2006 can place any item after another2007 can place any item before another2008 free_space: 103, index: 1, pos_a: 0, pos_b: 32009 behaves like able to move a new item2010 can place any new item betwen two others2011 can place any new item after another2012 can place any new item before another2013 behaves like able to move an existing item2014 can place any item betwen two others2015 can place any item after another2016 can place any item before another2017 free_space: 103, index: 1, pos_a: 0, pos_b: 22018 behaves like able to move a new item2019 can place any new item betwen two others2020 can place any new item after another2021 can place any new item before another2022 behaves like able to move an existing item2023 can place any item betwen two others2024 can place any item after another2025 can place any item before another2026 free_space: 103, index: 1, pos_a: 0, pos_b: 12027 behaves like able to move a new item2028 can place any new item betwen two others2029 can place any new item after another2030 can place any new item before another2031 behaves like able to move an existing item2032 can place any item betwen two others2033 can place any item after another2034 can place any item before another2035 free_space: 103, index: 0, pos_a: 2, pos_b: 32036 behaves like able to move a new item2037 can place any new item betwen two others2038 can place any new item after another2039 can place any new item before another2040 behaves like able to move an existing item2041 can place any item betwen two others2042 can place any item after another2043 can place any item before another2044 free_space: 103, index: 0, pos_a: 1, pos_b: 32045 behaves like able to move a new item2046 can place any new item betwen two others2047 can place any new item after another2048 can place any new item before another2049 behaves like able to move an existing item2050 can place any item betwen two others2051 can place any item after another2052 can place any item before another2053 free_space: 103, index: 0, pos_a: 1, pos_b: 22054 behaves like able to move a new item2055 can place any new item betwen two others2056 can place any new item after another2057 can place any new item before another2058 behaves like able to move an existing item2059 can place any item betwen two others2060 can place any item after another2061 can place any item before another2062 free_space: 103, index: 0, pos_a: 0, pos_b: 32063 behaves like able to move a new item2064 can place any new item betwen two others2065 can place any new item after another2066 can place any new item before another2067 behaves like able to move an existing item2068 can place any item betwen two others2069 can place any item after another2070 can place any item before another2071 free_space: 103, index: 0, pos_a: 0, pos_b: 22072 behaves like able to move a new item2073 can place any new item betwen two others2074 can place any new item after another2075 can place any new item before another2076 behaves like able to move an existing item2077 can place any item betwen two others2078 can place any item after another2079 can place any item before another2080 free_space: 103, index: 0, pos_a: 0, pos_b: 12081 behaves like able to move a new item2082 can place any new item betwen two others2083 can place any new item after another2084 can place any new item before another2085 behaves like able to move an existing item2086 can place any item betwen two others2087 can place any item after another2088 can place any item before another2089 free_space: 104, index: 3, pos_a: 2, pos_b: 32090 behaves like able to move a new item2091 can place any new item betwen two others2092 can place any new item after another2093 can place any new item before another2094 behaves like able to move an existing item2095 can place any item betwen two others2096 can place any item after another2097 can place any item before another2098 free_space: 104, index: 3, pos_a: 1, pos_b: 32099 behaves like able to move a new item2100 can place any new item betwen two others2101 can place any new item after another2102 can place any new item before another2103 behaves like able to move an existing item2104 can place any item betwen two others2105 can place any item after another2106 can place any item before another2107 free_space: 104, index: 3, pos_a: 1, pos_b: 22108 behaves like able to move a new item2109 can place any new item betwen two others2110 can place any new item after another2111 can place any new item before another2112 behaves like able to move an existing item2113 can place any item betwen two others2114 can place any item after another2115 can place any item before another2116 free_space: 104, index: 3, pos_a: 0, pos_b: 32117 behaves like able to move a new item2118 can place any new item betwen two others2119 can place any new item after another2120 can place any new item before another2121 behaves like able to move an existing item2122 can place any item betwen two others2123 can place any item after another2124 can place any item before another2125 free_space: 104, index: 3, pos_a: 0, pos_b: 22126 behaves like able to move a new item2127 can place any new item betwen two others2128 can place any new item after another2129 can place any new item before another2130 behaves like able to move an existing item2131 can place any item betwen two others2132 can place any item after another2133 can place any item before another2134 free_space: 104, index: 3, pos_a: 0, pos_b: 12135 behaves like able to move a new item2136 can place any new item betwen two others2137 can place any new item after another2138 can place any new item before another2139 behaves like able to move an existing item2140 can place any item betwen two others2141 can place any item after another2142 can place any item before another2143 free_space: 104, index: 2, pos_a: 2, pos_b: 32144 behaves like able to move a new item2145 can place any new item betwen two others2146 can place any new item after another2147 can place any new item before another2148 behaves like able to move an existing item2149 can place any item betwen two others2150 can place any item after another2151 can place any item before another2152 free_space: 104, index: 2, pos_a: 1, pos_b: 32153 behaves like able to move a new item2154 can place any new item betwen two others2155 can place any new item after another2156 can place any new item before another2157 behaves like able to move an existing item2158 can place any item betwen two others2159 can place any item after another2160 can place any item before another2161 free_space: 104, index: 2, pos_a: 1, pos_b: 22162 behaves like able to move a new item2163 can place any new item betwen two others2164 can place any new item after another2165 can place any new item before another2166 behaves like able to move an existing item2167 can place any item betwen two others2168 can place any item after another2169 can place any item before another2170 free_space: 104, index: 2, pos_a: 0, pos_b: 32171 behaves like able to move a new item2172 can place any new item betwen two others2173 can place any new item after another2174 can place any new item before another2175 behaves like able to move an existing item2176 can place any item betwen two others2177 can place any item after another2178 can place any item before another2179 free_space: 104, index: 2, pos_a: 0, pos_b: 22180 behaves like able to move a new item2181 can place any new item betwen two others2182 can place any new item after another2183 can place any new item before another2184 behaves like able to move an existing item2185 can place any item betwen two others2186 can place any item after another2187 can place any item before another2188 free_space: 104, index: 2, pos_a: 0, pos_b: 12189 behaves like able to move a new item2190 can place any new item betwen two others2191 can place any new item after another2192 can place any new item before another2193 behaves like able to move an existing item2194 can place any item betwen two others2195 can place any item after another2196 can place any item before another2197 free_space: 104, index: 1, pos_a: 2, pos_b: 32198 behaves like able to move a new item2199 can place any new item betwen two others2200 can place any new item after another2201 can place any new item before another2202 behaves like able to move an existing item2203 can place any item betwen two others2204 can place any item after another2205 can place any item before another2206 free_space: 104, index: 1, pos_a: 1, pos_b: 32207 behaves like able to move a new item2208 can place any new item betwen two others2209 can place any new item after another2210 can place any new item before another2211 behaves like able to move an existing item2212 can place any item betwen two others2213 can place any item after another2214 can place any item before another2215 free_space: 104, index: 1, pos_a: 1, pos_b: 22216 behaves like able to move a new item2217 can place any new item betwen two others2218 can place any new item after another2219 can place any new item before another2220 behaves like able to move an existing item2221 can place any item betwen two others2222 can place any item after another2223 can place any item before another2224 free_space: 104, index: 1, pos_a: 0, pos_b: 32225 behaves like able to move a new item2226 can place any new item betwen two others2227 can place any new item after another2228 can place any new item before another2229 behaves like able to move an existing item2230 can place any item betwen two others2231 can place any item after another2232 can place any item before another2233 free_space: 104, index: 1, pos_a: 0, pos_b: 22234 behaves like able to move a new item2235 can place any new item betwen two others2236 can place any new item after another2237 can place any new item before another2238 behaves like able to move an existing item2239 can place any item betwen two others2240 can place any item after another2241 can place any item before another2242 free_space: 104, index: 1, pos_a: 0, pos_b: 12243 behaves like able to move a new item2244 can place any new item betwen two others2245 can place any new item after another2246 can place any new item before another2247 behaves like able to move an existing item2248 can place any item betwen two others2249 can place any item after another2250 can place any item before another2251 free_space: 104, index: 0, pos_a: 2, pos_b: 32252 behaves like able to move a new item2253 can place any new item betwen two others2254 can place any new item after another2255 can place any new item before another2256 behaves like able to move an existing item2257 can place any item betwen two others2258 can place any item after another2259 can place any item before another2260 free_space: 104, index: 0, pos_a: 1, pos_b: 32261 behaves like able to move a new item2262 can place any new item betwen two others2263 can place any new item after another2264 can place any new item before another2265 behaves like able to move an existing item2266 can place any item betwen two others2267 can place any item after another2268 can place any item before another2269 free_space: 104, index: 0, pos_a: 1, pos_b: 22270 behaves like able to move a new item2271 can place any new item betwen two others2272 can place any new item after another2273 can place any new item before another2274 behaves like able to move an existing item2275 can place any item betwen two others2276 can place any item after another2277 can place any item before another2278 free_space: 104, index: 0, pos_a: 0, pos_b: 32279 behaves like able to move a new item2280 can place any new item betwen two others2281 can place any new item after another2282 can place any new item before another2283 behaves like able to move an existing item2284 can place any item betwen two others2285 can place any item after another2286 can place any item before another2287 free_space: 104, index: 0, pos_a: 0, pos_b: 22288 behaves like able to move a new item2289 can place any new item betwen two others2290 can place any new item after another2291 can place any new item before another2292 behaves like able to move an existing item2293 can place any item betwen two others2294 can place any item after another2295 can place any item before another2296 free_space: 104, index: 0, pos_a: 0, pos_b: 12297 behaves like able to move a new item2298 can place any new item betwen two others2299 can place any new item after another2300 can place any new item before another2301 behaves like able to move an existing item2302 can place any item betwen two others2303 can place any item after another2304 can place any item before another2305 free_space: 105, index: 3, pos_a: 2, pos_b: 32306 behaves like able to move a new item2307 can place any new item betwen two others2308 can place any new item after another2309 can place any new item before another2310 behaves like able to move an existing item2311 can place any item betwen two others2312 can place any item after another2313 can place any item before another2314 free_space: 105, index: 3, pos_a: 1, pos_b: 32315 behaves like able to move a new item2316 can place any new item betwen two others2317 can place any new item after another2318 can place any new item before another2319 behaves like able to move an existing item2320 can place any item betwen two others2321 can place any item after another2322 can place any item before another2323 free_space: 105, index: 3, pos_a: 1, pos_b: 22324 behaves like able to move a new item2325 can place any new item betwen two others2326 can place any new item after another2327 can place any new item before another2328 behaves like able to move an existing item2329 can place any item betwen two others2330 can place any item after another2331 can place any item before another2332 free_space: 105, index: 3, pos_a: 0, pos_b: 32333 behaves like able to move a new item2334 can place any new item betwen two others2335 can place any new item after another2336 can place any new item before another2337 behaves like able to move an existing item2338 can place any item betwen two others2339 can place any item after another2340 can place any item before another2341 free_space: 105, index: 3, pos_a: 0, pos_b: 22342 behaves like able to move a new item2343 can place any new item betwen two others2344 can place any new item after another2345 can place any new item before another2346 behaves like able to move an existing item2347 can place any item betwen two others2348 can place any item after another2349 can place any item before another2350 free_space: 105, index: 3, pos_a: 0, pos_b: 12351 behaves like able to move a new item2352 can place any new item betwen two others2353 can place any new item after another2354 can place any new item before another2355 behaves like able to move an existing item2356 can place any item betwen two others2357 can place any item after another2358 can place any item before another2359 free_space: 105, index: 2, pos_a: 2, pos_b: 32360 behaves like able to move a new item2361 can place any new item betwen two others2362 can place any new item after another2363 can place any new item before another2364 behaves like able to move an existing item2365 can place any item betwen two others2366 can place any item after another2367 can place any item before another2368 free_space: 105, index: 2, pos_a: 1, pos_b: 32369 behaves like able to move a new item2370 can place any new item betwen two others2371 can place any new item after another2372 can place any new item before another2373 behaves like able to move an existing item2374 can place any item betwen two others2375 can place any item after another2376 can place any item before another2377 free_space: 105, index: 2, pos_a: 1, pos_b: 22378 behaves like able to move a new item2379 can place any new item betwen two others2380 can place any new item after another2381 can place any new item before another2382 behaves like able to move an existing item2383 can place any item betwen two others2384 can place any item after another2385 can place any item before another2386 free_space: 105, index: 2, pos_a: 0, pos_b: 32387 behaves like able to move a new item2388 can place any new item betwen two others2389 can place any new item after another2390 can place any new item before another2391 behaves like able to move an existing item2392 can place any item betwen two others2393 can place any item after another2394 can place any item before another2395 free_space: 105, index: 2, pos_a: 0, pos_b: 22396 behaves like able to move a new item2397 can place any new item betwen two others2398 can place any new item after another2399 can place any new item before another2400 behaves like able to move an existing item2401 can place any item betwen two others2402 can place any item after another2403 can place any item before another2404 free_space: 105, index: 2, pos_a: 0, pos_b: 12405 behaves like able to move a new item2406 can place any new item betwen two others2407 can place any new item after another2408 can place any new item before another2409 behaves like able to move an existing item2410 can place any item betwen two others2411 can place any item after another2412 can place any item before another2413 free_space: 105, index: 1, pos_a: 2, pos_b: 32414 behaves like able to move a new item2415 can place any new item betwen two others2416 can place any new item after another2417 can place any new item before another2418 behaves like able to move an existing item2419 can place any item betwen two others2420 can place any item after another2421 can place any item before another2422 free_space: 105, index: 1, pos_a: 1, pos_b: 32423 behaves like able to move a new item2424 can place any new item betwen two others2425 can place any new item after another2426 can place any new item before another2427 behaves like able to move an existing item2428 can place any item betwen two others2429 can place any item after another2430 can place any item before another2431 free_space: 105, index: 1, pos_a: 1, pos_b: 22432 behaves like able to move a new item2433 can place any new item betwen two others2434 can place any new item after another2435 can place any new item before another2436 behaves like able to move an existing item2437 can place any item betwen two others2438 can place any item after another2439 can place any item before another2440 free_space: 105, index: 1, pos_a: 0, pos_b: 32441 behaves like able to move a new item2442 can place any new item betwen two others2443 can place any new item after another2444 can place any new item before another2445 behaves like able to move an existing item2446 can place any item betwen two others2447 can place any item after another2448 can place any item before another2449 free_space: 105, index: 1, pos_a: 0, pos_b: 22450 behaves like able to move a new item2451 can place any new item betwen two others2452 can place any new item after another2453 can place any new item before another2454 behaves like able to move an existing item2455 can place any item betwen two others2456 can place any item after another2457 can place any item before another2458 free_space: 105, index: 1, pos_a: 0, pos_b: 12459 behaves like able to move a new item2460 can place any new item betwen two others2461 can place any new item after another2462 can place any new item before another2463 behaves like able to move an existing item2464 can place any item betwen two others2465 can place any item after another2466 can place any item before another2467 free_space: 105, index: 0, pos_a: 2, pos_b: 32468 behaves like able to move a new item2469 can place any new item betwen two others2470 can place any new item after another2471 can place any new item before another2472 behaves like able to move an existing item2473 can place any item betwen two others2474 can place any item after another2475 can place any item before another2476 free_space: 105, index: 0, pos_a: 1, pos_b: 32477 behaves like able to move a new item2478 can place any new item betwen two others2479 can place any new item after another2480 can place any new item before another2481 behaves like able to move an existing item2482 can place any item betwen two others2483 can place any item after another2484 can place any item before another2485 free_space: 105, index: 0, pos_a: 1, pos_b: 22486 behaves like able to move a new item2487 can place any new item betwen two others2488 can place any new item after another2489 can place any new item before another2490 behaves like able to move an existing item2491 can place any item betwen two others2492 can place any item after another2493 can place any item before another2494 free_space: 105, index: 0, pos_a: 0, pos_b: 32495 behaves like able to move a new item2496 can place any new item betwen two others2497 can place any new item after another2498 can place any new item before another2499 behaves like able to move an existing item2500 can place any item betwen two others2501 can place any item after another2502 can place any item before another2503 free_space: 105, index: 0, pos_a: 0, pos_b: 22504 behaves like able to move a new item2505 can place any new item betwen two others2506 can place any new item after another2507 can place any new item before another2508 behaves like able to move an existing item2509 can place any item betwen two others2510 can place any item after another2511 can place any item before another2512 free_space: 105, index: 0, pos_a: 0, pos_b: 12513 behaves like able to move a new item2514 can place any new item betwen two others2515 can place any new item after another2516 can place any new item before another2517 behaves like able to move an existing item2518 can place any item betwen two others2519 can place any item after another2520 can place any item before another2521Auth::ContainerRegistryAuthenticationService2522 behaves like a container registry auth service2523 .full_access_token2524 behaves like an accessible2525 has the correct scope2526 behaves like a valid token2527 is expected to include :token2528 is expected to include "access"2529 a expirable2530 for default configuration2531 is expected not to be within 2 of 2023-03-30 11:53:09.769816587 +00002532 for changed configuration2533 is expected to be within 2 of 2023-03-30 11:53:09.813666893 +00002534 behaves like not a container repository factory2535 does not create a new container repository resource2536 .import_access_token2537 has the correct scope2538 behaves like a valid token2539 is expected to include :token2540 is expected to include "access"2541 a expirable2542 for default configuration2543 is expected not to be within 2 of 2023-03-30 11:53:10.091946656 +00002544 for changed configuration2545 is expected to be within 2 of 2023-03-30 11:53:10.138398542 +00002546 behaves like not a container repository factory2547 does not create a new container repository resource2548 .pull_access_token2549 behaves like an accessible2550 has the correct scope2551 behaves like a valid token2552 is expected to include :token2553 is expected to include "access"2554 a expirable2555 for default configuration2556 is expected not to be within 2 of 2023-03-30 11:53:10.628504755 +00002557 for changed configuration2558 is expected to be within 2 of 2023-03-30 11:53:10.676472150 +00002559 behaves like not a container repository factory2560 does not create a new container repository resource2561 .pull_nested_repositories_access_token2562 has the correct scope2563 behaves like a valid token2564 is expected to include :token2565 is expected to include "access"2566 a expirable2567 for default configuration2568 is expected not to be within 2 of 2023-03-30 11:53:11.142424686 +00002569 for changed configuration2570 is expected to be within 2 of 2023-03-30 11:53:11.187681971 +00002571 behaves like not a container repository factory2572 does not create a new container repository resource2573 with path ending with a slash2574 has the correct scope2575 behaves like a valid token2576 is expected to include :token2577 is expected to include "access"2578 a expirable2579 for default configuration2580 is expected not to be within 2 of 2023-03-30 11:53:11.381703363 +00002581 for changed configuration2582 is expected to be within 2 of 2023-03-30 11:53:11.427367979 +00002583 behaves like not a container repository factory2584 does not create a new container repository resource2585 user authorization2586 for registry catalog2587 disallow browsing for users without GitLab admin rights2588 behaves like an inaccessible2589 is expected to include {"access" => []}2590 behaves like a valid token2591 is expected to include :token2592 is expected to include "access"2593 a expirable2594 for default configuration2595 is expected not to be within 2 of 2023-03-30 11:53:11.697801563 +00002596 for changed configuration2597 is expected to be within 2 of 2023-03-30 11:53:11.738951549 +00002598 behaves like not a container repository factory2599 does not create a new container repository resource2600 for private project2601 behaves like private project2602 allow to use scope-less authentication2603 behaves like a valid token2604 is expected to include :token2605 is expected to include "access"2606 a expirable2607 for default configuration2608 is expected not to be within 2 of 2023-03-30 11:53:12.144967680 +00002609 for changed configuration2610 is expected to be within 2 of 2023-03-30 11:53:12.187103206 +00002611 behaves like with auth_type2612 is expected to eq "foo"2613 allow developer to push images2614 behaves like a pushable2615 behaves like an accessible2616 has the correct scope2617 behaves like a valid token2618 is expected to include :token2619 is expected to include "access"2620 a expirable2621 for default configuration2622 is expected not to be within 2 of 2023-03-30 11:53:12.745752643 +00002623 for changed configuration2624 is expected to be within 2 of 2023-03-30 11:53:12.843414883 +00002625 behaves like container repository factory2626 creates a new container repository resource2627 behaves like with auth_type2628 is expected to eq "foo"2629 disallow developer to delete images2630 behaves like an inaccessible2631 is expected to include {"access" => []}2632 behaves like a valid token2633 is expected to include :token2634 is expected to include "access"2635 a expirable2636 for default configuration2637 is expected not to be within 2 of 2023-03-30 11:53:13.456777625 +00002638 for changed configuration2639 is expected to be within 2 of 2023-03-30 11:53:13.547981556 +00002640 behaves like not a container repository factory2641 does not create a new container repository resource2642 behaves like logs an auth warning2643 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 time2644 disallow developer to delete images since registry 2.72645 behaves like an inaccessible2646 is expected to include {"access" => []}2647 behaves like a valid token2648 is expected to include :token2649 is expected to include "access"2650 a expirable2651 for default configuration2652 is expected not to be within 2 of 2023-03-30 11:53:14.098279193 +00002653 for changed configuration2654 is expected to be within 2 of 2023-03-30 11:53:14.187435005 +00002655 behaves like not a container repository factory2656 does not create a new container repository resource2657 allow reporter to pull images2658 when pulling from root level repository2659 behaves like a pullable2660 behaves like an accessible2661 has the correct scope2662 behaves like a valid token2663 is expected to include :token2664 is expected to include "access"2665 a expirable2666 for default configuration2667 is expected not to be within 2 of 2023-03-30 11:53:14.624341823 +00002668 for changed configuration2669 is expected to be within 2 of 2023-03-30 11:53:14.695013176 +00002670 behaves like not a container repository factory2671 does not create a new container repository resource2672 behaves like with auth_type2673 is expected to eq "foo"2674 disallow reporter to delete images2675 behaves like an inaccessible2676 is expected to include {"access" => []}2677 behaves like a valid token2678 is expected to include :token2679 is expected to include "access"2680 a expirable2681 for default configuration2682 is expected not to be within 2 of 2023-03-30 11:53:15.187530199 +00002683 for changed configuration2684 is expected to be within 2 of 2023-03-30 11:53:15.267915801 +00002685 behaves like not a container repository factory2686 does not create a new container repository resource2687 disallow reporter to delete images since registry 2.72688 behaves like an inaccessible2689 is expected to include {"access" => []}2690 behaves like a valid token2691 is expected to include :token2692 is expected to include "access"2693 a expirable2694 for default configuration2695 is expected not to be within 2 of 2023-03-30 11:53:15.717163838 +00002696 for changed configuration2697 is expected to be within 2 of 2023-03-30 11:53:15.792802951 +00002698 behaves like not a container repository factory2699 does not create a new container repository resource2700 return a least of privileges2701 behaves like a pullable2702 behaves like an accessible2703 has the correct scope2704 behaves like a valid token2705 is expected to include :token2706 is expected to include "access"2707 a expirable2708 for default configuration2709 is expected not to be within 2 of 2023-03-30 11:53:16.285684634 +00002710 for changed configuration2711 is expected to be within 2 of 2023-03-30 11:53:16.374318535 +00002712 behaves like not a container repository factory2713 does not create a new container repository resource2714 behaves like with auth_type2715 is expected to eq "foo"2716 disallow guest to pull or push images2717 behaves like an inaccessible2718 is expected to include {"access" => []}2719 behaves like a valid token2720 is expected to include :token2721 is expected to include "access"2722 a expirable2723 for default configuration2724 is expected not to be within 2 of 2023-03-30 11:53:17.013554274 +00002725 for changed configuration2726 is expected to be within 2 of 2023-03-30 11:53:17.108814535 +00002727 behaves like not a container repository factory2728 does not create a new container repository resource2729 disallow guest to delete images2730 behaves like an inaccessible2731 is expected to include {"access" => []}2732 behaves like a valid token2733 is expected to include :token2734 is expected to include "access"2735 a expirable2736 for default configuration2737 is expected not to be within 2 of 2023-03-30 11:53:17.600734588 +00002738 for changed configuration2739 is expected to be within 2 of 2023-03-30 11:53:17.683447150 +00002740 behaves like not a container repository factory2741 does not create a new container repository resource2742 disallow guest to delete images since registry 2.72743 behaves like an inaccessible2744 is expected to include {"access" => []}2745 behaves like a valid token2746 is expected to include :token2747 is expected to include "access"2748 a expirable2749 for default configuration2750 is expected not to be within 2 of 2023-03-30 11:53:18.162345934 +00002751 for changed configuration2752 is expected to be within 2 of 2023-03-30 11:53:18.244519596 +00002753 behaves like not a container repository factory2754 does not create a new container repository resource2755 for public project with private container registry2756 behaves like private project2757 allow to use scope-less authentication2758 behaves like a valid token2759 is expected to include :token2760 is expected to include "access"2761 a expirable2762 for default configuration2763 is expected not to be within 2 of 2023-03-30 11:53:18.677593185 +00002764 for changed configuration2765 is expected to be within 2 of 2023-03-30 11:53:18.720344931 +00002766 behaves like with auth_type2767 is expected to eq "foo"2768 allow developer to push images2769 behaves like a pushable2770 behaves like an accessible2771 has the correct scope2772 behaves like a valid token2773 is expected to include :token2774 is expected to include "access"2775 a expirable2776 for default configuration2777 is expected not to be within 2 of 2023-03-30 11:53:19.216750153 +00002778 for changed configuration2779 is expected to be within 2 of 2023-03-30 11:53:19.324118403 +00002780 behaves like container repository factory2781 creates a new container repository resource2782 behaves like with auth_type2783 is expected to eq "foo"2784 disallow developer to delete images2785 behaves like an inaccessible2786 is expected to include {"access" => []}2787 behaves like a valid token2788 is expected to include :token2789 is expected to include "access"2790 a expirable2791 for default configuration2792 is expected not to be within 2 of 2023-03-30 11:53:19.898835188 +00002793 for changed configuration2794 is expected to be within 2 of 2023-03-30 11:53:19.984909150 +00002795 behaves like not a container repository factory2796 does not create a new container repository resource2797 behaves like logs an auth warning2798 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 time2799 disallow developer to delete images since registry 2.72800 behaves like an inaccessible2801 is expected to include {"access" => []}2802 behaves like a valid token2803 is expected to include :token2804 is expected to include "access"2805 a expirable2806 for default configuration2807 is expected not to be within 2 of 2023-03-30 11:53:20.586979682 +00002808 for changed configuration2809 is expected to be within 2 of 2023-03-30 11:53:20.668623214 +00002810 behaves like not a container repository factory2811 does not create a new container repository resource2812 allow reporter to pull images2813 when pulling from root level repository2814 behaves like a pullable2815 behaves like an accessible2816 has the correct scope2817 behaves like a valid token2818 is expected to include :token2819 is expected to include "access"2820 a expirable2821 for default configuration2822 is expected not to be within 2 of 2023-03-30 11:53:21.105738082 +00002823 for changed configuration2824 is expected to be within 2 of 2023-03-30 11:53:21.182017195 +00002825 behaves like not a container repository factory2826 does not create a new container repository resource2827 behaves like with auth_type2828 is expected to eq "foo"2829 disallow reporter to delete images2830 behaves like an inaccessible2831 is expected to include {"access" => []}2832 behaves like a valid token2833 is expected to include :token2834 is expected to include "access"2835 a expirable2836 for default configuration2837 is expected not to be within 2 of 2023-03-30 11:53:21.694563426 +00002838 for changed configuration2839 is expected to be within 2 of 2023-03-30 11:53:21.779126438 +00002840 behaves like not a container repository factory2841 does not create a new container repository resource2842 disallow reporter to delete images since registry 2.72843 behaves like an inaccessible2844 is expected to include {"access" => []}2845 behaves like a valid token2846 is expected to include :token2847 is expected to include "access"2848 a expirable2849 for default configuration2850 is expected not to be within 2 of 2023-03-30 11:53:22.241655544 +00002851 for changed configuration2852 is expected to be within 2 of 2023-03-30 11:53:22.327684626 +00002853 behaves like not a container repository factory2854 does not create a new container repository resource2855 return a least of privileges2856 behaves like a pullable2857 behaves like an accessible2858 has the correct scope2859 behaves like a valid token2860 is expected to include :token2861 is expected to include "access"2862 a expirable2863 for default configuration2864 is expected not to be within 2 of 2023-03-30 11:53:22.833656357 +00002865 for changed configuration2866 is expected to be within 2 of 2023-03-30 11:53:22.931002458 +00002867 behaves like not a container repository factory2868 does not create a new container repository resource2869 behaves like with auth_type2870 is expected to eq "foo"2871 disallow guest to pull or push images2872 behaves like an inaccessible2873 is expected to include {"access" => []}2874 behaves like a valid token2875 is expected to include :token2876 is expected to include "access"2877 a expirable2878 for default configuration2879 is expected not to be within 2 of 2023-03-30 11:53:23.482142355 +00002880 for changed configuration2881 is expected to be within 2 of 2023-03-30 11:53:23.597792224 +00002882 behaves like not a container repository factory2883 does not create a new container repository resource2884 disallow guest to delete images2885 behaves like an inaccessible2886 is expected to include {"access" => []}2887 behaves like a valid token2888 is expected to include :token2889 is expected to include "access"2890 a expirable2891 for default configuration2892 is expected not to be within 2 of 2023-03-30 11:53:24.042485572 +00002893 for changed configuration2894 is expected to be within 2 of 2023-03-30 11:53:24.122368884 +00002895 behaves like not a container repository factory2896 does not create a new container repository resource2897 disallow guest to delete images since registry 2.72898 behaves like an inaccessible2899 is expected to include {"access" => []}2900 behaves like a valid token2901 is expected to include :token2902 is expected to include "access"2903 a expirable2904 for default configuration2905 is expected not to be within 2 of 2023-03-30 11:53:24.560680342 +00002906 for changed configuration2907 is expected to be within 2 of 2023-03-30 11:53:24.640353064 +00002908 behaves like not a container repository factory2909 does not create a new container repository resource2910 for public project with container_registry `enabled`2911 allow anyone to pull images2912 behaves like a pullable2913 behaves like an accessible2914 has the correct scope2915 behaves like a valid token2916 is expected to include :token2917 is expected to include "access"2918 a expirable2919 for default configuration2920 is expected not to be within 2 of 2023-03-30 11:53:25.232305968 +00002921 for changed configuration2922 is expected to be within 2 of 2023-03-30 11:53:25.300991961 +00002923 behaves like not a container repository factory2924 does not create a new container repository resource2925 behaves like with auth_type2926 is expected to eq "foo"2927 disallow anyone to push images2928 behaves like an inaccessible2929 is expected to include {"access" => []}2930 behaves like a valid token2931 is expected to include :token2932 is expected to include "access"2933 a expirable2934 for default configuration2935 is expected not to be within 2 of 2023-03-30 11:53:25.709755612 +00002936 for changed configuration2937 is expected to be within 2 of 2023-03-30 11:53:25.786951215 +00002938 behaves like not a container repository factory2939 does not create a new container repository resource2940 disallow anyone to delete images2941 behaves like an inaccessible2942 is expected to include {"access" => []}2943 behaves like a valid token2944 is expected to include :token2945 is expected to include "access"2946 a expirable2947 for default configuration2948 is expected not to be within 2 of 2023-03-30 11:53:26.140065181 +00002949 for changed configuration2950 is expected to be within 2 of 2023-03-30 11:53:26.214233024 +00002951 behaves like not a container repository factory2952 does not create a new container repository resource2953 disallow anyone to delete images since registry 2.72954 behaves like an inaccessible2955 is expected to include {"access" => []}2956 behaves like a valid token2957 is expected to include :token2958 is expected to include "access"2959 a expirable2960 for default configuration2961 is expected not to be within 2 of 2023-03-30 11:53:26.565520680 +00002962 for changed configuration2963 is expected to be within 2 of 2023-03-30 11:53:26.650801512 +00002964 behaves like not a container repository factory2965 does not create a new container repository resource2966 when repository name is invalid2967 behaves like an inaccessible2968 is expected to include {"access" => []}2969 behaves like a valid token2970 is expected to include :token2971 is expected to include "access"2972 a expirable2973 for default configuration2974 is expected not to be within 2 of 2023-03-30 11:53:26.931255345 +00002975 for changed configuration2976 is expected to be within 2 of 2023-03-30 11:53:26.977397891 +00002977 behaves like not a container repository factory2978 does not create a new container repository resource2979 for internal project with container_registry `enabled`2980 for internal user2981 allow anyone to pull images2982 behaves like a pullable2983 behaves like an accessible2984 has the correct scope2985 behaves like a valid token2986 is expected to include :token2987 is expected to include "access"2988 a expirable2989 for default configuration2990 is expected not to be within 2 of 2023-03-30 11:53:27.539256707 +00002991 for changed configuration2992 is expected to be within 2 of 2023-03-30 11:53:27.605305871 +00002993 behaves like not a container repository factory2994 does not create a new container repository resource2995 behaves like with auth_type2996 is expected to eq "foo"2997 disallow anyone to push images2998 behaves like an inaccessible2999 is expected to include {"access" => []}3000 behaves like a valid token3001 is expected to include :token3002 is expected to include "access"3003 a expirable3004 for default configuration3005 is expected not to be within 2 of 2023-03-30 11:53:28.013782582 +00003006 for changed configuration3007 is expected to be within 2 of 2023-03-30 11:53:28.087182355 +00003008 behaves like not a container repository factory3009 does not create a new container repository resource3010 disallow anyone to delete images3011 behaves like an inaccessible3012 is expected to include {"access" => []}3013 behaves like a valid token3014 is expected to include :token3015 is expected to include "access"3016 a expirable3017 for default configuration3018 is expected not to be within 2 of 2023-03-30 11:53:28.455581559 +00003019 for changed configuration3020 is expected to be within 2 of 2023-03-30 11:53:28.535038382 +00003021 behaves like not a container repository factory3022 does not create a new container repository resource3023 disallow anyone to delete images since registry 2.73024 behaves like an inaccessible3025 is expected to include {"access" => []}3026 behaves like a valid token3027 is expected to include :token3028 is expected to include "access"3029 a expirable3030 for default configuration3031 is expected not to be within 2 of 2023-03-30 11:53:28.881590569 +00003032 for changed configuration3033 is expected to be within 2 of 2023-03-30 11:53:28.964262321 +00003034 behaves like not a container repository factory3035 does not create a new container repository resource3036 for external user3037 disallow anyone to pull or push images3038 behaves like an inaccessible3039 is expected to include {"access" => []}3040 behaves like a valid token3041 is expected to include :token3042 is expected to include "access"3043 a expirable3044 for default configuration3045 is expected not to be within 2 of 2023-03-30 11:53:29.463134133 +00003046 for changed configuration3047 is expected to be within 2 of 2023-03-30 11:53:29.552990364 +00003048 behaves like not a container repository factory3049 does not create a new container repository resource3050 disallow anyone to delete images3051 behaves like an inaccessible3052 is expected to include {"access" => []}3053 behaves like a valid token3054 is expected to include :token3055 is expected to include "access"3056 a expirable3057 for default configuration3058 is expected not to be within 2 of 2023-03-30 11:53:30.008940141 +00003059 for changed configuration3060 is expected to be within 2 of 2023-03-30 11:53:30.122912340 +00003061 behaves like not a container repository factory3062 does not create a new container repository resource3063 disallow anyone to delete images since registry 2.73064 behaves like an inaccessible3065 is expected to include {"access" => []}3066 behaves like a valid token3067 is expected to include :token3068 is expected to include "access"3069 a expirable3070 for default configuration3071 is expected not to be within 2 of 2023-03-30 11:53:30.564783228 +00003072 for changed configuration3073 is expected to be within 2 of 2023-03-30 11:53:30.650322859 +00003074 behaves like not a container repository factory3075 does not create a new container repository resource3076 for internal project with private container registry3077 behaves like private project3078 allow to use scope-less authentication3079 behaves like a valid token3080 is expected to include :token3081 is expected to include "access"3082 a expirable3083 for default configuration3084 is expected not to be within 2 of 2023-03-30 11:53:31.097931146 +00003085 for changed configuration3086 is expected to be within 2 of 2023-03-30 11:53:31.141728412 +00003087 behaves like with auth_type3088 is expected to eq "foo"3089 allow developer to push images3090 behaves like a pushable3091 behaves like an accessible3092 has the correct scope3093 behaves like a valid token3094 is expected to include :token3095 is expected to include "access"3096 a expirable3097 for default configuration3098 is expected not to be within 2 of 2023-03-30 11:53:31.638380535 +00003099 for changed configuration3100 is expected to be within 2 of 2023-03-30 11:53:31.733867176 +00003101 behaves like container repository factory3102 creates a new container repository resource3103 behaves like with auth_type3104 is expected to eq "foo"3105 disallow developer to delete images3106 behaves like an inaccessible3107 is expected to include {"access" => []}3108 behaves like a valid token3109 is expected to include :token3110 is expected to include "access"3111 a expirable3112 for default configuration3113 is expected not to be within 2 of 2023-03-30 11:53:32.303662101 +00003114 for changed configuration3115 is expected to be within 2 of 2023-03-30 11:53:32.387462943 +00003116 behaves like not a container repository factory3117 does not create a new container repository resource3118 behaves like logs an auth warning3119 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 time3120 disallow developer to delete images since registry 2.73121 behaves like an inaccessible3122 is expected to include {"access" => []}3123 behaves like a valid token3124 is expected to include :token3125 is expected to include "access"3126 a expirable3127 for default configuration3128 is expected not to be within 2 of 2023-03-30 11:53:32.935355581 +00003129 for changed configuration3130 is expected to be within 2 of 2023-03-30 11:53:33.022391072 +00003131 behaves like not a container repository factory3132 does not create a new container repository resource3133 allow reporter to pull images3134 when pulling from root level repository3135 behaves like a pullable3136 behaves like an accessible3137 has the correct scope3138 behaves like a valid token3139 is expected to include :token3140 is expected to include "access"3141 a expirable3142 for default configuration3143 is expected not to be within 2 of 2023-03-30 11:53:33.507562966 +00003144 for changed configuration3145 is expected to be within 2 of 2023-03-30 11:53:33.590174848 +00003146 behaves like not a container repository factory3147 does not create a new container repository resource3148 behaves like with auth_type3149 is expected to eq "foo"3150 disallow reporter to delete images3151 behaves like an inaccessible3152 is expected to include {"access" => []}3153 behaves like a valid token3154 is expected to include :token3155 is expected to include "access"3156 a expirable3157 for default configuration3158 is expected not to be within 2 of 2023-03-30 11:53:34.171667342 +00003159 for changed configuration3160 is expected to be within 2 of 2023-03-30 11:53:34.264122774 +00003161 behaves like not a container repository factory3162 does not create a new container repository resource3163 disallow reporter to delete images since registry 2.73164 behaves like an inaccessible3165 is expected to include {"access" => []}3166 behaves like a valid token3167 is expected to include :token3168 is expected to include "access"3169 a expirable3170 for default configuration3171 is expected not to be within 2 of 2023-03-30 11:53:34.745986197 +00003172 for changed configuration3173 is expected to be within 2 of 2023-03-30 11:53:34.834451199 +00003174 behaves like not a container repository factory3175 does not create a new container repository resource3176 return a least of privileges3177 behaves like a pullable3178 behaves like an accessible3179 has the correct scope3180 behaves like a valid token3181 is expected to include :token3182 is expected to include "access"3183 a expirable3184 for default configuration3185 is expected not to be within 2 of 2023-03-30 11:53:35.373720357 +00003186 for changed configuration3187 is expected to be within 2 of 2023-03-30 11:53:35.475529668 +00003188 behaves like not a container repository factory3189 does not create a new container repository resource3190 behaves like with auth_type3191 is expected to eq "foo"3192 disallow guest to pull or push images3193 behaves like an inaccessible3194 is expected to include {"access" => []}3195 behaves like a valid token3196 is expected to include :token3197 is expected to include "access"3198 a expirable3199 for default configuration3200 is expected not to be within 2 of 2023-03-30 11:53:36.076617750 +00003201 for changed configuration3202 is expected to be within 2 of 2023-03-30 11:53:36.164603912 +00003203 behaves like not a container repository factory3204 does not create a new container repository resource3205 disallow guest to delete images3206 behaves like an inaccessible3207 is expected to include {"access" => []}3208 behaves like a valid token3209 is expected to include :token3210 is expected to include "access"3211 a expirable3212 for default configuration3213 is expected not to be within 2 of 2023-03-30 11:53:36.627288868 +00003214 for changed configuration3215 is expected to be within 2 of 2023-03-30 11:53:36.702492470 +00003216 behaves like not a container repository factory3217 does not create a new container repository resource3218 disallow guest to delete images since registry 2.73219 behaves like an inaccessible3220 is expected to include {"access" => []}3221 behaves like a valid token3222 is expected to include :token3223 is expected to include "access"3224 a expirable3225 for default configuration3226 is expected not to be within 2 of 2023-03-30 11:53:37.142987338 +00003227 for changed configuration3228 is expected to be within 2 of 2023-03-30 11:53:37.219505961 +00003229 behaves like not a container repository factory3230 does not create a new container repository resource3231 delete authorized as maintainer3232 behaves like allowed to delete container repository images3233 behaves like a valid token3234 is expected to include :token3235 is expected to include "access"3236 a expirable3237 for default configuration3238 is expected not to be within 2 of 2023-03-30 11:53:37.787362036 +00003239 for changed configuration3240 is expected to be within 2 of 2023-03-30 11:53:37.833118552 +00003241 allow to delete images3242 behaves like a deletable3243 behaves like an accessible3244 has the correct scope3245 behaves like a valid token3246 is expected to include :token3247 is expected to include "access"3248 a expirable3249 for default configuration3250 is expected not to be within 2 of 2023-03-30 11:53:38.114276765 +00003251 for changed configuration3252 is expected to be within 2 of 2023-03-30 11:53:38.191796328 +00003253 allow to delete images since registry 2.73254 behaves like a deletable since registry 2.73255 behaves like an accessible3256 has the correct scope3257 behaves like a valid token3258 is expected to include :token3259 is expected to include "access"3260 a expirable3261 for default configuration3262 is expected not to be within 2 of 2023-03-30 11:53:38.464582432 +00003263 for changed configuration3264 is expected to be within 2 of 2023-03-30 11:53:38.543066414 +00003265 build authorized as user3266 allow to use offline_token3267 behaves like an authenticated3268 is expected to include :token3269 is expected to include "access"3270 behaves like a valid token3271 is expected to include :token3272 is expected to include "access"3273 a expirable3274 for default configuration3275 is expected not to be within 2 of 2023-03-30 11:53:39.096341731 +00003276 for changed configuration3277 is expected to be within 2 of 2023-03-30 11:53:39.140960117 +00003278 behaves like with auth_type3279 is expected to eq "foo"3280 allow to pull and push images3281 behaves like a pullable and pushable3282 behaves like an accessible3283 has the correct scope3284 behaves like a valid token3285 is expected to include :token3286 is expected to include "access"3287 a expirable3288 for default configuration3289 is expected not to be within 2 of 2023-03-30 11:53:39.485513224 +00003290 for changed configuration3291 is expected to be within 2 of 2023-03-30 11:53:39.571180816 +00003292 behaves like container repository factory3293 creates a new container repository resource3294 allow to delete images since registry 2.73295 behaves like a deletable since registry 2.73296 behaves like an accessible3297 has the correct scope3298 behaves like a valid token3299 is expected to include :token3300 is expected to include "access"3301 a expirable3302 for default configuration3303 is expected not to be within 2 of 2023-03-30 11:53:39.859398258 +00003304 for changed configuration3305 is expected to be within 2 of 2023-03-30 11:53:39.920141812 +00003306 disallow to delete images3307 behaves like an inaccessible3308 is expected to include {"access" => []}3309 behaves like a valid token3310 is expected to include :token3311 is expected to include "access"3312 a expirable3313 for default configuration3314 is expected not to be within 2 of 2023-03-30 11:53:40.162246569 +00003315 for changed configuration3316 is expected to be within 2 of 2023-03-30 11:53:40.220684854 +00003317 for other projects3318 when pulling3319 allow for public3320 behaves like a pullable3321 behaves like an accessible3322 has the correct scope3323 behaves like a valid token3324 is expected to include :token3325 is expected to include "access"3326 a expirable3327 for default configuration3328 is expected not to be within 2 of 2023-03-30 11:53:40.721270206 +00003329 for changed configuration3330 is expected to be within 2 of 2023-03-30 11:53:40.789917229 +00003331 behaves like not a container repository factory3332 does not create a new container repository resource3333 for private3334 behaves like pullable for being team member3335 when you are not member3336 behaves like an inaccessible3337 is expected to include {"access" => []}3338 behaves like a valid token3339 is expected to include :token3340 is expected to include "access"3341 a expirable3342 for default configuration3343 is expected not to be within 2 of 2023-03-30 11:53:41.354450125 +00003344 for changed configuration3345 is expected to be within 2 of 2023-03-30 11:53:41.427234148 +00003346 behaves like not a container repository factory3347 does not create a new container repository resource3348 when you are member3349 behaves like a pullable3350 behaves like an accessible3351 has the correct scope3352 behaves like a valid token3353 is expected to include :token3354 is expected to include "access"3355 a expirable3356 for default configuration3357 is expected not to be within 2 of 2023-03-30 11:53:41.840605269 +00003358 for changed configuration3359 is expected to be within 2 of 2023-03-30 11:53:41.914123452 +00003360 behaves like not a container repository factory3361 does not create a new container repository resource3362 when you are owner3363 behaves like a pullable3364 behaves like an accessible3365 has the correct scope3366 behaves like a valid token3367 is expected to include :token3368 is expected to include "access"3369 a expirable3370 for default configuration3371 is expected not to be within 2 of 2023-03-30 11:53:42.409088804 +00003372 for changed configuration3373 is expected to be within 2 of 2023-03-30 11:53:42.484330197 +00003374 behaves like not a container repository factory3375 does not create a new container repository resource3376 when you are admin3377 when you are not member3378 behaves like an inaccessible3379 is expected to include {"access" => []}3380 behaves like a valid token3381 is expected to include :token3382 is expected to include "access"3383 a expirable3384 for default configuration3385 is expected not to be within 2 of 2023-03-30 11:53:42.879966729 +00003386 for changed configuration3387 is expected to be within 2 of 2023-03-30 11:53:42.947520343 +00003388 behaves like not a container repository factory3389 does not create a new container repository resource3390 when you are member3391 behaves like a pullable3392 behaves like an accessible3393 has the correct scope3394 behaves like a valid token3395 is expected to include :token3396 is expected to include "access"3397 a expirable3398 for default configuration3399 is expected not to be within 2 of 2023-03-30 11:53:43.422512077 +00003400 for changed configuration3401 is expected to be within 2 of 2023-03-30 11:53:43.508316999 +00003402 behaves like not a container repository factory3403 does not create a new container repository resource3404 when you are owner3405 behaves like a pullable3406 behaves like an accessible3407 has the correct scope3408 behaves like a valid token3409 is expected to include :token3410 is expected to include "access"3411 a expirable3412 for default configuration3413 is expected not to be within 2 of 2023-03-30 11:53:44.039797108 +00003414 for changed configuration3415 is expected to be within 2 of 2023-03-30 11:53:44.115526401 +00003416 behaves like not a container repository factory3417 does not create a new container repository resource3418 for public project with private container registry3419 behaves like pullable for being team member3420 when you are not member3421 behaves like an inaccessible3422 is expected to include {"access" => []}3423 behaves like a valid token3424 is expected to include :token3425 is expected to include "access"3426 a expirable3427 for default configuration3428 is expected not to be within 2 of 2023-03-30 11:53:44.696618696 +00003429 for changed configuration3430 is expected to be within 2 of 2023-03-30 11:53:44.773124088 +00003431 behaves like not a container repository factory3432 does not create a new container repository resource3433 when you are member3434 behaves like a pullable3435 behaves like an accessible3436 has the correct scope3437 behaves like a valid token3438 is expected to include :token3439 is expected to include "access"3440 a expirable3441 for default configuration3442 is expected not to be within 2 of 2023-03-30 11:53:45.212865866 +00003443 for changed configuration3444 is expected to be within 2 of 2023-03-30 11:53:45.294090288 +00003445 behaves like not a container repository factory3446 does not create a new container repository resource3447 when you are owner3448 behaves like a pullable3449 behaves like an accessible3450 has the correct scope3451 behaves like a valid token3452 is expected to include :token3453 is expected to include "access"3454 a expirable3455 for default configuration3456 is expected not to be within 2 of 2023-03-30 11:53:45.841525386 +00003457 for changed configuration3458 is expected to be within 2 of 2023-03-30 11:53:45.924385148 +00003459 behaves like not a container repository factory3460 does not create a new container repository resource3461 when you are admin3462 behaves like pullable for being team member3463 when you are not member3464 behaves like an inaccessible3465 is expected to include {"access" => []}3466 behaves like a valid token3467 is expected to include :token3468 is expected to include "access"3469 a expirable3470 for default configuration3471 is expected not to be within 2 of 2023-03-30 11:53:46.358177056 +00003472 for changed configuration3473 is expected to be within 2 of 2023-03-30 11:53:46.434645639 +00003474 behaves like not a container repository factory3475 does not create a new container repository resource3476 when you are member3477 behaves like a pullable3478 behaves like an accessible3479 has the correct scope3480 behaves like a valid token3481 is expected to include :token3482 is expected to include "access"3483 a expirable3484 for default configuration3485 is expected not to be within 2 of 2023-03-30 11:53:46.902882584 +00003486 for changed configuration3487 is expected to be within 2 of 2023-03-30 11:53:46.994871315 +00003488 behaves like not a container repository factory3489 does not create a new container repository resource3490 when you are owner3491 behaves like a pullable3492 behaves like an accessible3493 has the correct scope3494 behaves like a valid token3495 is expected to include :token3496 is expected to include "access"3497 a expirable3498 for default configuration3499 is expected not to be within 2 of 2023-03-30 11:53:47.539146173 +00003500 for changed configuration3501 is expected to be within 2 of 2023-03-30 11:53:47.620154735 +00003502 behaves like not a container repository factory3503 does not create a new container repository resource3504 when pushing3505 disallow for all3506 when you are member3507 behaves like an inaccessible3508 is expected to include {"access" => []}3509 behaves like a valid token3510 is expected to include :token3511 is expected to include "access"3512 a expirable3513 for default configuration3514 is expected not to be within 2 of 2023-03-30 11:53:48.245273936 +00003515 for changed configuration3516 is expected to be within 2 of 2023-03-30 11:53:48.310706949 +00003517 behaves like not a container repository factory3518 does not create a new container repository resource3519 when you are owner3520 behaves like an inaccessible3521 is expected to include {"access" => []}3522 behaves like a valid token3523 is expected to include :token3524 is expected to include "access"3525 a expirable3526 for default configuration3527 is expected not to be within 2 of 2023-03-30 11:53:48.779824975 +00003528 for changed configuration3529 is expected to be within 2 of 2023-03-30 11:53:48.848091608 +00003530 behaves like not a container repository factory3531 does not create a new container repository resource3532 for project without container registry3533 disallow when pulling3534 behaves like an inaccessible3535 is expected to include {"access" => []}3536 behaves like a valid token3537 is expected to include :token3538 is expected to include "access"3539 a expirable3540 for default configuration3541 is expected not to be within 2 of 2023-03-30 11:53:49.400108995 +00003542 for changed configuration3543 is expected to be within 2 of 2023-03-30 11:53:49.464676289 +00003544 behaves like not a container repository factory3545 does not create a new container repository resource3546 for project that disables repository3547 disallow when pulling3548 behaves like an inaccessible3549 is expected to include {"access" => []}3550 behaves like a valid token3551 is expected to include :token3552 is expected to include "access"3553 a expirable3554 for default configuration3555 is expected not to be within 2 of 2023-03-30 11:53:49.953734862 +00003556 for changed configuration3557 is expected to be within 2 of 2023-03-30 11:53:50.015690216 +00003558 behaves like not a container repository factory3559 does not create a new container repository resource3560 registry catalog browsing authorized as admin3561 behaves like a browsable3562 has the correct scope3563 behaves like a valid token3564 is expected to include :token3565 is expected to include "access"3566 a expirable3567 for default configuration3568 is expected not to be within 2 of 2023-03-30 11:53:50.576269813 +00003569 for changed configuration3570 is expected to be within 2 of 2023-03-30 11:53:50.625276198 +00003571 behaves like not a container repository factory3572 does not create a new container repository resource3573 support for multiple scopes3574 user has access to all projects3575 behaves like a browsable3576 has the correct scope3577 behaves like a valid token3578 is expected to include :token3579 is expected to include "access"3580 a expirable3581 for default configuration3582 is expected not to be within 2 of 2023-03-30 11:53:52.194686578 +00003583 for changed configuration3584 is expected to be within 2 of 2023-03-30 11:53:52.310498527 +00003585 behaves like not a container repository factory3586 does not create a new container repository resource3587 user only has access to internal and public projects3588 behaves like a browsable3589 has the correct scope3590 behaves like a valid token3591 is expected to include :token3592 is expected to include "access"3593 a expirable3594 for default configuration3595 is expected not to be within 2 of 2023-03-30 11:53:53.079167603 +00003596 for changed configuration3597 is expected to be within 2 of 2023-03-30 11:53:53.227832699 +00003598 behaves like not a container repository factory3599 does not create a new container repository resource3600 anonymous user has access only to public project3601 behaves like a browsable3602 has the correct scope3603 behaves like a valid token3604 is expected to include :token3605 is expected to include "access"3606 a expirable3607 for default configuration3608 is expected not to be within 2 of 2023-03-30 11:53:53.817792033 +00003609 for changed configuration3610 is expected to be within 2 of 2023-03-30 11:53:53.932140451 +00003611 behaves like not a container repository factory3612 does not create a new container repository resource3613 with no public container registry3614 behaves like a forbidden3615 is expected to include {:http_status => 403}3616 is expected not to include :token3617 unauthorized3618 disallow to use scope-less authentication3619 behaves like a forbidden3620 is expected to include {:http_status => 403}3621 is expected not to include :token3622 behaves like not a container repository factory3623 does not create a new container repository resource3624 for invalid scope3625 behaves like a forbidden3626 is expected to include {:http_status => 403}3627 is expected not to include :token3628 behaves like not a container repository factory3629 does not create a new container repository resource3630 for private project3631 behaves like a forbidden3632 is expected to include {:http_status => 403}3633 is expected not to include :token3634 for public project with container registry `enabled`3635 when pulling and pushing3636 behaves like a pullable3637 behaves like an accessible3638 has the correct scope3639 behaves like a valid token3640 is expected to include :token3641 is expected to include "access"3642 a expirable3643 for default configuration3644 is expected not to be within 2 of 2023-03-30 11:53:55.402299651 +00003645 for changed configuration3646 is expected to be within 2 of 2023-03-30 11:53:55.495467282 +00003647 behaves like not a container repository factory3648 does not create a new container repository resource3649 when pushing3650 behaves like a forbidden3651 is expected to include {:http_status => 403}3652 is expected not to include :token3653 behaves like not a container repository factory3654 does not create a new container repository resource3655 for public project with container registry `private`3656 when pulling and pushing3657 behaves like a forbidden3658 is expected to include {:http_status => 403}3659 is expected not to include :token3660 behaves like not a container repository factory3661 does not create a new container repository resource3662 for registry catalog3663 behaves like a forbidden3664 is expected to include {:http_status => 403}3665 is expected not to include :token3666 behaves like not a container repository factory3667 does not create a new container repository resource3668 for deploy tokens3669 when deploy token has read and write registry as scopes3670 for public project3671 when pulling3672 behaves like a pullable3673 behaves like an accessible3674 has the correct scope3675 behaves like a valid token3676 is expected to include :token3677 is expected to include "access"3678 a expirable3679 for default configuration3680 is expected not to be within 2 of 2023-03-30 11:53:57.032309925 +00003681 for changed configuration3682 is expected to be within 2 of 2023-03-30 11:53:57.131786585 +00003683 when pushing3684 behaves like a pushable3685 behaves like an accessible3686 has the correct scope3687 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:57.686268642 +00003693 for changed configuration3694 is expected to be within 2 of 2023-03-30 11:53:57.823520239 +00003695 behaves like able to login3696 registry provides read_container_image authentication_abilities3697 is expected to eq "deploy_token"3698 behaves like an authenticated3699 is expected to include :token3700 is expected to include "access"3701 for internal project3702 when pulling3703 behaves like a pullable3704 behaves like an accessible3705 has the correct scope3706 behaves like a valid token3707 is expected to include :token3708 is expected to include "access"3709 a expirable3710 for default configuration3711 is expected not to be within 2 of 2023-03-30 11:53:58.765993709 +00003712 for changed configuration3713 is expected to be within 2 of 2023-03-30 11:53:58.882987328 +00003714 when pushing3715 behaves like a pushable3716 behaves like an accessible3717 has the correct scope3718 behaves like a valid token3719 is expected to include :token3720 is expected to include "access"3721 a expirable3722 for default configuration3723 is expected not to be within 2 of 2023-03-30 11:53:59.390504349 +00003724 for changed configuration3725 is expected to be within 2 of 2023-03-30 11:53:59.531389746 +00003726 behaves like able to login3727 registry provides read_container_image authentication_abilities3728 is expected to eq "deploy_token"3729 behaves like an authenticated3730 is expected to include :token3731 is expected to include "access"3732 for private project3733 when pulling3734 behaves like a pullable3735 behaves like an accessible3736 has the correct scope3737 behaves like a valid token3738 is expected to include :token3739 is expected to include "access"3740 a expirable3741 for default configuration3742 is expected not to be within 2 of 2023-03-30 11:54:00.427923780 +00003743 for changed configuration3744 is expected to be within 2 of 2023-03-30 11:54:00.538403339 +00003745 when pushing3746 behaves like a pushable3747 behaves like an accessible3748 has the correct scope3749 behaves like a valid token3750 is expected to include :token3751 is expected to include "access"3752 a expirable3753 for default configuration3754 is expected not to be within 2 of 2023-03-30 11:54:01.048990071 +00003755 for changed configuration3756 is expected to be within 2 of 2023-03-30 11:54:01.214913625 +00003757 behaves like able to login3758 registry provides read_container_image authentication_abilities3759 is expected to eq "deploy_token"3760 behaves like an authenticated3761 is expected to include :token3762 is expected to include "access"3763 for public project with private container registry3764 when pulling3765 behaves like a pullable3766 behaves like an accessible3767 has the correct scope3768 behaves like a valid token3769 is expected to include :token3770 is expected to include "access"3771 a expirable3772 for default configuration3773 is expected not to be within 2 of 2023-03-30 11:54:02.280059723 +00003774 for changed configuration3775 is expected to be within 2 of 2023-03-30 11:54:02.427705819 +00003776 when pushing3777 behaves like a pushable3778 behaves like an accessible3779 has the correct scope3780 behaves like a valid token3781 is expected to include :token3782 is expected to include "access"3783 a expirable3784 for default configuration3785 is expected not to be within 2 of 2023-03-30 11:54:03.066776367 +00003786 for changed configuration3787 is expected to be within 2 of 2023-03-30 11:54:03.216500193 +00003788 behaves like able to login3789 registry provides read_container_image authentication_abilities3790 is expected to eq "deploy_token"3791 behaves like an authenticated3792 is expected to include :token3793 is expected to include "access"3794 when deploy token does not have read_registry scope3795 for public project with container registry `enabled`3796 when pulling3797 behaves like a pullable3798 behaves like an accessible3799 has the correct scope3800 behaves like a valid token3801 is expected to include :token3802 is expected to include "access"3803 a expirable3804 for default configuration3805 is expected not to be within 2 of 2023-03-30 11:54:04.228667166 +00003806 for changed configuration3807 is expected to be within 2 of 2023-03-30 11:54:04.341963355 +00003808 behaves like unable to login3809 registry provides no container authentication_abilities3810 behaves like a forbidden3811 is expected to include {:http_status => 403}3812 is expected not to include :token3813 registry provides inapplicable container authentication_abilities3814 behaves like a forbidden3815 is expected to include {:http_status => 403}3816 is expected not to include :token3817 for public project with container registry `private`3818 when pulling3819 behaves like an inaccessible3820 is expected to include {"access" => []}3821 behaves like a valid token3822 is expected to include :token3823 is expected to include "access"3824 a expirable3825 for default configuration3826 is expected not to be within 2 of 2023-03-30 11:54:05.489820286 +00003827 for changed configuration3828 is expected to be within 2 of 2023-03-30 11:54:05.611820504 +00003829 behaves like unable to login3830 registry provides no container authentication_abilities3831 behaves like a forbidden3832 is expected to include {:http_status => 403}3833 is expected not to include :token3834 registry provides inapplicable container authentication_abilities3835 behaves like a forbidden3836 is expected to include {:http_status => 403}3837 is expected not to include :token3838 for internal project3839 when pulling3840 behaves like an inaccessible3841 is expected to include {"access" => []}3842 behaves like a valid token3843 is expected to include :token3844 is expected to include "access"3845 a expirable3846 for default configuration3847 is expected not to be within 2 of 2023-03-30 11:54:06.598635590 +00003848 for changed configuration3849 is expected to be within 2 of 2023-03-30 11:54:06.696915670 +00003850 behaves like unable to login3851 registry provides no container authentication_abilities3852 behaves like a forbidden3853 is expected to include {:http_status => 403}3854 is expected not to include :token3855 registry provides inapplicable container authentication_abilities3856 behaves like a forbidden3857 is expected to include {:http_status => 403}3858 is expected not to include :token3859 for private project3860 when pulling3861 behaves like an inaccessible3862 is expected to include {"access" => []}3863 behaves like a valid token3864 is expected to include :token3865 is expected to include "access"3866 a expirable3867 for default configuration3868 is expected not to be within 2 of 2023-03-30 11:54:07.572804216 +00003869 for changed configuration3870 is expected to be within 2 of 2023-03-30 11:54:07.675700266 +00003871 when logging in3872 behaves like a forbidden3873 is expected to include {:http_status => 403}3874 is expected not to include :token3875 behaves like unable to login3876 registry provides no container authentication_abilities3877 behaves like a forbidden3878 is expected to include {:http_status => 403}3879 is expected not to include :token3880 registry provides inapplicable container authentication_abilities3881 behaves like a forbidden3882 is expected to include {:http_status => 403}3883 is expected not to include :token3884 when deploy token is not related to the project3885 for public project with container registry `enabled`3886 when pulling3887 behaves like a pullable3888 behaves like an accessible3889 has the correct scope3890 behaves like a valid token3891 is expected to include :token3892 is expected to include "access"3893 a expirable3894 for default configuration3895 is expected not to be within 2 of 2023-03-30 11:54:08.656183622 +00003896 for changed configuration3897 is expected to be within 2 of 2023-03-30 11:54:08.742425604 +00003898 for public project with container registry `private`3899 when pulling3900 behaves like an inaccessible3901 is expected to include {"access" => []}3902 behaves like a valid token3903 is expected to include :token3904 is expected to include "access"3905 a expirable3906 for default configuration3907 is expected not to be within 2 of 2023-03-30 11:54:09.276628393 +00003908 for changed configuration3909 is expected to be within 2 of 2023-03-30 11:54:09.343525837 +00003910 for internal project3911 when pulling3912 behaves like an inaccessible3913 is expected to include {"access" => []}3914 behaves like a valid token3915 is expected to include :token3916 is expected to include "access"3917 a expirable3918 for default configuration3919 is expected not to be within 2 of 2023-03-30 11:54:09.802805823 +00003920 for changed configuration3921 is expected to be within 2 of 2023-03-30 11:54:09.861831837 +00003922 for private project3923 when pulling3924 behaves like an inaccessible3925 is expected to include {"access" => []}3926 behaves like a valid token3927 is expected to include :token3928 is expected to include "access"3929 a expirable3930 for default configuration3931 is expected not to be within 2 of 2023-03-30 11:54:10.328025642 +00003932 for changed configuration3933 is expected to be within 2 of 2023-03-30 11:54:10.392581796 +00003934 when deploy token has been revoked3935 for public project with container registry `enabled`3936 behaves like a pullable3937 behaves like an accessible3938 has the correct scope3939 behaves like a valid token3940 is expected to include :token3941 is expected to include "access"3942 a expirable3943 for default configuration3944 is expected not to be within 2 of 2023-03-30 11:54:10.989187989 +00003945 for changed configuration3946 is expected to be within 2 of 2023-03-30 11:54:11.093828089 +00003947 for public project with container registry `private`3948 behaves like an inaccessible3949 is expected to include {"access" => []}3950 behaves like a valid token3951 is expected to include :token3952 is expected to include "access"3953 a expirable3954 for default configuration3955 is expected not to be within 2 of 2023-03-30 11:54:11.757415616 +00003956 for changed configuration3957 is expected to be within 2 of 2023-03-30 11:54:11.857877096 +00003958 for internal project3959 behaves like an inaccessible3960 is expected to include {"access" => []}3961 behaves like a valid token3962 is expected to include :token3963 is expected to include "access"3964 a expirable3965 for default configuration3966 is expected not to be within 2 of 2023-03-30 11:54:12.449768230 +00003967 for changed configuration3968 is expected to be within 2 of 2023-03-30 11:54:12.547818530 +00003969 for private project3970 behaves like an inaccessible3971 is expected to include {"access" => []}3972 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:54:13.159905642 +00003978 for changed configuration3979 is expected to be within 2 of 2023-03-30 11:54:13.253173083 +00003980 user authorization3981 with multiple scopes3982 allow developer to push images3983 behaves like a pushable3984 behaves like an accessible3985 has the correct scope3986 behaves like a valid token3987 is expected to include :token3988 is expected to include "access"3989 a expirable3990 for default configuration3991 is expected not to be within 2 of 2023-03-30 11:54:13.998776382 +00003992 for changed configuration3993 is expected to be within 2 of 2023-03-30 11:54:14.101807001 +00003994 behaves like container repository factory3995 creates a new container repository resource3996 when importing3997 push request3998 behaves like a forbidden3999 is expected to include {:http_status => 403}4000 is expected not to include :token4001 behaves like containing the import error4002 includes a helpful error message4003 delete request4004 behaves like a forbidden4005 is expected to include {:http_status => 403}4006 is expected not to include :token4007 behaves like containing the import error4008 includes a helpful error message4009 * request4010 behaves like a forbidden4011 is expected to include {:http_status => 403}4012 is expected not to include :token4013 behaves like containing the import error4014 includes a helpful error message4015 pull request4016 behaves like a pullable4017 behaves like an accessible4018 has the correct scope4019 behaves like a valid token4020 is expected to include :token4021 is expected to include "access"4022 a expirable4023 for default configuration4024 is expected not to be within 2 of 2023-03-30 11:54:16.604299202 +00004025 for changed configuration4026 is expected to be within 2 of 2023-03-30 11:54:16.780626915 +00004027 mixed request4028 behaves like a forbidden4029 is expected to include {:http_status => 403}4030 is expected not to include :token4031 behaves like containing the import error4032 includes a helpful error message4033Git::BranchHooksService4034 Git Push Data4035 has expected push data attributes4036 with repository data4037 has expected attributes4038 with commits4039 is expected to be a kind of Array4040 has 1 element4041 the commit4042 is expected to eq 2014-02-27 08:57:31.000000000 +00004043 includes expected commit data4044 with a author4045 includes expected author data4046 Push Event4047 with an existing branch4048 generates a push event with one commit4049 with changing CI config4050 tracks the event4051 when usage ping is disabled4052 does not track the event4053 when the branch is not the main branch4054 does not track the event4055 when the CI config is a different path4056 does not track the event4057 with a new default branch4058 generates a push event with more than one commit4059 with a new non-default branch4060 generates a push event with more than one commit4061 removing a branch4062 generates a push event with no commits4063 Invalidating project cache4064 on default branch4065 create4066 is expected to receive invalidated_file_types(*(any args)) 1 time4067 update4068 is expected to receive perform_async(69, [:readme], [], false) 1 time4069 remove4070 is expected to receive invalidated_file_types(*(any args)) 1 time4071 on ordinary branch4072 create4073 is expected to receive invalidated_file_types(*(any args)) 1 time4074 update4075 is expected to receive invalidated_file_types(*(any args)) 1 time4076 remove4077 is expected to receive invalidated_file_types(*(any args)) 1 time4078 signatures4079 when the commit has a signature4080 when the signature is already cached4081 does not queue a CreateCommitSignatureWorker4082 when the signature is not yet cached4083 queues a CreateCommitSignatureWorker4084 can queue several commits to create the gpg signature4085 when the commit does not have a signature4086 does not queue a CreateCommitSignatureWorker4087 Processing commit messages4088 creating the default branch4089 processes a limited number of commit messages4090 collects the related metrics4091 when limit is not hit4092 does not collect the corresponding metric4093 updating the default branch4094 processes a limited number of commit messages4095 removing the default branch4096 does not process commit messages4097 creating a normal branch4098 processes a limited number of commit messages4099 updating a normal branch4100 processes a limited number of commit messages4101 removing a normal branch4102 does not process commit messages4103 when the project is forked4104 when commits already exists in the upstream project4105 does not process commit messages4106 when a commit does not exist in the upstream repo4107 processes the commit message4108 when the upstream project no longer exists4109 processes the commit messages4110 New branch detection4111 oldrev is the blank SHA4112 is treated as a new branch4113 oldrev is set4114 Gitaly does not know about the branch4115 is treated as a new branch4116 Gitaly knows about the branch4117 is not treated as a new branch4118 Metrics dashboard sync4119 with default branch4120 when adding files4121 also related4122 imports metrics to database4123 only unrelated4124 does not sync metrics to database4125 when deleting files4126 also related4127 imports metrics to database4128 only unrelated4129 does not sync metrics to database4130 when updating files4131 also related4132 imports metrics to database4133 only unrelated4134 does not sync metrics to database4135 without changes4136 does not sync metrics to database4137 with other branch4138 does not sync metrics to database4139Notes::UpdateService4140 #execute4141 does not update the note when params is blank4142 event tracking4143 does not track usage data when params is blank4144 tracks issue usage data4145 behaves like issue_edit snowplow tracking4146 behaves like Snowplow event tracking with RedisHLL context4147 behaves like Snowplow event tracking4148 is emitted4149 when note text was changed4150 update last_edited_at4151 update updated_by4152 when note text was not changed4153 does not update last_edited_at4154 does not update updated_by4155 when the notable is a merge request4156 tracks merge request usage data4157 with system note4158 does not update the note4159 does not track usage data4160 suggestions4161 refreshes note suggestions4162 todos4163 when note includes a user mention4164 when the note does not change mentions4165 behaves like does not update todos4166 keep todos4167 does not create any new todos4168 when the note changes to include one more user mention4169 behaves like creates one todo4170 marks todos as done4171 creates only 1 new todo4172 when the note changes to include a group mentions4173 behaves like creates one todo4174 marks todos as done4175 creates only 1 new todo4176 when note includes a group mention4177 when the group is public4178 when the note does not change mentions4179 behaves like does not update todos4180 keep todos4181 does not create any new todos4182 when the note changes mentions4183 behaves like creates one todo4184 marks todos as done4185 creates only 1 new todo4186 when the group is private4187 when the note does not change mentions4188 behaves like does not update todos4189 keep todos4190 does not create any new todos4191 when the note changes mentions4192 behaves like creates one todo4193 marks todos as done4194 creates only 1 new todo4195 for a personal snippet4196 does not create todos4197 does not create suggestions4198 does not create mentions4199 does not track usage data4200DesignManagement::DesignV432x230Uploader4201 resizes images4202 behaves like builds correct paths4203 #store_dir4204 behaves like matches the method pattern4205 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//4206 #cache_dir4207 behaves like matches the method pattern4208 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4209 #work_dir4210 behaves like matches the method pattern4211 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4212 #upload_path4213 behaves like matches the method pattern4214 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//4215 #relative_path4216 is relative (PENDING: Path not set, skipping.)4217 .absolute_path4218 behaves like matches the method pattern4219 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//4220 .base_dir4221 behaves like matches the method pattern4222 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4223 path traversal exploits4224 throws an exception4225 object_store is REMOTE4226 behaves like builds correct paths4227 #store_dir4228 behaves like matches the method pattern4229 is expected to match /design_management\/action\/image_v432x230\//4230 #cache_dir4231 behaves like matches the method pattern4232 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4233 #work_dir4234 behaves like matches the method pattern4235 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4236 #upload_path4237 behaves like matches the method pattern4238 is expected to match /design_management\/action\/image_v432x230\//4239 #relative_path4240 is relative (PENDING: Path not set, skipping.)4241 .absolute_path4242 behaves like matches the method pattern4243 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4244 .base_dir4245 behaves like matches the method pattern4246 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4247 path traversal exploits4248 throws an exception4249 #migrate!4250 behaves like migrates4251 returns corresponding file type4252 does nothing when migrating to the current store4253 migrate to the specified store4254 removes the original file after the migration4255 can access to the original file during migration4256 when migrate! is not occupied by another process4257 executes migrate!4258 executes use_file4259 when migrate! is occupied by another process4260 does not execute migrate!4261 does not execute use_file4262 migration is unsuccessful4263 when the store is not supported4264 does not update the object_store4265 does not delete the original file4266 upon a fog failure4267 does not update the object_store4268 does not delete the original file4269 upon a database failure4270 does not update the object_store4271 does not delete the original file4272 behaves like migrates4273 returns corresponding file type4274 does nothing when migrating to the current store4275 migrate to the specified store4276 removes the original file after the migration4277 can access to the original file during migration4278 when migrate! is not occupied by another process4279 executes migrate!4280 executes use_file4281 when migrate! is occupied by another process4282 does not execute migrate!4283 does not execute use_file4284 migration is unsuccessful4285 when the store is not supported4286 does not update the object_store4287 does not delete the original file4288 upon a fog failure4289 does not update the object_store4290 does not delete the original file4291 upon a database failure4292 does not update the object_store4293 does not delete the original file4294 accept whitelist file content type4295 mime_type: "image/png"4296 behaves like accepted carrierwave upload4297 will accept upload4298 will cache uploaded file4299 mime_type: "image/jpeg"4300 behaves like accepted carrierwave upload4301 will accept upload4302 will cache uploaded file4303 mime_type: "image/bmp"4304 behaves like accepted carrierwave upload4305 will accept upload4306 will cache uploaded file4307 mime_type: "image/gif"4308 behaves like accepted carrierwave upload4309 will accept upload4310 will cache uploaded file4311 upload non-whitelisted file content type4312 behaves like denied carrierwave upload4313 will deny upload4314 upload misnamed non-whitelisted file content type4315 behaves like denied carrierwave upload4316 will deny upload4317Packages::Npm::CreatePackageService4318 #execute4319 obtains a lease to create a new package4320 scoped package4321 behaves like valid package4322 creates a package4323 is expected to be valid4324 creates a package with name and version4325 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"}4326 is expected to eq "@namespace271/my-app"4327 is expected to eq "1.0.1"4328 behaves like assigns the package creator4329 assigns the package creator4330 with build info4331 creates a package file build info4332 behaves like assigns build to package4333 with build info4334 assigns the pipeline to the package4335 behaves like assigns status to package4336 with status param4337 assigns the status to the package4338 with a too large metadata structure4339 does not create the package4340 with not allowed readme field4341 is persisted without the field4342 with not allowed readmeFilename field4343 is persisted without the field4344 scoped package not following the naming convention4345 behaves like valid package4346 creates a package4347 is expected to be valid4348 creates a package with name and version4349 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"}4350 is expected to eq "@any-scope/package"4351 is expected to eq "1.0.1"4352 behaves like assigns the package creator4353 assigns the package creator4354 with build info4355 creates a package file build info4356 behaves like assigns build to package4357 with build info4358 assigns the pipeline to the package4359 behaves like assigns status to package4360 with status param4361 assigns the status to the package4362 with a too large metadata structure4363 does not create the package4364 with not allowed readme field4365 is persisted without the field4366 with not allowed readmeFilename field4367 is persisted without the field4368 unscoped package4369 behaves like valid package4370 creates a package4371 is expected to be valid4372 creates a package with name and version4373 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"}4374 is expected to eq "unscoped-package"4375 is expected to eq "1.0.1"4376 behaves like assigns the package creator4377 assigns the package creator4378 with build info4379 creates a package file build info4380 behaves like assigns build to package4381 with build info4382 assigns the pipeline to the package4383 behaves like assigns status to package4384 with status param4385 assigns the status to the package4386 with a too large metadata structure4387 does not create the package4388 with not allowed readme field4389 is persisted without the field4390 with not allowed readmeFilename field4391 is persisted without the field4392 package already exists4393 is expected to eq 4034394 is expected to equal "Package already exists."4395 marked as pending_destruction4396 creates a new package4397 max file size validation4398 when max file size is exceeded4399 behaves like max file size validation failure4400 returns a 400 error4401 when file size is faked by setting the attachment length param to a lower size4402 when encoded package data is not padded4403 behaves like max file size validation failure4404 returns a 400 error4405 when encoded package data is padded with '='4406 behaves like max file size validation failure4407 returns a 400 error4408 when encoded package data is padded with '=='4409 behaves like max file size validation failure4410 returns a 400 error4411 with invalid name @inv@lid_scope/package4412 raises a RecordInvalid error4413 with invalid name @scope/sub/group4414 raises a RecordInvalid error4415 with invalid name @scope/../../package4416 raises a RecordInvalid error4417 with invalid name @scope%2e%2e%2fpackage4418 raises a RecordInvalid error4419 with empty versions4420 is expected to eq 4004421 is expected to eq "Version is empty."4422 with invalid versions4423 version: "1"4424 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"4425 version: "1.2"4426 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"4427 version: "1./2.3"4428 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"4429 version: "../../../../../1.2.3"4430 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"4431 version: "%2e%2e%2f1.2.3"4432 is expected to raise ActiveRecord::RecordInvalid with "Validation failed: Version is invalid"4433 with npm_obtain_lease_to_create_package disabled4434 does not obtain a lease4435 when the lease is already taken4436 is expected to eq 4004437 is expected to eq "Could not obtain package lease."4438 when many of the same packages are created at the same time4439 only creates one package4440 #lease_key4441 returns an unique key4442Ci::RunnersFinder4443 admin4444 #execute4445 when admin mode setting is disabled4446 behaves like executes as admin4447 with 2 runners4448 with empty params4449 returns all runners4450 with nil group4451 returns all runners4452 with preload param set to :tag_name true4453 requests tags4454 with preload param set to :tag_name false4455 does not request tags4456 filtering4457 by search term4458 calls Ci::Runner.search4459 by upgrade status4460 set to :not_processed4461 calls with_upgrade_status scope with corresponding :not_processed status4462 set to :invalid_version4463 calls with_upgrade_status scope with corresponding :invalid_version status4464 set to :unavailable4465 calls with_upgrade_status scope with corresponding :unavailable status4466 set to :available4467 calls with_upgrade_status scope with corresponding :available status4468 set to :recommended4469 calls with_upgrade_status scope with corresponding :recommended status4470 set to an invalid value4471 raises ArgumentError4472 set to nil4473 does not call with_upgrade_status4474 by status4475 calls the corresponding :active scope on Ci::Runner4476 calls the corresponding :paused scope on Ci::Runner4477 calls the corresponding :online scope on Ci::Runner4478 calls the corresponding :offline scope on Ci::Runner4479 calls the corresponding :never_contacted scope on Ci::Runner4480 calls the corresponding :stale scope on Ci::Runner4481 by active status4482 with active set as false calls the corresponding scope on Ci::Runner with false4483 with active set as true calls the corresponding scope on Ci::Runner with true4484 by runner type4485 calls the corresponding scope on Ci::Runner4486 by tag_name4487 calls the corresponding scope on Ci::Runner4488 sorting4489 without sort param4490 behaves like sorts by created_at descending4491 sorts by created_at descending4492 with sort param equal to created_date4493 behaves like sorts by created_at descending4494 sorts by created_at descending4495 with sort param equal to created_at_desc4496 behaves like sorts by created_at descending4497 sorts by created_at descending4498 with sort param equal to created_at_asc4499 sorts by created_at ascending4500 with sort param equal to contacted_asc4501 sorts by contacted_at ascending4502 with sort param equal to contacted_desc4503 sorts by contacted_at descending4504 with sort param equal to token_expires_at_asc4505 sorts by contacted_at ascending4506 with sort param equal to token_expires_at_desc4507 sorts by contacted_at descending4508 when admin mode setting is enabled4509 when in admin mode4510 behaves like executes as admin4511 with 2 runners4512 with empty params4513 returns all runners4514 with nil group4515 returns all runners4516 with preload param set to :tag_name true4517 requests tags4518 with preload param set to :tag_name false4519 does not request tags4520 filtering4521 by search term4522 calls Ci::Runner.search4523 by upgrade status4524 set to :not_processed4525 calls with_upgrade_status scope with corresponding :not_processed status4526 set to :invalid_version4527 calls with_upgrade_status scope with corresponding :invalid_version status4528 set to :unavailable4529 calls with_upgrade_status scope with corresponding :unavailable status4530 set to :available4531 calls with_upgrade_status scope with corresponding :available status4532 set to :recommended4533 calls with_upgrade_status scope with corresponding :recommended status4534 set to an invalid value4535 raises ArgumentError4536 set to nil4537 does not call with_upgrade_status4538 by status4539 calls the corresponding :active scope on Ci::Runner4540 calls the corresponding :paused scope on Ci::Runner4541 calls the corresponding :online scope on Ci::Runner4542 calls the corresponding :offline scope on Ci::Runner4543 calls the corresponding :never_contacted scope on Ci::Runner4544 calls the corresponding :stale scope on Ci::Runner4545 by active status4546 with active set as false calls the corresponding scope on Ci::Runner with false4547 with active set as true calls the corresponding scope on Ci::Runner with true4548 by runner type4549 calls the corresponding scope on Ci::Runner4550 by tag_name4551 calls the corresponding scope on Ci::Runner4552 sorting4553 without sort param4554 behaves like sorts by created_at descending4555 sorts by created_at descending4556 with sort param equal to created_date4557 behaves like sorts by created_at descending4558 sorts by created_at descending4559 with sort param equal to created_at_desc4560 behaves like sorts by created_at descending4561 sorts by created_at descending4562 with sort param equal to created_at_asc4563 sorts by created_at ascending4564 with sort param equal to contacted_asc4565 sorts by contacted_at ascending4566 with sort param equal to contacted_desc4567 sorts by contacted_at descending4568 with sort param equal to token_expires_at_asc4569 sorts by contacted_at ascending4570 with sort param equal to token_expires_at_desc4571 sorts by contacted_at descending4572 when not in admin mode4573 behaves like executes as normal user4574 returns no runners4575 by non admin user4576 behaves like executes as normal user4577 returns no runners4578 when user is nil4579 returns no runners4580 group4581 #execute4582 with user as group owner4583 with :group as target group4584 passing no params4585 behaves like membership equal to :descendants4586 returns all descendant runners4587 with :descendants membership4588 behaves like membership equal to :descendants4589 returns all descendant runners4590 with :direct membership4591 returns runners belonging to group4592 with :all_available membership4593 returns runners available to group4594 with unknown membership4595 raises an error4596 with nil group4597 returns no runners4598 with sort param4599 sorts by specified attribute4600 filtering4601 by search term4602 returns correct runner4603 by active status4604 returns correct runner4605 by status4606 returns correct runner4607 by tag_name4608 returns correct runner4609 by runner type4610 returns correct runners4611 when user is not group owner4612 user_permission: :maintainer4613 with :sub_group_1 as target group4614 returns no runners4615 with :group as target group4616 returns no runners4617 with :all_available membership4618 returns no runners4619 user_permission: :developer4620 with :sub_group_1 as target group4621 returns no runners4622 with :group as target group4623 returns no runners4624 with :all_available membership4625 returns no runners4626 user_permission: :reporter4627 with :sub_group_1 as target group4628 returns no runners4629 with :group as target group4630 returns no runners4631 with :all_available membership4632 returns no runners4633 user_permission: :guest4634 with :sub_group_1 as target group4635 returns no runners4636 with :group as target group4637 returns no runners4638 with :all_available membership4639 returns no runners4640 when user has no access4641 returns no runners4642 when user is nil4643 returns no runners4644 #sort_key4645 without params4646 returns created_at_desc4647 with params4648 returns contacted_asc4649 project4650 #execute4651 with user as project admin4652 with project runners4653 returns runners available to project4654 with ancestor group runners4655 returns runners available to project4656 with allowed shared runners4657 returns runners available to project4658 with project, ancestor group, and allowed shared runners4659 returns runners available to project4660 filtering4661 by search term4662 returns the correct runner4663 by active status4664 returns the correct runners4665 by status4666 returns correct runner4667 by tag_name4668 returns correct runner4669 by runner type4670 returns correct runners4671 with user as project developer4672 returns no runners4673 when user is nil4674 returns no runners4675 with nil project_full_path4676 returns no runners4677Members::InvitationReminderEmailService4678 sending invitation reminders4679 expires_at_days: 0, send_reminder_at_days: []4680 sends an invitation reminder only on the expected days4681 sends an invitation reminder only on the expected days4682 sends an invitation reminder only on the expected days4683 sends an invitation reminder only on the expected days4684 sends an invitation reminder only on the expected days4685 sends an invitation reminder only on the expected days4686 sends an invitation reminder only on the expected days4687 sends an invitation reminder only on the expected days4688 sends an invitation reminder only on the expected days4689 sends an invitation reminder only on the expected days4690 sends an invitation reminder only on the expected days4691 expires_at_days: 1, send_reminder_at_days: []4692 sends an invitation reminder only on the expected days4693 sends an invitation reminder only on the expected days4694 sends an invitation reminder only on the expected days4695 sends an invitation reminder only on the expected days4696 sends an invitation reminder only on the expected days4697 sends an invitation reminder only on the expected days4698 sends an invitation reminder only on the expected days4699 sends an invitation reminder only on the expected days4700 sends an invitation reminder only on the expected days4701 sends an invitation reminder only on the expected days4702 sends an invitation reminder only on the expected days4703 expires_at_days: 2, send_reminder_at_days: [1]4704 sends an invitation reminder only on the expected days4705 sends an invitation reminder only on the expected days4706 sends an invitation reminder only on the expected days4707 sends an invitation reminder only on the expected days4708 sends an invitation reminder only on the expected days4709 sends an invitation reminder only on the expected days4710 sends an invitation reminder only on the expected days4711 sends an invitation reminder only on the expected days4712 sends an invitation reminder only on the expected days4713 sends an invitation reminder only on the expected days4714 sends an invitation reminder only on the expected days4715 expires_at_days: 3, send_reminder_at_days: [1, 2]4716 sends an invitation reminder only on the expected days4717 sends an invitation reminder only on the expected days4718 sends an invitation reminder only on the expected days4719 sends an invitation reminder only on the expected days4720 sends an invitation reminder only on the expected days4721 sends an invitation reminder only on the expected days4722 sends an invitation reminder only on the expected days4723 sends an invitation reminder only on the expected days4724 sends an invitation reminder only on the expected days4725 sends an invitation reminder only on the expected days4726 sends an invitation reminder only on the expected days4727 expires_at_days: 4, send_reminder_at_days: [1, 2, 3]4728 sends an invitation reminder only on the expected days4729 sends an invitation reminder only on the expected days4730 sends an invitation reminder only on the expected days4731 sends an invitation reminder only on the expected days4732 sends an invitation reminder only on the expected days4733 sends an invitation reminder only on the expected days4734 sends an invitation reminder only on the expected days4735 sends an invitation reminder only on the expected days4736 sends an invitation reminder only on the expected days4737 sends an invitation reminder only on the expected days4738 sends an invitation reminder only on the expected days4739 expires_at_days: 5, send_reminder_at_days: [1, 2, 4]4740 sends an invitation reminder only on the expected days4741 sends an invitation reminder only on the expected days4742 sends an invitation reminder only on the expected days4743 sends an invitation reminder only on the expected days4744 sends an invitation reminder only on the expected days4745 sends an invitation reminder only on the expected days4746 sends an invitation reminder only on the expected days4747 sends an invitation reminder only on the expected days4748 sends an invitation reminder only on the expected days4749 sends an invitation reminder only on the expected days4750 sends an invitation reminder only on the expected days4751 expires_at_days: 6, send_reminder_at_days: [1, 3, 5]4752 sends an invitation reminder only on the expected days4753 sends an invitation reminder only on the expected days4754 sends an invitation reminder only on the expected days4755 sends an invitation reminder only on the expected days4756 sends an invitation reminder only on the expected days4757 sends an invitation reminder only on the expected days4758 sends an invitation reminder only on the expected days4759 sends an invitation reminder only on the expected days4760 sends an invitation reminder only on the expected days4761 sends an invitation reminder only on the expected days4762 sends an invitation reminder only on the expected days4763 expires_at_days: 7, send_reminder_at_days: [1, 3, 5]4764 sends an invitation reminder only on the expected days4765 sends an invitation reminder only on the expected days4766 sends an invitation reminder only on the expected days4767 sends an invitation reminder only on the expected days4768 sends an invitation reminder only on the expected days4769 sends an invitation reminder only on the expected days4770 sends an invitation reminder only on the expected days4771 sends an invitation reminder only on the expected days4772 sends an invitation reminder only on the expected days4773 sends an invitation reminder only on the expected days4774 sends an invitation reminder only on the expected days4775 expires_at_days: 8, send_reminder_at_days: [2, 3, 6]4776 sends an invitation reminder only on the expected days4777 sends an invitation reminder only on the expected days4778 sends an invitation reminder only on the expected days4779 sends an invitation reminder only on the expected days4780 sends an invitation reminder only on the expected days4781 sends an invitation reminder only on the expected days4782 sends an invitation reminder only on the expected days4783 sends an invitation reminder only on the expected days4784 sends an invitation reminder only on the expected days4785 sends an invitation reminder only on the expected days4786 sends an invitation reminder only on the expected days4787 expires_at_days: 9, send_reminder_at_days: [2, 4, 7]4788 sends an invitation reminder only on the expected days4789 sends an invitation reminder only on the expected days4790 sends an invitation reminder only on the expected days4791 sends an invitation reminder only on the expected days4792 sends an invitation reminder only on the expected days4793 sends an invitation reminder only on the expected days4794 sends an invitation reminder only on the expected days4795 sends an invitation reminder only on the expected days4796 sends an invitation reminder only on the expected days4797 sends an invitation reminder only on the expected days4798 sends an invitation reminder only on the expected days4799 expires_at_days: 10, send_reminder_at_days: [2, 4, 8]4800 sends an invitation reminder only on the expected days4801 sends an invitation reminder only on the expected days4802 sends an invitation reminder only on the expected days4803 sends an invitation reminder only on the expected days4804 sends an invitation reminder only on the expected days4805 sends an invitation reminder only on the expected days4806 sends an invitation reminder only on the expected days4807 sends an invitation reminder only on the expected days4808 sends an invitation reminder only on the expected days4809 sends an invitation reminder only on the expected days4810 sends an invitation reminder only on the expected days4811 expires_at_days: 11, send_reminder_at_days: [2, 4, 8]4812 sends an invitation reminder only on the expected days4813 sends an invitation reminder only on the expected days4814 sends an invitation reminder only on the expected days4815 sends an invitation reminder only on the expected days4816 sends an invitation reminder only on the expected days4817 sends an invitation reminder only on the expected days4818 sends an invitation reminder only on the expected days4819 sends an invitation reminder only on the expected days4820 sends an invitation reminder only on the expected days4821 sends an invitation reminder only on the expected days4822 sends an invitation reminder only on the expected days4823 expires_at_days: 12, send_reminder_at_days: [2, 5, 9]4824 sends an invitation reminder only on the expected days4825 sends an invitation reminder only on the expected days4826 sends an invitation reminder only on the expected days4827 sends an invitation reminder only on the expected days4828 sends an invitation reminder only on the expected days4829 sends an invitation reminder only on the expected days4830 sends an invitation reminder only on the expected days4831 sends an invitation reminder only on the expected days4832 sends an invitation reminder only on the expected days4833 sends an invitation reminder only on the expected days4834 sends an invitation reminder only on the expected days4835 expires_at_days: 13, send_reminder_at_days: [2, 5, 10]4836 sends an invitation reminder only on the expected days4837 sends an invitation reminder only on the expected days4838 sends an invitation reminder only on the expected days4839 sends an invitation reminder only on the expected days4840 sends an invitation reminder only on the expected days4841 sends an invitation reminder only on the expected days4842 sends an invitation reminder only on the expected days4843 sends an invitation reminder only on the expected days4844 sends an invitation reminder only on the expected days4845 sends an invitation reminder only on the expected days4846 sends an invitation reminder only on the expected days4847 expires_at_days: 14, send_reminder_at_days: [2, 5, 10]4848 sends an invitation reminder only on the expected days4849 sends an invitation reminder only on the expected days4850 sends an invitation reminder only on the expected days4851 sends an invitation reminder only on the expected days4852 sends an invitation reminder only on the expected days4853 sends an invitation reminder only on the expected days4854 sends an invitation reminder only on the expected days4855 sends an invitation reminder only on the expected days4856 sends an invitation reminder only on the expected days4857 sends an invitation reminder only on the expected days4858 sends an invitation reminder only on the expected days4859 expires_at_days: 15, send_reminder_at_days: [2, 5, 10]4860 sends an invitation reminder only on the expected days4861 sends an invitation reminder only on the expected days4862 sends an invitation reminder only on the expected days4863 sends an invitation reminder only on the expected days4864 sends an invitation reminder only on the expected days4865 sends an invitation reminder only on the expected days4866 sends an invitation reminder only on the expected days4867 sends an invitation reminder only on the expected days4868 sends an invitation reminder only on the expected days4869 sends an invitation reminder only on the expected days4870 sends an invitation reminder only on the expected days4871 expires_at_days: nil, send_reminder_at_days: [2, 5, 10]4872 sends an invitation reminder only on the expected days4873 sends an invitation reminder only on the expected days4874 sends an invitation reminder only on the expected days4875 sends an invitation reminder only on the expected days4876 sends an invitation reminder only on the expected days4877 sends an invitation reminder only on the expected days4878 sends an invitation reminder only on the expected days4879 sends an invitation reminder only on the expected days4880 sends an invitation reminder only on the expected days4881 sends an invitation reminder only on the expected days4882 sends an invitation reminder only on the expected days4883CI YML Templates4884 that support autodevops4885 when including available templates in a CI YAML configuration4886 template_name: "5-Minute-Production-App.gitlab-ci.yml"4887 is expected to be valid4888 require default stages to be included4889 template_name: "Android.gitlab-ci.yml"4890 is expected to be valid4891 require default stages to be included4892 template_name: "Android-Fastlane.gitlab-ci.yml"4893 is expected to be valid4894 require default stages to be included4895 template_name: "Auto-DevOps.gitlab-ci.yml"4896 is expected to be valid4897 require default stages to be included4898 template_name: "Bash.gitlab-ci.yml"4899 is expected to be valid4900 require default stages to be included4901 template_name: "C++.gitlab-ci.yml"4902 is expected to be valid4903 require default stages to be included4904 template_name: "Chef.gitlab-ci.yml"4905 is expected to be valid4906 require default stages to be included4907 template_name: "Clojure.gitlab-ci.yml"4908 is expected to be valid4909 require default stages to be included4910 template_name: "Code-Quality.gitlab-ci.yml"4911 is expected to be valid4912 require default stages to be included4913 template_name: "Composer.gitlab-ci.yml"4914 is expected to be valid4915 require default stages to be included4916 template_name: "Crystal.gitlab-ci.yml"4917 is expected to be valid4918 require default stages to be included4919 template_name: "Dart.gitlab-ci.yml"4920 is expected to be valid4921 require default stages to be included4922 template_name: "Deploy-ECS.gitlab-ci.yml"4923 is expected to be valid4924 require default stages to be included4925 template_name: "Django.gitlab-ci.yml"4926 is expected to be valid4927 require default stages to be included4928 template_name: "Docker.gitlab-ci.yml"4929 is expected to be valid4930 require default stages to be included4931 template_name: "Elixir.gitlab-ci.yml"4932 is expected to be valid4933 require default stages to be included4934 template_name: "Flutter.gitlab-ci.yml"4935 is expected to be valid4936 require default stages to be included4937 template_name: "Getting-Started.gitlab-ci.yml"4938 is expected to be valid4939 require default stages to be included4940 template_name: "Go.gitlab-ci.yml"4941 is expected to be valid4942 require default stages to be included4943 template_name: "Gradle.gitlab-ci.yml"4944 is expected to be valid4945 require default stages to be included4946 template_name: "Grails.gitlab-ci.yml"4947 is expected to be valid4948 require default stages to be included4949 template_name: "Indeni.Cloudrail.gitlab-ci.yml"4950 is expected to be valid4951 require default stages to be included4952 template_name: "Julia.gitlab-ci.yml"4953 is expected to be valid4954 require default stages to be included4955 template_name: "Kaniko.gitlab-ci.yml"4956 is expected to be valid4957 require default stages to be included4958 template_name: "Katalon.gitlab-ci.yml"4959 is expected to be valid4960 require default stages to be included4961 template_name: "LaTeX.gitlab-ci.yml"4962 is expected to be valid4963 require default stages to be included4964 template_name: "Laravel.gitlab-ci.yml"4965 is expected to be valid4966 require default stages to be included4967 template_name: "MATLAB.gitlab-ci.yml"4968 is expected to be valid4969 require default stages to be included4970 template_name: "Maven.gitlab-ci.yml"4971 is expected to be valid4972 require default stages to be included4973 template_name: "Mono.gitlab-ci.yml"4974 is expected to be valid4975 require default stages to be included4976 template_name: "Nodejs.gitlab-ci.yml"4977 is expected to be valid4978 require default stages to be included4979 template_name: "OpenShift.gitlab-ci.yml"4980 is expected to be valid4981 require default stages to be included4982 template_name: "PHP.gitlab-ci.yml"4983 is expected to be valid4984 require default stages to be included4985 template_name: "Packer.gitlab-ci.yml"4986 is expected to be valid4987 require default stages to be included4988 template_name: "Python.gitlab-ci.yml"4989 is expected to be valid4990 require default stages to be included4991 template_name: "Qualys-IaC-Security.gitlab-ci.yml"4992 is expected to be valid4993 require default stages to be included4994 template_name: "Ruby.gitlab-ci.yml"4995 is expected to be valid4996 require default stages to be included4997 template_name: "Rust.gitlab-ci.yml"4998 is expected to be valid4999 require default stages to be included5000 template_name: "Scala.gitlab-ci.yml"5001 is expected to be valid5002 require default stages to be included5003 template_name: "Swift.gitlab-ci.yml"5004 is expected to be valid5005 require default stages to be included5006 template_name: "Terraform.gitlab-ci.yml"5007 is expected to be valid5008 require default stages to be included5009 template_name: "Terraform-Module.gitlab-ci.yml"5010 is expected to be valid5011 require default stages to be included5012 template_name: "dotNET.gitlab-ci.yml"5013 is expected to be valid5014 require default stages to be included5015 template_name: "dotNET-Core.gitlab-ci.yml"5016 is expected to be valid5017 require default stages to be included5018 template_name: "iOS-Fastlane.gitlab-ci.yml"5019 is expected to be valid5020 require default stages to be included5021 template_name: "liquibase.gitlab-ci.yml"5022 is expected to be valid5023 require default stages to be included5024 template_name: "npm.gitlab-ci.yml"5025 is expected to be valid5026 require default stages to be included5027 template_name: "Pages/Brunch.gitlab-ci.yml"5028 is expected to be valid5029 require default stages to be included5030 template_name: "Pages/Doxygen.gitlab-ci.yml"5031 is expected to be valid5032 require default stages to be included5033 template_name: "Pages/Gatsby.gitlab-ci.yml"5034 is expected to be valid5035 require default stages to be included5036 template_name: "Pages/HTML.gitlab-ci.yml"5037 is expected to be valid5038 require default stages to be included5039 template_name: "Pages/Harp.gitlab-ci.yml"5040 is expected to be valid5041 require default stages to be included5042 template_name: "Pages/Hexo.gitlab-ci.yml"5043 is expected to be valid5044 require default stages to be included5045 template_name: "Pages/Hugo.gitlab-ci.yml"5046 is expected to be valid5047 require default stages to be included5048 template_name: "Pages/Hyde.gitlab-ci.yml"5049 is expected to be valid5050 require default stages to be included5051 template_name: "Pages/JBake.gitlab-ci.yml"5052 is expected to be valid5053 require default stages to be included5054 template_name: "Pages/Jekyll.gitlab-ci.yml"5055 is expected to be valid5056 require default stages to be included5057 template_name: "Pages/Jigsaw.gitlab-ci.yml"5058 is expected to be valid5059 require default stages to be included5060 template_name: "Pages/Lektor.gitlab-ci.yml"5061 is expected to be valid5062 require default stages to be included5063 template_name: "Pages/Metalsmith.gitlab-ci.yml"5064 is expected to be valid5065 require default stages to be included5066 template_name: "Pages/Middleman.gitlab-ci.yml"5067 is expected to be valid5068 require default stages to be included5069 template_name: "Pages/Nanoc.gitlab-ci.yml"5070 is expected to be valid5071 require default stages to be included5072 template_name: "Pages/Octopress.gitlab-ci.yml"5073 is expected to be valid5074 require default stages to be included5075 template_name: "Pages/Pelican.gitlab-ci.yml"5076 is expected to be valid5077 require default stages to be included5078 template_name: "Pages/SwaggerUI.gitlab-ci.yml"5079 is expected to be valid5080 require default stages to be included5081 template_name: "Verify/Accessibility.gitlab-ci.yml"5082 is expected to be valid5083 require default stages to be included5084 template_name: "Verify/Browser-Performance.gitlab-ci.yml"5085 is expected to be valid5086 require default stages to be included5087 template_name: "Verify/FailFast.gitlab-ci.yml"5088 is expected to be valid5089 require default stages to be included5090 template_name: "Verify/Load-Performance-Testing.gitlab-ci.yml"5091 is expected to be valid5092 require default stages to be included5093 template_name: "Security/API-Discovery.gitlab-ci.yml"5094 is expected to be valid5095 require default stages to be included5096 template_name: "Security/Container-Scanning.gitlab-ci.yml"5097 is expected to be valid5098 require default stages to be included5099 template_name: "Security/Coverage-Fuzzing.gitlab-ci.yml"5100 is expected to be valid5101 require default stages to be included5102 template_name: "Security/DAST-On-Demand-API-Scan.gitlab-ci.yml"5103 is expected to be valid5104 require default stages to be included5105 template_name: "Security/DAST-On-Demand-Scan.gitlab-ci.yml"5106 is expected to be valid5107 require default stages to be included5108 template_name: "Security/DAST-Runner-Validation.gitlab-ci.yml"5109 is expected to be valid5110 require default stages to be included5111 template_name: "Security/Dependency-Scanning.gitlab-ci.yml"5112 is expected to be valid5113 require default stages to be included5114 template_name: "Security/Fortify-FoD-sast.gitlab-ci.yml"5115 is expected to be valid5116 require default stages to be included5117 template_name: "Security/License-Scanning.gitlab-ci.yml"5118 is expected to be valid5119 require default stages to be included5120 template_name: "Security/SAST.gitlab-ci.yml"5121 is expected to be valid5122 require default stages to be included5123 template_name: "Security/SAST-IaC.gitlab-ci.yml"5124 is expected to be valid5125 require default stages to be included5126 template_name: "Security/Secret-Detection.gitlab-ci.yml"5127 is expected to be valid5128 require default stages to be included5129 template_name: "Security/Secure-Binaries.gitlab-ci.yml"5130 is expected to be valid5131 require default stages to be included5132 that do not support autodevops5133 when DAST API template5134 with default stages5135 is expected not to be valid5136 with defined stages5137 is expected to be valid5138 require default stages to be included5139 when API Fuzzing template5140 with default stages5141 is expected not to be valid5142 with defined stages5143 is expected to be valid5144 require default stages to be included5145SentNotification5146 validation5147 note validity5148 when the project doesn't match the noteable's project5149 is invalid5150 when the project doesn't match the discussion project5151 is invalid5152 when the noteable project and discussion project match5153 is valid5154 .record5155 behaves like a successful sent notification5156 creates a new SentNotification5157 .record_note5158 for a discussion note5159 sets in_reply_to_discussion_id5160 behaves like a successful sent notification5161 creates a new SentNotification5162 for an individual note5163 sets in_reply_to_discussion_id5164 behaves like a successful sent notification5165 creates a new SentNotification5166 #unsubscribable?5167 behaves like an unsubscribable notification5168 for issue5169 is expected to be unsubscribable5170 behaves like an unsubscribable notification5171 for merge request5172 is expected to be unsubscribable5173 behaves like a non-unsubscribable notification5174 for a commit5175 is expected not to be unsubscribable5176 behaves like a non-unsubscribable notification5177 for a personal snippet5178 is expected not to be unsubscribable5179 behaves like a non-unsubscribable notification5180 for a project snippet5181 is expected not to be unsubscribable5182 #for_commit?5183 behaves like a non-commit notification5184 for a issue5185 is expected not to be for commit5186 behaves like a non-commit notification5187 for a merge request5188 is expected not to be for commit5189 behaves like a commit notification5190 for commit5191 is expected to be for commit5192 behaves like a non-commit notification5193 for a personal snippet5194 is expected not to be for commit5195 behaves like a non-commit notification5196 for a project snippet5197 is expected not to be for commit5198 #for_snippet?5199 behaves like a non-snippet notification5200 for a issue5201 is expected not to be for snippet5202 behaves like a non-snippet notification5203 for a merge request5204 is expected not to be for snippet5205 behaves like a non-snippet notification5206 for a commit5207 is expected not to be for snippet5208 behaves like a snippet notification5209 for personal snippet5210 is expected to be for snippet5211 behaves like a snippet notification5212 for project snippet5213 is expected to be for snippet5214 #create_reply5215 for issue5216 creates a comment on the issue5217 for issue comment5218 converts the comment to a discussion on the issue5219 for issue discussion5220 creates a reply on the discussion5221 for merge request5222 creates a comment on the merge_request5223 for merge request comment5224 converts the comment to a discussion on the merge request5225 for merge request diff discussion5226 creates a reply on the discussion5227 for merge request non-diff discussion5228 creates a reply on the discussion5229 for commit5230 creates a comment on the commit5231 for commit comment5232 creates a comment on the commit5233 for commit diff discussion5234 creates a reply on the discussion5235 for commit non-diff discussion5236 creates a reply on the discussion5237 #position=5238 doesn't accept non-hash JSON passed as a string5239 does accept a position hash as a string5240 does accept a hash5241RemoteMirror5242 URL validation5243 with a valid URL5244 is valid5245 with an invalid URL5246 is not valid5247 does not allow url with an invalid user5248 does not allow url pointing to localhost5249 does not allow url pointing to the local network5250 returns a nil safe_url5251 encrypting credentials5252 when setting URL for a first time5253 stores the URL without credentials5254 stores the credentials on a separate field5255 handles credentials with large content5256 when updating the URL5257 allows a new URL without credentials5258 allows a new URL with credentials5259 #bare_url5260 returns the URL without any credentials5261 returns an empty string when the URL is nil5262 #update_repository5263 performs update including options5264 #options_for_update5265 includes the `keep_divergent_refs` option5266 includes the `only_branches_matching` option5267 includes the `ssh_key` option5268 includes the `known_hosts` option5269 #safe_url5270 when URL contains credentials5271 masks the credentials5272 when URL does not contain credentials5273 shows the full URL5274 #mark_as_failed!5275 sets the update_status to failed5276 saves the sanitized error5277 notifications5278 notifies the project maintainers5279 #hard_retry!5280 transitions an invalid mirror to the to_retry state5281 #hard_fail!5282 transitions an invalid mirror to the failed state5283 when remote mirror gets destroyed5284 does not remove the remote5285 stuck mirrors5286 includes mirrors that were started over an hour ago5287 includes mirrors started over 3 hours ago for their first sync5288 #sync5289 with remote mirroring disabled5290 returns nil5291 with remote mirroring enabled5292 defaults to disabling only protected branches5293 with only protected branches enabled5294 when it did not update in the last minute5295 schedules a RepositoryUpdateRemoteMirrorWorker to run now5296 when it did update in the last minute5297 schedules a RepositoryUpdateRemoteMirrorWorker to run in the next minute5298 with only protected branches disabled5299 when it did not update in the last 5 minutes5300 schedules a RepositoryUpdateRemoteMirrorWorker to run now5301 when it did update within the last 5 minutes5302 schedules a RepositoryUpdateRemoteMirrorWorker to run in the next 5 minutes5303 when remote_mirror_no_delay is enabled5304 schedules a RepositoryUpdateRemoteMirrorWorker to run now5305 #url=5306 resets all the columns when URL changes5307 #updated_since?5308 when remote mirror does not have status failed5309 returns true when last update started after the timestamp5310 returns false when last update started before the timestamp5311 when remote mirror has status failed5312 returns false when last update started after the timestamp5313 no project5314 includes mirror with a project in pending_delete5315 #disabled?5316 when disabled5317 is expected to be truthy5318 when enabled5319 is expected to be falsy5320Mutations::MergeRequests::SetLabels5321 is expected to require graphql authorizations :update_merge_request5322 #resolve5323 behaves like permission level for merge request mutation is correctly verified5324 when the user is not a project member5325 behaves like when the user does not have access to the resource5326 raises an error5327 even if assigned to the merge request5328 does not modify merge request5329 even if reviewer of the merge request5330 raises an error5331 even if author of the merge request5332 raises an error5333 when the user is a project member5334 with guest role5335 behaves like when the user does not have access to the resource5336 raises an error5337 even if assigned to the merge request5338 does not modify merge request5339 even if reviewer of the merge request5340 raises an error5341 even if author of the merge request5342 raises an error5343 with reporter role5344 behaves like when the user does not have access to the resource5345 raises an error5346 even if assigned to the merge request5347 does not modify merge request5348 even if reviewer of the merge request5349 raises an error5350 even if author of the merge request5351 raises an error5352 when the user can update the merge request5353 sets the labels, removing all others5354 returns errors merge request could not be updated5355 when passing an empty array5356 removes all labels5357 when passing operation_mode as APPEND5358 sets the labels, without removing others5359 when passing operation_mode as REMOVE5360 removes the labels, without removing others5361WebHook5362 associations5363 is expected to have many web_hook_logs5364 validations5365 is expected to validate that :url cannot be empty/falsy5366 only consider these branch filter strategies are valid5367 url_variables5368 is expected to allow :url_variables to be ‹{}›5369 is expected to allow :url_variables to be ‹{"foo" => "bar"}›5370 is expected to allow :url_variables to be ‹{"FOO" => "bar"}›5371 is expected to allow :url_variables to be ‹{"MY_TOKEN" => "bar"}›5372 is expected to allow :url_variables to be ‹{"foo2" => "bar"}›5373 is expected to allow :url_variables to be ‹{"x" => "y"}›5374 is expected to allow :url_variables to be ‹{"x" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›5375 is expected to allow :url_variables to be ‹{"foo" => "bar", "bar" => "baz"}›5376 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"}›5377 is expected to allow :url_variables to be ‹{"MY-TOKEN" => "bar"}›5378 is expected to allow :url_variables to be ‹{"my_secr3t-token" => "bar"}›5379 is expected to allow :url_variables to be ‹{"x-y-z" => "bar"}›5380 is expected to allow :url_variables to be ‹{"x_y_z" => "bar"}›5381 is expected to allow :url_variables to be ‹{"f.o.o" => "bar"}›5382 is expected not to allow :url_variables to be ‹[]›5383 is expected not to allow :url_variables to be ‹{"foo" => 1}›5384 is expected not to allow :url_variables to be ‹{"bar" => :baz}›5385 is expected not to allow :url_variables to be ‹{"bar" => nil}›5386 is expected not to allow :url_variables to be ‹{"foo" => ""}›5387 is expected not to allow :url_variables to be ‹{"foo" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›5388 is expected not to allow :url_variables to be ‹{"has spaces" => "foo"}›5389 is expected not to allow :url_variables to be ‹{"" => "foo"}›5390 is expected not to allow :url_variables to be ‹{"1foo" => "foo"}›5391 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"}›5392 is expected not to allow :url_variables to be ‹{"MY--TOKEN" => "foo"}›5393 is expected not to allow :url_variables to be ‹{"MY__SECRET" => "foo"}›5394 is expected not to allow :url_variables to be ‹{"x-_y" => "foo"}›5395 is expected not to allow :url_variables to be ‹{"x..y" => "foo"}›5396 url5397 is expected to allow :url to be ‹"http://example.com"›5398 is expected to allow :url to be ‹"https://example.com"›5399 is expected to allow :url to be ‹" https://example.com "›5400 is expected to allow :url to be ‹"http://test.com/api"›5401 is expected to allow :url to be ‹"http://test.com/api?key=abc"›5402 is expected to allow :url to be ‹"http://test.com/api?key=abc&type=def"›5403 is expected not to allow :url to be ‹"example.com"›5404 is expected not to allow :url to be ‹"ftp://example.com"›5405 is expected not to allow :url to be ‹"herp-and-derp"›5406 strips :url before saving it5407 when url is local5408 is expected not to allow :url to be ‹"http://localhost:9000"›5409 is valid if application settings allow local requests from web hooks5410 when there are URL variables5411 is expected to allow :url to be ‹"http://example.com"›5412 is expected to allow :url to be ‹"http://example.com/{one}/{two}"›5413 is expected to allow :url to be ‹"http://example.com/{one}"›5414 is expected to allow :url to be ‹"http://example.com/{two}"›5415 is expected to allow :url to be ‹"http://user:s3cret@example.com/{two}"›5416 is expected to allow :url to be ‹"http://{one}:{two}@example.com"›5417 is expected to allow :url to be ‹"http://{one}"›5418 is expected to allow :url to be ‹"{url}"›5419 is expected not to allow :url to be ‹"http://example.com/{one}/{two}/{three}"›5420 is expected not to allow :url to be ‹"http://example.com/{foo}"›5421 is expected not to allow :url to be ‹"http:{user}:{pwd}//example.com/{foo}"›5422 mentions all missing variable names5423 token5424 is expected to allow :token to be ‹"foobar"›5425 is expected not to allow :token to be ‹"foo\nbar"› or ‹"foo\r\nbar"›5426 push_events_branch_filter5427 with "all branches" strategy5428 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 ‹""›5429 with "wildcard" strategy5430 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good_branch_name("›, or ‹""›5431 is expected not to allow :push_events_branch_filter to be ‹"bad branch name"›, ‹"bad~branchname"›, or ‹"bad_branch_name["›5432 gets rid of whitespace5433 stores whitespace only as empty5434 with "regex" strategy5435 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branch~name"›, or ‹""›5436 is expected not to allow :push_events_branch_filter to be ‹"bad_branch_name("› or ‹"bad_branch_name["›5437 before_validation :reset_token5438 resets token if url changed5439 does not reset token if new url is set together with the same token5440 does not reset token if new url is set together with a new token5441 before_validation :reset_url_variables5442 resets url variables if url changed5443 resets url variables if url is changed but url variables stayed the same5444 does not reset url variables if both url and url variables are changed5445 encrypted attributes5446 is expected to contain exactly :token, :url, and :url_variables5447 execute5448 #execute5449 passes force: false to the web hook service by default5450 passes force: true to the web hook service if required5451 #async_execute5452 does not async execute non-executable hooks5453 #destroy5454 does not cascade to web_hook_logs5455 #next_backoff5456 when there was no last backoff5457 is 10 minutes5458 when we have backed off once5459 is twice the initial value5460 when we have backed off 3 times5461 grows exponentially5462 when the previous backoff was large5463 does not exceed the max backoff value5464 #rate_limited?5465 is false when hook has not been rate limited5466 is true when hook has been rate limited5467 #rate_limit5468 returns the hook rate limit5469 #to_json5470 does not error5471 does not contain binary attributes5472 #interpolated_url5473 is not vulnerable to malicious input5474 when the hook URL does not contain variables5475 is expected to have attributes {:interpolated_url => "http://example.com"}5476 when the hook URL contains variables5477 is expected to have attributes {:interpolated_url => "http://example.com/abc/resource?token=xyz"}5478 when a variable is missing5479 raises an error5480 when the URL appears to include percent formatting5481 succeeds, interpolates correctly5482 #update_last_failure5483 is a method of this class5484 #masked_token5485 is expected to be nil5486 with a token5487 is expected to eq "************"5488 #backoff!5489 when we have not backed off before5490 increments the recent_failures count5491 when the recent failure value is the max value of a smallint5492 reduces to MAX_FAILURES5493 when the recent failure value is MAX_FAILURES5494 does not change recent_failures5495 when we have exhausted the grace period5496 sets disabled_until to the next backoff5497 increments the backoff count5498 when we have backed off MAX_FAILURES times5499 does not let the backoff count exceed the maximum failure count5500 does not change disabled_until5501 changes disabled_until when it has elapsed5502 #failed!5503 increments the failure count5504 does not update the hook if the the failure count exceeds the maximum value5505 when the recent failure value is the max value of a smallint5506 does not change recent_failures5507Gitlab::Ci::Trace5508 associations5509 is expected to respond to #job5510 when trace is migrated to object storage5511 reloads the trace in case of a chunk error5512 when live trace feature is disabled5513 behaves like trace with disabled live trace feature5514 behaves like common trace features5515 #html5516 returns formatted html5517 returns last line of formatted html5518 #raw5519 returns raw output5520 returns last line of raw output5521 #read5522 gitlab_ci_archived_trace_consistent_reads feature flag enabled5523 calls ::Ci::Build.sticking.unstick_or_continue_sticking5524 gitlab_ci_archived_trace_consistent_reads feature flag disabled5525 does not call ::Ci::Build.sticking.unstick_or_continue_sticking5526 #extract_coverage5527 matching coverage5528 returns valid coverage5529 no coverage5530 returs nil5531 #extract_sections5532 no sections5533 returs []5534 multiple sections available5535 returns valid sections5536 logs contains "section_start"5537 returns only one section5538 missing section_end5539 returns no sections5540 missing section_start5541 returns no sections5542 inverted section_start section_end5543 returns no sections5544 #write5545 when arhicved trace does not exist yet5546 does not raise an error5547 when arhicved trace already exists5548 raises an error5549 #set5550 returns trace5551 overwrite trace5552 returns new trace5553 runners token5554 hides token5555 hides build token5556 hides token5557 #append5558 returns correct trace5559 tries to append trace at different offset5560 fails with append5561 runners token5562 hides token5563 build token5564 hides token5565 #archive!5566 when live trace chunks exists5567 has job trace_chunks5568 gitlab_ci_archived_trace_consistent_reads feature flag enabled5569 calls ::Ci::Build.sticking.stick5570 gitlab_ci_archived_trace_consistent_reads feature flag disabled5571 does not call ::Ci::Build.sticking.stick5572 when build status is success5573 does not have an archived trace yet5574 when archives5575 has an archived trace5576 when another process has already been archiving5577 blocks concurrent archiving5578 #read5579 when trace artifact exists5580 behaves like read successfully with IO5581 yields with source5582 when current_path (with project_id) exists5583 behaves like read successfully with IO5584 yields with source5585 when no sources exist5586 behaves like failed to read5587 yields without source5588 trace handling5589 trace does not exist5590 is expected to equal false5591 when trace artifact exists5592 is expected to be truthy5593 when the trace artifact has been erased5594 is expected to be falsy5595 removes associations5596 new trace path is used5597 trace exist5598 can be erased5599 #archive!5600 when job does not have trace artifact5601 when trace file stored in default path5602 behaves like archive trace file5603 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"5604 when failed to create clone file5605 behaves like source trace file stays intact5606 is expected to be truthy5607 when failed to create job artifact record5608 behaves like source trace file stays intact5609 is expected to be truthy5610 when job has trace artifact5611 does not archive5612 when job is not finished yet5613 does not archive5614 #erase!5615 when it is a live trace5616 when trace is stored in file storage5617 is expected not to be nil5618 removes trace5619 when it is an archived trace5620 has trace at first5621 removes trace5622 when live trace feature is enabled5623 behaves like trace with enabled live trace feature5624 behaves like common trace features5625 #html5626 returns formatted html5627 returns last line of formatted html5628 #raw5629 returns raw output5630 returns last line of raw output5631 #read5632 gitlab_ci_archived_trace_consistent_reads feature flag enabled5633 calls ::Ci::Build.sticking.unstick_or_continue_sticking5634 gitlab_ci_archived_trace_consistent_reads feature flag disabled5635 does not call ::Ci::Build.sticking.unstick_or_continue_sticking5636 #extract_coverage5637 matching coverage5638 returns valid coverage5639 no coverage5640 returs nil5641 #extract_sections5642 no sections5643 returs []5644 multiple sections available5645 returns valid sections5646 logs contains "section_start"5647 returns only one section5648 missing section_end5649 returns no sections5650 missing section_start5651 returns no sections5652 inverted section_start section_end5653 returns no sections5654 #write5655 when arhicved trace does not exist yet5656 does not raise an error5657 when arhicved trace already exists5658 raises an error5659 #set5660 returns trace5661 overwrite trace5662 returns new trace5663 runners token5664 hides token5665 hides build token5666 hides token5667 #append5668 returns correct trace5669 tries to append trace at different offset5670 fails with append5671 runners token5672 hides token5673 build token5674 hides token5675 #archive!5676 when live trace chunks exists5677 has job trace_chunks5678 gitlab_ci_archived_trace_consistent_reads feature flag enabled5679 calls ::Ci::Build.sticking.stick5680 gitlab_ci_archived_trace_consistent_reads feature flag disabled5681 does not call ::Ci::Build.sticking.stick5682 when build status is success5683 does not have an archived trace yet5684 when archives5685 has an archived trace5686 when another process has already been archiving5687 blocks concurrent archiving5688 #read5689 when trace artifact exists5690 behaves like read successfully with IO5691 yields with source5692 when live trace exists5693 behaves like read successfully with ChunkedIO5694 yields with source5695 when no sources exist5696 behaves like failed to read5697 yields without source5698 trace handling5699 trace does not exist5700 is expected to equal false5701 when trace artifact exists5702 is expected to be truthy5703 when the trace artifact has been erased5704 is expected to be falsy5705 removes associations5706 stored in live trace5707 trace exist5708 can be erased5709 returns live trace data5710 #archived?5711 when trace does not exist5712 is expected to be falsy5713 when archived trace exists5714 is truthy5715 when archived trace record exists but file is not stored5716 is falsy5717 when live trace exists5718 is expected to be falsy5719 #live?5720 when trace does not exist5721 is expected to be falsy5722 when archived trace exists5723 is expected to be falsy5724 when live trace exists5725 is expected to be truthy5726 #archive!5727 when job does not have trace artifact5728 when trace is stored in ChunkedIO5729 behaves like archive trace file in ChunkedIO5730 is expected to eq "f0ec4d8149e55ace7117d95f408160f8c4844b3ad76ee68b0d7e35989a44459e"5731 when failed to create clone file5732 behaves like a pre-commit error5733 does not save the trace artifact5734 behaves like source trace in ChunkedIO stays intact5735 is expected to eq "BUILD TRACE"5736 when failed to create job artifact record5737 behaves like a pre-commit error5738 does not save the trace artifact5739 behaves like source trace in ChunkedIO stays intact5740 is expected to eq "BUILD TRACE"5741 when storing the file raises an error5742 behaves like a post-commit error5743 saves the trace artifact but not the file5744 behaves like source trace in ChunkedIO stays intact5745 is expected to eq "BUILD TRACE"5746 when job has trace artifact5747 does not archive5748 when live trace chunks still exist5749 removes the traces5750 when job is not finished yet5751 does not archive5752 #erase!5753 when it is a live trace5754 is expected not to be nil5755 removes trace5756 when it is an archived trace5757 has trace at first5758 removes trace5759 #update_interval5760 it is not being watched5761 is expected to eq 60 seconds5762 it is being watched5763 returns 3 seconds5764 #being_watched!5765 sets gitlab:ci:trace:<job.id>:watched in redis5766 updates the expiry of gitlab:ci:trace:<job.id>:watched in redis5767 #being_watched?5768 gitlab:ci:trace:<job.id>:watched in redis is set5769 returns true5770 gitlab:ci:trace:<job.id>:watched in redis is not set5771 returns false5772 #lock5773 acquires an exclusive lease on the trace5774 #can_attempt_archival_now?5775 creates the record and returns true5776 #increment_archival_attempts!5777 creates the record and increments its value5778Gitlab::ImportExport::Project::ObjectBuilder5779 request store is not active5780 ignore cache initialize5781 request store is active5782 initialize cache in memory5783 cache object when first time find the object5784 read from cache when object has been cached5785 labels5786 finds the existing group label5787 finds the existing group label in root ancestor5788 creates a new project label5789 milestones5790 finds the existing group milestone5791 finds the existing group milestone in root ancestor5792 creates a new milestone5793 with clashing iid5794 creates milestone and claims iid for the new milestone5795 merge_request5796 finds the existing merge_request5797 creates a new merge_request5798 merge request diff commit users5799 finds the existing user5800 creates a new user5801 merge request diff commits5802 when the "committer" object is present5803 uses this object as the committer5804 when the "committer" object is missing5805 creates one from the committer name and Email5806 when the "commit_author" object is present5807 uses this object as the author5808 when the "commit_author" object is missing5809 creates one from the author name and Email5810 #find_or_create_diff_commit_user5811 caches the results5812 when the user already exists5813 returns the existing user5814 when the user does not exist5815 creates the user5816Members::Groups::CreatorService5817 .access_levels5818 returns Gitlab::Access.options_with_owner5819 behaves like owner management5820 .cannot_manage_owners?5821 when maintainer5822 cannot manage owners5823 when owner5824 can manage owners5825 .add_members5826 behaves like bulk member creation5827 returns Member objects5828 returns an empty array5829 supports different formats5830 with the same user sent more than once by user and by email5831 with the same user sent more than once by user id and by email5832 when current user does not have permission5833 does not succeed5834 with de-duplication5835 has the same user by id and user5836 has the same user sent more than once5837 when a member already exists5838 has the same user sent more than once with the member already existing5839 supports existing users as expected with user_ids passed5840 supports existing users as expected without user ids passed5841 when `tasks_to_be_done` and `tasks_project_id` are passed5842 creates a member_task with the correct attributes5843 with an already existing member5844 does not update tasks to be done if tasks already exist5845 adds tasks to be done if they do not exist5846 .add_member5847 behaves like member creation5848 returns a Member object5849 sets members.expires_at to the given expires_at5850 accepts the :guest symbol as access level5851 accepts the 10 integer as access level5852 accepts the :reporter symbol as access level5853 accepts the 20 integer as access level5854 accepts the :developer symbol as access level5855 accepts the 30 integer as access level5856 accepts the :maintainer symbol as access level5857 accepts the 40 integer as access level5858 accepts the :owner symbol as access level5859 accepts the 50 integer as access level5860 when adding a project_bot5861 when project_bot is already a member5862 does not update the member5863 when project_bot is not already a member5864 adds the member5865 when admin mode is enabled5866 sets members.created_by to the given admin current_user5867 when admin mode is disabled5868 rejects setting members.created_by to the given admin current_user5869 with no current_user5870 when called with a known user id5871 adds the user as a member5872 when called with an unknown user id5873 does not add the user as a member5874 when called with a user object5875 adds the user as a member5876 when called with a requester user object5877 adds the requester as a member5878 when called with a known user email5879 adds the user as a member5880 when called with an unknown user email5881 creates an invited member5882 when called with an unknown user email starting with a number5883 creates an invited member5884 when current_user can update member5885 creates the member5886 when called with a requester user object5887 adds the requester as a member5888 when current_user cannot update member5889 does not create the member5890 when called with a requester user object5891 does not destroy the requester5892 when member already exists5893 when member is a user5894 with no current_user5895 updates the member5896 when current_user can update member5897 updates the member5898 when current_user cannot update member5899 does not update the member5900 when member is an invite by email5901 updates the member for that email5902 authorized projects update5903 schedules a single project authorization update job when called multiple times5904Mutations::MergeRequests::Accept5905 #resolve5906 merges the merge request5907 rejects the mutation if the SHA is a mismatch5908 respects the merge commit message5909 respects the squash flag5910 respects the squash_commit_message argument5911 respects the should_remove_source_branch argument when true5912 respects the should_remove_source_branch argument when false5913 rejects unmergeable MRs5914 rejects merges when we cannot validate the hooks5915 rejects merges when the merge service returns an error5916 rejects merges when the merge service raises merge error5917 can use the MERGE_WHEN_PIPELINE_SUCCEEDS strategy5918Projects::CleanupService5919 .enqueue5920 makes the repository read-only5921 sets the bfg_object_map of the project5922 enqueues a RepositoryCleanupWorker5923 returns success5924 returns an error if making the repository read-only fails5925 returns an error if updating the project fails5926 .cleanup_after5927 sets the repository read-write5928 removes the BFG object map5929 #execute5930 runs the apply_bfg_object_map_stream gitaly RPC5931 runs garbage collection on the repository5932 clears the repository cache5933 removes the object map file5934 makes the repository read-write again5935 raises an error if no object map can be found5936 with a tainted merge request diff5937 removes the tainted commit from the database5938 ignores non-commit responses from Gitaly5939 with a tainted diff note5940 removes the tainted commit from the database5941 removes the highlight cache from redis5942 ignores non-commit responses from Gitaly5943Gitlab::Database::Migrations::TestBatchedBackgroundRunner5944 main database5945 running a real background migration5946 runs sampled jobs from the batched background migration5947 uses the correct params to instrument the background migration5948 uses the filtering clause from the migration5949 exports migration details to a file5950 with jobs to run5951 samples jobs5952 samples 1 job with a batch size higher than the table size5953 with multiple jobs to run5954 runs all pending jobs based on the last migration id5955 choosing uniform batches to run5956 #uniform_fractions5957 generates evenly distributed sequences of fractions5958 ci database5959 running a real background migration5960 runs sampled jobs from the batched background migration5961 uses the correct params to instrument the background migration5962 uses the filtering clause from the migration5963 exports migration details to a file5964 with jobs to run5965 samples jobs5966 samples 1 job with a batch size higher than the table size5967 with multiple jobs to run5968 runs all pending jobs based on the last migration id5969 choosing uniform batches to run5970 #uniform_fractions5971 generates evenly distributed sequences of fractions5972Integrations::ChatMessage::PipelineMessage5973 returns an empty pretext5974 returns the pipeline summary in the activity's title5975 returns pipeline name5976 returns a link to the project in the activity's subtitle5977 returns the build duration in the activity's text property5978 returns the user's avatar image URL in the activity's image property5979 returns the pipeline summary as the attachment's fallback property5980 returns 'good' as the attachment's color property5981 returns the committer's name and username as the attachment's author_name property5982 returns the committer's avatar URL as the attachment's author_icon property5983 returns the committer's GitLab profile URL as the attachment's author_link property5984 returns the pipeline ID, status, and duration as the attachment's title property5985 returns the pipeline URL as the attachment's title_link property5986 returns three attachment fields5987 returns the commit message as the attachment's second field property5988 returns the ref name and link as the attachment's second field property5989 returns the project's name as the attachment's footer property5990 returns the project's avatar URL as the attachment's footer_icon property5991 returns the pipeline's timestamp as the attachment's ts property5992 behaves like Integrations::ChatMessage5993 when input contains link markup5994 strips all link markup characters5995 when the pipeline failed5996 returns the summary with a 'failed' status5997 when the pipeline passed with warnings5998 returns the summary with a 'passed with warnings' status5999 when no user is provided because the pipeline was triggered by the API6000 returns the summary with 'API' as the username6001 when the user does not have an avatar6002 returns an empty string in the activity's image property6003 when the pipeline failed6004 returns 'danger' as the attachment's color property6005 when the pipeline passed with warnings6006 returns 'warning' as the attachment's color property6007 when no user is provided because the pipeline was triggered by the API6008 returns the committer's name and username as the attachment's author_name property6009 returns nil as the attachment's author_icon property6010 returns nil as the attachment's author_link property6011 when a job in the pipeline fails6012 returns five attachment fields6013 returns the stage name and link to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property6014 returns the job name and link as the attachment's fourth field property6015 when lots of jobs across multiple stages fail6016 returns the stage names and links to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property6017 returns the job names and links as the attachment's fourth field property6018 when jobs succeed on retries6019 do not return a job which succeeded on retry6020 when jobs failed even on retries6021 returns only first instance of the failed job6022 when the CI config file contains a YAML error6023 returns four attachment fields6024 returns the YAML error deatils as the attachment's third field property6025 when rendering markdown6026 returns the pipeline summary as the attachments in markdown format6027StubFeatureFlags6028 #stub_feature_flags6029 subsquent run changes state6030 when checking global state6031 feature_actors: false, expected_result: false6032 is expected to eq false6033 is expected not to eq false6034 default_enabled_if_undefined does not impact feature state6035 is expected to eq false6036 is expected not to eq false6037 feature_actors: true, expected_result: true6038 is expected to eq true6039 is expected not to eq true6040 default_enabled_if_undefined does not impact feature state6041 is expected to eq true6042 is expected not to eq true6043 feature_actors: :A, expected_result: false6044 is expected to eq false6045 is expected not to eq false6046 default_enabled_if_undefined does not impact feature state6047 is expected to eq false6048 is expected not to eq false6049 feature_actors: [:A], expected_result: false6050 is expected to eq false6051 is expected not to eq false6052 default_enabled_if_undefined does not impact feature state6053 is expected to eq false6054 is expected not to eq false6055 feature_actors: [:A, :B], expected_result: false6056 is expected to eq false6057 is expected not to eq false6058 default_enabled_if_undefined does not impact feature state6059 is expected to eq false6060 is expected not to eq false6061 when checking scoped state6062 feature_actors: false, tested_actor: nil, expected_result: false6063 is expected to eq false6064 is expected not to eq false6065 default_enabled_if_undefined does not impact feature state6066 is expected to eq false6067 is expected not to eq false6068 feature_actors: true, tested_actor: nil, expected_result: true6069 is expected to eq true6070 is expected not to eq true6071 default_enabled_if_undefined does not impact feature state6072 is expected to eq true6073 is expected not to eq true6074 feature_actors: false, tested_actor: :A, expected_result: false6075 is expected to eq false6076 is expected not to eq false6077 default_enabled_if_undefined does not impact feature state6078 is expected to eq false6079 is expected not to eq false6080 feature_actors: true, tested_actor: :A, expected_result: true6081 is expected to eq true6082 is expected not to eq true6083 default_enabled_if_undefined does not impact feature state6084 is expected to eq true6085 is expected not to eq true6086 feature_actors: :A, tested_actor: nil, expected_result: false6087 is expected to eq false6088 is expected not to eq false6089 default_enabled_if_undefined does not impact feature state6090 is expected to eq false6091 is expected not to eq false6092 feature_actors: :A, tested_actor: :A, expected_result: true6093 is expected to eq true6094 is expected not to eq true6095 default_enabled_if_undefined does not impact feature state6096 is expected to eq true6097 is expected not to eq true6098 feature_actors: :A, tested_actor: :B, expected_result: false6099 is expected to eq false6100 is expected not to eq false6101 default_enabled_if_undefined does not impact feature state6102 is expected to eq false6103 is expected not to eq false6104 feature_actors: [:A], tested_actor: nil, expected_result: false6105 is expected to eq false6106 is expected not to eq false6107 default_enabled_if_undefined does not impact feature state6108 is expected to eq false6109 is expected not to eq false6110 feature_actors: [:A], tested_actor: :A, expected_result: true6111 is expected to eq true6112 is expected not to eq true6113 default_enabled_if_undefined does not impact feature state6114 is expected to eq true6115 is expected not to eq true6116 feature_actors: [:A], tested_actor: :B, expected_result: false6117 is expected to eq false6118 is expected not to eq false6119 default_enabled_if_undefined does not impact feature state6120 is expected to eq false6121 is expected not to eq false6122 feature_actors: [:A, :B], tested_actor: nil, expected_result: false6123 is expected to eq false6124 is expected not to eq false6125 default_enabled_if_undefined does not impact feature state6126 is expected to eq false6127 is expected not to eq false6128 feature_actors: [:A, :B], tested_actor: :A, expected_result: true6129 is expected to eq true6130 is expected not to eq true6131 default_enabled_if_undefined does not impact feature state6132 is expected to eq true6133 is expected not to eq true6134 feature_actors: [:A, :B], tested_actor: :B, expected_result: true6135 is expected to eq true6136 is expected not to eq true6137 default_enabled_if_undefined does not impact feature state6138 is expected to eq true6139 is expected not to eq true6140 type handling6141 raises error6142 feature_actors: "string"6143 is expected to raise ArgumentError with message matching /accepts only/6144 feature_actors: 16145 is expected to raise ArgumentError with message matching /accepts only/6146 feature_actors: 1.06147 is expected to raise ArgumentError with message matching /accepts only/6148 feature_actors: #<Object:0x00007f7adb8c9378>6149 is expected to raise ArgumentError with message matching /accepts only/6150 does not raise error6151 feature_actors: true6152 is expected not to raise Exception6153 feature_actors: false6154 is expected not to raise Exception6155 feature_actors: nil6156 is expected not to raise Exception6157 feature_actors: #<StubFeatureFlags::StubFeatureGate:0x00007f7adb7d03b8 @flipper_id=100>6158 is expected not to raise Exception6159 feature_actors: #<User id: @>6160 is expected not to raise Exception6161 stub timing6162 let_it_be variable6163 is expected to eq true6164 before_all variable6165 is expected to eq true6166 before(:all) variable6167 is expected to eq true6168 with stub_feature_flags meta6169 as true6170 is expected to eq true6171 as false6172 is expected to eq false6173ContainerRegistry::GitlabApiClient6174 #supports_gitlab_api?6175 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6176 returns the expected result6177 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true6178 returns the expected result6179 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6180 returns the expected result6181 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6182 returns the expected result6183 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6184 returns the expected result6185 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false6186 returns the expected result6187 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6188 returns the expected result6189 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6190 returns the expected result6191 with 401 response6192 is expected to be truthy6193 #pre_import_repository6194 status_code: 200, expected_result: :already_imported6195 is expected to eq :already_imported6196 status_code: 202, expected_result: :ok6197 is expected to eq :ok6198 status_code: 400, expected_result: :bad_request6199 is expected to eq :bad_request6200 status_code: 401, expected_result: :unauthorized6201 is expected to eq :unauthorized6202 status_code: 404, expected_result: :not_found6203 is expected to eq :not_found6204 status_code: 409, expected_result: :already_being_imported6205 is expected to eq :already_being_imported6206 status_code: 418, expected_result: :error6207 is expected to eq :error6208 status_code: 424, expected_result: :pre_import_failed6209 is expected to eq :pre_import_failed6210 status_code: 425, expected_result: :already_being_imported6211 is expected to eq :already_being_imported6212 status_code: 429, expected_result: :too_many_imports6213 is expected to eq :too_many_imports6214 #import_repository6215 status_code: 200, expected_result: :already_imported6216 is expected to eq :already_imported6217 status_code: 202, expected_result: :ok6218 is expected to eq :ok6219 status_code: 400, expected_result: :bad_request6220 is expected to eq :bad_request6221 status_code: 401, expected_result: :unauthorized6222 is expected to eq :unauthorized6223 status_code: 404, expected_result: :not_found6224 is expected to eq :not_found6225 status_code: 409, expected_result: :already_being_imported6226 is expected to eq :already_being_imported6227 status_code: 418, expected_result: :error6228 is expected to eq :error6229 status_code: 424, expected_result: :pre_import_failed6230 is expected to eq :pre_import_failed6231 status_code: 425, expected_result: :already_being_imported6232 is expected to eq :already_being_imported6233 status_code: 429, expected_result: :too_many_imports6234 is expected to eq :too_many_imports6235 #cancel_repository_import6236 status_code: 200, expected_result: :already_imported6237 is expected to eq {:migration_state=>nil, :status=>:already_imported}6238 status_code: 202, expected_result: :ok6239 is expected to eq {:migration_state=>nil, :status=>:ok}6240 status_code: 400, expected_result: :bad_request6241 is expected to eq {:migration_state=>nil, :status=>:bad_request}6242 status_code: 401, expected_result: :unauthorized6243 is expected to eq {:migration_state=>nil, :status=>:unauthorized}6244 status_code: 404, expected_result: :not_found6245 is expected to eq {:migration_state=>nil, :status=>:not_found}6246 status_code: 409, expected_result: :already_being_imported6247 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}6248 status_code: 418, expected_result: :error6249 is expected to eq {:migration_state=>nil, :status=>:error}6250 status_code: 424, expected_result: :pre_import_failed6251 is expected to eq {:migration_state=>nil, :status=>:pre_import_failed}6252 status_code: 425, expected_result: :already_being_imported6253 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}6254 status_code: 429, expected_result: :too_many_imports6255 is expected to eq {:migration_state=>nil, :status=>:too_many_imports}6256 bad request6257 is expected to eq {:migration_state=>"this_is_a_test", :status=>:bad_request}6258 force cancel6259 is expected to eq {:migration_state=>nil, :status=>:ok}6260 #import_status6261 with successful response6262 with a status6263 is expected to eq "this_is_a_test"6264 with no status6265 is expected to eq "error"6266 with non successful response6267 is expected to eq "pre_import_failed"6268 #repository_details6269 with sizing self6270 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}6271 with sizing self_with_descendants6272 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}6273 with sizing6274 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}6275 with non successful response6276 is expected to eq {}6277 #tags6278 with valid parameters6279 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-03-30T11:48:32.227Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6280 with a response with a link header6281 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}]}6282 with a large page size set6283 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-03-30T11:48:32.317Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6284 with a last parameter set6285 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-03-30T11:48:32.361Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}6286 with non successful response6287 logs an error and returns an empty hash6288 #sub_repositories_with_tag6289 with valid parameters6290 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"}]}6291 with a response with a link header6292 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"}]}6293 with a large page size set6294 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"}]}6295 with a last parameter set6296 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"}]}6297 with non successful response6298 logs an error and returns an empty hash6299 .supports_gitlab_api?6300 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6301 returns the expected result6302 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true6303 returns the expected result6304 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true6305 returns the expected result6306 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false6307 returns the expected result6308 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6309 returns the expected result6310 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true6311 returns the expected result6312 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6313 returns the expected result6314 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false6315 returns the expected result6316 with the registry disabled6317 returns false6318 with a blank registry url6319 returns false6320 .deduplicated_size6321 with successful response6322 is expected to eq 5556323 with unsuccessful response6324 is expected to eq nil6325 with the registry disabled6326 is expected to eq nil6327 with a nil path6328 is expected to eq nil6329 with uppercase path6330 is expected to eq 5556331 .one_project_with_container_registry_tag6332 with successful response6333 behaves like fetching the project from container repository and path6334 fetches the project from the given path details6335 returns nil when path is invalid6336 returns nil when there is no container_repository matching the path6337 with unsuccessful response6338 is expected to eq nil6339 with uppercase path6340 behaves like fetching the project from container repository and path6341 fetches the project from the given path details6342 returns nil when path is invalid6343 returns nil when there is no container_repository matching the path6344AuthorizedProjectUpdate::FindRecordsDueForRefreshService6345 #execute6346 callbacks6347 incorrect_auth_found_callback callback6348 is called6349 missing_auth_found_callback callback6350 is called6351 finding project authorizations due for refresh6352 when there are changes to be made6353 finds projects authorizations that needs to be refreshed6354 finds entries with wrong access levels6355 when there are no changes to be made6356 returns empty arrays6357 #needs_refresh?6358 when there are records due for either removal or addition6359 when there are both removals and additions to be made6360 is expected to eq true6361 when there are no removals, but there are additions to be made6362 is expected to eq true6363 when there are no additions, but there are removals to be made6364 is expected to eq true6365 when there are no additions or removals to be made6366 is expected to eq false6367 #fresh_access_levels_per_project6368 returns a Hash6369 sets the keys to the project IDs6370 sets the values to the access levels6371 personal projects6372 includes the project with the right access level6373 projects the user is a member of6374 includes the project with the right access level6375 projects of groups the user is a member of6376 includes the project with the right access level6377 projects of subgroups of groups the user is a member of6378 includes the project with the right access level6379 projects shared with groups the user is a member of6380 includes the project with the right access level6381 projects shared with subgroups of groups the user is a member of6382 includes the project with the right access level6383 #current_authorizations_per_project6384 returns a Hash6385 sets the keys to the project IDs6386 sets the values to the project authorization rows6387 #current_authorizations6388 without authorizations6389 returns an empty list6390 with an authorization6391 returns the currently authorized projects6392 includes the project ID for every row6393 includes the access level for every row6394 #fresh_authorizations6395 returns the new authorized projects6396 returns the highest access level6397 every returned row6398 includes the project ID6399 includes the access level6400CustomerRelations::Contact6401 associations6402 is expected to belong to group required: false6403 is expected to belong to organization optional: true6404 is expected to have many issue_contacts6405 is expected to have many issues6406 validations6407 is expected to validate that :group cannot be empty/falsy6408 is expected to validate that :first_name cannot be empty/falsy6409 is expected to validate that :last_name cannot be empty/falsy6410 is expected to validate that the length of :phone is at most 326411 is expected to validate that the length of :first_name is at most 2556412 is expected to validate that the length of :last_name is at most 2556413 is expected to validate that the length of :email is at most 2556414 is expected to validate that the length of :description is at most 10246415 is expected to validate that :email is case-insensitively unique within the scope of :group_id6416 behaves like an object with RFC3696 compliant email-formatted attributes6417 specifically its :email attribute6418 with a value of 'info@example.com'6419 is valid6420 with a value of 'info+test@example.com'6421 is valid6422 with a value of 'o'reilly@example.com'6423 is valid6424 with a value of 'foobar'6425 is invalid6426 with a value of 'test@test@example.com'6427 is invalid6428 with a value of 'test.test.@example.com'6429 is invalid6430 with a value of '.test.test@example.com'6431 is invalid6432 with a value of 'mailto:test@example.com'6433 is invalid6434 with a value of 'lol!'+=?><#$%^&*()@gmail.com'6435 is invalid6436 .reference_prefix6437 is expected to eq "[contact:"6438 .reference_prefix_quoted6439 is expected to eq "[\"contact:"6440 .reference_postfix6441 is expected to eq "]"6442 #root_group6443 when root group6444 is expected to be valid6445 when subgroup6446 is expected to be invalid6447 #before_validation6448 strips leading and trailing whitespace6449 #self.find_ids_by_emails6450 returns ids of contacts from group6451 does not return ids of contacts from other groups6452 raises ArgumentError when called with too many emails6453 finds contacts regardless of email casing6454 #self.exists_for_group?6455 with no contacts in group6456 returns false6457 with contacts in group6458 returns true6459 #self.move_to_root_group6460 moves contacts with unique emails and deletes the rest6461 updates issue_contact.contact_id for dupes and leaves the rest untouched6462 .search6463 when search term is empty6464 returns all group contacts6465 when search term is not empty6466 when searching for first name ignoring casing6467 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 1577, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]>6468 when searching for last name ignoring casing6469 is expected to contain exactly #<CustomerRelations::Contact id: 21, group_id: 1577, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>6470 when searching for email6471 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 1577, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "ABC", last_name: "DEF", email: "ghi@test.com", description: [FILTERED]>6472 when searching description ignoring casing6473 is expected to contain exactly #<CustomerRelations::Contact id: 21, group_id: 1577, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>6474 when fuzzy searching for email and last name6475 is expected to contain exactly #<CustomerRelations::Contact id: 20, group_id: 1577, 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: 1577, organization_id: nil, created_at: "2023-03-30 11...e", phone: nil, first_name: "PQR", last_name: "STU", email: "vwx@test.com", description: [FILTERED]>6476 .search_by_state6477 when searching for contacts state6478 returns only inactive contacts6479 returns only active contacts6480 .counts_by_state6481 returns correct contact counts6482 sorting6483 .sort_by_name6484 sorts them by last name then first name in ascending order6485 .sort_by_organization6486 sorts them by organization in descending order6487 .sort_by_field6488 sorts them by phone in ascending order6489Banzai::Filter::VideoLinkFilter6490 when the element src has a video extension6491 behaves like a video element6492 replaces the image tag with a video tag6493 behaves like a video element6494 replaces the image tag with a video tag6495 behaves like a video element6496 replaces the image tag with a video tag6497 behaves like a video element6498 replaces the image tag with a video tag6499 behaves like a video element6500 replaces the image tag with a video tag6501 behaves like a video element6502 replaces the image tag with a video tag6503 behaves like a video element6504 replaces the image tag with a video tag6505 behaves like a video element6506 replaces the image tag with a video tag6507 behaves like a video element6508 replaces the image tag with a video tag6509 behaves like a video element6510 replaces the image tag with a video tag6511 when the element has height or width specified6512 behaves like a video element6513 replaces the image tag with a video tag6514 behaves like a video element6515 replaces the image tag with a video tag6516 behaves like a video element6517 replaces the image tag with a video tag6518 when the element has no src attribute6519 behaves like an unchanged element6520 leaves the document unchanged6521 when the element src is an image6522 behaves like an unchanged element6523 leaves the document unchanged6524 when the element src has an invalid file extension6525 behaves like an unchanged element6526 leaves the document unchanged6527 when data-canonical-src is empty6528 and src is a video6529 behaves like a video element6530 replaces the image tag with a video tag6531 and src is an image6532 behaves like an unchanged element6533 leaves the document unchanged6534 when data-canonical-src is set6535 uses the correct src6536ApplicationWorker6537 Sidekiq attributes6538 sets the queue name based on the output of the router6539 when a worker attribute is updated6540 updates the queue name afterward6541 when the worker is inherited6542 sets the queue name for the inherited worker6543 #logging_extras6544 returns extra data to be logged that was set from #log_extra_metadata_on_done6545 returns extra data to be logged that was set from #log_hash_metadata_on_done6546 when nothing is set6547 returns {}6548 #structured_payload6549 adds worker related payload6550 adds labkit context6551 adds custom payload converting stringified keys6552 does not override predefined context keys with custom payload6553 .queue_namespace6554 updates the queue name from the router again6555 updates the queue_namespace options of the worker6556 .queue6557 returns the queue name6558 .data_consistency6559 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6560 when workers data consistency is6561 not to raise an exception6562 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6563 when workers data consistency is6564 not to raise an exception6565 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6566 when workers data consistency is6567 not to raise an exception6568 data_consistency: :delayed, sidekiq_option_retry: nil, expect_error: false6569 when workers data consistency is6570 not to raise an exception6571 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6572 when workers data consistency is6573 not to raise an exception6574 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6575 when workers data consistency is6576 not to raise an exception6577 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6578 when workers data consistency is6579 not to raise an exception6580 data_consistency: :sticky, sidekiq_option_retry: nil, expect_error: false6581 when workers data consistency is6582 not to raise an exception6583 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6584 when workers data consistency is6585 not to raise an exception6586 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6587 when workers data consistency is6588 not to raise an exception6589 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6590 when workers data consistency is6591 not to raise an exception6592 data_consistency: :always, sidekiq_option_retry: nil, expect_error: false6593 when workers data consistency is6594 not to raise an exception6595 .retry6596 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6597 when retry sidekiq option is6598 not to raise an exception6599 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6600 when retry sidekiq option is6601 not to raise an exception6602 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6603 when retry sidekiq option is6604 not to raise an exception6605 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6606 when retry sidekiq option is6607 not to raise an exception6608 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6609 when retry sidekiq option is6610 not to raise an exception6611 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6612 when retry sidekiq option is6613 not to raise an exception6614 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6615 when retry sidekiq option is6616 not to raise an exception6617 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6618 when retry sidekiq option is6619 not to raise an exception6620 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6621 when retry sidekiq option is6622 not to raise an exception6623 different kinds of push_bulk6624 .bulk_perform_async6625 push_bulk in safe limit batches6626 when the number of jobs to be enqueued does not exceed the safe limit6627 behaves like enqueues jobs in one go6628 enqueues jobs in one go6629 behaves like logs bulk insertions6630 logs arguments and job IDs6631 behaves like returns job_id of all enqueued jobs6632 returns job_id of all enqueued jobs6633 behaves like does not schedule the jobs for any specific time6634 does not schedule the jobs for any specific time6635 when the number of jobs to be enqueued exceeds safe limit6636 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6637 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6638 behaves like returns job_id of all enqueued jobs6639 returns job_id of all enqueued jobs6640 behaves like does not schedule the jobs for any specific time6641 does not schedule the jobs for any specific time6642 .bulk_perform_in6643 without batches6644 when the scheduled time falls in the past6645 raises an ArgumentError exception6646 push_bulk in safe limit batches6647 when the number of jobs to be enqueued does not exceed the safe limit6648 behaves like enqueues jobs in one go6649 enqueues jobs in one go6650 behaves like returns job_id of all enqueued jobs6651 returns job_id of all enqueued jobs6652 behaves like schedules all the jobs at a specific time6653 schedules all the jobs at a specific time6654 when the number of jobs to be enqueued exceeds safe limit6655 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6656 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6657 behaves like returns job_id of all enqueued jobs6658 returns job_id of all enqueued jobs6659 behaves like schedules all the jobs at a specific time6660 schedules all the jobs at a specific time6661 with batches6662 when the `batch_size` is invalid6663 when `batch_size` is 06664 raises an ArgumentError exception6665 when `batch_size` is negative6666 raises an ArgumentError exception6667 when the `batch_delay` is invalid6668 when `batch_delay` is 06669 raises an ArgumentError exception6670 when `batch_delay` is negative6671 raises an ArgumentError exception6672 push_bulk in safe limit batches6673 when the number of jobs to be enqueued does not exceed the safe limit6674 behaves like enqueues jobs in one go6675 enqueues jobs in one go6676 behaves like returns job_id of all enqueued jobs6677 returns job_id of all enqueued jobs6678 behaves like schedules all the jobs at a specific time, per batch6679 schedules all the jobs at a specific time, per batch6680 when the number of jobs to be enqueued exceeds safe limit6681 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6682 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6683 behaves like returns job_id of all enqueued jobs6684 returns job_id of all enqueued jobs6685 behaves like schedules all the jobs at a specific time, per batch6686 schedules all the jobs at a specific time, per batch6687 .with_status6688 when the worker does have status_expiration set6689 uses status_expiration from the worker6690 uses status_expiration from the worker without with_status6691 when the worker does not have status_expiration set6692 uses the default status_expiration6693 does not set status_expiration without with_status6694Gitlab::Ci::Build::Rules::Rule::Clause::Changes6695 #satisfied_by?6696 a glob matching rule6697 exact top-level match6698 is expected to eq true6699 exact top-level no match6700 is expected to eq false6701 pattern top-level match6702 is expected to eq true6703 pattern top-level no match6704 is expected to eq false6705 exact nested match6706 is expected to eq true6707 exact nested no match6708 is expected to eq false6709 pattern nested match6710 is expected to eq true6711 pattern nested no match6712 is expected to eq false6713 ext top-level match6714 is expected to eq true6715 ext nested no match6716 is expected to eq false6717 ext slash no match6718 is expected to eq false6719 when pipeline is nil6720 is expected to be truthy6721 when using variable expansion6722 when context is nil6723 is expected to be falsey6724 when modified paths are nil6725 is expected to be truthy6726 when context has the specified variables6727 is expected to be truthy6728 when variable expansion does not match6729 is expected to be truthy6730 when using compare_to6731 when compare_to is branch or tag6732 pipeline_ref: "feature_1", compare_to: "master", paths: ["file1.txt"], result: true6733 is expected to eq true6734 pipeline_ref: "feature_1", compare_to: "master", paths: ["README.md"], result: false6735 is expected to eq false6736 pipeline_ref: "feature_1", compare_to: "master", paths: ["xyz.md"], result: false6737 is expected to eq false6738 pipeline_ref: "feature_2", compare_to: "master", paths: ["file1.txt"], result: true6739 is expected to eq true6740 pipeline_ref: "feature_2", compare_to: "master", paths: ["file2.txt"], result: true6741 is expected to eq true6742 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file1.txt"], result: false6743 is expected to eq false6744 pipeline_ref: "feature_2", compare_to: "feature_1", paths: ["file2.txt"], result: true6745 is expected to eq true6746 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file1.txt"], result: false6747 is expected to eq false6748 pipeline_ref: "feature_1", compare_to: "tag_1", paths: ["file2.txt"], result: true6749 is expected to eq true6750 pipeline_ref: "feature_2", compare_to: "tag_1", paths: ["file2.txt"], result: true6751 is expected to eq true6752 when compare_to is a sha6753 is expected to be truthy6754 when compare_to is not a valid ref6755 raises ParseError6756GroupDescendant6757 for a group6758 #hierarchy6759 only queries once for the ancestors6760 only queries once for the ancestors when a top is given6761 builds a hierarchy for a group6762 builds a hierarchy upto a specified parent6763 raises an error if specifying a base that is not part of the tree6764 .build_hierarchy6765 combines hierarchies until the top6766 combines upto a given parent6767 handles building a tree out of order6768 tracks the exception when a parent was not preloaded6769 recovers if a parent was not reloaded by querying for the parent6770 raises an error if not all elements were preloaded6771 for a project6772 #hierarchy6773 builds a hierarchy for a project6774 builds a hierarchy upto a specified parent6775 .build_hierarchy6776 combines hierarchies until the top6777 combines upto a given parent6778 merges to elements in the same hierarchy6779 merges complex hierarchies6780AlertManagement::Alerts::UpdateService6781 #execute6782 when the current_user is nil6783 behaves like error response6784 has an informative message6785 behaves like does not add a todo6786 is expected not to change `Todo.count`6787 behaves like does not add a system note6788 is expected not to change `Note.count`6789 when current_user does not have permission to update alerts6790 behaves like error response6791 has an informative message6792 behaves like does not add a todo6793 is expected not to change `Todo.count`6794 behaves like does not add a system note6795 is expected not to change `Note.count`6796 when no parameters are included6797 behaves like error response6798 has an informative message6799 behaves like does not add a todo6800 is expected not to change `Todo.count`6801 behaves like does not add a system note6802 is expected not to change `Note.count`6803 when an error occurs during update6804 behaves like error response6805 has an informative message6806 behaves like does not add a todo6807 is expected not to change `Todo.count`6808 behaves like does not add a system note6809 is expected not to change `Note.count`6810 when a model attribute is included without assignees6811 behaves like title update6812 updates the attribute6813 behaves like does not add a todo6814 is expected not to change `Todo.count`6815 behaves like does not add a system note6816 is expected not to change `Note.count`6817 when alert is resolved and another existing unresolved alert6818 behaves like title update6819 updates the attribute6820 behaves like does not add a todo6821 is expected not to change `Todo.count`6822 behaves like does not add a system note6823 is expected not to change `Note.count`6824 when assignees are included6825 when the assignee is the current user6826 behaves like successful assignment6827 is expected to be success6828 behaves like adds a system note6829 is expected to change `alert.reload.notes.count` by 16830 behaves like adds a todo6831 is expected to eq #<User id:928 @user334>6832 when the assignee has read permissions6833 behaves like successful assignment6834 is expected to be success6835 behaves like adds a system note6836 is expected to change `alert.reload.notes.count` by 16837 behaves like adds a todo6838 is expected to eq #<User id:928 @user334>6839 when the assignee does not have read permissions6840 behaves like error response6841 has an informative message6842 behaves like does not add a todo6843 is expected not to change `Todo.count`6844 behaves like does not add a system note6845 is expected not to change `Note.count`6846 when user is already assigned6847 behaves like does not add a system note6848 is expected not to change `Note.count`6849 behaves like does not add a todo6850 is expected not to change `Todo.count`6851 with multiple users included6852 behaves like successful assignment6853 is expected to be success6854 behaves like adds a system note6855 is expected to change `alert.reload.notes.count` by 16856 behaves like adds a todo6857 is expected to eq #<User id:928 @user334>6858 when a status is included6859 successfully changes the status6860 behaves like adds a system note6861 is expected to change `alert.reload.notes.count` by 16862 with unknown status6863 behaves like error response6864 has an informative message6865 behaves like does not add a todo6866 is expected not to change `Todo.count`6867 behaves like does not add a system note6868 is expected not to change `Note.count`6869 with resolving status6870 changes the status6871 resolves the current user's related todos6872 with existing unresolved alert6873 with fingerprints6874 does not query for existing alerts6875 when status was resolved6876 has an informative message6877 behaves like does not add a todo6878 is expected not to change `Todo.count`6879 behaves like does not add a system note6880 is expected not to change `Note.count`6881 without fingerprints6882 successfully changes the status6883 behaves like adds a system note6884 is expected to change `alert.reload.notes.count` by 16885 two existing closed alerts6886 successfully changes the status6887 behaves like adds a system note6888 is expected to change `alert.reload.notes.count` by 16889Gitlab::Middleware::ReadOnly6890 when database is read-only6891 behaves like write access for a read-only GitLab instance6892 normal requests to a read-only GitLab instance6893 expects PATCH requests to be disallowed6894 expects PUT requests to be disallowed6895 expects POST requests to be disallowed6896 expects a internal POST request to be allowed after a disallowed request6897 expects DELETE requests to be disallowed6898 expects POST of new file that looks like an LFS batch url to be disallowed6899 returns last_vistited_url for disallowed request6900 allowlisted requests6901 expects a POST internal request to be allowed6902 expects a POST internal request with trailing slash to be allowed6903 expects a graphql request to be allowed6904 expects a graphql request with trailing slash to be allowed6905 relative URL is configured6906 expects a graphql request to be allowed6907 expects a graphql request with trailing slash to be allowed6908 sidekiq admin requests6909 mounted_at: ""6910 allows requests6911 allows requests with trailing slash6912 mounted_at: "/"6913 allows requests6914 allows requests with trailing slash6915 mounted_at: "/gitlab"6916 allows requests6917 allows requests with trailing slash6918 mounted_at: "/gitlab/"6919 allows requests6920 allows requests with trailing slash6921 mounted_at: "/gitlab/gitlab"6922 allows requests6923 allows requests with trailing slash6924 mounted_at: "/gitlab/gitlab/"6925 allows requests6926 allows requests with trailing slash6927 description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"6928 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed6929 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL with trailing slash to be allowed6930 description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"6931 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed6932 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL with trailing slash to be allowed6933 description: "user sign out", path: "/users/sign_out"6934 expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed6935 expects a POST description: "user sign out", path: "/users/sign_out" URL with trailing slash to be allowed6936 description: "admin session", path: "/admin/session"6937 expects a POST description: "admin session", path: "/admin/session" URL to be allowed6938 expects a POST description: "admin session", path: "/admin/session" URL with trailing slash to be allowed6939 description: "admin session destroy", path: "/admin/session/destroy"6940 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed6941 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL with trailing slash to be allowed6942 description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"6943 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed6944 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL with trailing slash not to be allowed6945 description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"6946 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed6947 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL with trailing slash not to be allowed6948 description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"6949 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed6950 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 allowed6951 JSON requests to a read-only GitLab instance6952 expects PATCH requests to be disallowed6953 expects PUT requests to be disallowed6954 expects POST requests to be disallowed6955 expects DELETE requests to be disallowed6956RuboCop::Cop::Gitlab::MarkUsedFeatureFlags6957 # order random6958 self.limit_feature_flag = :foo6959 sets the flag as used6960 Worker `deduplicate` method6961 sets the flag as used6962 sets the flag as used6963 push_frontend_feature_flag method6964 a string feature flag6965 sets the flag as used6966 a symbol feature flag6967 sets the flag as used6968 an interpolated string feature flag with a string prefix6969 sets the flag as used6970 an interpolated symbol feature flag with a string prefix6971 sets the flag as used6972 a string with a "/" in it6973 sets the flag as used6974 an interpolated string feature flag with a string prefix and suffix6975 sets the flag as used6976 a dynamic string feature flag as a variable6977 sets the flag as used6978 an integer feature flag6979 sets the flag as used6980 Feature::Gitaly.enabled? method6981 a string feature flag6982 sets the flag as used6983 a symbol feature flag6984 sets the flag as used6985 an interpolated string feature flag with a string prefix6986 sets the flag as used6987 an interpolated symbol feature flag with a string prefix6988 sets the flag as used6989 an interpolated string feature flag with a string prefix and suffix6990 sets the flag as used6991 a dynamic string feature flag as a variable6992 sets the flag as used6993 an integer feature flag6994 sets the flag as used6995 Feature.disabled? method6996 a string feature flag6997 sets the flag as used6998 a symbol feature flag6999 sets the flag as used7000 an interpolated string feature flag with a string prefix7001 sets the flag as used7002 an interpolated symbol feature flag with a string prefix7003 sets the flag as used7004 a string with a "/" in it7005 sets the flag as used7006 an interpolated string feature flag with a string prefix and suffix7007 sets the flag as used7008 a dynamic string feature flag as a variable7009 sets the flag as used7010 an integer feature flag7011 sets the flag as used7012 Worker `data_consistency` method7013 sets the flag as used7014 sets the flag as used7015 YamlProcessor::FeatureFlags.enabled? method7016 a string feature flag7017 sets the flag as used7018 a symbol feature flag7019 sets the flag as used7020 an interpolated string feature flag with a string prefix7021 sets the flag as used7022 an interpolated symbol feature flag with a string prefix7023 sets the flag as used7024 a string with a "/" in it7025 sets the flag as used7026 an interpolated string feature flag with a string prefix and suffix7027 sets the flag as used7028 a dynamic string feature flag as a variable7029 sets the flag as used7030 an integer feature flag7031 sets the flag as used7032 use_rugged? method7033 a string feature flag7034 sets the flag as used7035 a symbol feature flag7036 sets the flag as used7037 an interpolated string feature flag with a string prefix7038 sets the flag as used7039 an interpolated symbol feature flag with a string prefix7040 sets the flag as used7041 an interpolated string feature flag with a string prefix and suffix7042 sets the flag as used7043 a dynamic string feature flag as a variable7044 sets the flag as used7045 an integer feature flag7046 sets the flag as used7047 with the experiment method7048 a string feature flag7049 sets the flag as used7050 a symbol feature flag7051 sets the flag as used7052 an interpolated string feature flag with a string prefix7053 sets the flag as used7054 an interpolated symbol feature flag with a string prefix7055 sets the flag as used7056 an interpolated string feature flag with a string prefix and suffix7057 sets the flag as used7058 a dynamic string feature flag as a variable7059 sets the flag as used7060 an integer feature flag7061 sets the flag as used7062 self.limit_feature_flag_for_override = :foo7063 sets the flag as used7064 ROUTING_FEATURE_FLAG = :foo7065 sets the flag as used7066 FEATURE_FLAG = :foo7067 sets the flag as used7068 Feature::Gitaly.disabled? method7069 a string feature flag7070 sets the flag as used7071 a symbol feature flag7072 sets the flag as used7073 an interpolated string feature flag with a string prefix7074 sets the flag as used7075 an interpolated symbol feature flag with a string prefix7076 sets the flag as used7077 an interpolated string feature flag with a string prefix and suffix7078 sets the flag as used7079 a dynamic string feature flag as a variable7080 sets the flag as used7081 an integer feature flag7082 sets the flag as used7083 Feature.enabled? method7084 a string feature flag7085 sets the flag as used7086 a symbol feature flag7087 sets the flag as used7088 an interpolated string feature flag with a string prefix7089 sets the flag as used7090 an interpolated symbol feature flag with a string prefix7091 sets the flag as used7092 a string with a "/" in it7093 sets the flag as used7094 an interpolated string feature flag with a string prefix and suffix7095 sets the flag as used7096 a dynamic string feature flag as a variable7097 sets the flag as used7098 an integer feature flag7099 sets the flag as used7100Branches::DeleteMergedService7101 #execute7102 deletes a branch that was merged7103 keeps branch that is unmerged7104 keeps "master"7105 keeps protected branches7106 keeps wildcard protected branches7107 ignores protected tags7108 user without rights7109 cannot execute7110 open merge requests7111 does not delete branches from open merge requests7112 #async_execute7113 calls DeleteMergedBranchesWorker async7114Gitlab::Ci::Config::External::Mapper7115 #process7116 when single 'include' keyword is defined7117 when the string is a local file7118 returns File instances7119 behaves like logging config file fetch7120 propagates the pipeline logger7121 when the key is a local file hash7122 returns File instances7123 when the string is a remote file7124 returns File instances7125 behaves like logging config file fetch7126 propagates the pipeline logger7127 when the key is a remote file hash7128 returns File instances7129 when the key is a template file hash7130 returns File instances7131 behaves like logging config file fetch7132 propagates the pipeline logger7133 when the key is not valid7134 returns ambigious specification error7135 when the key is a hash of local and remote7136 returns ambigious specification error7137 when the key is a project's file7138 returns File instances7139 behaves like logging config file fetch7140 propagates the pipeline logger7141 when the key is project's files7142 returns two File instances7143 behaves like logging config file fetch7144 propagates the pipeline logger7145 when 'include' is defined as an array7146 returns Files instances7147 when 'include' is defined as an array of hashes7148 returns Files instances7149 when it has ambigious match7150 returns ambigious specification error7151 when 'include' is not defined7152 returns an empty array7153 when duplicate 'include's are defined7154 does not raise an exception7155 has expanset with two7156 when passing max number of files7157 does not raise an exception7158 when too many 'includes' are defined7159 raises an exception7160 when including multiple files from a project7161 raises an exception7162 when 'include' section uses project variable7163 when local file is included as a single string7164 expands the variable7165 when remote file is included as a single string7166 expands the variable7167 defined as an array7168 expands the variable7169 defined as an array of hashes7170 expands the variable7171 local file hash7172 expands the variable7173 project name7174 expands the variable7175 with multiple files7176 expands the variable7177 when include variable has an unsupported type for variable expansion7178 does not invoke expansion for the variable7179 when local file path has wildcard7180 includes the matched local files7181 when 'include' has rules7182 when the rules matches7183 includes the file7184 when the rules does not match7185 does not include the file7186 when locations are same after masking variables7187 has expanset with two7188Projects::GitDeduplicationService7189 #execute7190 when there is not already a lease7191 when the project does not have a pool repository7192 calls disconnect_git_alternates7193 when the project has a pool repository7194 links the repository to the object pool7195 does not link the repository to the object pool if they are not on the same storage7196 when the project is a source project7197 calls fetch7198 does not call fetch if git objects are not poolable7199 does not call fetch if pool and project are not on the same storage7200 when visibility level of the project7201 is private7202 does not call fetch7203 is public7204 calls fetch7205 is internal7206 calls fetch7207 when the repository access level7208 is private7209 does not call fetch7210 is greater than private7211 calls fetch7212 when a lease is already out7213 fails when a lease is already out7214Gitlab::Utils::SanitizeNodeLink7215 # order random7216 with the scheme:  javascript:7217 #remove_unsafe_links7218 <a> tags7219 removes the unsafe link7220 <img> tags7221 removes the unsafe link7222 <video> tags7223 removes the unsafe link7224 <audio> tags7225 removes the unsafe link7226 #safe_protocol?7227 returns false7228 with the scheme: javascript:7229 #remove_unsafe_links7230 <a> tags7231 removes the unsafe link7232 <img> tags7233 removes the unsafe link7234 <video> tags7235 removes the unsafe link7236 <audio> tags7237 removes the unsafe link7238 #safe_protocol?7239 returns false7240 with the scheme: javascript :7241 #remove_unsafe_links7242 <a> tags7243 removes the unsafe link7244 <img> tags7245 removes the unsafe link7246 <video> tags7247 removes the unsafe link7248 <audio> tags7249 removes the unsafe link7250 #safe_protocol?7251 returns false7252 with the scheme: javascript:7253 #remove_unsafe_links7254 <a> tags7255 removes the unsafe link7256 <img> tags7257 removes the unsafe link7258 <video> tags7259 removes the unsafe link7260 <audio> tags7261 removes the unsafe link7262 #safe_protocol?7263 returns false7264 with the scheme: javascript:7265 #remove_unsafe_links7266 <a> tags7267 removes the unsafe link7268 <img> tags7269 removes the unsafe link7270 <video> tags7271 removes the unsafe link7272 <audio> tags7273 removes the unsafe link7274 #safe_protocol?7275 returns false7276 with the scheme: javascript:7277 #remove_unsafe_links7278 <a> tags7279 removes the unsafe link7280 <img> tags7281 removes the unsafe link7282 <video> tags7283 removes the unsafe link7284 <audio> tags7285 removes the unsafe link7286 #safe_protocol?7287 returns false7288 with the scheme: JaVaScRiPt:7289 #remove_unsafe_links7290 <a> tags7291 removes the unsafe link7292 <img> tags7293 removes the unsafe link7294 <video> tags7295 removes the unsafe link7296 <audio> tags7297 removes the unsafe link7298 #safe_protocol?7299 returns false7300 with the scheme: javascript:7301 #remove_unsafe_links7302 <a> tags7303 removes the unsafe link7304 <img> tags7305 removes the unsafe link7306 <video> tags7307 removes the unsafe link7308 <audio> tags7309 removes the unsafe link7310 #safe_protocol?7311 returns false7312 with the scheme: :javascript:7313 #remove_unsafe_links7314 <a> tags7315 removes the unsafe link7316 <img> tags7317 removes the unsafe link7318 <video> tags7319 removes the unsafe link7320 <audio> tags7321 removes the unsafe link7322 #safe_protocol?7323 returns false7324 with the scheme: javascript :7325 #remove_unsafe_links7326 <a> tags7327 removes the unsafe link7328 <img> tags7329 removes the unsafe link7330 <video> tags7331 removes the unsafe link7332 <audio> tags7333 removes the unsafe link7334 #safe_protocol?7335 returns false7336StageEntity7337 #as_json7338 contains relevant fields7339 contains detailed status7340 contains valid name7341 contains path to the stage7342 contains path to the stage dropdown7343 contains stage title7344 does not contain play_details info7345 when the jobs should be grouped7346 exposes the group key7347 and contains commit status7348 contains commit status7349 with a skipped stage7350 contains play_all_manual7351 with a scheduled stage7352 contains play_all_manual7353 with a manual stage7354 contains play_all_manual7355Ci::DeleteUnitTestsService7356 #execute7357 does not delete unit test failures not older than 14 days7358 deletes unit test failures older than 14 days7359 deletes unit tests that have no more associated unit test failures7360Gitlab7361 delegates root to GitlabEdition7362 delegates extensions to GitlabEdition7363 delegates ee? to GitlabEdition7364 delegates jh? to GitlabEdition7365 delegates ee to GitlabEdition7366 delegates jh to GitlabEdition7367 .revision7368 when a REVISION file exists7369 returns the actual Git revision7370 memoizes the revision7371 when no REVISION file exist7372 when the Git command succeeds7373 returns the actual Git revision7374 when the Git command fails7375 returns "Unknown"7376 .com?7377 is true when GITLAB_SIMULATE_SAAS is true and in development7378 is false when GITLAB_SIMULATE_SAAS is true and in test7379 when not simulating SaaS7380 is true when on https://gitlab.com7381 is true when on https://staging.gitlab.com7382 is true when on other gitlab subdomain7383 is true when on other gitlab subdomain with hyphen7384 is false when not on GitLab.com7385 .com7386 when on GitLab.com7387 is expected to equal true7388 when not on GitLab.com7389 is expected to be nil7390 .staging?7391 is false when on https://gitlab.com7392 is true when on https://staging.gitlab.com7393 is false when not on staging7394 .canary?7395 is true when CANARY env var is set to true7396 is false when CANARY env var is set to false7397 .com_and_canary?7398 is true when on .com and canary7399 is false when on .com but not on canary7400 .com_but_not_canary?7401 is false when on .com and canary7402 is true when on .com but not on canary7403 .org_or_com?7404 is true when on .com7405 is true when org7406 is false when not dev, org or com7407 .simulate_com?7408 when GITLAB_SIMULATE_SAAS is true7409 is false when test env7410 is true when dev env7411 is false when env is not dev7412 when GITLAB_SIMULATE_SAAS is false7413 is false when test env7414 is false when dev env7415 is false when env is not dev or test7416 .dev_or_test_env?7417 is true when test env7418 is true when dev env7419 is false when env is not dev or test7420 .http_proxy_env?7421 returns true when lower case https7422 returns true when upper case https7423 returns true when lower case http7424 returns true when upper case http7425 returns false when not set7426 .maintenance_mode?7427 returns true when maintenance mode is enabled7428 returns false when maintenance mode is disabled7429 returns false when maintenance mode column is not present7430Gitlab::Observability7431 # order random7432 .observability_url7433 is expected to eq "https://observe.gitlab.com"7434 when on staging.gitlab.com7435 is expected to eq "https://observe.staging.gitlab.com"7436 when overriden via ENV7437 is expected to eq "https://example.net"7438 .build_full_url7439 returns the full observability url for the given params7440 handles missing / from observability_path7441 sanitises observability_path7442 when observability_path is missing7443 builds the url with the fallback_path7444 defaults to / if fallback_path is also missing7445 .allowed_for_action?7446 returns false if action is nil7447 allowed? calls7448 action: :foo, permission: :admin_observability7449 calls allowed? with admin_observability when actions is foo7450 action: :explore, permission: :read_observability7451 calls allowed? with read_observability when actions is explore7452 action: :datasources, permission: :admin_observability7453 calls allowed? with admin_observability when actions is datasources7454 action: :manage, permission: :admin_observability7455 calls allowed? with admin_observability when actions is manage7456 action: :dashboards, permission: :read_observability7457 calls allowed? with read_observability when actions is dashboards7458 .embeddable_url7459 when URL is valid7460 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"7461 returns an embeddable observability url7462 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/goto/foo", expected: "https://observe.gitlab.com/-/123/goto/foo"7463 returns an embeddable observability url7464 when URL is invalid7465 returns nil if the path detection throws an error7466 returns nil if parsing observaboility path throws an error7468 returns nil7470 returns nil7471 input: "not a link"7472 returns nil7474 returns nil7475 input: "http://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/explore"7476 returns nil7477 input: "https://www.gitlab.com:123/groups/test-path/-/observability/explore?observability_path=/explore"7478 returns nil7479 input: "https://www.gitlab.com@example.com/groups/test-path/-/observability/explore?observability_path=/explore"7480 returns nil7481 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=@example.com"7482 returns nil7483 input: "https://www.gitlab.com/groups/INVALID_GROUP/-/observability/explore?observability_path=/explore"7484 returns nil7485 input: "https://www.gitlab.com/groups/test-path/-/INVALID_CONTROLLER/explore?observability_path=/explore"7486 returns nil7487 input: "https://www.gitlab.com/groups/test-path/-/observability/INVALID_ACTION?observability_path=/explore"7488 returns nil7490 returns nil7491 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?missing_observability_path=/explore"7492 returns nil7493 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/not_embeddable"7494 returns nil7495 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/datasources"7496 returns nil7497 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=not a valid path"7498 returns nil7499 .allowed?7500 checks if ability is allowed for the given user and group7501 checks for admin_observability if permission is missing7502 returns true if the ability is allowed7503 returns false if the ability is not allowed7504 returns false if observability url is missing7505 returns false if group is missing7506 returns false if user is missing7507GroupClusterablePresenter7508 #can_create_cluster?7509 when user can create7510 is expected to be truthy7511 when user cannot create7512 is expected to be falsey7513 #index_path7514 is expected to eq "/groups/group268/-/clusters"7515 #connect_path7516 is expected to eq "/groups/group269/-/clusters/connect"7517 #create_user_clusters_path7518 is expected to eq "/groups/group270/-/clusters/create_user"7519 #cluster_status_cluster_path7520 is expected to eq "/groups/group271/-/clusters/18/cluster_status"7521 #clear_cluster_cache_path7522 is expected to eq "/groups/group272/-/clusters/21/clear_cache"7523 #cluster_path7524 is expected to eq "/groups/group273/-/clusters/24"7525 #metrics_dashboard_path7526 is expected to eq "/groups/group274/-/clusters/27/metrics_dashboard"7527 #learn_more_link7528 is expected to include "user/group/clusters/index"7529BulkImports::Entity7530 associations7531 is expected to belong to bulk_import required: true7532 is expected to belong to parent required: false7533 is expected to belong to group optional: true inverse_of => bulk_import_entities7534 is expected to belong to project required: false7535 is expected to have many trackers class_name => BulkImports::Tracker inverse_of => entity7536 validations7537 is expected to validate that :source_type cannot be empty/falsy7538 is expected to validate that :source_full_path cannot be empty/falsy7539 is expected to validate that :destination_name cannot be empty/falsy7540 is expected to define :source_type as an enum backed by an integer with values ‹[:group_entity, :project_entity]›7541 when formatting with regexes7542 is expected to allow :destination_namespace to be ‹"namespace"›, ‹"parent/namespace"›, ‹"parent/group/subgroup"›, or ‹""›7543 is expected not to allow :destination_namespace to be ‹"parent/namespace/"›, ‹"/namespace"›, ‹"parent group/subgroup"›, or ‹"@namespace"›7544 is expected to allow :source_full_path to be ‹"source"›, ‹"source/path"›, or ‹"source/full/path"›7545 is expected not to allow :source_full_path to be ‹"/source"›, ‹"http://source/path"›, ‹"sou rce/full/path"›, or ‹""›7546 is expected to allow :destination_slug to be ‹"destination"›, ‹"destination-slug"›, or ‹"new-destination-slug"›7547 when destination_slug is invalid7548 raises an error7549 when associated with a group and project7550 is invalid7551 when not associated with a group or project7552 is valid7553 when associated with a group and no project7554 is valid as a group_entity7555 is valid when destination_namespace is empty7556 is invalid when destination_namespace is nil7557 is invalid when destination_slug is empty7558 is invalid when destination_slug is nil7559 is invalid as a project_entity7560 when associated with a project and no group7561 is valid7562 is invalid when destination_namespace is nil7563 is invalid as a project_entity7564 when the parent is a group import7565 is valid7566 when the parent is a project import7567 is invalid7568 validate destination namespace of a group_entity7569 is invalid if destination namespace is the source namespace7570 is invalid if destination namespace is a descendant of the source7571 when source_type is a project_entity7572 is valid7573 #encoded_source_full_path7574 encodes entity source full path7575 scopes7576 .by_user_id7577 returns entities associated with specified user7578 .all_human_statuses7579 returns all human readable entity statuses7580 #pipelines7581 when entity is group7582 returns group pipelines7583 when entity is project7584 returns project pipelines7585 #pipeline_exists?7586 returns true when the given pipeline name exists in the pipelines list7587 returns false when the given pipeline name exists in the pipelines list7588 #pluralized_name7589 when entity is group7590 returns groups7591 when entity is project7592 returns projects7593 #export_relations_url_path7594 when entity is group7595 returns group export relations url7596 when entity is project7597 returns project export relations url7598 #relation_download_url_path7599 returns export relations url with download query string7600 #entity_type7601 returns entity type7602 #project?7603 returns true if project entity7604 #group?7605 returns true if group entity7606 #base_resource_url_path7607 returns base entity url path7608 #wiki_url_path7609 returns entity wiki url path7610 #update_service7611 returns correct update service class7612 #full_path7613 returns group full path for project entity7614 returns project full path for project entity7615 returns nil when not associated with group or project7616 #default_visibility_level7617 when entity is a group7618 returns default group visibility7619 when entity is a project7620 returns default project visibility7621 #update_has_failures7622 when entity has failures7623 sets has_failures flag to true7624 when entity does not have failures7625 sets has_failures flag to false7626Mutations::Issues::SetConfidential7627 is expected to require graphql authorizations :update_issue7628 #resolve7629 behaves like permission level for issue mutation is correctly verified7630 when the user is not a project member7631 behaves like when the user does not have access to the resource7632 raises an error7633 even if assigned to the issue7634 does not modify issue7635 even if author of the issue7636 does not modify issue7637 when the user is a project member7638 with guest role7639 behaves like when the user does not have access to the resource7640 raises an error7641 even if assigned to the issue7642 does not modify issue7643 even if author of the issue7644 does not modify issue7645 when the user can update the issue7646 returns the issue as confidential7647 when passing confidential as false7648 updates the issue confidentiality to false7649 when guest user is an assignee7650 does not change issue confidentiality7651TreeHelper7652 #commit_in_single_accessible_branch7653 escapes HTML from the branch name7654 #vue_file_list_data7655 returns a list of attributes related to the project7656 #web_ide_button_data7657 returns a list of attributes related to the project7658 a blob is passed7659 returns edit url and webide url for the blob7660 does not load blob from repository again7661 nil blob is passed7662 does not load blob from repository7663 user does not have write access but a personal fork exists7664 includes forked project path as project_path7665 a blob is passed7666 returns edit url and web ide for the blob in the fork7667 for archived project7668 does not show any buttons7669 user has write access7670 includes original project path as project_path7671 a blob is passed7672 returns edit url and web ide for the blob in the fork7673 gitpod settings is enabled7674 has show_gitpod_button: true7675 has gitpod_enabled: true when user has enabled gitpod7676 has gitpod_enabled: false when user has not enabled gitpod7677 has show_gitpod_button: false when web ide button is not shown7678 .patch_branch_name7679 returns a patch branch name7680 without a current_user7681 returns nil7682Ci::TriggerPolicy7683 #rules7684 when owner is an user7685 when user is maintainer of the project7686 is expected to be allowed :manage_trigger7687 is expected to be allowed :admin_trigger7688 when owner is another user7689 when user is maintainer of the project7690 is expected to be allowed :manage_trigger7691 is expected not to be allowed :admin_trigger7692 when user is developer of the project7693 is expected not to be allowed :manage_trigger7694 is expected not to be allowed :admin_trigger7695 when user is not member of the project7696 is expected not to be allowed :manage_trigger7697 is expected not to be allowed :admin_trigger7698Projects::Members::EffectiveAccessLevelFinder#execute7699 for a personal project7700 when the project owner is a member of the project7701 behaves like includes access level of the owner of the project7702 includes access level of the owner of the project as Owner7703 when the project owner is not explicitly a member of the project7704 behaves like includes access level of the owner of the project7705 includes access level of the owner of the project as Owner7706 direct members of the project7707 includes access levels of the direct members of the project7708 does not include access levels of users who have requested access to the project7709 includes access levels of users who are in non-active state7710 for a project within a group7711 project in a root group7712 includes access levels of users who are direct members of the parent group7713 when access level is developer7714 when access level is owner7715 project in a subgroup7716 includes access levels of users who are members of the ancestors of the parent group7717 user is both a member of the project and a member of the parent group7718 includes the maximum access level among project and group membership7719 members from group share7720 includes the user from the group share with the right access level7721 when the project also has the same user as a member, but with a different access level7722 includes the maximum access level among project and group membership7723 when the project's ancestor also has the same user as a member, but with a different access level7724 includes the maximum access level among project and group membership7725 for a project that is shared with other group(s)7726 includes the least among the specified access levels7727 even when the `lock_memberships_to_ldap` setting has been turned ON7728 includes the least among the specified access levels7729 when the group containing the project has forbidden group shares for any of its projects7730 does not include the users from any group shares7731 a combination of all possible avenues of membership7732 includes the highest access level from all avenues of memberships7733Gitlab::Ci::Build::AutoRetry7734 #allowed?7735 description: "retries are disabled", retry_count: 0, options: {:max=>0}, failure_reason: nil, result: false7736 is expected to eq false7737 description: "max equals count", retry_count: 2, options: {:max=>2}, failure_reason: nil, result: false7738 is expected to eq false7739 description: "max is higher than count", retry_count: 1, options: {:max=>2}, failure_reason: nil, result: true7740 is expected to eq true7741 description: "max is a string", retry_count: 1, options: {:max=>"2"}, failure_reason: nil, result: true7742 is expected to eq true7743 description: "matching failure reason", retry_count: 0, options: {:when=>["api_failure"], :max=>2}, failure_reason: :api_failure, result: true7744 is expected to eq true7745 description: "not matching with always", retry_count: 0, options: {:when=>["always"], :max=>2}, failure_reason: :api_failure, result: true7746 is expected to eq true7747 description: "not matching reason", retry_count: 0, options: {:when=>["script_error"], :max=>2}, failure_reason: :api_failure, result: false7748 is expected to eq false7749 description: "scheduler failure override", retry_count: 1, options: {:when=>["scheduler_failure"], :max=>1}, failure_reason: :scheduler_failure, result: false7750 is expected to eq false7751 description: "default for scheduler failure", retry_count: 1, options: {}, failure_reason: :scheduler_failure, result: true7752 is expected to eq true7753 description: "quota is exceeded", retry_count: 0, options: {:max=>2}, failure_reason: :ci_quota_exceeded, result: false7754 is expected to eq false7755 description: "no matching runner", retry_count: 0, options: {:max=>2}, failure_reason: :no_matching_runner, result: false7756 is expected to eq false7757 description: "missing dependencies", retry_count: 0, options: {:max=>2}, failure_reason: :missing_dependency_failure, result: false7758 is expected to eq false7759 description: "forward deployment failure", retry_count: 0, options: {:max=>2}, failure_reason: :forward_deployment_failure, result: false7760 is expected to eq false7761 description: "environment creation failure", retry_count: 0, options: {:max=>2}, failure_reason: :environment_creation_failure, result: false7762 is expected to eq false7763 when build is not retryable7764 is expected to eq false7765 #options_retry_max7766 with retries max config option7767 returns the number of configured max retries7768 without retries max config option7769 returns nil7770 when build is degenerated7771 returns nil7772 with integer only config option7773 returns the number of configured max retries7774 #options_retry_when7775 with retries when config option7776 returns the configured when7777 without retries when config option7778 returns always array7779 with integer only config option7780 returns always array7781 with retry[:when] set to nil7782 returns always array7783Gitlab::DataBuilder::Deployment7784 .build7785 returns the object kind for a deployment7786 returns data for the given build7787 does not include the deployable URL when there is no deployable7788 when commit does not exist in the repository7789 returns nil for commit_url7790 returns nil for commit_title7791 when deployed_by is nil7792 returns nil for user7793 returns nil for user_url7794Lfs::UnlockFileService7795 #execute7796 when not authorized7797 doesn't succeed7798 when authorized7799 when lock does not exists7800 doesn't succeed7801 when unlocked by the author7802 succeeds7803 when unlocked by a different user7804 doesn't succeed7805 when forced7806 by a regular user7807 doesn't succeed7808 by a maintainer user7809 succeeds7810Metrics::Dashboard::CloneDashboardService7811 #execute7812 user does not have push right to repository7813 behaves like misconfigured dashboard service response with stepable7814 returns an appropriate message and status code7815 with rights to push to the repository7816 wrong target file extension7817 behaves like misconfigured dashboard service response with stepable7818 returns an appropriate message and status code7819 wrong source dashboard file7820 behaves like misconfigured dashboard service response with stepable7821 returns an appropriate message and status code7822 path traversal attack attempt7823 behaves like misconfigured dashboard service response with stepable7824 returns an appropriate message and status code7825 path traversal attack attempt on target file7826 strips target file name to safe value7827 valid parameters7828 extends dashboard template path to absolute url7829 behaves like valid dashboard cloning process7830 dashboard template: config/prometheus/common_metrics.yml7831 delegates commit creation to Files::CreateService7832 user has defined custom metrics7833 uses external service to includes them into new file content7834 behaves like valid dashboard cloning process7835 dashboard template: config/prometheus/cluster_metrics.yml7836 delegates commit creation to Files::CreateService7837 user has defined custom metrics7838 uses external service to includes them into new file content7839 behaves like valid dashboard cloning process7840 dashboard template: config/prometheus/self_monitoring_default.yml7841 delegates commit creation to Files::CreateService7842 user has defined custom metrics7843 uses external service to includes them into new file content7844 selected branch already exists7845 behaves like misconfigured dashboard service response with stepable7846 returns an appropriate message and status code7847 blank branch name7848 behaves like misconfigured dashboard service response with stepable7849 returns an appropriate message and status code7850 dashboard file already exists7851 behaves like misconfigured dashboard service response with stepable7852 returns an appropriate message and status code7853 Files::CreateService success7854 clears dashboards cache7855 returns success7856 Files::CreateService fails7857 does NOT clear dashboards cache7858 returns error7859MergeRequest::Metrics7860 associations7861 is expected to belong to merge_request required: false7862 is expected to belong to target_project class_name => Project required: false7863 is expected to belong to latest_closed_by class_name => User required: false7864 is expected to belong to merged_by class_name => User required: false7865 scopes7866 .merged_after7867 finds the record7868 doesn't include record outside of the filter7869 .merged_before7870 finds the record7871 doesn't include record outside of the filter7872 .by_target_project7873 finds metrics record with the associated target project7874 behaves like cleanup by a loose foreign key7875 cleans up (delete or nullify) the model7876 update7877 when pipeline_id is nullified7878 nullifies build related columns via DB trigger7879 when updated but pipeline_id is not nullified7880 does not nullify build related columns7881Security::CiConfiguration::DependencyScanningCreateService7882 # order random7883 #execute7884 user does not belong to project7885 returns an error status7886 does not track a snowplow event7887 user belongs to project7888 does track the snowplow event7889 raises exception if the user does not have permission to create a new branch7890 when exception is raised7891 when branch was created7892 tries to rm branch7893 when branch was not created7894 does not try to rm branch7895 with no parameters7896 returns the path to create a new merge request7897 when the project has a non-default ci config file7898 does track the snowplow event7899 when existing ci config contains anchors/aliases7900 fails with error7901 when parsing existing ci config gives a Psych error7902 fails with error7903 when parsing existing ci config gives any other error7904 is successful7905 when the project is empty7906 returns an error7907Reenqueuer7908 disables Sidekiq retries7909 behaves like reenqueuer7910 implements lease_timeout7911 uses the :none deduplication strategy7912 #perform7913 tries to obtain a lease7914 behaves like #perform is rate limited to 1 call per7915 when the work finishes in 0 seconds7916 sleeps exactly the minimum duration7917 when the work finishes in 10% of minimum duration7918 sleeps 90% of minimum duration7919 when the work finishes in 90% of minimum duration7920 sleeps 10% of minimum duration7921 when the work finishes exactly at minimum duration7922 does not sleep7923 when the work takes 10% longer than minimum duration7924 does not sleep7925 when the work takes twice as long as minimum duration7926 does not sleep7927 #perform7928 when the lease is available7929 does perform7930 when the lease is taken7931 does not perform7932 when #perform returns truthy7933 reenqueues the worker7934 returns the original value from #perform7935 when #perform returns falsey7936 does not reenqueue the worker7937 returns the original value from #perform7938Reenqueuer::ReenqueuerSleeper7939 behaves like #perform is rate limited to 1 call per7940 when the work finishes in 0 seconds7941 sleeps exactly the minimum duration7942 when the work finishes in 10% of minimum duration7943 sleeps 90% of minimum duration7944 when the work finishes in 90% of minimum duration7945 sleeps 10% of minimum duration7946 when the work finishes exactly at minimum duration7947 does not sleep7948 when the work takes 10% longer than minimum duration7949 does not sleep7950 when the work takes twice as long as minimum duration7951 does not sleep7952 #ensure_minimum_duration7953 when the block completes well before the minimum duration7954 sleeps until the minimum duration7955 when the block completes just before the minimum duration7956 sleeps until the minimum duration7957 when the block completes just after the minimum duration7958 does not sleep7959 when the block completes well after the minimum duration7960 does not sleep7961IssueSidebarBasicEntity7962 contains keys related to issuables7963 contains attributes related to the issue7964 current_user7965 contains attributes related to the current user7966 can_update_escalation_status7967 for a standard issue7968 is not present7969 for an incident issue7970 is present and true7971 without permissions7972 is present and false7973 show_crm_contacts7974 is_reporter: false, contacts_exist_for_group: false, expected: false7975 sets proper boolean value for show_crm_contacts7976 is_reporter: false, contacts_exist_for_group: true, expected: false7977 sets proper boolean value for show_crm_contacts7978 is_reporter: true, contacts_exist_for_group: false, expected: false7979 sets proper boolean value for show_crm_contacts7980 is_reporter: true, contacts_exist_for_group: true, expected: true7981 sets proper boolean value for show_crm_contacts7982 in subgroup7983 with crm enabled7984 is true7985 with crm disabled7986 is false7987ProjectExportWorker7988 behaves like export worker7989 #perform7990 when it succeeds7991 calls the ExportService7992 export job7993 creates an export job record for the project7994 sets the export job status to started7995 sets the export job status to finished7996 when it fails7997 does not raise an exception when strategy is invalid7998 does not raise error when project cannot be found7999 does not raise error when user cannot be found8000 fails the export job status8001 sidekiq options8002 disables retry8003 disables dead8004 sets default status expiration8005 exporters duration measuring8006 logs exporters execution duration8007Projects::ContainerRepository::DestroyService8008 when user has access to registry8009 behaves like executing with permissions8010 deletes the repository8011 sends disable_timeout = true as part of the params as default8012 sends disable_timeout = false as part of the params if it is set to false8013 when deleting the tags fails8014 sets status as deleted_failed8015 logs the error8016 behaves like returning an error status with message8017 returns an error status8018 when destroying the repository fails8019 sets status as deleted_failed8020 logs the error8021 behaves like returning an error status with message8022 returns an error status8023 when user does not have access to registry8024 does not delete a repository8025 behaves like returning an error status with message8026 returns an error status8027 when called during project deletion8028 behaves like executing with permissions8029 deletes the repository8030 sends disable_timeout = true as part of the params as default8031 sends disable_timeout = false as part of the params if it is set to false8032 when deleting the tags fails8033 sets status as deleted_failed8034 logs the error8035 behaves like returning an error status with message8036 returns an error status8037 when destroying the repository fails8038 sets status as deleted_failed8039 logs the error8040 behaves like returning an error status with message8041 returns an error status8042 when there is no user8043 behaves like returning an error status with message8044 returns an error status8045Users::CalloutsHelper8046 .show_gke_cluster_integration_callout?8047 when user can create a cluster8048 when user has not dismissed8049 when active_nav_link is in the operations section8050 is expected to equal true8051 when active_nav_link is not in the operations section8052 is expected to equal false8053 when user dismissed8054 is expected to equal false8055 when user can not create a cluster8056 is expected to equal false8057 .show_feature_flags_new_version?8058 when the feature flags new version info has not been dismissed8059 is expected to be truthy8060 when the feature flags new version has been dismissed8061 is expected to be falsy8062 .show_registration_enabled_user_callout?8063 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: true8064 is expected to equal true8065 gitlab_com: true, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false8066 is expected to equal false8067 gitlab_com: false, current_user: user, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false8068 is expected to equal false8069 gitlab_com: false, current_user: admin, signup_enabled: false, user_dismissed: false, controller_path: "admin/users", expected_result: false8070 is expected to equal false8071 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: true, controller_path: "admin/users", expected_result: false8072 is expected to equal false8073 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "projects/issues", expected_result: false8074 is expected to equal false8075 .show_unfinished_tag_cleanup_callout?8076 when user has not dismissed8077 is expected to equal true8078 when user dismissed8079 is expected to equal false8080 .show_security_newsletter_user_callout?8081 when `current_user` is not an admin8082 is expected to equal false8083 when user has dismissed callout8084 is expected to equal false8085 when `current_user` is an admin and user has not dismissed callout8086 is expected to equal true8087 .show_pages_menu_callout?8088 when user has not dismissed8089 is expected to equal true8090 when user dismissed8091 is expected to equal false8092 #web_hook_disabled_dismissed?8093 without a project8094 is false8095 with a project8096 when the web-hook failure callout has never been dismissed8097 is false8098 when the web-hook failure callout has been dismissed8099 is true8100 is true when passed as a presenter8101 when there was an older failure8102 is true8103 when there has been a more recent failure8104 is false8105Gitlab::ProtocolAccess8106 .allowed?8107 protocol: "web", project: nil, admin_setting: nil, namespace_setting: nil, expected_result: true8108 is expected to equal true8109 protocol: "ssh", project: nil, admin_setting: nil, namespace_setting: nil, expected_result: true8110 is expected to equal true8111 protocol: "http", project: nil, admin_setting: nil, namespace_setting: nil, expected_result: true8112 is expected to equal true8113 protocol: "ssh", project: nil, admin_setting: "", namespace_setting: nil, expected_result: true8114 is expected to equal true8115 protocol: "http", project: nil, admin_setting: "", namespace_setting: nil, expected_result: true8116 is expected to equal true8117 protocol: "ssh", project: nil, admin_setting: "ssh", namespace_setting: nil, expected_result: true8118 is expected to equal true8119 protocol: "http", project: nil, admin_setting: "http", namespace_setting: nil, expected_result: true8120 is expected to equal true8121 protocol: "ssh", project: nil, admin_setting: "http", namespace_setting: nil, expected_result: false8122 is expected to equal false8123 protocol: "http", project: nil, admin_setting: "ssh", namespace_setting: nil, expected_result: false8124 is expected to equal false8125 protocol: "ssh", project: p1, admin_setting: nil, namespace_setting: "all", expected_result: true8126 is expected to equal true8127 protocol: "http", project: p1, admin_setting: nil, namespace_setting: "all", expected_result: true8128 is expected to equal true8129 protocol: "ssh", project: p1, admin_setting: nil, namespace_setting: "ssh", expected_result: true8130 is expected to equal true8131 protocol: "http", project: p1, admin_setting: nil, namespace_setting: "http", expected_result: true8132 is expected to equal true8133 protocol: "ssh", project: p1, admin_setting: nil, namespace_setting: "http", expected_result: false8134 is expected to equal false8135 protocol: "http", project: p1, admin_setting: nil, namespace_setting: "ssh", expected_result: false8136 is expected to equal false8137 protocol: "ssh", project: p1, admin_setting: "", namespace_setting: "all", expected_result: true8138 is expected to equal true8139 protocol: "http", project: p1, admin_setting: "", namespace_setting: "all", expected_result: true8140 is expected to equal true8141 protocol: "ssh", project: p1, admin_setting: "ssh", namespace_setting: "ssh", expected_result: true8142 is expected to equal true8143 protocol: "http", project: p1, admin_setting: "http", namespace_setting: "http", expected_result: true8144 is expected to equal true8145Integrations::Harbor8146 behaves like Integrations::ResetSecretFields8147 #exposing_secrets_fields8148 returns an array of strings8149 #reset_secret_fields?8150 returns false if no exposing field has changed8151 returns true if any exposing field has changed8152 validation callback8153 when an exposing field has changed8154 clears all secret fields8155 when a secret field has been updated8156 does not clear this secret field8157 when a secret field has been updated with the same value8158 does not clear this secret field8159 when no exposing field has changed8160 does not clear any secret fields8161 masked password8162 is expected not to allow :password to be ‹"hello"›8163 is expected not to allow :password to be ‹"hello world"›8164 is expected not to allow :password to be ‹"hello$VARIABLEworld"›8165 is expected not to allow :password to be ‹"hello\\rworld"›8166 is expected to allow :password to be ‹"helloworld"›8167 url8168 is expected not to allow :url to be ‹"https://192.168.1.1"›8169 is expected not to allow :url to be ‹"https://127.0.0.1"›8170 is expected to allow :url to be ‹"https://demo.goharbor.io"›8171 hostname8172 returns the host of the integration url8173 #fields8174 returns custom fields8175 #test8176 gets response from Gitlab::Harbor::Client#ping8177 #help8178 renders prompt information8179 .to_param8180 returns the name of the integration8181 ci variables8182 returns vars when harbor_integration is activated8183 when harbor_integration is inactive8184 returns []8185 with robot username8186 returns username variable with $$8187Ci::PipelineEditorHelper8188 can_view_pipeline_editor?8189 user can view editor if they can collaborate8190 user can not view editor if they cannot collaborate8191 #js_pipeline_editor_data8192 with a project with commits8193 returns pipeline editor data8194 with an empty project8195 returns pipeline editor data8196 with a project with no repository8197 returns pipeline editor data8198 with a remote CI config8199 returns true for uses-external-config in pipeline editor data8200 with a CI config from an external project8201 returns true for uses-external-config in pipeline editor data8202 with a non-default branch name8203 returns correct values8204ChatNotificationWorker8205 instructs sidekiq not to retry on failure8206 #perform8207 does nothing when the build no longer exists8208 sends a response for an existing build8209 when the trace sections could not be found8210 reschedules the job8211 raises an error after 300 seconds of retrying8212 #send_response8213 when a responder could not be found8214 does nothing8215 when a responder could be found8216 sends the response for a succeeded build8217 sends the response for a failed build8218Mutations::Ci::Runner::Update8219 is expected to require graphql authorizations :update_runner8220 #resolve8221 when the user cannot admin the runner8222 generates an error8223 when required arguments are missing8224 raises an error8225 when user can update runner8226 with valid arguments8227 updates runner with correct values8228 with associatedProjects argument8229 with id set to project runner8230 updates runner attributes and project relationships8231 with user not allowed to assign runner8232 does not update runner8233 with an empty list of projects8234 removes project relationships8235 with id set to instance runner8236 raises error8237 with non-existing project ID in associatedProjects argument8238 does not change associated projects8239 with out-of-range maximum_timeout and missing tag_list8240 returns a descriptive error8241 with too long maintenance note8242 returns a descriptive error8243Gitlab::ImportExport::RemoteStreamUpload8244 #execute8245 when download request and upload request return 2008246 uploads the downloaded content8247 when upload method is put8248 uploads using the put method8249 when download request does not return 2008250 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while downloading file. Code: 404"8251 when upload request does not returns 2008252 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while uploading file. Code: 403"8253 when download URL is a local address8254 raises error8255 when local requests are allowed8256 raises does not error8257 when download URL is a local network8258 raises error8259 when local network requests are allowed8260 raises does not error8261 when upload URL is a local address8262 raises error8263 when local requests are allowed8264 raises does not error8265 when upload URL it is a request to local network8266 raises error8267 when local network requests are allowed8268 raises does not error8269 when upload URL resolves to a local address8270 raises error8271 Gitlab::ImportExport::RemoteStreamUpload::ChunkStream8272 StringIO#copy_stream compatibility8273 copies all chunks8274 with chunks smaller and bigger than buffer size8275 copies all chunks8276ErrorTracking::SentryClient::IssueLink8277 # order random8278 #create_issue_link8279 is expected to be present8280 behaves like Sentry API response size limit8281 raises an exception when response is too large8282 behaves like calls sentry api8283 calls sentry api8284 with redirects8285 behaves like no Sentry redirects8286 does not follow redirects8287 when exception is raised8288 behaves like maps Sentry exceptions8289 HTTParty::Error8290 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"8291 Net::OpenTimeout8292 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"8293 SocketError8294 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"8295 OpenSSL::SSL::SSLError8296 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"8297 Errno::ECONNREFUSED8298 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"8299 StandardError8300 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"8301 when integration_id is not provided8302 is expected to be present8303 behaves like Sentry API response size limit8304 raises an exception when response is too large8305 behaves like calls sentry api8306 calls sentry api8307 with redirects8308 behaves like no Sentry redirects8309 does not follow redirects8310 when exception is raised8311 behaves like maps Sentry exceptions8312 HTTParty::Error8313 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"8314 Net::OpenTimeout8315 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"8316 SocketError8317 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"8318 OpenSSL::SSL::SSLError8319 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"8320 Errno::ECONNREFUSED8321 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"8322 StandardError8323 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"8324Milestones::ClosedIssuesCountService8325 counts closed issues including confidential8326 behaves like a counter caching service8327 #count8328 caches the count8329 #refresh_cache8330 refreshes the cache8331 #delete_cache8332 removes the cache8333 #uncached_count8334 does not cache the count8335Mutations::ReleaseAssetLinks::Update8336 #ready?8337 when link_type is included as an argument but is passed nil8338 raises a validation error8339 #resolve8340 when the current user has access to update the link8341 name8342 when a new name is provided8343 updates the name8344 behaves like no changes to the link except for the8345 does not change other link properties8346 with protected tag8347 when user has access to the protected tag8348 does not have errors8349 when user does not have access to the protected tag8350 raises a resource access error8351 when nil is provided8352 behaves like validation error with messages8353 returns the updated link as nil8354 returns a validation error8355 url8356 when a new URL is provided8357 updates the url8358 behaves like no changes to the link except for the8359 does not change other link properties8360 when nil is provided8361 behaves like validation error with messages8362 returns the updated link as nil8363 returns a validation error8364 filepath8365 when a new filepath is provided8366 updates the filepath8367 behaves like no changes to the link except for the8368 does not change other link properties8369 when nil is provided8370 updates the filepath to nil8371 link_type8372 when a new link type is provided8373 updates the link type8374 behaves like no changes to the link except for the8375 does not change other link properties8376 when the current user does not have access to update the link8377 raises an error8378 when the link doesn't exist8379 raises an error8380Gitlab::SubscriptionPortal8381 .default_subscriptions_url8382 test: false, development: false, result: "https://customers.gitlab.com"8383 is expected to eq "https://customers.gitlab.com"8384 test: false, development: true, result: "https://customers.staging.gitlab.com"8385 is expected to eq "https://customers.staging.gitlab.com"8386 test: true, development: false, result: "https://customers.staging.gitlab.com"8387 is expected to eq "https://customers.staging.gitlab.com"8388 .subscriptions_url8389 when CUSTOMER_PORTAL_URL ENV is unset8390 is expected to eq "https://customers.staging.gitlab.com"8391 when CUSTOMER_PORTAL_URL ENV is set8392 is expected to eq "https://customers.example.com"8393 .subscriptions_comparison_url8394 is expected to match /\Ahttps:\/\/about\.gitlab\.((cn\/pricing\/saas)|(com\/pricing\/gitlab-com))\/feature-comparison\z/8395 class methods8396 method_name: :default_subscriptions_url, result: "https://customers.staging.gitlab.com"8397 is expected to eq "https://customers.staging.gitlab.com"8398 method_name: :payment_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_validation"8399 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_validation"8400 method_name: :payment_validation_form_id, result: "payment_method_validation"8401 is expected to eq "payment_method_validation"8402 method_name: :registration_validation_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"8403 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"8404 method_name: :registration_validation_form_id, result: "cc_registration_validation"8405 is expected to eq "cc_registration_validation"8406 method_name: :subscriptions_graphql_url, result: "https://customers.staging.gitlab.com/graphql"8407 is expected to eq "https://customers.staging.gitlab.com/graphql"8408 method_name: :subscriptions_more_minutes_url, result: "https://customers.staging.gitlab.com/buy_pipeline_minutes"8409 is expected to eq "https://customers.staging.gitlab.com/buy_pipeline_minutes"8410 method_name: :subscriptions_more_storage_url, result: "https://customers.staging.gitlab.com/buy_storage"8411 is expected to eq "https://customers.staging.gitlab.com/buy_storage"8412 method_name: :subscriptions_manage_url, result: "https://customers.staging.gitlab.com/subscriptions"8413 is expected to eq "https://customers.staging.gitlab.com/subscriptions"8414 method_name: :subscriptions_instance_review_url, result: "https://customers.staging.gitlab.com/instance_review"8415 is expected to eq "https://customers.staging.gitlab.com/instance_review"8416 method_name: :subscriptions_gitlab_plans_url, result: "https://customers.staging.gitlab.com/gitlab_plans"8417 is expected to eq "https://customers.staging.gitlab.com/gitlab_plans"8418 method_name: :edit_account_url, result: "https://customers.staging.gitlab.com/customers/edit"8419 is expected to eq "https://customers.staging.gitlab.com/customers/edit"8420 .add_extra_seats_url8421 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/extra_seats"8422 .upgrade_subscription_url8423 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/upgrade/5"8424 .renew_subscription_url8425 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/renew"8426 constants8427 constant_name: "REGISTRATION_VALIDATION_FORM_ID", result: "cc_registration_validation"8428 is expected to eq "cc_registration_validation"8429StageSerializer8430 #represent8431 with a single entity8432 serializes the stage object8433 with an array of entities8434 serializes the array of pipelines8435Sidebars::Projects::Menus::ZentaoMenu8436 behaves like ZenTao menu with CE version8437 #render?8438 when issues integration is disabled8439 returns false8440 when issues integration is enabled8441 returns true8442 renders menu link8443 renders external-link icon8444 renders ZenTao menu8445 does not contain items8446Packages::Pypi::SimplePackageVersionsPresenter8447 #body8448 for project8449 behaves like pypi package presenter8450 avoids N+1 database queries8451 version: ">=2.7", expected_version: ">=2.7", with_package1: true8452 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>"8453 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>", with_package1: true8454 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>"8455 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0", with_package1: false8456 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>"8457 for group8458 behaves like pypi package presenter8459 avoids N+1 database queries8460 version: ">=2.7", expected_version: ">=2.7", with_package1: true8461 is expected to include "<a href=\"http://localhost/api/v4/groups/2261/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c0ebf6cc735a18ee5066ac1381bb590\" data-requires-python=\">=2.7\">sample-project-1.0.0.tar.gz</a>"8462 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>", with_package1: true8463 is expected to include "<a href=\"http://localhost/api/v4/groups/2261/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...requires-python=\""><script>alert(1)</script>\">sample-project-1.0.0.tar.gz</a>"8464 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0", with_package1: false8465 is expected to include "<a href=\"http://localhost/api/v4/groups/2261/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c735a18ee5066ac1381bb590\" data-requires-python=\">=2.7, !=3.0\">sample-project-2.0.0.tar.gz</a>"8466 with package files pending destruction8467 is expected not to include "package_file_pending_destruction"8468Users::MergeRequestInteraction8469 declarative policy delegation8470 delegates to the merge request8471 #can_merge?8472 when the user cannot merge8473 is expected not to be can merge8474 when the user can merge8475 is expected to be can merge8476 #can_update?8477 when the user cannot update the MR8478 is expected not to be can update8479 when the user can update the MR8480 is expected to be can update8481 #review_state8482 when the user has not been asked to review the MR8483 is expected to be nil8484 implies not reviewed8485 when the user has been asked to review the MR8486 implies not reviewed8487 when the user has provided a review8488 is expected to eq "reviewed"8489 implies reviewed8490 #approved?8491 when the user has not approved the MR8492 is expected not to be approved8493 when the user has approved the MR8494 is expected to be approved8495admin/dashboard/index.html.haml8496 shows version of GitLab Workhorse8497 includes revision of GitLab for pre VERSION8498 shows the tag for GitLab version8499 does not include license breakdown8500 shows database versions for all database models8501 when show_version_check? is true8502 renders the version check badge8503 GitLab KAS8504 KAS enabled8505 includes KAS version8506 KAS disabled8507 does not include KAS version8508Clusters::AgentToken8509 is expected to belong to agent class_name => Clusters::Agent required: true8510 is expected to belong to created_by_user class_name => User optional: true8511 is expected to validate that the length of :description is at most 10248512 is expected to validate that the length of :name is at most 2558513 is expected to validate that :name cannot be empty/falsy8514 behaves like having unique enum values8515 has unique values in "status"8516 scopes8517 .order_last_used_at_desc8518 sorts by last_used_at descending, with null values at last8519 .with_status8520 is expected to contain exactly #<Clusters::AgentToken id: 4, created_at: "2023-03-30 11:58:08.027703715 +0000", updated_at: "2023-03...ated_by_user_id: 1267, description: nil, name: "agent-token-4", last_used_at: nil, status: "active">8521 #token8522 is generated on save8523 is at least 50 characters8524 #to_ability_name8525 is :cluster8526Gitlab::ImportExport::Base::RelationObjectSaver8527 #save8528 saves relation object8529 when subrelation is present8530 saves relation object with subrelations8531 when subrelation is not a collection8532 saves subrelation as part of the relation object itself8533 when subrelation collection count is small8534 saves subrelation as part of the relation object itself8535 when some subrelations are invalid8536 saves valid subrelations and logs invalid subrelation8537 when invalid subrelation can still be persisted8538 saves the subrelation8539 when importable is group8540 saves relation without invalid subrelations8541Bitbucket::Representation::PullRequest8542 #iid8543 is expected to eq 18544 #author8545 is expected to eq "Ben"8546 is expected to be nil8547 #description8548 is expected to eq "Text"8549 is expected to be nil8550 #state8551 is expected to eq "merged"8552 is expected to eq "closed"8553 is expected to eq "closed"8554 is expected to eq "opened"8555 #title8556 is expected to eq "Issue"8557 #source_branch_name8558 is expected to eq "feature"8559 is expected to be nil8560 #source_branch_sha8561 is expected to eq "abcd123"8562 is expected to be nil8563 #target_branch_name8564 is expected to eq "master"8565 is expected to be nil8566 #target_branch_sha8567 is expected to eq "abcd123"8568 is expected to be nil8569Resolvers::Ci::RunnersResolver8570 #resolve8571 when user cannot see runners8572 returns no runners8573 when user can see runners8574 when admin mode setting is disabled8575 returns all the runners8576 when admin mode setting is enabled8577 when in admin mode8578 returns all the runners8579 when not in admin mode8580 returns no runners8581 with obj not set to nil8582 raises an error8583 Allowed query arguments8584 with active filter8585 calls RunnersFinder with expected arguments8586 with both active and paused filter8587 calls RunnersFinder with expected arguments8588 with paused filter8589 calls RunnersFinder with expected arguments8590 with neither paused or active filters8591 calls RunnersFinder with expected arguments8592Gitlab::Ci::Config::External::File::Base8593 #matching?8594 when a location is present8595 returns true8596 with a location is missing8597 returns false8598 #valid?8599 when location is not a string8600 is expected to be falsy8601 when location is not a YAML file8602 is expected to be falsy8603 when location has not a valid naming scheme8604 is expected to be falsy8605 when location is a valid .yml extension8606 is expected to be truthy8607 when location is a valid .yaml extension8608 is expected to be truthy8609 when there are YAML syntax errors8610 is not a valid file8611 when the class has no validate_context!8612 raises an error8613 #to_hash8614 with includes8615 does expand hash to include the template8616 #metadata8617 is expected to eq {:context_project=>nil, :context_sha=>"HEAD"}8618 #eql?8619 when the other file has the same params8620 is expected to eq true8621 when the other file has not the same params8622 is expected to eq false8623 #hash8624 with a project8625 is expected to eq -1424994295315116188626 without a project8627 is expected to eq 32812946598884260308628Gitlab::Config::Entry::Validators8629 Gitlab::Config::Entry::Validators::MutuallyExclusiveKeysValidator8630 context: "with mutually exclusive keys", config: {:foo=>1, :bar=>2}, valid_result: false8631 validates the instance8632 context: "without mutually exclusive keys", config: {:foo=>1}, valid_result: true8633 validates the instance8634 context: "without mutually exclusive keys", config: {:bar=>1}, valid_result: true8635 validates the instance8636 context: "with other keys", config: {:foo=>1, :baz=>2}, valid_result: true8637 validates the instance8638 Gitlab::Config::Entry::Validators::DisallowedKeysValidator8639 config: {:foo=>"1"}, disallowed_keys: "foo", ignore_nil: false, valid_result: false8640 validates the instance8641 config: {:foo=>"1", :bar=>"2", :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: false, valid_result: false8642 validates the instance8643 config: {:baz=>"1", :qux=>"2"}, disallowed_keys: "", ignore_nil: false, valid_result: true8644 validates the instance8645 config: {:foo=>nil}, disallowed_keys: "foo", ignore_nil: false, valid_result: false8646 validates the instance8647 config: {:foo=>nil, :bar=>"2", :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: false, valid_result: false8648 validates the instance8649 config: {:foo=>nil, :bar=>nil, :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: false, valid_result: false8650 validates the instance8651 config: {:baz=>nil, :qux=>nil}, disallowed_keys: "", ignore_nil: false, valid_result: true8652 validates the instance8653 config: {:foo=>"1"}, disallowed_keys: "foo", ignore_nil: true, valid_result: false8654 validates the instance8655 config: {:foo=>"1", :bar=>"2", :baz=>"3"}, disallowed_keys: "foo, bar", ignore_nil: true, valid_result: false8656 validates the instance8657 config: {:baz=>"1", :qux=>"2"}, disallowed_keys: "", ignore_nil: true, valid_result: true8658 validates the instance8659 config: {:foo=>nil}, disallowed_keys: "", ignore_nil: true, valid_result: true8660 validates the instance8661 config: {:foo=>nil, :bar=>"2", :baz=>"3"}, disallowed_keys: "bar", ignore_nil: true, valid_result: false8662 validates the instance8663 config: {:foo=>nil, :bar=>nil, :baz=>"3"}, disallowed_keys: "", ignore_nil: true, valid_result: true8664 validates the instance8665 config: {:baz=>nil, :qux=>nil}, disallowed_keys: "", ignore_nil: true, valid_result: true8666 validates the instance8667 when custom message is provided8668 returns the custom message when invalid8669Gitlab::Ci::Build::DurationParser8670 .validate_duration8671 with never8672 is expected to be truthy8673 with never value camelized8674 is expected to be truthy8675 with a duration8676 is expected to be truthy8677 caches data8678 without a duration8679 is expected to be falsy8680 caches data8681 #seconds_from_now8682 with never8683 is expected to be nil8684 with an empty string8685 is expected to be nil8686 with a duration8687 is expected to within one second of 2023-03-31 11:58:21 UTC8688Packages::Debian::GenerateDistributionKeyService8689 returns an Hash8690Gitlab::Sanitizers::ExceptionMessage8691 .clean8692 when error is a URI::InvalidURIError8693 is expected to eq "bad URI(is not URI?): [FILTERED]"8694 when error is an Addressable::URI::InvalidURIError8695 uri: "http://foo:bar", result: "Invalid port number: [FILTERED]"8696 is expected to eq "Invalid port number: [FILTERED]"8697 uri: "http://foo:%eb", result: "Invalid encoding in port"8698 is expected to eq "Invalid encoding in port"8699 uri: "ht%0atp://foo", result: "Invalid scheme format: [FILTERED]"8700 is expected to eq "Invalid scheme format: [FILTERED]"8701 uri: "http:", result: "Absolute URI missing hierarchical segment: [FILTERED]"8702 is expected to eq "Absolute URI missing hierarchical segment: [FILTERED]"8703 uri: "::http", result: "Cannot assemble URI string with ambiguous path: [FILTERED]"8704 is expected to eq "Cannot assemble URI string with ambiguous path: [FILTERED]"8705 uri: "http://foo bar", result: "Invalid character in host: [FILTERED]"8706 is expected to eq "Invalid character in host: [FILTERED]"8707 with any other exception8708 is not invoked and does nothing8709Packages::PackageFileFinder8710 #execute8711 behaves like package file finder examples8712 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:58:28.306744000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>8713 with file_name_like8714 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:58:28.306744000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>8715 behaves like not returning pending_destruction package files8716 returns the correct package file8717 with unknown file_name8718 is expected to be nil8719 #execute!8720 behaves like package file finder examples8721 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:58:28.306744000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>8722 with file_name_like8723 is expected to eq #<Packages::PackageFile id: 52, package_id: 52, created_at: "2023-03-30 11:58:28.306744000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>8724 behaves like not returning pending_destruction package files8725 returns the correct package file8726 with unknown file_name8727 is expected to raise ActiveRecord::RecordNotFound8728ClustersFinder8729 #execute8730 when scope is all8731 is expected to contain exactly #<Clusters::Cluster id: 33, 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> and #<Clusters::Cluster id: 36, user_id: 1299, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>8732 when scope is active8733 is expected to contain exactly #<Clusters::Cluster id: 39, user_id: 1303, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>8734 when scope is inactive8735 is expected to contain exactly #<Clusters::Cluster id: 42, user_id: 1307, provider_type: "gcp", platform_type: "kubernetes", created...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>8736Gitlab::Ci::Config::Entry::AllowFailure8737 validations8738 when entry config value is valid8739 with boolean values8740 behaves like valid entry8741 #value8742 returns key value8743 #valid?8744 is valid8745 behaves like valid entry8746 #value8747 returns key value8748 #valid?8749 is valid8750 with hash values8751 behaves like valid entry8752 #value8753 returns key value8754 #valid?8755 is valid8756 behaves like valid entry8757 #value8758 returns key value8759 #valid?8760 is valid8761 when entry value is not valid8762 when it has a wrong type8763 behaves like invalid entry8764 #valid?8765 is expected not to be valid8766 is expected to include "allow failure config should be a hash or a boolean value"8767 with string exit codes8768 behaves like invalid entry8769 #valid?8770 is expected not to be valid8771 is expected to include "allow failure exit codes should be an array of integers or an integer"8772 with array of strings as exit codes8773 behaves like invalid entry8774 #valid?8775 is expected not to be valid8776 is expected to include "allow failure exit codes should be an array of integers or an integer"8777 when it has an extra keys8778 behaves like invalid entry8779 #valid?8780 is expected not to be valid8781 is expected to include "allow failure config contains unknown keys: extra"8782projects/merge_requests/_commits.html.haml8783 shows commits from source project8784 shows signature verification badge8785Packages::Composer::VersionParserService8786 #execute8787 tagname: nil, branchname: "master", expected_version: "dev-master"8788 is expected to eq "dev-master"8789 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"8790 is expected to eq "dev-my-feature"8791 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"8792 is expected to eq "dev-12-feature"8793 tagname: nil, branchname: "v1", expected_version: "1.x-dev"8794 is expected to eq "1.x-dev"8795 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"8796 is expected to eq "1.x-dev"8797 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"8798 is expected to eq "1.7.x-dev"8799 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"8800 is expected to eq "1.7.x-dev"8801 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"8802 is expected to eq "1.7.x-dev"8803 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"8804 is expected to eq "1.0.0"8805 tagname: "v1.0", branchname: nil, expected_version: "1.0"8806 is expected to eq "1.0"8807 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"8808 is expected to eq "1.0.1+meta"8809 tagname: "1.0", branchname: nil, expected_version: "1.0"8810 is expected to eq "1.0"8811 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"8812 is expected to eq "1.0.2"8813 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"8814 is expected to eq "1.0.2-beta2"8815 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"8816 is expected to eq "1.0.1+meta"8817SafeZip::Extract8818 #extract8819 when using valid-simple.zip archive8820 behaves like extracts archive8821 when specifying directories8822 does extract archive8823 when specifying files8824 does extract archive8825 when using valid-symlinks-first.zip archive8826 behaves like extracts archive8827 when specifying directories8828 does extract archive8829 when specifying files8830 does extract archive8831 when using valid-non-writeable.zip archive8832 behaves like extracts archive8833 when specifying directories8834 does extract archive8835 when specifying files8836 does extract archive8837 when zip files are invalid8838 name: "invalid-symlink-does-not-exist.zip", message: "does not exist"8839 behaves like fails to extract archive8840 does not extract archive8841 name: "invalid-symlinks-outside.zip", message: "Symlink cannot be created"8842 behaves like fails to extract archive8843 does not extract archive8844 name: "invalid-unexpected-large.zip", message: "larger when inflated"8845 behaves like fails to extract archive8846 does not extract archive8847 when no matching directories are found8848 behaves like fails to extract archive8849 does not extract archive8850 when no matching files are found8851 behaves like fails to extract archive8852 does not extract archive8853Projects::MoveUsersStarProjectsService8854 #execute8855 moves the user's stars from one project to another8856 rollbacks changes if transaction fails8857Gitlab::Database::Count::TablesampleCountStrategy8858 #count8859 for tables with an estimated small size8860 performs an exact count8861 for tables with an estimated large size8862 performs a tablesample count8863 insufficient permissions8864 returns an empty hash8865Gitlab::Database::Migrations::SidekiqHelpers8866 # order random8867 sidekiq migration helpers8868 #sidekiq_remove_jobs8869 removes all related job instances from the job classes' queues8870 when the constant is not defined8871 doesn't try to delete it8872 when the constant is defined8873 will use it find job instances to delete8874 when job instances are in the scheduled set8875 removes all related job instances from the scheduled set8876 when job instances are in the retry set8877 removes all related job instances from the retry set8878 when job fails to be deleted8879 and does not work enough times in a row before max attempts8880 tries the max attempts without succeeding8881 and then it works enough times in a row before max attempts8882 succeeds8883 #sidekiq_queue_length8884 when queue is empty8885 returns zero8886 when queue contains jobs8887 returns correct size of the queue8888 #sidekiq_queue_migrate8889 migrates jobs from one sidekiq queue to another8890GitlabServicePingWorker8891 does not run for SaaS when triggered from cron8892 runs for SaaS when triggered manually8893 delegates to ServicePing::SubmitService8894 passes Hash arguments to ServicePing::SubmitService8895 obtains a 86400 second exclusive lease8896 sleeps for between 0 and 60 seconds8897 payload computation8898 creates RawUsageData entry when there is NO entry with the same recorded_at timestamp8899 updates RawUsageData entry when there is entry with the same recorded_at timestamp8900 reports errors and continue on execution8901 when lease is not obtained8902 does not invoke ServicePing::SubmitService8903WebHooks::LogDestroyWorker8904 #perform8905 with a Web hook8906 deletes the relevant logs8907 is idempotent8908 raises and tracks an error if destroy failed8909 with extra arguments8910 does not raise an error8911 with no arguments8912 does not raise an error8913 with empty arguments8914 does not raise an error8915 with unknown hook8916 does not raise an error8917Gitlab::Database::Transaction::Context8918 #set_start_time8919 sets start_time8920 #increment_savepoints8921 is expected to eq 28922 #increment_rollbacks8923 is expected to eq 38924 #increment_releases8925 is expected to eq 48926 #set_depth8927 is expected to eq 28928 #track_sql8929 is expected to eq ["SELECT 1", "SELECT * FROM users"]8930 #track_backtrace8931 is expected to be a kind of Array8932 is expected to all be a kind of Array8933 is expected to eq 18934 is expected to be a kind of String8935 appends the backtrace8936 #duration8937 is expected to be >= 08938 when savepoints count exceeds threshold8939 behaves like logs transaction data8940 logs once upon COMMIT8941 logs once upon ROLLBACK8942 logs again when log throttle duration passes8943 #should_log? returns true8944 when duration exceeds threshold8945 behaves like logs transaction data8946 logs once upon COMMIT8947 logs once upon ROLLBACK8948 logs again when log throttle duration passes8949 #should_log? returns true8950 when there are too many external HTTP requests8951 behaves like logs transaction data8952 logs once upon COMMIT8953 logs once upon ROLLBACK8954 logs again when log throttle duration passes8955 #should_log? returns true8956 when there are too many too long external HTTP requests8957 behaves like logs transaction data8958 logs once upon COMMIT8959 logs once upon ROLLBACK8960 logs again when log throttle duration passes8961 #should_log? returns true8962API::Helpers::PaginationStrategies8963 #paginate_with_strategies8964 yields paginated relation8965 calls #finalize with first value returned from block8966 returns whatever the block returns8967 with paginator_params8968 correctly passes multiple parameters8969 #paginator8970 offset pagination8971 when keyset pagination is available and enforced for the relation8972 when a request scope is given8973 when the scope limit is exceeded8974 renders a 405 error8975 when keyset pagination is not enforced8976 returns no errors8977 when the scope limit is not exceeded8978 delegates to OffsetPagination8979 when a request scope is not given8980 when the default limits are exceeded8981 renders a 405 error8982 when the default limits are not exceeded8983 delegates to OffsetPagination8984 when keyset pagination is not available for the relation8985 delegates to OffsetPagination8986 for keyset pagination8987 when keyset pagination is available8988 delegates to Pager8989 when keyset pagination is not available8990 renders a 501 error8991GoogleCloud::FetchGoogleIpListService8992 # order random8993 #execute8994 returns a list of IPAddr subnets and caches the result8995 with rate limit in effect8996 returns rate limit error8997 when the URL returns a 4048998 behaves like IP range retrieval failure8999 does not cache the result and logs an error9000 when the URL returns too large of a payload9001 behaves like IP range retrieval failure9002 does not cache the result and logs an error9003 when the URL returns HTML9004 behaves like IP range retrieval failure9005 does not cache the result and logs an error9006 when the URL returns empty results9007 behaves like IP range retrieval failure9008 does not cache the result and logs an error9009Resolvers::ReleasesResolver9010 #resolve9011 behaves like releases and group releases resolver9012 when the user does not have access to the project9013 returns an empty array9014 when the user has full access to the project's releases9015 returns all releases associated to the project9016 when order_by is released_at9017 with sort: desc9018 returns the releases ordered by released_at in descending order9019 with sort: asc9020 returns the releases ordered by released_at in ascending order9021 when order_by is created_at9022 with sort: desc9023 returns the releases ordered by created_at in descending order9024 with sort: asc9025 returns the releases ordered by created_at in ascending order9026Resolvers::Projects::ServicesResolver9027 is expected to have nullable GraphQL type ServiceConnection9028 #resolve9029 when project does not have services9030 when user cannot access services9031 when anonymous user9032 behaves like cannot access project services9033 raises error9034 when user developer9035 behaves like cannot access project services9036 raises error9037 when user can read project services9038 behaves like no project services9039 returns empty collection9040 when project has services9041 when user cannot access services9042 when anonymous user9043 behaves like cannot access project services9044 raises error9045 when user developer9046 behaves like cannot access project services9047 raises error9048 when user can read project services9049 returns project services9050Prometheus::ProxyVariableSubstitutionService9051 #execute9052 does not alter params passed to the service9053 is expected to eq #<ActionController::Parameters {"query"=>"up{environment=\"{{ci_environment_slug}}\"}"} permitted: true>9054 with predefined variables9055 with nil query9056 behaves like success9057 replaces variables with values9058 with liquid format9059 behaves like success9060 replaces variables with values9061 with custom variables9062 behaves like success9063 replaces variables with values9064 with predefined variables in variables parameter9065 behaves like success9066 replaces variables with values9067 with invalid variables parameter9068 behaves like error9069 returns error9070 with nil variables9071 behaves like success9072 replaces variables with values9073 gsub variable substitution tolerance for weirdness9074 with whitespace around variable9075 behaves like success9076 replaces variables with values9077 with empty variables9078 behaves like success9079 replaces variables with values9080 with multiple occurrences of variable in string9081 behaves like success9082 replaces variables with values9083 with multiple variables in string9084 behaves like success9085 replaces variables with values9086 with unknown variables in string9087 behaves like success9088 replaces variables with values9089 with unknown and known variables in string9090 behaves like success9091 replaces variables with values9092 __range9093 behaves like success9094 replaces variables with values9095Mutations::Labels::Create9096 is expected to require graphql authorizations :admin_label9097 when creating a project label9098 behaves like create labels mutation9099 #resolve9100 when the user does not have permission to create a label9101 raises an error9102 when the user can create a label9103 creates label with correct values9104 when creating a group label9105 behaves like create labels mutation9106 #resolve9107 when the user does not have permission to create a label9108 raises an error9109 when the user can create a label9110 creates label with correct values9111 #ready?9112 when passing both project_path and group_path9113 raises an argument error9114 when passing only project_path or group_path9115 does not raise an error9116Tooling::Danger::SidekiqArgs9117 # order random9118 #args_changed?9119 before: " - def perform", after: " + def perform(abc)", result: true9120 returns correct result9121 before: " - def perform", after: " + def perform(abc)", result: true9122 returns correct result9123 before: " - def perform(abc)", after: " + def perform(def)", result: true9124 returns correct result9125 before: " - def perform(abc, def)", after: " + def perform(abc)", result: true9126 returns correct result9127 before: " - def perform(abc, def)", after: " + def perform(def, abc)", result: true9128 returns correct result9129 before: " - def perform", after: " - def perform", result: false9130 returns correct result9131 before: " + def perform", after: " + def perform", result: false9132 returns correct result9133 before: " - def perform(abc)", after: " - def perform(abc)", result: false9134 returns correct result9135 before: " + def perform(abc)", after: " + def perform(abc)", result: false9136 returns correct result9137 before: " - def perform(abc)", after: " + def perform_foo(abc)", result: false9138 returns correct result9139 #changed_worker_files9140 returns added, modified, and renamed_after files by default9141 with include_ee: :exclude9142 returns spec files without EE-specific files9143 with include_ee: :only9144 returns EE-specific spec files only9145 #add_comment_for_matched_line9146 when args are changed9147 adds suggestion at the correct lines9148 when args are not changed9149 does not add suggestion9150Resolvers::Ci::JobsResolver9151 #resolve9152 when security_report_types is empty9153 returns all of the pipeline's jobs9154 when security_report_types is present9155 returns the pipeline's jobs with the given security report types9156 when a job has tags9157 returns jobs with tags when applicable9158 when a job is manual9159 returns jobs with when set to 'manual'9160Gitlab::RackAttack::UserAllowlist9161 input: nil, elements: []9162 has the expected elements9163 implements empty?9164 implements include?9165 input: "", elements: []9166 has the expected elements9167 implements empty?9168 implements include?9169 input: "123", elements: [123]9170 has the expected elements9171 implements empty?9172 implements include?9173 input: "123,456", elements: [123, 456]9174 has the expected elements9175 implements empty?9176 implements include?9177 input: "123,foobar, 456,", elements: [123, 456]9178 has the expected elements9179 implements empty?9180 implements include?9181RuboCop::Cop::Gitlab::AvoidFeatureCategoryNotOwned9182 # order random9183 for grape endpoints9184 flags when passed as a hash for a Grape endpoint as keyword args9185 flags when passed as a hash for a Grape endpoint in a hash9186 behaves like defining feature category on a class9187 flags a method call on a class9188 flags a method call on a class with an array passed9189 flags a method call on a class with an array passed9190 in workers9191 behaves like defining feature category on a class9192 flags a method call on a class9193 flags a method call on a class with an array passed9194 flags a method call on a class with an array passed9195 in controllers9196 behaves like defining feature category on a class9197 flags a method call on a class9198 flags a method call on a class with an array passed9199 flags a method call on a class with an array passed9200Terraform.gitlab-ci.yml9201 the created pipeline9202 on master branch9203 creates init, validate,build terraform jobs as well as kics-iac-sast job9204 outside the master branch9205 does not creates a deploy and a test job9206 on merge request9207 creates a pipeline with no jobs9208Ci::BuildPendingState9209 associations9210 is expected to belong to build class_name => Ci::Build required: false inverse_of => pending_state9211 validations9212 is expected to validate that :build cannot be empty/falsy9213 #crc329214 when checksum does not exist9215 returns nil9216 when checksum is in hexadecimal9217 returns decimal representation of the checksum9218 partitioning9219 with build9220 sets partition_id to the current partition value9221 when it is already set9222 does not change the partition_id value9223 without build9224 is expected to validate that :partition_id cannot be empty/falsy9225 does not change the partition_id value9226Labels::UpdateService9227 #execute9228 with color in hex-code9229 updates the label9230 with color in allowed name9231 updates the label9232 with color in up-case allowed name9233 updates the label9234 with color surrounded by spaces9235 updates the label9236 with unknown color9237 doesn't update the label9238 with no color9239 doesn't update the label9240Projects::RecordTargetPlatformsWorker9241 has the `until_executed` deduplicate strategy9242 overrides #lease_release? to return false9243 when project uses programming language for Apple platform9244 when project uses Swift programming language9245 behaves like performs detection9246 creates and executes a Projects::AppleTargetPlatformDetectorService instance for the project9247 logs extra metadata on done9248 when project uses Objective-C programming language9249 behaves like performs detection9250 creates and executes a Projects::AppleTargetPlatformDetectorService instance for the project9251 logs extra metadata on done9252 when project uses programming language for Android platform9253 when project uses Java9254 behaves like performs detection9255 creates and executes a Projects::AndroidTargetPlatformDetectorService instance for the project9256 logs extra metadata on done9257 when feature flag is disabled9258 behaves like does nothing9259 does nothing9260 when project uses Kotlin9261 behaves like performs detection9262 creates and executes a Projects::AndroidTargetPlatformDetectorService instance for the project9263 logs extra metadata on done9264 when feature flag is disabled9265 behaves like does nothing9266 does nothing9267 when the project does not use programming languages for Apple or Android platforms9268 behaves like does nothing9269 does nothing9270 when project is not found9271 does nothing9272 when exclusive lease cannot be obtained9273 behaves like does nothing9274 does nothing9275Ci::GenerateCodequalityMrDiffReportService9276 #execute9277 when head pipeline has codequality mr diff report9278 returns status and data9279 when head pipeline does not have a codequality mr diff report9280 returns status and error message9281 when head pipeline has codequality mr diff report and no merge request associated9282 returns status and error message9283Gitlab::GitlabImport::Client9284 all OAuth2 client options are symbols9285 uses membership and simple flags9286 #projects9287 behaves like pagination params9288 allows page_limit param9289 allows per_page param9290 allows starting_page param9291 #issues9292 behaves like pagination params9293 allows page_limit param9294 allows per_page param9295 allows starting_page param9296 #issue_comments9297 behaves like pagination params9298 allows page_limit param9299 allows per_page param9300 allows starting_page param9301Gitlab::Ci::Config::Yaml9302 # order random9303 .load_result!9304 when syntax is invalid9305 returns an invalid result object9306 when the first document is a header9307 considers the first document as header and the second as content9308 with explicit document start marker9309 considers the first document as header and the second as content9310 when the first document is not a header9311 considers the first document as content for backwards compatibility9312 with explicit document start marker9313 considers the first document as content for backwards compatibility9314 when the first document is not a header and second document is empty9315 considers the first document as content9316 with explicit document start marker9317 considers the first document as content9318 .load!9319 loads a single-doc YAML file9320 loads the first document from a multi-doc YAML file9321 when YAML is invalid9322 raises an error9323 when ci_multi_doc_yaml is disabled9324 loads a single-doc YAML file9325 loads the first document from a multi-doc YAML file9326Types::UntrustedRegexp9327 is expected to eq "UntrustedRegexp"9328 is expected to eq "A regexp containing patterns sourced from user input"9329 .coerce_input9330 input: ".*", expected_result: ".*"9331 with input .*9332 is expected to eq ".*"9333 input: "(.*)", expected_result: "(.*)"9334 with input (.*)9335 is expected to eq "(.*)"9336 input: "[test*]+", expected_result: "[test*]+"9337 with input [test*]+9338 is expected to eq "[test*]+"9339 input: "*v1", expected_result: :raise_error9340 with input *v19341 raises a coercion error9342 input: "[test*", expected_result: :raise_error9343 with input [test*9344 raises a coercion error9345 input: "test*+", expected_result: :raise_error9346 with input test*+9347 raises a coercion error9348 .coerce_result9349 input: "1", expected_result: "1"9350 with input 19351 is expected to eq "1"9352 input: 1, expected_result: "1"9353 with input 19354 is expected to eq "1"9355 input: true, expected_result: "true"9356 with input true9357 is expected to eq "true"9358Gitlab::Auth::IpRateLimiter9359 #register_fail!9360 bans after 3 consecutive failures9361 with a whitelisted netmask9362 behaves like whitelisted IPs9363 does not ban after max retry limit9364 with a whitelisted IP9365 behaves like whitelisted IPs9366 does not ban after max retry limit9367 when IP is allow listed9368 behaves like skips the rate limiter9369 does not call Rack::Attack::Allow2Ban.reset!9370 does not call Rack::Attack::Allow2Ban.banned?9371 does not call Rack::Attack::Allow2Ban.filter9372 when rate limiter is disabled9373 behaves like skips the rate limiter9374 does not call Rack::Attack::Allow2Ban.reset!9375 does not call Rack::Attack::Allow2Ban.banned?9376 does not call Rack::Attack::Allow2Ban.filter9377 #trusted_ip?9378 when ip is in the trusted list9379 is expected to be truthy9380 when ip is not in the trusted list9381 is expected to be falsey9382UserInteractedProject9383 is expected to validate that :project_id cannot be empty/falsy9384 is expected to validate that :user_id cannot be empty/falsy9385 .track9386 sets project accordingly9387 sets user accordingly9388 only creates a record once per user/project9389 for all actions (event types)9390 creates a record9391 for all actions (event types)9392 creates a record9393 for all actions (event types)9394 creates a record9395 for all actions (event types)9396 creates a record9397 for all actions (event types)9398 creates a record9399 for all actions (event types)9400 creates a record9401 for all actions (event types)9402 creates a record9403 for all actions (event types)9404 creates a record9405 for all actions (event types)9406 creates a record9407 for all actions (event types)9408 creates a record9409 for all actions (event types)9410 creates a record9411 for all actions (event types)9412 creates a record9413 with an event without a project9414 ignores the event9415Gitlab::FormBuilders::GitlabUiFormBuilder9416 #submit9417 without pajamas_button enabled9418 renders a submit input9419 with pajamas_button enabled9420 renders a submit button9421 #gitlab_ui_checkbox_component9422 when not using slots9423 without optional arguments9424 renders correct html9425 with optional arguments9426 renders help text9427 with checkbox_options: { multiple: true }9428 renders labels with correct for attributes9429 when using slots9430 renders correct html9431 #gitlab_ui_radio_component9432 when not using slots9433 without optional arguments9434 renders correct html9435 with optional arguments9436 renders help text9437 when using slots9438 renders correct html9439 #gitlab_ui_datepicker9440 without optional arguments9441 renders correct html9442 with optional arguments9443 renders correct html9444Gitlab::GonHelper9445 #add_gon_variables9446 when HTTPS is enabled9447 sets the secure flag to true9448 when HTTP is enabled9449 sets the secure flag to false9450 when sentry is configured9451 with legacy sentry configuration9452 sets sentry dsn and environment from config9453 with sentry settings9454 when enable_new_sentry_clientside_integration is disabled9455 does not set sentry dsn and environment from config9456 when enable_new_sentry_clientside_integration is enabled9457 sets sentry dsn and environment from config9458 #push_frontend_feature_flag9459DEPRECATION WARNING: Invalid Feature Flag my_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)9460 pushes a feature flag to the frontend9461 #push_force_frontend_feature_flag9462 pushes a feature flag to the frontend with the provided value9463 pushes a disabled feature flag if provided value is nil9464 #default_avatar_url9465 returns an absolute URL9466Gitlab::Memory::Watchdog::Configurator9467 # order random9468 .configure_for_sidekiq9469 behaves like as configurator9470 configures the correct handler9471 configures the correct event reporter9472 configures the correct logger9473 when sleep_time_seconds is not passed through the environment9474 configures the correct sleep time9475 when sleep_time_seconds is passed through the environment9476 configures the correct sleep time9477 when sleep_time_seconds is less than MIN_SIDEKIQ_SLEEP_INTERVAL_S seconds9478 configures the correct sleep time9479 with monitors9480 when settings are set via environment variables9481 behaves like as monitor configurator9482 executes monitors and returns correct results9483 when only SIDEKIQ_MEMORY_KILLER_MAX_RSS is set via environment variable9484 behaves like as monitor configurator9485 executes monitors and returns correct results9486 when only SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS is set via environment variable9487 behaves like as monitor configurator9488 executes monitors and returns correct results9489 when both SIDEKIQ_MEMORY_KILLER_MAX_RSS and SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS are not set9490 behaves like as monitor configurator9491 executes monitors and returns correct results9492 .configure_for_puma9493 behaves like as configurator9494 configures the correct handler9495 configures the correct event reporter9496 configures the correct logger9497 when sleep_time_seconds is not passed through the environment9498 configures the correct sleep time9499 when sleep_time_seconds is passed through the environment9500 configures the correct sleep time9501 with DISABLE_PUMA_WORKER_KILLER set to true9502 when settings are set via environment variables9503 behaves like as monitor configurator9504 executes monitors and returns correct results9505 when settings are not set via environment variables9506 behaves like as monitor configurator9507 executes monitors and returns correct results9508 with DISABLE_PUMA_WORKER_KILLER set to false9509 when settings are set via environment variables9510 behaves like as monitor configurator9511 executes monitors and returns correct results9512 when settings are not set via environment variables9513 behaves like as monitor configurator9514 executes monitors and returns correct results9515Gitlab::Ci::Pipeline::Chain::Create9516 when pipeline is ready to be saved9517 saves a pipeline9518 does not break the chain9519 creates stages9520 when pipeline has validation errors9521 breaks the chain9522 appends validation error9523 tags persistence9524 without tags9525 extracts an empty tag list9526 with tags9527 bulk inserts tags9528Gitlab::ZoomLinkExtractor9529 #links9530 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"]9531 is expected to eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]9532 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]9533 is expected to eq ["https://zoom.us/j/1123433"]9534 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]9535 is expected to eq ["https://zoom.us/my/1123433"]9536 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]9537 is expected to eq ["https://gitlab.zoom.us/s/1123433"]9538 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]9539 is expected to eq ["https://gitlab.zoom.us/j/1123433"]9540 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]9541 is expected to eq ["https://gitlab.zoom.us/my/1123433"]9542 #match?9543 is true when a zoom link found9544 is false when no zoom link found9545Gitlab::DependencyLinker::GemfileLinker9546 .support?9547 supports Gemfile9548 supports gems.rb9549 does not support other files9550 #link9551 links sources9552 links dependencies9553 links to external dependencies9554 links GitHub repos9555 links Git repos9556Ci::EnsureStageService#execute9557 when build has a stage assigned9558 does not create a new stage9559 when build does not have a stage assigned9560 creates a new stage9561 when build is invalid9562 does not create a new stage9563 when new stage can not be created because of an exception9564 retries up to two times9565Gitlab::ImportExport::SnippetRepoSaver9566 bundle a project Git repo9567 with project snippet9568 bundles the repo successfully9569 when snippet does not have a repository9570 returns true9571 does not create any file9572Gitlab::Issuable::Clone::CopyResourceEventsService9573 copies the resource label events9574 with existing milestone events9575 copies existing resource milestone events9576 with existing state events9577 copies existing state events as expected9578Types::BaseArgument9579 adds a formatted `deprecated_reason` to the subject9580 appends to the description if given9581 does not append to the description if it is absent9582 adds information about the replacement if provided9583 supports named reasons: renamed9584 supports named reasons: alpha9585 supports :alpha9586 does not allow :alpha and :deprecated together9587 validations9588 raises an informative error if `deprecation_reason` is used9589 raises an error if a required property is missing9590 raises an error if milestone is not a String9591 visible?9592 defaults to true9593 when subject is deprecated9594 defaults to true9595 returns false if `remove_deprecated` is true in context9596 required argument declarations9597 accepts nullable, required arguments9598 accepts required, non-nullable arguments9599 accepts non-required arguments9600 accepts no required argument declaration9601SystemNotes::IncidentsService9602 # order random9603 #add_timeline_event9604 posts the correct text to the system note9605 behaves like a system note9606 has the correct attributes9607 #edit_timeline_event9608 behaves like a system note9609 has the correct attributes9610 when only timeline event's occurred_at was changed9611 posts the correct text to the system note9612 when only timeline event's note was changed9613 posts the correct text to the system note9614 when both timeline events occurred_at and note was changed9615 posts the correct text to the system note9616 when was changed reason is unknown9617 posts the correct text to the system note9618 #delete_timeline_event9619 posts the correct text to the system note9620 behaves like a system note9621 has the correct attributes9622Types::Ci::JobType9623 is expected to eq "CiJob"9624 is expected to expose permissions using Types::PermissionTypes::Ci::Job9625 exposes the expected fields9626 #web_path9627 returns the web path of the job9628 #browse_artifacts_path9629 returns the path to browse the artifacts of the job9630Resolvers::GroupMembersResolver9631 is expected to have nullable GraphQL type GroupMemberConnection9632 behaves like querying members with a group9633 #resolve9634 finds all resource members9635 with sort options9636 searches users by user name9637 with search9638 when the search term matches a user9639 searches users by user name9640 when the search term does not match any user9641 is empty9642 when user can not see resource members9643 generates an error9644IncidentManagement::LinkAlerts::DestroyService9645 # order random9646 #execute9647 when current user is a guest9648 responds with error9649 does not unlink alert from the incident9650 when current user is a developer9651 responds with success9652 when unlinking internal alert9653 unlinks the alert9654 when unlinking external alert9655 unlinks the alert9656 when unlinking an alert not related to the incident9657 does not change the incident's alerts9658 does not change another incident's alerts9659 does not change the alert's incident9660Groups::AutoDevopsService#execute9661 when user does not have enough privileges9662 raises exception9663 when user has enough privileges9664 updates group auto devops enabled accordingly9665 when group has projects9666 reflects changes on projects9667 when group has subgroups9668 reflects changes on subgroups9669 when subgroups have projects9670 reflects changes on projects9671Sidebars::YourWork::Menus::TodosMenu9672 # order random9673 #has_pill?9674 when count is zero9675 returns false9676 when count is larger than zero9677 returns true9678 #pill_count9679 returns the todos_pending_count of the user9680 memoizes the query9681Gitlab::DependencyLinker::CartfileLinker9682 .support?9683 supports Cartfile9684 supports Cartfile.private9685 does not support other files9686 #link9687 links dependencies9688 links Git repos9689 links binary-only frameworks9690admin mode on tasks9691 with a regular user9692 matches the expected admin mode9693 with an admin9694 matches the expected admin mode9695Support::AbilityCheck9696 # order random9697 checking ability9698 with valid direct ability9699 policy ability is found9700 with empty TODO yaml9701 policy ability is found9702 with non-Hash TODO yaml9703 policy ability is found9704 with unreachable ability9705 policy ability is not found and emits a warning9706 when ignored in TODO YAML9707 policy ability is not found without warning9708 with unknown ability9709 policy ability is not found and emits a warning9710 with delegated ability9711 policy ability is found9712Gitlab::SidekiqMiddleware::DuplicateJobs::Client9713 with until_executing strategy9714 behaves like client duplicate job9715 #call9716 adds a correct duplicate tag to the jobs9717 without scheduled deduplication9718 does not mark a job that's scheduled in the future as a duplicate9719 with scheduled deduplication9720 adds a correct duplicate tag to the jobs9721 with until_executed strategy9722 behaves like client duplicate job9723 #call9724 adds a correct duplicate tag to the jobs9725 without scheduled deduplication9726 does not mark a job that's scheduled in the future as a duplicate9727 with scheduled deduplication9728 adds a correct duplicate tag to the jobs9729Guest9730 .can_pull?9731 when project is private9732 does not allow to pull the repo9733 when project is internal9734 does not allow to pull the repo9735 when project is public9736 when repository is disabled9737 does not allow to pull the repo9738 when repository is accessible only by team members9739 does not allow to pull the repo9740 when repository is enabled9741 allows to pull the repo9742DisableJoins9743 passing disable_joins as an association option9744 when the association is a bare has_one9745 disallows the disable_joins option9746 when the association is a belongs_to9747 disallows the disable_joins option9748 when the association is has_one :through9749 allows the disable_joins option9750 when the association is a bare has_many9751 disallows the disable_joins option9752 when the association is a has_many :through9753 allows the disable_joins option9754 querying has_one :through when disable_joins is set9755 when disable_joins evaluates to true9756 executes separate queries9757 when disable_joins evalutes to false9758 executes a single query9759 querying has_many :through when disable_joins is set9760 when disable_joins evaluates to true9761 executes separate queries9762 when disable_joins evalutes to false9763 executes a single query9764 querying STI relationships9765 filters correctly by the STI type across multiple queries9766 querying polymorphic relationships9767 filters correctly by the polymorphic type across multiple queries9768Gitlab::ImportExport::DesignRepoSaver9769 bundle a design Git repo9770 bundles the repo successfully9771 when the repo is empty9772 bundles the repo successfully9773Mutations::AlertManagement::Alerts::Todo::Create9774 is expected to require graphql authorizations :update_alert_management_alert9775 #resolve9776 behaves like an incident management tracked event9777 .track_event9778 tracks the event using redis9779 behaves like Snowplow event tracking with RedisHLL context9780 behaves like Snowplow event tracking9781 is emitted9782 when user does not have permissions9783 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable9784 when project is invalid9785 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable9786 when alert is invalid9787 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable9788 when the create service yields errors9789 is expected not to change `Todo.count`9790 is expected to eq ["error"]9791 with valid inputs9792 creates a new todo9793 is expected to eq {:alert=>#<AlertManagement::Alert id:17 namespace957/project929^alert#1>, :errors=>[], :todo=>#<Todo ...30 12:00:02.076357000 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil>}9794Admin::AbuseReportEntity9795 # order random9796 #as_json9797 exposes correct attributes9798 correctly exposes `reported user`9799 correctly exposes `reporter`9800 correctly exposes :reported_user_path9801 correctly exposes :reporter_path9802 correctly exposes :block_user_path9803 correctly exposes :remove_report_path9804 correctly exposes :remove_user_and_report_path9805 correctly exposes :message9806 user_blocked9807 when user is blocked9808 is expected to equal true9809 when user is not blocked9810 is expected to equal false9811LfsFileLockEntity9812 exposes basic attrs of the lock9813 exposes the owner info9814Gitlab::PhabricatorImport::Cache::Map9815 #get_gitlab_model9816 returns nil if there was nothing cached for the phabricator id9817 returns the object if it was set in redis9818 extends the TTL for the cache key9819 sets the object in redis once if a block was given and nothing was cached9820 does not cache `nil` objects9821 #set_gitlab_model9822 sets the class and id in redis with a ttl9823notify/changed_milestone_email.html.haml9824 milestone without start and due dates9825 renders without date range9826 milestone with start and due dates9827 renders with date range9828Gitlab::GithubImport::Importer::IssueEventsImporter9829 #parallel?9830 when running in parallel mode9831 is expected to be parallel9832 when running in sequential mode9833 is expected not to be parallel9834 #execute9835 when running in parallel mode9836 imports events in parallel9837 when running in sequential mode9838 imports notes in sequence9839 #sequential_import9840 imports each event in sequence9841 #parallel_import9842 imports each note in parallel9843 #importer_class9844 is expected to eq Gitlab::GithubImport::Importer::IssueEventImporter9845 #representation_class9846 is expected to eq Gitlab::GithubImport::Representation::IssueEvent9847 #sidekiq_worker_class9848 is expected to eq Gitlab::GithubImport::ImportIssueEventWorker9849 #object_type9850 is expected to eq :issue_event9851 #collection_method9852 is expected to eq :repository_issue_events9853 #id_for_already_imported_cache9854 returns the ID of the given note9855 #collection_options9856 is expected to eq {}9857Gitlab::Git::RemoteMirror9858 #update9859 delegates to the Gitaly client9860 wraps gitaly errors9861Gitlab::Ci::Config::Entry::PullPolicy9862 #value9863 when config value is nil9864 is expected to be nil9865 when retry value is an empty array9866 is expected to eq nil9867 when retry value is string9868 is expected to eq ["always"]9869 when retry value is array9870 is expected to eq ["always", "if-not-present"]9871 validation9872 when retry value is nil9873 is expected to eq false9874 when retry value is an empty array9875 is expected to eq false9876 when retry value is a hash9877 is expected to eq false9878 when retry value is string9879 is expected to eq true9880 when it is an invalid policy9881 is expected to eq false9882 when it is an empty string9883 is expected to eq false9884 when retry value is array9885 is expected to eq true9886 when config contains an invalid policy9887 is expected to eq false9888shared/milestones/_issuable.html.haml9889 issue9890 links to the page for the issue9891 links to issues page for user9892 merge request9893 links to merge requests page for user9894 links to the page for the merge request9895RefMatcher9896 #matching9897 when refs are strings9898 is expected to contain exactly "v1.0"9899 behaves like matching_refs9900 when there is no match9901 is expected to contain exactly9902 when ref pattern is a wildcard9903 is expected to contain exactly "v1.0" and "v1.1"9904 when refs are ref objects9905 is expected to contain exactly #<Double "tag">9906 behaves like matching_refs9907 when there is no match9908 is expected to contain exactly9909 when ref pattern is a wildcard9910 is expected to contain exactly #<Double "tag"> and #<Double "tag">9911 #matches?9912 is expected to be truthy9913 when ref_name is empty9914 is expected to be falsey9915 when ref pattern matches wildcard9916 is expected to be truthy9917 when ref pattern does not match wildcard9918 is expected to be falsey9919 #wildcard?9920 is expected to be falsey9921 when pattern is a wildcard9922 is expected to be truthy9923Banzai::IssuableExtractor9924 returns instances of issuables for nodes with references9925 caching9926 saves records to cache9927RuboCop::Cop::UsageData::HistogramWithLargeTable9928 # order random9929 with non related method9930 does not register an offense9931 with large tables9932 with one-level constants9933 when calling histogram(Issue)9934 registers an offense9935 when calling histogram(::Issue)9936 registers an offense9937 when calling histogram(Issue.closed)9938 registers an offense9939 when calling histogram(::Issue.closed)9940 registers an offense9941 with two-level constants9942 when calling histogram(::Ci::Build)9943 registers an offense9944 when calling histogram(::Ci::Build.active)9945 registers an offense9946 when calling histogram(Ci::Build)9947 registers an offense9948 when calling histogram(Ci::Build.active)9949 registers an offense9950 with non related class9951 does not register an offense9952Gitlab::Analytics::CycleAnalytics::Median9953 retruns nil when no results9954 returns median duration seconds as float9955Gitlab::Bullet::Exclusions9956 #execute9957 with preferred method of path and method name9958 behaves like loads exclusion results9959 is expected to match [["_path_", "_method_"]]9960 with file pattern9961 behaves like loads exclusion results9962 is expected to match [["_file_pattern_"]]9963 with file name and line range9964 behaves like loads exclusion results9965 is expected to match [["file_name.rb", 5..10]]9966 without exclusions9967 behaves like loads exclusion results9968 is expected to match [[]]9969 without exclusions key in config9970 behaves like loads exclusion results9971 is expected to match []9972 when config file does not exist9973 provides an empty array for exclusions9974 #validate_paths!9975 when validating scenarios9976 when using paths with method name9977 when source file for exclusion exists9978 is expected not to raise Exception9979 when source file for exclusion does not exist9980 is expected to raise RuntimeError9981 when using path only9982 when source file for exclusion exists9983 is expected not to raise Exception9984 when source file for exclusion does not exist9985 is expected to raise RuntimeError9986 when path_with_method is false for a file pattern9987 is expected not to raise Exception9988Pajamas::CardComponent9989 slots9990 renders card header9991 renders card body9992 renders footer9993 with defaults9994 does not have a header or footer9995 renders the card and body9996 with custom options9997 renders card options9998 renders header options9999 renders body options10000 renders footer options10001CycleAnalytics::ProjectLevelStageAdapter10002 calculates median10003 lists events10004 presents the data as json10005BranchesHelper10006 #access_levels_data10007 when access_levels is nil10008 is expected to be empty10009 when access levels are provided10010 returns the correct array10011 when an access level tied to a deploy key is provided10012 returns the correct array10013AlertManagement::HttpIntegrations::UpdateService10014 #execute10015 when the current_user is anonymous10016 behaves like error response10017 has an informative message10018 when current_user does not have permission to create integrations10019 behaves like error response10020 has an informative message10021 when an error occurs during update10022 behaves like error response10023 has an informative message10024 with name param10025 successfully updates the integration10026 with active param10027 successfully updates the integration10028 with regenerate_token flag10029 successfully updates the integration10030Mutations::Clusters::AgentTokens::Create10031 is expected to require graphql authorizations :create_cluster10032 #resolve10033 without token permissions10034 raises an error if the resource is not accessible to the user10035 with user permissions10036 creates a new token10037 returns token information10038RuboCop::Cop::Style::RegexpLiteralMixedPreserve10039 # order random10040 when EnforcedStyle is set to mixed_preserve10041 a single-line `//` regex without slashes10042 is accepted10043 a single-line `//` regex with slashes10044 registers an offense and corrects10045 when configured to allow inner slashes10046 is accepted10047 a multi-line `//` regex without slashes10048 is accepted10049 a multi-line `//` regex with slashes10050 registers an offense and corrects10051 a single-line %r regex without slashes10052 is accepted10053 a single-line %r regex with slashes10054 is accepted10055 when configured to allow inner slashes10056 is accepted10057 a multi-line %r regex without slashes10058 is accepted10059 a multi-line %r regex with slashes10060 is accepted10061Gitlab::Ci::Reports::TestReportSummary10062 #total10063 when test report summary has several build report results10064 returns all the total count in a hash10065 #test_suites10066 when test report summary has several build report results10067 returns test suites grouped by name10068Resolvers::Ci::ProjectRunnersResolver10069 # order random10070 #resolve10071 when user cannot see runners10072 returns no runners10073 with user as project admin10074 returns all runners available to the project10075 with obj set to nil10076 raises an error10077 with obj not set to project10078 raises an error10079 Allowed query arguments10080 calls RunnersFinder with expected arguments10081Gitlab::WordDiff::ChunkCollection10082 #add10083 adds elements to the chunk collection10084 #content10085 when no elements in the collection10086 is expected to eq ""10087 when elements exist10088 is expected to eq "Hi GitLab!"10089 #reset10090 clears the collection10091 #marker_ranges10092 returns marker ranges for every chunk with changes10093Gitlab::Audit::NullAuthor10094 .for10095 returns an DeletedAuthor10096 returns an UnauthenticatedAuthor when id equals -110097 returns a CiRunnerTokenAuthor when details contain runner registration token10098 returns a CiRunnerTokenAuthor when details contain runner authentication token10099 returns DeployTokenAuthor when id equals -210100 returns DeployKeyAuthor when id equals -310101 #current_sign_in_ip10102 is expected to be nil10103projects/pipeline_schedules/_pipeline_schedule10104 taking ownership of schedule10105 when non-owner is signed in10106 non-owner can take ownership of pipeline10107 when owner is signed in10108 owner cannot take ownership of pipeline10109WorkItems::Widgets::LabelsService::UpdateService10110 # order random10111 #prepare_update_params10112 when params are set10113 sets params correctly10114 when widget does not exist in new type10115 sets correct params to remove work item labels10116Gitlab::DependencyLinker::GodepsJsonLinker10117 .support?10118 supports Godeps.json10119 does not support other files10120 #link10121 links the package name10122 links GitHub repos10123 links GitLab projects10124 links Golang packages10125Gitlab::Diff::StatsCache10126 VERSION is set10127 #read10128 returns the expected stats10129 #write_if_empty10130 when the cache already exists10131 does not write the stats10132 when the cache does not exist10133 writes the stats10134 when given non utf-8 characters10135 writes the stats10136 when given empty stats10137 does not write the stats10138 #clear10139 clears cache10140 with multiple cache versions10141 does not read from a stale cache10142Mutations::Security::CiConfiguration::BaseSecurityAnalyzer10143 raises a NotImplementedError error if the resolve method is called on the base class10144ServiceHookPresenter10145 #logs_details_path10146 is expected to eq "/namespace987/project959/-/settings/integrations/drone_ci/hook_logs/18"10147 #logs_retry_path10148 is expected to eq "/namespace988/project960/-/settings/integrations/drone_ci/hook_logs/19/retry"10149registrations/welcome/show10150 is expected not to have visible css "label[for=\"user_setup_for_company\"]"10151 is expected to have visible button "Get started!" that is not disabled10152 is expected not to have visible css "input[name=\"user[email_opted_in]\"]"10153Gitlab::Middleware::BasicHealthCheck10154 #call10155 outside IP10156 returns a 40410157 forwards the call for other paths10158 with X-Forwarded-For headers10159 returns 200 response when endpoint is allowed10160 returns 404 when whitelist is not configured10161 whitelisted IP10162 returns 200 response when endpoint is hit10163 forwards the call for other paths10164Gitlab::RequestEndpoints10165 .all_api_endpoints10166 selects all feature API classes10167 .all_controller_actions10168 selects all feature controllers and action names10169Gitlab::Auth::Atlassian::User10170 .assign_identity_from_auth_hash!10171 behaves like an atlassian identity10172 sets the proper values10173 #save10174 for an existing user10175 with an existing Atlassian Identity10176 finds the existing user and identity10177 behaves like an atlassian identity10178 sets the proper values10179 for a new user10180 creates the user and identity10181Namespaces::RandomizedSuffixPath10182 # order random10183 #call10184 returns path without count when count is 010185 returns path suffixed with count when between 0 and 410186 adds a "randomized" suffix when MAX_TRIES is exhausted10187 adds an offset to the "randomized" suffix when MAX_TRIES is exhausted10188 #to_s10189 represents with given path10190Gitlab::CrossProjectAccess10191 #add_check10192 keeps track of the properties to check10193 builds the check correctly10194 merges the checks of a parent class into existing checks of a subclass10195 merges the existing checks of a superclass into the checks of a subclass10196 #find_check10197 returns a check when it was defined for a superclass10198 caches the result for a subclass10199 returns the checks for the closest class if there are more checks available10200API::Entities::Branch10201 #as_json10202 includes basic fields10203Gitlab::HealthChecks::MasterCheck10204 when Puma runs in Clustered mode10205 .available?10206 is expected to equal true10207 .readiness10208 when no worker registered10209 succeeds10210 when worker registers itself10211 when reading from pipe succeeds10212 succeeds10213 when read pipe is open but not ready for reading10214 succeeds10215 when master finishes early10216 fails10217 when Puma runs in Single mode10218 .available?10219 is expected to equal false10220BulkImports::Common::Extractors::JsonExtractor10221 #extract10222 returns ExtractedData10223 #remove_tmpdir10224 removes tmp dir10225Integrations::HasWebHook10226 # order random10227 when integration does not respond to enable_ssl_verification10228 is expected to eq true10229 when hook_url and url_variables are not implemented10230 is expected to raise NotImplementedError10231 is expected to raise NotImplementedError10232 when integration responds to enable_ssl_verification10233 is expected to eq true10234FeatureFlagSummaryEntity10235 has summary information10236Ci::DailyBuildGroupReportResultEntity10237 #as_json10238 is expected to include :date10239 is expected not to include :group_name10240 is expected to include :coverage10241 when given param_type is not allowed10242 is expected not to include :coverage10243 is expected not to include :something_else10244Gitlab::Graphql::Representation::SubmoduleTreeEntry10245 .decorate10246 returns array of SubmoduleTreeEntry10247UserStatusCleanup::BatchWorker10248 is labeled as idempotent10249 performs multiple times sequentially without raising an exception10250 #perform10251 cleans up the records10252 when no records are scheduled for cleanup10253 does nothing10254Gitlab::Metrics::Subscribers::Ldap10255 # order random10256 .payload10257 when SafeRequestStore is empty10258 returns an empty array10259 when LDAP recorded some values10260 returns the populated payload10261 #observe_event10262 tracks LDAP request count10263 tracks LDAP request duration10264 stores per-request counters10265Gitlab::DependencyLinker::GoSumLinker10266 .support?10267 supports go.sum10268 does not support other files10269 #link10270 links modules10271 links checksums10272Gitlab::Kubernetes::RolloutInstances10273 #pod_instances10274 returns an instance for a deployment with one pod10275 returns a pending pod for a missing replica10276 returns instances when there are two stable deployments10277 returns instances for two deployments with different tracks10278 sorts stable tracks after canary tracks10279Users::EmailVerification::GenerateTokenService10280 #execute10281 with a valid attribute10282 attr: :unlock_token10283 returns a token and it's digest10284 attr: :confirmation_token10285 returns a token and it's digest10286 with an invalid attribute10287 raises an error10288shared/projects/_inactive_project_deletion_alert10289 without a project10290 behaves like does not render10291 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"10292 with a project10293 when the project is active10294 behaves like does not render10295 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"10296 when the project is inactive10297 does render the alert10298Types::JiraImportType10299 is expected to eq "JiraImport"10300 has the expected fields10301Autocomplete::ActsAsTaggableOn::TagsFinder10302 #execute10303 with empty params10304 returns all tags10305 filter by search10306 with an empty search term10307 returns all tags10308 with a search containing 2 characters10309 returns the tag that strictly matches the search term10310 with a search containing 3 characters10311 returns the tag that partially matches the search term10312 limit10313 limits the result set by the limit constant10314Types::Notes::SystemNoteMetadataType10315 # order random10316 is expected to require graphql authorizations :read_note10317 is expected to have graphql field :description_version10318 is expected to have graphql field :action10319 is expected to have graphql field :id10320Gitlab::Ci::Pipeline::Chain::TemplateUsage10321 #perform!10322 tracks the included templates10323Gitlab::LetsEncrypt::Challenge10324 #status10325 delegates to Acme::Client::Resources::Challenge10326 #token10327 delegates to Acme::Client::Resources::Challenge10328 #file_content10329 delegates to Acme::Client::Resources::Challenge10330 #request_validation10331 delegates to Acme::Client::Resources::Challenge10332 #error10333 delegates to Acme::Client::Resources::Challenge10334Gitlab::Ci::Config::External::Mapper::VariablesExpander10335 # order random10336 #process10337 when locations are strings10338 expands variables10339 when locations are hashes10340 expands variables10341 when locations are arrays10342 expands variables10343Types::TimeType10344 is expected to eq "Time"10345 coerces Time object into ISO 860110346 coerces an ISO-time into Time object10347 rejects invalid input10348 allows nil10349Evidences::EvidenceSerializer10350 represents an EvidenceEntity entity10351Peek::Views::Rugged10352 returns no results10353 returns aggregated results10354Gitlab::CycleAnalytics::Summary::Value10355 Gitlab::CycleAnalytics::Summary::Value::None10356 returns `-`10357 Gitlab::CycleAnalytics::Summary::Value::Numeric10358 returns the string representation of the number10359 Gitlab::CycleAnalytics::Summary::Value::PrettyNumeric10360 #to_s10361 returns `-` when the number is 010362 returns `-` when the number is nil10363 returns the string representation of the number10364InstanceMetadataPolicy10365 for any logged-in user10366 is expected to be allowed :read_instance_metadata10367 for anonymous users10368 is expected not to be allowed :read_instance_metadata10369Import::Github::GistsImportService10370 # order random10371 #execute10372 when import in progress10373 returns error10374 when import was not started10375 returns success10376 when user token is invalid10377 returns 401 error10378Types::ReleaseAssetLinkType10379 is expected to require graphql authorizations :read_release10380 has the expected fields10381Gitlab::Ci::Reports::CodequalityMrDiff10382 #initialize!10383 when quality has degradations10384 with several degradations on the same line10385 generates quality report for mr diff10386 with several degradations on several files10387 returns quality report for mr diff10388 when quality has no degradation10389 returns an empty hash10390Types::IssuableSortEnum10391 is expected to eq "IssuableSort"10392 exposes all the existing issuable sort values10393Types::WorkItems::Widgets::HierarchyType10394 exposes the expected fields10395Types::Ci::TestSuiteType10396 is expected to eq "TestSuite"10397 contains attributes related to a pipeline test suite10398Banzai::Filter::JiraImport::AdfToCommonmarkFilter10399 renders a complex document10400 renders original source when it is invalid JSON10401 renders original source when missing document node10402Types::Ci::RecentFailuresType10403 is expected to eq "RecentFailures"10404 contains attributes related to a recent failure history for a test case10405Integrations::BaseSlackNotification10406 # order random10407 #metrics_key_prefix (private method)10408 raises a NotImplementedError error when not defined10409Clusters::Project10410 is expected to belong to cluster required: false10411 is expected to belong to project required: false10412 is expected to have many kubernetes_namespaces10413MemberPresenter10414 # order random10415 #last_owner?10416 raises `NotImplementedError`10417RequestAwareEntity10418 includes URL helpers10419 includes method for checking abilities10420 fetches request from options10421Gitlab::PhabricatorImport::Conduit::User10422 #users10423 calls the api with the correct params10424 returns an array of parsed responses10425 performs multiple requests if more phids than the maximum page size are passed10426Types::Ci::Config::IncludeType10427 is expected to eq "CiConfigInclude"10428 exposes the expected fields10429MembersDestroyer::UnassignIssuablesWorker10430 calls the Members::UnassignIssuablesService with the params it was given10431 when unsupported membership source entity10432 exits early and logs error10433Gitlab::Database::SchemaMigrations::Migrations10434 #touch_all10435 creates a file containing a checksum for each version with a matching migration10436 #load_all10437 when there are no version files10438 does nothing10439 when there are version files10440 inserts the missing versions into schema_migrations10441Types::Projects::TopicType10442 is expected to eq "Topic"10443 is expected to have graphql fields :id, :name, :title, :description, :description_html, and :avatar_url10444Gitlab::Faraday::ErrorCallback10445 #call10446 with no errors10447 is expected to eq "success"10448 with errors10449 with no callback10450 uses the default callback10451 with a custom callback10452 uses the custom callback10453Gitlab::Ci::SecureFiles::X509Name10454 # order random10455 .parse10456 parses an X509Name object into a hash format10457 returns an empty hash when an error occurs10458Types::ReleaseSourceType10459 is expected to require graphql authorizations :read_code10460 has the expected fields10461DetailedStatusEntity10462 #as_json10463 contains status details10464Types::QueryComplexityType10465 is expected to have graphql fields :limit and :score10466 works when executed10467Types::Ci::Config::IncludeTypeEnum10468 is expected to eq "CiConfigIncludeType"10469 exposes all the existing include types10470Gitlab::Usage::Metrics::Instrumentations::MergeRequestWidgetExtensionMetric10471 # order random10472 raises an exception if widget option is not present10473 behaves like a correct instrumented metric value10474 has correct value10475Gitlab::GrapeLogging::Loggers::PerfLogger10476 .parameters10477 when no performance data present10478 is expected not to include {:redis_calls => 1}10479 when performance data present10480 is expected to include {:redis_calls => 1}10481shared/gitlab_version/_security_patch_upgrade_alert10482 # order random10483 when show_security_patch_upgrade_alert? is true10484 renders the security patch upgrade alert modal10485Gitlab::ImportExport::LegacyRelationTreeSaver10486 #serialize10487 uses FastHashSerializer10488Gitlab::Git::Conflict::Resolver10489 #conflicts10490 returns list of conflicts10491 when GRPC::FailedPrecondition is raised10492 rescues and raises Gitlab::Git::Conflict::Resolver::ConflictSideMissing10493Types::Ci::PipelineScheduleStatusEnum10494 # order random10495 is expected to eq "PipelineScheduleStatus"10496 exposes the status of a pipeline schedule10497Gitlab::GitalyClient::DiffStitcher10498 enumeration10499 combines segregated diff messages together10500Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker10501 # order random10502 #import10503 imports an pull request review requests10504EnableSearchSettingsHelper10505 #enable_search_settings10506 sets content for before_content10507Projects::Security::ConfigurationController routing10508 routes to #show10509IssuableBaseService10510 # order random10511 #constructor_container_arg10512 is expected to eq {:container=>"some-value"}10513Types::Ci::VariableInterface10514 is expected to have graphql fields :id, :key, :raw, :value, and :variable_type10515Knapsack report was generated. Preview:10517 "spec/lib/gitlab/relative_positioning/mover_spec.rb": 188.29091757400056,10518 "spec/services/auth/container_registry_authentication_service_spec.rb": 68.39481807500033,10519 "spec/services/git/branch_hooks_service_spec.rb": 89.82675632500013,10520 "spec/services/notes/update_service_spec.rb": 78.56065665999995,10521 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 77.65171293200001,10522 "spec/services/packages/npm/create_package_service_spec.rb": 44.33350944099948,10523 "spec/finders/ci/runners_finder_spec.rb": 24.138370038001085,10524 "spec/services/members/invitation_reminder_email_service_spec.rb": 10.337033322000934,10525 "spec/lib/gitlab/ci/templates/templates_spec.rb": 13.958989111000847,10526 "spec/models/sent_notification_spec.rb": 29.315165052999873,10527 "spec/models/remote_mirror_spec.rb": 28.18689158699999,10528 "spec/graphql/mutations/merge_requests/set_labels_spec.rb": 27.43351286500001,10529 "spec/models/hooks/web_hook_spec.rb": 7.95032737099973,10530 "spec/lib/gitlab/ci/trace_spec.rb": 11.413944313999309,10531 "spec/lib/gitlab/import_export/project/object_builder_spec.rb": 24.142131577000328,10532 "spec/services/members/groups/creator_service_spec.rb": 12.930946615000721,10533 "spec/graphql/mutations/merge_requests/accept_spec.rb": 19.344434687000103,10534 "spec/services/projects/cleanup_service_spec.rb": 15.90825163199952,10535 "spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb": 19.915731544000664,10536 "spec/models/integrations/chat_message/pipeline_message_spec.rb": 13.252210434999142,10537 "spec/support_specs/helpers/stub_feature_flags_spec.rb": 3.8434116680000443,10538 "spec/lib/container_registry/gitlab_api_client_spec.rb": 4.625051746999816,10539 "spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb": 17.01222943099856,10540 "spec/models/customer_relations/contact_spec.rb": 5.5632106399989425,10541 "spec/lib/banzai/filter/video_link_filter_spec.rb": 15.7743848909995,10542 "spec/workers/concerns/application_worker_spec.rb": 3.2557436369988864,10543 "spec/lib/gitlab/ci/build/rules/rule/clause/changes_spec.rb": 6.289724494999973,10544 "spec/models/concerns/group_descendant_spec.rb": 10.249799985000209,10545 "spec/services/alert_management/alerts/update_service_spec.rb": 6.260014527999374,10546 "spec/lib/gitlab/middleware/read_only_spec.rb": 2.3815482209993206,10547 "spec/rubocop/cop/gitlab/mark_used_feature_flags_spec.rb": 3.883831006998662,10548 "spec/services/branches/delete_merged_service_spec.rb": 10.473784743000579,10549 "spec/lib/gitlab/ci/config/external/mapper_spec.rb": 5.433596058001058,10550 "spec/services/projects/git_deduplication_service_spec.rb": 12.517457627000113,10551 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 2.6272723069996573,10552 "spec/serializers/stage_entity_spec.rb": 11.44564980999894,10553 "spec/services/ci/delete_unit_tests_service_spec.rb": 12.56994583100095,10554 "spec/lib/gitlab_spec.rb": 2.7604727649995766,10555 "spec/lib/gitlab/observability_spec.rb": 4.737537585000609,10556 "spec/presenters/group_clusterable_presenter_spec.rb": 7.0994439580008475,10557 "spec/models/bulk_imports/entity_spec.rb": 5.0112956180000765,10558 "spec/graphql/mutations/issues/set_confidential_spec.rb": 8.090739413000847,10559 "spec/helpers/tree_helper_spec.rb": 6.659569089999422,10560 "spec/policies/ci/trigger_policy_spec.rb": 5.8359232290004,10561 "spec/finders/projects/members/effective_access_level_finder_spec.rb": 7.419093046999478,10562 "spec/lib/gitlab/ci/build/auto_retry_spec.rb": 5.46405862499887,10563 "spec/lib/gitlab/data_builder/deployment_spec.rb": 6.338415301001078,10564 "spec/services/lfs/unlock_file_service_spec.rb": 4.76819658200111,10565 "spec/services/metrics/dashboard/clone_dashboard_service_spec.rb": 4.8324148550000245,10566 "spec/models/merge_request/metrics_spec.rb": 6.457876839000164,10567 "spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb": 5.0702862620000815,10568 "spec/workers/concerns/reenqueuer_spec.rb": 1.5864008870012185,10569 "spec/serializers/issue_sidebar_basic_entity_spec.rb": 5.918597661000604,10570 "spec/workers/project_export_worker_spec.rb": 5.729406569000275,10571 "spec/services/projects/container_repository/destroy_service_spec.rb": 3.1382977590001246,10572 "spec/helpers/users/callouts_helper_spec.rb": 2.662558193998848,10573 "spec/lib/gitlab/protocol_access_spec.rb": 1.6797291980001319,10574 "spec/models/integrations/harbor_spec.rb": 2.2633593619993917,10575 "spec/helpers/ci/pipeline_editor_helper_spec.rb": 5.339183306999985,10576 "spec/workers/chat_notification_worker_spec.rb": 4.221622273998946,10577 "spec/graphql/mutations/ci/runner/update_spec.rb": 2.874451962999956,10578 "spec/lib/gitlab/import_export/remote_stream_upload_spec.rb": 1.942684122999708,10579 "spec/lib/error_tracking/sentry_client/issue_link_spec.rb": 2.2590490020011202,10580 "spec/services/milestones/closed_issues_count_service_spec.rb": 4.099017856000501,10581 "spec/graphql/mutations/release_asset_links/update_spec.rb": 4.26711670000077,10582 "spec/lib/gitlab/subscription_portal_spec.rb": 1.3109221039994736,10583 "spec/serializers/stage_serializer_spec.rb": 3.405390052999792,10584 "spec/lib/sidebars/projects/menus/zentao_menu_spec.rb": 3.340474158998404,10585 "spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb": 1.4496080110002367,10586 "spec/models/users/merge_request_interaction_spec.rb": 2.370798342000853,10587 "spec/views/admin/dashboard/index.html.haml_spec.rb": 5.681078982001054,10588 "spec/models/clusters/agent_token_spec.rb": 3.645551648000037,10589 "spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb": 5.540990012999828,10590 "spec/lib/bitbucket/representation/pull_request_spec.rb": 1.2128002140016179,10591 "spec/graphql/resolvers/ci/runners_resolver_spec.rb": 1.569822238998313,10592 "spec/lib/gitlab/ci/config/external/file/base_spec.rb": 1.341973410000719,10593 "spec/lib/gitlab/config/entry/validators_spec.rb": 1.2224969330000022,10594 "spec/lib/gitlab/ci/build/duration_parser_spec.rb": 0.725665289999597,10595 "spec/services/packages/debian/generate_distribution_key_service_spec.rb": 5.0587375440009055,10596 "spec/lib/gitlab/sanitizers/exception_message_spec.rb": 0.8711974859998008,10597 "spec/finders/packages/package_file_finder_spec.rb": 1.3687072190004983,10598 "spec/finders/clusters_finder_spec.rb": 3.629426212000908,10599 "spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb": 1.0833125850003853,10600 "spec/views/projects/merge_requests/_commits.html.haml_spec.rb": 6.714256805000332,10601 "spec/services/packages/composer/version_parser_service_spec.rb": 1.0513151190007193,10602 "spec/lib/safe_zip/extract_spec.rb": 0.8978125030007504,10603 "spec/services/projects/move_users_star_projects_service_spec.rb": 2.2741077419996145,10604 "spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb": 4.209163065001121,10605 "spec/lib/gitlab/database/migrations/sidekiq_helpers_spec.rb": 0.9674890370006324,10606 "spec/workers/gitlab_service_ping_worker_spec.rb": 0.9001703540016024,10607 "spec/workers/web_hooks/log_destroy_worker_spec.rb": 1.9240616749993933,10608 "spec/lib/gitlab/database/transaction/context_spec.rb": 1.3617371700001968,10609 "spec/lib/api/helpers/pagination_strategies_spec.rb": 0.9207796910013712,10610 "spec/services/google_cloud/fetch_google_ip_list_service_spec.rb": 1.1806050159993902,10611 "spec/graphql/resolvers/releases_resolver_spec.rb": 2.5062281390000862,10612 "spec/graphql/resolvers/projects/services_resolver_spec.rb": 1.839502913000615,10613 "spec/services/prometheus/proxy_variable_substitution_service_spec.rb": 1.6326748030005547,10614 "spec/graphql/mutations/labels/create_spec.rb": 1.6625744599987229,10615 "spec/tooling/danger/sidekiq_args_spec.rb": 1.0946529749999172,10616 "spec/graphql/resolvers/ci/jobs_resolver_spec.rb": 1.6210360540007969,10617 "spec/lib/gitlab/rack_attack/user_allowlist_spec.rb": 0.8384704090003652,10618 "spec/rubocop/cop/gitlab/avoid_feature_category_not_owned_spec.rb": 0.9463443389995518,10619 "spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb": 2.9349115379991417,10620 "spec/models/ci/build_pending_state_spec.rb": 2.11725027600005,10621 "spec/services/labels/update_service_spec.rb": 2.840815196999756,10622 "spec/workers/projects/record_target_platforms_worker_spec.rb": 2.156783903001269,10623 "spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb": 3.502887243999794,10624 "spec/lib/gitlab/gitlab_import/client_spec.rb": 0.9021986829993693,10625 "spec/lib/gitlab/ci/config/yaml_spec.rb": 1.0813291060003394,10626 "spec/graphql/types/untrusted_regexp_spec.rb": 0.9123327219986095,10627 "spec/lib/gitlab/auth/ip_rate_limiter_spec.rb": 0.7571226479994948,10628 "spec/models/user_interacted_project_spec.rb": 1.4268443820001266,10629 "spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb": 0.6598849170004542,10630 "spec/lib/gitlab/gon_helper_spec.rb": 0.6456010080000851,10631 "spec/lib/gitlab/memory/watchdog/configurator_spec.rb": 0.9431275389997609,10632 "spec/lib/gitlab/ci/pipeline/chain/create_spec.rb": 1.4119971150012134,10633 "spec/lib/gitlab/zoom_link_extractor_spec.rb": 0.6237144999995508,10634 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 0.8165161020006053,10635 "spec/services/ci/ensure_stage_service_spec.rb": 2.3756542009996338,10636 "spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb": 1.4380865220009582,10637 "spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb": 2.972836124001333,10638 "spec/graphql/types/base_argument_spec.rb": 0.9715338170008181,10639 "spec/services/system_notes/incidents_service_spec.rb": 1.9809120400004758,10640 "spec/graphql/types/ci/job_type_spec.rb": 2.4310043770001357,10641 "spec/graphql/resolvers/group_members_resolver_spec.rb": 2.4606184330004908,10642 "spec/services/incident_management/link_alerts/destroy_service_spec.rb": 2.345537735000107,10643 "spec/services/groups/auto_devops_service_spec.rb": 2.3615484629990533,10644 "spec/lib/sidebars/your_work/menus/todos_menu_spec.rb": 0.9196995420006715,10645 "spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb": 0.548919296999884,10646 "spec/tasks/admin_mode_spec.rb": 1.5452532210001664,10647 "spec/support_specs/ability_check_spec.rb": 0.9659618770001543,10648 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/client_spec.rb": 0.8732019260005472,10649 "spec/models/guest_spec.rb": 1.3598903300007805,10650 "spec/initializers/00_rails_disable_joins_spec.rb": 1.2216328030008299,10651 "spec/lib/gitlab/import_export/design_repo_saver_spec.rb": 1.9528238719994988,10652 "spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb": 1.627255133998915,10653 "spec/serializers/admin/abuse_report_entity_spec.rb": 1.239514691000295,10654 "spec/serializers/lfs_file_lock_entity_spec.rb": 1.4640792999998666,10655 "spec/lib/gitlab/phabricator_import/cache/map_spec.rb": 1.4486748710005486,10656 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 1.3993721160004498,10657 "spec/lib/gitlab/github_import/importer/issue_events_importer_spec.rb": 0.892621474000407,10658 "spec/lib/gitlab/git/remote_mirror_spec.rb": 1.9148417560008966,10659 "spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb": 0.7702849759989476,10660 "spec/views/shared/milestones/_issuable.html.haml_spec.rb": 1.58858865700131,10661 "spec/models/ref_matcher_spec.rb": 1.1916995749998023,10662 "spec/lib/banzai/issuable_extractor_spec.rb": 1.9941294889995334,10663 "spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb": 0.8873660150002252,10664 "spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb": 1.6695341399990866,10665 "spec/lib/gitlab/bullet/exclusions_spec.rb": 0.8273510199996963,10666 "spec/components/pajamas/card_component_spec.rb": 0.7996261429998412,10667 "spec/models/cycle_analytics/project_level_stage_adapter_spec.rb": 1.6170781550008542,10668 "spec/helpers/branches_helper_spec.rb": 1.3919217659986316,10669 "spec/services/alert_management/http_integrations/update_service_spec.rb": 1.3453707110002142,10670 "spec/graphql/mutations/clusters/agent_tokens/create_spec.rb": 1.2112646940004197,10671 "spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb": 0.7865081039999495,10672 "spec/lib/gitlab/ci/reports/test_report_summary_spec.rb": 1.923198294998656,10673 "spec/graphql/resolvers/ci/project_runners_resolver_spec.rb": 1.174444198000856,10674 "spec/lib/gitlab/word_diff/chunk_collection_spec.rb": 0.7142192020000948,10675 "spec/lib/gitlab/audit/null_author_spec.rb": 0.6302397689996724,10676 "spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb": 1.5979302069990808,10677 "spec/services/work_items/widgets/labels_service/update_service_spec.rb": 1.1077006839987007,10678 "spec/lib/gitlab/dependency_linker/godeps_json_linker_spec.rb": 0.5007365720011876,10679 "spec/lib/gitlab/diff/stats_cache_spec.rb": 0.7759741049994773,10680 "spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb": 1.3652101079987915,10681 "spec/presenters/service_hook_presenter_spec.rb": 1.4662907579986495,10682 "spec/views/registrations/welcome/show.html.haml_spec.rb": 0.6205252809995727,10683 "spec/lib/gitlab/middleware/basic_health_check_spec.rb": 0.5367471479985397,10684 "spec/lib/gitlab/request_endpoints_spec.rb": 2.0297625650000555,10685 "spec/lib/gitlab/auth/atlassian/user_spec.rb": 1.0177352219998284,10686 "spec/models/namespaces/randomized_suffix_path_spec.rb": 0.7052747429988813,10687 "spec/lib/gitlab/cross_project_access_spec.rb": 0.6109043119995476,10688 "spec/lib/api/entities/branch_spec.rb": 1.335735640999701,10689 "spec/lib/gitlab/health_checks/master_check_spec.rb": 0.5478129370003444,10690 "spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb": 0.7636835470002552,10691 "spec/models/concerns/integrations/has_web_hook_spec.rb": 0.6814276439999958,10692 "spec/serializers/feature_flag_summary_entity_spec.rb": 1.085474105000685,10693 "spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 0.576826364000226,10694 "spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb": 1.417496582998865,10695 "spec/workers/user_status_cleanup/batch_worker_spec.rb": 0.9938860140009638,10696 "spec/lib/gitlab/metrics/subscribers/ldap_spec.rb": 0.851462687998719,10697 "spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb": 0.5232965590003005,10698 "spec/lib/gitlab/kubernetes/rollout_instances_spec.rb": 0.5048578910009383,10699 "spec/services/users/email_verification/generate_token_service_spec.rb": 0.8746552659995359,10700 "spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb": 1.022290750999673,10701 "spec/graphql/types/jira_import_type_spec.rb": 0.46438002600007167,10702 "spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb": 0.8589963169997645,10703 "spec/graphql/types/notes/system_note_metadata_type_spec.rb": 0.5046735710002395,10704 "spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb": 1.1379291309986002,10705 "spec/lib/gitlab/lets_encrypt/challenge_spec.rb": 0.71482585099875,10706 "spec/lib/gitlab/ci/config/external/mapper/variables_expander_spec.rb": 0.45367345700105943,10707 "spec/graphql/types/time_type_spec.rb": 0.7754674759999034,10708 "spec/serializers/evidences/evidence_serializer_spec.rb": 0.3106541899996955,10709 "spec/lib/peek/views/rugged_spec.rb": 0.9902680549985234,10710 "spec/lib/gitlab/cycle_analytics/summary/value_spec.rb": 0.6273776299985911,10711 "spec/policies/instance_metadata_policy_spec.rb": 0.5714015840003412,10712 "spec/services/import/github/gists_import_service_spec.rb": 0.907246673001282,10713 "spec/graphql/types/release_asset_link_type_spec.rb": 0.5115387709993229,10714 "spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb": 0.9636129880000226,10715 "spec/graphql/types/issuable_sort_enum_spec.rb": 0.4973449729986896,10716 "spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb": 0.4668550350015721,10717 "spec/graphql/types/ci/test_suite_type_spec.rb": 0.44271724700047344,10718 "spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb": 0.5049593220010138,10719 "spec/graphql/types/ci/recent_failures_type_spec.rb": 0.5999999319992639,10720 "spec/models/integrations/base_slack_notification_spec.rb": 0.3910994119996758,10721 "spec/models/clusters/project_spec.rb": 0.4910064730011072,10722 "spec/presenters/member_presenter_spec.rb": 0.42789510900001915,10723 "spec/serializers/request_aware_entity_spec.rb": 0.5079985820011643,10724 "spec/lib/gitlab/phabricator_import/conduit/user_spec.rb": 0.5766648839999107,10725 "spec/graphql/types/ci/config/include_type_spec.rb": 0.37958872399940446,10726 "spec/workers/members_destroyer/unassign_issuables_worker_spec.rb": 0.7998038429996086,10727 "spec/lib/gitlab/database/schema_migrations/migrations_spec.rb": 0.41863498899874685,10728 "spec/graphql/types/projects/topic_type_spec.rb": 0.47594091499922797,10729 "spec/lib/gitlab/faraday/error_callback_spec.rb": 0.42133270900012576,10730 "spec/lib/gitlab/ci/secure_files/x509_name_spec.rb": 0.5055073319999792,10731 "spec/graphql/types/release_source_type_spec.rb": 0.4304249880005955,10732 "spec/serializers/detailed_status_entity_spec.rb": 0.44731930700072553,10733 "spec/graphql/types/query_complexity_type_spec.rb": 0.6307057300000452,10734 "spec/graphql/types/ci/config/include_type_enum_spec.rb": 0.48619583300023805,10735 "spec/lib/gitlab/usage/metrics/instrumentations/merge_request_widget_extension_metric_spec.rb": 0.6406857479996688,10736 "spec/lib/gitlab/grape_logging/loggers/perf_logger_spec.rb": 0.41620323000097414,10737 "spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb": 0.43616448800094076,10738 "spec/lib/gitlab/import_export/legacy_relation_tree_saver_spec.rb": 0.38974410299852025,10739 "spec/lib/gitlab/git/conflict/resolver_spec.rb": 0.49855371299963736,10740 "spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb": 0.48124873300002946,10741 "spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb": 0.5619998660004057,10742 "spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb": 0.412224329998935,10743 "spec/helpers/enable_search_settings_helper_spec.rb": 0.49959121200117806,10744 "spec/routing/projects/security/configuration_controller_routing_spec.rb": 0.36882096500085026,10745 "spec/services/issues/issuable_base_service_spec.rb": 0.49467307300074026,10746 "spec/graphql/types/ci/variable_interface_spec.rb": 0.554653916999086510748Knapsack global time execution for tests: 21m 19s10749Pending: (Failures listed here are expected and do not affect your suite's status)10750 1) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 10751 # No pattern provided, skipping.10752 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810753 2) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 10754 # No pattern provided, skipping.10755 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810756 3) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative10757 # Path not set, skipping.10758 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4010759 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 10760 # No pattern provided, skipping.10761 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810762 5) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 10763 # No pattern provided, skipping.10764 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810765 6) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 10766 # No pattern provided, skipping.10767 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810768 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative10769 # Path not set, skipping.10770 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4010771 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 10772 # No pattern provided, skipping.10773 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810774 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 10775 # No pattern provided, skipping.10776 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810777Finished in 21 minutes 21 seconds (files took 50.06 seconds to load)107785106 examples, 0 failures, 9 pending10779Randomized with seed 920410780[TEST PROF INFO] Time spent in factories: 09:58.867 (46.41% of total time)10781RSpec exited with 0.10782No examples to retry, congrats!10784Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy10785Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy10787Uploading artifacts...10788coverage/: found 5 matching artifact files and directories 10789crystalball/: found 2 matching artifact files and directories 10790deprecations/: found 6 matching artifact files and directories 10791knapsack/: found 3 matching artifact files and directories 10792WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10793rspec/: found 14 matching artifact files and directories 10794WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 10795log/*.log: found 17 matching artifact files and directories 10796WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138449/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10797WARNING: Retrying... context=artifacts-uploader error=request redirected10798Uploading artifacts as "archive" to coordinator... 201 Created id=4031138449 responseStatus=201 Created token=64_1kiUn10799Uploading artifacts...10800rspec/junit_rspec.xml: found 1 matching artifact files and directories 10801WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138449/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10802WARNING: Retrying... context=artifacts-uploader error=request redirected10803Uploading artifacts as "junit" to coordinator... 201 Created id=4031138449 responseStatus=201 Created token=64_1kiUn10805Job succeeded