rspec unit pg13 9/28
Passed Started
by
@ntepluhina

Natalia Tepluhina
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-3.shared-gitlab-org.runners-manager.gitlab.com/default EuhiQzPR, system ID: s_360bc95445273 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:73740c557807c4bc5d692f263c0e35454270600da4b22bbe952331411426c8b5 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:3174001f839c42e299ac06a42f8ded446edfcb33b0eb820874749a3f53eb799c ...11Starting service redis:6.2-alpine ...12Pulling docker image redis:6.2-alpine ...13Using docker image sha256:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...14Waiting for services to be up and running (timeout 30 seconds)...15Authenticating with credentials from job payload (GitLab Registry)16Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...17Using docker image sha256:e2241823d5bdc5e6df7c49ebc7b24c52db10bbb41407a5256c7f2d24ff464f7f for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:f20112d766000374a74ca341735b93b35180b88d806027d821aa8800d0522906 ...19Running on runner-euhiqzpr-project-278964-concurrent-0 via runner-euhiqzpr-shared-gitlab-org-1684473931-dfc5cb92...21$ eval "$CI_PRE_CLONE_SCRIPT"22Fetching changes with git depth set to 20...23Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/24Created fresh repository.25remote: Enumerating objects: 144008, done. 26remote: Counting objects: 100% (144008/144008), done. 27remote: Compressing objects: 100% (102076/102076), done. 28remote: Total 144008 (delta 64383), reused 89305 (delta 36415), pack-reused 0 29Receiving objects: 100% (144008/144008), 126.62 MiB | 33.37 MiB/s, done.30Resolving deltas: 100% (64383/64383), done.32 * [new ref] refs/pipelines/872240128 -> refs/pipelines/87224012833Checking out 4e5a698c as detached HEAD (ref is refs/merge-requests/120843/merge)...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...38Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 39Successfully extracted cache41Downloading artifacts for compile-test-assets (4313143404)...42Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143404 responseStatus=200 OK token=64_WvDiv43Downloading artifacts for detect-tests (4313143415)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143415 responseStatus=200 OK token=64_WvDiv45Downloading artifacts for retrieve-tests-metadata (4313143420)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143420 responseStatus=200 OK token=64_WvDiv47Downloading artifacts for setup-test-env (4313143408)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4313143408 responseStatus=200 OK token=64_WvDiv50Using docker image sha256:e2241823d5bdc5e6df7c49ebc7b24c52db10bbb41407a5256c7f2d24ff464f7f for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:f20112d766000374a74ca341735b93b35180b88d806027d821aa8800d0522906 ...51$ echo $FOSS_ONLY52$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb53$ export GOPATH=$CI_PROJECT_DIR/.go54$ mkdir -p $GOPATH55$ source scripts/utils.sh56$ source scripts/prepare_build.sh711Using decomposed database config (config/database.yml.decomposed-postgresql)712Geo DB won't be set up.713Embedding DB won't be set up.729$ source ./scripts/rspec_helpers.sh730$ run_timed_command "gem install knapsack --no-document"731$ gem install knapsack --no-document732Successfully installed knapsack-4.0.07331 gem installed734==> 'gem install knapsack --no-document' succeeded in 1 seconds.735$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"737$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"742$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"743$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"744SKIP_FLAKY_TESTS_AUTOMATICALLY: 745RETRY_FAILED_TESTS_IN_NEW_PROCESS: true746KNAPSACK_GENERATE_REPORT: true747FLAKY_RSPEC_GENERATE_REPORT: true748KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,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}{,/**/}*_spec.rb749KNAPSACK_LOG_LEVEL: debug750KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_9_28_report.json751FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json752FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_9_28_report.json753NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_9_28_report.json754SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13_9_28.txt755CRYSTALBALL: 756RSPEC_TESTS_MAPPING_ENABLED: 757RSPEC_TESTS_FILTER_FILE: 758Running 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 -- spec/policies/issue_policy_spec.rb spec/services/members/destroy_service_spec.rb spec/services/groups/destroy_service_spec.rb spec/models/clusters/platforms/kubernetes_spec.rb spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_spec.rb spec/models/work_items/parent_link_spec.rb spec/models/integration_spec.rb spec/lib/gitlab/project_authorizations_spec.rb spec/services/issues/create_service_spec.rb spec/finders/ci/runners_finder_spec.rb spec/models/diff_note_spec.rb spec/finders/branches_finder_spec.rb spec/uploaders/job_artifact_uploader_spec.rb spec/models/integrations/bamboo_spec.rb spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb spec/lib/gitlab/email/message/repository_push_spec.rb spec/models/pages_domain_spec.rb spec/helpers/diff_helper_spec.rb spec/models/push_event_spec.rb spec/models/internal_id_spec.rb spec/services/projects/update_repository_storage_service_spec.rb spec/policies/blob_policy_spec.rb spec/services/users/build_service_spec.rb spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb spec/services/merge_requests/conflicts/resolve_service_spec.rb spec/lib/gitlab/email/receiver_spec.rb spec/models/packages/debian/group_distribution_spec.rb spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb spec/lib/gitlab/ci/variables/builder_spec.rb spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb spec/models/ci/build_metadata_spec.rb spec/lib/gitlab/import_export/merge_request_parser_spec.rb spec/helpers/members_helper_spec.rb spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb spec/serializers/diffs_entity_spec.rb spec/graphql/mutations/merge_requests/create_spec.rb spec/views/projects/_home_panel.html.haml_spec.rb spec/services/merge_requests/resolved_discussion_notification_service_spec.rb spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb spec/models/alert_management/http_integration_spec.rb spec/services/issues/resolve_discussions_spec.rb spec/lib/api/helpers/packages_helpers_spec.rb spec/lib/gitlab/ci/variables/collection/sort_spec.rb spec/workers/stuck_merge_jobs_worker_spec.rb spec/models/snippet_input_action_spec.rb spec/lib/gitlab/content_security_policy/config_loader_spec.rb spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb spec/models/ci/variable_spec.rb spec/services/commits/cherry_pick_service_spec.rb spec/lib/gitlab/quick_actions/extractor_spec.rb spec/services/security/ci_configuration/container_scanning_create_service_spec.rb spec/lib/sbom/package_url/argument_validator_spec.rb spec/db/docs_spec.rb spec/tasks/gitlab/service_desk_email_rake_spec.rb spec/lib/gitlab/ci/status/build/waiting_for_approval_spec.rb spec/lib/grafana/client_spec.rb spec/lib/gitlab_spec.rb spec/lib/gitlab/redis/repository_cache_spec.rb spec/graphql/resolvers/container_repositories_resolver_spec.rb spec/initializers/lograge_spec.rb spec/models/ml/experiment_spec.rb spec/workers/users/deactivate_dormant_users_worker_spec.rb spec/workers/ci/archive_traces_cron_worker_spec.rb spec/lib/mattermost/session_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb spec/models/jira_connect/public_key_spec.rb spec/services/groups/nested_create_service_spec.rb spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb spec/services/packages/debian/process_changes_service_spec.rb spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb spec/lib/gitlab/external_authorization/client_spec.rb spec/services/members/unassign_issuables_service_spec.rb spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb spec/services/feature_flags/update_service_spec.rb spec/lib/gitlab/hook_data/user_builder_spec.rb spec/services/import_csv/base_service_spec.rb spec/models/concerns/sortable_spec.rb spec/services/ci/delete_objects_service_spec.rb spec/views/projects/commit/_commit_box.html.haml_spec.rb spec/services/wiki_pages/event_create_service_spec.rb spec/helpers/dashboard_helper_spec.rb spec/tasks/gitlab/password_rake_spec.rb spec/services/merge_requests/handle_assignees_change_service_spec.rb spec/services/merge_requests/mergeability/run_checks_service_spec.rb spec/lib/api/entities/ci/job_request/dependency_spec.rb spec/presenters/packages/helm/index_presenter_spec.rb spec/lib/gitlab/ci/status/build/action_spec.rb spec/lib/gitlab/database/migration_helpers/announce_database_spec.rb spec/lib/gitlab/global_id_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb spec/tasks/gitlab/lfs/check_rake_spec.rb spec/services/integrations/slack_interactions/incident_management/incident_modal_opened_service_spec.rb spec/lib/gitlab/database/async_indexes/index_creator_spec.rb spec/finders/data_transfer/project_data_transfer_finder_spec.rb spec/lib/gitlab/ci/status/build/scheduled_spec.rb spec/lib/gitlab/mail_room/authenticator_spec.rb spec/graphql/resolvers/alert_management/http_integrations_resolver_spec.rb spec/services/packages/composer/composer_json_service_spec.rb spec/initializers/safe_session_store_patch_spec.rb spec/services/users/keys_count_service_spec.rb spec/workers/web_hooks/log_destroy_worker_spec.rb spec/lib/gitlab/kubernetes/service_account_token_spec.rb spec/tasks/cache/clear/redis_spec.rb spec/lib/gitlab/octokit/middleware_spec.rb spec/models/integrations/google_play_spec.rb spec/graphql/resolvers/design_management/design_resolver_spec.rb spec/services/packages/create_event_service_spec.rb spec/services/suggestions/outdate_service_spec.rb spec/services/ci/create_pipeline_service/environment_spec.rb spec/lib/gitlab/sidekiq_config/worker_spec.rb spec/services/alert_management/alerts/todo/create_service_spec.rb spec/services/audit_event_service_spec.rb spec/services/concerns/exclusive_lease_guard_spec.rb spec/models/packages/go/module_spec.rb spec/rubocop/cop/put_group_routes_under_scope_spec.rb spec/lib/gitlab/kas/user_access_spec.rb spec/services/ci/pipelines/hook_service_spec.rb spec/models/packages/go/module_version_spec.rb spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb spec/lib/gitlab/ci/reports/sbom/component_spec.rb spec/lib/gitlab/slash_commands/presenters/issue_comment_spec.rb spec/graphql/resolvers/user_resolver_spec.rb spec/lib/sidebars/user_profile/menus/personal_projects_menu_spec.rb spec/lib/gitlab/ci/config/external/rules_spec.rb spec/lib/gitlab/background_migration/base_job_spec.rb spec/finders/autocomplete/project_finder_spec.rb spec/workers/jira_connect/retry_request_worker_spec.rb spec/lib/gitlab/ci/build/credentials/factory_spec.rb spec/services/award_emojis/toggle_service_spec.rb spec/tooling/rspec_flaky/report_spec.rb spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb spec/services/events/destroy_service_spec.rb spec/services/ci/runners/reset_registration_token_service_spec.rb spec/lib/gitlab/ci/badge/coverage/report_spec.rb spec/workers/rebase_worker_spec.rb spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb spec/models/packages/npm_spec.rb spec/views/admin/sessions/two_factor.html.haml_spec.rb spec/lib/gitlab/manifest_import/metadata_spec.rb spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb spec/serializers/import/bulk_import_entity_spec.rb spec/models/design_management/design_action_spec.rb spec/rubocop/cop/migration/remove_column_spec.rb spec/views/admin/groups/_form.html.haml_spec.rb spec/lib/gitlab/ci/reports/sbom/report_spec.rb spec/serializers/feature_flag_summary_entity_spec.rb spec/initializers/0_postgresql_types_spec.rb spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb spec/lib/gitlab/checks/matching_merge_request_spec.rb spec/services/projects/enable_deploy_key_service_spec.rb spec/graphql/types/metrics/dashboards/annotation_type_spec.rb spec/models/concerns/blob_language_from_git_attributes_spec.rb spec/lib/gitlab/gitaly_client/remote_service_spec.rb spec/lib/gitlab/ci/build/duration_parser_spec.rb spec/lib/banzai/issuable_extractor_spec.rb spec/graphql/types/kas/agent_metadata_type_spec.rb spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb spec/graphql/mutations/user_callouts/create_spec.rb spec/lib/gitlab/hook_data/key_builder_spec.rb spec/lib/gitlab/alert_management/fingerprint_spec.rb spec/finders/groups/accepting_project_creations_finder_spec.rb spec/graphql/types/work_items/widgets/assignees_input_type_spec.rb spec/views/groups/_home_panel.html.haml_spec.rb spec/graphql/resolvers/project_resolver_spec.rb spec/lib/gitlab/container_repository/tags/cache_spec.rb spec/views/notify/changed_milestone_email.html.haml_spec.rb spec/lib/gitlab/database/connection_timer_spec.rb spec/lib/gitlab/github_import/issuable_finder_spec.rb spec/services/packages/nuget/create_dependency_service_spec.rb spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb spec/serializers/analytics_summary_serializer_spec.rb spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb spec/services/error_tracking/base_service_spec.rb spec/workers/ci/runners/stale_machines_cleanup_cron_worker_spec.rb spec/helpers/blame_helper_spec.rb spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb spec/workers/ci/track_failed_build_worker_spec.rb spec/serializers/container_tag_entity_spec.rb spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb spec/services/keys/create_service_spec.rb spec/graphql/resolvers/clusters/agents/authorizations/ci_access_resolver_spec.rb spec/views/registrations/welcome/show.html.haml_spec.rb spec/lib/api/helpers/internal_helpers_spec.rb spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb spec/views/projects/runners/_project_runners.html.haml_spec.rb spec/lib/gitlab/lets_encrypt/challenge_spec.rb spec/initializers/rails_yaml_safe_load_spec.rb spec/models/data_list_spec.rb spec/serializers/project_access_token_entity_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/gitlab_for_jira_app_proxy_installations_count_metric_spec.rb spec/graphql/types/milestone_type_spec.rb spec/lib/gitlab/import_export/error_spec.rb spec/graphql/types/notes/system_note_metadata_type_spec.rb spec/views/devise/shared/_signin_box.html.haml_spec.rb spec/lib/gitlab/graphql/pagination/connections_spec.rb spec/initializers/countries_spec.rb spec/lib/gitlab/metrics/delta_spec.rb spec/graphql/resolvers/board_list_resolver_spec.rb spec/serializers/feature_flag_entity_spec.rb spec/lib/gitlab/ci/status/group/common_spec.rb spec/rubocop/cop/migration/background_migration_record_spec.rb spec/lib/api/github/entities_spec.rb spec/tooling/danger/specs/match_with_array_suggestion_spec.rb spec/services/user_preferences/update_service_spec.rb spec/serializers/integrations/project_serializer_spec.rb spec/graphql/types/alert_management/integration_type_spec.rb spec/rubocop/cop/graphql/graphql_name_position_spec.rb spec/validators/any_field_validator_spec.rb spec/presenters/milestone_presenter_spec.rb spec/lib/gitlab/instrumentation/rate_limiting_gates_spec.rb spec/lib/gitlab/audit/unauthenticated_author_spec.rb spec/lib/gitlab/metrics/dashboard/defaults_spec.rb spec/graphql/mutations/members/bulk_update_base_spec.rb spec/graphql/types/work_items/widgets/notes_type_spec.rb spec/lib/gitlab/diff/suggestion_diff_spec.rb spec/lib/gitlab/ci/reports/security/flag_spec.rb spec/graphql/types/ci/test_suite_type_spec.rb spec/serializers/test_reports_comparer_serializer_spec.rb spec/services/keys/destroy_service_spec.rb spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/joins_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb spec/graphql/types/x509_issuer_type_spec.rb spec/graphql/types/resolvable_interface_spec.rb spec/lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error_spec.rb spec/graphql/mutations/concerns/mutations/resolves_group_spec.rb spec/graphql/types/ci/test_report_total_type_spec.rb spec/lib/gitlab/git/conflict/resolver_spec.rb spec/helpers/deploy_tokens_helper_spec.rb spec/lib/peek/views/active_record_spec.rb spec/lib/gitlab/ci/config/external/mapper/normalizer_spec.rb spec/graphql/types/merge_request_review_state_enum_spec.rb spec/rubocop/cop/gitlab/except_spec.rb spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rbKnapsack report generator started!759warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.761Run options: exclude {:quarantine=>true, :level=>"background_migration"}762Test environment set up in 0.763484913 seconds763IssuePolicy764 a private project765 allows guests to read issues766 allows reporters to read, update, admin and create confidential notes767 allows reporters from group links to read, update, and admin issues768 allows issue authors to read and update their issues769 allows issue assignees to read and update their issues770 does not allow non-members to read, update or create issues771 behaves like alert bot772 allows alert_bot to read and set metadata on issues773 behaves like support bot with service desk disabled774 does not allow support_bot to read issues, create and set metadata on new issues775 behaves like support bot with service desk enabled776 allows support_bot to read issues, create and set metadata on new issues777 with confidential issues778 does not allow non-members to read confidential issues779 does not allow guests to read confidential issues780 allows reporters to read, update, and admin confidential issues781 allows reporters from group links to read, update, and admin confidential issues782 allows issue authors to read and update their confidential issues783 does not allow issue author to read or update confidential issue moved to an private project784 allows issue assignees to read and update their confidential issues785 does not allow issue assignees to read or update confidential issue moved to an private project786 a public project787 does not allow anonymous user to create todos788 allows guests to read issues789 allows reporters to read, update, reopen, and admin issues790 allows reporters from group links to read, update, reopen and admin issues791 allows issue authors to read, reopen and update their issues792 allows issue assignees to read, reopen and update their issues793 allows non-members to read and create issues794 allows non-members to read issues795 does not allow non-members to update, admin or set metadata except for set confidential flag796 allows support_bot to read issues797 behaves like alert bot798 allows alert_bot to read and set metadata on issues799 behaves like support bot with service desk enabled800 allows support_bot to read issues, create and set metadata on new issues801 when issues are private802 forbids visitors from viewing issues803 forbids visitors from commenting804 forbids visitors from subscribing805 allows guests to view806 allows guests to comment807 allows guests to subscribe808 allows guests to admin relation809 does not allow non-members to update or create issues810 when admin mode is enabled811 allows admins to view812 allows admins to comment813 when admin mode is disabled814 forbids admins to view815 forbids admins to comment816 behaves like alert bot817 allows alert_bot to read and set metadata on issues818 behaves like support bot with service desk disabled819 does not allow support_bot to read issues, create and set metadata on new issues820 behaves like support bot with service desk enabled821 allows support_bot to read issues, create and set metadata on new issues822 with confidential issues823 does not allow guests to read confidential issues824 allows reporters to read, update, and admin confidential issues825 allows reporter from group links to read, update, and admin confidential issues826 allows issue authors to read and update their confidential issues827 allows issue assignees to read and update their confidential issues828 allows admins to read confidential issues829 with a hidden issue830 does not allow non-admin user to read the issue831 allows admin to read the issue832 when accounting for notes widget833 and notes widget is disabled for issue834 does not allow accessing notes835 and notes widget is enabled for issue836 allows accessing notes837 with external authorization enabled838 can read the issue iid without accessing the external service839 crm permissions840 when project reporter841 is disallowed842 when subgroup reporter843 is allowed844 when root group reporter845 is allowed846 when crm disabled on subgroup847 is disallowed848 when personal namespace849 is disallowed850 when user is an inherited member from the group851 and policy allows guest access852 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 1853 behaves like grants the expected permissions854 is expected to be allowed :read_issue855 behaves like grants the expected permissions856 is expected to be allowed :read_issue_iid857 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 1858 behaves like grants the expected permissions859 is expected to be allowed :read_issue860 behaves like grants the expected permissions861 is expected to be allowed :read_issue_iid862 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 1863 behaves like grants the expected permissions864 is expected to be allowed :read_issue865 behaves like grants the expected permissions866 is expected to be allowed :read_issue_iid867 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 1868 behaves like grants the expected permissions869 is expected to be allowed :read_issue870 behaves like grants the expected permissions871 is expected to be allowed :read_issue_iid872 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 1873 behaves like grants the expected permissions874 is expected to be allowed :read_issue875 behaves like grants the expected permissions876 is expected to be allowed :read_issue_iid877 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 1878 behaves like grants the expected permissions879 is expected to be allowed :read_issue880 behaves like grants the expected permissions881 is expected to be allowed :read_issue_iid882 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1883 behaves like grants the expected permissions884 is expected to be allowed :read_issue885 behaves like grants the expected permissions886 is expected to be allowed :read_issue_iid887 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0888 behaves like grants the expected permissions889 is expected to be disallowed :read_issue890 behaves like grants the expected permissions891 is expected to be disallowed :read_issue_iid892 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1893 behaves like grants the expected permissions894 is expected to be allowed :read_issue895 behaves like grants the expected permissions896 is expected to be allowed :read_issue_iid897 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 1898 behaves like grants the expected permissions899 is expected to be allowed :read_issue900 behaves like grants the expected permissions901 is expected to be allowed :read_issue_iid902 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0903 behaves like grants the expected permissions904 is expected to be disallowed :read_issue905 behaves like grants the expected permissions906 is expected to be disallowed :read_issue_iid907 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0908 behaves like grants the expected permissions909 is expected to be disallowed :read_issue910 behaves like grants the expected permissions911 is expected to be disallowed :read_issue_iid912 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0913 behaves like grants the expected permissions914 is expected to be disallowed :read_issue915 behaves like grants the expected permissions916 is expected to be disallowed :read_issue_iid917 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0918 behaves like grants the expected permissions919 is expected to be disallowed :read_issue920 behaves like grants the expected permissions921 is expected to be disallowed :read_issue_iid922 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0923 behaves like grants the expected permissions924 is expected to be disallowed :read_issue925 behaves like grants the expected permissions926 is expected to be disallowed :read_issue_iid927 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0928 behaves like grants the expected permissions929 is expected to be disallowed :read_issue930 behaves like grants the expected permissions931 is expected to be disallowed :read_issue_iid932 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 1933 behaves like grants the expected permissions934 is expected to be allowed :read_issue935 behaves like grants the expected permissions936 is expected to be allowed :read_issue_iid937 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 1938 behaves like grants the expected permissions939 is expected to be allowed :read_issue940 behaves like grants the expected permissions941 is expected to be allowed :read_issue_iid942 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 1943 behaves like grants the expected permissions944 is expected to be allowed :read_issue945 behaves like grants the expected permissions946 is expected to be allowed :read_issue_iid947 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 1948 behaves like grants the expected permissions949 is expected to be allowed :read_issue950 behaves like grants the expected permissions951 is expected to be allowed :read_issue_iid952 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 1953 behaves like grants the expected permissions954 is expected to be allowed :read_issue955 behaves like grants the expected permissions956 is expected to be allowed :read_issue_iid957 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 0958 behaves like grants the expected permissions959 is expected to be disallowed :read_issue960 behaves like grants the expected permissions961 is expected to be disallowed :read_issue_iid962 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1963 behaves like grants the expected permissions964 is expected to be allowed :read_issue965 behaves like grants the expected permissions966 is expected to be allowed :read_issue_iid967 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0968 behaves like grants the expected permissions969 is expected to be disallowed :read_issue970 behaves like grants the expected permissions971 is expected to be disallowed :read_issue_iid972 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1973 behaves like grants the expected permissions974 is expected to be allowed :read_issue975 behaves like grants the expected permissions976 is expected to be allowed :read_issue_iid977 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 1978 behaves like grants the expected permissions979 is expected to be allowed :read_issue980 behaves like grants the expected permissions981 is expected to be allowed :read_issue_iid982 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0983 behaves like grants the expected permissions984 is expected to be disallowed :read_issue985 behaves like grants the expected permissions986 is expected to be disallowed :read_issue_iid987 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0988 behaves like grants the expected permissions989 is expected to be disallowed :read_issue990 behaves like grants the expected permissions991 is expected to be disallowed :read_issue_iid992 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0993 behaves like grants the expected permissions994 is expected to be disallowed :read_issue995 behaves like grants the expected permissions996 is expected to be disallowed :read_issue_iid997 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0998 behaves like grants the expected permissions999 is expected to be disallowed :read_issue1000 behaves like grants the expected permissions1001 is expected to be disallowed :read_issue_iid1002 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01003 behaves like grants the expected permissions1004 is expected to be disallowed :read_issue1005 behaves like grants the expected permissions1006 is expected to be disallowed :read_issue_iid1007 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01008 behaves like grants the expected permissions1009 is expected to be disallowed :read_issue1010 behaves like grants the expected permissions1011 is expected to be disallowed :read_issue_iid1012 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11013 behaves like grants the expected permissions1014 is expected to be allowed :read_issue1015 behaves like grants the expected permissions1016 is expected to be allowed :read_issue_iid1017 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01018 behaves like grants the expected permissions1019 is expected to be disallowed :read_issue1020 behaves like grants the expected permissions1021 is expected to be disallowed :read_issue_iid1022 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11023 behaves like grants the expected permissions1024 is expected to be allowed :read_issue1025 behaves like grants the expected permissions1026 is expected to be allowed :read_issue_iid1027 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 11028 behaves like grants the expected permissions1029 is expected to be allowed :read_issue1030 behaves like grants the expected permissions1031 is expected to be allowed :read_issue_iid1032 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01033 behaves like grants the expected permissions1034 is expected to be disallowed :read_issue1035 behaves like grants the expected permissions1036 is expected to be disallowed :read_issue_iid1037 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01038 behaves like grants the expected permissions1039 is expected to be disallowed :read_issue1040 behaves like grants the expected permissions1041 is expected to be disallowed :read_issue_iid1042 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01043 behaves like grants the expected permissions1044 is expected to be disallowed :read_issue1045 behaves like grants the expected permissions1046 is expected to be disallowed :read_issue_iid1047 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01048 behaves like grants the expected permissions1049 is expected to be disallowed :read_issue1050 behaves like grants the expected permissions1051 is expected to be disallowed :read_issue_iid1052 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01053 behaves like grants the expected permissions1054 is expected to be disallowed :read_issue1055 behaves like grants the expected permissions1056 is expected to be disallowed :read_issue_iid1057 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01058 behaves like grants the expected permissions1059 is expected to be disallowed :read_issue1060 behaves like grants the expected permissions1061 is expected to be disallowed :read_issue_iid1062 and policy allows reporter access1063 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 11064 behaves like grants the expected permissions1065 is expected to be allowed :update_issue1066 behaves like grants the expected permissions1067 is expected to be allowed :admin_issue1068 behaves like grants the expected permissions1069 is expected to be allowed :set_issue_metadata1070 behaves like grants the expected permissions1071 is expected to be allowed :set_confidentiality1072 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 01073 behaves like grants the expected permissions1074 is expected to be disallowed :update_issue1075 behaves like grants the expected permissions1076 is expected to be disallowed :admin_issue1077 behaves like grants the expected permissions1078 is expected to be disallowed :set_issue_metadata1079 behaves like grants the expected permissions1080 is expected to be disallowed :set_confidentiality1081 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 11082 behaves like grants the expected permissions1083 is expected to be allowed :update_issue1084 behaves like grants the expected permissions1085 is expected to be allowed :admin_issue1086 behaves like grants the expected permissions1087 is expected to be allowed :set_issue_metadata1088 behaves like grants the expected permissions1089 is expected to be allowed :set_confidentiality1090 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 01091 behaves like grants the expected permissions1092 is expected to be disallowed :update_issue1093 behaves like grants the expected permissions1094 is expected to be disallowed :admin_issue1095 behaves like grants the expected permissions1096 is expected to be disallowed :set_issue_metadata1097 behaves like grants the expected permissions1098 is expected to be disallowed :set_confidentiality1099 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 01100 behaves like grants the expected permissions1101 is expected to be disallowed :update_issue1102 behaves like grants the expected permissions1103 is expected to be disallowed :admin_issue1104 behaves like grants the expected permissions1105 is expected to be disallowed :set_issue_metadata1106 behaves like grants the expected permissions1107 is expected to be disallowed :set_confidentiality1108 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 01109 behaves like grants the expected permissions1110 is expected to be disallowed :update_issue1111 behaves like grants the expected permissions1112 is expected to be disallowed :admin_issue1113 behaves like grants the expected permissions1114 is expected to be disallowed :set_issue_metadata1115 behaves like grants the expected permissions1116 is expected to be disallowed :set_confidentiality1117 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11118 behaves like grants the expected permissions1119 is expected to be allowed :update_issue1120 behaves like grants the expected permissions1121 is expected to be allowed :admin_issue1122 behaves like grants the expected permissions1123 is expected to be allowed :set_issue_metadata1124 behaves like grants the expected permissions1125 is expected to be allowed :set_confidentiality1126 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01127 behaves like grants the expected permissions1128 is expected to be disallowed :update_issue1129 behaves like grants the expected permissions1130 is expected to be disallowed :admin_issue1131 behaves like grants the expected permissions1132 is expected to be disallowed :set_issue_metadata1133 behaves like grants the expected permissions1134 is expected to be disallowed :set_confidentiality1135 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11136 behaves like grants the expected permissions1137 is expected to be allowed :update_issue1138 behaves like grants the expected permissions1139 is expected to be allowed :admin_issue1140 behaves like grants the expected permissions1141 is expected to be allowed :set_issue_metadata1142 behaves like grants the expected permissions1143 is expected to be allowed :set_confidentiality1144 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 01145 behaves like grants the expected permissions1146 is expected to be disallowed :update_issue1147 behaves like grants the expected permissions1148 is expected to be disallowed :admin_issue1149 behaves like grants the expected permissions1150 is expected to be disallowed :set_issue_metadata1151 behaves like grants the expected permissions1152 is expected to be disallowed :set_confidentiality1153 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01154 behaves like grants the expected permissions1155 is expected to be disallowed :update_issue1156 behaves like grants the expected permissions1157 is expected to be disallowed :admin_issue1158 behaves like grants the expected permissions1159 is expected to be disallowed :set_issue_metadata1160 behaves like grants the expected permissions1161 is expected to be disallowed :set_confidentiality1162 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01163 behaves like grants the expected permissions1164 is expected to be disallowed :update_issue1165 behaves like grants the expected permissions1166 is expected to be disallowed :admin_issue1167 behaves like grants the expected permissions1168 is expected to be disallowed :set_issue_metadata1169 behaves like grants the expected permissions1170 is expected to be disallowed :set_confidentiality1171 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01172 behaves like grants the expected permissions1173 is expected to be disallowed :update_issue1174 behaves like grants the expected permissions1175 is expected to be disallowed :admin_issue1176 behaves like grants the expected permissions1177 is expected to be disallowed :set_issue_metadata1178 behaves like grants the expected permissions1179 is expected to be disallowed :set_confidentiality1180 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01181 behaves like grants the expected permissions1182 is expected to be disallowed :update_issue1183 behaves like grants the expected permissions1184 is expected to be disallowed :admin_issue1185 behaves like grants the expected permissions1186 is expected to be disallowed :set_issue_metadata1187 behaves like grants the expected permissions1188 is expected to be disallowed :set_confidentiality1189 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01190 behaves like grants the expected permissions1191 is expected to be disallowed :update_issue1192 behaves like grants the expected permissions1193 is expected to be disallowed :admin_issue1194 behaves like grants the expected permissions1195 is expected to be disallowed :set_issue_metadata1196 behaves like grants the expected permissions1197 is expected to be disallowed :set_confidentiality1198 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01199 behaves like grants the expected permissions1200 is expected to be disallowed :update_issue1201 behaves like grants the expected permissions1202 is expected to be disallowed :admin_issue1203 behaves like grants the expected permissions1204 is expected to be disallowed :set_issue_metadata1205 behaves like grants the expected permissions1206 is expected to be disallowed :set_confidentiality1207 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 11208 behaves like grants the expected permissions1209 is expected to be allowed :update_issue1210 behaves like grants the expected permissions1211 is expected to be allowed :admin_issue1212 behaves like grants the expected permissions1213 is expected to be allowed :set_issue_metadata1214 behaves like grants the expected permissions1215 is expected to be allowed :set_confidentiality1216 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 01217 behaves like grants the expected permissions1218 is expected to be disallowed :update_issue1219 behaves like grants the expected permissions1220 is expected to be disallowed :admin_issue1221 behaves like grants the expected permissions1222 is expected to be disallowed :set_issue_metadata1223 behaves like grants the expected permissions1224 is expected to be disallowed :set_confidentiality1225 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 11226 behaves like grants the expected permissions1227 is expected to be allowed :update_issue1228 behaves like grants the expected permissions1229 is expected to be allowed :admin_issue1230 behaves like grants the expected permissions1231 is expected to be allowed :set_issue_metadata1232 behaves like grants the expected permissions1233 is expected to be allowed :set_confidentiality1234 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 01235 behaves like grants the expected permissions1236 is expected to be disallowed :update_issue1237 behaves like grants the expected permissions1238 is expected to be disallowed :admin_issue1239 behaves like grants the expected permissions1240 is expected to be disallowed :set_issue_metadata1241 behaves like grants the expected permissions1242 is expected to be disallowed :set_confidentiality1243 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 01244 behaves like grants the expected permissions1245 is expected to be disallowed :update_issue1246 behaves like grants the expected permissions1247 is expected to be disallowed :admin_issue1248 behaves like grants the expected permissions1249 is expected to be disallowed :set_issue_metadata1250 behaves like grants the expected permissions1251 is expected to be disallowed :set_confidentiality1252 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 01253 behaves like grants the expected permissions1254 is expected to be disallowed :update_issue1255 behaves like grants the expected permissions1256 is expected to be disallowed :admin_issue1257 behaves like grants the expected permissions1258 is expected to be disallowed :set_issue_metadata1259 behaves like grants the expected permissions1260 is expected to be disallowed :set_confidentiality1261 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11262 behaves like grants the expected permissions1263 is expected to be allowed :update_issue1264 behaves like grants the expected permissions1265 is expected to be allowed :admin_issue1266 behaves like grants the expected permissions1267 is expected to be allowed :set_issue_metadata1268 behaves like grants the expected permissions1269 is expected to be allowed :set_confidentiality1270 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01271 behaves like grants the expected permissions1272 is expected to be disallowed :update_issue1273 behaves like grants the expected permissions1274 is expected to be disallowed :admin_issue1275 behaves like grants the expected permissions1276 is expected to be disallowed :set_issue_metadata1277 behaves like grants the expected permissions1278 is expected to be disallowed :set_confidentiality1279 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11280 behaves like grants the expected permissions1281 is expected to be allowed :update_issue1282 behaves like grants the expected permissions1283 is expected to be allowed :admin_issue1284 behaves like grants the expected permissions1285 is expected to be allowed :set_issue_metadata1286 behaves like grants the expected permissions1287 is expected to be allowed :set_confidentiality1288 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 01289 behaves like grants the expected permissions1290 is expected to be disallowed :update_issue1291 behaves like grants the expected permissions1292 is expected to be disallowed :admin_issue1293 behaves like grants the expected permissions1294 is expected to be disallowed :set_issue_metadata1295 behaves like grants the expected permissions1296 is expected to be disallowed :set_confidentiality1297 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01298 behaves like grants the expected permissions1299 is expected to be disallowed :update_issue1300 behaves like grants the expected permissions1301 is expected to be disallowed :admin_issue1302 behaves like grants the expected permissions1303 is expected to be disallowed :set_issue_metadata1304 behaves like grants the expected permissions1305 is expected to be disallowed :set_confidentiality1306 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01307 behaves like grants the expected permissions1308 is expected to be disallowed :update_issue1309 behaves like grants the expected permissions1310 is expected to be disallowed :admin_issue1311 behaves like grants the expected permissions1312 is expected to be disallowed :set_issue_metadata1313 behaves like grants the expected permissions1314 is expected to be disallowed :set_confidentiality1315 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01316 behaves like grants the expected permissions1317 is expected to be disallowed :update_issue1318 behaves like grants the expected permissions1319 is expected to be disallowed :admin_issue1320 behaves like grants the expected permissions1321 is expected to be disallowed :set_issue_metadata1322 behaves like grants the expected permissions1323 is expected to be disallowed :set_confidentiality1324 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01325 behaves like grants the expected permissions1326 is expected to be disallowed :update_issue1327 behaves like grants the expected permissions1328 is expected to be disallowed :admin_issue1329 behaves like grants the expected permissions1330 is expected to be disallowed :set_issue_metadata1331 behaves like grants the expected permissions1332 is expected to be disallowed :set_confidentiality1333 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01334 behaves like grants the expected permissions1335 is expected to be disallowed :update_issue1336 behaves like grants the expected permissions1337 is expected to be disallowed :admin_issue1338 behaves like grants the expected permissions1339 is expected to be disallowed :set_issue_metadata1340 behaves like grants the expected permissions1341 is expected to be disallowed :set_confidentiality1342 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01343 behaves like grants the expected permissions1344 is expected to be disallowed :update_issue1345 behaves like grants the expected permissions1346 is expected to be disallowed :admin_issue1347 behaves like grants the expected permissions1348 is expected to be disallowed :set_issue_metadata1349 behaves like grants the expected permissions1350 is expected to be disallowed :set_confidentiality1351 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 11352 behaves like grants the expected permissions1353 is expected to be allowed :update_issue1354 behaves like grants the expected permissions1355 is expected to be allowed :admin_issue1356 behaves like grants the expected permissions1357 is expected to be allowed :set_issue_metadata1358 behaves like grants the expected permissions1359 is expected to be allowed :set_confidentiality1360 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 01361 behaves like grants the expected permissions1362 is expected to be disallowed :update_issue1363 behaves like grants the expected permissions1364 is expected to be disallowed :admin_issue1365 behaves like grants the expected permissions1366 is expected to be disallowed :set_issue_metadata1367 behaves like grants the expected permissions1368 is expected to be disallowed :set_confidentiality1369 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 11370 behaves like grants the expected permissions1371 is expected to be allowed :update_issue1372 behaves like grants the expected permissions1373 is expected to be allowed :admin_issue1374 behaves like grants the expected permissions1375 is expected to be allowed :set_issue_metadata1376 behaves like grants the expected permissions1377 is expected to be allowed :set_confidentiality1378 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 01379 behaves like grants the expected permissions1380 is expected to be disallowed :update_issue1381 behaves like grants the expected permissions1382 is expected to be disallowed :admin_issue1383 behaves like grants the expected permissions1384 is expected to be disallowed :set_issue_metadata1385 behaves like grants the expected permissions1386 is expected to be disallowed :set_confidentiality1387 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 01388 behaves like grants the expected permissions1389 is expected to be disallowed :update_issue1390 behaves like grants the expected permissions1391 is expected to be disallowed :admin_issue1392 behaves like grants the expected permissions1393 is expected to be disallowed :set_issue_metadata1394 behaves like grants the expected permissions1395 is expected to be disallowed :set_confidentiality1396 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 01397 behaves like grants the expected permissions1398 is expected to be disallowed :update_issue1399 behaves like grants the expected permissions1400 is expected to be disallowed :admin_issue1401 behaves like grants the expected permissions1402 is expected to be disallowed :set_issue_metadata1403 behaves like grants the expected permissions1404 is expected to be disallowed :set_confidentiality1405 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 01406 behaves like grants the expected permissions1407 is expected to be disallowed :update_issue1408 behaves like grants the expected permissions1409 is expected to be disallowed :admin_issue1410 behaves like grants the expected permissions1411 is expected to be disallowed :set_issue_metadata1412 behaves like grants the expected permissions1413 is expected to be disallowed :set_confidentiality1414 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 01415 behaves like grants the expected permissions1416 is expected to be disallowed :update_issue1417 behaves like grants the expected permissions1418 is expected to be disallowed :admin_issue1419 behaves like grants the expected permissions1420 is expected to be disallowed :set_issue_metadata1421 behaves like grants the expected permissions1422 is expected to be disallowed :set_confidentiality1423 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 01424 behaves like grants the expected permissions1425 is expected to be disallowed :update_issue1426 behaves like grants the expected permissions1427 is expected to be disallowed :admin_issue1428 behaves like grants the expected permissions1429 is expected to be disallowed :set_issue_metadata1430 behaves like grants the expected permissions1431 is expected to be disallowed :set_confidentiality1432 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 01433 behaves like grants the expected permissions1434 is expected to be disallowed :update_issue1435 behaves like grants the expected permissions1436 is expected to be disallowed :admin_issue1437 behaves like grants the expected permissions1438 is expected to be disallowed :set_issue_metadata1439 behaves like grants the expected permissions1440 is expected to be disallowed :set_confidentiality1441Members::DestroyService1442 With ExclusiveLeaseHelpers1443 for group members1444 deleting group owners1445 locking to avoid race conditions1446 tries to perform the delete within a lock1447 based on status of the lock1448 when lock is obtained1449 destroys the membership1450 when the lock cannot be obtained1451 raises error1452 deleting group members that are not owners1453 does not try to perform the deletion of the member within a lock1454 destroys the membership1455 for project members1456 deleting project owners1457 deleting project owners1458 behaves like deletes the project member without using a lock1459 does not try to perform the deletion of a project member within a lock1460 destroys the membership1461 deleting project members that are not owners1462 behaves like deletes the project member without using a lock1463 does not try to perform the deletion of a project member within a lock1464 destroys the membership1465 with a member with access1466 when current user cannot destroy the given member1467 with a project member1468 when current user does not have any membership management permissions1469 behaves like a service raising Gitlab::Access::AccessDeniedError1470 raises Gitlab::Access::AccessDeniedError1471 when skipping authorisation1472 behaves like a service destroying a member with access1473 invalidates cached counts for assigned issues and merge requests1474 behaves like a service destroying a member1475 destroys the member1476 destroys member notification_settings1477 resolves the access request todos for the owner1478 when a project maintainer tries to destroy a project owner1479 behaves like a service raising Gitlab::Access::AccessDeniedError1480 raises Gitlab::Access::AccessDeniedError1481 when skipping authorisation1482 behaves like a service destroying a member with access1483 invalidates cached counts for assigned issues and merge requests1484 behaves like a service destroying a member1485 destroys the member1486 destroys member notification_settings1487 resolves the access request todos for the owner1488 with a group member1489 behaves like a service raising Gitlab::Access::AccessDeniedError1490 raises Gitlab::Access::AccessDeniedError1491 when skipping authorisation1492 behaves like a service destroying a member with access1493 invalidates cached counts for assigned issues and merge requests1494 behaves like a service destroying a member1495 destroys the member1496 destroys member notification_settings1497 resolves the access request todos for the owner1498 when current user can destroy the given member1499 with a project member1500 behaves like a service destroying a member with access1501 invalidates cached counts for assigned issues and merge requests1502 behaves like a service destroying a member1503 destroys the member1504 destroys member notification_settings1505 resolves the access request todos for the owner1506 unassign issuables1507 behaves like a service destroying a member with access1508 invalidates cached counts for assigned issues and merge requests1509 behaves like a service destroying a member1510 destroys the member1511 destroys member notification_settings1512 resolves the access request todos for the owner1513 with a project bot member1514 when the destroy_bot flag is true1515 behaves like a service destroying a member with access1516 invalidates cached counts for assigned issues and merge requests1517 behaves like a service destroying a member1518 destroys the member1519 destroys member notification_settings1520 resolves the access request todos for the owner1521 when the destroy_bot flag is not specified1522 behaves like a service raising Gitlab::Access::AccessDeniedError1523 raises Gitlab::Access::AccessDeniedError1524 with a group member1525 behaves like a service destroying a member with access1526 invalidates cached counts for assigned issues and merge requests1527 behaves like a service destroying a member1528 destroys the member1529 destroys member notification_settings1530 resolves the access request todos for the owner1531 unassign issuables1532 behaves like a service destroying a member with access1533 invalidates cached counts for assigned issues and merge requests1534 behaves like a service destroying a member1535 destroys the member1536 destroys member notification_settings1537 resolves the access request todos for the owner1538 with an access requester1539 when current user cannot destroy the given access requester1540 behaves like a service raising Gitlab::Access::AccessDeniedError1541 raises Gitlab::Access::AccessDeniedError1542 behaves like a service destroying a member1543 destroys the member1544 destroys member notification_settings1545 resolves the access request todos for the owner1546 behaves like a service raising Gitlab::Access::AccessDeniedError1547 raises Gitlab::Access::AccessDeniedError1548 behaves like a service destroying a member1549 destroys the member1550 destroys member notification_settings1551 resolves the access request todos for the owner1552 when current user can destroy the given access requester1553 behaves like a service destroying an access request of another user1554 calls Member#after_decline_request1555 behaves like a service destroying a member1556 destroys the member1557 destroys member notification_settings1558 resolves the access request todos for the owner1559 behaves like a service destroying an access request of another user1560 calls Member#after_decline_request1561 behaves like a service destroying a member1562 destroys the member1563 destroys member notification_settings1564 resolves the access request todos for the owner1565 on withdrawing their own access request1566 behaves like a service destroying an access request of self1567 behaves like a service destroying a member1568 destroys the member1569 destroys member notification_settings1570 resolves the access request todos for the owner1571 when current user is the member1572 does not call Member#after_decline_request1573 behaves like a service destroying an access request of self1574 behaves like a service destroying a member1575 destroys the member1576 destroys member notification_settings1577 resolves the access request todos for the owner1578 when current user is the member1579 does not call Member#after_decline_request1580 with an invited user1581 when current user cannot destroy the given invited user1582 behaves like a service raising Gitlab::Access::AccessDeniedError1583 raises Gitlab::Access::AccessDeniedError1584 behaves like a service destroying a member1585 destroys the member1586 destroys member notification_settings1587 resolves the access request todos for the owner1588 behaves like a service raising Gitlab::Access::AccessDeniedError1589 raises Gitlab::Access::AccessDeniedError1590 behaves like a service destroying a member1591 destroys the member1592 destroys member notification_settings1593 resolves the access request todos for the owner1594 when current user can destroy the given invited user1595 behaves like a service destroying a member1596 destroys the member1597 destroys member notification_settings1598 resolves the access request todos for the owner1599 behaves like a service destroying a member1600 destroys the member1601 destroys member notification_settings1602 resolves the access request todos for the owner1603 subresources1604 with memberships1605 with skipping of subresources1606 removes the group membership1607 does not remove the project membership1608 does not remove the subgroup membership1609 does not remove the subsubgroup membership1610 does not remove the subsubproject membership1611 does not remove the user from the control project1612 todos1613 removes todos for which the user no longer has access1614 issuables1615 removes assigned issuables, even in subresources1616 without skipping of subresources1617 removes the project membership1618 removes the group membership1619 removes the subgroup membership1620 removes the subsubgroup membership1621 removes the subsubproject membership1622 does not remove the user from the control project1623 todos1624 removes todos for which the user no longer has access1625 issuables1626 removes assigned issuables1627 with invites1628 with skipping of subresources1629 does not remove group members invited by deleted user1630 does not remove project members invited by deleted user1631 does not remove subgroup members invited by deleted user1632 does not remove subproject members invited by deleted user1633 without skipping of subresources1634 removes group members invited by deleted user1635 removes project members invited by deleted user1636 removes subgroup members invited by deleted user1637 removes subproject members invited by deleted user1638 deletion of invitations created by deleted project member1639 removes project members invited by deleted user1640 #mark_as_recursive_call1641 marks the instance as recursive1642Groups::DestroyService1643 asynchronous delete1644 behaves like group destruction1645 database records1646 is expected not to include #<Group id:2426 @group457>1647 is expected not to include #<Group id:2433 @group459/group460>1648 is expected not to include #<Project id:438 group461/project-438>>1649 is expected not to include #<NotificationSetting id: 1278, user_id: 1544, source_id: 2444, source_type: "Namespace", level: "glo...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>1650 bot tokens1651 initiates group bot removal1652 mattermost team1653 destroys the team too1654 file system1655 Sidekiq inline1656 verifies that paths have been deleted1657 event store1658 publishes a GroupDeletedEvent1659 Sidekiq fake1660 verifies original paths and projects still exist1661 synchronous delete1662 behaves like group destruction1663 database records1664 is expected not to include #<Group id:2481 @group475>1665 is expected not to include #<Group id:2488 @group477/group478>1666 is expected not to include #<Project id:447 group479/project-447>>1667 is expected not to include #<NotificationSetting id: 1306, user_id: 1572, source_id: 2499, source_type: "Namespace", level: "glo...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>1668 bot tokens1669 initiates group bot removal1670 mattermost team1671 destroys the team too1672 file system1673 Sidekiq inline1674 verifies that paths have been deleted1675 event store1676 publishes a GroupDeletedEvent1677 projects in pending_delete1678 behaves like group destruction1679 database records1680 is expected not to include #<Group id:2530 @group491>1681 is expected not to include #<Group id:2537 @group493/group494>1682 is expected not to include #<Project id:455 group495/project-455>>1683 is expected not to include #<NotificationSetting id: 1331, user_id: 1597, source_id: 2548, source_type: "Namespace", level: "glo...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>1684 bot tokens1685 initiates group bot removal1686 mattermost team1687 destroys the team too1688 file system1689 Sidekiq inline1690 verifies that paths have been deleted1691 event store1692 publishes a GroupDeletedEvent1693 repository removal status is taken into account1694 raises exception1695 when group owner is blocked1696 returns a more descriptive error message1697 repository removal1698 legacy storage1699 removes repository1700 hashed storage1701 removes repository1702 authorization updates1703 for solo groups1704 group is deleted1705 updates project authorization1706 does not make use of a specific service to update project_authorizations records1707 for shared groups within different hierarchies1708 when a project is shared with a group1709 and the shared group is deleted1710 updates project authorizations so group2 users no longer have access1711 calls the service to update project authorizations only with necessary user ids1712 and the group is shared with another group1713 updates project authorizations so group2 and group3 users no longer have access1714 calls the service to update project authorizations only with necessary user ids1715 when a group is shared with a group1716 and the shared group is deleted1717 updates project authorizations since the project has been deleted with the group1718 does not call the service to update project authorizations1719 the shared_with group is deleted1720 updates project authorizations so users of both groups lose access1721 calls the service to update project authorizations only with necessary user ids1722 for shared groups in the same group hierarchy1723 the shared group is deleted1724 updates project authorization1725 does not make use of a specific service to update project authorizations1726 the shared_with group is deleted1727 updates project authorization1728 makes use of a specific service to update project authorizations1729Clusters::Platforms::Kubernetes1730 is expected to belong to cluster required: false1731 is expected to be a kind of Gitlab::Kubernetes1732 is expected to respond to #ca_pem1733 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›1734 is expected to validate that :api_url cannot be empty/falsy1735 is expected to validate that :token cannot be empty/falsy1736 is expected to delegate #enabled? to the #cluster object1737 is expected to delegate #provided_by_user? to the #cluster object1738 is expected to nullify if blank :namespace1739 behaves like having unique enum values1740 has unique values in "authorization_type"1741 default values1742 is expected to eq "rbac"1743 before_validation1744 when namespace includes upper case1745 converts to lower case1746 validation1747 when validates namespace1748 when namespace is nil1749 is expected to be truthy1750 when namespace is longer than 631751 is expected to be falsey1752 when namespace includes invalid character1753 is expected to be falsey1754 when namespace is vaild1755 is expected to be truthy1756 for group cluster1757 is expected to be falsey1758 when validates api_url1759 when api_url is invalid url1760 is expected to be falsey1761 when api_url is nil1762 is expected to be falsey1763 when api_url is valid url1764 is expected to be truthy1765 when api_url is localhost1766 is expected to be falsey1767 Application settings allows local requests1768 is expected to be truthy1769 when validates token1770 when token is nil1771 is expected to be falsey1772 ca_cert1773 with a valid certificate1774 is expected to be truthy1775 with an invalid certificate1776 is expected to be falsey1777 but the certificate is not being updated1778 is expected to be truthy1779 with no certificate1780 is expected to be truthy1781 when using reserved namespaces1782 when no namespace is manually assigned1783 is expected to be valid1784 when no reserved namespace is assigned1785 is expected to be valid1786 when reserved namespace is assigned1787 is expected not to be valid1788 #kubeclient1789 is expected to be an instance of Gitlab::Kubernetes::KubeClient1790 ca_pem is a single certificate1791 adds it to cert_store1792 ca_pem is a chain1793 fixture_path: "spec/fixtures/clusters/root_certificate.pem"1794 includes chain of certificates1795 fixture_path: "spec/fixtures/clusters/intermediate_certificate.pem"1796 includes chain of certificates1797 fixture_path: "spec/fixtures/clusters/leaf_certificate.pem"1798 includes chain of certificates1799 #rbac?1800 is expected to be truthy1801 #predefined_variables1802 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}1803 platform has a CA certificate1804 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}1805 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}1806 cluster is managed by project1807 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}1808 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}1809 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}1810 kubernetes namespace exists1811 is expected to include {:key => :fake_key, :value => "fake_value"}1812 kubernetes namespace does not exist1813 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}1814 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}1815 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}1816 cluster is unmanaged1817 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}1818 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}1819 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}1820 custom namespace is provided1821 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}1822 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}1823 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}1824 cluster variables1825 is expected to include {:key => :fake_key, :value => "fake_value"}1826 #terminals1827 with invalid pods1828 returns no terminals1829 with valid pods1830 returns terminals1831 uses max session time from settings1832 #calculate_reactive_cache_for1833 when kubernetes responds with valid deployments1834 on a project level cluster1835 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}1836 when reading ingress raises NoMethodError1837 when version request succeeds1838 when server min version is < 231839 does not raise error1840 returns empty array for the K8s component keys1841 when server min version is >= 231842 does raise error1843 when the version request fails1844 tracks error and returns empty arrays1845 on a group level cluster1846 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}1847 on an instance level cluster1848 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}1849 when the kubernetes integration is disabled1850 is expected to be nil1851 when there are ignored K8s connections errors1852 Gitlab::UrlBlocker::BlockedUrlError1853 does not raise error1854 returns empty array for the K8s component keys1855 logs the error1856 Kubeclient::HttpError1857 does not raise error1858 returns empty array for the K8s component keys1859 logs the error1860 Errno::ECONNREFUSED1861 does not raise error1862 returns empty array for the K8s component keys1863 logs the error1864 URI::InvalidURIError1865 does not raise error1866 returns empty array for the K8s component keys1867 logs the error1868 Errno::EHOSTUNREACH1869 does not raise error1870 returns empty array for the K8s component keys1871 logs the error1872 OpenSSL::X509::StoreError1873 does not raise error1874 returns empty array for the K8s component keys1875 logs the error1876 OpenSSL::SSL::SSLError1877 does not raise error1878 returns empty array for the K8s component keys1879 logs the error1880 when kubernetes responds with 500s1881 does not raise kubeclient http error1882 when kubernetes responds with 404s1883 is expected to eq {:deployments=>[], :ingresses=>[], :pods=>[]}1884 #rollout_status1885 legacy deployments based on app label1886 only legacy deployments1887 contains nothing1888 deployment with no pods1889 returns a valid status with matching deployments1890 new deployment based on annotations1891 contains only matching deployments1892 with no deployments but there are pods1893 returns an empty array1894 with valid deployments1895 creates a matching RolloutStatus1896 with canary ingress1897 has canary ingress1898 with empty list of deployments1899 creates a matching RolloutStatus1900 when the pod track does not match the deployment track1901 does not return the pod1902 when the pod track is not stable1903 the pod is not stable1904 when the pod track is stable1905 the pod is stable1906 when the pod track is not provided1907 the pod is stable1908 when the number of matching pods does not match the number of replicas1909 returns a pending pod for each missing replica1910 when pending pods are returned for missing replicas1911 returns the correct track for the pending pods1912 when two deployments with the same track are missing instances1913 returns the correct number of pending pods1914 with multiple matching deployments1915 returns each pod once1916 when cache keys are defaulted1917 does not raise error1918 #ingresses1919 when there is an ingress in the namespace1920 returns an ingress1921 when there are no ingresss in the namespace1922 returns nothing1923 #patch_ingress1924 when there is an ingress in the namespace1925 returns an ingress1926 when there are no ingresss in the namespace1927 raises an error1928 #authorization_type1929 behaves like having enum with nil value1930 has enum with nil value1931WorkItems::ParentLink1932 associations1933 is expected to belong to work_item required: false1934 is expected to belong to work_item_parent class_name => WorkItem required: false1935 validations1936 is expected to validate that :work_item cannot be empty/falsy1937 is expected to validate that :work_item_parent cannot be empty/falsy1938 is expected to validate that :work_item is case-sensitively unique1939 hierarchy1940 is valid if issue parent has task child1941 is valid if incident parent has task child1942 is not valid if parent is in other project1943 when assigning to various parent types1944 parent_type_sym: :issue, child_type_sym: :task, is_valid: true1945 validates if child can be added to the parent1946 parent_type_sym: :incident, child_type_sym: :task, is_valid: true1947 validates if child can be added to the parent1948 parent_type_sym: :task, child_type_sym: :issue, is_valid: false1949 validates if child can be added to the parent1950 parent_type_sym: :issue, child_type_sym: :issue, is_valid: false1951 validates if child can be added to the parent1952 parent_type_sym: :objective, child_type_sym: :objective, is_valid: true1953 validates if child can be added to the parent1954 parent_type_sym: :objective, child_type_sym: :key_result, is_valid: true1955 validates if child can be added to the parent1956 parent_type_sym: :key_result, child_type_sym: :objective, is_valid: false1957 validates if child can be added to the parent1958 parent_type_sym: :key_result, child_type_sym: :key_result, is_valid: false1959 validates if child can be added to the parent1960 parent_type_sym: :objective, child_type_sym: :issue, is_valid: false1961 validates if child can be added to the parent1962 parent_type_sym: :task, child_type_sym: :objective, is_valid: false1963 validates if child can be added to the parent1964 with nested ancestors1965 #validate_depth1966 is valid if depth is in limit1967 is not valid when maximum depth is reached1968 #validate_cyclic_reference1969 is not valid if parent and child are same1970 is not valid if child is already in ancestors1971 when parent already has maximum number of links1972 is not valid when another link is added1973 existing link is still valid1974 when setting confidentiality1975 confidential_parent: false, confidential_child: false, valid: true1976 validates if child confidentiality is compatible with parent1977 confidential_parent: true, confidential_child: true, valid: true1978 validates if child confidentiality is compatible with parent1979 confidential_parent: false, confidential_child: true, valid: true1980 validates if child confidentiality is compatible with parent1981 confidential_parent: true, confidential_child: false, valid: false1982 validates if child confidentiality is compatible with parent1983 scopes1984 for_parents1985 includes the correct records1986 with confidential work items1987 .has_public_children?1988 with confidential child1989 is expected to be falsey1990 with also public child1991 is expected to be truthy1992 .has_confidential_parent?1993 with confidential parent1994 is expected to be truthy1995 with public parent1996 is expected to be falsey1997 with relative positioning1998 behaves like a class that supports relative positioning1999 #scoped_items2000 includes all items with the same scope2001 #relative_siblings2002 includes all items with the same scope, except self2003 .move_nulls_to_end2004 moves items with null relative_position to the end2005 preserves relative position2006 moves the item near the start position when there are no existing positions2007 does not perform any moves if all items have their relative_position set2008 manages to move nulls to the end even if there is a sequence at the end2009 manages to move nulls to the end even if there is not enough space2010 manages to move nulls to the end, stacking if we cannot create enough space2011 manages to move nulls found in the relative scope2012 can move many nulls2013 does not have an N+1 issue2014 .move_nulls_to_start2015 moves items with null relative_position to the start2016 moves the item near the start position when there are no existing positions2017 preserves relative position2018 does not perform any moves if all items have their relative_position set2019 manages to move nulls to the start even if there is not enough space2020 manages to move nulls to the end, stacking if we cannot create enough space2021 #move_before2022 moves item before2023 can move the item before an item at the start2024 can move the item before an item at MIN_POSITION2025 can move the item before an item bunched up at MIN_POSITION2026 when there is no space2027 moves items correctly2028 leap-frogging to the left2029 can leap-frog STEPS times before needing to rebalance2030 there is no space to the left after moving STEPS times2031 rebalances to the right2032 #move_after2033 moves item after2034 can move the item after an item bunched up at MAX_POSITION2035 when there is no space2036 can move the item after an item at MAX_POSITION2037 moves items correctly2038 leap-frogging2039 rebalances after STEPS jumps2040 #move_to_start2041 places items at most IDEAL_DISTANCE from the start when the range is open2042 moves item to the end2043 positions the item at MIN_POSITION when there is only one space left2044 rebalances when there is already an item at the MIN_POSITION2045 deals with a run of elements at the start2046 #move_to_end2047 places items at most IDEAL_DISTANCE from the start when the range is open2048 moves item to the end2049 positions the item at MAX_POSITION when there is only one space left2050 rebalances when there is already an item at the MAX_POSITION2051 deals with a run of elements at the end2052 #move_between2053 positions item between two other2054 positions item between on top2055 positions item between to end2056 positions items even when after and before positions are the same2057 positions item in the middle of other two if distance is big enough2058 positions item closer to the middle if we are at the very top2059 positions item closer to the middle if we are at the very bottom2060 positions item in the middle of other two2061 positions item right if we pass non-sequential parameters2062 avoids N+1 queries when rebalancing other items2063 the two items are next to each other2064 behaves like moves item between2065 moves the middle item to between left and right2066 there is no space2067 behaves like moves item between2068 moves the middle item to between left and right2069 there is a bunch of items2070 handles bunches correctly2071 behaves like moves item between2072 moves the middle item to between left and right2073Integration2074 Associations2075 is expected to belong to project required: false inverse_of => integrations2076 is expected to belong to group required: false inverse_of => integrations2077 is expected to have one issue_tracker_data class_name => Integrations::IssueTrackerData inverse_of => integration2078 is expected to have one jira_tracker_data class_name => Integrations::JiraTrackerData inverse_of => integration2079 default values2080 is expected to be alert events2081 is expected to be commit events2082 is expected to be confidential issues events2083 is expected to be confidential note events2084 is expected to be issues events2085 is expected to be job events2086 is expected to be merge requests events2087 is expected to be note events2088 is expected to be pipeline events2089 is expected to be push events2090 is expected to be tag push events2091 is expected to be wiki page events2092 is expected not to be active2093 is expected not to be incident events2094 is expected to eq :common2095 validations2096 is expected to validate that :type cannot be empty/falsy2097 is expected to validate that :type is neither ‹"Integrations::BaseChatNotification"›, ‹"Integrations::BaseCi"›, ‹"Integrations::BaseIssueTracker"›, ‹"Integrations::BaseMonitoring"›, ‹"Integrations::BaseSlackNotification"›, ‹"Integrations::BaseSlashCommands"›, nor ‹"Integrations::BaseThirdPartyWiki"›2098 project_id: 1, group_id: nil, instance: false, valid: true2099 validates the integration2100 project_id: nil, group_id: 1, instance: false, valid: true2101 validates the integration2102 project_id: nil, group_id: nil, instance: true, valid: true2103 validates the integration2104 project_id: nil, group_id: nil, instance: false, valid: false2105 validates the integration2106 project_id: 1, group_id: 1, instance: false, valid: false2107 validates the integration2108 project_id: 1, group_id: nil, instance: false, valid: true2109 validates the integration2110 project_id: 1, group_id: nil, instance: true, valid: false2111 validates the integration2112 project_id: nil, group_id: 1, instance: false, valid: true2113 validates the integration2114 project_id: nil, group_id: 1, instance: true, valid: false2115 validates the integration2116 with existing integrations2117 allows only one instance integration per type2118 allows only one project integration per type2119 allows only one group integration per type2120 Scopes2121 .third_party_wikis2122 returns the right group integration2123 .with_default_settings2124 returns the correct integrations2125 .with_custom_settings2126 returns the correct integrations2127 .by_type2128 when type is "Integrations::JiraService"2129 is expected to contain exactly #<Integrations::Jira id: 12, project_id: 567, created_at: "2023-05-19 05:42:49.796171901 +0000", updated_at: "2023-05-19 05:42:49.796171901 +0000", active: true, push_events: true, issues_events: true, merge_requests_events: true, tag_push_events: true, note_events: true, category: "issue_tracker", wiki_page_events: true, pipeline_events: true, confidential_issues_events: true, commit_events: true, job_events: true, confidential_note_events: true, deployment_events: false, comment_on_event_enabled: true, instance: false, comment_detail: nil, inherit_from_id: nil, alert_events: true, group_id: nil, type_new: "Integrations::Jira", vulnerability_events: false, archive_trace_events: [FILTERED], encrypted_properties: "V\x06\xB2\xFCh\x9D\x7F\xEA\xF5\xF5.\xCD\xF4\xC7\x92\xDC\xBE\b", encrypted_properties_iv: "\xD9\xAE\xC34\xF2\xF1\x01\xBB\xF8F\x97a", incident_events: false, properties: nil> and #<Integrations::Jira id: 13, project_id: 570, created_at: "2023-05-19 05:42:50.192163164 +0000", updated_at: "2023-05-19 05:42:50.192163164 +0000", active: true, push_events: true, issues_events: true, merge_requests_events: true, tag_push_events: true, note_events: true, category: "issue_tracker", wiki_page_events: true, pipeline_events: true, confidential_issues_events: true, commit_events: true, job_events: true, confidential_note_events: true, deployment_events: false, comment_on_event_enabled: true, instance: false, comment_detail: nil, inherit_from_id: nil, alert_events: true, group_id: nil, type_new: "Integrations::Jira", vulnerability_events: false, archive_trace_events: [FILTERED], encrypted_properties: "Ws\r\xEB\x90\xB5\x96U\e\xBAa\xCB\xC1A1V\xD0\xBB", encrypted_properties_iv: "\x84\xE0\xB4zF)\xB2\x0F\x8D(\xF0\xD8", incident_events: false, properties: nil>2130 when type is "Integrations::Redmine"2131 is expected to contain exactly #<Integrations::Redmine id: 17, project_id: 573, created_at: "2023-05-19 05:42:51.617012680 +0000", updated_at: "2023-05-19 05:42:51.617012680 +0000", active: true, push_events: true, issues_events: true, merge_requests_events: true, tag_push_events: true, note_events: true, category: "issue_tracker", wiki_page_events: true, pipeline_events: true, confidential_issues_events: true, commit_events: true, job_events: true, confidential_note_events: true, deployment_events: false, comment_on_event_enabled: true, instance: false, comment_detail: nil, inherit_from_id: nil, alert_events: true, group_id: nil, type_new: "Integrations::Redmine", vulnerability_events: false, archive_trace_events: [FILTERED], encrypted_properties: "I\x00\x99\x15\x9E\x00\x8E\xE4\xCB$G\xE4\xE5W\xA8\xED\xE6\xC7", encrypted_properties_iv: "\xBD2x\x0E\r\xFA\x15sh\xFEj!", incident_events: false, properties: nil>2132 .for_group2133 returns the right group integration2134 .confidential_note_hooks2135 includes services where confidential_note_events is true2136 excludes services where confidential_note_events is false2137 .alert_hooks2138 includes services where alert_events is true2139 excludes services where alert_events is false2140 .archive_trace_hooks2141 includes services where archive_trace_events is true2142 excludes services where archive_trace_events is false2143 .incident_hooks2144 includes services where incident_events is true2145 excludes services where incident_events is false2146 #operating?2147 is false when the integration is not active2148 is false when the integration is not persisted2149 is true when the integration is active and persisted2150 #testable?2151 when integration is project-level2152 is expected to be testable2153 when integration is not project-level2154 is expected not to be testable2155 #test2156 calls #execute2157 returns a result2158 #project_level?2159 is true when integration has a project2160 is false when integration has no project2161 #group_level?2162 is true when integration has a group2163 is false when integration has no group2164 #instance_level?2165 is true when integration has instance-level integration2166 is false when integration does not have instance-level integration2167 #chat?2168 is true when integration is chat integration2169 is false when integration is not chat integration2170 .find_or_initialize_non_project_specific_integration2171 returns the right integration2172 does not create a new integration2173 .find_or_initialize_all_non_project_specific2174 behaves like integration instances2175 returns the available integration instances2176 does not create integration instances2177 with all existing instances2178 behaves like integration instances2179 returns the available integration instances2180 does not create integration instances2181 with a previous existing integration (:mock_ci) and a new integration (:asana)2182 behaves like integration instances2183 returns the available integration instances2184 does not create integration instances2185 with a few existing instances2186 behaves like integration instances2187 returns the available integration instances2188 does not create integration instances2189 #inheritable?2190 is true for an instance integration2191 is true for a group integration2192 is false for a project integration2193 .build_from_integration2194 when integration is invalid2195 sets integration to inactive2196 when integration is an instance-level integration2197 sets inherit_from_id from integration2198 when integration is a group-level integration2199 sets inherit_from_id from integration2200 build issue tracker from an integration2201 when data is stored in properties2202 behaves like integration creation from an integration2203 creates a correct integration for a project integration2204 creates a correct integration for a group integration2205 when data are stored in separated fields2206 behaves like integration creation from an integration2207 creates a correct integration for a project integration2208 creates a correct integration for a group integration2209 when data are stored in both properties and separated fields2210 behaves like integration creation from an integration2211 creates a correct integration for a project integration2212 creates a correct integration for a group integration2213 .default_integration2214 with an instance-level integration2215 returns the instance integration2216 returns nil for nonexistent integration type2217 with a group integration2218 returns the group integration for a project2219 returns the instance integration for a group2220 with a subgroup2221 returns the closest group integration for a project2222 returns the closest group integration for a subgroup2223 having a integration with custom settings2224 returns the closest group integration for a project2225 having a integration inheriting settings2226 returns the closest group integration which does not inherit from its parent for a project2227 .create_from_active_default_integrations2228 with an active instance-level integration2229 creates an integration from the instance-level integration2230 passing a group2231 creates an integration from the instance-level integration2232 with an active group-level integration2233 creates an integration from the group-level integration2234 there are multiple inheritable integrations, and a duplicate2235 returns the number of successfully created integrations2236 passing a group2237 creates an integration from the group-level integration2238 with an active subgroup2239 creates an integration from the subgroup-level integration2240 passing a group2241 traversal queries2242 recursive2243 creates an integration from the subgroup-level integration2244 having an integration inheriting settings2245 creates an integration from the group-level integration2246 linear2247 creates an integration from the subgroup-level integration2248 having an integration inheriting settings2249 creates an integration from the group-level integration2250 .inherited_descendants_from_self_or_ancestors_from2251 returns the groups and projects inheriting from integration ancestors2252 .integration_name_to_type2253 handles a simple case2254 raises an error if the name is unknown2255 handles all available_integration_names2256 .integration_name_to_model2257 raises an error if integration name is invalid2258 {property}_changed?2259 returns false when the property has not been assigned a new value2260 returns true when the property has been assigned a different value2261 returns true when the property has been assigned a different value twice2262 returns false when the property has been re-assigned the same value2263 returns false when the property has been assigned a new value then saved2264 #properties=2265 supports indifferent access2266 #properties2267 is not mutable2268 {property}_touched?2269 returns false when the property has not been assigned a new value2270 returns true when the property has been assigned a different value2271 returns true when the property has been assigned a different value twice2272 returns true when the property has been re-assigned the same value2273 returns false when the property has been assigned a new value then saved2274 {property}_was2275 returns nil when the property has not been assigned a new value2276 returns the previous value when the property has been assigned a different value2277 returns initial value when the property has been re-assigned the same value2278 returns initial value when the property has been assigned multiple values2279 returns nil when the property has been assigned a new value then saved2280 initialize integration with no properties2281 does not raise error2282 sets data correctly2283 field definitions2284 when the class overrides #fields2285 behaves like #fields2286 does not return the same array2287 behaves like #api_field_names2288 filters out secret fields2289 behaves like #form_fields2290 filters out API only fields2291 when the class uses the field DSL2292 behaves like #fields2293 does not return the same array2294 behaves like #api_field_names2295 filters out secret fields2296 behaves like #form_fields2297 filters out API only fields2298 logging2299 logs info messages using json logger2300 logs error messages using json logger2301 when project is nil2302 logs info messages using json logger2303 logging exceptions2304 logs exceptions using json logger2305 logs exceptions using json logger with a custom message2306 .available_integration_names2307 is expected to include "foo", "bar", and "baz"2308 when `include_project_specific` is false2309 is expected to include "foo" and "baz"2310 is expected not to include "bar"2311 when `include_dev` is false2312 is expected to include "foo" and "bar"2313 is expected not to include "baz"2314 .project_specific_integration_names2315 is expected to include "apple_app_store", "google_play", "jenkins", and "shimo"2316 #secret_fields2317 returns all fields with type `password`2318 returns an empty array if no secret fields exist2319 #to_database_hash2320 does not include the properties key2321 does not include certain attributes2322 saves correctly using insert_all2323 decrypts encrypted properties correctly2324 when the properties are empty2325 is part of the to_database_hash2326 saves correctly using insert_all2327 field DSL2328 checks the value of storage2329 provides prop_accessors2330 provides boolean accessors for checkbox fields2331 provides data fields2332 registers fields in the fields list2333 fields have expected attributes2334 boolean_accessor2335 returns values when initialized without input2336 input: true, method_result: true, predicate_method_result: true2337 has the correct value2338 when using data fields2339 has the correct value2340 input: false, method_result: false, predicate_method_result: false2341 has the correct value2342 when using data fields2343 has the correct value2344 input: 1, method_result: true, predicate_method_result: true2345 has the correct value2346 when using data fields2347 has the correct value2348 input: 0, method_result: false, predicate_method_result: false2349 has the correct value2350 when using data fields2351 has the correct value2352 input: "1", method_result: true, predicate_method_result: true2353 has the correct value2354 when using data fields2355 has the correct value2356 input: "0", method_result: false, predicate_method_result: false2357 has the correct value2358 when using data fields2359 has the correct value2360 input: "true", method_result: true, predicate_method_result: true2361 has the correct value2362 when using data fields2363 has the correct value2364 input: "false", method_result: false, predicate_method_result: false2365 has the correct value2366 when using data fields2367 has the correct value2368 input: "foobar", method_result: nil, predicate_method_result: false2369 has the correct value2370 when using data fields2371 has the correct value2372 input: "", method_result: nil, predicate_method_result: false2373 has the correct value2374 when using data fields2375 has the correct value2376 input: nil, method_result: nil, predicate_method_result: false2377 has the correct value2378 when using data fields2379 has the correct value2380 input: "on", method_result: true, predicate_method_result: true2381 has the correct value2382 when using data fields2383 has the correct value2384 input: "off", method_result: false, predicate_method_result: false2385 has the correct value2386 when using data fields2387 has the correct value2388 input: "yes", method_result: true, predicate_method_result: true2389 has the correct value2390 when using data fields2391 has the correct value2392 input: "no", method_result: false, predicate_method_result: false2393 has the correct value2394 when using data fields2395 has the correct value2396 input: "n", method_result: false, predicate_method_result: false2397 has the correct value2398 when using data fields2399 has the correct value2400 input: "y", method_result: true, predicate_method_result: true2401 has the correct value2402 when using data fields2403 has the correct value2404 input: "t", method_result: true, predicate_method_result: true2405 has the correct value2406 when using data fields2407 has the correct value2408 input: "f", method_result: false, predicate_method_result: false2409 has the correct value2410 when using data fields2411 has the correct value2412 when getter is not defined2413 defines a prop_accessor2414 #attributes2415 does not include properties2416 can be used in assign_attributes without nullifying properties2417 #dup2418 results in distinct ciphertexts, but identical properties2419 when the model supports data-fields2420 creates distinct but identical data-fields2421 #async_execute2422 queues a Integrations::ExecuteWorker2423 when the event is not supported2424 does not queue a worker2425Gitlab::ProjectAuthorizations2426 when feature_flag linear_project_authorization_is disabled2427 behaves like project authorizations2428 user added to group and project2429 returns the correct number of authorizations2430 includes the correct projects2431 includes the correct access levels2432 unapproved access request2433 group membership2434 does not create authorization2435 inherited group membership2436 does not create authorization2437 project membership2438 does not create authorization2439 shared group2440 does not create authorization2441 shared project2442 does not create authorization2443 user with minimal access to group2444 group membership2445 does not create authorization2446 inherited group membership2447 does not create authorization2448 shared group2449 does not create authorization2450 shared project2451 does not create authorization2452 with nested groups2453 includes nested groups2454 inherits access levels when the user is not a member of a nested group2455 uses the greatest access level when a user is a member of a nested group2456 with shared projects2457 creates proper authorizations2458 even when the `lock_memberships_to_ldap` setting has been turned ON2459 creates proper authorizations2460 when the group containing the project has forbidden group shares for any of its projects2461 does not create authorizations2462 with shared groups2463 group user2464 creates proper authorizations2465 with lower group access level than max access level for share2466 creates proper authorizations2467 parent group user2468 creates proper authorizations2469 child group user2470 creates proper authorizations2471 user without accepted access request2472 does not have access to group and its projects2473 unrelated project owner2474 does not have access to group and its projects2475 with pending memberships2476 group membership2477 does not create authorization2478 inherited group membership2479 does not create authorization2480 project membership2481 does not create authorization2482 shared group2483 does not create authorization2484 shared project2485 does not create authorization2486 behaves like project authorizations2487 user added to group and project2488 returns the correct number of authorizations2489 includes the correct projects2490 includes the correct access levels2491 unapproved access request2492 group membership2493 does not create authorization2494 inherited group membership2495 does not create authorization2496 project membership2497 does not create authorization2498 shared group2499 does not create authorization2500 shared project2501 does not create authorization2502 user with minimal access to group2503 group membership2504 does not create authorization2505 inherited group membership2506 does not create authorization2507 shared group2508 does not create authorization2509 shared project2510 does not create authorization2511 with nested groups2512 includes nested groups2513 inherits access levels when the user is not a member of a nested group2514 uses the greatest access level when a user is a member of a nested group2515 with shared projects2516 creates proper authorizations2517 even when the `lock_memberships_to_ldap` setting has been turned ON2518 creates proper authorizations2519 when the group containing the project has forbidden group shares for any of its projects2520 does not create authorizations2521 with shared groups2522 group user2523 creates proper authorizations2524 with lower group access level than max access level for share2525 creates proper authorizations2526 parent group user2527 creates proper authorizations2528 child group user2529 creates proper authorizations2530 user without accepted access request2531 does not have access to group and its projects2532 unrelated project owner2533 does not have access to group and its projects2534 with pending memberships2535 group membership2536 does not create authorization2537 inherited group membership2538 does not create authorization2539 project membership2540 does not create authorization2541 shared group2542 does not create authorization2543 shared project2544 does not create authorization2545Issues::CreateService2546 behaves like rate limited service2547 .rate_limiter_scoped_and_keyed2548 is set via the rate_limit call2549 #rate_limiter_bypassed2550 is nil by default2551 #execute2552 when rate limiting is in effect2553 when too many requests are sent by one user2554 raises an error2555 creates 1 issue2556 when limit is higher than count of issues being created2557 creates 2 issues2558 #execute2559 when params are invalid2560 returns an error service response2561 when params are valid2562 works if base work item types were not created yet2563 creates the issue with the given params2564 calls NewIssueWorker with correct arguments2565 refreshes the number of open issues2566 moves the issue to the end, in an asynchronous worker2567 schedules a namespace onboarding create action worker2568 when an unauthorized project_id is provided2569 ignores the project_id param and creates issue in the given project2570 authorization2571 when the user is authorized2572 allows the user to create an issue2573 when the user is not authorized2574 does not allow the user to create an issue2575 with milestone2576 deletes milestone issues count cache2577 when the work item type is not allowed to create2578 ignores the type and creates default issue2579 when a build_service is provided2580 uses the provided service to build the issue2581 when skip_system_notes is true2582 does not call Issuable::CommonSystemNotesService2583 when setting a position2584 sets the correct relative position2585 behaves like not an incident issue2586 has not incident as issue type2587 when issue is incident type2588 as reporter2589 calls IncidentManagement::Incidents::CreateEscalationStatusService2590 calls IncidentManagement::TimelineEvents::CreateService.create_incident2591 calls NewIssueWorker with correct arguments2592 behaves like incident issue2593 has incident as issue type2594 when invalid2595 does not apply an incident label prematurely2596 as guest2597 behaves like not an incident issue2598 has not incident as issue type2599 when current user cannot set issue metadata in the project2600 filters out params that cannot be set without the :set_issue_metadata permission2601 can create confidential issues2602 when label belongs to project group2603 assigns group labels2604 when label belongs to different project2605 does not assign label2606 when labels is nil2607 does not assign label2608 when labels is nil and label_ids is present2609 assigns group labels2610 when milestone belongs to different project2611 does not assign milestone2612 when assignee is set2613 invalidates open issues counter for assignees when issue is assigned2614 records the assignee assignment event2615 when duplicate label titles are given2616 assigns the label once2617 when sentry identifier is given2618 does not assign the sentry error2619 user is reporter or above2620 assigns the sentry error2621 executing hooks2622 executes issue hooks2623 when issue is confidential2624 executes confidential issue hooks2625 after_save callback to store_mentions2626 when mentionable attributes change2627 saves mentions2628 when save fails2629 does not call store_mentions2630 issue create service2631 assignees2632 removes assignee when user id is invalid2633 removes assignee when user id is 02634 saves assignee when user id is valid2635 when issuable feature is private2636 removes not authorized assignee when project is Internal2637 removes not authorized assignee when project is Public2638 behaves like issuable record that supports quick actions2639 with labels in command only2640 attaches labels to issuable2641 with labels in params and command2642 attaches all labels to issuable2643 with assignee and milestone in command only2644 assigns and sets milestone to issuable2645 Quick actions2646 with assignee, milestone, and contact in params and command2647 assigns, sets milestone, and sets contact to issuable from command2648 with external_author2649 when CRM contact exists with matching e-mail2650 with permission2651 assigns contact to issue2652 without permission2653 does not assign contact to issue2654 when no CRM contact exists with matching e-mail2655 does not assign contact to issue2656 with alert bot author2657 can apply labels2658 when using promote_to_incident2659 creates an issue with the correct issue type2660 resolving discussions2661 for a single discussion2662 resolves the discussion2663 added a system note to the discussion2664 sets default title and description values if not provided2665 takes params from the request over the default values2666 for a merge request2667 resolves the discussion2668 added a system note to the discussion2669 sets default title and description values if not provided2670 takes params from the request over the default values2671 add related issue2672 ignores related issue if not accessible2673 when user has access to the related issue2674 adds a link to the issue2675 checking spam2676 executes SpamActionService2677Ci::RunnersFinder2678 admin2679 #execute2680 when admin mode setting is disabled2681 behaves like executes as admin2682 with 2 runners2683 with empty params2684 returns all runners2685 with nil group2686 returns all runners2687 with preload param set to :tag_name true2688 requests tags2689 with preload param set to :tag_name false2690 does not request tags2691 filtering2692 by search term2693 calls Ci::Runner.search2694 by upgrade status2695 set to :not_processed2696 calls with_upgrade_status scope with corresponding :not_processed status2697 set to :invalid_version2698 calls with_upgrade_status scope with corresponding :invalid_version status2699 set to :unavailable2700 calls with_upgrade_status scope with corresponding :unavailable status2701 set to :available2702 calls with_upgrade_status scope with corresponding :available status2703 set to :recommended2704 calls with_upgrade_status scope with corresponding :recommended status2705 set to an invalid value2706 raises ArgumentError2707 set to nil2708 does not call with_upgrade_status2709 by status2710 calls the corresponding :active scope on Ci::Runner2711 calls the corresponding :paused scope on Ci::Runner2712 calls the corresponding :online scope on Ci::Runner2713 calls the corresponding :offline scope on Ci::Runner2714 calls the corresponding :never_contacted scope on Ci::Runner2715 calls the corresponding :stale scope on Ci::Runner2716 by active status2717 with active set as false calls the corresponding scope on Ci::Runner with false2718 with active set as true calls the corresponding scope on Ci::Runner with true2719 by runner type2720 calls the corresponding scope on Ci::Runner2721 by tag_name2722 calls the corresponding scope on Ci::Runner2723 sorting2724 without sort param2725 behaves like sorts by created_at descending2726 sorts by created_at descending2727 with sort param equal to created_date2728 behaves like sorts by created_at descending2729 sorts by created_at descending2730 with sort param equal to created_at_desc2731 behaves like sorts by created_at descending2732 sorts by created_at descending2733 with sort param equal to created_at_asc2734 sorts by created_at ascending2735 with sort param equal to contacted_asc2736 sorts by contacted_at ascending2737 with sort param equal to contacted_desc2738 sorts by contacted_at descending2739 with sort param equal to token_expires_at_asc2740 sorts by contacted_at ascending2741 with sort param equal to token_expires_at_desc2742 sorts by contacted_at descending2743 when admin mode setting is enabled2744 when in admin mode2745 behaves like executes as admin2746 with 2 runners2747 with empty params2748 returns all runners2749 with nil group2750 returns all runners2751 with preload param set to :tag_name true2752 requests tags2753 with preload param set to :tag_name false2754 does not request tags2755 filtering2756 by search term2757 calls Ci::Runner.search2758 by upgrade status2759 set to :not_processed2760 calls with_upgrade_status scope with corresponding :not_processed status2761 set to :invalid_version2762 calls with_upgrade_status scope with corresponding :invalid_version status2763 set to :unavailable2764 calls with_upgrade_status scope with corresponding :unavailable status2765 set to :available2766 calls with_upgrade_status scope with corresponding :available status2767 set to :recommended2768 calls with_upgrade_status scope with corresponding :recommended status2769 set to an invalid value2770 raises ArgumentError2771 set to nil2772 does not call with_upgrade_status2773 by status2774 calls the corresponding :active scope on Ci::Runner2775 calls the corresponding :paused scope on Ci::Runner2776 calls the corresponding :online scope on Ci::Runner2777 calls the corresponding :offline scope on Ci::Runner2778 calls the corresponding :never_contacted scope on Ci::Runner2779 calls the corresponding :stale scope on Ci::Runner2780 by active status2781 with active set as false calls the corresponding scope on Ci::Runner with false2782 with active set as true calls the corresponding scope on Ci::Runner with true2783 by runner type2784 calls the corresponding scope on Ci::Runner2785 by tag_name2786 calls the corresponding scope on Ci::Runner2787 sorting2788 without sort param2789 behaves like sorts by created_at descending2790 sorts by created_at descending2791 with sort param equal to created_date2792 behaves like sorts by created_at descending2793 sorts by created_at descending2794 with sort param equal to created_at_desc2795 behaves like sorts by created_at descending2796 sorts by created_at descending2797 with sort param equal to created_at_asc2798 sorts by created_at ascending2799 with sort param equal to contacted_asc2800 sorts by contacted_at ascending2801 with sort param equal to contacted_desc2802 sorts by contacted_at descending2803 with sort param equal to token_expires_at_asc2804 sorts by contacted_at ascending2805 with sort param equal to token_expires_at_desc2806 sorts by contacted_at descending2807 when not in admin mode2808 behaves like executes as normal user2809 returns no runners2810 by non admin user2811 behaves like executes as normal user2812 returns no runners2813 when user is nil2814 returns no runners2815 group2816 #execute2817 with user as group owner2818 with :group as target group2819 passing no params2820 behaves like membership equal to :descendants2821 returns all descendant runners2822 with :descendants membership2823 behaves like membership equal to :descendants2824 returns all descendant runners2825 with :direct membership2826 returns runners belonging to group2827 with :all_available membership2828 returns runners available to group2829 with unknown membership2830 raises an error2831 with nil group2832 returns no runners2833 with sort param2834 sorts by specified attribute2835 filtering2836 by search term2837 returns correct runner2838 by active status2839 returns correct runner2840 by status2841 returns correct runner2842 by tag_name2843 returns correct runner2844 by runner type2845 returns correct runners2846 when user is not group owner2847 user_permission: :maintainer2848 with :sub_group_1 as target group2849 returns no runners2850 with :group as target group2851 returns no runners2852 with :all_available membership2853 returns no runners2854 user_permission: :developer2855 with :sub_group_1 as target group2856 returns no runners2857 with :group as target group2858 returns no runners2859 with :all_available membership2860 returns no runners2861 user_permission: :reporter2862 with :sub_group_1 as target group2863 returns no runners2864 with :group as target group2865 returns no runners2866 with :all_available membership2867 returns no runners2868 user_permission: :guest2869 with :sub_group_1 as target group2870 returns no runners2871 with :group as target group2872 returns no runners2873 with :all_available membership2874 returns no runners2875 when user has no access2876 returns no runners2877 when user is nil2878 returns no runners2879 #sort_key2880 without params2881 returns created_at_desc2882 with params2883 returns contacted_asc2884 project2885 #execute2886 with user as project admin2887 with project runners2888 returns runners available to project2889 with ancestor group runners2890 returns runners available to project2891 with allowed shared runners2892 returns runners available to project2893 with project, ancestor group, and allowed shared runners2894 returns runners available to project2895 filtering2896 by search term2897 returns the correct runner2898 by active status2899 returns the correct runners2900 by status2901 returns correct runner2902 by tag_name2903 returns correct runner2904 by runner type2905 returns correct runners2906 with user as project developer2907 returns no runners2908 when user is nil2909 returns no runners2910 with nil project_full_path2911 returns no runners2912DiffNote2913 validations2914 is not valid when noteable is empty2915 behaves like a valid diff positionable note2916 for commit2917 position diff refs matches commit diff refs2918 is valid2919 position diff refs does not match commit diff refs2920 is invalid2921 commit does not exist2922 is invalid2923 original_position=2924 doesn't accept non-hash JSON passed as a string2925 does accept a position hash as a string2926 doesn't accept an array2927 does accept a hash2928 position=2929 doesn't accept non-hash JSON passed as a string2930 does accept a position hash as a string2931 doesn't accept an array2932 does accept a hash2933 change_position=2934 doesn't accept non-hash JSON passed as a string2935 does accept a position hash as a string2936 doesn't accept an array2937 does accept a hash2938 schema validation2939 position_attrs: {:old_path=>"dWHGgFBKB7MGcdD9aJuEeoFOc8a6yDEKzQGnB8xaXpIaYW7yTXZTCHkl7A9DOTb2PEabomrBPFjKOu97v5OiCHr2BPnQU5TSacEh32jeFvAjMVZjKBZBB4TIWeiEOUyiNGkzyH8Jk27bQrNcJ5AZHvzxQBnSC4dnj2BuO4hO1Zcg2RxARujaxYkl4WOrkjb5gip53OqAF7cSCIYHRnWR7IYUSz2ZmG2gKwONVj7CGI8tsHXD12PK78IZG2sxASg53eMDz34319HVlQzIdfYDsmlI0ij46MFTJLBGPwz6fbKWcvVI4B2wyijED9p51mf8bgPvY56jDlvVFpDoJmOQLYa4u5QTLMsjDjsqvwNQtmywiBK1imNuTv4W1aUacC3O9YAD2WEpHN43WcfvMinRsMqSTjhOnqZK3oDzBLgSwIyby7cOfGzXqwaxnAZZgCrONU4NwGwijsCjncxppUN9DqI8zoRdD9rdCR8pdlrrF9RBaHnz6tRnBPPRgIkXhXFdm3VCfXaZz8NoazLY7OXSZZB1mY1Zd3VrdyS2CTID0ZRNfCg9cx0KuNxCjg7Yh8b3MO13HZroTOkKbVjMrm0mfmCsnvXDhjW9OoJJIyXQyfUWQiuuQeechySLi5I5lpDF7Q7JhFqSzp1ZxXbAkFDZ8nUrBneEDkIYXZv91LEpOe0IBQ1MxlrUiouP7X11o5pQujIjjjAQJsDoSpkeGUzTHl4aItJqEuuVBaiYRv8Fkdad9FtI58h2QICph4CVT7shlGrCPedHOnGXMga3eiaef3d53XYH7kH2zfH4EjgmATlXqF145w18XdHcVJ30sTD4BLLOVxofqXp1VNCmFx8R5Xw4mt1pYDEB7wiY2qeZc5ZDXwssSN75AaYzhwguY1IiEqkkZy71ZkyHztTJRaVTKhkt90feacTPafsd2BZ4SdqV4YwFc391ECLXmrdm7nkQ5bcjSBsrUkLjAy3C7AsRIjfOmAfIE0rNe6Ip5NyQ2"}2940 is expected to be invalid2941 position_attrs: {:new_path=>"zQ2FXvXF5cP4jL0qbht3UIgS3iQM3HbhaPPsUyiyby79rZHXXK0rLeQc5IYvA7krDmxYzo0zYG0xYJYqUxQSi0sqEd4lnRCeNUj6DMF4xA8c40Gp8vN4Ky4MGgZFvyIyilz8B0NdXVLou1YqA1t22uwhlaZYfDePuoAA8GQRyi72PQbSHMlDWs7hWX1JpjfGtZTLl5L9edWxLFg4Ouj3sKaybqycGvKAhcA65F2KT39IaR9XMUBdgPodOCOmYUCVz8K1y4AdnyG8n81CCpFZOvChkjyGrFevLqv6C5dTNmcIE29a1x68RLhm2Qopnvp2Em2KK2OGwmyEn50CIgpOn7ic3YbXIJZTTNDpnfcMGQKHoPUlOsQtEcceSI6czIvLTyZb5PLn6LoWlUWCp4TzOaHo19EY76fYZGA4hSHSnrAUFds91CJOULtZ9t4ruxmQTRhzSHBxdXtNkaX8Ri1mwatWopSc1JB1nnec1seMjB7U8cJgnwMig7XqULO3j6anaVC5vRxNVC3xweWlIyBtUInTrnocv7trLGXGdtLu4Y5muzXrBnKB80oCwTE0wdb2sjWBMxI0nxd0weKMwz18wF4K3EbkucTOYysKZExRZom0hxoCGUILxjuKXBB4Fx2TcieZLh2twbaJRcxr5uaw70scM4KvWG3AH1XgsjLL6zkoECOmCWqM4fGn3NsCE6eFhg7ehfpU4VQNDYxb9KGLAz9uCEdt4sI660AcfI5nDzCqY8iQC2u9Dy2aaIgYpP88HCMiW2O1UpYY004wBHaKJtSmZreNd1aIYKWWAEkOL7c8YOW0bGAd1sQYfPXeIonOZ7hs1jiNeGHoehp5JpVXI8gkv1kdrU6vr71erKmgKZHVKIorU2grK8A1DOD3BtSKpoubIqaFh5OeJWrbz2wDuCgP3JRmMmUlKVkQLsjSZyRwy58BnxzVQ0C5CSX2Bkt3A9RNINfkuWzS6dtQLhT2T6P2YdTZOb3hfJSEMWtvN"}2942 is expected to be invalid2943 position_attrs: {:old_line=>"foo"}2944 is expected to be invalid2945 position_attrs: {:new_line=>"foo"}2946 is expected to be invalid2947 position_attrs: {:line_range=>{:foo=>"bar"}}2948 is expected to be invalid2949 position_attrs: {:line_range=>{:line_code=>"Vf9aUa4Gz601ZTCUyIzRWvaJ5vdu7ThzV9XnC8H4an2Nrhgtm5SIoefGenRrAfoRoKVkZV9EvT1Xj32OqTGDdnVlVC0SeGYQ2UWDa"}}2950 is expected to be invalid2951 position_attrs: {:line_range=>{:type=>"yBcjtKsrqMLxAsTa5hHI4m4HsezyfqT5QHGbKY9E1W9aNe5NXmjMtOSp1tvqPQlKJGFIxe0Uvv0ApkVFStjybe9DxWXqlnrMIWsyA"}}2952 is expected to be invalid2953 position_attrs: {:line_range=>{:old_line=>"foo"}}2954 is expected to be invalid2955 position_attrs: {:line_range=>{:new_line=>"foo"}}2956 is expected to be invalid2957 when importing2958 does not check if it's supported2959 #position=2960 when provided a string2961 sets the position2962 when provided a hash2963 sets the position2964 when provided a position object2965 sets the position2966 #original_position=2967 when provided a string2968 sets the original position2969 when provided a hash2970 sets the original position2971 when provided a position object2972 sets the original position2973 #create_diff_file callback2974 merge request2975 does not create diff note file if it is a reply2976 when diffs are already created2977 when diff_file is found in persisted diffs2978 when importing2979 when diff_line is found in persisted diff_file2980 creates a diff note file2981 when diff_line is not found in persisted diff_file2982 behaves like a valid diff note with after commit callback2983 when diff file is fetched from repository2984 when diff_line is not found2985 raises an error2986 when diff_line is found2987 fallback to fetch file from repository2988 creates a diff note file2989 when diff file is not found in repository2990 raises an error2991 when not importing2992 when diff_line is not found2993 raises an error2994 when diff_line is found2995 creates a diff note file2996 when diff file is not found in persisted diffs2997 behaves like a valid diff note with after commit callback2998 when diff file is fetched from repository2999 when diff_line is not found3000 raises an error3001 when diff_line is found3002 fallback to fetch file from repository3003 creates a diff note file3004 when diff file is not found in repository3005 raises an error3006 when diffs are not already created3007 behaves like a valid diff note with after commit callback3008 when diff file is fetched from repository3009 when diff_line is not found3010 raises an error3011 when diff_line is found3012 fallback to fetch file from repository3013 creates a diff note file3014 when diff file is not found in repository3015 raises an error3016 commit3017 creates a diff note file3018 does not create diff note file if it is a reply3019 #diff_file3020 when note_diff_file association exists3021 returns persisted diff file data3022 when the discussion was created in the diff3023 returns correct diff file3024 when discussion is outdated or not created in the diff3025 returns the correct diff file3026 note diff file creation enqueuing3027 enqueues CreateNoteDiffFileWorker if it is the first note of a discussion3028 does not enqueues CreateNoteDiffFileWorker if not first note of a discussion3029 when noteable is a Design3030 does not return a diff file3031 #latest_diff_file3032 when noteable is a Design3033 does not return a diff file3034 #diff_line3035 returns the correct diff line3036 #line_code3037 returns the correct line code3038 #active?3039 when noteable is a commit3040 returns true3041 when noteable is a merge request3042 when the merge request's diff refs match that of the diff note3043 returns true3044 when the merge request's diff refs don't match that of the diff note3045 returns false3046 creation3047 updating of position3048 when noteable is a commit3049 doesn't update the position3050 when noteable is a merge request3051 when the note is active3052 doesn't update the position3053 when the note is outdated3054 updates the position3055 #discussion_id3056 when it is newly created3057 has a discussion id3058 when it didn't store a discussion id before3059 has a discussion id3060 #created_at_diff?3061 when noteable is a commit3062 returns true3063 when noteable is a merge request3064 when the diff refs match the original one of the diff note3065 returns true3066 when the diff refs don't match the original one of the diff note3067 returns false3068 #supports_suggestion?3069 when noteable does not exist3070 returns false3071 when noteable does not support suggestions3072 returns false3073 when line is not suggestible3074 returns false3075 #banzai_render_context3076 includes expected context3077 image diff notes3078 returns true for on_image?3079 validations3080 is expected not to validate that :line_code cannot be empty/falsy3081 does not validate diff line3082 does not update the position3083 #to_ability_name3084 is expected to eq "note"3085 #shas3086 returns list of SHAs based on original_position3087 when position changes3088 includes the new position SHAs3089BranchesFinder3090 #execute3091 sort only3092 by name3093 sorts3094 by recently_updated3095 sorts3096 by last_updated3097 sorts3098 filter only3099 by name3100 filters branches3101 by name ignoring letter case3102 filters branches3103 by string3104 returns all branches contain name3105 by provided names3106 filters branches3107 by name that begins with3108 filters branches3109 by name that ends with3110 filters branches3111 by name with wildcard3112 filters branches3113 by mixed regex operators3114 filters branches3115 by invalid regex3116 is expected to raise RegexpError3117 by `|` regex3118 filters branches3119 by exclude name3120 filters branches3121 by name with multiple wildcards3122 filters branches3123 with an unknown name3124 does not find any branch3125 by nonexistent name that begins with3126 filters branches3127 by nonexistent name that ends with3128 filters branches3129 by nonexistent name with wildcard3130 filters branches3131 filter and sort3132 by name and sorts by recently_updated3133 filters branches3134 by name and sorts by recently_updated, with exact matches first3135 filters branches3136 by name and sorts by last_updated3137 filters branches3138 with gitaly pagination3139 by page_token and per_page3140 filters branches3141 by next page_token and per_page3142 filters branches3143 by per_page only3144 filters branches3145 by page_token only3146 raises an error3147 pagination and sort3148 by per_page3149 filters branches3150 by page_token and per_page3151 filters branches3152 pagination and names3153 falls back to default execute and ignore paginations3154 pagination and search3155 falls back to default execute and ignore paginations3156 #total3157 is expected to be a kind of Integer3158 is expected to eq 843159JobArtifactUploader3160 behaves like builds correct paths3161 #store_dir3162 behaves like matches the method pattern3163 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/3164 #cache_dir3165 behaves like matches the method pattern3166 is expected to match /artifacts\/tmp\/cache/3167 #work_dir3168 behaves like matches the method pattern3169 is expected to match /artifacts\/tmp\/work/3170 #upload_path3171 behaves like matches the method pattern3172 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3173 #relative_path3174 is relative (PENDING: Path not set, skipping.)3175 .absolute_path3176 behaves like matches the method pattern3177 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3178 .base_dir3179 behaves like matches the method pattern3180 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3181 path traversal exploits3182 throws an exception3183 object store is REMOTE3184 behaves like builds correct paths3185 #store_dir3186 behaves like matches the method pattern3187 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/3188 #cache_dir3189 behaves like matches the method pattern3190 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3191 #work_dir3192 behaves like matches the method pattern3193 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3194 #upload_path3195 behaves like matches the method pattern3196 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3197 #relative_path3198 is relative (PENDING: Path not set, skipping.)3199 .absolute_path3200 behaves like matches the method pattern3201 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3202 .base_dir3203 behaves like matches the method pattern3204 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3205 path traversal exploits3206 throws an exception3207 #cdn_enabled_url3208 returns URL and false3209 file is stored in valid local_path3210 is expected to start with "/builds/gitlab-org/gitlab/tmp/tests/artifacts/"3211 is expected to include "/2023_05_19/"3212 is expected to include "/20/20/"3213 is expected to end with "ci_build_artifacts.zip"3214 #dynamic_segment3215 when a job artifact is stored in legacy_path3216 behaves like Read file from legacy path3217 store_path returns the legacy path3218 has exactly the same content3219 when the artifact file is stored in hashed_path3220 behaves like Read file from hashed path3221 store_path returns hashed path3222 has exactly the same content3223 when file_location column is empty3224 behaves like Read file from hashed path3225 store_path returns hashed path3226 has exactly the same content3227 #migrate!3228 does not set Content-Type3229 behaves like migrates3230 returns corresponding file type3231 does nothing when migrating to the current store3232 migrate to the specified store3233 removes the original file after the migration3234 can access to the original file during migration3235 when migrate! is not occupied by another process3236 executes migrate!3237 executes use_file3238 when migrate! is occupied by another process3239 does not execute migrate!3240 does not execute use_file3241 migration is unsuccessful3242 when the store is not supported3243 does not update the object_store3244 does not delete the original file3245 upon a fog failure3246 does not update the object_store3247 does not delete the original file3248 upon a database failure3249 does not update the object_store3250 does not delete the original file3251 behaves like migrates3252 returns corresponding file type3253 does nothing when migrating to the current store3254 migrate to the specified store3255 removes the original file after the migration3256 can access to the original file during migration3257 when migrate! is not occupied by another process3258 executes migrate!3259 executes use_file3260 when migrate! is occupied by another process3261 does not execute migrate!3262 does not execute use_file3263 migration is unsuccessful3264 when the store is not supported3265 does not update the object_store3266 does not delete the original file3267 upon a fog failure3268 does not update the object_store3269 does not delete the original file3270 upon a database failure3271 does not update the object_store3272 does not delete the original file3273Integrations::Bamboo3274 behaves like Integrations::BaseCi3275 default values3276 is expected to eq :ci3277 behaves like Integrations::ResetSecretFields3278 #exposing_secrets_fields3279 returns an array of strings3280 #reset_secret_fields?3281 returns false if no exposing field has changed3282 returns true if any exposing field has changed3283 validation callback3284 when an exposing field has changed3285 clears all secret fields3286 when a secret field has been updated3287 does not clear this secret field3288 when a secret field has been updated with the same value3289 does not clear this secret field3290 when no exposing field has changed3291 does not clear any secret fields3292 accessors3293 is expected to respond to #enable_ssl_verification3294 is expected to respond to #enable_ssl_verification?3295 #initialize_properties3296 enables the setting by default3297 does not enable the setting if the record is already persisted3298 does not enable the setting if a custom value was set3299 #fields3300 inserts the checkbox field after the first URL field, or at the end3301 does not insert the field repeatedly3302 Validations3303 when active3304 is expected to validate that :build_key cannot be empty/falsy3305 is expected to validate that :bamboo_url cannot be empty/falsy3306 behaves like issue tracker integration URL attribute3307 is expected to allow :bamboo_url to be ‹"https://example.com"›3308 is expected not to allow :bamboo_url to be ‹"example.com"›3309 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›3310 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›3311 #username3312 does not validate the presence of username if password is nil3313 validates the presence of username if password is present3314 #password3315 does not validate the presence of password if username is nil3316 validates the presence of password if username is present3317 when inactive3318 is expected not to validate that :build_key cannot be empty/falsy3319 is expected not to validate that :bamboo_url cannot be empty/falsy3320 is expected not to validate that :username cannot be empty/falsy3321 is expected not to validate that :password cannot be empty/falsy3322 #execute3323 runs update and build action3324 #build_page3325 returns the contents of the reactive cache3326 #commit_status3327 returns the contents of the reactive cache3328 #calculate_reactive_cache3329 when Bamboo API returns single result3330 behaves like reactive cache calculation3331 #build_page3332 returns a specific URL when status is 5003333 returns a specific URL when response has no results3334 returns a build URL when bamboo_url has no trailing slash3335 bamboo_url has trailing slash3336 returns a build URL3337 #commit_status3338 sets commit status to :error when status is 5003339 sets commit status to "pending" when status is 4043340 sets commit status to "pending" when response has no results3341 sets commit status to "success" when build state contains Success3342 sets commit status to "failed" when build state contains Failed3343 sets commit status to "pending" when build state contains Pending3344 sets commit status to :error when build state is unknown3345 sets commit status to :error with a Net::OpenTimeout error3346 sets commit status to :error with a Net::ReadTimeout error3347 sets commit status to :error with a Net::WriteTimeout error3348 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3349 sets commit status to :error with a EOFError error3350 sets commit status to :error with a SocketError error3351 sets commit status to :error with a OpenSSL::SSL::SSLError error3352 sets commit status to :error with a OpenSSL::OpenSSLError error3353 sets commit status to :error with a Errno::ECONNRESET error3354 sets commit status to :error with a Errno::ECONNREFUSED error3355 sets commit status to :error with a Errno::EHOSTUNREACH error3356 sets commit status to :error with a Errno::ENETUNREACH error3357 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3358 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3359 sets commit status to :error with a Net::HTTPBadResponse error3360 when Bamboo API returns an array of results and we only consider the last one3361 behaves like reactive cache calculation3362 #build_page3363 returns a specific URL when status is 5003364 returns a specific URL when response has no results3365 returns a build URL when bamboo_url has no trailing slash3366 bamboo_url has trailing slash3367 returns a build URL3368 #commit_status3369 sets commit status to :error when status is 5003370 sets commit status to "pending" when status is 4043371 sets commit status to "pending" when response has no results3372 sets commit status to "success" when build state contains Success3373 sets commit status to "failed" when build state contains Failed3374 sets commit status to "pending" when build state contains Pending3375 sets commit status to :error when build state is unknown3376 sets commit status to :error with a Net::OpenTimeout error3377 sets commit status to :error with a Net::ReadTimeout error3378 sets commit status to :error with a Net::WriteTimeout error3379 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3380 sets commit status to :error with a EOFError error3381 sets commit status to :error with a SocketError error3382 sets commit status to :error with a OpenSSL::SSL::SSLError error3383 sets commit status to :error with a OpenSSL::OpenSSLError error3384 sets commit status to :error with a Errno::ECONNRESET error3385 sets commit status to :error with a Errno::ECONNREFUSED error3386 sets commit status to :error with a Errno::EHOSTUNREACH error3387 sets commit status to :error with a Errno::ENETUNREACH error3388 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3389 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3390 sets commit status to :error with a Net::HTTPBadResponse error3391RuboCop::Cop::Migration::CreateTableWithForeignKeys3392 # order random3393 when in a migration3394 without foreign key3395 does not register any offenses3396 with foreign key3397 with just one foreign key3398 when the foreign_key targets a high traffic table3399 when the foreign_key has to_table option set3400 does not register any offenses3401 when the foreign_key does not have to_table option set3402 does not register any offenses3403 when the foreign_key does not target a high traffic table3404 does not register any offenses3405 with more than one foreign keys3406 when the foreign keys are defined as options3407 when there is no target to a high traffic table3408 does not register any offenses3409 with audit_events3410 behaves like target to high traffic table3411 when the target is defined as option3412 registers an offense3413 when the target has implicit definition3414 registers an offense3415 with ci_builds3416 behaves like target to high traffic table3417 when the target is defined as option3418 registers an offense3419 when the target has implicit definition3420 registers an offense3421 with ci_builds_metadata3422 behaves like target to high traffic table3423 when the target is defined as option3424 registers an offense3425 when the target has implicit definition3426 registers an offense3427 with ci_job_artifacts3428 behaves like target to high traffic table3429 when the target is defined as option3430 registers an offense3431 when the target has implicit definition3432 registers an offense3433 with ci_pipeline_variables3434 behaves like target to high traffic table3435 when the target is defined as option3436 registers an offense3437 when the target has implicit definition3438 registers an offense3439 with ci_pipelines3440 behaves like target to high traffic table3441 when the target is defined as option3442 registers an offense3443 when the target has implicit definition3444 registers an offense3445 with ci_stages3446 behaves like target to high traffic table3447 when the target is defined as option3448 registers an offense3449 when the target has implicit definition3450 registers an offense3451 with deployments3452 behaves like target to high traffic table3453 when the target is defined as option3454 registers an offense3455 when the target has implicit definition3456 registers an offense3457 with events3458 behaves like target to high traffic table3459 when the target is defined as option3460 registers an offense3461 when the target has implicit definition3462 registers an offense3463 with gitlab_subscriptions3464 behaves like target to high traffic table3465 when the target is defined as option3466 registers an offense3467 when the target has implicit definition3468 registers an offense3469 with issues3470 behaves like target to high traffic table3471 when the target is defined as option3472 registers an offense3473 when the target has implicit definition3474 registers an offense3475 with merge_request_diff_commits3476 behaves like target to high traffic table3477 when the target is defined as option3478 registers an offense3479 when the target has implicit definition3480 registers an offense3481 with merge_request_diff_files3482 behaves like target to high traffic table3483 when the target is defined as option3484 registers an offense3485 when the target has implicit definition3486 registers an offense3487 with merge_request_diffs3488 behaves like target to high traffic table3489 when the target is defined as option3490 registers an offense3491 when the target has implicit definition3492 registers an offense3493 with merge_request_metrics3494 behaves like target to high traffic table3495 when the target is defined as option3496 registers an offense3497 when the target has implicit definition3498 registers an offense3499 with merge_requests3500 behaves like target to high traffic table3501 when the target is defined as option3502 registers an offense3503 when the target has implicit definition3504 registers an offense3505 with namespaces3506 behaves like target to high traffic table3507 when the target is defined as option3508 registers an offense3509 when the target has implicit definition3510 registers an offense3511 with note_diff_files3512 behaves like target to high traffic table3513 when the target is defined as option3514 registers an offense3515 when the target has implicit definition3516 registers an offense3517 with notes3518 behaves like target to high traffic table3519 when the target is defined as option3520 registers an offense3521 when the target has implicit definition3522 registers an offense3523 with project_authorizations3524 behaves like target to high traffic table3525 when the target is defined as option3526 registers an offense3527 when the target has implicit definition3528 registers an offense3529 with projects3530 behaves like target to high traffic table3531 when the target is defined as option3532 registers an offense3533 when the target has implicit definition3534 registers an offense3535 with project_ci_cd_settings3536 behaves like target to high traffic table3537 when the target is defined as option3538 registers an offense3539 when the target has implicit definition3540 registers an offense3541 with project_features3542 behaves like target to high traffic table3543 when the target is defined as option3544 registers an offense3545 when the target has implicit definition3546 registers an offense3547 with push_event_payloads3548 behaves like target to high traffic table3549 when the target is defined as option3550 registers an offense3551 when the target has implicit definition3552 registers an offense3553 with resource_label_events3554 behaves like target to high traffic table3555 when the target is defined as option3556 registers an offense3557 when the target has implicit definition3558 registers an offense3559 with routes3560 behaves like target to high traffic table3561 when the target is defined as option3562 registers an offense3563 when the target has implicit definition3564 registers an offense3565 with sent_notifications3566 behaves like target to high traffic table3567 when the target is defined as option3568 registers an offense3569 when the target has implicit definition3570 registers an offense3571 with system_note_metadata3572 behaves like target to high traffic table3573 when the target is defined as option3574 registers an offense3575 when the target has implicit definition3576 registers an offense3577 with taggings3578 behaves like target to high traffic table3579 when the target is defined as option3580 registers an offense3581 when the target has implicit definition3582 registers an offense3583 with todos3584 behaves like target to high traffic table3585 when the target is defined as option3586 registers an offense3587 when the target has implicit definition3588 registers an offense3589 with users3590 behaves like target to high traffic table3591 when the target is defined as option3592 registers an offense3593 when the target has implicit definition3594 registers an offense3595 with web_hook_logs3596 behaves like target to high traffic table3597 when the target is defined as option3598 registers an offense3599 when the target has implicit definition3600 registers an offense3601 when the foreign keys are defined by standlone migration helper3602 when there is no target to a high traffic table3603 does not register any offenses3604 with audit_events3605 behaves like target to high traffic table3606 when the target is defined as option3607 registers an offense3608 when the target has implicit definition3609 registers an offense3610 with ci_builds3611 behaves like target to high traffic table3612 when the target is defined as option3613 registers an offense3614 when the target has implicit definition3615 registers an offense3616 with ci_builds_metadata3617 behaves like target to high traffic table3618 when the target is defined as option3619 registers an offense3620 when the target has implicit definition3621 registers an offense3622 with ci_job_artifacts3623 behaves like target to high traffic table3624 when the target is defined as option3625 registers an offense3626 when the target has implicit definition3627 registers an offense3628 with ci_pipeline_variables3629 behaves like target to high traffic table3630 when the target is defined as option3631 registers an offense3632 when the target has implicit definition3633 registers an offense3634 with ci_pipelines3635 behaves like target to high traffic table3636 when the target is defined as option3637 registers an offense3638 when the target has implicit definition3639 registers an offense3640 with ci_stages3641 behaves like target to high traffic table3642 when the target is defined as option3643 registers an offense3644 when the target has implicit definition3645 registers an offense3646 with deployments3647 behaves like target to high traffic table3648 when the target is defined as option3649 registers an offense3650 when the target has implicit definition3651 registers an offense3652 with events3653 behaves like target to high traffic table3654 when the target is defined as option3655 registers an offense3656 when the target has implicit definition3657 registers an offense3658 with gitlab_subscriptions3659 behaves like target to high traffic table3660 when the target is defined as option3661 registers an offense3662 when the target has implicit definition3663 registers an offense3664 with issues3665 behaves like target to high traffic table3666 when the target is defined as option3667 registers an offense3668 when the target has implicit definition3669 registers an offense3670 with merge_request_diff_commits3671 behaves like target to high traffic table3672 when the target is defined as option3673 registers an offense3674 when the target has implicit definition3675 registers an offense3676 with merge_request_diff_files3677 behaves like target to high traffic table3678 when the target is defined as option3679 registers an offense3680 when the target has implicit definition3681 registers an offense3682 with merge_request_diffs3683 behaves like target to high traffic table3684 when the target is defined as option3685 registers an offense3686 when the target has implicit definition3687 registers an offense3688 with merge_request_metrics3689 behaves like target to high traffic table3690 when the target is defined as option3691 registers an offense3692 when the target has implicit definition3693 registers an offense3694 with merge_requests3695 behaves like target to high traffic table3696 when the target is defined as option3697 registers an offense3698 when the target has implicit definition3699 registers an offense3700 with namespaces3701 behaves like target to high traffic table3702 when the target is defined as option3703 registers an offense3704 when the target has implicit definition3705 registers an offense3706 with note_diff_files3707 behaves like target to high traffic table3708 when the target is defined as option3709 registers an offense3710 when the target has implicit definition3711 registers an offense3712 with notes3713 behaves like target to high traffic table3714 when the target is defined as option3715 registers an offense3716 when the target has implicit definition3717 registers an offense3718 with project_authorizations3719 behaves like target to high traffic table3720 when the target is defined as option3721 registers an offense3722 when the target has implicit definition3723 registers an offense3724 with projects3725 behaves like target to high traffic table3726 when the target is defined as option3727 registers an offense3728 when the target has implicit definition3729 registers an offense3730 with project_ci_cd_settings3731 behaves like target to high traffic table3732 when the target is defined as option3733 registers an offense3734 when the target has implicit definition3735 registers an offense3736 with project_features3737 behaves like target to high traffic table3738 when the target is defined as option3739 registers an offense3740 when the target has implicit definition3741 registers an offense3742 with push_event_payloads3743 behaves like target to high traffic table3744 when the target is defined as option3745 registers an offense3746 when the target has implicit definition3747 registers an offense3748 with resource_label_events3749 behaves like target to high traffic table3750 when the target is defined as option3751 registers an offense3752 when the target has implicit definition3753 registers an offense3754 with routes3755 behaves like target to high traffic table3756 when the target is defined as option3757 registers an offense3758 when the target has implicit definition3759 registers an offense3760 with sent_notifications3761 behaves like target to high traffic table3762 when the target is defined as option3763 registers an offense3764 when the target has implicit definition3765 registers an offense3766 with system_note_metadata3767 behaves like target to high traffic table3768 when the target is defined as option3769 registers an offense3770 when the target has implicit definition3771 registers an offense3772 with taggings3773 behaves like target to high traffic table3774 when the target is defined as option3775 registers an offense3776 when the target has implicit definition3777 registers an offense3778 with todos3779 behaves like target to high traffic table3780 when the target is defined as option3781 registers an offense3782 when the target has implicit definition3783 registers an offense3784 with users3785 behaves like target to high traffic table3786 when the target is defined as option3787 registers an offense3788 when the target has implicit definition3789 registers an offense3790 with web_hook_logs3791 behaves like target to high traffic table3792 when the target is defined as option3793 registers an offense3794 when the target has implicit definition3795 registers an offense3796 outside of a migration3797 does not register any offenses3798Gitlab::Email::Message::RepositoryPush3799 new commits have been pushed to repository3800 #project3801 is expected to eq #<Project id:795 my_group/project-805>>3802 is expected to be an instance of Project3803 #project_namespace3804 is expected to eq #<Group id:3763 @my_group>3805 is expected to be a kind of Namespace(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_at: datetime, type: string, description: string, avatar: string, membership_lock: boolean, share_with_group_lock: boolean, visibility_level: integer, request_access_enabled: boolean, ldap_sync_status: string, ldap_sync_error: string, ldap_sync_last_update_at: datetime, ldap_sync_last_successful_update_at: datetime, ldap_sync_last_sync_at: datetime, description_html: text, lfs_enabled: boolean, parent_id: integer, shared_runners_minutes_limit: integer, repository_size_limit: integer, require_two_factor_authentication: boolean, two_factor_grace_period: integer, cached_markdown_version: integer, project_creation_level: integer, runners_token: string, file_template_project_id: integer, saml_discovery_token: string, runners_token_encrypted: string, custom_project_templates_group_id: integer, auto_devops_enabled: boolean, extra_shared_runners_minutes_limit: integer, last_ci_minutes_notification_at: datetime_with_timezone, last_ci_minutes_usage_notification_level: integer, subgroup_creation_level: integer, emails_disabled: boolean, max_pages_size: integer, max_artifacts_size: integer, mentions_disabled: boolean, default_branch_protection: integer, unlock_membership_to_ldap: boolean, max_personal_access_token_lifetime: integer, push_rule_id: integer, shared_runners_enabled: boolean, allow_descendants_override_disabled_shared_runners: boolean, traversal_ids: integer)3806 #project_name_with_namespace3807 is expected to eq "my_group / Project-809 Name"3808 #author3809 is expected to eq #<User id:2272 @user1568>3810 is expected to be an instance of User3811 #author_name3812 is expected to eq "Author"3813 #commits3814 is expected to be a kind of CommitCollection3815 is expected to all be an instance of Commit3816 #diffs3817 is expected to all be an instance of Gitlab::Diff::File3818 #diffs_count3819 is expected to eq 93820 #compare3821 is expected to be an instance of Compare3822 #compare_timeout3823 is expected to eq false3824 #reverse_compare?3825 is expected to eq false3826 #disable_diffs?3827 is expected to eq false3828 #send_from_committer_email?3829 is expected to eq true3830 #action_name3831 is expected to eq "pushed to"3832 #ref_name3833 is expected to eq "master"3834 #ref_type3835 is expected to eq "branch"3836 #target_url3837 is expected to include "compare"3838 is expected to include "2f63565e7aac07bcdadb654e253078b727143ec4"3839 is expected to include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"3840 #subject3841 is expected to include "[Git][my_group/project-828]"3842 is expected to include "6 commits"3843 is expected to include "Ruby files modified"3844PagesDomain3845 associations3846 is expected to belong to project required: false3847 .for_project3848 returns domains assigned to project3849 .verified3850 finds verified3851 validate domain3852 is unique3853 is expected to validate that :domain is case-insensitively unique3854 hostname3855 domain "my.domain.com" validity3856 is expected to eq true3857 domain "123.456.789" validity3858 is expected to eq true3859 domain "0x12345.com" validity3860 is expected to eq true3861 domain "0123123" validity3862 is expected to eq true3863 domain "a-reserved.com" validity3864 is expected to eq true3865 domain "a.b-reserved.com" validity3866 is expected to eq true3867 domain "reserved.com" validity3868 is expected to eq true3869 domain "_foo.com" validity3870 is expected to eq false3871 domain "a.reserved.com" validity3872 is expected to eq false3873 domain "a.b.reserved.com" validity3874 is expected to eq false3875 domain nil validity3876 is expected to eq false3877 HTTPS-only3878 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: [:certificate, :key]3879 is adds the expected errors3880 pages_https_only: true, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []3881 is adds the expected errors3882 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: false, errors_on: [:key]3883 is adds the expected errors3884 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: true, errors_on: [:key]3885 is adds the expected errors3886 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: [:certificate, :key]3887 is adds the expected errors3888 pages_https_only: true, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: [:key]3889 is adds the expected errors3890 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: []3891 is adds the expected errors3892 pages_https_only: true, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: []3893 is adds the expected errors3894 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: false, errors_on: []3895 is adds the expected errors3896 pages_https_only: false, certificate: nil, key: nil, auto_ssl_enabled: true, errors_on: []3897 is adds the expected errors3898 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: false, errors_on: [:key]3899 is adds the expected errors3900 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: nil, auto_ssl_enabled: true, errors_on: [:key]3901 is adds the expected errors3902 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: [:key]3903 is adds the expected errors3904 pages_https_only: false, certificate: nil, key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: [:key]3905 is adds the expected errors3906 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: false, errors_on: []3907 is adds the expected errors3908 pages_https_only: false, certificate: "-----BEGIN CERTIFICATE-----\nMIIBrzCCARgCCQDbfQx2zdkNYTANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBB0\nZXN0LWNlcnRpZmljYXRlMCAXDTIwMDMxNjE0MjAzNFoYDzIyMjAwMTI4MTQyMDM0\nWjAbMRkwFwYDVQQDDBB0ZXN0LWNlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUA\nA4GNADCBiQKBgQCkvgn0vRnEUnWEjUs8h+UCUAa+bpkS+hPiopTld/YmBTv/aB41\nHWqU0VpK8JzTwqe6mnnJOCa/Ir9eLT1TQ3za++nhm+v92JJzgD9EDoy1rp6AvJI1\nPjfyR1Odja1Hl96hMvBClfS3ggyXAZAZPmHo5/Z8qYPHO7C7J99wgeot2wIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4GBACc+chrTAuvnMBTedc4/dy16pEesK6oGjywYUd/0\n/FBr8Vry7QUXMSgfraza9S0V+JvFvZFqkkOyJKW+m30kThWzyc/2e+BRxTh/QrxP\n0j84QXtmnVtW4jsAwfBBfg78ST27eyp/WhruI6F/kZlXhfAed0RcPbRnbi3yvUPL\nLo4T\n-----END CERTIFICATE-----\n", key: "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tGuINghO7aunctb6rrcKJrxmEH1whzComybrMCQQDKV49nOBudRBAIgG4K\nEnLzsRKISUHMZSJiYTYnablof8cKw1JaQduw7zgrUlLwnroSaAGX88+Jw1f5n2Lh\nVlg5AkBDdUGnrDLtYBCDEQYZHblrkc7ZAeCllDOWjxUV+uMqlCv8A4Ey6omvY57C\nm6I8DkWVAQx8VPtozhvHjUw80rZHAkB55HWHAM3h13axKG0htCt7klhPsZHpx6MH\nEPjGlXIT+aW2XiPmK3ZlCDcWIenE+lmtbOpI159Wpk8BGXs/s/xBAkEAlAY3ymgx\n63BDJEwvOb2IaP8lDDxNsXx9XJNVvQbv5n15vNsLHbjslHfAhAbxnLQ1fLhUPqSi\nnNp/xedE1YxutQ==\n-----END PRIVATE KEY-----\n", auto_ssl_enabled: true, errors_on: []3909 is adds the expected errors3910 when certificate is specified3911 saves validity time3912 validate certificate3913 serverless domain3914 requires certificate and key to be present3915 with matching key3916 is expected to be valid3917 when no certificate is specified3918 is expected not to be valid3919 when no key is specified3920 is expected not to be valid3921 for not matching key3922 is expected not to be valid3923 when certificate is expired3924 when certificate is being changed3925 adds error to certificate3926 when certificate is already saved3927 doesn't add error to certificate3928 with ecdsa certificate3929 is valid3930 when curve is set explicitly by parameters3931 adds errors to private key3932 validations3933 is expected to validate that :verification_code cannot be empty/falsy3934 default values3935 defaults wildcard to false3936 defaults auto_ssl_enabled to false3937 defaults scope to project3938 defaults usage to pages3939 #verification_code3940 is set automatically with 128 bits of SecureRandom data3941 #keyed_verification_code3942 is expected to eq "gitlab-pages-verification-code=d29f6029aa96cc60e6a8cad31cafaf5d"3943 #verification_domain3944 is expected to be nil3945 is a well-known subdomain if the domain is present3946 #url3947 is expected to eq "https://my34.domain.com"3948 without the certificate3949 is expected to eq "http://my35.domain.com"3950 #has_matching_key?3951 is expected to be truthy3952 for invalid key3953 is expected to be falsey3954 #has_intermediates?3955 for self signed3956 is expected to be truthy3957 for missing certificate chain3958 is expected to be falsey3959 for trusted certificate chain3960 is expected to be truthy3961 #expired?3962 for valid3963 is expected to be falsey3964 for expired3965 is expected to be truthy3966 #subject3967 is expected to eq "/CN=test-certificate"3968 #certificate_text3969 is expected not to be empty3970 #https?3971 when a certificate is present3972 is expected to be https3973 when no certificate is present3974 is expected not to be https3975 #user_provided_key3976 when certificate is provided by user3977 returns key3978 when certificate is provided by gitlab3979 returns nil3980 #user_provided_certificate3981 when certificate is provided by user3982 returns key3983 when certificate is provided by gitlab3984 returns nil3985 #user_provided_key=3986 when value has been changed3987 assignes new value to key3988 changes certificate source3989 when value has not been not changed3990 does not change certificate source3991 #gitlab_provided_key=3992 when value has been changed3993 assignes new value to key3994 changes certificate source3995 when value has not been not changed3996 does not change certificate source3997 #user_provided_certificate=3998 when value has been changed3999 assignes new value to certificate4000 changes certificate source4001 when value has not been not changed4002 does not change certificate source4003 #gitlab_provided_certificate=4004 when value has been changed4005 assignes new value to certificate4006 changes certificate source4007 when value has not been not changed4008 does not change certificate source4009 #save4010 when we failed to obtain ssl certificate4011 clears failure if auto ssl is disabled4012 does not clear failure on unrelated updates4013 .for_removal4014 when domain is not schedule for removal4015 does not return domain4016 when domain is scheduled for removal yesterday4017 returns domain4018 when domain is scheduled for removal tomorrow4019 does not return domain4020 .instance_serverless4021 returns domains that are wildcard, instance-level, and serverless4022 .need_auto_ssl_renewal4023 contains only domains needing ssl renewal4024 #validate_custom_domain_count_per_project4025 when max custom domain setting is set to 04026 returns without an error4027 when max custom domain setting is not set to 04028 returns with an error for extra domains4029 .find_by_domain_case_insensitive4030 lookup is case-insensitive4031DiffHelper4032 diff_view4033 uses the view param over the cookie4034 returns the default value when the view param is invalid4035 returns a valid value when cookie is set4036 returns the default value when cookie is invalid4037 returns the default value when cookie is nil4038 diff_options4039 returns no collapse false4040 returns no collapse true if expanded4041 when action name is diff_for_path4042 returns expanded true4043 returns paths if param old path4044 returns paths if param new path4045 does not set max_patch_bytes_for_file_extension4046 when file_identifier include .ipynb4047 when large_ipynb_diffs is disabled4048 does not set max_patch_bytes_for_file_extension4049 when large_ipynb_diffs is enabled4050 sets max_patch_bytes_for_file_extension4051 #diff_line_content4052 when the line is empty4053 returns a non breaking space4054 returns an HTML-safe string4055 when the line is not empty4056 when the line starts with +, -, or a space4057 strips the first character4058 when the line is HTML-safe4059 returns an HTML-safe string4060 when the line is not HTML-safe4061 returns a non-HTML-safe string4062 when the line does not start with a +, -, or a space4063 returns the string4064 when the line is HTML-safe4065 returns an HTML-safe string4066 when the line is not HTML-safe4067 returns a non-HTML-safe string4068 #diff_link_number4069 line_type: "new", match: "new", line_number: 1, expected_return_value: " "4070 returns the expected value4071 line_type: "new", match: "old", line_number: 2, expected_return_value: 24072 returns the expected value4073 line_type: "old", match: "new", line_number: 3, expected_return_value: 34074 returns the expected value4075 line_type: "old", match: "old", line_number: 4, expected_return_value: " "4076 returns the expected value4077 line_type: "new-nonewline", match: "new", line_number: 5, expected_return_value: 54078 returns the expected value4079 line_type: "new-nonewline", match: "old", line_number: 6, expected_return_value: 64080 returns the expected value4081 line_type: "old-nonewline", match: "new", line_number: 7, expected_return_value: 74082 returns the expected value4083 line_type: "old-nonewline", match: "old", line_number: 8, expected_return_value: 84084 returns the expected value4085 line_type: "match", match: "new", line_number: 9, expected_return_value: 94086 returns the expected value4087 line_type: "match", match: "old", line_number: 10, expected_return_value: 104088 returns the expected value4089 #mark_inline_diffs4090 returns strings with marked inline diffs4091 when given HTML4092 sanitizes it4093 sanitizes the entire line, not just the changes4094 #parallel_diff_discussions4095 does not put comments on nonewline lines4096 puts comments on added lines4097 puts comments on unchanged lines4098 #diff_match_line4099 generates foldable top match line for inline view with empty text by default4100 allows to define text and bottom option4101 generates match line for parallel view4102 allows to generate only left match line for parallel view4103 allows to generate only right match line for parallel view4104 #diff_nomappinginraw_line4105 generates only single line num4106 generates only both line nums4107 line_type: "old-nomappinginraw", added_class: ".old"4108 appends the correct class4109 line_type: "new-nomappinginraw", added_class: ".new"4110 appends the correct class4111 line_type: "unchanged-nomappinginraw", added_class: ""4112 appends the correct class4113 #render_overflow_warning?4114 when no limits are hit4115 returns false and does not log any overflow events4116 overflow_method: :overflow_max_bytes?, event_name: :diffs_overflow_max_bytes_limits4117 returns false and only logs the correct collection overflow event4118 overflow_method: :overflow_max_files?, event_name: :diffs_overflow_max_files_limits4119 returns false and only logs the correct collection overflow event4120 overflow_method: :overflow_max_lines?, event_name: :diffs_overflow_max_lines_limits4121 returns false and only logs the correct collection overflow event4122 overflow_method: :collapsed_safe_bytes?, event_name: :diffs_overflow_collapsed_bytes_limits4123 returns false and only logs the correct collection overflow event4124 overflow_method: :collapsed_safe_files?, event_name: :diffs_overflow_collapsed_files_limits4125 returns false and only logs the correct collection overflow event4126 overflow_method: :collapsed_safe_lines?, event_name: :diffs_overflow_collapsed_lines_limits4127 returns false and only logs the correct collection overflow event4128 when the file collection has an overflow4129 returns true and only logs all the correct collection overflow event4130 when two individual files are too big4131 returns false and only logs single file overflow events4132 #diff_file_html_data4133 returns data for project files4134 #collapsed_diff_url4135 returns a valid URL4136 #params_with_whitespace4137 filters with safe_params4138 #render_fork_suggestion4139 user signed in4140 renders the partial4141 guest4142 is expected to be nil4143 #conflicts4144 returns list of conflicts indexed by path4145 when merge request can be merged4146 returns nil4147 when source branch does not exist4148 returns nil4149 when target branch does not exist4150 returns nil4151 when conflicts cannot be resolved in UI4152 returns nil4153 when allow_tree_conflicts is true4154 returns list of conflicts4155 when Gitlab::Git::Conflict::Resolver::ConflictSideMissing exception is raised4156 returns an empty hash4157 #show_only_context_commits?4158 when only_context_commits param is set to true4159 is expected to be truthy4160 when merge request has commits4161 is expected to be truthy4162 when only_context_commits param is set to false4163 is expected to be truthy4164 when merge request has commits4165 is expected to be falsey4166PushEvent4167 .created_or_pushed4168 includes events for pushing to existing refs4169 includes events for creating new refs4170 does not include events for removing refs4171 .branch_events4172 includes events for branches4173 does not include events for tags4174 .without_existing_merge_requests4175 includes events that do not have a corresponding merge request4176 does not include events that have a corresponding open merge request4177 includes events that has corresponding closed/merged merge requests4178 does not include events for removed refs4179 does not include events for pushing to tags4180 .sti_name4181 returns the integer representation of the :pushed event action4182 #push_action?4183 returns true4184 #push_with_commits?4185 returns true when both the first and last commit are present4186 returns false when the first commit is missing4187 returns false when the last commit is missing4188 #tag?4189 returns true when pushing to a tag4190 returns false when pushing to a branch4191 #branch?4192 returns true when pushing to a branch4193 returns false when pushing to a tag4194 #valid_push?4195 returns true if a ref exists4196 returns false when no ref is present4197 #new_ref?4198 returns true when pushing a new ref4199 returns false when pushing to an existing ref4200 #rm_ref?4201 returns true when removing an existing ref4202 returns false when pushing to an existing ref4203 #commit_from4204 returns the first commit SHA4205 #commit_to4206 returns the last commit SHA4207 #ref_name4208 returns the name of the ref4209 #ref_type4210 returns the type of the ref4211 #branch_name4212 returns the name of the branch4213 #tag_name4214 returns the name of the tag4215 #commit_title4216 returns the commit message4217 #commit_id4218 returns the SHA of the last commit if present4219 returns the SHA of the first commit if the last commit is not present4220 #commits_count4221 returns the number of commits4222 #validate_push_action4223 adds an error when the action is not PUSHED4224InternalId4225 behaves like having unique enum values4226 has unique values in "usage"4227 validations4228 is expected to validate that :usage cannot be empty/falsy4229 .flush_records!4230 deletes all records for the given project4231 retains records for other projects4232 does not allow an empty filter4233 .generate_next4234 generates a strictly monotone, gapless sequence4235 in the absence of a record4236 creates a record if not yet present4237 stores record attributes4238 with existing issues4239 calculates last_value values automatically4240 there are no instances to pass in4241 accepts classes instead4242 when executed outside of transaction4243 increments counter with in_transaction: "false"4244 when executed within transaction4245 increments counter with in_transaction: "true"4246 .reset4247 in the absence of a record4248 does not revert back the value4249 when valid iid is used to reset4250 and iid is a latest one4251 does rewind and next generated value is the same4252 and iid is not a latest one4253 does not rewind4254 when executed outside of transaction4255 increments counter with in_transaction: "false"4256 when executed within transaction4257 increments counter with in_transaction: "true"4258 .track_greatest4259 stores record attributes4260 in the absence of a record4261 creates a record if not yet present4262 with existing issues4263 still returns the last value to that of the given value4264 when value is less than the current last_value4265 returns the current last_value4266 there are no instances to pass in4267 accepts classes instead4268 when executed outside of transaction4269 increments counter with in_transaction: "false"4270 when executed within transaction4271 increments counter with in_transaction: "true"4272Projects::UpdateRepositoryStorageService4273 #execute4274 without wiki and design repository4275 when the move succeeds4276 moves the repository to the new storage and unmarks the repository as read-only4277 when the filesystems are the same4278 updates the database without trying to move the repostory4279 when the move fails4280 unmarks the repository as read-only without updating the repository storage4281 when the cleanup fails4282 sets the correct state4283 when the checksum does not match4284 unmarks the repository as read-only without updating the repository storage4285 when a object pool was joined4286 leaves the pool4287 when the repository move is finished4288 is idempotent4289 when the repository move is failed4290 is idempotent4291 project with no repositories4292 updates the database4293 with wiki repository4294 when the move succeeds4295 moves the project and its wiki repository to the new storage and unmarks the repository as read-only4296 when the filesystems are the same4297 updates the database without trying to move the repostory4298 when the move of the wiki repository fails4299 unmarks the repository as read-only without updating the repository storage4300 when the cleanup of the wiki repository fails4301 sets the correct state4302 when the checksum of the wiki repository does not match4303 unmarks the repository as read-only without updating the repository storage4304 with design repository4305 when the move succeeds4306 moves the project and its design repository to the new storage and unmarks the repository as read-only4307 when the filesystems are the same4308 updates the database without trying to move the repostory4309 when the move of the design repository fails4310 unmarks the repository as read-only without updating the repository storage4311 when the cleanup of the design repository fails4312 sets the correct state4313 when the checksum of the design repository does not match4314 unmarks the repository as read-only without updating the repository storage4315BlobPolicy4316 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 14317 grants permission4318 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 14319 grants permission4320 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 14321 grants permission4322 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 14323 grants permission4324 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 14325 grants permission4326 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 14327 grants permission4328 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 14329 grants permission4330 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 04331 grants permission4332 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 14333 grants permission4334 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 14335 grants permission4336 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 04337 grants permission4338 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 04339 grants permission4340 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 04341 grants permission4342 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 04343 grants permission4344 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 04345 grants permission4346 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 04347 grants permission4348 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 14349 grants permission4350 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 14351 grants permission4352 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 14353 grants permission4354 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 14355 grants permission4356 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 14357 grants permission4358 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 04359 grants permission4360 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 14361 grants permission4362 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 04363 grants permission4364 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 14365 grants permission4366 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 14367 grants permission4368 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 04369 grants permission4370 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 04371 grants permission4372 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 04373 grants permission4374 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 04375 grants permission4376 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 04377 grants permission4378 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 04379 grants permission4380 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 14381 grants permission4382 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 04383 grants permission4384 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 14385 grants permission4386 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 04387 grants permission4388 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 04389 grants permission4390 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 04391 grants permission4392 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 04393 grants permission4394 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 04395 grants permission4396 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 04397 grants permission4398 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 04399 grants permission4400Users::BuildService4401 #execute4402 with nil current_user4403 behaves like common user build items4404 is expected to be valid4405 sets the created_by_id4406 calls UpdateCanonicalEmailService4407 when user_type is provided4408 when project_bot4409 is expected to equal true4410 when not a project_bot4411 is expected to be human4412 behaves like current user not admin build items4413 with "user_default_external" application setting4414 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4415 sets the value of Gitlab::CurrentSettings.user_default_external4416 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4417 sets the value of Gitlab::CurrentSettings.user_default_external4418 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true4419 sets the value of Gitlab::CurrentSettings.user_default_external4420 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4421 sets the value of Gitlab::CurrentSettings.user_default_external4422 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4423 sets the value of Gitlab::CurrentSettings.user_default_external4424 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true4425 sets the value of Gitlab::CurrentSettings.user_default_external4426 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4427 sets the value of Gitlab::CurrentSettings.user_default_external4428 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4429 sets the value of Gitlab::CurrentSettings.user_default_external4430 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4431 sets the value of Gitlab::CurrentSettings.user_default_external4432 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4433 sets the value of Gitlab::CurrentSettings.user_default_external4434 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4435 sets the value of Gitlab::CurrentSettings.user_default_external4436 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4437 sets the value of Gitlab::CurrentSettings.user_default_external4438 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4439 sets the value of Gitlab::CurrentSettings.user_default_external4440 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false4441 sets the value of Gitlab::CurrentSettings.user_default_external4442 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4443 sets the value of Gitlab::CurrentSettings.user_default_external4444 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4445 sets the value of Gitlab::CurrentSettings.user_default_external4446 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false4447 sets the value of Gitlab::CurrentSettings.user_default_external4448 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4449 sets the value of Gitlab::CurrentSettings.user_default_external4450 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4451 sets the value of Gitlab::CurrentSettings.user_default_external4452 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4453 sets the value of Gitlab::CurrentSettings.user_default_external4454 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4455 sets the value of Gitlab::CurrentSettings.user_default_external4456 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4457 sets the value of Gitlab::CurrentSettings.user_default_external4458 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4459 sets the value of Gitlab::CurrentSettings.user_default_external4460 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4461 sets the value of Gitlab::CurrentSettings.user_default_external4462 when "email_confirmation_setting" application setting is set to `hard`4463 does not confirm the user4464 when "email_confirmation_setting" application setting is set to `off`4465 confirms the user4466 with allowed params4467 sets all allowed attributes4468 with non admin current_user4469 raises AccessDeniedError exception4470 with an admin current_user4471 behaves like common user build items4472 is expected to be valid4473 sets the created_by_id4474 calls UpdateCanonicalEmailService4475 when user_type is provided4476 when project_bot4477 is expected to equal true4478 when not a project_bot4479 is expected to be human4480 with allowed params4481 sets all allowed attributes4482 with "user_default_external" application setting4483 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4484 sets the value of Gitlab::CurrentSettings.user_default_external4485 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4486 sets the value of Gitlab::CurrentSettings.user_default_external4487 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4488 sets the value of Gitlab::CurrentSettings.user_default_external4489 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4490 sets the value of Gitlab::CurrentSettings.user_default_external4491 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4492 sets the value of Gitlab::CurrentSettings.user_default_external4493 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4494 sets the value of Gitlab::CurrentSettings.user_default_external4495 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4496 sets the value of Gitlab::CurrentSettings.user_default_external4497 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4498 sets the value of Gitlab::CurrentSettings.user_default_external4499 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4500 sets the value of Gitlab::CurrentSettings.user_default_external4501 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4502 sets the value of Gitlab::CurrentSettings.user_default_external4503 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4504 sets the value of Gitlab::CurrentSettings.user_default_external4505 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4506 sets the value of Gitlab::CurrentSettings.user_default_external4507 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4508 sets the value of Gitlab::CurrentSettings.user_default_external4509 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4510 sets the value of Gitlab::CurrentSettings.user_default_external4511 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4512 sets the value of Gitlab::CurrentSettings.user_default_external4513 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4514 sets the value of Gitlab::CurrentSettings.user_default_external4515 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4516 sets the value of Gitlab::CurrentSettings.user_default_external4517 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4518 sets the value of Gitlab::CurrentSettings.user_default_external4519 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4520 sets the value of Gitlab::CurrentSettings.user_default_external4521 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4522 sets the value of Gitlab::CurrentSettings.user_default_external4523 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4524 sets the value of Gitlab::CurrentSettings.user_default_external4525 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4526 sets the value of Gitlab::CurrentSettings.user_default_external4527 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4528 sets the value of Gitlab::CurrentSettings.user_default_external4529 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4530 sets the value of Gitlab::CurrentSettings.user_default_external4531Clusters::Kubernetes::CreateOrUpdateServiceAccountService4532 .gitlab_creator4533 with ABAC cluster4534 behaves like creates service account and token4535 creates a kubernetes service account4536 creates a kubernetes secret4537 with RBAC cluster4538 creates a cluster role binding with cluster-admin access4539 behaves like creates service account and token4540 creates a kubernetes service account4541 creates a kubernetes secret4542 .namespace_creator4543 with ABAC cluster4544 behaves like creates service account and token4545 creates a kubernetes service account4546 creates a kubernetes secret4547 With RBAC enabled cluster4548 creates a namespace object4549 creates a namespaced role binding with admin access4550 creates a role binding granting crossplane database permissions to the service account4551 creates a role and role binding granting knative serving permissions to the service account4552 creates a role and role binding granting crossplane database permissions to the service account4553 behaves like creates service account and token4554 creates a kubernetes service account4555 creates a kubernetes secret4556MergeRequests::Conflicts::ResolveService4557 #execute4558 with section params4559 when the source and target project are the same4560 creates a commit with the message4561 creates a commit with the correct parents4562 when some files have trailing newlines4563 preserves trailing newlines from our side of the conflicts4564 when the source project is a fork and does not contain the HEAD of the target branch4565 creates a commit with the message4566 creates a commit with the correct parents4567 with content and sections params4568 creates a commit with the message4569 creates a commit with the correct parents4570 sets the content to the content given4571 when a resolution section is missing4572 raises a ResolutionError error4573 when the content of a file is unchanged4574 raises a ResolutionError error4575 when a file is missing4576 raises a ResolutionError error4577Gitlab::Email::Receiver4578 requires all handlers to have a unique metric_event4579 requires all handlers to respond to #project4580 when the email contains a valid email address in a header4581 when in a Delivered-To header4582 behaves like successful receive4583 correctly finds the mail key4584 adds metric event4585 returns valid metadata4586 when in an Envelope-To header4587 behaves like successful receive4588 correctly finds the mail key4589 adds metric event4590 returns valid metadata4591 when in an X-Envelope-To header4592 behaves like successful receive4593 correctly finds the mail key4594 adds metric event4595 returns valid metadata4596 when enclosed with angle brackets in an Envelope-To header4597 behaves like successful receive4598 correctly finds the mail key4599 adds metric event4600 returns valid metadata4601 when mail key is in the references header with a comma4602 behaves like successful receive4603 correctly finds the mail key4604 adds metric event4605 returns valid metadata4606 when all other headers are missing4607 it uses receive headers to find the key4608 behaves like successful receive4609 correctly finds the mail key4610 adds metric event4611 returns valid metadata4612 when we cannot find a capable handler4613 behaves like failed receive with event4614 adds metric event4615 when the email is blank4616 behaves like failed receive without event4617 adds metric event4618 when the email was auto generated with Auto-Submitted header4619 behaves like failed receive without event4620 adds metric event4621 when the email's To field is blank4622 behaves like successful receive4623 correctly finds the mail key4624 adds metric event4625 returns valid metadata4626 when the email's From field is blank4627 behaves like successful receive4628 correctly finds the mail key4629 adds metric event4630 returns valid metadata4631 when the email was auto generated with X-Autoreply header4632 behaves like failed receive without event4633 adds metric event4634 event raising via errors4635 handling errors which do not raise events4636 expected_error: Gitlab::Email::AutoGeneratedEmailError4637 behaves like failed receive without event4638 adds metric event4639 expected_error: Gitlab::Email::ProjectNotFound4640 behaves like failed receive without event4641 adds metric event4642 expected_error: Gitlab::Email::EmptyEmailError4643 behaves like failed receive without event4644 adds metric event4645 expected_error: Gitlab::Email::UserNotFoundError4646 behaves like failed receive without event4647 adds metric event4648 expected_error: Gitlab::Email::UserBlockedError4649 behaves like failed receive without event4650 adds metric event4651 expected_error: Gitlab::Email::UserNotAuthorizedError4652 behaves like failed receive without event4653 adds metric event4654 expected_error: Gitlab::Email::NoteableNotFoundError4655 behaves like failed receive without event4656 adds metric event4657 expected_error: Gitlab::Email::InvalidAttachment4658 behaves like failed receive without event4659 adds metric event4660 expected_error: Gitlab::Email::InvalidRecordError4661 behaves like failed receive without event4662 adds metric event4663 expected_error: Gitlab::Email::EmailTooLarge4664 behaves like failed receive without event4665 adds metric event4666 handling errors which do raise events4667 expected_error: Gitlab::Email::EmailUnparsableError4668 behaves like failed receive with event4669 adds metric event4670 expected_error: Gitlab::Email::UnknownIncomingEmail4671 behaves like failed receive with event4672 adds metric event4673 expected_error: ArgumentError4674 behaves like failed receive with event4675 adds metric event4676 expected_error: StandardError4677 behaves like failed receive with event4678 adds metric event4679Packages::Debian::GroupDistribution4680 behaves like Debian Distribution for common behavior4681 relationships4682 is expected to belong to creator class_name => User required: false4683 validations4684 #creator4685 is expected not to validate that :creator cannot be empty/falsy4686 #codename4687 is expected to validate that :codename cannot be empty/falsy4688 is expected to allow :codename to be ‹"buster"›4689 is expected to allow :codename to be ‹"buster-updates"›4690 is expected to allow :codename to be ‹"Debian10.5"›4691 is expected not to allow :codename to be ‹"jessie/updates"›4692 is expected not to allow :codename to be ‹"hé"›4693 #suite4694 is expected to allow :suite to be ‹nil›4695 is expected to allow :suite to be ‹"testing"›4696 is expected not to allow :suite to be ‹"hé"›4697 #origin4698 is expected to allow :origin to be ‹nil›4699 is expected to allow :origin to be ‹"Debian"›4700 is expected not to allow :origin to be ‹"hé"›4701 #label4702 is expected to allow :label to be ‹nil›4703 is expected to allow :label to be ‹"Debian"›4704 is expected not to allow :label to be ‹"hé"›4705 #version4706 is expected to allow :version to be ‹nil›4707 is expected to allow :version to be ‹"10.6"›4708 is expected not to allow :version to be ‹"hé"›4709 #description4710 is expected to allow :description to be ‹nil›4711 is expected to allow :description to be ‹"Debian 10.6 Released 26 September 2020"›4712 is expected to allow :description to be ‹"Hé !"›4713 #valid_time_duration_seconds4714 is expected to allow :valid_time_duration_seconds to be ‹nil›4715 is expected to allow :valid_time_duration_seconds to be ‹86400›4716 is expected not to allow :valid_time_duration_seconds to be ‹43200›4717 #file4718 is expected not to validate that :file cannot be empty/falsy4719 #file_store4720 is expected to validate that :file_store cannot be empty/falsy4721 #file_signature4722 is expected not to validate that :file_signature is empty/falsy4723 #signed_file4724 is expected not to validate that :signed_file cannot be empty/falsy4725 #signed_file_store4726 is expected to validate that :signed_file_store cannot be empty/falsy4727 scopes4728 .with_container4729 does not return other distributions4730 .with_codename4731 does not return other distributions4732 .with_suite4733 does not return other distributions4734 .with_codename_or_suite4735 passing codename4736 does not return other distributions4737 passing suite4738 does not return other distributions4739 behaves like Debian Distribution with group container4740 behaves like Debian Distribution for specific behavior4741 #unique_debian_suite_and_codename4742 with_existing_suite: false, suite: nil, codename: :keep, errors: nil4743 debian_group_distribution4744 is expected to be valid4745 with_existing_suite: false, suite: "testing", codename: :keep, errors: nil4746 debian_group_distribution4747 is expected to be valid4748 with_existing_suite: false, suite: nil, codename: :codename, errors: ["Codename has already been taken"]4749 debian_group_distribution4750 is expected to eq ["Codename has already been taken"]4751 with_existing_suite: false, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]4752 debian_group_distribution4753 is expected to eq ["Suite has already been taken as Codename"]4754 with_existing_suite: false, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]4755 debian_group_distribution4756 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]4757 with_existing_suite: true, suite: nil, codename: :keep, errors: nil4758 debian_group_distribution4759 is expected to be valid4760 with_existing_suite: true, suite: "testing", codename: :keep, errors: nil4761 debian_group_distribution4762 is expected to be valid4763 with_existing_suite: true, suite: nil, codename: :codename, errors: ["Codename has already been taken"]4764 debian_group_distribution4765 is expected to eq ["Codename has already been taken"]4766 with_existing_suite: true, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]4767 debian_group_distribution4768 is expected to eq ["Suite has already been taken as Codename"]4769 with_existing_suite: true, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]4770 debian_group_distribution4771 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]4772 with_existing_suite: true, suite: nil, codename: :suite, errors: ["Codename has already been taken as Suite"]4773 debian_group_distribution4774 is expected to eq ["Codename has already been taken as Suite"]4775 with_existing_suite: true, suite: :suite, codename: :keep, errors: ["Suite has already been taken"]4776 debian_group_distribution4777 is expected to eq ["Suite has already been taken"]4778 with_existing_suite: true, suite: :suite, codename: :suite, errors: ["Suite has already been taken", "Codename has already been taken as Suite"]4779 debian_group_distribution4780 is expected to eq ["Suite has already been taken", "Codename has already been taken as Suite"]4781 relationships4782 is expected to belong to group required: false4783 is expected to have one key class_name => Packages::Debian::GroupDistributionKey inverse_of => distribution4784 is expected to have many components class_name => Packages::Debian::GroupComponent inverse_of => distribution4785 is expected to have many architectures class_name => Packages::Debian::GroupArchitecture inverse_of => distribution4786 #group4787 is expected to validate that :group cannot be empty/falsy4788 group distribution specifics4789 #packages4790 returns only public packages with same codename4791 #package_files4792 returns only files from public packages with same codename4793 with pending destruction package files4794 does not return them4795Clusters::Kubernetes::CreateOrUpdateNamespaceService#execute4796 group clusters4797 when kubernetes namespace is not persisted4798 behaves like successful creation of kubernetes namespace4799 creates a Clusters::KubernetesNamespace4800 creates project service account and namespace4801 configures kubernetes token4802 without environment4803 creates project service account and namespace4804 project clusters4805 when kubernetes namespace is not persisted4806 behaves like successful creation of kubernetes namespace4807 creates a Clusters::KubernetesNamespace4808 creates project service account and namespace4809 configures kubernetes token4810 without environment4811 creates project service account and namespace4812 when there is a Kubernetes Namespace associated4813 does not create any Clusters::KubernetesNamespace4814 creates project service account4815 updates Clusters::KubernetesNamespace4816Gitlab::ImportExport::Project::RelationTreeRestorer4817 when inside a group4818 behaves like import project successfully4819 imported project4820 has the project attributes and relations4821 with invalid relations4822 logs the invalid relation and its errors4823Gitlab::Ci::Variables::Builder4824 #scoped_variables4825 is expected to be an instance of Gitlab::Ci::Variables::Collection4826 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SLUG", :masked=>false, :public=>true, :value=>"rspec-test-1"}, {:key=>"CI_JOB_STAGE", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_NODE_TOTAL", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_ENVIRONMENT_NAME", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"GITLAB_CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"CI_SERVER_URL", :masked=>false, :public=>true, :value=>"http://localhost"}, {:key=>"CI_SERVER_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_PORT", :masked=>false, :public=>true, :value=>"80"}, {:key=>"CI_SERVER_PROTOCOL", :masked=>false, :public=>true, :value=>"http"}, {:key=>"CI_SERVER_SHELL_SSH_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_SHELL_SSH_PORT", :masked=>false, :public=>true, :value=>"22"}, {:key=>"CI_SERVER_NAME", :masked=>false, :public=>true, :value=>"GitLab"}, {:key=>"CI_SERVER_VERSION", :masked=>false, :public=>true, :value=>"16.1.0-pre"}, {:key=>"CI_SERVER_VERSION_MAJOR", :masked=>false, :public=>true, :value=>"16"}, {:key=>"CI_SERVER_VERSION_MINOR", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_SERVER_VERSION_PATCH", :masked=>false, :public=>true, :value=>"0"}, {:key=>"CI_SERVER_REVISION", :masked=>false, :public=>true, :value=>"4e5a698c4d7"}, {:key=>"GITLAB_FEATURES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_ID", :masked=>false, :public=>true, :value=>"927"}, {:key=>"CI_PROJECT_NAME", :masked=>false, :public=>true, :value=>"project-941"}, {:key=>"CI_PROJECT_TITLE", :masked=>false, :public=>true, :value=>"Project-941 Name"}, {:key=>"CI_PROJECT_DESCRIPTION", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_PROJECT_PATH", :masked=>false, :public=>true, :value=>"group713/project-941"}, {:key=>"CI_PROJECT_PATH_SLUG", :masked=>false, :public=>true, :value=>"group713-project-941"}, {:key=>"CI_PROJECT_NAMESPACE", :masked=>false, :public=>true, :value=>"group713"}, {:key=>"CI_PROJECT_NAMESPACE_ID", :masked=>false, :public=>true, :value=>"4242"}, {:key=>"CI_PROJECT_ROOT_NAMESPACE", :masked=>false, :public=>true, :value=>"group713"}, {:key=>"CI_PROJECT_URL", :masked=>false, :public=>true, :value=>"http://localhost/group713/project-941"}, {:key=>"CI_PROJECT_VISIBILITY", :masked=>false, :public=>true, :value=>"private"}, {:key=>"CI_PROJECT_REPOSITORY_LANGUAGES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_CLASSIFICATION_LABEL", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_DEFAULT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_CONFIG_PATH", :masked=>false, :public=>true, :value=>".gitlab-ci.yml"}, {:key=>"CI_PAGES_DOMAIN", :masked=>false, :public=>true, :value=>"example.com"}, {:key=>"CI_PAGES_URL", :masked=>false, :public=>true, :value=>"http://group713.example.com/project-941"}, {:key=>"CI_API_V4_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/v4"}, {:key=>"CI_API_GRAPHQL_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/graphql"}, {:key=>"CI_TEMPLATE_REGISTRY_HOST", :masked=>false, :public=>true, :value=>"registry.gitlab.com"}, {:key=>"CI_PIPELINE_IID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_SOURCE", :masked=>false, :public=>true, :value=>"push"}, {:key=>"CI_PIPELINE_CREATED_AT", :masked=>false, :public=>true, :value=>"2023-05-19T05:49:57Z"}, {:key=>"CI_COMMIT_SHA", :masked=>false, :public=>true, :value=>"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, {:key=>"CI_COMMIT_SHORT_SHA", :masked=>false, :public=>true, :value=>"b83d6e39"}, {:key=>"CI_COMMIT_BEFORE_SHA", :masked=>false, :public=>true, :value=>"0000000000000000000000000000000000000000"}, {:key=>"CI_COMMIT_REF_NAME", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_MESSAGE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_TITLE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'"}, {:key=>"CI_COMMIT_DESCRIPTION", :masked=>false, :public=>true, :value=>"\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_REF_PROTECTED", :masked=>false, :public=>true, :value=>"false"}, {:key=>"CI_COMMIT_TIMESTAMP", :masked=>false, :public=>true, :value=>"2016-09-27T14:37:46+00:00"}, {:key=>"CI_COMMIT_AUTHOR", :masked=>false, :public=>true, :value=>"Job van der Voort <job@gitlab.com>"}, {:key=>"YAML_VARIABLE", :masked=>false, :public=>true, :value=>"value"}, {:key=>"GITLAB_USER_ID", :masked=>false, :public=>true, :value=>"2580"}, {:key=>"GITLAB_USER_EMAIL", :masked=>false, :public=>true, :value=>"user2692@example.org"}, {:key=>"GITLAB_USER_LOGIN", :masked=>false, :public=>true, :value=>"user1833"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones2430"}]4827 when FF `ci_remove_legacy_predefined_variables` is disabled4828 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SLUG", :masked=>false, :public=>true, :value=>"rspec-test-1"}, {:key=>"CI_JOB_STAGE", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_NODE_TOTAL", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_ENVIRONMENT_NAME", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_BUILD_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_BUILD_STAGE", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"GITLAB_CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"CI_SERVER_URL", :masked=>false, :public=>true, :value=>"http://localhost"}, {:key=>"CI_SERVER_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_PORT", :masked=>false, :public=>true, :value=>"80"}, {:key=>"CI_SERVER_PROTOCOL", :masked=>false, :public=>true, :value=>"http"}, {:key=>"CI_SERVER_SHELL_SSH_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_SHELL_SSH_PORT", :masked=>false, :public=>true, :value=>"22"}, {:key=>"CI_SERVER_NAME", :masked=>false, :public=>true, :value=>"GitLab"}, {:key=>"CI_SERVER_VERSION", :masked=>false, :public=>true, :value=>"16.1.0-pre"}, {:key=>"CI_SERVER_VERSION_MAJOR", :masked=>false, :public=>true, :value=>"16"}, {:key=>"CI_SERVER_VERSION_MINOR", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_SERVER_VERSION_PATCH", :masked=>false, :public=>true, :value=>"0"}, {:key=>"CI_SERVER_REVISION", :masked=>false, :public=>true, :value=>"4e5a698c4d7"}, {:key=>"GITLAB_FEATURES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_ID", :masked=>false, :public=>true, :value=>"927"}, {:key=>"CI_PROJECT_NAME", :masked=>false, :public=>true, :value=>"project-941"}, {:key=>"CI_PROJECT_TITLE", :masked=>false, :public=>true, :value=>"Project-941 Name"}, {:key=>"CI_PROJECT_DESCRIPTION", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_PROJECT_PATH", :masked=>false, :public=>true, :value=>"group713/project-941"}, {:key=>"CI_PROJECT_PATH_SLUG", :masked=>false, :public=>true, :value=>"group713-project-941"}, {:key=>"CI_PROJECT_NAMESPACE", :masked=>false, :public=>true, :value=>"group713"}, {:key=>"CI_PROJECT_NAMESPACE_ID", :masked=>false, :public=>true, :value=>"4242"}, {:key=>"CI_PROJECT_ROOT_NAMESPACE", :masked=>false, :public=>true, :value=>"group713"}, {:key=>"CI_PROJECT_URL", :masked=>false, :public=>true, :value=>"http://localhost/group713/project-941"}, {:key=>"CI_PROJECT_VISIBILITY", :masked=>false, :public=>true, :value=>"private"}, {:key=>"CI_PROJECT_REPOSITORY_LANGUAGES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_CLASSIFICATION_LABEL", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_DEFAULT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_CONFIG_PATH", :masked=>false, :public=>true, :value=>".gitlab-ci.yml"}, {:key=>"CI_PAGES_DOMAIN", :masked=>false, :public=>true, :value=>"example.com"}, {:key=>"CI_PAGES_URL", :masked=>false, :public=>true, :value=>"http://group713.example.com/project-941"}, {:key=>"CI_API_V4_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/v4"}, {:key=>"CI_API_GRAPHQL_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/graphql"}, {:key=>"CI_TEMPLATE_REGISTRY_HOST", :masked=>false, :public=>true, :value=>"registry.gitlab.com"}, {:key=>"CI_PIPELINE_IID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_SOURCE", :masked=>false, :public=>true, :value=>"push"}, {:key=>"CI_PIPELINE_CREATED_AT", :masked=>false, :public=>true, :value=>"2023-05-19T05:49:57Z"}, {:key=>"CI_COMMIT_SHA", :masked=>false, :public=>true, :value=>"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, {:key=>"CI_COMMIT_SHORT_SHA", :masked=>false, :public=>true, :value=>"b83d6e39"}, {:key=>"CI_COMMIT_BEFORE_SHA", :masked=>false, :public=>true, :value=>"0000000000000000000000000000000000000000"}, {:key=>"CI_COMMIT_REF_NAME", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_MESSAGE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_TITLE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'"}, {:key=>"CI_COMMIT_DESCRIPTION", :masked=>false, :public=>true, :value=>"\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_REF_PROTECTED", :masked=>false, :public=>true, :value=>"false"}, {:key=>"CI_COMMIT_TIMESTAMP", :masked=>false, :public=>true, :value=>"2016-09-27T14:37:46+00:00"}, {:key=>"CI_COMMIT_AUTHOR", :masked=>false, :public=>true, :value=>"Job van der Voort <job@gitlab.com>"}, {:key=>"CI_BUILD_REF", :masked=>false, :public=>true, :value=>"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, {:key=>"CI_BUILD_BEFORE_SHA", :masked=>false, :public=>true, :value=>"0000000000000000000000000000000000000000"}, {:key=>"CI_BUILD_REF_NAME", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_BUILD_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}, {:key=>"YAML_VARIABLE", :masked=>false, :public=>true, :value=>"value"}, {:key=>"GITLAB_USER_ID", :masked=>false, :public=>true, :value=>"2580"}, {:key=>"GITLAB_USER_EMAIL", :masked=>false, :public=>true, :value=>"user2692@example.org"}, {:key=>"GITLAB_USER_LOGIN", :masked=>false, :public=>true, :value=>"user1833"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones2430"}]4829 variables ordering4830 returns variables in order depending on resource hierarchy4831 overrides duplicate keys depending on resource hierarchy4832 with schedule variables4833 includes schedule variables4834 with release variables4835 includes release variables4836 when there is no release4837 does not include release variables4838 #user_variables4839 with user4840 is expected to eq {"GITLAB_USER_EMAIL"=>"user2692@example.org", "GITLAB_USER_ID"=>"2580", "GITLAB_USER_LOGIN"=>"user1833", "GITLAB_USER_NAME"=>"Sidney Jones2430"}4841 without user4842 is expected to be empty4843 #kubernetes_variables4844 is expected to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}4845 calls the GenerateKubeconfigService with the correct arguments4846 includes #deployment_variables and merges the KUBECONFIG values4847 generated config is invalid4848 is expected not to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}4849 when environment is not nil4850 passes the environment when generating the KUBECONFIG4851 #deployment_variables4852 environment is nil4853 is expected to be empty4854 #secret_instance_variables4855 when ref is branch4856 when ref is protected4857 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f8476255ce0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f8476254700 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4858 when ref is not protected4859 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f84781f5c58 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4860 when ref is tag4861 when ref is protected4862 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f846cb33bf0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f846d827cf8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4863 when ref is not protected4864 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f846086f920 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4865 when ref is merge request4866 when ref is protected4867 does not return protected variables as it is not supported for merge request pipelines4868 when ref is not protected4869 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f84639d5af0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4870 #secret_group_variables4871 when ref is branch4872 when ref is protected4873 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f846432b488 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f846432ac90 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4874 when ref is not protected4875 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f846496e750 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4876 when ref is tag4877 when ref is protected4878 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f84654e73c0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f84654e6ec0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4879 when ref is not protected4880 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f8465d844d8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4881 when ref is merge request4882 when ref is protected4883 does not return protected variables as it is not supported for merge request pipelines4884 when ref is not protected4885 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f84455989d8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4886 variables memoization4887 with protected environments4888 memoizes the result by environment4889 with unprotected environments4890 memoizes the result by environment4891 #secret_project_variables4892 when ref is branch4893 when ref is protected4894 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f844704f740 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f844704ee80 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4895 when ref is not protected4896 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f844779fdd8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4897 when ref is tag4898 when ref is protected4899 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f8448193470 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007f8448192d90 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4900 when ref is not protected4901 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f8448af85d8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4902 when ref is merge request4903 when ref is protected4904 does not return protected variables as it is not supported for merge request pipelines4905 when ref is not protected4906 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f84a3d1d470 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>4907 variables memoization4908 with protected environments4909 memoizes the result by environment4910 with unprotected environments4911 memoizes the result by environment4912 #config_variables4913 without project4914 is expected to eq 04915 without repository4916 is expected to be nil4917 with protected variables4918 does not include protected variables4919 with scoped variables4920 does not include scoped variables4921 variables ordering4922 returns variables in order depending on resource hierarchy4923 overrides duplicate keys depending on resource hierarchy4924Ci::PipelineSchedules::CalculateNextRunService4925 # order random4926 #execute4927 when there is invalid or no plan limits4928 worker_cron: "0 1 2 3 *", schedule_cron: "0 1 * * *", plan_limit: nil, now: Tue, 02 Mar 2021 01:00:00.000000000 UTC +00:00, expected_result: Wed, 02 Mar 2022 01:00:00.000000000 UTC +00:004929 calls fallback method to get next_run_at4930 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: nil, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 11:05:00.000000000 UTC +00:004931 calls fallback method to get next_run_at4932 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: nil, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 12:05:00.000000000 UTC +00:004933 calls fallback method to get next_run_at4934 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: 12, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 12:05:00.000000000 UTC +00:004935 calls fallback method to get next_run_at4936 when the workers next run matches schedule's earliest run4937 worker_cron: "*/5 * * * *", schedule_cron: "0 * * * *", plan_limit: 144, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 12:00:00.000000000 UTC +00:004938 calculates the next_run_at to be earliest point of match4939 worker_cron: "*/5 * * * *", schedule_cron: "*/5 * * * *", plan_limit: 144, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 11:10:00.000000000 UTC +00:004940 calculates the next_run_at to be earliest point of match4941 worker_cron: "*/5 * * * *", schedule_cron: "0 1 * * *", plan_limit: 144, now: Thu, 27 May 2021 01:00:00.000000000 UTC +00:00, expected_result: Fri, 28 May 2021 01:00:00.000000000 UTC +00:004942 calculates the next_run_at to be earliest point of match4943 worker_cron: "*/5 * * * *", schedule_cron: "0 2 * * *", plan_limit: 144, now: Thu, 27 May 2021 01:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 02:00:00.000000000 UTC +00:004944 calculates the next_run_at to be earliest point of match4945 worker_cron: "*/5 * * * *", schedule_cron: "0 3 * * *", plan_limit: 144, now: Thu, 27 May 2021 01:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 03:00:00.000000000 UTC +00:004946 calculates the next_run_at to be earliest point of match4947 worker_cron: "*/5 * * * *", schedule_cron: "0 1 1 * *", plan_limit: 144, now: Sat, 01 May 2021 01:00:00.000000000 UTC +00:00, expected_result: Tue, 01 Jun 2021 01:00:00.000000000 UTC +00:004948 calculates the next_run_at to be earliest point of match4949 worker_cron: "*/9 * * * *", schedule_cron: "0 1 1 * *", plan_limit: 144, now: Sat, 01 May 2021 01:09:00.000000000 UTC +00:00, expected_result: Tue, 01 Jun 2021 01:00:00.000000000 UTC +00:004950 calculates the next_run_at to be earliest point of match4951 worker_cron: "*/5 * * * *", schedule_cron: "45 21 1 2 *", plan_limit: 144, now: Mon, 01 Feb 2021 21:45:00.000000000 UTC +00:00, expected_result: Tue, 01 Feb 2022 21:45:00.000000000 UTC +00:004952 calculates the next_run_at to be earliest point of match4953 when next_run_at is restricted by plan limit4954 worker_cron: "*/5 * * * *", schedule_cron: "59 14 * * *", plan_limit: 24, now: Sat, 01 May 2021 15:00:00.000000000 UTC +00:00, expected_result: Sun, 02 May 2021 15:00:00.000000000 UTC +00:004955 calculates the next_run_at based on next available limit4956 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: 24, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 12:00:00.000000000 UTC +00:004957 calculates the next_run_at based on next available limit4958 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: 144, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 11:10:00.000000000 UTC +00:004959 calculates the next_run_at based on next available limit4960 worker_cron: "*/5 * * * *", schedule_cron: "*/1 * * * *", plan_limit: 205, now: Thu, 27 May 2021 11:00:00.000000000 UTC +00:00, expected_result: Thu, 27 May 2021 11:10:00.000000000 UTC +00:004961 calculates the next_run_at based on next available limit4962 when next_run_at is restricted by worker's availability4963 worker_cron: "0 1 2 3 *", schedule_cron: "0 1 * * *", plan_limit: 144, now: Tue, 02 Mar 2021 01:00:00.000000000 UTC +00:00, expected_result: Wed, 02 Mar 2022 01:00:00.000000000 UTC +00:004964 calculates the next_run_at using worker_cron4965Ci::BuildMetadata4966 is expected to belong to build required: false4967 is expected to belong to project required: false4968 behaves like having unique enum values4969 has unique values in "timeout_source"4970 #update_timeout_state4971 when job, project and runner timeouts are set4972 when job timeout is lower then runner timeout4973 behaves like sets timeout4974 sets project_timeout_source4975 sets project timeout4976 when runner timeout is lower then job timeout4977 behaves like sets timeout4978 sets project_timeout_source4979 sets project timeout4980 when job, project timeout values are set and runner is assigned4981 when runner has no timeout set4982 behaves like sets timeout4983 sets project_timeout_source4984 sets project timeout4985 when only job and project timeouts are defined4986 when job timeout is lower then project timeout4987 behaves like sets timeout4988 sets project_timeout_source4989 sets project timeout4990 when project timeout is lower then job timeout4991 behaves like sets timeout4992 sets project_timeout_source4993 sets project timeout4994 when only project and runner timeouts are defined4995 when runner timeout is lower then project timeout4996 behaves like sets timeout4997 sets project_timeout_source4998 sets project timeout4999 when project timeout is lower then runner timeout5000 behaves like sets timeout5001 sets project_timeout_source5002 sets project timeout5003 when only job and runner timeouts are defined5004 when runner timeout is lower them job timeout5005 behaves like sets timeout5006 sets project_timeout_source5007 sets project timeout5008 when job timeout is lower them runner timeout5009 behaves like sets timeout5010 sets project_timeout_source5011 sets project timeout5012 when only job timeout is defined and runner is assigned, but has no timeout set5013 behaves like sets timeout5014 sets project_timeout_source5015 sets project timeout5016 when only one timeout value is defined5017 when only project timeout value is defined5018 behaves like sets timeout5019 sets project_timeout_source5020 sets project timeout5021 validations5022 when attributes are valid5023 returns no errors5024 when data is invalid5025 returns errors5026 set_cancel_gracefully5027 sets cancel_gracefully5028 returns false5029 loose foreign key on ci_builds_metadata.project_id5030 behaves like cleanup by a loose foreign key5031 cleans up (delete or nullify) the model5032 #enable_debug_trace!5033 when debug_trace_enabled is false5034 sets debug_trace_enabled to true5035 when debug_trace_enabled is true5036 does not set debug_trace_enabled to true5037 partitioning5038 with job5039 copies the partition_id from job5040 when it is already set5041 does not change the partition_id value5042 without job5043 is expected to validate that :partition_id cannot be empty/falsy5044 does not change the partition_id value5045 jsonb fields serialization5046 changing other fields does not change config_options5047 accessing config_options does not change it5048Gitlab::ImportExport::MergeRequestParser5049 has a source branch5050 has a target branch5051 fork merge request5052 parses a MR that has no source branch5053 parses a MR that is closed5054 parses a MR that is merged5055 when the merge request has diffs5056 when the diff is invalid5057 sets the diff to empty diff5058MembersHelper5059 #remove_member_message5060 is expected to eq "Are you sure you want to remove Sidney Jones2473 from the Sidney Jones2472 / Project-970 Name project?"5061 is expected to eq "Are you sure you want to revoke the invitation for to join the Sidney Jones2475 / Project-972 Name project?"5062 is expected to eq "Are you sure you want to deny Sidney Jones2479's request to join the Sidney Jones2478 / Project-974 Name project?"5063 is expected to eq "Are you sure you want to withdraw your access request for the Sidney Jones2480 / Project-975 Name project?"5064 is expected to eq "Are you sure you want to remove Sidney Jones2482 from the group721 group and any subresources?"5065 is expected to eq "Are you sure you want to revoke the invitation for to join the group723 group?"5066 is expected to eq "Are you sure you want to deny Sidney Jones2484's request to join the group725 group?"5067 is expected to eq "Are you sure you want to withdraw your access request for the group726 group?"5068 an accepted user invitation with no user associated5069 logs an exception and shows orphaned status5070 a pending member invitation with no user associated5071 does not error when there is an invitation for the requestor5072 #remove_member_title5073 is expected to eq "Remove user from project"5074 is expected to eq "Deny access request from project"5075 is expected to eq "Remove user from group and any subresources"5076 is expected to eq "Deny access request from group"5077 #leave_confirmation_message5078 is expected to eq "Are you sure you want to leave the \"Sidney Jones2497 / Project-981 Name\" project?"5079 is expected to eq "Are you sure you want to leave the \"group732\" group?"5080 #localized_tasks_to_be_done_choices5081 has a translation for all `TASKS_TO_BE_DONE` keys5082 #member_request_access_link5083 returns request link for project members5084 returns the request link for group members5085Gitlab::Email::Handler::CreateNoteOnIssuableHandler5086 behaves like reply processing shared examples5087 when the user could not be found5088 raises a UserNotFoundError5089 when the user is not authorized to the project5090 raises a ProjectNotFound5091 behaves like note handler shared examples5092 when the noteable could not be found5093 raises a NoteableNotFoundError5094 when the note could not be saved5095 raises an InvalidNoteError5096 because the note was update commands only5097 and current user cannot update noteable5098 does not raise an error5099 and current user can update noteable5100 does not raise an error5101 when the note contains quick actions5102 and current user cannot update the noteable5103 only executes the commands that the user can perform5104 and current user can update noteable5105 posts a note and updates the noteable5106 when the reply is blank5107 allows email to only have quoted text5108 when discussion is locked5109 behaves like checks permissions on noteable examples5110 when user has access5111 creates a comment5112 when user does not have access5113 raises UserNotAuthorizedError5114 when everything is fine5115 adds all attachments5116 when the service desk5117 is enabled5118 when issues are enabled for everyone5119 creates a comment5120 when quick actions are present5121 when author is a normal user5122 extracted the quick actions5123 when issues are protected members only5124 creates a comment5125 when issues are disabled5126 does not create a comment5127 when the recipient address does not include a mail key5128 raises an UnknownIncomingEmail5129 when issue is confidential5130 behaves like checks permissions on noteable examples5131 when user has access5132 creates a comment5133 when user does not have access5134 raises UserNotAuthorizedError5135DiffsEntity5136 as json5137 contains needed attributes5138 broken merge request5139 renders without errors5140 when a commit_id is passed5141 when the passed commit is not the first or last in the group5142 includes commit references for previous and next5143 when the passed commit is the first in the group5144 includes commit references for nil and previous commit5145 when the passed commit is the last in the group5146 includes commit references for the next and nil5147 diff_files5148 serializes diff files using DiffFileEntity5149 when there are conflicts5150 serializes diff files with conflicts5151Mutations::MergeRequests::Create5152 #resolve5153 when user is not a project member5154 behaves like resource not available5155 raises an error5156 when user is a direct project member5157 and user is a guest5158 behaves like resource not available5159 raises an error5160 and user is a developer5161 creates a new merge request5162 returns a new merge request5163 when optional description field is set5164 returns a new merge request with a description5165 when optional labels field is set5166 returns a new merge request with labels5167 when service cannot create a merge request5168 does not create a new merge request5169 returns errors5170 when user is an inherited member from the group5171 when project is public with private merge requests5172 and user is a guest5173 behaves like resource not available5174 raises an error5175 when project is private5176 and user is a guest5177 behaves like resource not available5178 raises an error5179projects/_home_panel5180 admin area link5181 renders admin area link for admin5182 does not render admin area link for non-admin5183 does not render admin area link for anonymous5184 notifications5185 when user is signed in5186 renders Vue app root5187 when user is signed out5188 does not render Vue app root5189 badges5190 has no badges5191 does not render any badge5192 only has group badges5193 behaves like show badges5194 renders the all badges5195 only has project badges5196 behaves like show badges5197 renders the all badges5198 has both group and project badges5199 behaves like show badges5200 renders the all badges5201 project id5202 user can read project5203 is shown5204 user cannot read project5205 is not shown5206 forks5207 user can read fork source5208 does not show the forked-from project5209 user cannot read fork source5210 shows the message that forked project is inaccessible5211MergeRequests::ResolvedDiscussionNotificationService5212 #execute5213 when not all discussions are resolved5214 doesn't add a system note5215 doesn't send a notification email5216 doesn't send a webhook5217 when all discussions are resolved5218 adds a system note5219 sends a notification email5220 sends a webhook5221Gitlab::Ci::Variables::Builder::Pipeline5222 # order random5223 #predefined_variables5224 includes all predefined variables in a valid order5225 when FF `ci_remove_legacy_predefined_variables` is disabled5226 includes all predefined variables in a valid order5227 when the pipeline is running for a tag5228 includes all predefined variables in a valid order5229 when FF `ci_remove_legacy_predefined_variables` is disabled5230 includes all predefined variables in a valid order5231 when merge request is present5232 when pipeline for merge request is created5233 exposes merge request pipeline variables5234 exposes diff variables5235 without assignee5236 does not expose assignee variable5237 without milestone5238 does not expose milestone variable5239 without labels5240 does not expose labels variable5241 when pipeline on branch is created5242 when a merge request is created5243 when user has access to project5244 merge request references are returned matching the pipeline5245 when user does not have access to project5246 CI_OPEN_MERGE_REQUESTS is not returned5247 when no a merge request is created5248 CI_OPEN_MERGE_REQUESTS is not returned5249 with merged results5250 exposes merge request pipeline variables5251 exposes diff variables5252 when source is external pull request5253 exposes external pull request pipeline variables5254 variable CI_KUBERNETES_ACTIVE5255 when pipeline.has_kubernetes_active? is true5256 is included with value 'true'5257 when pipeline.has_kubernetes_active? is false5258 is not included5259 variable CI_GITLAB_FIPS_MODE5260 when FIPS flag is enabled5261 is included with value 'true'5262 when FIPS flag is disabled5263 is not included5264 when tag is not found5265 does not expose tag variables5266 when FF `ci_remove_legacy_predefined_variables` is disabled5267 does not expose tag variables5268 without a commit5269 does not expose commit variables5270AlertManagement::HttpIntegration5271 associations5272 is expected to belong to project required: false5273 default values5274 is expected to be present5275 is expected to eq "test"5276 validations5277 is expected to validate that :project cannot be empty/falsy5278 is expected to validate that :name cannot be empty/falsy5279 is expected to validate that :type_identifier cannot be empty/falsy5280 is expected to validate that the length of :name is at most 2555281 when active5282 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5283 when inactive5284 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5285 payload_attribute_mapping5286 with valid JSON schema5287 is expected to be valid5288 with invalid JSON schema5289 when property is not an object5290 behaves like is invalid record5291 is expected to eq ["must be a valid json schema"]5292 when property missing required attributes5293 behaves like is invalid record5294 is expected to eq ["must be a valid json schema"]5295 when property has extra attributes5296 behaves like is invalid record5297 is expected to eq ["must be a valid json schema"]5298 scopes5299 .for_endpoint_identifier5300 is expected to contain exactly #<AlertManagement::HttpIntegration id: 3, created_at: "2023-05-19 05:51:42.928417372 +0000", updated_at: "2023-05-19 05:51:42.928417372 +0000", project_id: 1013, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "9avpSg3pIX7vllbB\n", endpoint_identifier: "f17da848", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>5301 .for_type5302 is expected to contain exactly #<AlertManagement::HttpIntegration id: 5, created_at: "2023-05-19 05:51:42.940803881 +0000", updated_at: "2023-05-19 05:51:42.940803881 +0000", project_id: 1010, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "KYkFVRa5b0jDTpg8\n", endpoint_identifier: "c14f25d7", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>5303 .for_project5304 is expected to contain exactly #<AlertManagement::HttpIntegration id: 4, created_at: "2023-05-19 05:51:42.933355031 +0000", updated_at: "2023-05-19 05:51:42.933355031 +0000", project_id: 1010, active: false, encrypted_token: [FILTERED], encrypted_token_iv: "5UyZiPYQTHTbJfO6\n", endpoint_identifier: "8c694072", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil> and #<AlertManagement::HttpIntegration id: 5, created_at: "2023-05-19 05:51:42.940803881 +0000", updated_at: "2023-05-19 05:51:42.940803881 +0000", project_id: 1010, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "KYkFVRa5b0jDTpg8\n", endpoint_identifier: "c14f25d7", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>5305 with project_ids array5306 is expected to contain exactly #<AlertManagement::HttpIntegration id: 3, created_at: "2023-05-19 05:51:42.928417372 +0000", updated_at: "2023-05-19 05:51:42.928417372 +0000", project_id: 1013, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "9avpSg3pIX7vllbB\n", endpoint_identifier: "f17da848", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>5307 .active5308 is expected to contain exactly #<AlertManagement::HttpIntegration id: 3, created_at: "2023-05-19 05:51:42.928417372 +0000", updated_at: "2023-05-19 05:51:42.928417372 +0000", project_id: 1013, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "9avpSg3pIX7vllbB\n", endpoint_identifier: "f17da848", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil> and #<AlertManagement::HttpIntegration id: 5, created_at: "2023-05-19 05:51:42.940803881 +0000", updated_at: "2023-05-19 05:51:42.940803881 +0000", project_id: 1010, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "KYkFVRa5b0jDTpg8\n", endpoint_identifier: "c14f25d7", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>5309 .legacy5310 is expected to contain exactly #<AlertManagement::HttpIntegration id: 6, created_at: "2023-05-19 05:51:43.192406625 +0000", updated_at: "2023-05-19 05:51:43.192406625 +0000", project_id: 1014, active: false, encrypted_token: [FILTERED], encrypted_token_iv: "XblsLJWaAqVulcdO\n", endpoint_identifier: "legacy", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>5311 .ordered_by_type_and_id5312 is expected to eq [#<AlertManagement::HttpIntegration id: 3, created_at: "2023-05-19 05:51:42.928417372 +0000", updated_at: "2023-05-19 05:51:42.928417372 +0000", project_id: 1013, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "9avpSg3pIX7vllbB\n", endpoint_identifier: "f17da848", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>, #<AlertManagement::HttpIntegration id: 4, created_at: "2023-05-19 05:51:42.933355031 +0000", updated_at: "2023-05-19 05:51:43.453844388 +0000", project_id: 1010, active: false, encrypted_token: [FILTERED], encrypted_token_iv: "5UyZiPYQTHTbJfO6\n", endpoint_identifier: "8c694072", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>, #<AlertManagement::HttpIntegration id: 6, created_at: "2023-05-19 05:51:43.192406625 +0000", updated_at: "2023-05-19 05:51:43.192406625 +0000", project_id: 1014, active: false, encrypted_token: [FILTERED], encrypted_token_iv: "XblsLJWaAqVulcdO\n", endpoint_identifier: "legacy", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>, #<AlertManagement::HttpIntegration id: 5, created_at: "2023-05-19 05:51:42.940803881 +0000", updated_at: "2023-05-19 05:51:42.940803881 +0000", project_id: 1010, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "KYkFVRa5b0jDTpg8\n", endpoint_identifier: "c14f25d7", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "prometheus", token: nil>]5313 before validation5314 #ensure_payload_example_not_nil5315 when the payload_example is nil5316 sets the payload_example to empty JSON5317 when the payload_example is not nil5318 sets the payload_example to specified value5319 #token5320 when unsaved5321 when assigned5322 is expected not to eq "random_token"5323 behaves like valid token5324 is expected to match /\A\h{32}\z/5325 when persisted5326 behaves like valid token5327 is expected to match /\A\h{32}\z/5328 when resetting5329 is expected not to eq "40dadb0f2ffd4d7113c54de845c4dcb1"5330 behaves like valid token5331 is expected to match /\A\h{32}\z/5332 when reassigning5333 is expected to eq "a4c75875eafd26ed25a348a4e3e5fe53"5334 behaves like valid token5335 is expected to match /\A\h{32}\z/5336 #endpoint_identifier5337 when defined on initialize5338 is expected to match /\A\h{16}\z/5339 when included in initialization args5340 is expected to eq "legacy"5341 when reassigning5342 does not allow reassignment5343 #url5344 is expected to eq "http://localhost/namespace929/project-1043/alerts/notify/datadog/fab49a71.json"5345 when name is not defined5346 is expected to eq "http://localhost/namespace905/project-1019/alerts/notify/http-endpoint/4c2804d30c913455.json"5347 for a legacy integration5348 is expected to eq "http://localhost/namespace930/project-1044/alerts/notify.json"5349 for a prometheus integration5350 is expected to eq "http://localhost/namespace931/project-1045/alerts/notify/datadog/610e144b.json"5351 for a legacy integration5352 is expected to eq "http://localhost/namespace932/project-1046/prometheus/alerts/notify.json"5353Issues::ResolveDiscussions5354 for resolving discussions5355 #merge_request_for_resolving_discussion5356 finds the merge request5357 only queries for the merge request once5358 #discussions_to_resolve5359 contains a single discussion when matching merge request and discussion are passed5360 contains all discussions when only a merge request is passed5361 contains only unresolved discussions5362 is empty when a discussion and another merge request are passed5363API::Helpers::PackagesHelpers5364 authorize_packages_access!5365 authorizes packages access5366 with an allowed required permission5367 authorizes packages access5368 with a not allowed permission5369 rejects packages access5370 authorize_read_package!5371 subject: project, expected_class: Packages::Policies::Project5372 calls authorize! with correct subject5373 subject: group, expected_class: Packages::Policies::Group5374 calls authorize! with correct subject5375 subject: package, expected_class: Packages::Package(id: integer, project_id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, name: string, version: string, package_type: integer, creator_id: integer, status: integer, last_downloaded_at: datetime_with_timezone)5376 calls authorize! with correct subject5377 authorize_create_package!5378 calls authorize!5379 authorize_destroy_package!5380 calls authorize!5381 require_packages_enabled!5382 with packages enabled5383 doesn't call not_found!5384 with package disabled5385 calls not_found!5386 #authorize_workhorse!5387 authorizes workhorse5388 without length5389 authorizes workhorse5390 #authorize_upload!5391 authorizes the upload5392 #user_project5393 calls find_project! on default action5394 calls find_project! on read_project action5395 calls user_project_with_read_package on read_package action5396 throws ArgumentError on unexpected action5397 #user_project_with_read_package5398 with non-existing project5399 with current user5400 returns Not Found5401 without current user5402 returns Unauthorized5403 with existing project5404 with current user5405 as developer member5406 returns project5407 as guest member5408 returns Forbidden5409 without current user5410 returns Unauthorized5411 if no authorized project scope5412 returns Forbidden5413 #track_package_event5414 behaves like Snowplow event tracking with RedisHLL context5415 behaves like Snowplow event tracking5416 is emitted5417 when using deploy token and action is push package5418 logs a snowplow event5419 when guest and action is pull package5420 logs a snowplow event5421Gitlab::Ci::Variables::Collection::Sort5422 #initialize with non-Collection value5423 raises ArgumentError5424 #errors5425 table tests5426 empty array5427 errors matches expected errors5428 valid? matches expected errors5429 does not raise5430 simple expansions5431 errors matches expected errors5432 valid? matches expected errors5433 does not raise5434 cyclic dependency5435 errors matches expected errors5436 valid? matches expected errors5437 does not raise5438 array with raw variable5439 errors matches expected errors5440 valid? matches expected errors5441 does not raise5442 variable containing escaped variable reference5443 errors matches expected errors5444 valid? matches expected errors5445 does not raise5446 #tsort5447 table tests5448 empty array5449 returns correctly sorted variables5450 simple expansions, no reordering needed5451 returns correctly sorted variables5452 complex expansion, reordering needed5453 returns correctly sorted variables5454 unused variables5455 returns correctly sorted variables5456 missing variable5457 returns correctly sorted variables5458 complex expansions with missing variable5459 returns correctly sorted variables5460 raw variable does not get resolved5461 returns correctly sorted variables5462 variable containing escaped variable reference5463 returns correctly sorted variables5464 cyclic dependency5465 raises TSort::Cyclic5466 with overridden variables5467 preserves relative order of overridden variables5468StuckMergeJobsWorker5469 perform5470 merge job identified as completed5471 updates merge request to merged when locked but has merge_commit_sha5472 updates merge request to opened when locked but has not been merged5473 logs updated stuck merge job ids5474 merge job not identified as completed5475 does not change merge request state when job is not completed yet5476SnippetInputAction5477 validations5478 action: :create, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5479 is expected to equal true5480 action: :move, file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5481 is expected to equal true5482 action: :delete, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5483 is expected to equal true5484 action: :update, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5485 is expected to equal true5486 action: :foo, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5487 is expected to include :action5488 action: "create", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5489 is expected to equal true5490 action: "move", file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5491 is expected to equal true5492 action: "delete", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5493 is expected to equal true5494 action: "update", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5495 is expected to equal true5496 action: "foo", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5497 is expected to include :action5498 action: nil, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5499 is expected to include :action5500 action: "", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5501 is expected to include :action5502 action: :move, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: false, invalid_field: :previous_path5503 is expected to include :previous_path5504 action: :move, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: false, invalid_field: :previous_path5505 is expected to include :previous_path5506 action: :move, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5507 is expected to include :file_path5508 action: :move, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5509 is expected to equal true5510 action: :move, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5511 is expected to equal true5512 action: :move, file_path: nil, content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5513 is expected to equal true5514 action: :move, file_path: "foobar", content: nil, previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5515 is expected to equal true5516 action: :move, file_path: "foobar", content: "", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5517 is expected to equal true5518 action: :create, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5519 is expected to include :content5520 action: :create, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5521 is expected to include :content5522 action: :create, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5523 is expected to equal true5524 action: :create, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5525 is expected to equal true5526 action: :update, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5527 is expected to include :content5528 action: :update, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5529 is expected to include :content5530 action: :update, file_path: "other", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5531 is expected to include :file_path5532 action: :update, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: true, invalid_field: nil5533 is expected to equal true5534 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: true, invalid_field: nil5535 is expected to equal true5536 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :update, is_valid: true, invalid_field: nil5537 is expected to equal true5538 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "update", is_valid: true, invalid_field: nil5539 is expected to equal true5540 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update], is_valid: true, invalid_field: nil5541 is expected to equal true5542 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update, :create], is_valid: true, invalid_field: nil5543 is expected to equal true5544 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :create, is_valid: false, invalid_field: :action5545 is expected to include :action5546 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "create", is_valid: false, invalid_field: :action5547 is expected to include :action5548 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:create], is_valid: false, invalid_field: :action5549 is expected to include :action5550 action: :foo, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :foo, is_valid: false, invalid_field: :action5551 is expected to include :action5552 #to_commit_action5553 transforms attributes to commit action5554 action is update5555 when previous_path is present5556 returns the existing previous_path5557 when previous_path is not present5558 assigns the file_path to the previous_path5559Gitlab::ContentSecurityPolicy::ConfigLoader5560 .default_enabled5561 is enabled5562 when in production5563 is disabled5564 .default_directives5565 returns default directives5566 the images-src directive5567 can be loaded from anywhere5568 the media-src directive5569 can be loaded from anywhere5570 adds all websocket origins to support Safari5571 with insecure domain5572 with secure domain5573 with custom port5574 with custom port and secure domain5575 when CDN host is defined5576 adds CDN host to CSP5577 Zuora directives5578 when on SaaS5579 adds Zuora host to CSP5580 when is not Gitlab.com?5581 does not add Zuora host to CSP5582 when sentry is configured5583 when legacy sentry is configured5584 adds legacy sentry path to CSP5585 when sentry is configured5586 adds new sentry path to CSP5587 when sentry settings are from older schemas and sentry setting are missing5588 config is backwards compatible, does not add sentry path to CSP5589 when legacy sentry and sentry are both configured5590 adds both sentry paths to CSP5591 when CUSTOMER_PORTAL_URL is set5592 adds CUSTOMER_PORTAL_URL to CSP5593 letter_opener application URL5594 when in production5595 does not add letter_opener to CSP5596 when in development5597 adds letter_opener to CSP5598 Snowplow Micro event collector5599 when in production5600 does not add Snowplow Micro URL to connect-src5601 when in development5602 adds Snowplow Micro URL with trailing slash to connect-src5603 when not enabled using config5604 does not add Snowplow Micro URL to connect-src5605 when REVIEW_APPS_ENABLED is set5606 adds gitlab-org/gitlab merge requests API endpoint to CSP5607 #load5608 sets the policy properly5609 ignores malformed policy statements5610 returns default values for directives not defined by the user or with <default_value> and disables directives set to false5611Sidebars::Projects::Menus::InfrastructureMenu5612 behaves like not serializable as super_sidebar_menu_args5613 returns nil5614 #render?5615 when menu does not have any menu items5616 returns false5617 when menu has menu items5618 returns true5619 behavior based on access level setting5620 infrastructure_access_level: enabled, render: true5621 renders based on the infrastructure access level5622 infrastructure_access_level: disabled, render: false5623 renders based on the infrastructure access level5624 #link5625 when Kubernetes menu item is visible5626 menu link points to Kubernetes page5627 when Kubernetes menu item is not visible5628 menu link points to Terraform states page5629 when Terraform states menu is not visible5630 menu link points to Google Cloud page5631 Menu Items5632 Kubernetes5633 behaves like access rights checks5634 is expected not to be nil5635 when the user does not have access5636 is expected to be nil5637 Terraform states5638 behaves like access rights checks5639 is expected not to be nil5640 when the user does not have access5641 is expected to be nil5642 if terraform_state.enabled=true5643 behaves like access rights checks5644 is expected not to be nil5645 when the user does not have access5646 is expected to be nil5647 if terraform_state.enabled=false5648 is expected to be nil5649 Google Cloud5650 behaves like access rights checks5651 is expected not to be nil5652 when the user does not have access5653 is expected to be nil5654 when feature flag is turned off globally5655 is expected to be nil5656 when feature flag is enabled for specific project5657 behaves like access rights checks5658 is expected not to be nil5659 when the user does not have access5660 is expected to be nil5661 when feature flag is enabled for specific group5662 behaves like access rights checks5663 is expected not to be nil5664 when the user does not have access5665 is expected to be nil5666 when feature flag is enabled for specific project5667 behaves like access rights checks5668 is expected not to be nil5669 when the user does not have access5670 is expected to be nil5671 when instance is not configured for Google OAuth25672 is expected to be nil5673 AWS5674 behaves like access rights checks5675 is expected not to be nil5676 when the user does not have access5677 is expected to be nil5678 when feature flag is turned off globally5679 is expected to be nil5680 when feature flag is enabled for specific project5681 behaves like access rights checks5682 is expected not to be nil5683 when the user does not have access5684 is expected to be nil5685 when feature flag is enabled for specific group5686 behaves like access rights checks5687 is expected not to be nil5688 when the user does not have access5689 is expected to be nil5690 when feature flag is enabled for specific project5691 behaves like access rights checks5692 is expected not to be nil5693 when the user does not have access5694 is expected to be nil5695Ci::Variable5696 behaves like CI variable5697 is expected to includes the Ci::HasVariable module5698 strips whitespaces when assigning key5699 can convert to runner variable5700 variable type5701 defines variable types5702 defaults variable type to env_var5703 supports variable type file5704 behaves like includes Limitable concern5705 #exceeds_limits?5706 without plan limits configured5707 is expected to eq false5708 without plan limits configured5709 is expected to eq false5710 with an existing model5711 is expected to eq true5712 validations5713 is expected to be a kind of Limitable5714 without plan limits configured5715 can create new models5716 with plan limits configured5717 can create new models5718 with an existing model5719 cannot create new models exceeding the plan limits5720 validations5721 is expected to includes the Presentable module5722 is expected to includes the Ci::Maskable module5723 is expected to includes the HasEnvironmentScope module5724 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure5725 .by_environment_scope5726 is expected to contain exactly #<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "toLHY6zF/NniKNRthp321A==\n", encrypted_value_salt: "_Wmj0tfferuaP/OWlnlNfEg==\n", encrypted_value_iv: "QTyENd3t9RyPh8/ufuA4tQ==\n", project_id: 1037, protected: false, environment_scope: "production", masked: false, variable_type: "env_var", raw: false>5727 .unprotected5728 when variable is protected5729 returns nothing5730 when variable is not protected5731 returns the variable5732 loose foreign key on ci_variables.project_id5733 behaves like cleanup by a loose foreign key5734 cleans up (delete or nullify) the model5735 #audit_details5736 equals to the variable's key5737Commits::CherryPickService5738 #execute5739 behaves like successful cherry-pick5740 picks the commit into the branch5741 supports a custom commit message5742 when picking a merge-request5743 adds a system note5744 behaves like successful cherry-pick5745 picks the commit into the branch5746 supports a custom commit message5747Gitlab::QuickActions::Extractor5748 #extract_commands5749 extracts command with multiple arguments and various prefixes5750 extracts command case insensitive5751 does not extract noop commands5752 extracts and performs substitution commands5753 extracts and performs substitution commands5754 extracts and performs multiple substitution commands5755 does not extract substitution command in inline code5756 extracts and performs substitution commands case insensitive5757 extracts and performs substitution commands with comments5758 extracts and performs substitution commands with keep_actions5759 extracts multiple commands5760 does not alter original content if no command is found5761 does not get confused if command comes before an inline code5762 does not get confused if command comes before a blockcode5763 does not extract commands inside a blockcode5764 does not extract commands inside a blockquote5765 does not extract commands inside a HTML tag5766 does not extract commands in multiline inline code on seperated rows5767 does not extract commands in multiline inline code starting from text5768 does not extract commands in inline code5769 limits to passed commands when they are passed5770 fails fast for strings with many newlines5771 command with no argument5772 at the start of content5773 behaves like command with no argument5774 extracts command5775 in the middle of content5776 behaves like command with no argument5777 extracts command5778 in the middle of a line5779 does not extract command5780 at the end of content5781 behaves like command with no argument5782 extracts command5783 command with a single argument5784 at the start of content5785 allows slash in command arguments5786 behaves like command with a single argument5787 extracts command5788 in the middle of content5789 behaves like command with a single argument5790 extracts command5791 in the middle of a line5792 does not extract command5793 at the end of content5794 behaves like command with a single argument5795 extracts command5796 when argument is not separated with a space5797 does not extract command5798 command with multiple arguments5799 at the start of content5800 behaves like command with multiple arguments5801 extracts command5802 in the middle of content5803 behaves like command with multiple arguments5804 extracts command5805 in the middle of a line5806 does not extract command5807 at the end of content5808 behaves like command with multiple arguments5809 extracts command5810 when argument is not separated with a space5811 does not extract command5812 command with keep_actions5813 at the start of content5814 behaves like command with a single argument5815 extracts command5816 in the middle of content5817 behaves like command with a single argument5818 extracts command5819 at the end of content5820 behaves like command with a single argument5821 extracts command5822 #redact_commands5823 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"5824 encloses quick actions with code span markdown5825 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"5826 encloses quick actions with code span markdown5827 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"5828 encloses quick actions with code span markdown5829 text: "/reopen\nworld", expected: "`/reopen`\nworld"5830 encloses quick actions with code span markdown5831 text: "hello\n/open", expected: "hello\n`/open`"5832 encloses quick actions with code span markdown5833Security::CiConfiguration::ContainerScanningCreateService5834 #execute5835 user does not belong to project5836 returns an error status5837 does not track a snowplow event5838 user belongs to project5839 does track the snowplow event5840 raises exception if the user does not have permission to create a new branch5841 when exception is raised5842 when branch was created5843 tries to rm branch5844 when branch was not created5845 does not try to rm branch5846 with no parameters5847 returns the path to create a new merge request5848 when the project has a non-default ci config file5849 does track the snowplow event5850 when existing ci config contains anchors/aliases5851 fails with error5852 when parsing existing ci config gives a Psych error5853 fails with error5854 when parsing existing ci config gives any other error5855 is successful5856 when the project is empty5857 returns an error5858Sbom::PackageUrl::ArgumentValidator5859 # order random5860 with valid arguments5861 valid maven purl5862 does not raise error5863 basic valid maven purl without version5864 does not raise error5865 valid go purl without version and with subpath5866 does not raise error5867 valid go purl with version and subpath5868 does not raise error5869 bitbucket namespace and name should be lowercased5870 does not raise error5871 github namespace and name should be lowercased5872 does not raise error5873 debian can use qualifiers5874 does not raise error5875 docker uses qualifiers and hash image id as versions5876 does not raise error5877 Java gem can use a qualifier5878 does not raise error5879 maven often uses qualifiers5880 does not raise error5881 maven pom reference5882 does not raise error5883 maven can come with a type qualifier5884 does not raise error5885 npm can be scoped5886 does not raise error5887 nuget names are case sensitive5888 does not raise error5889 pypi names have special rules and not case sensitive5890 does not raise error5891 rpm often use qualifiers5892 does not raise error5893 slash / after scheme is not significant5894 does not raise error5895 double slash // after scheme is not significant5896 does not raise error5897 slash /// after type is not significant5898 does not raise error5899 valid maven purl with case sensitive namespace and name5900 does not raise error5901 valid maven purl containing a space in the version and qualifier5902 does not raise error5903 valid conan purl5904 does not raise error5905 valid conan purl with namespace and qualifier channel5906 does not raise error5907 valid conda purl with qualifiers5908 does not raise error5909 valid cran purl5910 does not raise error5911 valid swift purl5912 does not raise error5913 valid hackage purl5914 does not raise error5915 with invalid arguments5916 a scheme is always required5917 raises an ArgumentError5918 a type is always required5919 raises an ArgumentError5920 a name is required5921 raises an ArgumentError5922 checks for invalid qualifier keys5923 raises an ArgumentError5924 invalid conan purl only namespace5925 raises an ArgumentError5926 invalid conan purl only channel qualifier5927 raises an ArgumentError5928 invalid cran purl without name5929 raises an ArgumentError5930 invalid cran purl without version5931 raises an ArgumentError5932 invalid swift purl without namespace5933 raises an ArgumentError5934 invalid swift purl without name5935 raises an ArgumentError5936 invalid swift purl without version5937 raises an ArgumentError5938 name and version are always required5939 raises an ArgumentError5940 with multiple errors5941 reports all errors5942Views documentation5943 for each object5944 has a metadata file5945 has a valid metadata file5946 has a valid feature category5947 has a valid metadata file with allowed fields5948 has a valid metadata file without missing fields5949Tables documentation5950 for each object5951 has a metadata file5952 has a valid metadata file5953 has a valid feature category5954 has a valid metadata file with allowed fields5955 has a valid metadata file without missing fields5956Deleted tables documentation5957 for each object5958 has a metadata file5959 has a valid metadata file5960 has a valid feature category5961 has a valid metadata file with allowed fields5962 has a valid metadata file without missing fields5963Deleted views documentation5964 for each object5965 has a metadata file5966 has a valid metadata file5967 has a valid feature category5968 has a valid metadata file with allowed fields5969 has a valid metadata file without missing fields5970gitlab:service_desk_email:secret rake tasks5971 # order random5972 :show5973 displays error when file does not exist5974 displays error when key does not exist5975 displays error when key is changed5976 outputs the unencrypted content when present5977 write5978 creates encrypted file from stdin5979 displays error when key does not exist5980 displays error when write directory does not exist5981somevalue shows a warning when content is invalid5982 edit5983# password: '123'5984# user: 'gitlab-incoming@gmail.com'5985 creates encrypted file5986 displays error when key does not exist5987 displays error when key is changed5988 displays error when write directory does not exist5989somevalue shows a warning when content is invalid5990 displays error when $EDITOR is not set5991Gitlab::Ci::Status::Build::WaitingForApproval5992 .matches?5993 when build is waiting for approval5994 is a correct match5995 when build is not waiting for approval5996 does not match5997 #illustration5998 is expected to include :image and :size5999 is expected to eq "Waiting for approval"6000 is expected to include "This job deploys to the protected environment \"production\""6001 #has_action?6002 is expected to be truthy6003 #action_icon6004 is expected to be nil6005 #action_title6006 is expected to be nil6007 #action_button_title6008 is expected to eq "Go to environments page to approve or reject"6009 #action_path6010 is expected to include "environments"6011 #action_method6012 is expected to eq :get6013Grafana::Client6014 #get_dashboard6015 behaves like calls grafana api6016 calls grafana api6017 behaves like no redirects6018 does not follow redirects6019 behaves like handles exceptions6020 HTTParty::Error6021 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"6022 Net::OpenTimeout6023 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"6024 SocketError6025 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"6026 OpenSSL::SSL::SSLError6027 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"6028 Errno::ECONNREFUSED6029 is expected to raise Grafana::Client::Error with "Connection refused"6030 StandardError6031 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"6032 #get_datasource6033 behaves like calls grafana api6034 calls grafana api6035 behaves like no redirects6036 does not follow redirects6037 behaves like handles exceptions6038 HTTParty::Error6039 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"6040 Net::OpenTimeout6041 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"6042 SocketError6043 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"6044 OpenSSL::SSL::SSLError6045 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"6046 Errno::ECONNREFUSED6047 is expected to raise Grafana::Client::Error with "Connection refused"6048 StandardError6049 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"6050 #proxy_datasource6051 behaves like calls grafana api6052 calls grafana api6053 behaves like no redirects6054 does not follow redirects6055 behaves like handles exceptions6056 HTTParty::Error6057 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"6058 Net::OpenTimeout6059 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"6060 SocketError6061 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"6062 OpenSSL::SSL::SSLError6063 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"6064 Errno::ECONNREFUSED6065 is expected to raise Grafana::Client::Error with "Connection refused"6066 StandardError6067 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"6068Gitlab6069 delegates root to GitlabEdition6070 delegates extensions to GitlabEdition6071 delegates ee? to GitlabEdition6072 delegates jh? to GitlabEdition6073 delegates ee to GitlabEdition6074 delegates jh to GitlabEdition6075 .revision6076 when a REVISION file exists6077 returns the actual Git revision6078 memoizes the revision6079 when no REVISION file exist6080 when the Git command succeeds6081 returns the actual Git revision6082 when the Git command fails6083 returns "Unknown"6084 .com?6085 is true when GITLAB_SIMULATE_SAAS is true and in development6086 is false when GITLAB_SIMULATE_SAAS is true and in test6087 when not simulating SaaS6088 is true when on https://gitlab.com6089 is true when on https://staging.gitlab.com6090 is true when on other gitlab subdomain6091 is true when on other gitlab subdomain with hyphen6092 is false when not on GitLab.com6093 .com_except_jh?6094 com?: true, jh?: true, expected: false6095 is expected to eq false6096 com?: true, jh?: false, expected: true6097 is expected to eq true6098 com?: false, jh?: true, expected: false6099 is expected to eq false6100 com?: false, jh?: false, expected: false6101 is expected to eq false6102 .com6103 when on GitLab.com6104 is expected to equal true6105 when not on GitLab.com6106 is expected to be nil6107 .staging?6108 is false when on https://gitlab.com6109 is true when on https://staging.gitlab.com6110 is false when not on staging6111 .canary?6112 is true when CANARY env var is set to true6113 is false when CANARY env var is set to false6114 .com_and_canary?6115 is true when on .com and canary6116 is false when on .com but not on canary6117 .com_but_not_canary?6118 is false when on .com and canary6119 is true when on .com but not on canary6120 .org_or_com?6121 is true when on .com6122 is true when org6123 is false when not dev, org or com6124 .simulate_com?6125 when GITLAB_SIMULATE_SAAS is true6126 is false when test env6127 is true when dev env6128 is false when env is not dev6129 when GITLAB_SIMULATE_SAAS is false6130 is false when test env6131 is false when dev env6132 is false when env is not dev or test6133 .dev_or_test_env?6134 is true when test env6135 is true when dev env6136 is false when env is not dev or test6137 .http_proxy_env?6138 returns true when lower case https6139 returns true when upper case https6140 returns true when lower case http6141 returns true when upper case http6142 returns false when not set6143 .maintenance_mode?6144 returns true when maintenance mode is enabled6145 returns false when maintenance mode is disabled6146 returns false when maintenance mode column is not present6147Gitlab::Redis::RepositoryCache6148 # order random6149 .cache_store6150 has a default ttl of 8 hours6151 behaves like redis_shared_examples6152 .config_file_name6153 when there is no config file anywhere6154 is expected to be nil6155 .store6156 with old format6157 behaves like redis store6158 instantiates Redis::Store6159 with the namespace6160 uses specified namespace6161 with new format6162 behaves like redis store6163 instantiates Redis::Store6164 with the namespace6165 uses specified namespace6166 .params6167 withstands mutation6168 when url contains unix socket reference6169 with old format6170 returns path key instead6171 with new format6172 returns path key instead6173 when url is host based6174 with old format6175 returns hash with host, port, db, and password6176 with new format6177 rails_env: "development", host: "development-host"6178 returns hash with host, port, db, and password6179 rails_env: "test", host: "test-host"6180 returns hash with host, port, db, and password6181 rails_env: "production", host: "production-host"6182 returns hash with host, port, db, and password6183 with redis cluster format6184 rails_env: "development", host: "development-master"6185 returns hash with cluster and password6186 rails_env: "test", host: "test-master"6187 returns hash with cluster and password6188 rails_env: "production", host: "production-master"6189 returns hash with cluster and password6190 .url6191 withstands mutation6192 when yml file with env variable6193 reads redis url from env variable6194 .version6195 returns a version6196 .with6197 when running on single-threaded runtime6198 instantiates a connection pool with size 56199 when running on multi-threaded runtime6200 instantiates a connection pool with a size based on the concurrency of the worker6201 when there is no config at all6202 can run an empty block6203 #db6204 with old format6205 returns the correct db6206 with new format6207 returns the correct db6208 with cluster-mode6209 returns the correct db6210 #sentinels6211 when sentinels are defined6212 rails_env: "development", hosts: ["development-replica1", "development-replica2"]6213 returns an array of hashes with host and port keys6214 rails_env: "test", hosts: ["test-replica1", "test-replica2"]6215 returns an array of hashes with host and port keys6216 rails_env: "production", hosts: ["production-replica1", "production-replica2"]6217 returns an array of hashes with host and port keys6218 when sentinels are not defined6219 returns nil6220 when cluster is defined6221 returns nil6222 #sentinels?6223 when sentinels are defined6224 returns true6225 when sentinels are not defined6226 is expected to eq nil6227 when cluster is defined6228 returns false6229 #raw_config_hash6230 returns old-style single url config in a hash6231 returns cluster config without url key in a hash6232 #fetch_config6233 raises an exception when the config file contains invalid yaml6234 when redis.yml exists6235 uses config/redis.yml6236 when no config file exsits6237 returns nil6238 when resque.yml exists6239 returns the config from resque.yml6240 #fetch_config6241 when redis.yml exists6242 when the fallback has a redis.yml entry6243 is expected to eq {"fallback redis.yml"=>123}6244 and an instance config file exists6245 is expected to eq {"instance specific file"=>456}6246 and the instance has a redis.yml entry6247 is expected to eq {"instance redis.yml"=>789}6248 when no redis config file exsits6249 returns nil6250 when resque.yml exists6251 returns the config from resque.yml6252Resolvers::ContainerRepositoriesResolver6253 #resolve6254 with authorized user6255 when the object is a project6256 behaves like returning container repositories6257 is expected to contain exactly #<ContainerRepository id: 1, project_id: 1056, name: "test_image_1", created_at: "2023-05-19 05:52:51.198277412 +0000", updated_at: "2023-05-19 05:52:51.198277412 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>6258 with a named search6259 is expected to contain exactly #<ContainerRepository id: 2, project_id: 1056, name: "Foobar", created_at: "2023-05-19 05:52:51.412415656 +0000", updated_at: "2023-05-19 05:52:51.412415656 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>6260 with a sort argument6261 created_desc6262 is expected to eq [#<ContainerRepository id: 4, project_id: 1057, name: "foo", created_at: "2023-05-19 04:52:51.920484207 +0000", updated_at: "2023-05-19 04:52:51.920505937 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 3, project_id: 1057, name: "bar", created_at: "2023-05-18 05:52:51.909798326 +0000", updated_at: "2023-05-19 05:52:51.913304266 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6263 updated_asc6264 is expected to eq [#<ContainerRepository id: 4, project_id: 1057, name: "foo", created_at: "2023-05-19 04:52:51.920484207 +0000", updated_at: "2023-05-19 04:52:51.920505937 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 3, project_id: 1057, name: "bar", created_at: "2023-05-18 05:52:51.909798326 +0000", updated_at: "2023-05-19 05:52:51.913304266 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6265 name_desc6266 is expected to eq [#<ContainerRepository id: 4, project_id: 1057, name: "foo", created_at: "2023-05-19 04:52:51.920484207 +0000", updated_at: "2023-05-19 04:52:51.920505937 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 3, project_id: 1057, name: "bar", created_at: "2023-05-18 05:52:51.909798326 +0000", updated_at: "2023-05-19 05:52:51.913304266 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6267 created_asc6268 is expected to eq [#<ContainerRepository id: 3, project_id: 1057, name: "bar", created_at: "2023-05-18 05:52:51.909798326 +0000", updated_at: "2023-05-19 05:52:51.913304266 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 4, project_id: 1057, name: "foo", created_at: "2023-05-19 04:52:51.920484207 +0000", updated_at: "2023-05-19 04:52:51.920505937 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6269 updated_desc6270 is expected to eq [#<ContainerRepository id: 3, project_id: 1057, name: "bar", created_at: "2023-05-18 05:52:51.909798326 +0000", updated_at: "2023-05-19 05:52:51.913304266 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 4, project_id: 1057, name: "foo", created_at: "2023-05-19 04:52:51.920484207 +0000", updated_at: "2023-05-19 04:52:51.920505937 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6271 name_asc6272 is expected to eq [#<ContainerRepository id: 3, project_id: 1057, name: "bar", created_at: "2023-05-18 05:52:51.909798326 +0000", updated_at: "2023-05-19 05:52:51.913304266 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 4, project_id: 1057, name: "foo", created_at: "2023-05-19 04:52:51.920484207 +0000", updated_at: "2023-05-19 04:52:51.920505937 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6273 when the object is a group6274 behaves like returning container repositories6275 is expected to contain exactly #<ContainerRepository id: 1, project_id: 1056, name: "test_image_1", created_at: "2023-05-19 05:52:51.198277412 +0000", updated_at: "2023-05-19 05:52:51.198277412 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>6276 with a named search6277 is expected to contain exactly #<ContainerRepository id: 5, project_id: 1056, name: "Foobar", created_at: "2023-05-19 05:52:53.266016904 +0000", updated_at: "2023-05-19 05:52:53.266016904 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>6278 with a sort argument6279 created_desc6280 is expected to eq [#<ContainerRepository id: 7, project_id: 1058, name: "foo", created_at: "2023-05-19 04:52:53.894929434 +0000", updated_at: "2023-05-19 04:52:53.894967114 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 6, project_id: 1058, name: "bar", created_at: "2023-05-18 05:52:53.881055155 +0000", updated_at: "2023-05-19 05:52:53.885400685 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6281 updated_asc6282 is expected to eq [#<ContainerRepository id: 7, project_id: 1058, name: "foo", created_at: "2023-05-19 04:52:53.894929434 +0000", updated_at: "2023-05-19 04:52:53.894967114 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 6, project_id: 1058, name: "bar", created_at: "2023-05-18 05:52:53.881055155 +0000", updated_at: "2023-05-19 05:52:53.885400685 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6283 name_desc6284 is expected to eq [#<ContainerRepository id: 7, project_id: 1058, name: "foo", created_at: "2023-05-19 04:52:53.894929434 +0000", updated_at: "2023-05-19 04:52:53.894967114 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 6, project_id: 1058, name: "bar", created_at: "2023-05-18 05:52:53.881055155 +0000", updated_at: "2023-05-19 05:52:53.885400685 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6285 created_asc6286 is expected to eq [#<ContainerRepository id: 6, project_id: 1058, name: "bar", created_at: "2023-05-18 05:52:53.881055155 +0000", updated_at: "2023-05-19 05:52:53.885400685 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 7, project_id: 1058, name: "foo", created_at: "2023-05-19 04:52:53.894929434 +0000", updated_at: "2023-05-19 04:52:53.894967114 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6287 updated_desc6288 is expected to eq [#<ContainerRepository id: 6, project_id: 1058, name: "bar", created_at: "2023-05-18 05:52:53.881055155 +0000", updated_at: "2023-05-19 05:52:53.885400685 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 7, project_id: 1058, name: "foo", created_at: "2023-05-19 04:52:53.894929434 +0000", updated_at: "2023-05-19 04:52:53.894967114 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6289 name_asc6290 is expected to eq [#<ContainerRepository id: 6, project_id: 1058, name: "bar", created_at: "2023-05-18 05:52:53.881055155 +0000", updated_at: "2023-05-19 05:52:53.885400685 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 7, project_id: 1058, name: "foo", created_at: "2023-05-19 04:52:53.894929434 +0000", updated_at: "2023-05-19 04:52:53.894967114 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]6291 when the object is an invalid type6292 is expected to raise Exception with "invalid subject_type"6293 with unauthorized user6294 is expected to equal nil6295lograge6296 for API requests6297 logs to api_json log6298 limits param size6299 for Controller requests6300 logs to production_json log6301 logs cpu_s on supported platform6302 does not log cpu_s on unsupported platform6303 limits param size6304 when logging memory allocations6305 logs memory usage metrics6306 with a log subscriber6307 with an exception6308 adds exception data to log6309 with an ActiveRecord::StatementInvalid6310 adds the SQL query to the log6311 with etag_route6312 adds etag_route to log6313 with access token in url6314 strips location from sensitive information6315 leaves non-sensitive information from location6316 with db payload6317 when RequestStore is enabled6318 includes db counters6319 when RequestStore is disabled6320 does not include db counters6321 with db payload6322 when RequestStore is enabled6323 includes db counters for load balancing6324 when RequestStore is disabled6325 does not include db counters for load balancing6326Ml::Experiment6327 associations6328 is expected to belong to project required: false6329 is expected to belong to user required: false6330 is expected to have many candidates6331 is expected to have many metadata6332 .package_name6333 .package_name6334 is expected to eq "ml_experiment_1"6335 #by_project_id_and_iid6336 if exists6337 is expected to eq #<Ml::Experiment id: 1, created_at: "2023-05-19 05:52:58.834422585 +0000", updated_at: "2023-05-19 05:52:58.834422585 +0000", iid: 1, project_id: 1059, user_id: 2797, name: "experiment1", deleted_on: nil>6338 if does not exist6339 is expected to equal nil6340 #by_project_id_and_name6341 if exists6342 is expected to eq #<Ml::Experiment id: 1, created_at: "2023-05-19 05:52:58.834422585 +0000", updated_at: "2023-05-19 05:52:58.834422585 +0000", iid: 1, project_id: 1059, user_id: 2797, name: "experiment1", deleted_on: nil>6343 if does not exist6344 is expected to be nil6345 #by_project_id6346 is expected to contain exactly #<Ml::Experiment id: 1, created_at: "2023-05-19 05:52:58.834422585 +0000", updated_at: "2023-05-19 05:52:58.834422585 +0000", iid: 1, project_id: 1059, user_id: 2797, name: "experiment1", deleted_on: nil> and #<Ml::Experiment id: 2, created_at: "2023-05-19 05:52:58.847678743 +0000", updated_at: "2023-05-19 05:52:58.847678743 +0000", iid: 2, project_id: 1059, user_id: 2797, name: "experiment2", deleted_on: nil>6347 when project does not have experiment6348 is expected to be empty6349 #with_candidate_count6350 fetches the candidate count6351 #package_for_experiment?6352 package_name: "ml_experiment_1234", id: true6353 is expected to equal true6354 package_name: "ml_experiment_1234abc", id: false6355 is expected to equal false6356 package_name: "ml_experiment_abc", id: false6357 is expected to equal false6358 package_name: "ml_experiment_", id: false6359 is expected to equal false6360 package_name: "blah", id: false6361 is expected to equal false6362Users::DeactivateDormantUsersWorker6363 #perform6364 does not run for SaaS6365 when automatic deactivation of dormant users is enabled6366 deactivates dormant users6367 does not deactivate non-active users6368 does not deactivate recently created users6369 triggers update of highest user role for deactivated users6370 user_type: :human, expected_state: "deactivated"6371 deactivates certain user types6372 user_type: :human_deprecated, expected_state: "deactivated"6373 deactivates certain user types6374 user_type: :support_bot, expected_state: "active"6375 deactivates certain user types6376 user_type: :alert_bot, expected_state: "active"6377 deactivates certain user types6378 user_type: :visual_review_bot, expected_state: "active"6379 deactivates certain user types6380 user_type: :service_user, expected_state: "deactivated"6381 deactivates certain user types6382 user_type: :ghost, expected_state: "active"6383 deactivates certain user types6384 user_type: :project_bot, expected_state: "active"6385 deactivates certain user types6386 user_type: :migration_bot, expected_state: "active"6387 deactivates certain user types6388 user_type: :security_bot, expected_state: "active"6389 deactivates certain user types6390 user_type: :automation_bot, expected_state: "active"6391 deactivates certain user types6392 when automatic deactivation of dormant users is disabled6393 does nothing6394Ci::ArchiveTracesCronWorker6395 when a job succeeded6396 batch_execute service6397 behaves like archives trace6398 is expected to be exist6399 when the job finished recently6400 behaves like does not archive trace6401 is expected to be nil6402 when a trace had already been archived6403 continues to archive live traces6404 when an unexpected exception happened during archiving6405 puts a log6406 when a job was cancelled6407 behaves like archives trace6408 is expected to be exist6409 when a job is running6410 behaves like does not archive trace6411 is expected to be nil6412Mattermost::Session6413 is expected to respond to #current_resource_owner6414 is expected to respond to #request6415 is expected to respond to #authorization6416 is expected to respond to #strategy6417 #with session6418 without oauth uri6419 makes a request to the oauth uri6420 returns nill on calling a non exisitng method on request6421 with oauth_uri6422 without token_uri6423 can not create a session6424 with token_uri6425 can set up a session6426 returns the value of the block6427 exclusive lease6428 tries to obtain a lease6429 returns a NoSessionError error without lease6430Gitlab::Usage::Metrics::Instrumentations::InProductMarketingEmailCtaClickedMetric6431 # order random6432 behaves like a correct instrumented metric value and query6433 behaves like a correct instrumented metric value6434 has correct value6435 behaves like a correct instrumented metric query6436 has correct generate query6437 options_key: :track, valid_value: "admin_verify", invalid_value: "invite_team"6438 raises an exception if option is not present6439 raises an exception if option has invalid value6440 doesn't raise exceptions if option has valid value6441 options_key: :series, valid_value: 1, invalid_value: 56442 raises an exception if option is not present6443 raises an exception if option has invalid value6444 doesn't raise exceptions if option has valid value6445JiraConnect::PublicKey6446 # order random6447 #save!6448 persists the values6449 returns itself6450 .create!6451 only accepts valid public keys6452 with OpenSSL::PKey::RSA object6453 behaves like creates a jira connect public key6454 generates a Uuid6455 sets the key attribute6456 persists the values6457 with string public key6458 behaves like creates a jira connect public key6459 generates a Uuid6460 sets the key attribute6461 persists the values6462 .find6463 raises an error6464 when the public key exists6465 loads the public key6466Groups::NestedCreateService6467 with subgroups6468 #execute6469 returns the group if it already existed6470 reuses a parent if it already existed6471 creates group and subgroup in the database6472 behaves like with a visibility level6473 creates the group with correct visibility level6474 adding a visibility level6475 overwrites the visibility level6476Banzai::Filter::InlineMetricsRedactorFilter6477 without a metrics charts placeholder6478 leaves regular non-metrics links unchanged6479 with a metrics charts placeholder6480 behaves like redacts the embed placeholder6481 no user is logged in6482 redacts the placeholder6483 the user does not have permission do see charts6484 redacts the placeholder6485 behaves like retains the embed placeholder when applicable6486 the user has requisite permissions6487 leaves the placeholder6488 with /-/metrics?environment=:environment_id URL6489 behaves like redacts the embed placeholder6490 no user is logged in6491 redacts the placeholder6492 the user does not have permission do see charts6493 redacts the placeholder6494 behaves like retains the embed placeholder when applicable6495 the user has requisite permissions6496 leaves the placeholder6497 for a grafana dashboard6498 behaves like redacts the embed placeholder6499 no user is logged in6500 redacts the placeholder6501 the user does not have permission do see charts6502 redacts the placeholder6503 behaves like retains the embed placeholder when applicable6504 the user has requisite permissions6505 leaves the placeholder6506 for a cluster metric embed6507 with user who can read cluster6508 behaves like redacts the embed placeholder6509 no user is logged in6510 redacts the placeholder6511 the user does not have permission do see charts6512 redacts the placeholder6513 behaves like retains the embed placeholder when applicable6514 the user has requisite permissions6515 leaves the placeholder6516 without user who can read cluster6517 redacts the embed placeholder6518 the user has requisite permissions6519 for an internal non-dashboard url6520 leaves the placeholder6521 with over 100 embeds6522 redacts ill-advised embeds6523 for an alert embed6524 behaves like redacts the embed placeholder6525 no user is logged in6526 redacts the placeholder6527 the user does not have permission do see charts6528 redacts the placeholder6529 behaves like retains the embed placeholder when applicable6530 the user has requisite permissions6531 leaves the placeholder6532Packages::Debian::ProcessChangesService6533 #execute6534 with valid package file6535 updates package and package file6536 with non-matching distribution6537 is expected to raise ActiveRecord::RecordNotFound6538 with missing field in .changes file6539 behaves like raises error with missing field6540 is expected to raise ArgumentError with "missing Source field"6541 behaves like raises error with missing field6542 is expected to raise ArgumentError with "missing Version field"6543 behaves like raises error with missing field6544 is expected to raise ArgumentError with "missing Distribution field"6545 with existing package in the same distribution6546 does not create a package and assigns the package_file to the existing package6547 and marked as pending_destruction6548 does not re-use the existing package6549 with existing package in another distribution6550 raise ExtractionError6551 and marked as pending_destruction6552 does not re-use the existing package6553 with invalid package file6554 raise ExtractionError6555 when creating package fails6556 re-raise error6557Ci::PipelineProcessing::AtomicProcessingService::StatusCollection6558 #set_job_status6559 does update existing status of job6560 ignores a missing job6561 #status_of_all6562 returns composite status of the collection6563 #status_of_jobs6564 names: ["build-a"], status: "success"6565 returns composite status of given names6566 names: ["build-a", "build-b"], status: "failed"6567 returns composite status of given names6568 names: ["build-a", "test-a"], status: "running"6569 returns composite status of given names6570 #status_of_jobs_prior_to_stage6571 stage: 0, status: "success"6572 returns composite status for jobs in prior stages6573 stage: 1, status: "failed"6574 returns composite status for jobs in prior stages6575 stage: 2, status: "running"6576 returns composite status for jobs in prior stages6577 #status_of_stage6578 stage: 0, status: "failed"6579 returns composite status for jobs at a given stages6580 stage: 1, status: "running"6581 returns composite status for jobs at a given stages6582 stage: 2, status: "created"6583 returns composite status for jobs at a given stages6584 #created_job_ids_in_stage6585 returns IDs of jobs at a given stage position6586 #processing_jobs6587 returns jobs marked as processing6588Gitlab::ExternalAuthorization::Client6589 #request_access6590 performs requests to the configured endpoint6591 adds the correct params for the user to the body of the request6592 respects the the timeout6593 adds the mutual tls params when they are present6594 returns an expected response6595 wraps exceptions if the request fails6596 passes local request setting to Gitlab::HTTP6597 for ldap users6598 includes the ldap dn and identities for ldap users6599 for non-ldap users with identities6600 includes all the identities6601Members::UnassignIssuablesService6602 #execute6603 when a user leaves a project6604 behaves like un-assigning issuables6605 removes issuable assignments6606 invalidates user cache6607 when a user leaves a group6608 behaves like un-assigning issuables6609 removes issuable assignments6610 invalidates user cache6611Gitlab::Ci::Config::Entry::Reports::CoverageReport6612 validations6613 when it is valid6614 is expected to be valid6615 is expected to eq {:coverage_format=>"cobertura", :path=>"cobertura-coverage.xml"}6616 when it is not a hash6617 config: "string"6618 is expected not to be valid6619 is expected to include /should be a hash/6620 config: true6621 is expected not to be valid6622 is expected to include /should be a hash/6623 config: []6624 is expected not to be valid6625 is expected to include /should be a hash/6626 with unsupported coverage format6627 is expected not to be valid6628 is expected to include /format must be one of supported formats/6629 without coverage format6630 is expected not to be valid6631 is expected to include /format can't be blank/6632 without path6633 is expected not to be valid6634 is expected to include /path can't be blank/6635 with invalid path6636 is expected not to be valid6637 is expected to include /path should be a string/6638 with unknown keys6639 is expected not to be valid6640 is expected to include /contains unknown keys/6641FeatureFlags::UpdateService6642 #execute6643 returns success status6644 creates audit event with correct message6645 when Jira Connect subscription does not exist6646 does not sync the feature flag to Jira6647 when Jira Connect subscription exists6648 syncs the feature flag to Jira6649 behaves like update feature flag client6650 updates last feature flag updated at6651 with invalid params6652 returns error status6653 returns error messages6654 does not create audit event6655 does not sync the feature flag to Jira6656 behaves like does not update feature flag client6657 does not update last feature flag updated at6658 when user is reporter6659 returns error status6660 when nothing is changed6661 returns success status6662 does not create audit event6663 description is being changed6664 creates audit event with changed description6665 when flag active state is changed6666 creates audit event about changing active state6667 executes hooks6668Gitlab::HookData::UserBuilder6669 #build6670 data6671 on create6672 is expected to eq "user_create"6673 behaves like includes the required attributes6674 includes the required attributes6675 behaves like does not include old username attributes6676 does not include old username attributes6677 behaves like does not include state attributes6678 does not include state attributes6679 on destroy6680 is expected to eq "user_destroy"6681 behaves like includes the required attributes6682 includes the required attributes6683 behaves like does not include old username attributes6684 does not include old username attributes6685 behaves like does not include state attributes6686 does not include state attributes6687 on rename6688 is expected to eq "user_rename"6689 includes old username details6690 behaves like includes the required attributes6691 includes the required attributes6692 behaves like does not include state attributes6693 does not include state attributes6694 on failed_login6695 is expected to eq "user_failed_login"6696 includes state details6697 behaves like includes the required attributes6698 includes the required attributes6699 behaves like does not include old username attributes6700 does not include old username attributes6701ImportCsv::BaseService6702 # order random6703 behaves like abstract method6704 raises NotImplemented error when attributes_for is called6705 behaves like abstract method6706 raises NotImplemented error when create_object_class is called6707 behaves like abstract method6708 raises NotImplemented error when validate_headers_presence! is called6709 behaves like abstract method6710 raises NotImplemented error when email_results_to_user is called6711 when given a class6712 behaves like correctly handles invalid files6713 when given file with unsupported extension6714 behaves like invalid file6715 returns invalid file error6716 when given empty file6717 behaves like invalid file6718 returns invalid file error6719 when given file without headers6720 behaves like invalid file6721 returns invalid file error6722 #detect_col_sep6723 sep_character: "&", valid: false6724 responds appropriately6725 sep_character: "?", valid: false6726 responds appropriately6727 sep_character: ";", valid: true6728 responds appropriately6729 sep_character: ",", valid: true6730 responds appropriately6731 sep_character: "\t", valid: true6732 responds appropriately6733Sortable6734 scopes6735 secondary ordering by id6736 allows secondary ordering by id ascending6737 allows secondary ordering by id descending6738 .order_by6739 does not call reorder in case of unrecognized ordering6740 ordering by id6741 ascending6742 descending6743 ordering by created day6744 ascending6745 descending6746 order by "date"6747 ordering by name6748 ascending6749 descending6750 ordering by Updated Time6751 ascending6752 descending6753 sorting groups6754 sorts groups by id6755 sorts groups by name via case-insensitive comparision6756 sorts groups by created_at6757 sorts groups by updated_at6758Ci::DeleteObjectsService6759 #execute6760 deletes records6761 deletes files6762 when trying to execute without records6763 does not change the number of objects6764 when trying to remove the same file multiple times6765 executes successfully6766 with artifacts both ready and not ready for deletion6767 skips records with pick_up_at in the future6768 limits the number of records removed6769 removes records in order6770 updates pick_up_at timestamp6771 does not delete objects for which file deletion has failed6772 with an open database transaction6773 raises an exception and does not remove records6774 #remaining_batches_count6775 when there is less than one batch size6776 is expected to eq 16777 when there is more than one batch size6778 is expected to eq 26779projects/commit/_commit_box.html.haml6780 shows the commit SHA6781 when there is a pipeline present6782 when pipeline has stages6783 shows pipeline stages in vue6784 when there are multiple pipelines for a commit6785 shows the last pipeline6786 when pipeline for the commit is blocked6787 shows correct pipeline description6788WikiPages::EventCreateService6789 #execute6790 returns a successful response6791 creates a wiki page event6792 returns an event in the payload6793 records the slug for the page6794 the user is nil6795 raises an error on construction6796 the action is illegal6797 returns an error6798 does not create an event6799 the action is a deletion6800 does not synchronize the wiki metadata timestamps with the git commit6801DashboardHelper6802 #dashboard_nav_links6803 has all the expected links by default6804 does not contain cross project elements when the user cannot read cross project6805 #feature_entry6806 when implicitly enabled6807 behaves like a feature is enabled6808 is expected to include "<p aria-label=\"Demo: status on\">"6809 when explicitly enabled6810 without links6811 behaves like a feature is enabled6812 is expected to include "<p aria-label=\"Demo: status on\">"6813 behaves like a feature without link6814 is expected not to have visible link "Documentation"6815 with configure link6816 behaves like a feature with configuration6817 is expected to have visible link "Demo" with href "demo.link"6818 with configure and documentation links6819 behaves like a feature with configuration6820 is expected to have visible link "Demo" with href "demo.link"6821 behaves like a feature with documentation6822 is expected to have visible link "Documentation" with href "doc.link"6823 when disabled6824 behaves like a feature is disabled6825 is expected to include "<p aria-label=\"Demo: status off\">"6826 behaves like a feature without link6827 is expected not to have visible link "Documentation"6828 .has_start_trial?6829 is expected to eq false6830 #reviewer_mrs_dashboard_path6831 is expected to eq "/dashboard/merge_requests?reviewer_username=user2039"6832gitlab:password rake tasks6833 :reset6834 when all inputs are correct6835 updates the password properly6836 when username is not provided6837 asks for username6838 when username is empty6839Username can not be empty.6840 aborts with an error6841 when username is passed as argument6842 does not ask for username6843 when passwords do not match6844Unable to change password of the user with username foobar.6845Password confirmation doesn't match Password6846 aborts with an error6847 when user cannot be found6848Unable to find user with username nonexistentuser.6849 aborts with an error6850MergeRequests::HandleAssigneesChangeService6851 #async_execute6852 performs MergeRequests::HandleAssigneesChangeWorker asynchronously6853 #execute6854 creates assignee note6855 sends email notifications to old and new assignees6856 creates pending todo for assignee6857 tracks users assigned event6858 tracks assignees changed event6859 when unassigning all users6860 creates assignee note6861 when execute_hooks option is set to true6862 executes hooks and integrations6863MergeRequests::Mergeability::RunChecksService6864 #execute6865 when every check is skipped6866 is still a success6867 when a check is skipped6868 does not execute the check6869 when a check is not skipped6870 when the check is cacheable6871 when the check is cached6872 returns the cached result6873 when the check is not cached6874 writes and returns the result6875 when check is not cacheable6876 does not call the results store6877 #success?6878 when the execute method has been executed6879 when all the checks succeed6880 returns true6881 when one check fails6882 returns false6883 when execute has not been exectued6884 raises an error6885 #failure_reason6886 when the execute method has been executed6887 when all the checks succeed6888 returns nil6889 when one check fails6890 returns the open reason6891 when execute has not been exectued6892 raises an error6893API::Entities::Ci::JobRequest::Dependency6894 returns the dependency id6895 returns the dependency name6896 returns the token belonging to the running job6897 returns the dependency artifacts_file6898Packages::Helm::IndexPresenter6899 #entries6900 returns the correct hash6901 with an unknown channel6902 is expected to be empty6903 with a nil channel6904 is expected to be empty6905 #api_version6906 is expected to eq "v1"6907 #generated6908 returns the expected format6909 #server_info6910 is expected to eq {"contextPath"=>"/api/v4/projects/1101/packages/helm"}6911 with url encoded project id param6912 is expected to eq {"contextPath"=>"/api/v4/projects/foo%2Fbar/packages/helm"}6913Gitlab::Ci::Status::Build::Action6914 #label6915 when status has action6916 does not append text6917 when status does not have action6918 appends text about action not allowed6919 .matches?6920 when build is playable action6921 is a correct match6922 when build is not playable action6923 does not match6924 #badge_tooltip6925 returns the status6926Gitlab::Database::MigrationHelpers::AnnounceDatabase6927 #announce6928 prefixes message with database name6929 #say6930 prefixes message with database name6931 prefixes subitem message with database name6932 #write6933 does not prefix empty write6934Gitlab::GlobalId6935 .build6936 returns a standard GlobalId if only object is passed6937 returns a GlobalId from params6938 returns a GlobalId from object and `id` param6939 returns a GlobalId from object and `model_name` param6940 returns an error if model_name and id are not able to be determined6941 .as_global_id6942 is the identify function on GlobalID instances6943 wraps URI::GID in GlobalID6944 cannot coerce Integers without a model name6945 can coerce Integers with a model name6946 rejects any other value6947Gitlab::Ci::Pipeline::Expression::Lexeme::String6948 .build6949 creates a new instance of the token6950 .type6951 is a value lexeme6952 .scan6953 when using double quotes6954 correctly identifies string token6955 when using single quotes6956 correctly identifies string token6957 when there are mixed quotes in the string6958 is a greedy scanner for double quotes6959 is a greedy scanner for single quotes6960 allows to use single quotes inside double quotes6961 allow to use double quotes inside single quotes6962 allows to use an empty string inside single quotes6963 allow to use an empty string inside double quotes6964 #evaluate6965 returns string value if it is present6966 returns an empty string if it is empty6967gitlab:lfs rake tasks6968 check6969 outputs the integrity check for each batch6970 errors out about missing files on the file system6971 errors out about invalid checksum6972Integrations::SlackInteractions::IncidentManagement::IncidentModalOpenedService6973 # order random6974 #execute6975 when triggered6976 opens the modal6977 when there are no projects with slack integration6978 does not open the modal6979 when Slack API call raises an HTTP exception6980 tracks the exception and returns an error response6981 when api returns an error6982 returns error when called6983Gitlab::Database::AsyncIndexes::IndexCreator6984 #perform6985 creates the index while controlling statement timeout6986 removes the index preparation record from postgres_async_indexes6987 skips logic if not able to acquire exclusive lease6988 logs messages around execution6989 when the index already exists6990 skips index creation6991 removes the index preparation record from postgres_async_indexes6992 logs an appropriate message6993DataTransfer::ProjectDataTransferFinder6994 # order random6995 #execute6996 returns the correct number of egress6997 returns the correct values6998 when there are no results for specified dates6999 returns nothing7000 when there are no results for specified project7001 returns nothing7002 when dates are not provided7003 return all values for a project7004 when user does not have permissions7005 returns nothing7006Gitlab::Ci::Status::Build::Scheduled7007 #illustration7008 is expected to include :image, :size, and :title7009 #status_tooltip7010 has a placeholder for the remaining time7011 .matches?7012 when build is scheduled and scheduled_at is present7013 is expected to be truthy7014 when build is scheduled7015 is expected to be falsy7016 when scheduled_at is present7017 is expected to be falsy7018Gitlab::MailRoom::Authenticator7019 #verify_api_request7020 verify a valid token7021 returns the decoded payload7022 verify an invalid token7023 returns false7024 verify a valid token but wrong mailbox type7025 returns false7026 verify a valid token but wrong issuer7027 returns false7028 verify a valid token but expired7029 returns false7030 verify a valid token but wrong header field7031 returns false7032 verify headers for a disabled mailbox type7033 returns false7034 verify headers for a non-existing mailbox type7035 returns false7036 #secret7037 the secret is valid7038 returns the memorized secret from a file7039 the secret file is not configured7040 raises a SecretConfigurationError exception7041 the secret file not found7042 raises a SecretConfigurationError exception7043Resolvers::AlertManagement::HttpIntegrationsResolver7044 is expected to have nullable GraphQL type AlertManagementHttpIntegrationConnection7045 user does not have permission7046 is expected to be empty7047 user has developer permission7048 is expected to be empty7049 user has maintainer permission7050 is expected to contain exactly #<AlertManagement::HttpIntegration id: 13, created_at: "2023-05-19 05:54:38.183429586 +0000", updated_at: "2023-05-19 05:54:38.183429586 +0000", project_id: 1117, active: true, encrypted_token: [FILTERED], encrypted_token_iv: "QCNZhG+ligBjE/+H\n", endpoint_identifier: "94eeb12d", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>7051 when HTTP Integration ID is given7052 when integration is from the current project7053 is expected to contain exactly #<AlertManagement::HttpIntegration id: 14, created_at: "2023-05-19 05:54:38.188707626 +0000", updated_at: "2023-05-19 05:54:38.188707626 +0000", project_id: 1117, active: false, encrypted_token: [FILTERED], encrypted_token_iv: "k3LIE5mrJNqluWfT\n", endpoint_identifier: "20ce0f32", name: "DataDog", payload_example: {}, payload_attribute_mapping: {}, type_identifier: "http", token: nil>7054 when integration is from other project7055 is expected to be empty7056Packages::Composer::ComposerJsonService7057 #execute7058 with an existing file7059 with a valid file7060 returns the parsed json7061 with an invalid file7062 raises an error7063 without the composer.json file7064 raises an error7065safe_session_store_patch7066 # order random7067 with ActionController::TestSession7068 behaves like safe session store7069 allows storing a String7070 raises error when session attempts to store an unsafe object7071 allows instance double of OneLogin::RubySaml::Response7072 raises an error for instance double of REXML::Document7073 with ActionDispatch::Request::Session7074 behaves like safe session store7075 allows storing a String7076 raises error when session attempts to store an unsafe object7077 allows instance double of OneLogin::RubySaml::Response7078 raises an error for instance double of REXML::Document7079Users::KeysCountService7080 behaves like a counter caching service7081 #count7082 caches the count7083 #refresh_cache7084 refreshes the cache7085 #delete_cache7086 removes the cache7087 #uncached_count7088 does not cache the count7089 #count7090 returns the number of SSH keys as an Integer7091 does not count signing keys7092 #uncached_count7093 returns the number of SSH keys7094 #cache_key7095 returns the cache key7096WebHooks::LogDestroyWorker7097 #perform7098 with a Web hook7099 deletes the relevant logs7100 is idempotent7101 raises and tracks an error if destroy failed7102 with extra arguments7103 does not raise an error7104 with no arguments7105 does not raise an error7106 with empty arguments7107 does not raise an error7108 with unknown hook7109 does not raise an error7110Gitlab::Kubernetes::ServiceAccountToken7111 is expected to eq "token-name"7112 is expected to eq "a_service_account"7113 is expected to eq "a_namespace"7114 #generate7115 builds a Kubeclient Resource7116clearing redis cache7117 clearing pipeline status cache7118 behaves like clears the cache7119 is expected to change `redis_keys.size` by -17120 clearing set caches7121 repository set7122 behaves like clears the cache7123 is expected to change `redis_keys.size` by -17124 reactive cache set7125 behaves like clears the cache7126 is expected to change `redis_keys.size` by -17127Gitlab::Octokit::Middleware7128 #call7129 when the URL is a public URL7130 behaves like Allowed URL7131 does not raise an error7132 with failed address check7133 behaves like Blocked URL7134 raises an error7135 with disabled dns rebinding check7136 behaves like Allowed URL7137 does not raise an error7138 when the URL is a localhost address7139 when localhost requests are not allowed7140 behaves like Blocked URL7141 raises an error7142 when localhost requests are allowed7143 behaves like Allowed URL7144 does not raise an error7145 when the URL is a local network address7146 when local network requests are not allowed7147 behaves like Blocked URL7148 raises an error7149 when local network requests are allowed7150 behaves like Allowed URL7151 does not raise an error7152 when a non HTTP/HTTPS URL is provided7153 raises an error7154Integrations::GooglePlay7155 # order random7156 when integration is enabled7157 #fields7158 returns custom fields7159 #test7160 returns true for a successful request7161 returns false for an invalid request7162 #help7163 renders prompt information7164 .to_param7165 returns the name of the integration7166 #ci_variables7167 returns vars when the integration is activated7168 when integration is disabled7169 #ci_variables7170 returns an empty array7171 Validations7172 when active7173 is expected to validate that :service_account_key_file_name cannot be empty/falsy7174 is expected to validate that :service_account_key cannot be empty/falsy7175 is expected to validate that :package_name cannot be empty/falsy7176 is expected to allow :service_account_key to be ‹"{\n \"type\": \"service_account\",\n \"project_id\": \"demo-app-123\",\n \"private_key_id\": \"47f0b1700983da548af6fcd37007f42996099999\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJn8w20WcN+fi5\\nIhO1BEFCv7ExK8J5rW5Pc8XpJgpQoL5cfv6qC6aS+x4maI7S4AG7diqXBLCfjlnA\\nqBzXwCRnnPtQhu+v1ehAj5fGNa7F51f9aacRNmKdHzNmWZEPDuLqq0I/Ewcsotu+\\nnb+tCYk1o2ahyPZau8JtXFZs7oZb7SrfgoSJemccxeVreGm1Dt6SM74/3qJAeHN/\\niK/v0IiQP1GS4Jxgz38XQGo+jiTpNrFcf4S0R...›7177 is expected not to allow :service_account_key to be ‹"{\"name\":\"H5bp\",\"path\":\"h5bp\",\"owner_id\":null,\"created_at\":\"2020-01-09 12:08:57 UTC\",\"updated_at\":\"2020-01-09 12:08:57 UTC\",\"description\":\"A voluptate non sequi temporibus quam at.\",\"avatar\":{\"url\":null},\"membership_lock\":false,\"share_with_group_lock\":false,\"visibility_level\":20,\"request_access_enabled\":true,\"ldap_sync_status\":\"ready\",\"ldap_sync_error\":null,\"ldap_sync_last_update_at\":null,\"ldap_sync_last_successful_update_at\":null,\"ldap_sync_last_sync...›7178 is expected to allow :package_name to be ‹"com.example.myapp"›7179 is expected to allow :package_name to be ‹"com.example.myorg.myapp"›7180 is expected to allow :package_name to be ‹"com_us.example.my_org.my_app"›7181 is expected to allow :package_name to be ‹"a.a.a"›7182 is expected to allow :package_name to be ‹"com.example"›7183 is expected not to allow :package_name to be ‹"com"›7184 is expected not to allow :package_name to be ‹"com.example.my app"›7185 is expected not to allow :package_name to be ‹"1com.example.myapp"›7186 is expected not to allow :package_name to be ‹"com.1example.myapp"›7187 is expected not to allow :package_name to be ‹"com.example._myapp"›7188Resolvers::DesignManagement::DesignResolver7189 is expected to have nullable GraphQL type Design7190 #resolve7191 when the user cannot see designs7192 returns nothing7193 when no argument has been passed7194 generates an error7195 when both arguments have been passed7196 generates an error7197 by ID7198 returns the specified design7199 the ID belongs to a design on another issue7200 returns nothing7201 by filename7202 returns the specified design7203 the filename belongs to a design on another issue7204 returns nothing7205Packages::CreateEventService7206 #execute7207 with a user7208 behaves like redis package unique event creation7209 tracks the event7210 behaves like redis package count event creation7211 tracks the event7212 with a deploy token7213 behaves like redis package unique event creation7214 tracks the event7215 behaves like redis package count event creation7216 tracks the event7217 with no user7218 behaves like redis package count event creation7219 tracks the event7220 with a package as scope7221 as guest7222 behaves like redis package count event creation7223 tracks the event7224 with user7225 behaves like redis package unique event creation7226 tracks the event7227 behaves like redis package count event creation7228 tracks the event7229Suggestions::OutdateService7230 #execute7231 when there is a change within multi-line suggestion range7232 updates the outdatable suggestion record7233 when there is no change within multi-line suggestion range7234 does not outdates suggestion record7235Ci::CreatePipelineService7236 #execute7237 with deployment tier7238 creates the environment with the expected tier7239 when tier is testing7240 creates the environment with the expected tier7241 when branch pipeline creates a dynamic environment7242 does not associate merge request with the environment7243 when variables are dependent on stage name7244 creates the pipeline successfully7245Gitlab::SidekiqConfig::Worker7246 #ee?7247 returns the EE status set on creation7248 #jh?7249 returns the JH status set on creation7250 #==7251 defines two workers as equal if their YAML representations are equal7252 returns true when a worker is compared with its YAML representation7253 delegations7254 delegates feature_category_not_owned? to the worker class7255 delegates generated_queue_name to the worker class7256 delegates get_feature_category to the worker class7257 delegates get_weight to the worker class7258 delegates get_worker_resource_boundary to the worker class7259 delegates get_urgency to the worker class7260 delegates queue_namespace to the worker class7261 delegates worker_has_external_dependencies? to the worker class7262 sorting7263 sorts queues with a namespace before those without a namespace7264 sorts alphabetically by queue7265 YAML encoding7266 encodes the worker in YAML as a hash of the queue7267 #namespace_and_weight7268 returns a namespace, weight pair for the worker7269 #queue_and_weight7270 returns a queue, weight pair for the worker7271AlertManagement::Alerts::Todo::CreateService7272 #execute7273 when the user is anonymous7274 behaves like permissions error7275 returns an error7276 when the user does not have permission7277 behaves like permissions error7278 returns an error7279 when user has permission7280 creates a todo7281 returns the alert and todo in the payload7282 when the user has a marked todo for the alert7283 when todo is pending7284 does not create a todo7285 returns an error7286 when todo is done7287 is expected to equal true7288 is expected to change `Todo.count` by 17289AuditEventService7290 #security_event7291 creates an event and logs to a file7292 formats from and to fields7293 when defining created_at manually7294 is overridden successfully7295 authentication event7296 creates an authentication event7297 tracks exceptions when the event cannot be created7298 with IP address7299 from_context: "192.168.0.2", from_author_sign_in: "192.168.0.3", output: "192.168.0.2"7300 is expected to receive new(hash_including(:ip_address=>"192.168.0.2")) 1 time7301 from_context: nil, from_author_sign_in: "192.168.0.3", output: "192.168.0.3"7302 is expected to receive new(hash_including(:ip_address=>"192.168.0.3")) 1 time7303 #log_security_event_to_file7304 logs security event to file7305ExclusiveLeaseGuard7306 #try_obtain_lease7307 obtains the lease, calls internal_method and releases the lease7308 when the lease is already obtained7309 when the class does not override lease_taken_log_level7310 does not call internal_method but logs error7311 when the class overrides lease_taken_log_level to return :info7312 logs info7313 when the class overrides lease_taken_log_level to return :debug7314 logs debug7315 with overwritten lease_release?7316 does not release the lease after execution7317 #exclusive_lease7318 uses the class name as lease key7319 with overwritten lease_key7320 uses the custom lease key7321 #release_lease7322 sends a cancel message to ExclusiveLease7323 #renew_lease!7324 sends a renew message to the exclusive_lease instance7325Packages::Go::Module7326 #path_valid?7327 with root path7328 with major version 07329 returns true7330 with major version 17331 returns true7332 with major version 27333 returns false7334 with path ./v27335 with major version 07336 returns false7337 with major version 17338 returns false7339 with major version 27340 returns true7341 #gomod_valid?7342 with good gomod7343 returns true7344 with bad gomod7345 returns false7346 with empty gomod7347 returns false7348RuboCop::Cop::PutGroupRoutesUnderScope7349 # order random7350 does not register an offense when resource inside the scope7351 does not register an offense for the root route within scope7352 registers an offense when route is outside scope for `put`7353 registers an offense when route is outside scope for `post`7354 registers an offense when route is outside scope for `resource`7355 registers an offense when route is outside scope for `patch`7356 does not register an offense for the root route7357 registers an offense when route is outside scope for `delete`7358 registers an offense when route is outside scope for `get`7359 does not register an offense when resource is deep inside the scope7360 registers an offense when route is outside scope for `resources`7361Gitlab::Kas::UserAccess7362 # order random7363 .cookie_data7364 is encrypted, secure, httponly7365 when on non-root path7366 sets :path7367 when on subdomain7368 sets :domain7369 .{encrypt,decrypt}_public_session_id7370 is expected not to include "the data"7371 is expected to eq "the data"7372 .enabled?7373 is expected to equal true7374 when flag kas_user_access is disabled7375 is expected to equal false7376 .enabled_for?7377 is expected to equal true7378 when flag kas_user_access is disabled7379 is expected to equal false7380 when flag kas_user_access_project is disabled7381 is expected to equal false7382Ci::Pipelines::HookService7383 #execute_hooks7384 HOOK_NAME7385 is expected to eq :pipeline_hooks7386 with pipeline hooks enabled7387 calls pipeline.project.execute_hooks and pipeline.project.execute_integrations7388 with pipeline hooks and integrations disabled7389 does not call pipeline.project.execute_hooks and pipeline.project.execute_integrations7390Packages::Go::ModuleVersion7391 #name7392 with ref and name specified7393 returns that name7394 with ref specified and name unspecified7395 returns the name of the ref7396 with ref and name unspecified7397 returns nil7398 #gomod7399 with go.mod missing7400 returns nil7401 with go.mod present7402 returns the contents of go.mod7403 #files7404 with a root module7405 with an empty module path7406 behaves like #files7407 returns all the files7408 with a root module and a submodule7409 with an empty module path7410 behaves like #files7411 returns files excluding the submodule7412 with the submodule's path7413 behaves like #files7414 returns the submodule's files7415 #archive7416 with a root module7417 with an empty module path7418 behaves like #archive7419 returns an archive of all the files7420 with a root module and a submodule7421 with an empty module path7422 behaves like #archive7423 returns an archive of files excluding the submodule7424 with the submodule's path7425 behaves like #archive7426 returns an archive of the submodule's files7427Metrics::Dashboard::SyncDashboardsWorker7428 .perform7429 with valid dashboard hash7430 imports metrics7431 is idempotent7432 with invalid dashboard hash7433 does not import metrics7434 does not raise an error7435Gitlab::Ci::Reports::Sbom::Component7436 has correct attributes7437 #ingestible?7438 when component_type is invalid7439 is expected to equal false7440 when purl_type is invalid7441 is expected to equal false7442 when component_type is valid7443 component_type: "library"7444 is expected to equal true7445 when purl_type is valid7446 purl_type: "composer"7447 is expected to equal true7448 purl_type: "conan"7449 is expected to equal true7450 purl_type: "gem"7451 is expected to equal true7452 purl_type: "golang"7453 is expected to equal true7454 purl_type: "maven"7455 is expected to equal true7456 purl_type: "npm"7457 is expected to equal true7458 purl_type: "nuget"7459 is expected to equal true7460 purl_type: "pypi"7461 is expected to equal true7462 purl_type: "apk"7463 is expected to equal true7464 purl_type: "rpm"7465 is expected to equal true7466 purl_type: "deb"7467 is expected to equal true7468 purl_type: "cbl_mariner"7469 is expected to equal true7470 when there is no purl7471 is expected to equal true7472Gitlab::SlashCommands::Presenters::IssueComment7473 #present7474 is expected to be a kind of Hash7475 sets ephemeral response type7476 sets the title7477 sets the fallback text7478 sets the fields7479 sets the color7480Resolvers::UserResolver7481 #resolve7482 generates an ArgumentError when both an ID and username are provided7483 when neither an ID or a username is provided7484 generates an ArgumentError7485 by username7486 authenticated access7487 returns the correct user7488 unauthenticated access7489 forbids search7490 by ID7491 authenticated access7492 returns the correct user7493 unauthenticated access7494 forbids search7495Sidebars::UserProfile::Menus::PersonalProjectsMenu7496 # order random7497 behaves like User profile menu7498 does not contain any sub menu7499 renders the correct link7500 renders the correct title7501 renders the correct icon7502 defines correct active route7503 renders if user is logged in7504 when viewed user is blocked7505 when user is not logged in7506 is not allowed to view the menu item7507 when current user has permission7508 is allowed to view the menu item7509 when current user does not have permission7510 is not allowed to view the menu item7511 when viewed user is banned7512 when user is not logged in7513 is not allowed to view the menu item7514 when current user has permission7515 is allowed to view the menu item7516 when current user does not have permission7517 is not allowed to view the menu item7518Gitlab::Ci::Config::External::Rules7519 #evaluate7520 when there is no rule7521 is expected to eq true7522 when there is a rule with if7523 when the rule matches7524 is expected to eq true7525 when the rule does not match7526 is expected to eq false7527 when there is a rule with exists7528 when the file does not exist7529 is expected to eq false7530 when the file exists7531 is expected to eq true7532 when there is a rule with if and when7533 raises an error7534 when there is a rule with changes7535 raises an error7536Autocomplete::ProjectFinder7537 #execute7538 without a project ID7539 returns nil7540 with an empty String as the project ID7541 returns nil7542 with a project ID7543 raises ActiveRecord::RecordNotFound if the project does not exist7544 raises ActiveRecord::RecordNotFound if the user can not read the project7545 raises ActiveRecord::RecordNotFound if an anonymous user can not read the project7546 returns the project if it exists and is readable7547JiraConnect::RetryRequestWorker7548 #perform7549 sends the request, with the appropriate headers7550 when the proxied request fails7551 arranges to retry the request7552 when there are no more attempts left7553 does not retry7554Gitlab::Ci::Build::Credentials::Factory7555 when provider is valid7556 generates an array of credentials objects7557 when provider is not valid7558 generates an array without specific credential object7559AwardEmojis::ToggleService7560 #execute7561 when user has awarded an emoji7562 calls AwardEmojis::DestroyService7563 destroys an AwardEmoji7564 returns the result of DestroyService#execute7565 when user has not awarded an emoji7566 calls AwardEmojis::AddService7567 creates an AwardEmoji7568 returns the result of AddService#execute7569RspecFlaky::Report7570 delegates to #flaky_examples using SimpleDelegator7571 .load7572 loads the report file7573 .load_json7574 loads the report file7575 #initialize7576 accepts a RspecFlaky::FlakyExamplesCollection7577 does not accept anything else7578 #write7579 when RspecFlaky::Config.generate_report? is false7580 does not write any report file7581 when RspecFlaky::Config.generate_report? is true7582 delegates the writes to RspecFlaky::Report7583 #prune_outdated7584 returns a new collection without the examples older than 30 days by default7585 accepts a given number of days7586Database::CiNamespaceMirrorsConsistencyCheckWorker7587 #perform7588 executes the consistency check on namespaces7589 logs should contain the detailed mismatches7590 reports the differences to the logs7591 calls the consistency_fix_service to fix the inconsistencies7592Events::DestroyService7593 #execute7594 deletes the events7595 batch delete7596 splits delete queries into batches7597 when an error is raised while deleting the records7598 returns error7599 does not delete events7600Ci::Runners::ResetRegistrationTokenService#execute7601 with instance scope7602 behaves like a registration token reset operation7603 without user7604 does not reset registration token and returns error response7605 with unauthorized user7606 does not reset registration token and returns error response7607 with admin user7608 resets registration token and returns value unchanged7609 with group scope7610 behaves like a registration token reset operation7611 without user7612 does not reset registration token and returns error response7613 with unauthorized user7614 does not reset registration token and returns error response7615 with admin user7616 resets registration token and returns value unchanged7617 with project scope7618 behaves like a registration token reset operation7619 without user7620 does not reset registration token and returns error response7621 with unauthorized user7622 does not reset registration token and returns error response7623 with admin user7624 resets registration token and returns value unchanged7625Gitlab::Ci::Badge::Coverage::Report7626 #entity7627 describes a coverage7628 #metadata7629 returns correct metadata7630 #template7631 returns correct template7632 #status7633 with no job specified7634 returns the most recent successful pipeline coverage value7635 and no successful pipelines7636 returns nil7637 with a blank job name7638 returns the latest successful pipeline coverage value7639 with an unmatching job name specified7640 returns nil7641 with a matching job name specified7642 returns the pipeline coverage value7643 with a more recent running pipeline7644 returns the running pipeline coverage value7645 with a more recent failed pipeline7646 returns the failed pipeline coverage value7647RebaseWorker#perform7648 when rebasing an MR from a fork where upstream has protected branches7649 sets the correct project for running hooks7650Gitlab::Ci::Config::Entry::PullPolicy7651 #value7652 when config value is nil7653 is expected to be nil7654 when retry value is an empty array7655 is expected to eq nil7656 when retry value is string7657 is expected to eq ["always"]7658 when retry value is array7659 is expected to eq ["always", "if-not-present"]7660 validation7661 when retry value is nil7662 is expected to eq false7663 when retry value is an empty array7664 is expected to eq false7665 when retry value is a hash7666 is expected to eq false7667 when retry value is string7668 is expected to eq true7669 when it is an invalid policy7670 is expected to eq false7671 when it is an empty string7672 is expected to eq false7673 when retry value is array7674 is expected to eq true7675 when config contains an invalid policy7676 is expected to eq false7677Gitlab::Ci::Build::Artifacts::Metadata7678 metadata file exists7679 #find_entries! empty string7680 matches correct paths7681 matches metadata for every path7682 return Hashes for each metadata7683 #find_entries! other_artifacts_0.1.2/7684 matches correct paths7685 #find_entries! other_artifacts_0.1.2/another-subdirectory/7686 matches correct paths7687 #find_entries! recursively for other_artifacts_0.1.2/7688 matches correct paths7689 #to_entry7690 is expected to be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry7691 #full_version7692 is expected to eq "GitLab Build Artifacts Metadata 0.0.1"7693 #version7694 is expected to eq "0.0.1"7695 #errors7696 is expected to eq {}7697 metadata file does not exist7698 #find_entries!7699 raises error7700 metadata file is invalid7701 #find_entries!7702 raises error7703 generated metadata7704 #find_entries!7705 reads expected number of entries7706Packages::Npm7707 .scope_of7708 package_name: nil, expected_result: nil7709 is expected to eq nil7710 package_name: "test", expected_result: nil7711 is expected to eq nil7712 package_name: "@test", expected_result: nil7713 is expected to eq nil7714 package_name: "test/package", expected_result: nil7715 is expected to eq nil7716 package_name: "@/package", expected_result: nil7717 is expected to eq nil7718 package_name: "@test/package", expected_result: "test"7719 is expected to eq "test"7720 package_name: "@test/", expected_result: nil7721 is expected to eq nil7722admin/sessions/two_factor.html.haml7723 user has no two factor auth7724 shows tab7725 user has otp active7726 shows enter otp form7727 user has WebAuthn active7728 shows enter WebAuthn form7729Gitlab::ManifestImport::Metadata7730 #save7731 stores data in Redis with an expiry of EXPIRY_TIME7732 #repositories7733 allows repositories to round-trip with symbol keys7734 uses the fallback when there is nothing in Redis7735 #group_id7736 returns the group ID as an integer7737 uses the fallback when there is nothing in Redis7738Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker7739 #import7740 imports all the pull request reviews7741Import::BulkImportEntity7742 exposes id7743 exposes full_name7744 exposes full_path7745 exposes web_url7746 does not expose unspecified attributes7747DesignManagement::DesignAction7748 validations7749 the design7750 must not be nil7751 the action7752 must not be nil7753 must be a known action7754 the content7755 content is necesary7756 must not be nil if the action is create7757 must not be nil if the action is update7758 content is forbidden7759 must not be nil if the action is delete7760 #gitaly_action7761 the action needs content7762 produces a good gitaly action7763 the action forbids content7764 produces a good gitaly action7765 #issue_id7766 delegates to the design7767 #performed7768 calls design#clear_version_cache when the action has been performed7769RuboCop::Cop::Migration::RemoveColumn7770 # order random7771 when outside of a migration7772 registers no offense7773 when in a regular migration7774 registers an offense when remove_column is used in the change method7775 registers an offense when remove_column is used in the up method7776 registers no offense when remove_column is used in the down method7777 when in a post-deployment migration7778 registers no offense7779admin/groups/_form7780 # order random7781 group runner registration setting7782 runner_registration_enabled: true, valid_runner_registrars: ["group"], checked: true, disabled: false7783 renders the checkbox correctly7784 runner_registration_enabled: false, valid_runner_registrars: ["group"], checked: false, disabled: false7785 renders the checkbox correctly7786 runner_registration_enabled: false, valid_runner_registrars: ["project"], checked: false, disabled: true7787 renders the checkbox correctly7788Gitlab::Ci::Reports::Sbom::Report7789 #valid?7790 when there are no errors7791 is expected to be valid7792 when report contains errors7793 is expected not to be valid7794 #add_error7795 appends errors to a list7796 #set_source7797 stores the source7798 #add_component7799 appends components to a list7800FeatureFlagSummaryEntity7801 has summary information7802PostgreSQL registered types7803 includes custom and standard OIDs7804 includes custom and standard types7805Gitlab::FormBuilders::GitlabUiFormBuilder7806 #submit7807 without pajamas_button enabled7808 renders a submit input7809 with pajamas_button enabled7810 renders a submit button7811 #gitlab_ui_checkbox_component7812 when not using slots7813 without optional arguments7814 renders correct html7815 with optional arguments7816 renders help text7817 with checkbox_options: { multiple: true }7818 renders labels with correct for attributes7819 when using slots7820DEPRECATION WARNING: Setting a slot with `#label` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_label` to set the slot instead) (called from help_text_content at /builds/gitlab-org/gitlab/app/components/pajamas/checkbox_component.rb:56)7821DEPRECATION WARNING: Setting a slot with `#help_text` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_help_text` to set the slot instead) (called from help_text_content at /builds/gitlab-org/gitlab/app/components/pajamas/checkbox_component.rb:56)7822 renders correct html7823 #gitlab_ui_radio_component7824 when not using slots7825 without optional arguments7826 renders correct html7827 with optional arguments7828 renders help text7829 when using slots7830DEPRECATION WARNING: Setting a slot with `#label` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_label` to set the slot instead) (called from help_text_content at /builds/gitlab-org/gitlab/app/components/pajamas/radio_component.rb:48)7831DEPRECATION WARNING: Setting a slot with `#help_text` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_help_text` to set the slot instead) (called from help_text_content at /builds/gitlab-org/gitlab/app/components/pajamas/radio_component.rb:48)7832 renders correct html7833 #gitlab_ui_datepicker7834 without optional arguments7835 renders correct html7836 with optional arguments7837 renders correct html7838Gitlab::Checks::MatchingMergeRequest7839 #match?7840 matches a merge request7841 does not match any merge request7842 with load balancing enabled7843 behaves like secondary that has caught up to a primary7844 continues to use the secondary7845 only increments total counter7846 on secondary behind primary7847 behaves like secondary that is lagging primary7848 sticks to the primary7849 increments both total and stale counters7850Projects::EnableDeployKeyService7851 enables the key7852 trying to add an unaccessable key7853 returns nil if the key cannot be added7854 add the same key twice7855 returns existing key7856Types::Metrics::Dashboards::AnnotationType7857 is expected to eq "MetricsDashboardAnnotation"7858 has the expected fields7859 is expected to require graphql authorizations :read_metrics_dashboard_annotation7860BlobLanguageFromGitAttributes7861 #language_from_gitattributes7862 returns return value from gitattribute7863 returns nil if repository is absent7864 returns nil if repository does not exist7865Gitlab::GitalyClient::RemoteService7866 #find_remote_root_ref7867 sends an find_remote_root_ref message and returns the root ref7868 ensure ref is a valid UTF-8 string7869 #update_remote_mirror7870 sends an update_remote_mirror message7871 .exists?7872 when the remote doesn't exist7873 returns false7874Gitlab::Ci::Build::DurationParser7875 .validate_duration7876 with never7877 is expected to be truthy7878 with never value camelized7879 is expected to be truthy7880 with a duration7881 is expected to be truthy7882 caches data7883 without a duration7884 is expected to be falsy7885 caches data7886 #seconds_from_now7887 with never7888 is expected to be nil7889 with an empty string7890 is expected to be nil7891 with a duration7892 is expected to within one second of 2023-05-20 05:56:08 UTC7893Banzai::IssuableExtractor7894 returns instances of issuables for nodes with references7895 caching7896 saves records to cache7897Types::Kas::AgentMetadataType7898 is expected to eq "AgentMetadata"7899 is expected to eq "Information about a connected Agent"7900 is expected to have graphql fields :version, :commit, :pod_namespace, and :pod_name7901RuboCop::Cop::Migration::ReferToIndexByName7902 # order random7903 when in migration7904 when existing indexes are referred to without an explicit name7905 registers an offense7906 when outside migration7907 registers no offenses7908Mutations::UserCallouts::Create7909 #resolve7910 when feature name is not supported7911 does not create a user callout7912 returns error about feature name not being supported7913 when feature name is supported7914 creates a user callout7915 sets dismissed_at for the user callout7916 has no errors7917Gitlab::HookData::KeyBuilder7918 #build7919 for keys that belong to a user7920 data7921 on create7922 is expected to eq "key_create"7923 is expected to eq "user2109"7924 behaves like includes the required attributes7925 includes the required attributes7926 on destroy7927 is expected to eq "key_destroy"7928 is expected to eq "user2109"7929 behaves like includes the required attributes7930 includes the required attributes7931 for keys that do not belong to a user7932 data7933 on create7934 is expected to eq "key_create"7935 behaves like includes the required attributes7936 includes the required attributes7937 on destroy7938 is expected to eq "key_destroy"7939 behaves like includes the required attributes7940 includes the required attributes7941Gitlab::AlertManagement::Fingerprint7942 .generate7943 when data is an array7944 returns the hashed fingerprint7945 with a variety of data7946 data: 1117947 performs like a hashed fingerprint7948 data: "fingerprint"7949 performs like a hashed fingerprint7950 data: :fingerprint7951 performs like a hashed fingerprint7952 data: true7953 performs like a hashed fingerprint7954 when data is a hash7955 behaves like fingerprinted Hash7956 performs like a hashed fingerprint7957 hashes with different order7958 calculates the same result7959 hash is too large7960 raises an error7961Groups::AcceptingProjectCreationsFinder7962 # order random7963 #execute7964 only returns groups where the user has access to create projects7965Types::WorkItems::Widgets::AssigneesInputType7966 is expected to eq "WorkItemWidgetAssigneesInput"7967 is expected to contain exactly "assigneeIds"7968groups/_home_panel7969 renders the group ID7970 admin area link7971 renders admin area link for admin7972 does not render admin area link for non-admin7973 does not render admin area link for anonymous7974Resolvers::ProjectResolver7975 does not increase complexity depending on number of load limits7976 #resolve7977 batch-resolves projects by full path7978 resolves an unknown full_path to nil7979 treats project full path as case insensitive7980Gitlab::ContainerRepository::Tags::Cache7981 #populate7982 with tags7983 gets values from redis7984 with cached values7985 gets values from redis7986 with no tags7987 behaves like not interacting with redis7988 does not interact with redis7989 #insert7990 with tags7991 inserts values in redis7992 with some of them already cached7993 behaves like not interacting with redis7994 does not interact with redis7995 with no tags7996 behaves like not interacting with redis7997 does not interact with redis7998 with no expires_in7999 behaves like not interacting with redis8000 does not interact with redis8001notify/changed_milestone_email.html.haml8002 milestone without start and due dates8003 renders without date range8004 milestone with start and due dates8005 renders with date range8006Gitlab::Database::ConnectionTimer8007 .starting_now8008 when the configured interval is positive8009 randomizes the interval of the created timer8010 when the configured interval is not positive8011 sets the interval of the created timer to nil8012 .expired?8013 when the interval is positive8014 when the interval has elapsed8015 returns true8016 when the interval has not elapsed8017 returns false8018 when the interval is not positive8019 when the interval has elapsed8020 returns false8021 when the interval has not elapsed8022 returns false8023 when the interval is nil8024 returns false8025 .reset!8026 updates the timer clock value8027Gitlab::GithubImport::IssuableFinder8028 #database_id8029 returns nil when no cache is in place8030 returns the ID of an issuable when the cache is in place8031 raises TypeError when the object is not supported8032 when group is present8033 when settings single_endpoint_notes_import is enabled8034 reads cache value with longer timeout8035 when settings single_endpoint_notes_import is disabled8036 reads cache value with default timeout8037 #cache_database_id8038 caches the ID of a database row8039 when settings single_endpoint_notes_import is enabled8040 caches value with longer timeout8041 when settings single_endpoint_notes_import is disabled8042 caches value with default timeout8043Packages::Nuget::CreateDependencyService8044 #execute8045 behaves like creating dependencies, links and nuget metadata for8046 creates dependencies, links and nuget metadata8047 with existing dependencies8048 behaves like creating dependencies, links and nuget metadata for8049 creates dependencies, links and nuget metadata8050 with dependencies with no target framework8051 behaves like creating dependencies, links and nuget metadata for8052 creates dependencies, links and nuget metadata8053 with empty dependencies8054 is a no op8055Projects::ScheduleBulkRepositoryShardMovesService8056 behaves like moves repository shard in bulk8057 #execute8058 schedules container repository storage moves8059 read-only repository8060 does not get scheduled8061 .enqueue8062 defers to the worker8063AnalyticsSummarySerializer8064 generates payload for single object8065 contains important elements of AnalyticsStage8066 does not include unit8067 when representing with unit8068 contains unit8069Gitlab::JiraImport::Stage::ImportNotesWorker8070 modules8071 behaves like include import workers modules8072 is expected to includes the ApplicationWorker module8073 is expected to includes the Gitlab::JiraImport::QueueOptions module8074 is expected to includes the Gitlab::JiraImport::ImportWorker module8075 #perform8076 when import did not start8077 behaves like cannot do Jira import8078 does not advance to next stage8079 behaves like does not advance to next stage8080 does not advance to next stage8081 when import started8082 behaves like advance to next stage8083 advances to finish stage8084ErrorTracking::BaseService8085 #compose_response8086 returns bad_request error when response has an error key8087 returns server error when response has missing key error_type8088 returns no content when response is nil8089 when result has no errors key8090 raises NotImplementedError8091 when parse_response is implemented8092 returns successful response8093 returns successful response with changes from passed block8094 when tracking_event is provided8095 behaves like tracking unique hll events8096 tracks unique event8097Ci::Runners::StaleMachinesCleanupCronWorker8098 # order random8099 #perform8100 behaves like an idempotent worker8101 is labeled as idempotent8102 performs multiple times sequentially without raising an exception8103 delegates to Ci::Runners::StaleMachinesCleanupService8104 cleans up stale runner managers8105BlameHelper8106 #get_age_map_start_date8107 returns the earliest date from a blame group8108 returns the earliest date from a project8109 #age_map_class8110 returns blame-commit-age-9 when oldest8111 returns blame-commit-age-0 class when newest8112 when called on the same day as project creation8113 returns blame-commit-age-0 class8114 #entire_blame_path8115 is expected to eq "/namespace1169/project-1263/-/blame/main/README.md/streaming"8116Sidebars::UserSettings::Menus::ProfileMenu8117 # order random8118 behaves like User settings menu8119 does not contain any sub menu8120 renders the correct link8121 renders the correct title8122 renders the correct icon8123 defines correct active route8124 behaves like User settings menu #render? method8125 #render?8126 when user is logged in8127 renders8128 when user is not logged in8129 does not render8130Ci::TrackFailedBuildWorker8131 #perform8132 when a build has failed8133 executes track service8134 behaves like an idempotent worker8135 is labeled as idempotent8136 performs multiple times sequentially without raising an exception8137ContainerTagEntity8138 exposes required informations8139 when user can manage repositories8140 exposes destroy_path8141 when user cannot manage repositories8142 does not expose destroy_path8143Gitlab::DependencyLinker::RequirementsTxtLinker8144 .support?8145 supports requirements.txt8146 supports doc-requirements.txt8147 does not support other files8148 #link8149 links dependencies8150 links URLs8151 does not contain link with a newline as package name8152Keys::CreateService8153 creates a key8154 notification8155 sends a notification8156Resolvers::Clusters::Agents::Authorizations::CiAccessResolver8157 # order random8158 is expected to eq Types::Clusters::Agents::Authorizations::CiAccessType8159 is expected to be truthy8160 #resolve8161 calls the finder8162registrations/welcome/show8163DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)8164 is expected not to have visible css "label[for=\"user_setup_for_company\"]"8165DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)8166 is expected to have visible button "Get started!" that is not disabled8167DEPRECATION WARNING: Setting a slot with `#body` is deprecated and will be removed from ViewComponent 3.0.0 (use `#with_body` to set the slot instead) (called from call at /builds/gitlab-org/gitlab/app/components/pajamas/card_component.html.haml:2)8168 is expected not to have visible css "input[name=\"user[email_opted_in]\"]"8169API::Helpers::InternalHelpers8170 # order random8171 log user git operation activity8172 when git pull/fetch/clone action8173 with log the user activity8174 behaves like handles log git operation activity8175 log the user activity8176 when git push action8177 does not log the user activity when log_user_git_push_activity is disabled8178 with log the user activity when log_user_git_push_activity is enabled8179 behaves like handles log git operation activity8180 log the user activity8181Gitlab::Search::AbuseValidators::NoAbusiveCoercionFromStringValidator8182 attribute_value: ["this is an arry"], valid?: false8183 is expected to receive message chain errors.add8184 attribute_value: {:this=>"is a hash"}, valid?: false8185 is expected to receive message chain errors.add8186 attribute_value: 123, valid?: false8187 is expected to receive message chain errors.add8188 attribute_value: 456.78, valid?: false8189 is expected to receive message chain errors.add8190 attribute_value: "now this is a string", valid?: true8191 is expected not to receive errors(*(any args)) 0 times8192projects/runners/_project_runners.html.haml8193 # order random8194 render8195 when create_runner_workflow_for_namespace is disabled8196 when project runner registration is allowed8197 enables the Remove project button for a project8198 when project runner registration is not allowed8199 does not enable the Remove project button for a project8200 when create_runner_workflow_for_namespace is enabled8201 when user can create project runner8202 renders the New project runner button8203 when user cannot create project runner8204 does not render the New project runner button8205Gitlab::LetsEncrypt::Challenge8206 #status8207 delegates to Acme::Client::Resources::Challenge8208 #token8209 delegates to Acme::Client::Resources::Challenge8210 #file_content8211 delegates to Acme::Client::Resources::Challenge8212 #request_validation8213 delegates to Acme::Client::Resources::Challenge8214 #error8215 delegates to Acme::Client::Resources::Challenge8216Rails YAML safe load8217 # order random8218 with default permitted classes8219 deserializes data8220 with unpermitted classes8221 throws an exception8222DataList8223 #to_array8224 returns current data8225ProjectAccessTokenEntity8226 when bot is a member of the project8227 has the correct attributes8228 when bot is unrelated to the project8229 has the correct attributes8230Gitlab::Usage::Metrics::Instrumentations::GitlabForJiraAppProxyInstallationsCountMetric8231 # order random8232 behaves like a correct instrumented metric value and query8233 behaves like a correct instrumented metric value8234 has correct value8235 behaves like a correct instrumented metric query8236 has correct generate query8237Types::MilestoneType8238 is expected to eq "Milestone"8239 is expected to require graphql authorizations :read_milestone8240 has the expected fields8241 stats field8242 is expected to have graphql type Types::MilestoneStatsType8243Gitlab::ImportExport::Error8244 .permission_error8245 when supplied a project8246 returns an error with the correct message8247 when supplied a group8248 returns an error with the correct message8249Types::Notes::SystemNoteMetadataType8250 # order random8251 is expected to have graphql field :description_version8252 is expected to have graphql field :id8253 is expected to require graphql authorizations :read_note8254 is expected to have graphql field :action8255devise/shared/_signin_box8256 Crowd form8257 is shown when Crowd is enabled8258 is not shown when Crowd is disabled8259 Base form8260 renders user_login label8261Gitlab::Graphql::Pagination::Connections8262-- create_table(:_test_testing_pagination_nodes, {:force=>true})8263 -> 0.0162s8264 OffsetPaginatedRelation8265 maps to Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection8266 ActiveRecord::Relation8267 maps to Gitlab::Graphql::Pagination::Keyset::Connection8268 ExternallyPaginatedArray8269 maps to Gitlab::Graphql::Pagination::ExternallyPaginatedArrayConnection8270 Array8271 maps to Gitlab::Graphql::Pagination::ArrayConnection8272-- drop_table(:_test_testing_pagination_nodes, {:force=>true})8273 -> 0.0029s8274countries8275 # order random8276 initialises Ukraine with custom country name8277 initialises Taiwan with custom country name8278 configures locals to EN8279Gitlab::Metrics::Delta8280 #compared_with8281 returns the delta as a Numeric8282 bases the delta on a previously used value8283Resolvers::BaseResolver.single8284 #resolve8285 with unauthorized user8286 is expected to be nil8287 when authorized8288 is expected to eq #<List id: 5, board_id: 2, label_id: 19, list_type: "label", position: 1, created_at: "2023-05-19 05:56:48.763794670 +0000", updated_at: "2023-05-19 05:56:48.763794670 +0000", user_id: nil, milestone_id: nil, max_issue_count: 0, max_issue_weight: 0, limit_metric: nil, iteration_id: nil>8289FeatureFlagEntity8290 has feature flag attributes8291Gitlab::Ci::Status::Group::Common8292 does not have action8293 has details8294 has no details_path8295RuboCop::Cop::Migration::BackgroundMigrationRecord8296 # order random8297 outside of a migration8298 does not register any offenses8299 in migration8300 adds an offense if inheriting from ActiveRecord::Base8301 adds an offense if create dynamic model from ActiveRecord::Base8302 adds an offense if inheriting from ::ActiveRecord::Base8303API::Github::Entities8304 API::Github::Entities::User8305 aggregate_failures8306 with avatar8307 is expected to include "http://localhost/uploads/-/system/user/avatar/"8308Tooling::Danger::Specs::MatchWithArraySuggestion8309 # order random8310 adds suggestions at the correct lines8311UserPreferences::UpdateService8312 #execute8313 successfully updating the record8314 updates the preference and returns a success8315 unsuccessfully updating the record8316 returns an error8317Integrations::ProjectSerializer8318 represents Integrations::ProjectEntity entities8319Types::AlertManagement::IntegrationType8320 is expected to eq "AlertManagementIntegration"8321 exposes the expected fields8322RuboCop::Cop::Graphql::GraphqlNamePosition8323 # order random8324 adds an offense when graphql_name is not on the first line8325 does not add an offense for classes that have no call to graphql_name8326 does not add an offense for classes that only call graphql_name8327AnyFieldValidator8328 when validation is instantiated correctly8329 raises an error if no fields are defined8330 validates if only one field is present8331 when validation is missing the fields parameter8332 raises an error8333MilestonePresenter8334 #milestone_path8335 returns correct path8336Gitlab::Instrumentation::RateLimitingGates8337 .gates8338 returns an empty array when no gates are tracked8339 returns all gates used in the request8340 deduplicates its results8341 .payload8342 returns the gates in a hash8343Gitlab::Audit::UnauthenticatedAuthor8344 #initialize8345 sets correct attributes8346 sets default name when it is not provided8347 #impersonated?8348 returns false8349Gitlab::Metrics::Dashboard::Defaults8350 is expected to be const defined :DEFAULT_PANEL_TYPE8351Mutations::Members::BulkUpdateBase8352 # order random8353 raises a NotImplementedError error if the source_type method is called on the base class8354Types::WorkItems::Widgets::NotesType8355 # order random8356 exposes the expected fields8357Gitlab::Diff::SuggestionDiff8358 #diff_lines8359 returns diff lines with correct line numbers8360 when the suggestion is for the last line of a file8361 returns a correct value if there is no newline at the end of the file8362Gitlab::Ci::Reports::Security::Flag8363 #initialize8364 when all params are given8365 initializes an instance8366 #to_h8367 returns expected hash8368 #false_positive?8369 is expected to be truthy8370Types::Ci::TestSuiteType8371 is expected to eq "TestSuite"8372 contains attributes related to a pipeline test suite8373TestReportsComparerSerializer8374 #to_json8375 when head and base reports include two test suites8376 when the status of head report is success8377 matches the schema8378 when the status of head report is failed8379 matches the schema8380 when the status of head report is resolved8381 matches the schema8382Keys::DestroyService8383 destroys a key8384Gitlab::UsageDataCounters::ServiceUsageDataCounter8385 behaves like a redis usage counter8386 .count(download_payload_click)8387 increments the Service Usage Data download_payload_click counter by 18388 .read(download_payload_click)8389 returns the total number of download_payload_click events8390RuboCop::Cop::AvoidRouteRedirectLeadingSlash8391 # order random8392 registers an offense when redirect has a leading slash and corrects8393 does not register an offense when redirect does not have a leading slash8394Gitlab::Usage::Metrics::NamesSuggestions::RelationParsers::Joins8395 #accept8396 with join added via string8397 collects join parts8398 with join added via arel node8399 collects join parts8400Gitlab::Usage::Metrics::Instrumentations::EditionMetric8401 # order random8402 behaves like a correct instrumented metric value8403 has correct value8404Types::X509IssuerType8405 # order random8406 is expected to eq "X509Issuer"8407 contains attributes for X.509 issuers8408Types::ResolvableInterface8409 exposes the expected fields8410Gitlab::SidekiqMiddleware::SizeLimiter::ExceedLimitError8411 encapsulates worker info8412Mutations::ResolvesGroup8413 uses the GroupsResolver to resolve groups by path8414Types::Ci::TestReportTotalType8415 is expected to eq "TestReportTotal"8416 contains attributes related to a pipeline test report summary8417Gitlab::Git::Conflict::Resolver8418 #conflicts8419 returns list of conflicts8420 when GRPC::FailedPrecondition is raised8421 rescues and raises Gitlab::Git::Conflict::Resolver::ConflictSideMissing8422DeployTokensHelper8423 #deploy_token_revoke_button_data8424 returns expected hash8425Peek::Views::ActiveRecord8426 includes db role data and db_config_name name8427Gitlab::Ci::Config::External::Mapper::Normalizer8428 # order random8429 #process8430 converts locations to canonical form8431Types::MergeRequestReviewStateEnum8432 the correct enum members8433RuboCop::Cop::Gitlab::Except8434 # order random8435 flags the use of Gitlab::SQL::Except.new8436Packages::Rpm::RepositoryMetadata::BuildPrimaryXmlService8437 # order random8438 #execute8439 adds node with required_text_only_attributes8440Knapsack report was generated. Preview:8441{8442 "spec/policies/issue_policy_spec.rb": 298.79256055800005,8443 "spec/services/members/destroy_service_spec.rb": 160.55927208499998,8444 "spec/services/groups/destroy_service_spec.rb": 104.11110483200002,8445 "spec/models/clusters/platforms/kubernetes_spec.rb": 61.08122270199999,8446 "spec/models/work_items/parent_link_spec.rb": 50.08627304700008,8447 "spec/models/integration_spec.rb": 27.4119621320001,8448 "spec/lib/gitlab/project_authorizations_spec.rb": 47.874867070999926,8449 "spec/services/issues/create_service_spec.rb": 46.163019145000135,8450 "spec/finders/ci/runners_finder_spec.rb": 20.294506773000194,8451 "spec/models/diff_note_spec.rb": 35.11878336200016,8452 "spec/finders/branches_finder_spec.rb": 29.187257720999924,8453 "spec/uploaders/job_artifact_uploader_spec.rb": 28.782487457999878,8454 "spec/models/integrations/bamboo_spec.rb": 13.426282414999832,8455 "spec/rubocop/cop/migration/create_table_with_foreign_keys_spec.rb": 6.430087290999836,8456 "spec/lib/gitlab/email/message/repository_push_spec.rb": 25.64995718499995,8457 "spec/models/pages_domain_spec.rb": 5.622258040000133,8458 "spec/helpers/diff_helper_spec.rb": 4.37834492900015,8459 "spec/models/push_event_spec.rb": 17.98546503500006,8460 "spec/models/internal_id_spec.rb": 11.443061459000091,8461 "spec/services/projects/update_repository_storage_service_spec.rb": 18.635810192999998,8462 "spec/policies/blob_policy_spec.rb": 12.772389687999976,8463 "spec/services/users/build_service_spec.rb": 4.224482654999974,8464 "spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb": 16.441301028999987,8465 "spec/services/merge_requests/conflicts/resolve_service_spec.rb": 14.282111572000076,8466 "spec/lib/gitlab/email/receiver_spec.rb": 3.807941210000081,8467 "spec/models/packages/debian/group_distribution_spec.rb": 5.135280117000093,8468 "spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb": 14.989400255999954,8469 "spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb": 20.089959522000072,8470 "spec/lib/gitlab/ci/variables/builder_spec.rb": 7.96168475200011,8471 "spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb": 8.83009372399988,8472 "spec/models/ci/build_metadata_spec.rb": 7.288984548000144,8473 "spec/lib/gitlab/import_export/merge_request_parser_spec.rb": 10.438688661000015,8474 "spec/helpers/members_helper_spec.rb": 12.220417133999945,8475 "spec/lib/gitlab/email/handler/create_note_on_issuable_handler_spec.rb": 11.264708606999875,8476 "spec/serializers/diffs_entity_spec.rb": 11.54999930200006,8477 "spec/graphql/mutations/merge_requests/create_spec.rb": 8.713191313000152,8478 "spec/views/projects/_home_panel.html.haml_spec.rb": 10.42190172000005,8479 "spec/services/merge_requests/resolved_discussion_notification_service_spec.rb": 7.507179501999872,8480 "spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb": 8.159473356000035,8481 "spec/models/alert_management/http_integration_spec.rb": 5.217618289000029,8482 "spec/services/issues/resolve_discussions_spec.rb": 9.140774238999938,8483 "spec/lib/api/helpers/packages_helpers_spec.rb": 2.612783923000052,8484 "spec/lib/gitlab/ci/variables/collection/sort_spec.rb": 1.3426680069999293,8485 "spec/workers/stuck_merge_jobs_worker_spec.rb": 6.534841742000026,8486 "spec/models/snippet_input_action_spec.rb": 2.00514492100001,8487 "spec/lib/gitlab/content_security_policy/config_loader_spec.rb": 1.284761215999879,8488 "spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb": 2.5725194730000567,8489 "spec/models/ci/variable_spec.rb": 5.059928162999995,8490 "spec/services/commits/cherry_pick_service_spec.rb": 6.921604660999947,8491 "spec/lib/gitlab/quick_actions/extractor_spec.rb": 2.235193246000108,8492 "spec/services/security/ci_configuration/container_scanning_create_service_spec.rb": 4.4583571499999834,8493 "spec/lib/sbom/package_url/argument_validator_spec.rb": 1.8507691180000165,8494 "spec/db/docs_spec.rb": 3.2955757070001255,8495 "spec/tasks/gitlab/service_desk_email_rake_spec.rb": 4.0364103819999855,8496 "spec/lib/gitlab/ci/status/build/waiting_for_approval_spec.rb": 4.593918282999994,8497 "spec/lib/grafana/client_spec.rb": 2.053539252000064,8498 "spec/lib/gitlab_spec.rb": 2.480326349999814,8499 "spec/lib/gitlab/redis/repository_cache_spec.rb": 2.1445240739999463,8500 "spec/graphql/resolvers/container_repositories_resolver_spec.rb": 5.01123217899999,8501 "spec/initializers/lograge_spec.rb": 2.734804811999993,8502 "spec/models/ml/experiment_spec.rb": 2.3397322870000608,8503 "spec/workers/users/deactivate_dormant_users_worker_spec.rb": 4.199858684999981,8504 "spec/workers/ci/archive_traces_cron_worker_spec.rb": 5.085762728000191,8505 "spec/lib/mattermost/session_spec.rb": 2.947004574000175,8506 "spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_cta_clicked_metric_spec.rb": 5.583597595000128,8507 "spec/models/jira_connect/public_key_spec.rb": 2.2046053389999543,8508 "spec/services/groups/nested_create_service_spec.rb": 3.9732508139998117,8509 "spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb": 4.021834201000047,8510 "spec/services/packages/debian/process_changes_service_spec.rb": 5.974887701000171,8511 "spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb": 1.7223908700000266,8512 "spec/lib/gitlab/external_authorization/client_spec.rb": 1.460852722000027,8513 "spec/services/members/unassign_issuables_service_spec.rb": 4.210093815000164,8514 "spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb": 1.0922087550000015,8515 "spec/services/feature_flags/update_service_spec.rb": 2.7021079649998683,8516 "spec/lib/gitlab/hook_data/user_builder_spec.rb": 0.9899102639999455,8517 "spec/services/import_csv/base_service_spec.rb": 1.269699189999983,8518 "spec/models/concerns/sortable_spec.rb": 2.4942903930000284,8519 "spec/services/ci/delete_objects_service_spec.rb": 3.631419464999908,8520 "spec/views/projects/commit/_commit_box.html.haml_spec.rb": 5.488670862999925,8521 "spec/services/wiki_pages/event_create_service_spec.rb": 1.6941139719999683,8522 "spec/helpers/dashboard_helper_spec.rb": 0.9778976190000321,8523 "spec/tasks/gitlab/password_rake_spec.rb": 2.7699123730001247,8524 "spec/services/merge_requests/handle_assignees_change_service_spec.rb": 5.295648286999949,8525 "spec/services/merge_requests/mergeability/run_checks_service_spec.rb": 4.1724178409999695,8526 "spec/lib/api/entities/ci/job_request/dependency_spec.rb": 5.102386004999971,8527 "spec/presenters/packages/helm/index_presenter_spec.rb": 1.1760906710001109,8528 "spec/lib/gitlab/ci/status/build/action_spec.rb": 2.086765714999956,8529 "spec/lib/gitlab/database/migration_helpers/announce_database_spec.rb": 0.3970387029999074,8530 "spec/lib/gitlab/global_id_spec.rb": 1.0137161859997832,8531 "spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb": 1.1420097539999006,8532 "spec/tasks/gitlab/lfs/check_rake_spec.rb": 2.8750548119999166,8533 "spec/services/integrations/slack_interactions/incident_management/incident_modal_opened_service_spec.rb": 1.5826889720001418,8534 "spec/lib/gitlab/database/async_indexes/index_creator_spec.rb": 1.0297311930000888,8535 "spec/finders/data_transfer/project_data_transfer_finder_spec.rb": 1.9347434199999043,8536 "spec/lib/gitlab/ci/status/build/scheduled_spec.rb": 3.3242338600000494,8537 "spec/lib/gitlab/mail_room/authenticator_spec.rb": 1.0335480639998877,8538 "spec/graphql/resolvers/alert_management/http_integrations_resolver_spec.rb": 3.1732284039999286,8539 "spec/services/packages/composer/composer_json_service_spec.rb": 2.2647659490000933,8540 "spec/initializers/safe_session_store_patch_spec.rb": 0.7076002339999832,8541 "spec/services/users/keys_count_service_spec.rb": 2.0661048079998636,8542 "spec/workers/web_hooks/log_destroy_worker_spec.rb": 1.8351234389999718,8543 "spec/lib/gitlab/kubernetes/service_account_token_spec.rb": 0.46064076700008627,8544 "spec/tasks/cache/clear/redis_spec.rb": 4.151014153999995,8545 "spec/lib/gitlab/octokit/middleware_spec.rb": 2.26972549900006,8546 "spec/models/integrations/google_play_spec.rb": 1.3538194840000415,8547 "spec/graphql/resolvers/design_management/design_resolver_spec.rb": 3.160654585999964,8548 "spec/services/packages/create_event_service_spec.rb": 2.4376656829999774,8549 "spec/services/suggestions/outdate_service_spec.rb": 4.1875914419999845,8550 "spec/services/ci/create_pipeline_service/environment_spec.rb": 2.9796396970000387,8551 "spec/lib/gitlab/sidekiq_config/worker_spec.rb": 1.0157925259998137,8552 "spec/services/alert_management/alerts/todo/create_service_spec.rb": 1.911257876000036,8553 "spec/services/audit_event_service_spec.rb": 1.8323081250000541,8554 "spec/services/concerns/exclusive_lease_guard_spec.rb": 0.7981026009999823,8555 "spec/models/packages/go/module_spec.rb": 3.1094093330000305,8556 "spec/rubocop/cop/put_group_routes_under_scope_spec.rb": 1.098470528000007,8557 "spec/lib/gitlab/kas/user_access_spec.rb": 0.9116286680000485,8558 "spec/services/ci/pipelines/hook_service_spec.rb": 1.4217453710000427,8559 "spec/models/packages/go/module_version_spec.rb": 2.118826563000084,8560 "spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb": 2.762319122000008,8561 "spec/lib/gitlab/ci/reports/sbom/component_spec.rb": 0.9615693719999854,8562 "spec/lib/gitlab/slash_commands/presenters/issue_comment_spec.rb": 0.9730919409998933,8563 "spec/graphql/resolvers/user_resolver_spec.rb": 0.8666801540000506,8564 "spec/lib/sidebars/user_profile/menus/personal_projects_menu_spec.rb": 1.2884862870000688,8565 "spec/lib/gitlab/ci/config/external/rules_spec.rb": 2.191837294999914,8566 "spec/finders/autocomplete/project_finder_spec.rb": 2.1402853609999966,8567 "spec/workers/jira_connect/retry_request_worker_spec.rb": 0.6180949409999812,8568 "spec/lib/gitlab/ci/build/credentials/factory_spec.rb": 1.7170436880001034,8569 "spec/services/award_emojis/toggle_service_spec.rb": 2.661356201999979,8570 "spec/tooling/rspec_flaky/report_spec.rb": 0.7861539119999179,8571 "spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb": 2.8186160539999037,8572 "spec/services/events/destroy_service_spec.rb": 2.0648155999999744,8573 "spec/services/ci/runners/reset_registration_token_service_spec.rb": 1.325444212000093,8574 "spec/lib/gitlab/ci/badge/coverage/report_spec.rb": 1.611306739000156,8575 "spec/workers/rebase_worker_spec.rb": 2.8597820710001542,8576 "spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb": 0.7242639790001704,8577 "spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb": 0.9325483259999601,8578 "spec/models/packages/npm_spec.rb": 0.6735009540000192,8579 "spec/views/admin/sessions/two_factor.html.haml_spec.rb": 1.2162176140000156,8580 "spec/lib/gitlab/manifest_import/metadata_spec.rb": 0.5292651199999909,8581 "spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb": 0.740290228000049,8582 "spec/serializers/import/bulk_import_entity_spec.rb": 0.42339920199992775,8583 "spec/models/design_management/design_action_spec.rb": 0.8986356799998703,8584 "spec/rubocop/cop/migration/remove_column_spec.rb": 0.7517690160000257,8585 "spec/views/admin/groups/_form.html.haml_spec.rb": 0.900928969000006,8586 "spec/lib/gitlab/ci/reports/sbom/report_spec.rb": 0.8199155689999316,8587 "spec/serializers/feature_flag_summary_entity_spec.rb": 1.0743925009999202,8588 "spec/initializers/0_postgresql_types_spec.rb": 0.6715250749998631,8589 "spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb": 0.8917099210000288,8590 "spec/lib/gitlab/checks/matching_merge_request_spec.rb": 1.735735036000051,8591 "spec/services/projects/enable_deploy_key_service_spec.rb": 2.0479379509999944,8592 "spec/graphql/types/metrics/dashboards/annotation_type_spec.rb": 0.5159638319998976,8593 "spec/models/concerns/blob_language_from_git_attributes_spec.rb": 0.4769733170001018,8594 "spec/lib/gitlab/gitaly_client/remote_service_spec.rb": 1.8569419340001332,8595 "spec/lib/gitlab/ci/build/duration_parser_spec.rb": 0.7395895529998597,8596 "spec/lib/banzai/issuable_extractor_spec.rb": 2.0614814900000056,8597 "spec/graphql/types/kas/agent_metadata_type_spec.rb": 0.45887790000006135,8598 "spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb": 0.4351616540000123,8599 "spec/graphql/mutations/user_callouts/create_spec.rb": 1.4714602369999739,8600 "spec/lib/gitlab/hook_data/key_builder_spec.rb": 0.8182290429999739,8601 "spec/lib/gitlab/alert_management/fingerprint_spec.rb": 0.8906339039999693,8602 "spec/finders/groups/accepting_project_creations_finder_spec.rb": 1.9726864219999243,8603 "spec/graphql/types/work_items/widgets/assignees_input_type_spec.rb": 0.37139575099990907,8604 "spec/views/groups/_home_panel.html.haml_spec.rb": 1.4924095349999789,8605 "spec/graphql/resolvers/project_resolver_spec.rb": 1.1281831920000513,8606 "spec/lib/gitlab/container_repository/tags/cache_spec.rb": 0.8943268040000021,8607 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 1.4763939479998953,8608 "spec/lib/gitlab/database/connection_timer_spec.rb": 0.6581557640001847,8609 "spec/lib/gitlab/github_import/issuable_finder_spec.rb": 0.677466701999947,8610 "spec/services/packages/nuget/create_dependency_service_spec.rb": 0.8792857359999289,8611 "spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb": 1.3208433279999099,8612 "spec/serializers/analytics_summary_serializer_spec.rb": 1.3527878630000032,8613 "spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb": 1.0993372059999729,8614 "spec/services/error_tracking/base_service_spec.rb": 0.9611318350000602,8615 "spec/workers/ci/runners/stale_machines_cleanup_cron_worker_spec.rb": 0.8867830750000394,8616 "spec/helpers/blame_helper_spec.rb": 0.6997336589997758,8617 "spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb": 0.7440826330000618,8618 "spec/workers/ci/track_failed_build_worker_spec.rb": 0.9727557830001388,8619 "spec/serializers/container_tag_entity_spec.rb": 1.082072738999841,8620 "spec/lib/gitlab/dependency_linker/requirements_txt_linker_spec.rb": 0.5769967740000084,8621 "spec/services/keys/create_service_spec.rb": 0.8000271349999366,8622 "spec/graphql/resolvers/clusters/agents/authorizations/ci_access_resolver_spec.rb": 0.9350262279999697,8623 "spec/views/registrations/welcome/show.html.haml_spec.rb": 0.8431431099998008,8624 "spec/lib/api/helpers/internal_helpers_spec.rb": 0.7346567649999542,8625 "spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb": 0.6684775430001082,8626 "spec/views/projects/runners/_project_runners.html.haml_spec.rb": 0.888510634000113,8627 "spec/lib/gitlab/lets_encrypt/challenge_spec.rb": 0.5815464540000903,8628 "spec/initializers/rails_yaml_safe_load_spec.rb": 0.7658593290000226,8629 "spec/models/data_list_spec.rb": 1.3313078860001042,8630 "spec/serializers/project_access_token_entity_spec.rb": 1.2103516720001153,8631 "spec/lib/gitlab/usage/metrics/instrumentations/gitlab_for_jira_app_proxy_installations_count_metric_spec.rb": 0.8796517650000624,8632 "spec/graphql/types/milestone_type_spec.rb": 0.6593627639999795,8633 "spec/lib/gitlab/import_export/error_spec.rb": 0.6505722340000375,8634 "spec/graphql/types/notes/system_note_metadata_type_spec.rb": 0.4501724720000766,8635 "spec/views/devise/shared/_signin_box.html.haml_spec.rb": 0.6800591609999174,8636 "spec/lib/gitlab/graphql/pagination/connections_spec.rb": 0.6290357370000947,8637 "spec/initializers/countries_spec.rb": 0.6925952090000465,8638 "spec/lib/gitlab/metrics/delta_spec.rb": 0.5794785739999497,8639 "spec/graphql/resolvers/board_list_resolver_spec.rb": 1.2323556989999815,8640 "spec/serializers/feature_flag_entity_spec.rb": 1.0112163070000406,8641 "spec/lib/gitlab/ci/status/group/common_spec.rb": 0.45654485999989447,8642 "spec/rubocop/cop/migration/background_migration_record_spec.rb": 0.43370720300003995,8643 "spec/lib/api/github/entities_spec.rb": 0.6597184639999796,8644 "spec/tooling/danger/specs/match_with_array_suggestion_spec.rb": 0.36594401199999993,8645 "spec/services/user_preferences/update_service_spec.rb": 0.699581328000022,8646 "spec/serializers/integrations/project_serializer_spec.rb": 0.32263450899995405,8647 "spec/graphql/types/alert_management/integration_type_spec.rb": 0.42800035400000525,8648 "spec/rubocop/cop/graphql/graphql_name_position_spec.rb": 0.473075457999812,8649 "spec/validators/any_field_validator_spec.rb": 0.4723991490000117,8650 "spec/presenters/milestone_presenter_spec.rb": 0.6952584189998561,8651 "spec/lib/gitlab/instrumentation/rate_limiting_gates_spec.rb": 0.4465658419999272,8652 "spec/lib/gitlab/audit/unauthenticated_author_spec.rb": 0.47463156799994977,8653 "spec/lib/gitlab/metrics/dashboard/defaults_spec.rb": 0.3896624690000863,8654 "spec/graphql/mutations/members/bulk_update_base_spec.rb": 0.6410413660000813,8655 "spec/graphql/types/work_items/widgets/notes_type_spec.rb": 0.7334357439999621,8656 "spec/lib/gitlab/diff/suggestion_diff_spec.rb": 0.44263086299997667,8657 "spec/lib/gitlab/ci/reports/security/flag_spec.rb": 0.5852845240001443,8658 "spec/graphql/types/ci/test_suite_type_spec.rb": 0.7749551080000856,8659 "spec/serializers/test_reports_comparer_serializer_spec.rb": 0.4865003670001897,8660 "spec/services/keys/destroy_service_spec.rb": 0.7267926649999481,8661 "spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb": 0.49068324599988955,8662 "spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb": 0.4849051059998146,8663 "spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/joins_spec.rb": 0.7740546390000418,8664 "spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb": 0.7913277059999473,8665 "spec/graphql/types/x509_issuer_type_spec.rb": 0.8074561850000919,8666 "spec/graphql/types/resolvable_interface_spec.rb": 0.3815256400000635,8667 "spec/lib/gitlab/sidekiq_middleware/size_limiter/exceed_limit_error_spec.rb": 0.522071952000033,8668 "spec/graphql/mutations/concerns/mutations/resolves_group_spec.rb": 0.4596265699999549,8669 "spec/graphql/types/ci/test_report_total_type_spec.rb": 0.4802777979998609,8670 "spec/lib/gitlab/git/conflict/resolver_spec.rb": 0.7658452600001056,8671 "spec/helpers/deploy_tokens_helper_spec.rb": 0.4299200739999378,8672 "spec/lib/peek/views/active_record_spec.rb": 0.42531439500021406,8673 "spec/lib/gitlab/ci/config/external/mapper/normalizer_spec.rb": 0.5338455500000236,8674 "spec/graphql/types/merge_request_review_state_enum_spec.rb": 0.35852766299990435,8675 "spec/rubocop/cop/gitlab/except_spec.rb": 0.6193327690000388,8676 "spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb": 0.31248498900004058677}8678Knapsack global time execution for tests: 25m 38s8679Pending: (Failures listed here are expected and do not affect your suite's status)8680 1) JobArtifactUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8681 # No pattern provided, skipping.8682 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88683 2) JobArtifactUploader behaves like builds correct paths #relative_path is relative8684 # Path not set, skipping.8685 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408686 3) JobArtifactUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8687 # No pattern provided, skipping.8688 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88689 4) JobArtifactUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8690 # No pattern provided, skipping.8691 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88692 5) JobArtifactUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8693 # No pattern provided, skipping.8694 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88695 6) JobArtifactUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8696 # No pattern provided, skipping.8697 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88698 7) JobArtifactUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 8699 # No pattern provided, skipping.8700 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88701 8) JobArtifactUploader object store is REMOTE behaves like builds correct paths #relative_path is relative8702 # Path not set, skipping.8703 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408704 9) JobArtifactUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8705 # No pattern provided, skipping.8706 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88707 10) JobArtifactUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8708 # No pattern provided, skipping.8709 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88710Finished in 25 minutes 42 seconds (files took 48.05 seconds to load)87113698 examples, 0 failures, 10 pending8712Randomized with seed 560768713[TEST PROF INFO] Time spent in factories: 14:56.124 (57.87% of total time)8714RSpec exited with 0.8715No examples to retry, congrats!8717Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8719Uploading artifacts...8720coverage/: found 5 matching artifact files and directories 8721crystalball/: found 2 matching artifact files and directories 8722WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8723knapsack/: found 4 matching artifact files and directories 8724WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8725rspec/: found 15 matching artifact files and directories 8726WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8727log/*.log: found 16 matching artifact files and directories 8728WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4313143504/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8729WARNING: Retrying... context=artifacts-uploader error=request redirected8730Uploading artifacts as "archive" to coordinator... 201 Created id=4313143504 responseStatus=201 Created token=64_WvDiv8731Uploading artifacts...8732rspec/junit_rspec.xml: found 1 matching artifact files and directories 8733WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4313143504/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8734WARNING: Retrying... context=artifacts-uploader error=request redirected8735Uploading artifacts as "junit" to coordinator... 201 Created id=4313143504 responseStatus=201 Created token=64_WvDiv8737Job succeeded