Skip to content
Snippets Groups Projects

rspec unit pg14 29/32

Full log viewer Experiment
Running with gitlab-runner 16.9.1 (782c6ecb)
on green-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org rpvz2FF9, system ID: s_d704414ba02a
feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_IMPROVED_URL_MASKING:true
Resolving secrets
Preparing the "docker+machine" executor
Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-120-yarn-1.22-graphicsmagick-1.3.36 ...
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...
Using docker image sha256:82f132c22567f8ce17cc132c14b2f9aa3eaf9bb5424d91c2d966912433f0257d for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:c55e1364ee4327b244a9cfa1750f19feea14fc774eaf792b725967d146eb45f5 ...
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.
WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.
Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...
Using docker image sha256:5c5ba5b83d6c60cb0b225bd670b7a43be8c238cc72347d24af57e5027c3648f3 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:46aceab84c42d0e819c8e7940f2f98ce9e184785cd7b22d95872024a35f52407 ...
Starting service redis:6.2-alpine ...
Pulling docker image redis:6.2-alpine ...
Using docker image sha256:b6c412dc298714b5c26feca1330d8f743b48caf0b1feeadfd554d7d446f985a5 for redis:6.2-alpine with digest redis@sha256:51d6c56749a4243096327e3fb964a48ed92254357108449cb6e23999c37773c5 ...
Waiting for services to be up and running (timeout 30 seconds)...
Authenticating with credentials from job payload (GitLab Registry)
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-120-yarn-1.22-graphicsmagick-1.3.36 ...
Using docker image sha256:c162b8fa17a58f014239a9b50abc767bdc8386e942cdea6cae2e6b397b8517c3 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-120-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14@sha256:e573ddd38ed10fe9b9feed8d24fd63f6ea29b9ddf14e3bf208d8a74c0377eccc ...
Preparing environment
Running on runner-rpvz2ff9-project-278964-concurrent-0 via runner-rpvz2ff9-private-1709870256-f945763a...
Getting source from Git repository
Skipping Git repository setup
Skipping Git checkout
Skipping Git submodules setup
Restoring cache
Checking cache for ruby-gems-debian-bookworm-ruby-3.1-17...
cache.zip is up to date
Successfully extracted cache
Downloading artifacts
Downloading artifacts for clone-gitlab-repo (6348594283)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=6348594283 responseStatus=200 OK token=glcbt-65
WARNING: Part of .git directory is on the list of files to extract
WARNING: This may introduce unexpected problems
Downloading artifacts for compile-test-assets (6348594306)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=6348594306 responseStatus=200 OK token=glcbt-65
Downloading artifacts for retrieve-tests-metadata (6348594318)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=6348594318 responseStatus=200 OK token=glcbt-65
Downloading artifacts for setup-test-env (6348594313)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=6348594313 responseStatus=200 OK token=glcbt-65
Executing "step_script" stage of the job script
Using docker image sha256:c162b8fa17a58f014239a9b50abc767bdc8386e942cdea6cae2e6b397b8517c3 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-120-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.1.patched-golang-1.20-rust-1.73-node-18.17-postgresql-14@sha256:e573ddd38ed10fe9b9feed8d24fd63f6ea29b9ddf14e3bf208d8a74c0377eccc ...
$ echo $FOSS_ONLY
$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb
$ export GOPATH=$CI_PROJECT_DIR/.go
$ mkdir -p $GOPATH
$ source scripts/utils.sh
$ source scripts/prepare_build.sh
Installing gems
Using decomposed database config (config/database.yml.decomposed-postgresql)
Geo DB won't be set up.
Embedding DB won't be set up.
Setting up DBs
$ source ./scripts/rspec_helpers.sh
$ run_timed_command "gem install knapsack --no-document"
$ gem install knapsack --no-document
Successfully installed knapsack-4.0.0
1 gem installed
==> 'gem install knapsack --no-document' succeeded in 0 seconds.
$ $ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"
Spawning Gitaly
$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"
$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"
$ tooling/bin/create_job_metrics_file || true
[job-metrics] Creating the job metrics file for the CI/CD job.
$ rspec_section rspec_parallelized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"
RSpec
[06:07:01] Starting rspec_parallelized_job
RETRY_FAILED_TESTS_IN_NEW_PROCESS: true
KNAPSACK_GENERATE_REPORT: true
FLAKY_RSPEC_GENERATE_REPORT: true
KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,keeps,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,dot_gitlab_ci}{,/**/}*_spec.rb
KNAPSACK_LOG_LEVEL: debug
KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_29_32_278964_report.json
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_29_32_278964_report.json
NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_29_32_278964_report.json
RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-6348595049.txt
CRYSTALBALL:
RSPEC_TESTS_MAPPING_ENABLED:
RSPEC_TESTS_FILTER_FILE:
Shell set options (set -o) enabled:
braceexpand on
hashall on
interactive-comments on
pipefail on
Parsing expected rspec suite duration...
RSpec suite is expected to take 43 minutes 53.57 seconds.
Expected duration for tests:
{
"spec/services/merge_requests/refresh_service_spec.rb": 270.05045700398364,
"spec/rubocop/cop/rspec/feature_category_spec.rb": 223.02914831133563,
"spec/services/todo_service_spec.rb": 162.0398129542728,
"spec/lib/banzai/filter/references/issue_reference_filter_spec.rb": 107.89080782712458,
"spec/helpers/projects_helper_spec.rb": 94.76700380447805,
"spec/services/auto_merge/base_service_spec.rb": 77.42004677721874,
"spec/services/merge_requests/mergeability_check_service_spec.rb": 72.14846108407514,
"spec/models/protected_branch_spec.rb": 63.328965733716544,
"spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb": 54.57433147222059,
"spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb": 51.81930676050034,
"spec/models/concerns/milestoneish_spec.rb": 47.25230903896107,
"spec/views/search/_results.html.haml_spec.rb": 43.4877919772999,
"spec/scripts/internal_events/cli_spec.rb": 40.838468416059214,
"spec/finders/ci/runner_jobs_finder_spec.rb": 36.84913962693073,
"spec/policies/commit_policy_spec.rb": 35.31250801624751,
"spec/services/projects/update_repository_storage_service_spec.rb": 32.84635409066733,
"spec/lib/gitlab/project_authorizations_spec.rb": 31.91691729574547,
"spec/models/container_registry/protection/rule_spec.rb": 30.62100552982248,
"spec/models/merge_request_diff_commit_spec.rb": 28.055751908064295,
"spec/lib/container_registry/client_spec.rb": 27.52734532819897,
"spec/lib/bulk_imports/clients/http_spec.rb": 26.365555913056255,
"spec/finders/clusters/knative_services_finder_spec.rb": 25.489986942697882,
"spec/policies/ci/runner_manager_policy_spec.rb": 23.983756336928646,
"spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb": 23.38056411433475,
"spec/services/post_receive_service_spec.rb": 22.609985513105237,
"spec/policies/todo_policy_spec.rb": 21.478068504469555,
"spec/models/concerns/project_api_compatibility_spec.rb": 21.127687838496893,
"spec/lib/gitlab/cache/json_caches/json_keyed_spec.rb": 19.838595664280632,
"spec/helpers/tab_helper_spec.rb": 19.57974554425268,
"spec/workers/users/deactivate_dormant_users_worker_spec.rb": 18.746772096334414,
"spec/lib/gitlab/ci/trace/checksum_spec.rb": 17.704666885306672,
"spec/services/merge_requests/retarget_chain_service_spec.rb": 17.530310338476745,
"spec/lib/extracts_path_spec.rb": 16.720739055621117,
"spec/initializers/load_balancing_spec.rb": 16.485626954243017,
"spec/workers/merge_request_cleanup_refs_worker_spec.rb": 15.603499240545505,
"spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb": 15.494411766123486,
"spec/uploaders/packages/package_file_uploader_spec.rb": 14.811466924693105,
"spec/lib/gitlab/gitaly_client/ref_service_spec.rb": 14.573511888322122,
"spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb": 13.933859544530138,
"spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb": 13.759919031963305,
"spec/lib/sidebars/projects/menus/settings_menu_spec.rb": 13.36460822422617,
"spec/models/protected_branch/merge_access_level_spec.rb": 12.916103019555871,
"spec/services/ci/pipeline_schedules/create_service_spec.rb": 12.723521721032593,
"spec/serializers/commit_entity_spec.rb": 12.27541365957521,
"spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb": 12.061374006003524,
"spec/lib/gitlab/mail_room/mail_room_spec.rb": 11.67373189244441,
"spec/lib/gitlab/template/merge_request_template_spec.rb": 11.567523496591399,
"spec/rubocop/cop/graphql/descriptions_spec.rb": 11.129977536695698,
"spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb": 10.983328194692366,
"spec/services/security/ci_configuration/sast_create_service_spec.rb": 10.721455187608353,
"spec/services/ci/runners/register_runner_service_spec.rb": 10.595332734090384,
"spec/serializers/merge_request_diff_entity_spec.rb": 10.190715275431478,
"spec/lib/gitlab/database/health_status/indicators/patroni_apdex_spec.rb": 9.978068799368822,
"spec/lib/gitlab/consul/internal_spec.rb": 9.766260063259638,
"spec/finders/keys_finder_spec.rb": 9.472474433992048,
"spec/lib/gitlab/database/dictionary_spec.rb": 9.39933882260502,
"spec/models/snippet_statistics_spec.rb": 9.26583333812744,
"spec/services/service_ping/submit_service_ping_service_spec.rb": 8.903282812812986,
"spec/services/ci/build_erase_service_spec.rb": 8.808241062325166,
"spec/lib/gitlab/ci/build/step_spec.rb": 8.60803911091784,
"spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb": 8.519820192730126,
"spec/services/projects/deploy_tokens/create_service_spec.rb": 8.315113217168696,
"spec/services/quick_actions/target_service_spec.rb": 8.246908460484914,
"spec/services/projects/download_service_spec.rb": 7.970128400748459,
"spec/models/integrations/campfire_spec.rb": 7.920459833881669,
"spec/graphql/resolvers/board_resolver_spec.rb": 7.674898476182443,
"spec/models/x509_certificate_spec.rb": 7.666963731242987,
"spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb": 7.408154142529803,
"spec/models/concerns/use_sql_function_for_primary_key_lookups_spec.rb": 7.398871537346372,
"spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb": 7.142206565547229,
"spec/tooling/graphql/docs/renderer_spec.rb": 7.129280166346711,
"spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb": 6.958496940480684,
"spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 6.845420680208215,
"spec/services/users/assigned_issues_count_service_spec.rb": 6.723373370757965,
"spec/views/layouts/terms.html.haml_spec.rb": 6.66057232494669,
"spec/lib/gitlab/email/service_desk_email_spec.rb": 6.484599019168486,
"spec/models/packages/sem_ver_spec.rb": 6.4220391351489905,
"spec/models/ci/commit_with_pipeline_spec.rb": 6.3256325983188955,
"spec/workers/bulk_imports/pipeline_batch_worker_spec.rb": 6.248149500075996,
"spec/finders/autocomplete/group_users_finder_spec.rb": 6.115291372435008,
"spec/lib/gitlab/cache/request_cache_spec.rb": 6.0637332525164,
"spec/models/milestone_note_spec.rb": 5.911962468415158,
"spec/finders/releases/evidence_pipeline_finder_spec.rb": 5.851034346333515,
"spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb": 5.788364495984054,
"spec/lib/gitlab/popen/runner_spec.rb": 5.6405287353558595,
"spec/services/projects/import_export/parallel_export_service_spec.rb": 5.570000933923638,
"spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb": 5.460330605858714,
"spec/lib/gitlab/usage_data_counters/note_counter_spec.rb": 5.377471574925911,
"spec/lib/gitlab/auth/user_access_denied_reason_spec.rb": 5.26781215950925,
"spec/lib/gitlab/endpoint_attributes_spec.rb": 5.159507541552851,
"spec/lib/gitlab/reactive_cache_set_cache_spec.rb": 5.1203524553726165,
"spec/policies/projects/branch_rule_policy_spec.rb": 5.024196481857994,
"spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 4.9275809438330445,
"spec/services/ci/create_pipeline_service/parameter_content_spec.rb": 4.90835732885689,
"spec/models/ci/build_trace_spec.rb": 4.778899819035548,
"spec/lib/gitlab/sanitizers/svg_spec.rb": 4.773440332232588,
"spec/models/concerns/access_requestable_spec.rb": 4.640204706000652,
"spec/lib/gitlab/import_export/repo_saver_spec.rb": 4.632090086303809,
"spec/services/packages/composer/composer_json_service_spec.rb": 4.525143757410636,
"spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 4.479385412184678,
"spec/graphql/types/snippets/blob_viewer_type_spec.rb": 4.372227898541444,
"spec/tasks/gitlab/sidekiq_rake_spec.rb": 4.370533569741628,
"spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb": 4.279503171428167,
"spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 4.23378441602549,
"spec/services/branches/validate_new_service_spec.rb": 4.159718920042314,
"spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb": 4.1318513129190055,
"spec/lib/file_size_validator_spec.rb": 4.064959498521869,
"spec/services/update_container_registry_info_service_spec.rb": 4.007917875977217,
"spec/helpers/sessions_helper_spec.rb": 3.9663314025756673,
"spec/lib/gitlab/ci/variables/builder/project_spec.rb": 3.886149282530117,
"spec/lib/gitlab/tracking/service_ping_context_spec.rb": 3.8462990675301714,
"spec/helpers/award_emoji_helper_spec.rb": 3.809731370597749,
"spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb": 3.7634843801533173,
"spec/models/work_items/widgets/assignees_spec.rb": 3.7218437273960934,
"spec/lib/sidebars/admin/menus/applications_menu_spec.rb": 3.6798280076901633,
"spec/lib/gitlab/background_migration/batching_strategies/dismissed_vulnerabilities_strategy_spec.rb": 3.649764406948808,
"spec/components/pajamas/card_component_spec.rb": 3.5887576095998757,
"spec/channels/noteable/notes_channel_spec.rb": 3.5340613641627883,
"spec/services/packages/create_temporary_package_service_spec.rb": 3.494072298098877,
"spec/models/packages/event_spec.rb": 3.4579736471211175,
"spec/serializers/rollout_status_entity_spec.rb": 3.4089752721743314,
"spec/lib/gitlab/database/async_indexes/index_creator_spec.rb": 3.3718457739360757,
"spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb": 3.347564341250773,
"spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb": 3.2993041447980405,
"spec/graphql/mutations/todos/restore_spec.rb": 3.2600689213124117,
"spec/policies/project_hook_policy_spec.rb": 3.2414647408042905,
"spec/services/alert_management/http_integrations/update_service_spec.rb": 3.17829105406003,
"spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb": 3.1626197307184416,
"spec/services/ci/create_pipeline_service/artifacts_spec.rb": 3.1002072940144343,
"spec/services/packages/update_tags_service_spec.rb": 3.059532236747715,
"spec/workers/ci/archive_trace_worker_spec.rb": 3.0153533305764473,
"spec/lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder_spec.rb": 2.9704355848881647,
"spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb": 2.9411894769552465,
"spec/lib/gitlab/import_export/group/object_builder_spec.rb": 2.91236131765461,
"spec/lib/bitbucket/representation/comment_spec.rb": 2.8458737135243544,
"spec/finders/ci/runner_managers_finder_spec.rb": 2.8301087318013796,
"spec/lib/gitlab/usage/metrics/instrumentations/project_imports_creators_metric_spec.rb": 2.7980365600590074,
"spec/lib/gitlab/plantuml_spec.rb": 2.7617562132073368,
"spec/models/projects/wiki_repository_spec.rb": 2.7109969409014516,
"spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb": 2.6873288557792705,
"spec/workers/pipeline_hooks_worker_spec.rb": 2.6593810522180013,
"spec/services/packages/remove_tag_service_spec.rb": 2.6107966595645373,
"spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb": 2.5846309307816595,
"spec/services/ci/build_unschedule_service_spec.rb": 2.5501070122489984,
"spec/lib/gitlab/database/type/color_spec.rb": 2.5231773799869694,
"spec/lib/gitlab/github_import/importer/events/reopened_spec.rb": 2.4932184151733505,
"spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 2.469214203757665,
"spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb": 2.4229908713455064,
"spec/models/user_mentions/commit_user_mention_spec.rb": 2.403387861827471,
"spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 2.3498565128091435,
"spec/graphql/resolvers/ci/test_suite_resolver_spec.rb": 2.3107083304842875,
"spec/rubocop/cop/migration/migration_record_spec.rb": 2.2674477374973496,
"spec/services/admin/abuse_report_labels/create_service_spec.rb": 2.2576093240378547,
"spec/services/ci/build_cancel_service_spec.rb": 2.2137375396146943,
"spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb": 2.1917761970201415,
"spec/lib/gitlab/sidekiq_middleware/concurrency_limit/workers_map_spec.rb": 2.1487893309199038,
"spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 2.1152874607630237,
"spec/services/packages/npm/deprecate_package_service_spec.rb": 2.110140775668505,
"spec/graphql/types/color_type_spec.rb": 2.0562834581910896,
"spec/lib/gitlab/ci/config/entry/release/assets_spec.rb": 2.046114564349234,
"spec/lib/gitlab/github_gists_import/status_spec.rb": 1.98964968177404,
"spec/lib/gitlab/circuit_breaker/notifier_spec.rb": 1.9886289182749946,
"spec/lib/gitlab/github_import/clients/proxy_spec.rb": 1.9330463428550084,
"spec/lib/gitlab/ci/status/waiting_for_callback_spec.rb": 1.9143250834862706,
"spec/lib/constraints/admin_constrainer_spec.rb": 1.9083705063830037,
"spec/models/notes/note_metadata_spec.rb": 1.8616211234024655,
"spec/workers/pages_domain_verification_worker_spec.rb": 1.8483218230718625,
"spec/graphql/types/timeframe_type_spec.rb": 1.8082817264855153,
"spec/services/ci/queue/pending_builds_strategy_spec.rb": 1.793586834938221,
"spec/services/projects/batch_open_issues_count_service_spec.rb": 1.7480850180776342,
"spec/views/notify/push_to_merge_request_email.text.haml_spec.rb": 1.7313760176112414,
"spec/graphql/mutations/users/saved_replies/create_spec.rb": 1.686953411277936,
"spec/lib/gitlab/kubernetes/config_map_spec.rb": 1.6627172356020714,
"spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb": 1.6426425791335024,
"spec/views/admin/projects/_form.html.haml_spec.rb": 1.612625324454548,
"spec/lib/gitlab/checks/force_push_spec.rb": 1.5657218277995648,
"spec/lib/gitlab/kubernetes/ingress_spec.rb": 1.541797253985998,
"spec/workers/jira_connect/sync_feature_flags_worker_spec.rb": 1.5192971764130796,
"spec/routing/user_routing_spec.rb": 1.4821766870948854,
"spec/lib/slack/block_kit/app_home_opened_spec.rb": 1.4705894971829572,
"spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb": 1.429112557921411,
"spec/validators/js_regex_validator_spec.rb": 1.419171331733882,
"spec/lib/gitlab/word_diff/positions_counter_spec.rb": 1.3794493970890291,
"spec/lib/gitlab/usage/metrics/instrumentations/count_project_snippets_metric_spec.rb": 1.3479559156810579,
"spec/views/shared/milestones/_top.html.haml_spec.rb": 1.3154716284479464,
"spec/presenters/dev_ops_report/metric_presenter_spec.rb": 1.2946808062706878,
"spec/services/export_csv/map_export_fields_service_spec.rb": 1.2495381197928868,
"spec/lib/banzai/pipeline/post_process_pipeline_spec.rb": 1.2410247673007873,
"spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb": 1.2119758814727937,
"spec/graphql/types/incident_management/timeline_event_tag_type_spec.rb": 1.185999570089142,
"spec/workers/todos_destroyer/entity_leave_worker_spec.rb": 1.1628142447556362,
"spec/lib/google_api/auth_spec.rb": 1.1400122173059204,
"spec/graphql/types/container_respository_tags_sort_enum_spec.rb": 1.1192482507879078,
"spec/graphql/types/merge_requests/mergeability_check_type_spec.rb": 1.081098587517364,
"spec/models/concerns/cross_database_modification_spec.rb": 1.060686890173097,
"spec/models/group/crm_settings_spec.rb": 1.0203921124271038,
"spec/helpers/environment_helper_spec.rb": 1.0200130181243943,
"spec/lib/bitbucket_server/retry_with_delay_spec.rb": 0.9760517808094189,
"spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb": 0.9601000845425158,
"spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb": 0.9312802548037938,
"spec/graphql/types/kas/agent_metadata_type_spec.rb": 0.9177022828192313,
"spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.8858772152173015,
"spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb": 0.8738286612877152,
"spec/graphql/types/label_type_spec.rb": 0.8324772402757596,
"spec/serializers/serverless/domain_entity_spec.rb": 0.797442482174677,
"spec/workers/concerns/cluster_agent_queue_spec.rb": 0.7801091513004096,
"spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb": 0.7527868181943009,
"spec/rubocop/qa_helpers_spec.rb": 0.7409635228263782,
"spec/policies/concerns/archived_abilities_spec.rb": 0.7132050636059524,
"spec/graphql/types/security/codequality_reports_comparer/report_type_spec.rb": 0.7075047504105457,
"spec/lib/mattermost/command_spec.rb": 0.6917164080496007,
"spec/graphql/types/ci/catalog/resource_sort_enum_spec.rb": 0.6848753232449867,
"spec/graphql/types/permission_types/container_repository_spec.rb": 0.6594447006088184,
"spec/graphql/types/packages/composer/metadatum_type_spec.rb": 0.6523829045790621,
"spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb": 0.6351481525727692,
"spec/helpers/deploy_tokens_helper_spec.rb": 0.5862920122186904,
"spec/lib/gitlab/error_tracking/log_formatter_spec.rb": 0.5385898435984343,
"spec/graphql/types/permission_types/ci/pipeline_spec.rb": 0.5055066860942351,
"spec/lib/gitlab/database/async_constraints_spec.rb": 0.4881950308478177,
"spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb": 0.47524635334693177,
"spec/lib/gitlab/ci/status/bridge/waiting_for_resource_spec.rb": 0.4643722898198481,
"spec/graphql/types/work_items/widgets/notifications_type_spec.rb": 0.45333175992195485,
"spec/lib/gitlab/saas_spec.rb": 0.4459208211258586,
"spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb": 0.4326524736817772,
"spec/graphql/types/ci/group_variable_connection_type_spec.rb": 0.4162846591620072
Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-6348595049.json --format RspecJunitFormatter --out rspec/rspec-6348595049.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- spec/services/merge_requests/refresh_service_spec.rb spec/rubocop/cop/rspec/feature_category_spec.rb spec/services/todo_service_spec.rb spec/lib/banzai/filter/references/issue_reference_filter_spec.rb spec/helpers/projects_helper_spec.rb spec/services/auto_merge/base_service_spec.rb spec/services/merge_requests/mergeability_check_service_spec.rb spec/models/protected_branch_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb spec/models/concerns/milestoneish_spec.rb spec/views/search/_results.html.haml_spec.rb spec/scripts/internal_events/cli_spec.rb spec/finders/ci/runner_jobs_finder_spec.rb spec/policies/commit_policy_spec.rb spec/services/projects/update_repository_storage_service_spec.rb spec/lib/gitlab/project_authorizations_spec.rb spec/models/container_registry/protection/rule_spec.rb spec/models/merge_request_diff_commit_spec.rb spec/lib/container_registry/client_spec.rb spec/lib/bulk_imports/clients/http_spec.rb spec/finders/clusters/knative_services_finder_spec.rb spec/policies/ci/runner_manager_policy_spec.rb spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb spec/services/post_receive_service_spec.rb spec/policies/todo_policy_spec.rb spec/models/concerns/project_api_compatibility_spec.rb spec/lib/gitlab/cache/json_caches/json_keyed_spec.rb spec/helpers/tab_helper_spec.rb spec/workers/users/deactivate_dormant_users_worker_spec.rb spec/lib/gitlab/ci/trace/checksum_spec.rb spec/services/merge_requests/retarget_chain_service_spec.rb spec/lib/extracts_path_spec.rb spec/initializers/load_balancing_spec.rb spec/workers/merge_request_cleanup_refs_worker_spec.rb spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb spec/uploaders/packages/package_file_uploader_spec.rb spec/lib/gitlab/gitaly_client/ref_service_spec.rb spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb spec/lib/sidebars/projects/menus/settings_menu_spec.rb spec/models/protected_branch/merge_access_level_spec.rb spec/services/ci/pipeline_schedules/create_service_spec.rb spec/serializers/commit_entity_spec.rb spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb spec/lib/gitlab/mail_room/mail_room_spec.rb spec/lib/gitlab/template/merge_request_template_spec.rb spec/rubocop/cop/graphql/descriptions_spec.rb spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb spec/services/security/ci_configuration/sast_create_service_spec.rb spec/services/ci/runners/register_runner_service_spec.rb spec/serializers/merge_request_diff_entity_spec.rb spec/lib/gitlab/database/health_status/indicators/patroni_apdex_spec.rb spec/lib/gitlab/consul/internal_spec.rb spec/finders/keys_finder_spec.rb spec/lib/gitlab/database/dictionary_spec.rb spec/models/snippet_statistics_spec.rb spec/services/service_ping/submit_service_ping_service_spec.rb spec/services/ci/build_erase_service_spec.rb spec/lib/gitlab/ci/build/step_spec.rb spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb spec/services/projects/deploy_tokens/create_service_spec.rb spec/services/quick_actions/target_service_spec.rb spec/services/projects/download_service_spec.rb spec/models/integrations/campfire_spec.rb spec/graphql/resolvers/board_resolver_spec.rb spec/models/x509_certificate_spec.rb spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb spec/models/concerns/use_sql_function_for_primary_key_lookups_spec.rb spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb spec/tooling/graphql/docs/renderer_spec.rb spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb spec/services/users/assigned_issues_count_service_spec.rb spec/views/layouts/terms.html.haml_spec.rb spec/lib/gitlab/email/service_desk_email_spec.rb spec/models/packages/sem_ver_spec.rb spec/models/ci/commit_with_pipeline_spec.rb spec/workers/bulk_imports/pipeline_batch_worker_spec.rb spec/finders/autocomplete/group_users_finder_spec.rb spec/lib/gitlab/cache/request_cache_spec.rb spec/models/milestone_note_spec.rb spec/finders/releases/evidence_pipeline_finder_spec.rb spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb spec/lib/gitlab/popen/runner_spec.rb spec/services/projects/import_export/parallel_export_service_spec.rb spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb spec/lib/gitlab/usage_data_counters/note_counter_spec.rb spec/lib/gitlab/auth/user_access_denied_reason_spec.rb spec/lib/gitlab/endpoint_attributes_spec.rb spec/lib/gitlab/reactive_cache_set_cache_spec.rb spec/policies/projects/branch_rule_policy_spec.rb spec/lib/bitbucket/representation/pull_request_comment_spec.rb spec/services/ci/create_pipeline_service/parameter_content_spec.rb spec/models/ci/build_trace_spec.rb spec/lib/gitlab/sanitizers/svg_spec.rb spec/models/concerns/access_requestable_spec.rb spec/lib/gitlab/import_export/repo_saver_spec.rb spec/services/packages/composer/composer_json_service_spec.rb spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb spec/graphql/types/snippets/blob_viewer_type_spec.rb spec/tasks/gitlab/sidekiq_rake_spec.rb spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb spec/graphql/resolvers/merge_requests_count_resolver_spec.rb spec/services/branches/validate_new_service_spec.rb spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb spec/lib/file_size_validator_spec.rb spec/services/update_container_registry_info_service_spec.rb spec/helpers/sessions_helper_spec.rb spec/lib/gitlab/ci/variables/builder/project_spec.rb spec/lib/gitlab/tracking/service_ping_context_spec.rb spec/helpers/award_emoji_helper_spec.rb spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb spec/models/work_items/widgets/assignees_spec.rb spec/lib/sidebars/admin/menus/applications_menu_spec.rb spec/lib/gitlab/background_migration/batching_strategies/dismissed_vulnerabilities_strategy_spec.rb spec/components/pajamas/card_component_spec.rb spec/channels/noteable/notes_channel_spec.rb spec/services/packages/create_temporary_package_service_spec.rb spec/models/packages/event_spec.rb spec/serializers/rollout_status_entity_spec.rb spec/lib/gitlab/database/async_indexes/index_creator_spec.rb spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb spec/graphql/mutations/todos/restore_spec.rb spec/policies/project_hook_policy_spec.rb spec/services/alert_management/http_integrations/update_service_spec.rb spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb spec/services/ci/create_pipeline_service/artifacts_spec.rb spec/services/packages/update_tags_service_spec.rb spec/workers/ci/archive_trace_worker_spec.rb spec/lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder_spec.rb spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb spec/lib/gitlab/import_export/group/object_builder_spec.rb spec/lib/bitbucket/representation/comment_spec.rb spec/finders/ci/runner_managers_finder_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/project_imports_creators_metric_spec.rb spec/lib/gitlab/plantuml_spec.rb spec/models/projects/wiki_repository_spec.rb spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb spec/workers/pipeline_hooks_worker_spec.rb spec/services/packages/remove_tag_service_spec.rb spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb spec/services/ci/build_unschedule_service_spec.rb spec/lib/gitlab/database/type/color_spec.rb spec/lib/gitlab/github_import/importer/events/reopened_spec.rb spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb spec/models/user_mentions/commit_user_mention_spec.rb spec/serializers/ci/daily_build_group_report_result_entity_spec.rb spec/graphql/resolvers/ci/test_suite_resolver_spec.rb spec/rubocop/cop/migration/migration_record_spec.rb spec/services/admin/abuse_report_labels/create_service_spec.rb spec/services/ci/build_cancel_service_spec.rb spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb spec/lib/gitlab/sidekiq_middleware/concurrency_limit/workers_map_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb spec/services/packages/npm/deprecate_package_service_spec.rb spec/graphql/types/color_type_spec.rb spec/lib/gitlab/ci/config/entry/release/assets_spec.rb spec/lib/gitlab/github_gists_import/status_spec.rb spec/lib/gitlab/circuit_breaker/notifier_spec.rb spec/lib/gitlab/github_import/clients/proxy_spec.rb spec/lib/gitlab/ci/status/waiting_for_callback_spec.rb spec/lib/constraints/admin_constrainer_spec.rb spec/models/notes/note_metadata_spec.rb spec/workers/pages_domain_verification_worker_spec.rb spec/graphql/types/timeframe_type_spec.rb spec/services/ci/queue/pending_builds_strategy_spec.rb spec/services/projects/batch_open_issues_count_service_spec.rb spec/views/notify/push_to_merge_request_email.text.haml_spec.rb spec/graphql/mutations/users/saved_replies/create_spec.rb spec/lib/gitlab/kubernetes/config_map_spec.rb spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb spec/views/admin/projects/_form.html.haml_spec.rb spec/lib/gitlab/checks/force_push_spec.rb spec/lib/gitlab/kubernetes/ingress_spec.rb spec/workers/jira_connect/sync_feature_flags_worker_spec.rb spec/routing/user_routing_spec.rb spec/lib/slack/block_kit/app_home_opened_spec.rb spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb spec/validators/js_regex_validator_spec.rb spec/lib/gitlab/word_diff/positions_counter_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_project_snippets_metric_spec.rb spec/views/shared/milestones/_top.html.haml_spec.rb spec/presenters/dev_ops_report/metric_presenter_spec.rb spec/services/export_csv/map_export_fields_service_spec.rb spec/lib/banzai/pipeline/post_process_pipeline_spec.rb spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb spec/graphql/types/incident_management/timeline_event_tag_type_spec.rb spec/workers/todos_destroyer/entity_leave_worker_spec.rb spec/lib/google_api/auth_spec.rb spec/graphql/types/container_respository_tags_sort_enum_spec.rb spec/graphql/types/merge_requests/mergeability_check_type_spec.rb spec/models/concerns/cross_database_modification_spec.rb spec/models/group/crm_settings_spec.rb spec/helpers/environment_helper_spec.rb spec/lib/bitbucket_server/retry_with_delay_spec.rb spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb spec/graphql/types/kas/agent_metadata_type_spec.rb spec/graphql/types/ci/test_report_summary_type_spec.rb spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb spec/graphql/types/label_type_spec.rb spec/serializers/serverless/domain_entity_spec.rb spec/workers/concerns/cluster_agent_queue_spec.rb spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb spec/rubocop/qa_helpers_spec.rb spec/policies/concerns/archived_abilities_spec.rb spec/graphql/types/security/codequality_reports_comparer/report_type_spec.rb spec/lib/mattermost/command_spec.rb spec/graphql/types/ci/catalog/resource_sort_enum_spec.rb spec/graphql/types/permission_types/container_repository_spec.rb spec/graphql/types/packages/composer/metadatum_type_spec.rb spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb spec/helpers/deploy_tokens_helper_spec.rb spec/lib/gitlab/error_tracking/log_formatter_spec.rb spec/graphql/types/permission_types/ci/pipeline_spec.rb spec/lib/gitlab/database/async_constraints_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb spec/lib/gitlab/ci/status/bridge/waiting_for_resource_spec.rb spec/graphql/types/work_items/widgets/notifications_type_spec.rb spec/lib/gitlab/saas_spec.rb spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb spec/graphql/types/ci/group_variable_connection_type_spec.rbKnapsack report generator started!
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}
# [RSpecRunTime] Starting RSpec timer...
[TEST PROF INFO] EventProf enabled (sql.active_record)
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
Test environment set up in 3.05875 seconds
# [RSpecRunTime] Starting example group spec/services/merge_requests/refresh_service_spec.rb. Expected to take 4 minutes 30.05 seconds.
MergeRequests::RefreshService
#execute
push to origin repo source branch
executes hooks with update action
triggers mergeRequestMergeStatusUpdated GraphQL subscription conditionally
reloads source branch MRs memoization
outdates MR suggestions
calls the merge request activity counter
query count
does not execute a lot of queries
when a merge error exists
clears merge errors when pushing to the source branch
does not clear merge errors when pushing to the target branch
# [RSpecRunTime] RSpec elapsed time: 40.27 seconds. Current RSS: ~1481M. load average: 1.27 1.15 1.00 1/291 1870
when source branch ref does not exists
closes MRs without source branch ref
does not change the merge request diff
# [RSpecRunTime] RSpec elapsed time: 47.48 seconds. Current RSS: ~1484M. load average: 1.25 1.15 1.00 1/292 2126
when pipeline exists for the source branch
updates the head_pipeline_id for @merge_request
does not update the head_pipeline_id for @fork_merge_request
# [RSpecRunTime] RSpec elapsed time: 57.26 seconds. Current RSS: ~1452M. load average: 1.36 1.18 1.01 1/292 2481
Pipelines for merge requests
when .gitlab-ci.yml has merge_requests keywords
create detached merge request pipeline with commits
does not create detached merge request pipeline for forked project
create detached merge request pipeline for non-fork merge request
when "push_options: nil" is passed
creates a detached merge request pipeline with commits
# [RSpecRunTime] RSpec elapsed time: 1 minute 18.94 seconds. Current RSS: ~1461M. load average: 1.60 1.25 1.03 1/290 3217
when ci.skip push_options are passed
creates a skipped detached merge request pipeline with commits
# [RSpecRunTime] RSpec elapsed time: 1 minute 24.02 seconds. Current RSS: ~1464M. load average: 1.55 1.24 1.03 1/290 3392
when service is hooked by target branch
does not create detached merge request pipeline
# [RSpecRunTime] RSpec elapsed time: 1 minute 27.39 seconds. Current RSS: ~1469M. load average: 1.51 1.24 1.03 1/290 3485
when service runs on forked project
creates detached merge request pipeline for fork merge request
# [RSpecRunTime] RSpec elapsed time: 1 minute 32.03 seconds. Current RSS: ~1479M. load average: 1.47 1.23 1.03 1/290 3631
when branch pipeline was created before a detaced merge request pipeline has been created
sets the latest detached merge request pipeline as a head pipeline
returns pipelines in correct order
# [RSpecRunTime] RSpec elapsed time: 1 minute 42.85 seconds. Current RSS: ~1461M. load average: 1.47 1.24 1.04 1/290 4002
when MergeRequestUpdateWorker is retried by an exception
does not re-create a duplicate detached merge request pipeline
# [RSpecRunTime] RSpec elapsed time: 1 minute 49.9 seconds. Current RSS: ~1457M. load average: 1.48 1.25 1.04 1/290 4271
when the pipeline should be skipped
saves a skipped detached merge request pipeline
# [RSpecRunTime] RSpec elapsed time: 1 minute 55.04 seconds. Current RSS: ~1462M. load average: 1.44 1.25 1.04 1/290 4459
when .gitlab-ci.yml does not have merge_requests keywords
does not create a detached merge request pipeline
# [RSpecRunTime] RSpec elapsed time: 1 minute 59.79 seconds. Current RSS: ~1459M. load average: 1.44 1.25 1.04 1/291 4635
when .gitlab-ci.yml is invalid
persists a pipeline with config error
# [RSpecRunTime] RSpec elapsed time: 2 minutes 5.06 seconds. Current RSS: ~1464M. load average: 1.37 1.24 1.04 3/292 4810
when .gitlab-ci.yml file is valid but has a logical error
persists a pipeline with config error
# [RSpecRunTime] RSpec elapsed time: 2 minutes 10.46 seconds. Current RSS: ~1460M. load average: 1.34 1.23 1.04 1/291 4985
push to origin repo source branch
executes hooks with update action
# [RSpecRunTime] RSpec elapsed time: 2 minutes 14.34 seconds. Current RSS: ~1461M. load average: 1.34 1.23 1.04 1/291 5156
push to origin repo target branch
when all MRs to the target branch had diffs
updates the merge state
# [RSpecRunTime] RSpec elapsed time: 2 minutes 17.52 seconds. Current RSS: ~1475M. load average: 1.31 1.23 1.04 1/291 5248
when an MR to be closed was empty already
only updates the non-empty MRs
# [RSpecRunTime] RSpec elapsed time: 2 minutes 20.75 seconds. Current RSS: ~1484M. load average: 1.29 1.23 1.04 1/291 5357
manual merge of source branch
updates the merge state
# [RSpecRunTime] RSpec elapsed time: 2 minutes 23.92 seconds. Current RSS: ~1482M. load average: 1.29 1.23 1.04 1/291 5459
push to fork repo source branch
open fork merge request
calls MergeRequests::LinkLfsObjectsService#execute
executes hooks with update action
outdates opened forked MR suggestions
# [RSpecRunTime] RSpec elapsed time: 2 minutes 33.5 seconds. Current RSS: ~1487M. load average: 1.24 1.22 1.04 1/292 5847
closed fork merge request
do not execute hooks with update action
updates merge request to closed state
# [RSpecRunTime] RSpec elapsed time: 2 minutes 38.67 seconds. Current RSS: ~1490M. load average: 1.30 1.23 1.04 1/292 6022
push to fork repo target branch
changes to merge requests
updates the merge request state
# [RSpecRunTime] RSpec elapsed time: 2 minutes 41.18 seconds. Current RSS: ~1488M. load average: 1.36 1.24 1.05 1/292 6110
merge request diff
does not reload the diff of the merge request made from fork
# [RSpecRunTime] RSpec elapsed time: 2 minutes 43.83 seconds. Current RSS: ~1486M. load average: 1.36 1.24 1.05 1/292 6198
forked projects with the same source branch name as target branch
reloads a new diff for a push to the forked project
reloads a new diff for a force push to the source branch
reloads a new diff for a force push to the target branch
reloads a new diff for a push to the target project that contains a commit in the MR
does not increase the diff count for a new push to target branch
# [RSpecRunTime] RSpec elapsed time: 3 minutes 6.9 seconds. Current RSS: ~1469M. load average: 1.50 1.29 1.07 3/293 7452
push to origin repo target branch after fork project was removed
updates the merge request state
# [RSpecRunTime] RSpec elapsed time: 3 minutes 10.0 seconds. Current RSS: ~1475M. load average: 1.46 1.28 1.07 1/292 7543
push new branch that exists in a merge request
refreshes the merge request
# [RSpecRunTime] RSpec elapsed time: 3 minutes 13.34 seconds. Current RSS: ~1487M. load average: 1.46 1.28 1.07 1/292 7672
merge request metrics
when the merge request is sourced from the same project
creates a `MergeRequestsClosingIssues` record for each issue closed by a commit
# [RSpecRunTime] RSpec elapsed time: 3 minutes 17.38 seconds. Current RSS: ~1486M. load average: 1.42 1.28 1.07 1/292 7778
when the merge request is sourced from a different project
creates a `MergeRequestsClosingIssues` record for each issue closed by a commit
# [RSpecRunTime] RSpec elapsed time: 3 minutes 21.89 seconds. Current RSS: ~1488M. load average: 1.39 1.27 1.07 1/292 7893
marking the merge request as draft
marks the merge request as draft from fixup commits
references the commit that caused the draft status
does not mark as draft based on commits that do not belong to an MR
# [RSpecRunTime] RSpec elapsed time: 3 minutes 32.27 seconds. Current RSS: ~1483M. load average: 1.33 1.26 1.07 1/292 8329
updating merge_commit
feature enabled
updates merge requests' merge_commit and merged_commit values
# [RSpecRunTime] RSpec elapsed time: 3 minutes 34.23 seconds. Current RSS: ~1482M. load average: 1.33 1.26 1.07 1/292 8409
#abort_ff_merge_requests_with_when_pipeline_succeeds
when Project#merge_method is set to FF
behaves like aborted merge requests for MWPS
aborts auto_merge
removes merge_user
does not add todos for merge user
adds todos for merge author
# [RSpecRunTime] RSpec elapsed time: 3 minutes 37.8 seconds. Current RSS: ~1489M. load average: 1.30 1.26 1.06 1/292 8499
with forked project
behaves like aborted merge requests for MWPS
aborts auto_merge
removes merge_user
does not add todos for merge user
adds todos for merge author
# [RSpecRunTime] RSpec elapsed time: 3 minutes 39.69 seconds. Current RSS: ~1488M. load average: 1.30 1.26 1.06 1/291 8524
with bogus auto merge strategy
behaves like maintained merge requests for MWPS
does not cancel auto merge
does not change merge_user
does not add todos
when Project#merge_method is set to rebase_merge
behaves like aborted merge requests for MWPS
aborts auto_merge
removes merge_user
does not add todos for merge user
adds todos for merge author
# [RSpecRunTime] RSpec elapsed time: 3 minutes 42.48 seconds. Current RSS: ~1491M. load average: 1.36 1.27 1.07 1/291 8561
with forked project
behaves like aborted merge requests for MWPS
aborts auto_merge
removes merge_user
does not add todos for merge user
adds todos for merge author
# [RSpecRunTime] RSpec elapsed time: 3 minutes 44.46 seconds. Current RSS: ~1490M. load average: 1.36 1.27 1.07 1/291 8586
when Project#merge_method is set to merge
behaves like maintained merge requests for MWPS
does not cancel auto merge
does not change merge_user
does not add todos
with forked project
behaves like maintained merge requests for MWPS
does not cancel auto merge
does not change merge_user
does not add todos
#abort_auto_merges
aborts MWPS for merge requests
when merge params contains up-to-date sha
maintains MWPS for merge requests
# [RSpecRunTime] RSpec elapsed time: 3 minutes 48.8 seconds. Current RSS: ~1495M. load average: 1.33 1.27 1.07 1/292 8726
# [RSpecRunTime] Finishing example group spec/services/merge_requests/refresh_service_spec.rb. It took 3 minutes 44.16 seconds. Expected to take 4 minutes 30.05 seconds.
# [RSpecRunTime] RSpec elapsed time: 3 minutes 49.88 seconds. Current RSS: ~1487M. load average: 1.33 1.27 1.07 1/292 8727
# [RSpecRunTime] Starting example group spec/rubocop/cop/rspec/feature_category_spec.rb. Expected to take 3 minutes 43.03 seconds.
RuboCop::Cop::RSpec::FeatureCategory
does not flag use of invalid categories in non-example code
flags missing feature category in top level example group
flags invalid feature category for non-symbols
with defined in config/feature_categories.yml and custom categories
valid_category: "acquisition"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
# [RSpecRunTime] RSpec elapsed time: 3 minutes 51.05 seconds. Current RSS: ~1496M. load average: 1.38 1.28 1.08 1/292 8728
valid_category: "activation"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "advisory_database"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "ai_abstraction_layer"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "ai_evaluation"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "ai_research"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "api"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "api_security"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "application_instrumentation"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "attack_emulation"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "audit_events"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "auto_devops"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "backup_restore"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "build"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "build_artifacts"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "capacity_planning"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "cell"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "cloud_connector"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "cloud_native_installation"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "code_quality"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "code_review_workflow"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "code_search"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "code_suggestions"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "code_testing"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "commerce_integrations"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "compliance_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "consumables_cost_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "container_registry"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "container_scanning"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "continuous_delivery"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "continuous_integration"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "customersdot_application"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "database"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dataops"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dedicated"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "delivery"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dependency_firewall"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dependency_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dependency_proxy"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "deployment_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "design_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "design_system"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "devops_reports"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "disaster_recovery"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dora_metrics"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "duo_chat"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "dynamic_application_security_testing"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "editor_extensions"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "environment_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "error_budgets"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "error_tracking"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "feature_flags"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "five_minute_production_app"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "fleet_visibility"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "fulfillment_admin_tooling"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "fulfillment_infrastructure"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "fuzz_testing"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "geo_replication"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "gitaly"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "gitlab_cli"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "gitlab_docs"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "global_search"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "groups_and_projects"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "helm_chart_registry"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "importers"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "incident_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "infrastructure_as_code"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "infrastructure_cost_data"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "insider_threat"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "instance_resiliency"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "integrations"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "internationalization"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
# [RSpecRunTime] RSpec elapsed time: 4 minutes 31.07 seconds. Current RSS: ~1536M. load average: 1.19 1.24 1.07 1/286 8729
valid_category: "logging"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "measurement_and_locking"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "merge_trains"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "metrics"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "mlops"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "mobile_devops"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "navigation"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "okr_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "omnibus_package"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "on_call_schedule_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "onboarding"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "organization"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "package_registry"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "pages"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "permissions"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "pipeline_composition"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "portfolio_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "product_analytics_data_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "product_analytics_visualization"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "pubsec_services"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "purchase"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "quality_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "rate_limiting"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "redis"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "release_evidence"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "release_orchestration"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "remote_development"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "requirements_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "review_apps"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "runner"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "runner_saas"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "saas_provisioning"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "sbom"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "scalability"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "seat_cost_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "secret_detection"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "secrets_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "security_policy_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "service_desk"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "service_ping"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "sm_provisioning"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "software_composition_analysis"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "source_code_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "static_application_security_testing"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "subscription_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "switchboard"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "system_access"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "team_planning"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "tracing"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "user_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "user_profile"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "value_stream_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "vulnerability_management"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "web_ide"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "webhooks"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "wiki"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "tooling"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
valid_category: "shared"
behaves like feature category validation
flags invalid feature category in top level example group
flags invalid feature category in nested context
flags invalid feature category in examples
does not flag if feature category is valid
suggests an alternative
#external_dependency_checksum
returns a SHA256 digest used by RuboCop to invalid cache
# [RSpecRunTime] Finishing example group spec/rubocop/cop/rspec/feature_category_spec.rb. It took 1 minute 13.37 seconds. Expected to take 3 minutes 43.03 seconds.
# [RSpecRunTime] Starting example group spec/services/todo_service_spec.rb. Expected to take 2 minutes 42.04 seconds.
TodoService
updates cached counts when a todo is created
Issues
#new_issue
creates a todo if assigned
does not create a todo if unassigned
creates a todo if assignee is the current user
creates a todo for each valid mentioned user
creates a directly addressed todo for each valid addressed user
creates correct todos for each valid user based on the type of mention
does not create todo if user can not see the issue when issue is confidential
does not create directly addressed todo if user cannot see the issue when issue is confidential
when a private group is mentioned
creates a todo for group members
# [RSpecRunTime] RSpec elapsed time: 5 minutes 11.53 seconds. Current RSS: ~1552M. load average: 1.16 1.23 1.07 1/284 8736
issue is an incident
behaves like an incident management tracked event
.track_event
tracks the event using redis
behaves like Snowplow event tracking with RedisHLL context
behaves like Snowplow event tracking
is emitted
#update_issue
creates a todo for each valid mentioned user not included in skip_users
creates a todo for each valid user not included in skip_users based on the type of mention
creates a directly addressed todo for each valid addressed user not included in skip_users
does not create a todo if user was already mentioned and todo is pending
does not create a todo if user was already mentioned and todo is done
does not create a directly addressed todo if user was already mentioned or addressed and todo is pending
does not create a directly addressed todo if user was already mentioned or addressed and todo is done
does not create todo if user can not see the issue when issue is confidential
does not create a directly addressed todo if user can not see the issue when issue is confidential
issues with a task list
does not create todo when tasks are marked as completed
does not create directly addressed todo when tasks are marked as completed
does not raise an error when description not change
# [RSpecRunTime] RSpec elapsed time: 5 minutes 20.42 seconds. Current RSS: ~1515M. load average: 1.14 1.22 1.07 1/283 8737
#close_issue
marks related pending todos to the target for the user as done
#destroy_target
refreshes the todos count cache for users with todos on the target
yields the target to the caller
#resolve_todos_for_target
marks related pending todos to the target for the user as done
cached counts
updates when todos change
#resolve_todos_with_attributes_for_target
marks related pending todos to the target for all the users as done
marks related only filtered pending todos to the target for all the users as done
fetches the pending todos with users preloaded
#new_note
mark related pending todos to the noteable for the note author as done
does not mark related pending todos it is a system note
creates a todo for each valid mentioned user
creates a todo for each valid user based on the type of mention
creates a directly addressed todo for each valid addressed user
does not create todo if user can not see the issue when leaving a note on a confidential issue
does not create a directly addressed todo if user can not see the issue when leaving a note on a confidential issue
does not create todo if user can not read confidential note
does not create todo when leaving a note on snippet
commits
leaving a note on a commit in a public project
creates a todo for each valid mentioned user
creates a directly addressed todo for each valid mentioned user
# [RSpecRunTime] RSpec elapsed time: 5 minutes 33.9 seconds. Current RSS: ~1510M. load average: 1.11 1.21 1.07 1/288 8786
leaving a note on a commit in a public project with private code
creates a todo for each valid mentioned user
creates a directly addressed todo for each valid mentioned user
# [RSpecRunTime] RSpec elapsed time: 5 minutes 36.37 seconds. Current RSS: ~1514M. load average: 1.03 1.19 1.07 1/288 8821
leaving a note on a commit in a private project
creates a todo for each valid mentioned user
creates a directly addressed todo for each valid mentioned user
# [RSpecRunTime] RSpec elapsed time: 5 minutes 38.86 seconds. Current RSS: ~1517M. load average: 1.03 1.19 1.07 1/288 8852
#mark_todo
creates a todo from an issue
when issue belongs to a group
creates a todo from an issue
#todo_exists?
returns false when no todo exist for the given issuable
returns true when a todo exist for the given issuable
when multiple_todos are enabled
creates a MENTIONED todo even if user already has a pending MENTIONED todo
creates a DIRECTLY_ADDRESSED todo even if user already has a pending DIRECTLY_ADDRESSED todo
creates an ASSIGNED todo even if user already has a pending MARKED todo
does not create an ASSIGNED todo if user already has an ASSIGNED todo
creates multiple todos if a user is assigned and mentioned in a new issue
# [RSpecRunTime] RSpec elapsed time: 5 minutes 42.7 seconds. Current RSS: ~1528M. load average: 1.02 1.19 1.06 1/288 8853
Work Items
#mark_todo
creates a todo from a work item
when work item belongs to a group
creates a todo from a work item
#todo_exists?
returns false when no todo exist for the given work_item
returns true when a todo exist for the given work_item
#resolve_todos_for_target
marks related pending todos to the target for the user as done
cached counts
updates when todos change
#reassigned_assignable
assignable is a merge request
behaves like reassigned target
creates a pending todo for new assignee
does not create a todo if unassigned
creates a todo if new assignee is the current user
does not create a todo for guests
does not create a directly addressed todo for guests
does not create a todo if already assigned
# [RSpecRunTime] RSpec elapsed time: 5 minutes 47.53 seconds. Current RSS: ~1525M. load average: 1.02 1.18 1.06 1/289 9023
assignable is a project level issue
behaves like reassigned target
creates a pending todo for new assignee
does not create a todo if unassigned
creates a todo if new assignee is the current user
does not create a todo for guests
does not create a directly addressed todo for guests
does not create a todo if already assigned
# [RSpecRunTime] RSpec elapsed time: 5 minutes 49.29 seconds. Current RSS: ~1524M. load average: 1.02 1.18 1.06 1/289 9024
assignable is a project level work_item
behaves like reassigned target
creates a pending todo for new assignee
does not create a todo if unassigned
creates a todo if new assignee is the current user
does not create a todo for guests
does not create a directly addressed todo for guests
does not create a todo if already assigned
# [RSpecRunTime] RSpec elapsed time: 5 minutes 51.05 seconds. Current RSS: ~1529M. load average: 1.02 1.18 1.06 1/288 9025
assignable is a group level issue
behaves like reassigned target
creates a pending todo for new assignee
does not create a todo if unassigned
creates a todo if new assignee is the current user
does not create a todo for guests
does not create a directly addressed todo for guests
does not create a todo if already assigned
# [RSpecRunTime] RSpec elapsed time: 5 minutes 52.41 seconds. Current RSS: ~1522M. load average: 1.02 1.18 1.06 1/288 9026
assignable is a group level work item
behaves like reassigned target
creates a pending todo for new assignee
does not create a todo if unassigned
creates a todo if new assignee is the current user
does not create a todo for guests
does not create a directly addressed todo for guests
does not create a todo if already assigned
# [RSpecRunTime] RSpec elapsed time: 5 minutes 53.79 seconds. Current RSS: ~1525M. load average: 1.02 1.18 1.06 1/288 9027
assignable is an alert
behaves like reassigned target
creates a pending todo for new assignee
does not create a todo if unassigned
creates a todo if new assignee is the current user
does not create a todo for guests
does not create a directly addressed todo for guests
does not create a todo if already assigned
#reassigned_reviewable
reviewable is a merge request
behaves like reassigned reviewable target
with no existing reviewers
creates a pending todo for new reviewer
with an existing reviewer
does not create a todo if unassigned
creates a todo if new reviewer is the current user
does not create a todo if already assigned
# [RSpecRunTime] RSpec elapsed time: 5 minutes 56.72 seconds. Current RSS: ~1528M. load average: 1.02 1.18 1.06 1/289 9137
Merge Requests
#new_merge_request
creates a pending todo if assigned
does not create a todo if unassigned
creates a todo if assignee is the current user
creates a todo for each valid mentioned user
creates a todo for each valid user based on the type of mention
creates a directly addressed todo for each valid addressed user
# [RSpecRunTime] RSpec elapsed time: 6 minutes 1.05 seconds. Current RSS: ~1519M. load average: 1.02 1.17 1.06 1/290 9300
#update_merge_request
creates a todo for each valid mentioned user not included in skip_users
creates a todo for each valid user not included in skip_users based on the type of mention
creates a directly addressed todo for each valid addressed user not included in skip_users
does not create a todo if user was already mentioned and todo is pending
does not create a todo if user was already mentioned and todo is done
does not create a directly addressed todo if user was already mentioned or addressed and todo is pending
does not create a directly addressed todo if user was already mentioned or addressed and todo is done
with a task list
does not create todo when tasks are marked as completed
does not create directly addressed todo when tasks are marked as completed
does not raise an error when description not change
# [RSpecRunTime] RSpec elapsed time: 6 minutes 9.49 seconds. Current RSS: ~1498M. load average: 1.01 1.17 1.06 1/290 9571
#close_merge_request
marks related pending todos to the target for the user as done
#merge_merge_request
marks related pending todos to the target for the user as done
does not create todo for guests
does not create directly addressed todo for guests
# [RSpecRunTime] RSpec elapsed time: 6 minutes 11.56 seconds. Current RSS: ~1502M. load average: 1.01 1.17 1.06 1/290 9680
#new_award_emoji
marks related pending todos to the target for the user as done
#merge_request_build_failed
creates a pending todo for each merge_participant
#merge_request_push
marks related pending todos to the target for the user as done
#merge_request_became_unmergeable
creates a pending todo for each merge_participant
#mark_todo
creates a todo from a merge request
#new_note
creates a todo for mentioned user on new diff note
creates a directly addressed todo for addressed user on new diff note
creates a todo for mentioned user on legacy diff note
does not create todo for guests
# [RSpecRunTime] RSpec elapsed time: 6 minutes 18.56 seconds. Current RSS: ~1509M. load average: 1.01 1.16 1.06 1/290 9962
Designs
creates a todo for mentioned user on new diff note
#update_note
creates a todo for each valid mentioned user not included in skip_users
creates a todo for each valid user not included in skip_users based on the type of mention
creates a directly addressed todo for each valid addressed user not included in skip_users
does not create a todo if user was already mentioned and todo is done
does not create a directly addressed todo if user was already mentioned or addressed and todo is pending
does not create a directly addressed todo if user was already mentioned or addressed and todo is done
users already have pending todos and the multiple_todos feature is off
does not create a todo if user was already mentioned and todo is pending
does not create N+1 queries for pending todos
# [RSpecRunTime] RSpec elapsed time: 6 minutes 24.34 seconds. Current RSS: ~1494M. load average: 0.93 1.15 1.06 1/289 9963
#resolve_todos
behaves like updating todos state
updates related todos for the user with the new_state
updates resolution mechanism
returns the updated ids
cached counts
updates when todos change
# [RSpecRunTime] RSpec elapsed time: 6 minutes 31.85 seconds. Current RSS: ~1485M. load average: 0.95 1.14 1.06 1/284 9964
#restore_todos
behaves like updating todos state
updates related todos for the user with the new_state
returns the updated ids
cached counts
updates when todos change
# [RSpecRunTime] RSpec elapsed time: 6 minutes 37.35 seconds. Current RSS: ~1470M. load average: 0.95 1.14 1.05 1/284 9965
#resolve_todo
marks pending todo as done
saves resolution mechanism
cached counts
updates when todos change
# [RSpecRunTime] RSpec elapsed time: 6 minutes 40.51 seconds. Current RSS: ~1472M. load average: 0.96 1.14 1.05 1/284 9966
#resolve_access_request_todos
marks the todos for group access request handlers as done
marks the todos for project access request handlers as done
# [RSpecRunTime] RSpec elapsed time: 6 minutes 43.99 seconds. Current RSS: ~1470M. load average: 0.96 1.14 1.05 1/284 9967
#restore_todo
marks resolved todo as pending
cached counts
updates when todos change
# [RSpecRunTime] RSpec elapsed time: 6 minutes 46.0 seconds. Current RSS: ~1475M. load average: 0.96 1.13 1.05 2/284 9968
#create_request_review_todo
creates a todo for reviewer
#create_member_access_request_todos
when request is raised for group
behaves like member access request is raised
when the source has more than 10 owners
creates todos for 10 recently active source owners
# [RSpecRunTime] RSpec elapsed time: 6 minutes 50.52 seconds. Current RSS: ~1466M. load average: 0.88 1.11 1.05 1/289 9997
when total owners are less than 10
creates todos for all source owners
# [RSpecRunTime] RSpec elapsed time: 6 minutes 51.76 seconds. Current RSS: ~1466M. load average: 0.88 1.11 1.05 1/289 9998
when multiple access requests are raised
creates todos for 10 recently active source owners for multiple requests
# [RSpecRunTime] RSpec elapsed time: 6 minutes 55.2 seconds. Current RSS: ~1451M. load average: 0.89 1.11 1.05 1/289 9999
when request is raised for project
behaves like member access request is raised
when the source has more than 10 owners
creates todos for 10 recently active source owners
# [RSpecRunTime] RSpec elapsed time: 6 minutes 59.47 seconds. Current RSS: ~1447M. load average: 0.89 1.11 1.05 1/284 10000
when total owners are less than 10
creates todos for all source owners
# [RSpecRunTime] RSpec elapsed time: 7 minutes 0.74 second. Current RSS: ~1449M. load average: 0.90 1.11 1.05 2/284 10001
when multiple access requests are raised
creates todos for 10 recently active source owners for multiple requests
# [RSpecRunTime] RSpec elapsed time: 7 minutes 4.73 seconds. Current RSS: ~1450M. load average: 0.90 1.11 1.05 1/284 10002
# [RSpecRunTime] Finishing example group spec/services/todo_service_spec.rb. It took 2 minutes 1.57 seconds. Expected to take 2 minutes 42.04 seconds.
# [RSpecRunTime] Starting example group spec/lib/banzai/filter/references/issue_reference_filter_spec.rb. Expected to take 1 minute 47.89 seconds.
Banzai::Filter::References::IssueReferenceFilter
requires project context
ignores valid references contained inside 'pre' element
ignores valid references contained inside 'code' element
ignores valid references contained inside 'a' element
ignores valid references contained inside 'style' element
performance
does not have a N+1 query problem
# [RSpecRunTime] RSpec elapsed time: 7 minutes 8.05 seconds. Current RSS: ~1461M. load average: 0.99 1.13 1.05 1/284 10003
standard internal reference
behaves like an internal reference
links to a valid reference
links with adjacent text
ignores invalid issue IDs
includes a title attribute
escapes the title attribute
renders non-HTML tooltips
includes default classes
includes a data-project attribute
includes a data-issue attribute
includes data attributes for issuable popover
includes a data-original attribute
does not escape the data-original attribute
includes a data-reference-format attribute
includes a data-reference-format attribute for URL references
includes a data-reference-format attribute for extended summary URL references
supports an :only_path context
does not process links containing issue numbers followed by text
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 7 minutes 18.34 seconds. Current RSS: ~1463M. load average: 0.92 1.10 1.05 1/284 10004
behaves like a reference with issue type information
contains issue-type as a data attribute
alternative internal_reference
behaves like an internal reference
links to a valid reference
links with adjacent text
ignores invalid issue IDs
includes a title attribute
escapes the title attribute
renders non-HTML tooltips
includes default classes
includes a data-project attribute
includes a data-issue attribute
includes data attributes for issuable popover
includes a data-original attribute
does not escape the data-original attribute
includes a data-reference-format attribute
includes a data-reference-format attribute for URL references
includes a data-reference-format attribute for extended summary URL references
supports an :only_path context
does not process links containing issue numbers followed by text
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 7 minutes 29.23 seconds. Current RSS: ~1462M. load average: 0.93 1.10 1.04 1/284 10005
behaves like a reference with issue type information
contains issue-type as a data attribute
cross-project / cross-namespace complete reference
ignores valid references when cross-reference project uses external tracker
links to a valid reference
link has valid text
has valid text
includes default classes
ignores invalid issue IDs on the referenced project
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 7 minutes 36.66 seconds. Current RSS: ~1466M. load average: 0.94 1.10 1.04 1/284 10006
behaves like a reference with issue type information
contains issue-type as a data attribute
# [RSpecRunTime] RSpec elapsed time: 7 minutes 37.74 seconds. Current RSS: ~1465M. load average: 0.94 1.10 1.04 1/284 10007
cross-project / same-namespace complete reference
ignores valid references when cross-reference project uses external tracker
links to a valid reference
link has valid text
has valid text
includes default classes
ignores invalid issue IDs on the referenced project
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 7 minutes 43.79 seconds. Current RSS: ~1456M. load average: 0.95 1.10 1.04 1/284 10008
behaves like a reference with issue type information
contains issue-type as a data attribute
cross-project shorthand reference
ignores valid references when cross-reference project uses external tracker
links to a valid reference
link has valid text
has valid text
includes default classes
ignores invalid issue IDs on the referenced project
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 7 minutes 50.94 seconds. Current RSS: ~1456M. load average: 1.03 1.11 1.05 1/284 10009
behaves like a reference with issue type information
contains issue-type as a data attribute
cross-project URL reference
links to a valid reference
link with trailing slash
links with adjacent text
includes default classes
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 7 minutes 56.8 seconds. Current RSS: ~1455M. load average: 1.03 1.11 1.05 1/284 10010
behaves like a reference with issue type information
contains issue-type as a data attribute
# [RSpecRunTime] RSpec elapsed time: 7 minutes 57.82 seconds. Current RSS: ~1457M. load average: 1.03 1.11 1.05 1/284 10011
cross-project reference in link href
links to a valid reference
links with adjacent text
includes default classes
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 8 minutes 1.91 seconds. Current RSS: ~1461M. load average: 1.02 1.10 1.05 1/284 10012
behaves like a reference with issue type information
contains issue-type as a data attribute
# [RSpecRunTime] RSpec elapsed time: 8 minutes 3.04 seconds. Current RSS: ~1462M. load average: 1.02 1.10 1.05 1/284 10013
cross-project URL in link href
links to a valid reference
links with adjacent text
includes default classes
behaves like a reference containing an element node
does not escape inner html
# [RSpecRunTime] RSpec elapsed time: 8 minutes 7.03 seconds. Current RSS: ~1462M. load average: 1.10 1.12 1.05 1/284 10014
behaves like a reference with issue type information
contains issue-type as a data attribute
# [RSpecRunTime] RSpec elapsed time: 8 minutes 8.1 seconds. Current RSS: ~1461M. load average: 1.10 1.12 1.05 1/284 10015
when processing a link to the designs tab
includes the word "designs" after the reference in the text content
design management is not available
links to the issue, but not to the designs tab
# [RSpecRunTime] RSpec elapsed time: 8 minutes 9.42 seconds. Current RSS: ~1463M. load average: 1.10 1.12 1.05 1/284 10016
group context
ignores shorthanded issue reference
ignores valid references when cross-reference project uses external tracker
links to a valid reference for complete cross-reference
ignores reference for shorthand cross-reference
links to a valid reference for url cross-reference
links to a valid reference for cross-reference in link href
links to a valid reference for issue reference in the link href
# [RSpecRunTime] RSpec elapsed time: 8 minutes 14.42 seconds. Current RSS: ~1469M. load average: 1.09 1.12 1.05 1/284 10017
.references_in
yields valid references
doesn't yield invalid references
doesn't yield unsupported references
# [RSpecRunTime] RSpec elapsed time: 8 minutes 16.28 seconds. Current RSS: ~1475M. load average: 1.17 1.13 1.06 1/290 10058
#object_link_text_extras
the link does not go to the designs tab
does not include designs
the link goes to the designs tab
includes designs
design management is disabled
does not include designs in the extras
# [RSpecRunTime] RSpec elapsed time: 8 minutes 18.07 seconds. Current RSS: ~1480M. load average: 1.17 1.13 1.06 1/290 10059
# [RSpecRunTime] Finishing example group spec/lib/banzai/filter/references/issue_reference_filter_spec.rb. It took 1 minute 13.33 seconds. Expected to take 1 minute 47.89 seconds.
# [RSpecRunTime] Starting example group spec/helpers/projects_helper_spec.rb. Expected to take 1 minute 34.77 seconds.
ProjectsHelper
#project_incident_management_setting
when incident_management_setting exists
return project_incident_management_setting
# [RSpecRunTime] RSpec elapsed time: 8 minutes 19.43 seconds. Current RSS: ~1488M. load average: 1.17 1.13 1.06 1/289 10072
when incident_management_setting does not exist
builds incident_management_setting
#error_tracking_setting_project_json
error tracking setting does not exist
returns nil
error tracking setting exists
api_url present
returns error tracking json
api_url not present
returns nil
can_change_visibility_level?
returns false if there are no appropriate permissions
returns true if there are permissions
#can_disable_emails?
returns true for the project owner
returns false for anyone else
returns false if group emails disabled
# [RSpecRunTime] RSpec elapsed time: 8 minutes 22.2 seconds. Current RSS: ~1503M. load average: 1.15 1.13 1.06 1/290 10073
#load_pipeline_status
loads the pipeline status in batch
#load_catalog_resources
does not execute a database query when project.catalog_resource is accessed
#last_pipeline_from_status_cache
without a pipeline
returns nil
when pipeline_status is loaded
returns nil without calling gitaly when there is no pipeline
when FF load_last_pipeline_from_pipeline_status is disabled
returns nil
with a pipeline
returns the latest pipeline
when pipeline_status is loaded
returns the latest pipeline without calling gitaly
when FF load_last_pipeline_from_pipeline_status is disabled
returns the latest pipeline
#show_no_ssh_key_message?
user has no keys
returns true
user has an ssh key
returns false
#show_no_password_message?
user has password set
returns false
user has hidden the message
returns false
user requires a password for Git
returns true
user requires a personal access token for Git
returns true
#no_password_message
password authentication is enabled for Git
returns message prompting user to set password or set up a PAT
password authentication is disabled for Git
returns message prompting user to set up a PAT
#link_to_project
returns an HTML link to the project
# [RSpecRunTime] RSpec elapsed time: 8 minutes 28.06 seconds. Current RSS: ~1479M. load average: 1.14 1.13 1.06 1/289 10101
#link_to_member_avatar
returns image tag for member avatar
returns image tag with avatar class
#link_to_member
using the default options
returns an HTML link to the user
HTML escapes the name of the user
when user is nil
returns "(deleted)"
default_clone_protocol
when user is not logged in and gitlab protocol is HTTP
returns HTTP
when user is not logged in and gitlab protocol is HTTPS
returns HTTPS
#last_push_event
returns recent push on the current project
when there is no current_user
returns nil
#show_projects
returns true when there are projects
returns true when there are no projects but a name is given
returns true when there are no projects but personal is present
returns false when there are no projects and there is no name
#push_to_create_project_command
returns the command to push to create project over HTTP
returns the command to push to create project over SSH
#any_projects?
returns true when projects will be returned
returns false when no projects will be returned
returns true when using a non-empty Array
returns false when using an empty Array
only executes a single query when a LIMIT is applied
#git_user_name
parses quotes in name
#git_user_email
not logged-in
returns your@email.com
user logged in
user has no configured commit email
returns the primary email
user has a configured commit email
returns the commit email
show_xcode_link
when the repository is xcode compatible
returns false if the visitor is not using macos
returns true if the visitor is using macos
when the repository is not xcode compatible
returns false if the visitor is not using macos
returns false if the visitor is using macos
#explore_projects_tab?
returns true when on the "All" tab under "Explore projects"
returns true when on the "Trending" tab under "Explore projects"
returns true when on the "Starred" tab under "Explore projects"
returns false when on the "Your projects" tab
#show_count?
enabled flag
returns true if compact mode is disabled
returns false if compact mode is enabled
disabled flag
returns false if disabled flag is true
returns true if disabled flag is false
#show_auto_devops_implicitly_enabled_banner?
global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 8 minutes 34.06 seconds. Current RSS: ~1512M. load average: 1.13 1.12 1.06 1/289 10108
global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: true
is expected to eq true
global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: true
is expected to eq true
global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false
is expected to eq false
global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false
is expected to eq false
#show_mobile_devops_project_promo?
hide_cookie: false, mobile_target_platform: true, result: true
resolves if mobile devops promo banner should be displayed
hide_cookie: false, mobile_target_platform: false, result: false
resolves if mobile devops promo banner should be displayed
hide_cookie: true, mobile_target_platform: false, result: false
resolves if mobile devops promo banner should be displayed
hide_cookie: true, mobile_target_platform: true, result: false
resolves if mobile devops promo banner should be displayed
#can_admin_project_member?
when user is project owner
returns true for owner of project
when user is not a project owner
user_project_role: :maintainer, can_admin: true
resolves if the user can import members
user_project_role: :developer, can_admin: false
resolves if the user can import members
user_project_role: :reporter, can_admin: false
resolves if the user can import members
user_project_role: :guest, can_admin: false
resolves if the user can import members
#project_license_name(project)
gitaly is working appropriately
returns the license name
memoizes the value
gitaly is unreachable
Gitlab::Git::CommandError
behaves like returns nil and tracks exception
is expected to be nil
tracks the exception
memoizes the nil value
GRPC::Unavailable
behaves like returns nil and tracks exception
is expected to be nil
tracks the exception
memoizes the nil value
GRPC::DeadlineExceeded
behaves like returns nil and tracks exception
is expected to be nil
tracks the exception
memoizes the nil value
#show_terraform_banner?
the project does not contain terraform files
is expected to be falsey
the project contains terraform files
is expected to be truthy
the project already has a terraform state
is expected to be falsey
the :show_terraform_banner feature flag is disabled
is expected to be falsey
#project_title
enqueues the elements in the breadcrumb schema list
with malicious owner name
escapes the malicious owner name
#project_permissions_panel_data
includes project_permissions_settings
includes membersPagePath
includes canAddCatalogResource
#project_classes
is expected to be a kind of String
PUC highlighting enabled
is expected to include "project-highlight-puc"
PUC highlighting disabled
is expected not to include "project-highlight-puc"
#delete_confirm_phrase
includes the project path with namespace
fork security helpers
#able_to_see_merge_requests?
can_read_merge_request: false, merge_requests_enabled: false, expected: false
returns the correct response
can_read_merge_request: true, merge_requests_enabled: false, expected: false
returns the correct response
can_read_merge_request: false, merge_requests_enabled: true, expected: false
returns the correct response
can_read_merge_request: true, merge_requests_enabled: true, expected: true
returns the correct response
#able_to_see_issues?
can_read_issues: false, issues_enabled: false, expected: false
returns the correct response
can_read_issues: true, issues_enabled: false, expected: false
returns the correct response
can_read_issues: false, issues_enabled: true, expected: false
returns the correct response
can_read_issues: true, issues_enabled: true, expected: true
returns the correct response
#able_to_see_forks_count?
can_read_code: false, forking_enabled: false, expected: false
returns the correct response
can_read_code: true, forking_enabled: false, expected: false
returns the correct response
can_read_code: false, forking_enabled: true, expected: false
returns the correct response
can_read_code: true, forking_enabled: true, expected: true
returns the correct response
#fork_button_data_attributes
has_user: false, project_already_forked: false, forkable_namespaces: [], expected: nil
is expected to eq nil
has_user: true, project_already_forked: false, forkable_namespaces: [0], expected: {:forks_count=>4, :project_full_path=>"/project/path", :project_forks_url=>"/project/forks", :can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :new_fork_url=>"/project/new/fork", :user_fork_url=>nil}
is expected to eq {:can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :forks_count=>4, :new_f...rk", :project_forks_url=>"/project/forks", :project_full_path=>"/project/path", :user_fork_url=>nil}
has_user: true, project_already_forked: false, forkable_namespaces: [0, 1], expected: {:forks_count=>4, :project_full_path=>"/project/path", :project_forks_url=>"/project/forks", :can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :new_fork_url=>"/project/new/fork", :user_fork_url=>nil}
is expected to eq {:can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :forks_count=>4, :new_f...rk", :project_forks_url=>"/project/forks", :project_full_path=>"/project/path", :user_fork_url=>nil}
has_user: true, project_already_forked: true, forkable_namespaces: [0], expected: {:forks_count=>4, :project_full_path=>"/project/path", :project_forks_url=>"/project/forks", :can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :new_fork_url=>"/project/new/fork", :user_fork_url=>"/user/fork"}
is expected to eq {:can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :forks_count=>4, :new_f...ject_forks_url=>"/project/forks", :project_full_path=>"/project/path", :user_fork_url=>"/user/fork"}
has_user: true, project_already_forked: true, forkable_namespaces: [0, 1], expected: {:forks_count=>4, :project_full_path=>"/project/path", :project_forks_url=>"/project/forks", :can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :new_fork_url=>"/project/new/fork", :user_fork_url=>nil}
is expected to eq {:can_create_fork=>"true", :can_fork_project=>"true", :can_read_code=>"true", :forks_count=>4, :new_f...rk", :project_forks_url=>"/project/forks", :project_full_path=>"/project/path", :user_fork_url=>nil}
#star_count_data_attributes
when user has already starred the project
is expected to eq {:project_id=>300, :sign_in_path=>"sign/in/path", :star_count=>5, :starred=>"true", :starrers_path=>"/namespace169/project-301/-/starrers"}
when user has not starred the project
is expected to eq {:project_id=>300, :sign_in_path=>"sign/in/path", :star_count=>5, :starred=>"false", :starrers_path=>"/namespace169/project-301/-/starrers"}
#notification_data_attributes
returns default user notification settings
is expected to eq {:emails_disabled=>"false", :notification_dropdown_items=>"[\"global\",\"watch\",\"participating\",\"...disabled\"]", :notification_help_page_path=>"notification/help/path", :notification_level=>"global"}
returns configured users notification settings
is expected to eq {:emails_disabled=>"true", :notification_dropdown_items=>"[\"global\",\"watch\",\"participating\",\"m..."disabled\"]", :notification_help_page_path=>"notification/help/path", :notification_level=>"watch"}
#home_panel_data_attributes
can_read_project: true, is_empty_repo: true
returns default user project details
is expected to eq {:can_read_project=>"true", :is_project_empty=>"true", :project_id=>300}
can_read_project: false, is_empty_repo: false
returns default user project details
is expected to eq {:can_read_project=>"false", :is_project_empty=>"false", :project_id=>300}
#import_from_bitbucket_message
behaves like configure import method modal
as a user
returns a link to contact an administrator
as an administrator
returns a link to configure bitbucket
#show_archived_project_banner?
with no project
behaves like does not show the banner
is expected to equal false
with unsaved project
behaves like does not show the banner
is expected to equal false
with the setting enabled
with an active project
behaves like does not show the banner
is expected to equal false
with an inactive project
shows the banner
#show_inactive_project_deletion_banner?
with no project
behaves like does not show the banner
is expected to equal false
with unsaved project
behaves like does not show the banner
is expected to equal false
with the setting disabled
behaves like does not show the banner
is expected to equal false
with the setting enabled
with an active project
behaves like does not show the banner
is expected to equal false
with an inactive project
shows the banner
#inactive_project_deletion_date
returns the deletion date
#can_admin_associated_clusters?
when project has a cluster
if user can admin cluster
is expected to be truthy
if user can not admin cluster
is expected to be falsey
when project has a group cluster
if user can admin cluster
is expected to be truthy
if user can not admin cluster
is expected to be falsey
when project doesn't have a cluster
if user can admin cluster
is expected to be falsey
if user can not admin cluster
is expected to be falsey
#show_clusters_alert?
is_gitlab_com: false, user_can_admin_cluster: false, expected: false
is expected to eq false
is_gitlab_com: false, user_can_admin_cluster: true, expected: false
is expected to eq false
is_gitlab_com: true, user_can_admin_cluster: false, expected: false
is expected to eq false
is_gitlab_com: true, user_can_admin_cluster: true, expected: true
is expected to eq true
#clusters_deprecation_alert_message
if user has an active licence
displays the correct messagee
if user doesn't have an active licence
displays the correct message
#project_coverage_chart_data_attributes
returns project data to render coverage chart
#localized_project_human_access
key: 0, localized_project_human_access: "No access"
with correct key
key: 5, localized_project_human_access: "Minimal Access"
with correct key
key: 10, localized_project_human_access: "Guest"
with correct key
key: 20, localized_project_human_access: "Reporter"
with correct key
key: 30, localized_project_human_access: "Developer"
with correct key
key: 40, localized_project_human_access: "Maintainer"
with correct key
key: 50, localized_project_human_access: "Owner"
with correct key
#vue_fork_divergence_data
returns empty hash when fork source is not available
when fork source is available
returns the data related to fork divergence
returns view_mr_path if a merge request for the branch exists
when a user cannot create a merge request
project_role: :guest, source_project_role: :developer
create_mr_path is nil
# [RSpecRunTime] RSpec elapsed time: 8 minutes 59.61 seconds. Current RSS: ~1562M. load average: 1.02 1.10 1.05 1/289 10142
project_role: :developer, source_project_role: :guest
create_mr_path is nil
#remote_mirror_setting_enabled?
returns false
#http_clone_url_to_repo
is expected to eq "http_url_to_repo"
#ssh_clone_url_to_repo
is expected to eq "ssh_url_to_repo"
#can_view_branch_rules?
when user is a maintainer
is expected to be truthy
when user is a developer
is expected to be falsey
#can_push_code?
when user is nil
is expected to be falsey
when user is a developer on the project
is expected to be truthy
when user is a reporter on the project
is expected to be falsey
#can_admin_associated_clusters?(project)
project_clusters_exist: false, user_can_admin_project_clusters: false, group_clusters_exist: false, user_can_admin_group_clusters: false, expected: false
is expected to eq false
project_clusters_exist: true, user_can_admin_project_clusters: false, group_clusters_exist: false, user_can_admin_group_clusters: false, expected: false
is expected to eq false
project_clusters_exist: false, user_can_admin_project_clusters: true, group_clusters_exist: false, user_can_admin_group_clusters: false, expected: false
is expected to eq false
project_clusters_exist: false, user_can_admin_project_clusters: false, group_clusters_exist: true, user_can_admin_group_clusters: false, expected: false
is expected to eq false
project_clusters_exist: false, user_can_admin_project_clusters: false, group_clusters_exist: false, user_can_admin_group_clusters: true, expected: false
is expected to eq false
project_clusters_exist: true, user_can_admin_project_clusters: true, group_clusters_exist: false, user_can_admin_group_clusters: false, expected: true
is expected to eq true
project_clusters_exist: false, user_can_admin_project_clusters: false, group_clusters_exist: true, user_can_admin_group_clusters: true, expected: true
is expected to eq true
project_clusters_exist: true, user_can_admin_project_clusters: true, group_clusters_exist: true, user_can_admin_group_clusters: true, expected: true
is expected to eq true
#branch_rules_path
is expected to eq "/namespace169/project-301/-/settings/repository#js-branch-rules"
#visibility_level_content
behaves like returns visibility level content_tag
returns visibility level content_tag
returns visibility level content_tag with extra CSS classes
when project creator is banned
returns hidden resource icon
with hide_projects_of_banned_users feature flag disabled
behaves like returns visibility level content_tag
returns visibility level content_tag
returns visibility level content_tag with extra CSS classes
when project creator is banned
behaves like returns visibility level content_tag
returns visibility level content_tag
returns visibility level content_tag with extra CSS classes
#hidden_issue_icon
when issue is hidden
returns icon with tooltip
when issue is not hidden
returns `nil`
#issue_manual_ordering_class
when sorting by relative position
returns manual ordering class
when manual sorting disabled
returns nil
# [RSpecRunTime] Finishing example group spec/helpers/projects_helper_spec.rb. It took 46.62 seconds. Expected to take 1 minute 34.77 seconds.
# [RSpecRunTime] Starting example group spec/services/auto_merge/base_service_spec.rb. Expected to take 1 minute 17.42 seconds.
AutoMerge::BaseService
#execute
sets properies to the merge request
yields block
returns activated strategy name
when merge parameters are given
sets merge parameters
# [RSpecRunTime] RSpec elapsed time: 9 minutes 10.67 seconds. Current RSS: ~1573M. load average: 1.02 1.09 1.05 1/291 10302
when strategy is merge when pipeline succeeds
sets the auto merge strategy
returns activated strategy name
calls AutoMergeProcessWorker
# [RSpecRunTime] RSpec elapsed time: 9 minutes 15.93 seconds. Current RSS: ~1548M. load average: 0.93 1.07 1.04 1/291 10420
when failed to save merge request
does not yield block
returns failed
tracks the exception
# [RSpecRunTime] RSpec elapsed time: 9 minutes 20.35 seconds. Current RSS: ~1547M. load average: 0.94 1.07 1.04 2/292 10538
when exception happens in yield block
returns failed status
rollback the transaction
tracks the exception
# [RSpecRunTime] RSpec elapsed time: 9 minutes 24.75 seconds. Current RSS: ~1550M. load average: 0.94 1.07 1.04 1/291 10656
#update
when merge params are specified
updates merge params
# [RSpecRunTime] RSpec elapsed time: 9 minutes 26.37 seconds. Current RSS: ~1551M. load average: 1.02 1.09 1.05 1/291 10696
#cancel
behaves like Canceled or Dropped
removes properies from the merge request
yields block
returns success status
when merge params are set
removes merge parameters
# [RSpecRunTime] RSpec elapsed time: 9 minutes 32.37 seconds. Current RSS: ~1547M. load average: 0.94 1.07 1.04 1/291 10853
when failed to save
does not yield block
# [RSpecRunTime] RSpec elapsed time: 9 minutes 33.91 seconds. Current RSS: ~1545M. load average: 0.94 1.07 1.04 1/291 10893
when failed to save merge request
returns error status
# [RSpecRunTime] RSpec elapsed time: 9 minutes 35.45 seconds. Current RSS: ~1544M. load average: 0.95 1.07 1.04 1/291 10933
when exception happens in yield block
returns error
rollback the transaction
tracks the exception
# [RSpecRunTime] RSpec elapsed time: 9 minutes 39.95 seconds. Current RSS: ~1544M. load average: 0.95 1.07 1.04 1/291 11051
#abort
behaves like Canceled or Dropped
removes properies from the merge request
yields block
returns success status
when merge params are set
removes merge parameters
# [RSpecRunTime] RSpec elapsed time: 9 minutes 45.97 seconds. Current RSS: ~1545M. load average: 0.96 1.06 1.04 1/291 11208
when failed to save
does not yield block
# [RSpecRunTime] RSpec elapsed time: 9 minutes 47.49 seconds. Current RSS: ~1542M. load average: 0.96 1.06 1.04 1/291 11248
when failed to save
returns error status
# [RSpecRunTime] RSpec elapsed time: 9 minutes 48.99 seconds. Current RSS: ~1542M. load average: 0.96 1.06 1.04 1/291 11288
when exception happens in yield block
returns error
rollback the transaction
tracks the exception
# [RSpecRunTime] RSpec elapsed time: 9 minutes 53.48 seconds. Current RSS: ~1541M. load average: 0.96 1.06 1.04 1/291 11406
#process
is expected to respond to #process
is expected to raise NotImplementedError
# [RSpecRunTime] RSpec elapsed time: 9 minutes 54.7 seconds. Current RSS: ~1541M. load average: 0.96 1.06 1.04 1/291 11407
#available_for?
can_be_merged: true, open: true, broken: false, discussions: true, blocked: false, draft: false, result: true
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 9 minutes 56.32 seconds. Current RSS: ~1542M. load average: 0.96 1.06 1.04 1/291 11447
can_be_merged: false, open: true, broken: false, discussions: true, blocked: false, draft: false, result: false
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 9 minutes 57.99 seconds. Current RSS: ~1535M. load average: 0.96 1.06 1.04 1/291 11487
can_be_merged: true, open: false, broken: false, discussions: true, blocked: false, draft: false, result: false
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 9 minutes 59.52 seconds. Current RSS: ~1535M. load average: 0.96 1.06 1.04 1/291 11527
can_be_merged: true, open: true, broken: true, discussions: true, blocked: false, draft: false, result: false
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 10 minutes 1.12 seconds. Current RSS: ~1537M. load average: 0.97 1.06 1.04 1/292 11567
can_be_merged: true, open: true, broken: false, discussions: false, blocked: false, draft: false, result: false
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 10 minutes 2.71 seconds. Current RSS: ~1540M. load average: 0.97 1.06 1.04 2/292 11607
can_be_merged: true, open: true, broken: false, discussions: true, blocked: true, draft: false, result: false
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 10 minutes 4.33 seconds. Current RSS: ~1540M. load average: 0.97 1.06 1.04 1/291 11647
can_be_merged: true, open: true, broken: false, discussions: true, blocked: false, draft: true, result: false
returns the expected results
# [RSpecRunTime] RSpec elapsed time: 10 minutes 5.95 seconds. Current RSS: ~1539M. load average: 0.97 1.06 1.04 1/291 11687
# [RSpecRunTime] Finishing example group spec/services/auto_merge/base_service_spec.rb. It took 1 minute 1.32 seconds. Expected to take 1 minute 17.42 seconds.
# [RSpecRunTime] Starting example group spec/services/merge_requests/mergeability_check_service_spec.rb. Expected to take 1 minute 12.15 seconds.
MergeRequests::MergeabilityCheckService
#async_execute
updates merge status to checking
enqueues MergeRequestMergeabilityCheckWorker
when read-only DB
does not enqueue MergeRequestMergeabilityCheckWorker
# [RSpecRunTime] RSpec elapsed time: 10 minutes 9.5 seconds. Current RSS: ~1540M. load average: 0.97 1.06 1.04 1/291 11805
#execute
behaves like mergeable merge request
updates or keeps merge status as can_be_merged
reloads merge head diff
update diff discussion positions
updates the merge ref
returns ServiceResponse.success
ServiceResponse has merge_ref_head payload
# [RSpecRunTime] RSpec elapsed time: 10 minutes 18.15 seconds. Current RSS: ~1541M. load average: 1.13 1.09 1.05 1/291 12294
when concurrent calls
waits first lock and returns "cached" result in subsequent calls
writes the merge-ref once
resets one merge request upon execution
when retry_lease flag is false
the first call succeeds, subsequent concurrent calls get a lock error response
# [RSpecRunTime] RSpec elapsed time: 10 minutes 28.24 seconds. Current RSS: ~1534M. load average: 1.04 1.07 1.04 1/293 12581
when broken
returns ServiceResponse.error
behaves like unmergeable merge request
updates or keeps merge status as cannot_be_merged
does not change the merge ref HEAD
returns ServiceResponse.error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 33.12 seconds. Current RSS: ~1551M. load average: 1.12 1.09 1.05 1/291 12774
when it cannot be merged on git
returns ServiceResponse.error and keeps merge status as cannot_be_merged
# [RSpecRunTime] RSpec elapsed time: 10 minutes 34.53 seconds. Current RSS: ~1552M. load average: 1.12 1.09 1.05 1/291 12828
when MR cannot be merged and has no merge ref
returns ServiceResponse.error
behaves like unmergeable merge request
updates or keeps merge status as cannot_be_merged
does not change the merge ref HEAD
returns ServiceResponse.error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 39.42 seconds. Current RSS: ~1559M. load average: 1.11 1.08 1.05 1/291 13021
when MR cannot be merged and has outdated merge ref
returns ServiceResponse.error
behaves like unmergeable merge request
updates or keeps merge status as cannot_be_merged
does not change the merge ref HEAD
returns ServiceResponse.error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 44.45 seconds. Current RSS: ~1559M. load average: 1.10 1.08 1.04 1/291 13254
when merge request is not given
returns ServiceResponse.error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 45.7 seconds. Current RSS: ~1558M. load average: 1.33 1.13 1.06 1/291 13294
when read-only DB
returns ServiceResponse.error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 46.91 seconds. Current RSS: ~1558M. load average: 1.33 1.13 1.06 1/291 13334
when fails to update the merge-ref
does not reload merge head diff
returns ServiceResponse.error
behaves like unmergeable merge request
updates or keeps merge status as cannot_be_merged
does not change the merge ref HEAD
returns ServiceResponse.error
# [RSpecRunTime] RSpec elapsed time: 10 minutes 52.91 seconds. Current RSS: ~1559M. load average: 1.38 1.15 1.07 1/291 13574
recheck enforced
when MR is marked as mergeable, but repo is not mergeable and MR is not opened
returns ServiceResponse.error
does not change the merge status
# [RSpecRunTime] RSpec elapsed time: 10 minutes 55.31 seconds. Current RSS: ~1558M. load average: 1.43 1.16 1.07 1/291 13657
when MR is mergeable but merge-ref does not exists
behaves like mergeable merge request
updates or keeps merge status as can_be_merged
reloads merge head diff
update diff discussion positions
updates the merge ref
returns ServiceResponse.success
ServiceResponse has merge_ref_head payload
# [RSpecRunTime] RSpec elapsed time: 11 minutes 4.13 seconds. Current RSS: ~1542M. load average: 1.40 1.16 1.07 1/291 14158
when MR is mergeable but merge-ref is already updated
returns ServiceResponse.success
does not recreate the merge-ref
does not reload merge head diff
# [RSpecRunTime] RSpec elapsed time: 11 minutes 7.94 seconds. Current RSS: ~1540M. load average: 1.45 1.17 1.08 1/291 14330
# [RSpecRunTime] Finishing example group spec/services/merge_requests/mergeability_check_service_spec.rb. It took 1 minute 2.01 seconds. Expected to take 1 minute 12.15 seconds.
# [RSpecRunTime] Starting example group spec/models/protected_branch_spec.rb. Expected to take 1 minute 3.33 seconds.
ProtectedBranch
does not allow STI
Associations
is expected to belong to project required: false
is expected to belong to group required: false
is expected to have many merge_access_levels inverse_of => protected_branch
is expected to have many push_access_levels inverse_of => protected_branch
Validation
is expected to validate that :name cannot be empty/falsy
uniqueness
is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id
when the protected_branch was saved previously
is expected not to validate that :name is case-sensitively unique
and name is changed
is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id
# [RSpecRunTime] RSpec elapsed time: 11 minutes 10.38 seconds. Current RSS: ~1548M. load average: 1.41 1.17 1.08 1/291 14331
#validate_either_project_or_top_group
when protected branch does not have project or group association
validate failed
when protected branch is associated with both project and group
validate failed
when protected branch is associated with a subgroup
validate failed
set a group
when associated with group
create successfully
when associated with other namespace
create failed with `ActiveRecord::AssociationTypeMismatch`
#matches?
when the protected branch setting is not a wildcard
returns true for branch names that are an exact match
returns false for branch names that are not an exact match
when the protected branch name contains wildcard(s)
when there is a single '*'
returns true for branch names matching the wildcard
returns false for branch names not matching the wildcard
when the wildcard contains regex symbols other than a '*'
returns true for branch names matching the wildcard
returns false for branch names not matching the wildcard
when there are '*'s at either end
returns true for branch names matching the wildcard
returns false for branch names not matching the wildcard
when there are arbitrarily placed '*'s
returns true for branch names matching the wildcard
returns false for branch names not matching the wildcard
#matching
for direct matches
returns a list of protected branches matching the given branch name
accepts a list of protected branches to search from, so as to avoid a DB call
for wildcard matches
returns a list of protected branches matching the given branch name
accepts a list of protected branches to search from, so as to avoid a DB call
#protected?
existing project
returns true when the branch matches a protected branch via direct match
returns true when the branch matches a protected branch via wildcard match
returns false when the branch does not match a protected branch via direct match
returns false when the branch does not match a protected branch via wildcard match
returns false when branch name is nil
with caching
correctly invalidates a cache
correctly uses the cached version
when project is updated
does not invalidate a cache
# [RSpecRunTime] RSpec elapsed time: 11 minutes 18.37 seconds. Current RSS: ~1581M. load average: 1.38 1.17 1.08 1/287 14374
when other project protected branch is updated
does not invalidate the current project cache
new project
when feature flag `default_branch_protection_defaults` is disabled
when the group has set their own default_branch_protection level
default_branch_protection_level: 0, result: false
protects the default branch based on the default branch protection setting of the group
default_branch_protection_level: 1, result: false
protects the default branch based on the default branch protection setting of the group
default_branch_protection_level: 3, result: true
protects the default branch based on the default branch protection setting of the group
default_branch_protection_level: 2, result: true
protects the default branch based on the default branch protection setting of the group
when the group has not set their own default_branch_protection level
default_branch_protection_level: 0, result: false
protects the default branch based on the instance level default branch protection setting
default_branch_protection_level: 1, result: false
protects the default branch based on the instance level default branch protection setting
default_branch_protection_level: 3, result: true
protects the default branch based on the instance level default branch protection setting
default_branch_protection_level: 2, result: true
protects the default branch based on the instance level default branch protection setting
when feature flag `default_branch_protection_defaults` is enabled
when the group has set their own default_branch_protection level
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>30}], :allowed_to_merge=>[{"access_level"=>30}], :allow_force_push=>true}, result: false
protects the default branch based on the default branch protection setting of the group
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>30}], :allowed_to_merge=>[{"access_level"=>40}], :allow_force_push=>false}, result: false
protects the default branch based on the default branch protection setting of the group
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>40}], :allowed_to_merge=>[{"access_level"=>30}], :allow_force_push=>false}, result: true
protects the default branch based on the default branch protection setting of the group
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>40}], :allowed_to_merge=>[{"access_level"=>40}], :allow_force_push=>false}, result: true
protects the default branch based on the default branch protection setting of the group
when the group has not set their own default_branch_protection level
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>30}], :allowed_to_merge=>[{"access_level"=>30}], :allow_force_push=>true}, result: false
protects the default branch based on the instance level default branch protection setting
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>30}], :allowed_to_merge=>[{"access_level"=>40}], :allow_force_push=>false}, result: false
protects the default branch based on the instance level default branch protection setting
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>40}], :allowed_to_merge=>[{"access_level"=>30}], :allow_force_push=>false}, result: true
protects the default branch based on the instance level default branch protection setting
default_branch_protection_level: {:allowed_to_push=>[{"access_level"=>40}], :allowed_to_merge=>[{"access_level"=>40}], :allow_force_push=>false}, result: true
protects the default branch based on the instance level default branch protection setting
#allow_force_push?
when feature flag disabled
when the attr allow_force_push is true
returns true
when the attr allow_force_push is false
returns false
when feature flag enabled
group_level_value: true, project_level_value: false, result: true
returns result
group_level_value: false, project_level_value: true, result: false
returns result
group_level_value: true, project_level_value: nil, result: true
returns result
group_level_value: false, project_level_value: nil, result: false
returns result
group_level_value: nil, project_level_value: nil, result: false
returns result
#any_protected?
existing project
returns true when any of the branch names match a protected branch via direct match
returns true when any of the branch matches a protected branch via wildcard match
returns false when none of branches does not match a protected branch via direct match
returns false when none of the branches does not match a protected branch via wildcard match
# [RSpecRunTime] RSpec elapsed time: 11 minutes 31.26 seconds. Current RSS: ~1547M. load average: 1.29 1.16 1.07 1/285 14399
.protected_refs
when feature flag enabled
call `all_protected_branches`
when feature flag disabled
call `protected_branches`
.protected_ref_accessible_to?
with guest
is expected to eq false
# [RSpecRunTime] RSpec elapsed time: 11 minutes 32.94 seconds. Current RSS: ~1543M. load average: 1.29 1.16 1.07 1/285 14400
with reporter
is expected to eq false
with developer
is expected to eq false
with maintainer
is expected to eq true
with owner
is expected to eq true
with admin
is expected to eq true
when project is an empty repository
when user is an admin
is expected to eq true
when user is maintainer
is expected to eq true
when user is developer and initial push is allowed
is expected to eq true
when user is developer and initial push is not allowed
is expected to eq false
.by_name
returns protected branches with a matching name
returns protected branches with a partially matching name
returns protected branches with a matching name regardless of the casing
returns nothing when nothing matches
return nothing when query is blank
# [RSpecRunTime] RSpec elapsed time: 11 minutes 43.06 seconds. Current RSS: ~1491M. load average: 1.25 1.15 1.07 1/285 14401
.get_ids_by_name
returns the id for each protected branch matching name
.downcase_humanized_name
returns downcase humanized name
.default_branch?
when the name matches the default branch
is expected to be default branch
when the name does not match the default branch
is expected not to be default branch
when a wildcard name matches the default branch
is expected not to be default branch
#group_level?
when entity is a Group
is expected to be group level
when entity is a Project
is expected not to be group level
# [RSpecRunTime] Finishing example group spec/models/protected_branch_spec.rb. It took 36.33 seconds. Expected to take 1 minute 3.33 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb. Expected to take 51.82 seconds.
Gitlab::Database::Migrations::BackgroundMigrationHelpers
when the migration is running against the main database
behaves like helpers that enqueue background migrations
#queue_background_migration_jobs_by_range_at_intervals
when the model has an ID column
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:36 UTC."
returns the final expected delay
-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:36 UTC."
returns zero when nothing gets queued
when the delay_interval is smaller than the minimum
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.
The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2024-03-08 06:24:36 UTC."
sets the delay_interval to the minimum value
with batch_size option
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:37 UTC."
queues jobs correctly
without batch_size option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:37 UTC."
queues jobs correctly
with other_job_arguments option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:37 UTC."
queues jobs correctly
with initial_delay option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:37 UTC."
queues jobs correctly
with track_jobs option
-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:38 UTC."
creates a record for each job in the database
without track_jobs option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:38 UTC."
does not create records in the database
when the model specifies a primary_column_name
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:38 UTC."
returns the final expected delay
when the primary_column_name is a string
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:39 UTC."
does not raise error
# [RSpecRunTime] RSpec elapsed time: 11 minutes 48.67 seconds. Current RSS: ~1501M. load average: 1.23 1.15 1.07 1/285 14402
when the primary_column_name is not an integer or a string
raises error
when the primary_column_name does not exist
raises error
when the model doesn't have an ID or primary_column_name column
raises error (for now)
when using Migration[2.0]
when restriction is set to gitlab_shared
does raise an exception
when within transaction
does raise an exception
#requeue_background_migration_jobs_by_range_at_intervals
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:42 UTC."
returns the expected duration
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:42 UTC."
queues pending jobs
when using Migration[2.0]
main: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:42 UTC."
does re-enqueue pending jobs
when restriction is set
does raise an exception
when within transaction
does raise an exception
when nothing is queued
-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:43 UTC."
returns expected duration of zero when nothing gets queued
with batch_size option
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:43 UTC."
returns the expected duration
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:43 UTC."
queues pending jobs
-- Scheduled 0 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:43 UTC."
retrieve jobs in batches
with initial_delay option
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2024-03-08 06:43:43 UTC."
returns the expected duration
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2024-03-08 06:43:43 UTC."
queues pending jobs
when nothing is queued
-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:43 UTC."
returns expected duration of zero when nothing gets queued
#finalize_background_migration
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
when within transaction
does raise an exception
when using Migration[2.0]
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
when restriction is set
does raise an exception
when running migration in reconfigured ActiveRecord::Base context
behaves like reconfigures connection stack
does restore connection hierarchy
when removing all tracked job records
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
behaves like removed tracked jobs
removes 'pending' tracked jobs
behaves like removed tracked jobs
removes 'succeeded' tracked jobs
when retaining all tracked job records
retains 'succeeded' tracked jobs
behaves like finalized background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
during retry race condition
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
#migrate_in
calls perform_in for the correct worker
pushes a context with the current class name as caller_id
when a specific coordinator is given
uses that coordinator
#delete_queued_jobs
deletes all queued jobs for the given background migration
when the migration is running against the ci database
behaves like helpers that enqueue background migrations
#queue_background_migration_jobs_by_range_at_intervals
when the model has an ID column
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:47 UTC."
returns the final expected delay
-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:48 UTC."
returns zero when nothing gets queued
when the delay_interval is smaller than the minimum
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.
The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2024-03-08 06:24:48 UTC."
sets the delay_interval to the minimum value
with batch_size option
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:48 UTC."
queues jobs correctly
without batch_size option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:48 UTC."
queues jobs correctly
with other_job_arguments option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:49 UTC."
queues jobs correctly
with initial_delay option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:49 UTC."
queues jobs correctly
with track_jobs option
-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:49 UTC."
creates a record for each job in the database
without track_jobs option
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:50 UTC."
does not create records in the database
when the model specifies a primary_column_name
-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:50 UTC."
returns the final expected delay
when the primary_column_name is a string
-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.
The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2024-03-08 06:30:51 UTC."
does not raise error
# [RSpecRunTime] RSpec elapsed time: 12 minutes 0.35 second. Current RSS: ~1507M. load average: 1.19 1.14 1.07 2/286 14403
when the primary_column_name is not an integer or a string
raises error
when the primary_column_name does not exist
raises error
when the model doesn't have an ID or primary_column_name column
raises error (for now)
when using Migration[2.0]
when restriction is set to gitlab_shared
does raise an exception
when within transaction
does raise an exception
#requeue_background_migration_jobs_by_range_at_intervals
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:54 UTC."
returns the expected duration
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:54 UTC."
queues pending jobs
when using Migration[2.0]
ci: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:54 UTC."
does re-enqueue pending jobs
when restriction is set
does raise an exception
when within transaction
does raise an exception
when nothing is queued
-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:54 UTC."
returns expected duration of zero when nothing gets queued
with batch_size option
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:54 UTC."
returns the expected duration
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2024-03-08 06:40:55 UTC."
queues pending jobs
-- Scheduled 0 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:55 UTC."
retrieve jobs in batches
with initial_delay option
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2024-03-08 06:43:55 UTC."
returns the expected duration
-- Scheduled 2 TestJob jobs with an interval of 600 seconds.
The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2024-03-08 06:43:55 UTC."
queues pending jobs
when nothing is queued
-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.
The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2024-03-08 06:20:55 UTC."
returns expected duration of zero when nothing gets queued
#finalize_background_migration
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
when within transaction
does raise an exception
when using Migration[2.0]
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
when restriction is set
does raise an exception
when running migration in reconfigured ActiveRecord::Base context
behaves like reconfigures connection stack
does restore connection hierarchy
when removing all tracked job records
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
behaves like removed tracked jobs
removes 'pending' tracked jobs
behaves like removed tracked jobs
removes 'succeeded' tracked jobs
when retaining all tracked job records
retains 'succeeded' tracked jobs
behaves like finalized background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
during retry race condition
behaves like finalized tracked background migration
processed the scheduled sidekiq queue
processed the async sidekiq queue
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
#migrate_in
calls perform_in for the correct worker
pushes a context with the current class name as caller_id
when a specific coordinator is given
uses that coordinator
#delete_queued_jobs
deletes all queued jobs for the given background migration
#delete_job_tracking
with default status
retains 'pending' tracked jobs
removes 'succeeded' tracked jobs
with explicit status
removes 'pending' tracked jobs
removes 'succeeded' tracked jobs
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb. It took 24.38 seconds. Expected to take 51.82 seconds.
# [RSpecRunTime] Starting example group spec/models/concerns/milestoneish_spec.rb. Expected to take 47.25 seconds.
Milestone Milestoneish
does not allow STI
#sorted_issues
sorts issues by label priority
limits issue count and keeps the ordering
# [RSpecRunTime] RSpec elapsed time: 12 minutes 11.37 seconds. Current RSS: ~1518M. load average: 1.16 1.14 1.07 1/287 14412
with attributes visibility
#issue_participants_visible_by_user
visibility: :public, user_role: nil, result: [:member]
returns the proper participants
visibility: :public, user_role: :non_member, result: [:member]
returns the proper participants
visibility: :public, user_role: :guest, result: [:member]
returns the proper participants
visibility: :public, user_role: :member, result: [:member, :assignee]
returns the proper participants
visibility: :internal, user_role: nil, result: []
returns the proper participants
visibility: :internal, user_role: :non_member, result: [:member]
returns the proper participants
visibility: :internal, user_role: :guest, result: [:member]
returns the proper participants
visibility: :internal, user_role: :member, result: [:member, :assignee]
returns the proper participants
visibility: :private, user_role: nil, result: []
returns the proper participants
visibility: :private, user_role: :non_member, result: []
returns the proper participants
visibility: :private, user_role: :guest, result: [:member]
returns the proper participants
visibility: :private, user_role: :member, result: [:member, :assignee]
returns the proper participants
#issue_labels_visible_by_user
visibility: :public, user_role: nil, result: [:label1]
returns the proper participants
visibility: :public, user_role: :non_member, result: [:label1]
returns the proper participants
visibility: :public, user_role: :guest, result: [:label1]
returns the proper participants
visibility: :public, user_role: :member, result: [:label1, :label2]
returns the proper participants
visibility: :internal, user_role: nil, result: []
returns the proper participants
visibility: :internal, user_role: :non_member, result: [:label1]
returns the proper participants
visibility: :internal, user_role: :guest, result: [:label1]
returns the proper participants
visibility: :internal, user_role: :member, result: [:label1, :label2]
returns the proper participants
visibility: :private, user_role: nil, result: []
returns the proper participants
visibility: :private, user_role: :non_member, result: []
returns the proper participants
visibility: :private, user_role: :guest, result: [:label1]
returns the proper participants
visibility: :private, user_role: :member, result: [:label1, :label2]
returns the proper participants
#sorted_merge_requests
sorts merge requests by label priority
#merge_requests_visible_to_user
when project is private
does not return any merge request for a non member
returns milestone merge requests for a member
when project is public
when merge requests are available to anyone
returns milestone merge requests for a non member
when merge requests are available to project members
does not return any merge request for a non member
returns milestone merge requests for a member
when milestone is at parent level group
does not return any merge request for a non member
returns milestone merge requests for a member
# [RSpecRunTime] RSpec elapsed time: 12 minutes 26.56 seconds. Current RSS: ~1501M. load average: 1.12 1.13 1.07 1/290 14436
#complete?
returns false when has items opened
returns true when all items are closed
#percent_complete
with division by zero
is expected to eq 0
#closed_issues_count
counts all closed issues including confidential
#total_issues_count
counts all issues including confidential
#total_merge_requests_count
counts merge requests
#remaining_days
shows 0 if no due date
shows 0 if expired
shows correct remaining days
# [RSpecRunTime] RSpec elapsed time: 12 minutes 31.46 seconds. Current RSS: ~1497M. load average: 1.11 1.13 1.07 1/290 14437
#elapsed_days
shows 0 if no start_date set
shows 0 if start_date is a future
shows correct amount of days
# [RSpecRunTime] RSpec elapsed time: 12 minutes 33.67 seconds. Current RSS: ~1488M. load average: 1.11 1.13 1.07 1/287 14438
#total_time_spent
calculates total time spent
includes merge request time spent
# [RSpecRunTime] RSpec elapsed time: 12 minutes 34.75 seconds. Current RSS: ~1486M. load average: 1.11 1.13 1.07 1/287 14439
#human_total_time_spent
returns nil if no time has been spent
#total_time_estimate
calculates total estimate
includes merge request time estimate
#human_total_time_estimate
returns nil if no time has been spent
#expires_at
returns the date when milestone expires
returns the date when milestone expires
# [RSpecRunTime] Finishing example group spec/models/concerns/milestoneish_spec.rb. It took 28.46 seconds. Expected to take 47.25 seconds.
# [RSpecRunTime] Starting example group spec/views/search/_results.html.haml_spec.rb. Expected to take 43.49 seconds.
search/_results
page size
when search results have a count
displays the page size
# [RSpecRunTime] RSpec elapsed time: 12 minutes 39.43 seconds. Current RSS: ~1491M. load average: 1.18 1.14 1.07 1/285 14440
when search results do not have a count
does not display the page size
# [RSpecRunTime] RSpec elapsed time: 12 minutes 41.03 seconds. Current RSS: ~1480M. load average: 1.17 1.14 1.07 1/285 14441
when searching notes which contain quotes in markdown
renders plain quotes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 43.07 seconds. Current RSS: ~1478M. load average: 1.17 1.14 1.07 1/285 14442
rendering all types of search results
when scope is issues
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 46.03 seconds. Current RSS: ~1471M. load average: 1.16 1.14 1.07 1/291 14516
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 47.59 seconds. Current RSS: ~1469M. load average: 1.16 1.14 1.07 1/290 14517
when scope is merge_requests
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 49.26 seconds. Current RSS: ~1463M. load average: 1.16 1.14 1.07 1/290 14518
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 50.85 seconds. Current RSS: ~1460M. load average: 1.14 1.13 1.07 1/290 14519
git blame click tracking
when admin mode is enabled
renders the click link event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 53.8 seconds. Current RSS: ~1462M. load average: 1.14 1.13 1.07 1/290 14523
when admin mode is disabled
does not render the click link event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 55.37 seconds. Current RSS: ~1460M. load average: 1.13 1.13 1.07 1/285 14524
when scope is blobs
does not render the sidebar
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 58.51 seconds. Current RSS: ~1475M. load average: 1.13 1.13 1.07 1/285 14528
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 0.15 second. Current RSS: ~1480M. load average: 1.12 1.13 1.07 1/285 14529
when scope is notes
does not render the sidebar
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 3.49 seconds. Current RSS: ~1488M. load average: 1.12 1.13 1.07 1/286 14530
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 5.2 seconds. Current RSS: ~1491M. load average: 1.11 1.13 1.07 1/286 14531
when scope is wiki_blobs
does not render the sidebar
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 8.38 seconds. Current RSS: ~1492M. load average: 1.11 1.13 1.07 1/285 14539
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 9.94 seconds. Current RSS: ~1492M. load average: 1.11 1.13 1.07 1/285 14540
when scope is milestones
does not render the sidebar
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 13.04 seconds. Current RSS: ~1490M. load average: 1.10 1.12 1.07 1/285 14541
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 13 minutes 14.6 seconds. Current RSS: ~1490M. load average: 1.10 1.12 1.07 1/285 14542
# [RSpecRunTime] Finishing example group spec/views/search/_results.html.haml_spec.rb. It took 37.42 seconds. Expected to take 43.49 seconds.
# [RSpecRunTime] Starting example group spec/scripts/internal_events/cli_spec.rb. Expected to take 40.84 seconds.
Cli
behaves like definition fixtures are valid
for events
when offline
behaves like creates the right defintion files
in scenario: Creates a new event with product stage/section/group input manually
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Creates a new metric with product stage/section/group input manually
# [RSpecRunTime] RSpec elapsed time: 13 minutes 16.67 seconds. Current RSS: ~1536M. load average: 1.09 1.12 1.07 1/286 14545
when window size is unavailable
behaves like creates the right defintion files
in scenario: Terminal size does not prevent file creation
when creating new events
behaves like creates the right defintion files
in scenario: Creates a new event and flows directly into metric creation
behaves like creates the right defintion files
in scenario: Requires description & action before continuing
behaves like creates the right defintion files
in scenario: Does not allow existing events for action
behaves like creates the right defintion files
in scenario: Creates a new event without identifiers
behaves like creates the right defintion files
in scenario: Smashing the keyboard/return creates an event & metrics with the most common attributes, then shows usage
behaves like creates the right defintion files
in scenario: Creates an event after helping the user figure out next steps
behaves like creates the right defintion files
in scenario: Creates a new event and flows directly into usage examples
behaves like creates the right defintion files
in scenario: Skips event creation, then saves event & flows directly into metric creation
with invalid event name
prompts user to select another name
when user doesn't know what they're trying to do
handles when user isn't trying to track product usage
handles when product usage can't be tracked with events
handles when user needs to add a new event
handles when user needs to add a new metric
when showing usage examples
for an event with identifiers
shows backend examples
for an event without identifiers
shows all examples
when viewing examples for multiple events
switches between events gracefully (FAILED - 1)
# [RSpecRunTime] RSpec elapsed time: 13 minutes 41.75 seconds. Current RSS: ~1616M. load average: 0.85 1.06 1.05 1/285 14546
behaves like definition fixtures are valid
for metrics
when creating new metrics
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Create a weekly/monthly metric for a single event
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Create a weekly/monthly metric for a multiple events, but select only one event
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Create a weekly/monthly metric for multiple events
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Create an all time total metric for a single event
behaves like creates the right defintion files
in scenario: Try to create a database metric
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Create an all time total metric for a single event, and confirm each attribute copied from event
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: Create a metric after helping the user figure out next steps
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: User overwrites metric that already exists
behaves like creates the right defintion files
tput: No value for $TERM and no -T specified
in scenario: User opts not to overwrite metric that already exists
when creating a metric from multiple events
tput: No value for $TERM and no -T specified
filters the product group options based on common section
tput: No value for $TERM and no -T specified
filters the product group options based on common section & stage
# [RSpecRunTime] RSpec elapsed time: 13 minutes 50.46 seconds. Current RSS: ~1728M. load average: 0.87 1.06 1.05 1/286 14558
when product group for event no longer exists
tput: No value for $TERM and no -T specified
prompts user to select another group
when creating a metric for an event which has metrics
tput: No value for $TERM and no -T specified
shows all metrics options
with an existing weekly metric
tput: No value for $TERM and no -T specified
partially filters metric options
# [RSpecRunTime] RSpec elapsed time: 13 minutes 53.02 seconds. Current RSS: ~1737M. load average: 0.87 1.06 1.05 2/286 14562
with an existing total metric
tput: No value for $TERM and no -T specified
filters whole metric options
when event excludes identifiers
tput: No value for $TERM and no -T specified
filters unavailable identifiers
when all metrics already exist
tput: No value for $TERM and no -T specified
exits the script and directs user to search for existing metrics
# [RSpecRunTime] Finishing example group spec/scripts/internal_events/cli_spec.rb. It took 40.92 seconds. Expected to take 40.84 seconds.
# [RSpecRunTime] Starting example group spec/finders/ci/runner_jobs_finder_spec.rb. Expected to take 36.85 seconds.
Ci::RunnerJobsFinder
#execute
when params is empty
returns all jobs assigned to Runner
# [RSpecRunTime] RSpec elapsed time: 13 minutes 58.67 seconds. Current RSS: ~1686M. load average: 0.88 1.06 1.05 1/285 14566
when the user has guest access
does not returns jobs the user does not have permission to see
# [RSpecRunTime] RSpec elapsed time: 13 minutes 59.99 seconds. Current RSS: ~1634M. load average: 0.88 1.06 1.05 1/285 14567
when the user is admin
is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u...: 9, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 10, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 11, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 12, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 13, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>
when user is developer
is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u...: 9, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 10, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 11, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 12, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2024-03-08 08:50:29.000000000 +0000", u... 13, partition_id: 101, auto_canceled_by_partition_id: 100, auto_canceled_by_id: nil, tag_list: nil>
when the user has different access levels in different projects
returns only the jobs the user has permission to see
# [RSpecRunTime] RSpec elapsed time: 14 minutes 2.88 seconds. Current RSS: ~1587M. load average: 0.89 1.06 1.05 1/286 14568
when the user has reporter access level or greater
returns jobs assigned to the Runner that the user has access to
when params contains status
when status is created
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 4.12 seconds. Current RSS: ~1566M. load average: 0.89 1.06 1.05 1/286 14569
when status is waiting_for_resource
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 5.17 seconds. Current RSS: ~1547M. load average: 0.98 1.07 1.06 1/286 14570
when status is preparing
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 6.27 seconds. Current RSS: ~1540M. load average: 0.98 1.07 1.06 1/286 14571
when status is waiting_for_callback
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 7.37 seconds. Current RSS: ~1528M. load average: 0.98 1.07 1.06 1/286 14572
when status is pending
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 8.49 seconds. Current RSS: ~1523M. load average: 0.98 1.07 1.06 1/286 14573
when status is running
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 9.67 seconds. Current RSS: ~1525M. load average: 0.98 1.07 1.06 1/286 14574
when status is success
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 10.86 seconds. Current RSS: ~1528M. load average: 0.98 1.07 1.05 1/286 14575
when status is failed
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 11.97 seconds. Current RSS: ~1528M. load average: 0.98 1.07 1.05 1/286 14576
when status is canceling
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 13.06 seconds. Current RSS: ~1525M. load average: 0.98 1.07 1.05 1/286 14577
when status is canceled
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 14.22 seconds. Current RSS: ~1525M. load average: 0.98 1.07 1.05 1/286 14578
when status is skipped
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 15.42 seconds. Current RSS: ~1523M. load average: 0.99 1.07 1.05 1/286 14579
when status is manual
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 16.55 seconds. Current RSS: ~1521M. load average: 0.99 1.07 1.05 1/286 14580
when status is scheduled
returns matched job
# [RSpecRunTime] RSpec elapsed time: 14 minutes 17.65 seconds. Current RSS: ~1520M. load average: 0.99 1.07 1.05 1/286 14581
when system_id is specified
returns jobs from the specified system
when specified system_id does not exist
is expected to be empty
when order_by and sort are specified
when order_by id and sort is asc
sorts as id: :asc
when order_by is specified and sort is not specified
when order_by id and sort is not specified
sorts as id: :desc
# [RSpecRunTime] Finishing example group spec/finders/ci/runner_jobs_finder_spec.rb. It took 23.09 seconds. Expected to take 36.85 seconds.
# [RSpecRunTime] Starting example group spec/policies/commit_policy_spec.rb. Expected to take 35.31 seconds.
CommitPolicy
#rules
when project is public
when the user is not a project member
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 20.59 seconds. Current RSS: ~1537M. load average: 1.07 1.09 1.06 3/288 14604
when repository access level is private
when the user is not a project member
behaves like cannot read commit nor create a note
cannot read commit
cannot create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 22.41 seconds. Current RSS: ~1548M. load average: 1.07 1.09 1.06 1/289 14627
when the user is a direct project member
and the user is a developer
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 24.48 seconds. Current RSS: ~1566M. load average: 1.07 1.09 1.06 1/290 14650
when the user is an inherited member from the group
and the user is a guest
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 26.57 seconds. Current RSS: ~1572M. load average: 1.14 1.10 1.06 1/290 14673
and the user is a reporter
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 28.74 seconds. Current RSS: ~1567M. load average: 1.14 1.10 1.06 1/290 14696
and the user is a developer
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 30.77 seconds. Current RSS: ~1558M. load average: 1.13 1.10 1.06 1/290 14719
when project is private
when the user is not a project member
behaves like cannot read commit nor create a note
cannot read commit
cannot create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 32.58 seconds. Current RSS: ~1553M. load average: 1.13 1.10 1.06 1/290 14742
when the user is a direct project member
and the user is a developer
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 34.75 seconds. Current RSS: ~1555M. load average: 1.13 1.10 1.06 1/290 14765
and the user is a guest
cannot download code
behaves like cannot read commit nor create a note
cannot read commit
cannot create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 37.86 seconds. Current RSS: ~1555M. load average: 1.12 1.10 1.06 1/290 14799
when the user is an inherited member from the group
and the user is a guest
behaves like cannot read commit nor create a note
cannot read commit
cannot create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 40.03 seconds. Current RSS: ~1552M. load average: 1.11 1.10 1.06 1/290 14822
and the user is a reporter
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 42.2 seconds. Current RSS: ~1546M. load average: 1.11 1.10 1.06 1/290 14845
and the user is a developer
behaves like can read commit and create a note
can read commit
can create a note
# [RSpecRunTime] RSpec elapsed time: 14 minutes 44.28 seconds. Current RSS: ~1554M. load average: 1.11 1.10 1.06 1/290 14868
# [RSpecRunTime] Finishing example group spec/policies/commit_policy_spec.rb. It took 25.69 seconds. Expected to take 35.31 seconds.
# [RSpecRunTime] Starting example group spec/services/projects/update_repository_storage_service_spec.rb. Expected to take 32.85 seconds.
Projects::UpdateRepositoryStorageService
#execute
without wiki and design repository
when the move succeeds
moves the repository to the new storage and unmarks the repository as read-only
# [RSpecRunTime] RSpec elapsed time: 14 minutes 45.58 seconds. Current RSS: ~1552M. load average: 1.10 1.09 1.06 1/290 14878
when touch raises an exception
marks the storage move as failed and restores read-write access
when the filesystems are the same
updates the database without trying to move the repostory
when the move fails
unmarks the repository as read-only without updating the repository storage
when the cleanup fails
sets the correct state
when the checksum does not match
unmarks the repository as read-only without updating the repository storage
with repository pool
when project had a repository pool
creates a new repository pool and connects project to it
when new shard has a repository pool
connects project to it
# [RSpecRunTime] RSpec elapsed time: 14 minutes 51.58 seconds. Current RSS: ~1549M. load average: 1.09 1.09 1.06 1/289 14936
when new shard has a repository pool without the root project
connects project to it
# [RSpecRunTime] RSpec elapsed time: 14 minutes 53.25 seconds. Current RSS: ~1544M. load average: 1.09 1.09 1.06 1/287 14952
when repository does not exist
does not mirror object pool
when project belongs to repository pool, but not as a root project
creates a new repository pool and connects project to it
# [RSpecRunTime] RSpec elapsed time: 14 minutes 55.64 seconds. Current RSS: ~1529M. load average: 1.08 1.09 1.06 1/285 14968
when project belongs to the repository pool without a root project
creates a new repository pool without a root project and connects project to it
# [RSpecRunTime] RSpec elapsed time: 14 minutes 57.29 seconds. Current RSS: ~1526M. load average: 1.08 1.09 1.06 1/285 14984
when object pool checksum does not match
raises an error and removes the new object pool repository
# [RSpecRunTime] RSpec elapsed time: 14 minutes 58.3 seconds. Current RSS: ~1526M. load average: 1.08 1.09 1.06 1/285 14993
when the repository move is finished
is idempotent
when the repository move is failed
is idempotent
project with no repositories
updates the database
with wiki repository
when the move succeeds
moves the project and its wiki repository to the new storage and unmarks the repository as read-only
when the filesystems are the same
updates the database without trying to move the repostory
when the move of the wiki repository fails
unmarks the repository as read-only without updating the repository storage
when the cleanup of the wiki repository fails
sets the correct state
when the checksum of the wiki repository does not match
unmarks the repository as read-only without updating the repository storage
with design repository
when the move succeeds
moves the project and its design repository to the new storage and unmarks the repository as read-only
when the filesystems are the same
updates the database without trying to move the repostory
when the move of the design repository fails
unmarks the repository as read-only without updating the repository storage
when the cleanup of the design repository fails
sets the correct state
when the checksum of the design repository does not match
unmarks the repository as read-only without updating the repository storage
# [RSpecRunTime] Finishing example group spec/services/projects/update_repository_storage_service_spec.rb. It took 24.88 seconds. Expected to take 32.85 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/project_authorizations_spec.rb. Expected to take 31.92 seconds.
Gitlab::ProjectAuthorizations
user added to group and project
returns the correct number of authorizations
includes the correct projects
includes the correct access levels
# [RSpecRunTime] RSpec elapsed time: 15 minutes 13.63 seconds. Current RSS: ~1522M. load average: 1.14 1.10 1.07 1/285 15130
unapproved access request
group membership
does not create authorization
inherited group membership
does not create authorization
project membership
does not create authorization
shared group
does not create authorization
shared project
does not create authorization
user with minimal access to group
group membership
does not create authorization
inherited group membership
does not create authorization
shared group
does not create authorization
shared project
does not create authorization
with nested groups
includes nested groups
inherits access levels when the user is not a member of a nested group
uses the greatest access level when a user is a member of a nested group
# [RSpecRunTime] RSpec elapsed time: 15 minutes 22.22 seconds. Current RSS: ~1508M. load average: 1.19 1.11 1.07 1/285 15131
with shared projects
creates proper authorizations
even when the `lock_memberships_to_ldap` setting has been turned ON
creates proper authorizations
# [RSpecRunTime] RSpec elapsed time: 15 minutes 23.38 seconds. Current RSS: ~1508M. load average: 1.19 1.11 1.07 1/285 15132
when the group containing the project has forbidden group shares for any of its projects
does not create authorizations
with shared groups
group user
creates proper authorizations
# [RSpecRunTime] RSpec elapsed time: 15 minutes 25.79 seconds. Current RSS: ~1501M. load average: 1.18 1.11 1.07 1/285 15133
with lower group access level than max access level for share
creates proper authorizations
parent group user
creates proper authorizations
child group user
creates proper authorizations
user without accepted access request
does not have access to group and its projects
unrelated project owner
does not have access to group and its projects
# [RSpecRunTime] RSpec elapsed time: 15 minutes 30.27 seconds. Current RSS: ~1499M. load average: 1.16 1.11 1.07 1/285 15134
with pending memberships
group membership
does not create authorization
inherited group membership
does not create authorization
project membership
does not create authorization
shared group
does not create authorization
shared project
does not create authorization
# [RSpecRunTime] Finishing example group spec/lib/gitlab/project_authorizations_spec.rb. It took 25.09 seconds. Expected to take 31.92 seconds.
# [RSpecRunTime] Starting example group spec/models/container_registry/protection/rule_spec.rb. Expected to take 30.62 seconds.
ContainerRegistry::Protection::Rule
does not allow STI
enums
is expected to define :push_protected_up_to_access_level as an enum backed by an integer with values ‹{developer: 30, maintainer: 40, owner: 50}›, prefix: :push_protected_up_to
is expected to define :delete_protected_up_to_access_level as an enum backed by an integer with values ‹{developer: 30, maintainer: 40, owner: 50}›, prefix: :delete_protected_up_to
behaves like having unique enum values
has unique values in "delete_protected_up_to_access_level"
has unique values in "push_protected_up_to_access_level"
.for_push_exists?
when the repository path matches multiple protection rules
project: project_with_crpr, access_level: 20, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-stage-sha-1234" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 30, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-stage-sha-1234" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 40, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-stage-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 40, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-stage-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 50, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-stage-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 60, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-stage-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 30, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 40, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 50, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 60, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 30, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-release-v1" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 50, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-release-v1" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 60, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-release-v1" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 30, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-any-suffix" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 40, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-any-suffix" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 50, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-any-suffix" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 30, repository_path: lazy { "#{project_with_crpr.full_path}/non-matching-container" }, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 0, repository_path: lazy { "#{project_with_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: true
is expected to eq true
project: project_with_crpr, access_level: 0, repository_path: "", for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: nil, repository_path: nil, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: 30, repository_path: nil, for_push_exists: false
is expected to eq false
project: project_with_crpr, access_level: nil, repository_path: lazy { "#{project_with_crpr.full_path}/non-matching-container" }, for_push_exists: false
is expected to eq false
project: project_without_crpr, access_level: 30, repository_path: lazy { "#{project_without_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_without_crpr, access_level: 40, repository_path: lazy { "#{project_without_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: false
is expected to eq false
project: project_without_crpr, access_level: 50, repository_path: lazy { "#{project_without_crpr.full_path}/my-container-prod-sha-1234" }, for_push_exists: false
is expected to eq false
relationships
is expected to belong to project required: false inverse_of => container_registry_protection_rules
.for_repository_path
with several container registry protection rule scenarios
repository_path: lazy { "#{project.full_path}/my_container" }, expected_container_registry_protection_rules: [container_registry_protection_rule]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 5, project_id: 718, created_at: "2024-03-08 06:24:30.122332...d_up_to_access_level: "developer", repository_path_pattern: "namespace606/project-758/my_container">
repository_path: lazy { "#{project.full_path}/my2container" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-2" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with-wildcard-start" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_start]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 6, project_id: 718, created_at: "2024-03-08 06:24:30.128092...evel: "developer", repository_path_pattern: "namespace606/project-758/*my_container-with-wildca...">
repository_path: lazy { "#{project.full_path}/my_container-with-wildcard-start-end" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/anychar-my_container-with-wildcard-start" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_start]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 6, project_id: 718, created_at: "2024-03-08 06:24:30.128092...evel: "developer", repository_path_pattern: "namespace606/project-758/*my_container-with-wildca...">
repository_path: lazy { "#{project.full_path}/anychar-my_container-with-wildcard-start-anychar" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with-wildcard-end" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_end]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 7, project_id: 718, created_at: "2024-03-08 06:24:30.133592...evel: "developer", repository_path_pattern: "namespace606/project-758/my_container-with-wildcar...">
repository_path: lazy { "#{project.full_path}/my_container-with-wildcard-end-anychar:1234567890" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_end]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 7, project_id: 718, created_at: "2024-03-08 06:24:30.133592...evel: "developer", repository_path_pattern: "namespace606/project-758/my_container-with-wildcar...">
repository_path: lazy { "#{project.full_path}/anychar-my_container-with-wildcard-end" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/anychar-my_container-with-wildcard-end-anychar:1234567890" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with-wildcard-middle" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_middle]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 8, project_id: 718, created_at: "2024-03-08 06:24:30.138579...evel: "developer", repository_path_pattern: "namespace606/project-758/*my_container-with-wildca...">
repository_path: lazy { "#{project.full_path}/anychar-my_container-with-wildcard-middle" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_middle]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 8, project_id: 718, created_at: "2024-03-08 06:24:30.138579...evel: "developer", repository_path_pattern: "namespace606/project-758/*my_container-with-wildca...">
repository_path: lazy { "#{project.full_path}/anychar-my_container-anychar-wildcard-middle-anychar" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with-wildcard-start-middle-end" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_start_middle_end]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 9, project_id: 718, created_at: "2024-03-08 06:24:30.143522...evel: "developer", repository_path_pattern: "namespace606/project-758/**my_container**with-wild...">
repository_path: lazy { "#{project.full_path}/anychar-my_container-anychar-with-wildcard-start-middle-end-anychar" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_start_middle_end]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 9, project_id: 718, created_at: "2024-03-08 06:24:30.143522...evel: "developer", repository_path_pattern: "namespace606/project-758/**my_container**with-wild...">
repository_path: lazy { "#{project.full_path}/****my_container-*****-with-wildcard-start-middle-end****" }, expected_container_registry_protection_rules: [protection_rule_with_wildcard_start_middle_end]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 9, project_id: 718, created_at: "2024-03-08 06:24:30.143522...evel: "developer", repository_path_pattern: "namespace606/project-758/**my_container**with-wild...">
repository_path: lazy { "other-#{project.full_path}/anychar-my_container-anychar-with-wildcard-start-middle-end-anychar" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with_underscore" }, expected_container_registry_protection_rules: [protection_rule_with_underscore]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 10, project_id: 718, created_at: "2024-03-08 06:24:30.14837...evel: "developer", repository_path_pattern: "namespace606/project-758/my_container-with_undersc...">
repository_path: lazy { "#{project.full_path}/my_container-with*underscore" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with_any_underscore" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with-regex-char-period.*" }, expected_container_registry_protection_rules: [protection_rule_with_regex_char_period]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 11, project_id: 718, created_at: "2024-03-08 06:24:30.15325...evel: "developer", repository_path_pattern: "namespace606/project-758/my_container-with-regex-c...">
repository_path: lazy { "#{project.full_path}/my_container-with-regex-char-period.anychar" }, expected_container_registry_protection_rules: [protection_rule_with_regex_char_period]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 11, project_id: 718, created_at: "2024-03-08 06:24:30.15325...evel: "developer", repository_path_pattern: "namespace606/project-758/my_container-with-regex-c...">
repository_path: lazy { "#{project.full_path}/my_container-with-regex-char-period." }, expected_container_registry_protection_rules: [protection_rule_with_regex_char_period]
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 11, project_id: 718, created_at: "2024-03-08 06:24:30.15325...evel: "developer", repository_path_pattern: "namespace606/project-758/my_container-with-regex-c...">
repository_path: lazy { "#{project.full_path}/my_container-with-regex-char-period" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: lazy { "#{project.full_path}/my_container-with-regex-char-period-any" }, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: nil, expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: "", expected_container_registry_protection_rules: []
is expected to contain exactly
repository_path: "other_project_scope/any_container", expected_container_registry_protection_rules: []
is expected to contain exactly
with multiple matching container registry protection rules
is expected to contain exactly #<ContainerRegistry::Protection::Rule id: 12, project_id: 718, created_at: "2024-03-08 06:24:33.12460..._up_to_access_level: "developer", repository_path_pattern: "namespace606/project-758/my_container*"> and #<ContainerRegistry::Protection::Rule id: 5, project_id: 718, created_at: "2024-03-08 06:24:30.122332...d_up_to_access_level: "developer", repository_path_pattern: "namespace606/project-758/my_container">
validations
#repository_path_pattern
is expected to validate that :repository_path_pattern cannot be empty/falsy
is expected to validate that the length of :repository_path_pattern is at most 255
#path_pattern_starts_with_project_full_path
project: project_downcased_path, repository_path_pattern: lazy { project_downcased_path.full_path }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace609/project-761"›
project: project_downcased_path, repository_path_pattern: lazy { "#{project_downcased_path.full_path}*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace610/project-762*"›
project: project_downcased_path, repository_path_pattern: lazy { "#{project_downcased_path.full_path}/*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace611/project-763/*"›
project: project_downcased_path, repository_path_pattern: lazy { "#{project_downcased_path.full_path}/sub-image*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace612/project-764/sub-image*"›
project: project_downcased_path, repository_path_pattern: lazy { "#{project_downcased_path.full_path}/sub-image/*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace613/project-765/sub-image/*"›
project: project_downcased_path, repository_path_pattern: lazy { "#{project_downcased_path.full_path}/sub-image/*/sub-sub-image" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace614/project-766/sub-image/*/sub-sub-image"›
project: project_downcased_path, repository_path_pattern: lazy { "#{project_downcased_path.full_path}/sub-image/sub-sub-image*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace615/project-767/sub-image/sub-sub-image*"›
project: project_downcased_path, repository_path_pattern: lazy { project_downcased_path.full_path.upcase }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"NAMESPACE616/PROJECT-768"›
project: project_downcased_path, repository_path_pattern: lazy { "*#{project_downcased_path.path}" }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"*project-769"›
project: project_downcased_path, repository_path_pattern: lazy { "*#{project_downcased_path.path}/*" }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"*project-770/*"›
project: project_downcased_path, repository_path_pattern: lazy { "any-project-scope/#{project_downcased_path.path}" }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"any-project-scope/project-771"›
project: project_downcased_path, repository_path_pattern: lazy { build(:project).full_path }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"namespace621/project-773"›
project: project_downcased_path, repository_path_pattern: lazy { project_downcased_path.path }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"project-774"›
project: project_downcased_path, repository_path_pattern: nil, allowed: false
is expected not to allow :repository_path_pattern to be ‹nil›
project: project_mixcased_path, repository_path_pattern: lazy { project_mixcased_path.full_path.downcase }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace624/namespace1/mixcased-project-path"›
project: project_mixcased_path, repository_path_pattern: lazy { "#{project_mixcased_path.full_path.downcase}*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace625/namespace1/mixcased-project-path*"›
project: project_mixcased_path, repository_path_pattern: lazy { "#{project_mixcased_path.full_path.downcase}/sub-image/*" }, allowed: true
is expected to allow :repository_path_pattern to be ‹"namespace626/namespace1/mixcased-project-path/sub-image/*"›
project: project_mixcased_path, repository_path_pattern: lazy { project_mixcased_path.full_path }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"namespace627/namespace1/MIXCASED-project-path"›
project: project_mixcased_path, repository_path_pattern: lazy { project_mixcased_path.full_path.upcase }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"NAMESPACE628/NAMESPACE1/MIXCASED-PROJECT-PATH"›
project: project_mixcased_path, repository_path_pattern: lazy { "#{project_mixcased_path.full_path}/sub-image*" }, allowed: false
is expected not to allow :repository_path_pattern to be ‹"namespace629/namespace1/MIXCASED-project-path/sub-image*"›
#delete_protected_up_to_access_level
is expected to validate that :delete_protected_up_to_access_level cannot be empty/falsy
#push_protected_up_to_access_level
is expected to validate that :push_protected_up_to_access_level cannot be empty/falsy
# [RSpecRunTime] Finishing example group spec/models/container_registry/protection/rule_spec.rb. It took 9.85 seconds. Expected to take 30.62 seconds.
# [RSpecRunTime] Starting example group spec/models/merge_request_diff_commit_spec.rb. Expected to take 28.06 seconds.
MergeRequestDiffCommit
does not allow STI
behaves like a BulkInsertSafe model
when calling class methods directly
raises an error when method is not bulk-insert safe
does not raise an error when method is bulk-insert safe
.bulk_insert!
when all items are valid
inserts them all
returns an empty array
# [RSpecRunTime] RSpec elapsed time: 15 minutes 59.35 seconds. Current RSS: ~1562M. load average: 1.16 1.12 1.07 1/290 15455
when some items are invalid
does not insert any of them and raises an error
inserts them anyway when bypassing validations
associations
is expected to belong to commit_author required: false
is expected to belong to committer required: false
#to_hash
returns the same results as Commit#to_hash, except for parent_ids
# [RSpecRunTime] RSpec elapsed time: 16 minutes 0.91 second. Current RSS: ~1569M. load average: 1.15 1.11 1.07 1/292 15498
.create_bulk
inserts the commits into the database en masse
creates diff commit users
with dates larger than the DB limit
uses a sanitized date
# [RSpecRunTime] RSpec elapsed time: 16 minutes 4.21 seconds. Current RSS: ~1575M. load average: 1.15 1.11 1.07 1/291 15632
.prepare_commits_for_bulk_insert
returns the commit hashes and unique user tuples
# [RSpecRunTime] Finishing example group spec/models/merge_request_diff_commit_spec.rb. It took 20.22 seconds. Expected to take 28.06 seconds.
# [RSpecRunTime] Starting example group spec/lib/container_registry/client_spec.rb. Expected to take 27.53 seconds.
ContainerRegistry::Client
#repository_manifest
behaves like handling repository manifest
GET /v2/:name/manifests/mytag
behaves like handling timeouts
handles network timeouts
logs the error
behaves like handling repository manifest
GET /v2/:name/manifests/mytag
behaves like handling timeouts
handles network timeouts
logs the error
#blob
GET /v2/:name/blobs/:digest
with a 307 redirect
behaves like handling redirects
follows the redirect
with a redirect location with params ending with =
behaves like handling redirects
follows the redirect
with a redirect location with params ending with %3D
behaves like handling redirects
follows the redirect
behaves like handling timeouts
handles network timeouts
logs the error
#upload_blob
with successful uploads
starts the upload and posts the blob
with a failed upload
returns a failure
#generate_empty_manifest
uploads a random image and returns the manifest
when upload fails
is expected to equal nil
#put_tag
uploads the manifest and returns the digest
#delete_repository_tag_by_digest
when the tag exists
is expected to be truthy
when the tag does not exist
is expected to be truthy
when an error occurs
is expected to be falsey
#supports_tag_delete?
registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true
returns the expected result
registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: true
returns the expected result
registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true
returns the expected result
registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true
returns the expected result
registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true
returns the expected result
registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: false
returns the expected result
registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false
returns the expected result
registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false
returns the expected result
#registry_info
behaves like handling registry info
when the check is successful
when using the GitLab container registry
identifies the vendor as "gitlab"
identifies version and features
identifies the registry DB as enabled
when using a third-party container registry
identifies the vendor as "other"
does not identify version or features
does not identify the registry DB as enabled
when the check is not successful
does not identify vendor, version or features
when the check returns an unexpected value in the database enabled header
does not identify the registry DB as enabled
.supports_tag_delete?
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: true
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: true
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: true, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "http://sandbox.local", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: ["tag_delete"], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: true, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
registry_api_url: "", registry_enabled: false, registry_tags_support_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: false, expected_result: false
returns the expected result
#repository_tags
returns a successful response
.registry_info
behaves like handling registry info
when the check is successful
when using the GitLab container registry
identifies the vendor as "gitlab"
identifies version and features
identifies the registry DB as enabled
when using a third-party container registry
identifies the vendor as "other"
does not identify version or features
does not identify the registry DB as enabled
when the check is not successful
does not identify vendor, version or features
when the check returns an unexpected value in the database enabled header
does not identify the registry DB as enabled
# [RSpecRunTime] Finishing example group spec/lib/container_registry/client_spec.rb. It took 10.38 seconds. Expected to take 27.53 seconds.
# [RSpecRunTime] Starting example group spec/lib/bulk_imports/clients/http_spec.rb. Expected to take 26.37 seconds.
BulkImports::Clients::HTTP
#get
performs network request
error handling
when any known HTTP error occurs
exception_class: Net::OpenTimeout
raises BulkImports::NetworkError
exception_class: Net::ReadTimeout
raises BulkImports::NetworkError
exception_class: Net::WriteTimeout
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::ReadTotalTimeout
raises BulkImports::NetworkError
exception_class: EOFError
raises BulkImports::NetworkError
exception_class: SocketError
raises BulkImports::NetworkError
exception_class: OpenSSL::SSL::SSLError
raises BulkImports::NetworkError
exception_class: OpenSSL::OpenSSLError
raises BulkImports::NetworkError
exception_class: Errno::ECONNRESET
raises BulkImports::NetworkError
exception_class: Errno::ECONNREFUSED
raises BulkImports::NetworkError
exception_class: Errno::EHOSTUNREACH
raises BulkImports::NetworkError
exception_class: Errno::ENETUNREACH
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::BlockedUrlError
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::RedirectionTooDeep
raises BulkImports::NetworkError
exception_class: Net::HTTPBadResponse
raises BulkImports::NetworkError
when response is not success
raises BulkImports::NetworkError
#each_page
with a block
yields every retrieved page to the supplied block
without a block
returns an Enumerator
when the request is asynchronous
sets a timeout that is double the default read timeout
#post
performs network request
error handling
when any known HTTP error occurs
exception_class: Net::OpenTimeout
raises BulkImports::NetworkError
exception_class: Net::ReadTimeout
raises BulkImports::NetworkError
exception_class: Net::WriteTimeout
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::ReadTotalTimeout
raises BulkImports::NetworkError
exception_class: EOFError
raises BulkImports::NetworkError
exception_class: SocketError
raises BulkImports::NetworkError
exception_class: OpenSSL::SSL::SSLError
raises BulkImports::NetworkError
exception_class: OpenSSL::OpenSSLError
raises BulkImports::NetworkError
exception_class: Errno::ECONNRESET
raises BulkImports::NetworkError
exception_class: Errno::ECONNREFUSED
raises BulkImports::NetworkError
exception_class: Errno::EHOSTUNREACH
raises BulkImports::NetworkError
exception_class: Errno::ENETUNREACH
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::BlockedUrlError
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::RedirectionTooDeep
raises BulkImports::NetworkError
exception_class: Net::HTTPBadResponse
raises BulkImports::NetworkError
when response is not success
raises BulkImports::NetworkError
#head
performs network request
error handling
when any known HTTP error occurs
exception_class: Net::OpenTimeout
raises BulkImports::NetworkError
exception_class: Net::ReadTimeout
raises BulkImports::NetworkError
exception_class: Net::WriteTimeout
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::ReadTotalTimeout
raises BulkImports::NetworkError
exception_class: EOFError
raises BulkImports::NetworkError
exception_class: SocketError
raises BulkImports::NetworkError
exception_class: OpenSSL::SSL::SSLError
raises BulkImports::NetworkError
exception_class: OpenSSL::OpenSSLError
raises BulkImports::NetworkError
exception_class: Errno::ECONNRESET
raises BulkImports::NetworkError
exception_class: Errno::ECONNREFUSED
raises BulkImports::NetworkError
exception_class: Errno::EHOSTUNREACH
raises BulkImports::NetworkError
exception_class: Errno::ENETUNREACH
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::BlockedUrlError
raises BulkImports::NetworkError
exception_class: Gitlab::HTTP_V2::RedirectionTooDeep
raises BulkImports::NetworkError
exception_class: Net::HTTPBadResponse
raises BulkImports::NetworkError
when response is not success
raises BulkImports::NetworkError
#stream
performs network request with stream_body option
#instance_version
returns version as an instance of Gitlab::VersionInfo
when /version endpoint is not available
requests /metadata endpoint
when /metadata endpoint returns a 401
raises a BulkImports:Error
when /metadata endpoint returns a 403
raises a BulkImports:Error
when /metadata endpoint returns a 404
raises a BulkImports:Error
when /metadata endpoint returns any other BulkImports::NetworkError
raises a BulkImports:NetworkError
#validate_instance_version!
when instance version is greater than or equal to the minimum major version
is expected to eq true
when instance version is less than the minimum major version
is expected to raise BulkImports::Error
#validate_import_scopes!
when the source_version is < 15.5
skips validation
when source version is 15.5 or higher
when an HTTP error is raised
raises BulkImports::NetworkError
when scopes are valid
returns true
when scopes are invalid
raises a BulkImports error
#instance_enterprise
returns source instance enterprise information
when enterprise information is missing
defaults to true
#compatible_for_project_migration?
when instance version is lower the the expected minimum
returns false
when instance version is at least the expected minimum
returns true
when url is relative
performs network request to a relative gitlab url
# [RSpecRunTime] Finishing example group spec/lib/bulk_imports/clients/http_spec.rb. It took 7.5 seconds. Expected to take 26.37 seconds.
# [RSpecRunTime] Starting example group spec/finders/clusters/knative_services_finder_spec.rb. Expected to take 25.49 seconds.
Clusters::KnativeServicesFinder
#service_pod_details
behaves like a cached data
has an unintialized cache
when using synchronous reactive cache
when there are functions for cluster namespace
is expected not to be blank
# [RSpecRunTime] RSpec elapsed time: 16 minutes 26.29 seconds. Current RSS: ~1618M. load average: 1.26 1.14 1.08 1/290 15677
when there are no functions for cluster namespace
is expected to be blank
# [RSpecRunTime] RSpec elapsed time: 16 minutes 28.41 seconds. Current RSS: ~1618M. load average: 1.26 1.14 1.08 1/290 15700
#services
behaves like a cached data
has an unintialized cache
when using synchronous reactive cache
when there are functions for cluster namespace
is expected not to be blank
# [RSpecRunTime] RSpec elapsed time: 16 minutes 32.28 seconds. Current RSS: ~1587M. load average: 1.24 1.14 1.08 1/290 15745
when there are no functions for cluster namespace
is expected to be blank
# [RSpecRunTime] RSpec elapsed time: 16 minutes 34.27 seconds. Current RSS: ~1584M. load average: 1.24 1.14 1.08 1/290 15768
#knative_detected
when knative is installed
is expected to be truthy
discovers knative installation
# [RSpecRunTime] RSpec elapsed time: 16 minutes 38.14 seconds. Current RSS: ~1579M. load average: 1.30 1.15 1.09 1/290 15813
when knative is not installed
is expected to be falsy
does not discover knative installation
# [RSpecRunTime] RSpec elapsed time: 16 minutes 42.03 seconds. Current RSS: ~1570M. load average: 1.27 1.15 1.09 1/290 15858
# [RSpecRunTime] Finishing example group spec/finders/clusters/knative_services_finder_spec.rb. It took 19.82 seconds. Expected to take 25.49 seconds.
# [RSpecRunTime] Starting example group spec/policies/ci/runner_manager_policy_spec.rb. Expected to take 23.98 seconds.
Ci::RunnerManagerPolicy
ability :read_runner_manager
without access
behaves like does not allow reading runners managers on any scope
with instance runner
is expected not to be allowed :read_runner_manager
with shared runners disabled for groups and projects
is expected not to be allowed :read_runner_manager
# [RSpecRunTime] RSpec elapsed time: 16 minutes 44.0 seconds. Current RSS: ~1560M. load average: 1.27 1.15 1.09 1/290 15859
with group runner
is expected not to be allowed :read_runner_manager
with sharing of group runners disabled
is expected not to be allowed :read_runner_manager
with project runner
is expected not to be allowed :read_runner_manager
with guest access
behaves like does not allow reading runners managers on any scope
with instance runner
is expected not to be allowed :read_runner_manager
with shared runners disabled for groups and projects
is expected not to be allowed :read_runner_manager
with group runner
is expected not to be allowed :read_runner_manager
with sharing of group runners disabled
is expected not to be allowed :read_runner_manager
with project runner
is expected not to be allowed :read_runner_manager
with developer access
behaves like a policy allowing reading instance runner manager depending on runner sharing
with instance runner
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: false, expect_can_read: false
is expected not to be allowed :read_runner_manager
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner_manager
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: false, expect_can_read: true
is expected to be allowed :read_runner_manager
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner_manager
behaves like a policy allowing reading group runner manager depending on runner sharing
with group runner
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected to be allowed :read_runner_manager
when user belongs to subgroup only
with runner visible to group project
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected not to be allowed :read_runner_manager
without projects in group
is expected not to be allowed :read_runner_manager
when user is not developer in associated group
is expected not to be allowed :read_runner_manager
when user is developer in a group invited to group as developer
is expected to be allowed :read_runner_manager
when runner is in subgroup
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected not to be allowed :read_runner_manager
with project runner
is expected to be allowed :read_runner_manager
when user is not developer in parent group
is expected not to be allowed :read_runner_manager
when user is developer in a group invited to project as developer
is expected to be allowed :read_runner_manager
with maintainer access
behaves like a policy allowing reading instance runner manager depending on runner sharing
with instance runner
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: false, expect_can_read: false
is expected not to be allowed :read_runner_manager
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner_manager
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: false, expect_can_read: true
is expected to be allowed :read_runner_manager
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner_manager
behaves like a policy allowing reading group runner manager depending on runner sharing
with group runner
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected to be allowed :read_runner_manager
when user belongs to subgroup only
with runner visible to group project
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected not to be allowed :read_runner_manager
without projects in group
is expected not to be allowed :read_runner_manager
when user is not maintainer in associated group
is expected not to be allowed :read_runner_manager
when user is maintainer in a group invited to group as maintainer
is expected to be allowed :read_runner_manager
when runner is in subgroup
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected not to be allowed :read_runner_manager
with project runner
is expected to be allowed :read_runner_manager
with owner access
behaves like a policy allowing reading instance runner manager depending on runner sharing
with instance runner
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: false, expect_can_read: false
is expected not to be allowed :read_runner_manager
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner_manager
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: false, expect_can_read: true
is expected to be allowed :read_runner_manager
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner_manager
with group runner
is expected to be allowed :read_runner_manager
with sharing of group runners disabled
is expected to be allowed :read_runner_manager
with project runner
is expected to be allowed :read_runner_manager
# [RSpecRunTime] Finishing example group spec/policies/ci/runner_manager_policy_spec.rb. It took 11.68 seconds. Expected to take 23.98 seconds.
# [RSpecRunTime] Starting example group spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb. Expected to take 23.38 seconds.
API::Helpers::Packages::DependencyProxyHelpers
#redirect_registry_request
with maven packages
application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"
behaves like executing redirect
redirects to package registry
application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"
behaves like executing redirect
redirects to package registry
application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
when no target is present
behaves like executing redirect
redirects to package registry
when maven_central_request_forwarding is disabled
application_setting: true, forward_to_registry: true
behaves like executing fallback
redirects to package registry
application_setting: true, forward_to_registry: false
behaves like executing fallback
redirects to package registry
application_setting: false, forward_to_registry: true
behaves like executing fallback
redirects to package registry
application_setting: false, forward_to_registry: false
behaves like executing fallback
redirects to package registry
with npm packages
application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"
behaves like executing redirect
redirects to package registry
application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"
behaves like executing redirect
redirects to package registry
application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
when no target is present
behaves like executing redirect
redirects to package registry
when maven_central_request_forwarding is disabled
application_setting: true, forward_to_registry: true
behaves like executing fallback
redirects to package registry
application_setting: true, forward_to_registry: false
behaves like executing fallback
redirects to package registry
application_setting: false, forward_to_registry: true
behaves like executing fallback
redirects to package registry
application_setting: false, forward_to_registry: false
behaves like executing fallback
redirects to package registry
with pypi packages
application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"
behaves like executing redirect
redirects to package registry
application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"
behaves like executing redirect
redirects to package registry
application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"
behaves like executing fallback
redirects to package registry
when no target is present
behaves like executing redirect
redirects to package registry
when maven_central_request_forwarding is disabled
application_setting: true, forward_to_registry: true
behaves like executing fallback
redirects to package registry
application_setting: true, forward_to_registry: false
behaves like executing fallback
redirects to package registry
application_setting: false, forward_to_registry: true
behaves like executing fallback
redirects to package registry
application_setting: false, forward_to_registry: false
behaves like executing fallback
redirects to package registry
with non-forwardable package type
conan
raises an error
nuget
raises an error
composer
raises an error
generic
raises an error
golang
raises an error
debian
raises an error
rubygems
raises an error
helm
raises an error
terraform_module
raises an error
rpm
raises an error
ml_model
raises an error
#registry_url
package_type: :maven, expected_result: "https://repo.maven.apache.org/maven2/test/123", params: {:path=>"test", :file_name=>"123", :project=>nil}
is expected to eq "https://repo.maven.apache.org/maven2/test/123"
package_type: :npm, expected_result: "https://registry.npmjs.org/test", params: {:package_name=>"test"}
is expected to eq "https://registry.npmjs.org/test"
package_type: :pypi, expected_result: "https://pypi.org/simple/test/", params: {:package_name=>"test"}
is expected to eq "https://pypi.org/simple/test/"
with non-forwardable package type conan
raises an error
with non-forwardable package type nuget
raises an error
with non-forwardable package type composer
raises an error
with non-forwardable package type generic
raises an error
with non-forwardable package type golang
raises an error
with non-forwardable package type debian
raises an error
with non-forwardable package type rubygems
raises an error
with non-forwardable package type helm
raises an error
with non-forwardable package type terraform_module
raises an error
with non-forwardable package type rpm
raises an error
with non-forwardable package type ml_model
raises an error
# [RSpecRunTime] Finishing example group spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb. It took 8.5 seconds. Expected to take 23.38 seconds.
# [RSpecRunTime] Starting example group spec/services/post_receive_service_spec.rb. Expected to take 22.61 seconds.
PostReceiveService
when project is nil
does not return error
behaves like does not record an onboarding progress action
is expected not to receive new(*(any args)) 0 times
# [RSpecRunTime] RSpec elapsed time: 17 minutes 3.57 seconds. Current RSS: ~1602M. load average: 1.26 1.15 1.09 1/285 15878
when repository is nil
does not return error
when both repository and project are nil
does not return error
with Project
returns link to create new merge request
returns the link to an existing merge request when it exists
does not invoke MergeRequests::PushOptionsHandlerService
behaves like post_receive_service actions
enqueues a PostReceive worker job
decreases the reference counter and returns the result
behaves like records an onboarding progress action
is expected to receive execute({:action=>:git_write}) 1 time
# [RSpecRunTime] RSpec elapsed time: 17 minutes 4.98 seconds. Current RSS: ~1596M. load average: 1.26 1.15 1.09 1/291 15913
when printing_merge_request_link_enabled is false
returns no merge request messages
when there are merge_request push options
invalidates the branch name cache
invokes MergeRequests::PushOptionsHandlerService
creates a new merge request
links to the newly created merge request
adds errors on the service instance to warnings
adds ActiveRecord errors on invalid MergeRequest records to warnings
# [RSpecRunTime] RSpec elapsed time: 17 minutes 9.38 seconds. Current RSS: ~1587M. load average: 1.24 1.15 1.09 1/290 15972
with PersonalSnippet
does not return link to create new merge request
does not return the link to an existing merge request when it exists
behaves like post_receive_service actions
enqueues a PostReceive worker job
decreases the reference counter and returns the result
behaves like records an onboarding progress action
is expected to receive execute({:action=>:git_write}) 1 time
with ProjectSnippet
does not return link to create new merge request
does not return the link to an existing merge request when it exists
behaves like post_receive_service actions
enqueues a PostReceive worker job
decreases the reference counter and returns the result
behaves like records an onboarding progress action
is expected to receive execute({:action=>:git_write}) 1 time
broadcast message banner exists
outputs a broadcast message when show_in_cli is true
does not output a broadcast message when show_in_cli is false
broadcast message notification exists
does not output a broadcast message
broadcast message does not exist
does not output a broadcast message
nil broadcast message
does not output a broadcast message
broadcast message has a target_path
no project path matches
does not output the scoped broadcast messages
does output another message that doesn't have a target_path
project path matches
does output the latest scoped broadcast message
does not output the older scoped broadcast message
does not output another message that doesn't have a target_path
with a redirected data
returns redirected message on the response
with new project data
returns new project message on the response
#process_mr_push_options
when repository belongs to a snippet
with PersonalSnippet
returns an error message
with ProjectSnippet
returns an error message
#merge_request_urls
when repository belongs to a snippet
with PersonalSnippet
returns an empty array
with ProjectSnippet
returns an empty array
# [RSpecRunTime] Finishing example group spec/services/post_receive_service_spec.rb. It took 11.16 seconds. Expected to take 22.61 seconds.
# [RSpecRunTime] Starting example group spec/policies/todo_policy_spec.rb. Expected to take 21.48 seconds.
TodoPolicy
own_todo
user: user1, todo: todo1, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
# [RSpecRunTime] RSpec elapsed time: 17 minutes 16.65 seconds. Current RSS: ~1560M. load average: 1.20 1.14 1.09 1/290 16028
user: user2, todo: todo2, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
user: user1, todo: todo2, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user1, todo: todo3, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user2, todo: todo1, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user2, todo: todo4, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user3, todo: todo1, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user3, todo: todo2, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user3, todo: todo3, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user3, todo: todo4, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
user: user2, todo: todo3, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
read_note
user: reporter, todo: no_note_todo1, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
# [RSpecRunTime] RSpec elapsed time: 17 minutes 23.58 seconds. Current RSS: ~1501M. load average: 1.18 1.14 1.09 1/285 16029
behaves like grants the expected permissions
is expected to be allowed :update_todo
user: reporter, todo: note_todo1, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
behaves like grants the expected permissions
is expected to be allowed :update_todo
user: reporter, todo: internal_note_todo1, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
behaves like grants the expected permissions
is expected to be allowed :update_todo
user: guest, todo: no_note_todo2, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
behaves like grants the expected permissions
is expected to be allowed :update_todo
user: guest, todo: note_todo2, allowed: true
behaves like grants the expected permissions
is expected to be allowed :read_todo
behaves like grants the expected permissions
is expected to be allowed :update_todo
user: guest, todo: internal_note_todo2, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
behaves like grants the expected permissions
is expected to be disallowed :update_todo
user: non_member, todo: no_note_todo3, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
behaves like grants the expected permissions
is expected to be disallowed :update_todo
user: non_member, todo: note_todo3, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
behaves like grants the expected permissions
is expected to be disallowed :update_todo
user: non_member, todo: internal_note_todo3, allowed: false
behaves like grants the expected permissions
is expected to be disallowed :read_todo
behaves like grants the expected permissions
is expected to be disallowed :update_todo
# [RSpecRunTime] Finishing example group spec/policies/todo_policy_spec.rb. It took 12.32 seconds. Expected to take 21.48 seconds.
# [RSpecRunTime] Starting example group spec/models/concerns/project_api_compatibility_spec.rb. Expected to take 21.13 seconds.
ProjectAPICompatibility
does not allow STI
converts build_git_strategy=fetch to build_allow_git_fetch=true
converts build_git_strategy=clone to build_allow_git_fetch=false
#auto_devops_enabled
initial: :missing, final: nil
sets the correct value
# [RSpecRunTime] RSpec elapsed time: 17 minutes 27.49 seconds. Current RSS: ~1522M. load average: 1.17 1.14 1.09 1/285 16030
initial: :missing, final: false
sets the correct value
initial: :missing, final: true
sets the correct value
initial: nil, final: nil
sets the correct value
initial: nil, final: false
sets the correct value
initial: nil, final: true
sets the correct value
initial: false, final: nil
sets the correct value
initial: false, final: false
sets the correct value
initial: false, final: true
sets the correct value
initial: true, final: nil
sets the correct value
initial: true, final: false
sets the correct value
initial: true, final: true
sets the correct value
#auto_devops_deploy_strategy
initial: :missing, final: "continuous"
sets the correct value
initial: :missing, final: "manual"
sets the correct value
initial: :missing, final: "timed_incremental"
sets the correct value
initial: "continuous", final: "continuous"
sets the correct value
initial: "continuous", final: "manual"
sets the correct value
initial: "continuous", final: "timed_incremental"
sets the correct value
initial: "manual", final: "continuous"
sets the correct value
initial: "manual", final: "manual"
sets the correct value
initial: "manual", final: "timed_incremental"
sets the correct value
initial: "timed_incremental", final: "continuous"
sets the correct value
initial: "timed_incremental", final: "manual"
sets the correct value
initial: "timed_incremental", final: "timed_incremental"
sets the correct value
# [RSpecRunTime] Finishing example group spec/models/concerns/project_api_compatibility_spec.rb. It took 13.34 seconds. Expected to take 21.13 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/cache/json_caches/json_keyed_spec.rb. Expected to take 19.84 seconds.
Gitlab::Cache::JsonCaches::JsonKeyed
behaves like Json Cache class
#read
returns the cached value when there is data in the cache with the given key
returns nil when there is no data in the cache with the given key
parses the cached value
returns nil when klass is nil
gracefully handles an empty hash
when the cached value is a JSON true value
parses the cached value
when the cached value is a JSON false value
parses the cached value
when the cached value is a hash
gracefully handles bad cached entry
gracefully handles unknown attributes
gracefully handles excluded fields from attributes during serialization
when the cached value is an array
parses the cached value
returns an empty array when klass is nil
gracefully handles bad cached entry
gracefully handles an empty array
gracefully handles items with unknown attributes
#write
writes value to the cache with the given key
writes a string containing a JSON representation of the value to the cache
passes options the underlying cache implementation
passes options the underlying cache implementation when options is empty
passes options the underlying cache implementation when options is nil
#fetch
requires a block
passes options the underlying cache implementation
when the given key does not exist in the cache
when the result of the block is truthy
returns the result of the block
caches the value
when the result of the block is false
returns the result of the block
caches the value
when the result of the block is nil
returns the result of the block
caches the value
when the given key exists in the cache
when the cached value is a hash
parses the cached value
decodes enums correctly
returns the result of the block when `as` option is nil
returns the result of the block when `as` option is missing
when the cached value is an instance of ActiveRecord::Base
returns a persisted record when id is set
returns a new record when id is nil
returns a new record when id is missing
gracefully handles bad cached entry
gracefully handles an empty hash
gracefully handles unknown attributes
gracefully handles excluded fields from attributes during serialization
# [RSpecRunTime] RSpec elapsed time: 17 minutes 43.63 seconds. Current RSS: ~1527M. load average: 1.13 1.13 1.09 1/285 16031
when the cached value is a array
parses the cached value
returns an empty array when `as` option is nil
returns an empty array when `as` option is not provided
when the cached value is true
returns the cached value
does not execute the block
does not write to the cache
when the cached value is false
returns the cached value
does not execute the block
does not write to the cache
when the cached value is nil
returns the result of the block
writes the result of the block to the cache
#read
when the cached value is a hash
returns nil when the data is not in a nested structure
when there are other nested keys in the cache
only returns the value we are concerned with
when cache_key_strategy is unknown
raises KeyError
#write
when there is an existing value in the cache
preserves the existing value when writing a different key
overwrites existing value when writing the same key
when using the version strategy
writes value to the cache with the given key
#expire
with cache_key concerns
uses the expanded_key
when namespace is nil
uses the expanded_key
# [RSpecRunTime] Finishing example group spec/lib/gitlab/cache/json_caches/json_keyed_spec.rb. It took 6.74 seconds. Expected to take 19.84 seconds.
# [RSpecRunTime] Starting example group spec/helpers/tab_helper_spec.rb. Expected to take 19.58 seconds.
TabHelper
gl_tabs_nav
creates a tabs navigation
captures block output
adds custom class
gl_tab_link_to
creates a tab
creates a tab with block output
creates a tab with custom classes for enclosing list item without content block provided
creates a tab with custom classes for enclosing list item with content block provided
creates a tab with custom classes for anchor element
creates an active tab with item_active = true
when on the active page
creates an active tab
creates an inactive tab with item_active = false
nav_link
passes extra html options to the list element
with the content of the li
captures block output
controller_param: nil, action_param: nil, path_param: nil, active: false
is expected to eq false
controller_param: :foo, action_param: nil, path_param: nil, active: true
is expected to eq true
controller_param: :bar, action_param: nil, path_param: nil, active: false
is expected to eq false
controller_param: :bar, action_param: :foo, path_param: nil, active: false
is expected to eq false
controller_param: :foo, action_param: :bar, path_param: nil, active: false
is expected to eq false
controller_param: :foo, action_param: :foo, path_param: nil, active: true
is expected to eq true
controller_param: :bar, action_param: nil, path_param: "foo#foo", active: true
is expected to eq true
controller_param: :bar, action_param: nil, path_param: ["foo#foo", "bar#bar"], active: true
is expected to eq true
controller_param: :bar, action_param: :bar, path_param: ["foo#foo", "bar#bar"], active: true
is expected to eq true
controller_param: :foo, action_param: nil, path_param: "bar#foo", active: true
is expected to eq true
controller_param: :bar, action_param: nil, path_param: "bar#foo", active: false
is expected to eq false
controller_param: :foo, action_param: [:foo, :bar], path_param: "bar#foo", active: true
is expected to eq true
controller_param: :bar, action_param: :bar, path_param: "foo#foo", active: true
is expected to eq true
controller_param: :foo, action_param: :foo, path_param: "bar#foo", active: true
is expected to eq true
controller_param: :bar, action_param: :foo, path_param: "bar#foo", active: false
is expected to eq false
controller_param: :foo, action_param: :bar, path_param: "bar#foo", active: false
is expected to eq false
controller_param: [:foo, :bar], action_param: nil, path_param: nil, active: true
is expected to eq true
controller_param: [:foo, :bar], action_param: nil, path_param: "bar#foo", active: true
is expected to eq true
controller_param: [:foo, :bar], action_param: :foo, path_param: "bar#foo", active: true
is expected to eq true
controller_param: nil, action_param: :foo, path_param: nil, active: true
is expected to eq true
controller_param: nil, action_param: :bar, path_param: nil, active: false
is expected to eq false
controller_param: nil, action_param: nil, path_param: "foo#bar", active: false
is expected to eq false
controller_param: nil, action_param: nil, path_param: "foo#foo", active: true
is expected to eq true
controller_param: nil, action_param: :bar, path_param: ["foo#foo", "bar#bar"], active: true
is expected to eq true
controller_param: nil, action_param: :bar, path_param: "foo#foo", active: true
is expected to eq true
controller_param: nil, action_param: :foo, path_param: "bar#foo", active: true
is expected to eq true
controller_param: nil, action_param: [:foo, :bar], path_param: nil, active: true
is expected to eq true
controller_param: nil, action_param: [:foo, :bar], path_param: "bar#foo", active: true
is expected to eq true
controller_param: nil, action_param: :bar, path_param: "bar#foo", active: false
is expected to eq false
page: nil, excluded_page: nil, active: false
is expected to eq false
page: "_some_page_", excluded_page: nil, active: true
is expected to eq true
page: "_some_page_", excluded_page: "_excluded_page_", active: true
is expected to eq true
page: "_some_page_", excluded_page: "_some_page_", active: false
is expected to eq false
with namespace in path notation
controller_param: "foo/foo", action_param: nil, path_param: nil, active: false
is expected to eq false
controller_param: "bar/foo", action_param: nil, path_param: nil, active: true
is expected to eq true
controller_param: "foo/foo", action_param: :foo, path_param: nil, active: false
is expected to eq false
controller_param: "bar/foo", action_param: :bar, path_param: nil, active: false
is expected to eq false
controller_param: "bar/foo", action_param: :foo, path_param: nil, active: true
is expected to eq true
controller_param: nil, action_param: nil, path_param: "foo/foo#foo", active: false
is expected to eq false
controller_param: nil, action_param: nil, path_param: "bar/foo#foo", active: true
is expected to eq true
gl_tab_counter_badge
creates a tab counter badge
with extra classes
creates a tab counter badge with the correct class attribute
with data attributes
creates a tab counter badge with the data attributes
# [RSpecRunTime] Finishing example group spec/helpers/tab_helper_spec.rb. It took 6.64 seconds. Expected to take 19.58 seconds.
# [RSpecRunTime] Starting example group spec/workers/users/deactivate_dormant_users_worker_spec.rb. Expected to take 18.75 seconds.
Users::DeactivateDormantUsersWorker
#perform
does not run for SaaS
when automatic deactivation of dormant users is enabled
when admin mode is not enabled
is expected to change `dormant.reload.state` to "deactivated" and change `inactive.reload.state` to "deactivated"
example at ./spec/workers/users/deactivate_dormant_users_worker_spec.rb:67
example at ./spec/workers/users/deactivate_dormant_users_worker_spec.rb:81
user_type: :human, expected_state: "deactivated"
is expected to eq "deactivated"
# [RSpecRunTime] RSpec elapsed time: 17 minutes 54.34 seconds. Current RSS: ~1526M. load average: 1.11 1.13 1.08 1/285 16032
user_type: :support_bot, expected_state: "active"
is expected to eq "active"
user_type: :alert_bot, expected_state: "active"
is expected to eq "active"
user_type: :visual_review_bot, expected_state: "active"
is expected to eq "active"
user_type: :service_user, expected_state: "deactivated"
is expected to eq "deactivated"
user_type: :ghost, expected_state: "active"
is expected to eq "active"
user_type: :project_bot, expected_state: "active"
is expected to eq "active"
user_type: :migration_bot, expected_state: "active"
is expected to eq "active"
user_type: :security_bot, expected_state: "active"
is expected to eq "active"
user_type: :automation_bot, expected_state: "active"
is expected to eq "active"
when admin mode is enabled
is expected to change `dormant.reload.state` to "deactivated" and change `inactive.reload.state` to "deactivated"
example at ./spec/workers/users/deactivate_dormant_users_worker_spec.rb:67
example at ./spec/workers/users/deactivate_dormant_users_worker_spec.rb:81
user_type: :human, expected_state: "deactivated"
is expected to eq "deactivated"
# [RSpecRunTime] RSpec elapsed time: 17 minutes 58.94 seconds. Current RSS: ~1522M. load average: 1.10 1.12 1.08 1/285 16033
user_type: :support_bot, expected_state: "active"
is expected to eq "active"
user_type: :alert_bot, expected_state: "active"
is expected to eq "active"
user_type: :visual_review_bot, expected_state: "active"
is expected to eq "active"
user_type: :service_user, expected_state: "deactivated"
is expected to eq "deactivated"
user_type: :ghost, expected_state: "active"
is expected to eq "active"
user_type: :project_bot, expected_state: "active"
is expected to eq "active"
user_type: :migration_bot, expected_state: "active"
is expected to eq "active"
user_type: :security_bot, expected_state: "active"
is expected to eq "active"
user_type: :automation_bot, expected_state: "active"
is expected to eq "active"
when automatic deactivation of dormant users is disabled
does nothing
# [RSpecRunTime] Finishing example group spec/workers/users/deactivate_dormant_users_worker_spec.rb. It took 10.18 seconds. Expected to take 18.75 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/trace/checksum_spec.rb. Expected to take 17.7 seconds.
Gitlab::Ci::Trace::Checksum
when build pending state exists
when matching persisted trace chunks exist
calculates combined trace chunks CRC32 correctly
when trace chunks were persisted in a wrong order
makes trace checksum invalid but not corrupted
when one of the trace chunks is missing
makes trace checksum invalid and corrupted
when checksums of persisted trace chunks do not match
makes trace checksum invalid but not corrupted
when persisted trace chunks are missing
makes trace checksum invalid
when build pending state is missing
#state_crc32
returns nil
#valid?
is expected not to be valid
#trace_chunks
does not load raw_data from a database store
#last_chunk
when there are no chunks
returns nil
is not a valid trace
is not a corrupted trace
# [RSpecRunTime] RSpec elapsed time: 18 minutes 9.52 seconds. Current RSS: ~1505M. load average: 1.24 1.15 1.10 1/285 16034
when there are multiple chunks
returns chunk with the highest index
is not a valid trace
is not a corrupted trace
# [RSpecRunTime] RSpec elapsed time: 18 minutes 11.39 seconds. Current RSS: ~1500M. load average: 1.22 1.15 1.09 1/285 16035
#trace_size
returns total trace size in bytes
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/trace/checksum_spec.rb. It took 9.39 seconds. Expected to take 17.7 seconds.
# [RSpecRunTime] Starting example group spec/services/merge_requests/retarget_chain_service_spec.rb. Expected to take 17.53 seconds.
MergeRequests::RetargetChainService
#execute
when there is another MR
in the same project
and current is merged
behaves like retargets merge request
another merge request is retargeted
# [RSpecRunTime] RSpec elapsed time: 18 minutes 13.75 seconds. Current RSS: ~1504M. load average: 1.22 1.15 1.09 1/291 16083
and current is closed
behaves like does not retarget merge request
another merge request is unchanged
and another is closed
behaves like does not retarget merge request
another merge request is unchanged
and another is merged
behaves like does not retarget merge request
another merge request is unchanged
in forked project
when user has access to source project
behaves like retargets merge request
another merge request is retargeted
# [RSpecRunTime] RSpec elapsed time: 18 minutes 16.7 seconds. Current RSS: ~1500M. load average: 1.28 1.17 1.10 1/290 16101
when user does not have access to source project
behaves like does not retarget merge request
another merge request is unchanged
# [RSpecRunTime] RSpec elapsed time: 18 minutes 17.88 seconds. Current RSS: ~1498M. load average: 1.28 1.17 1.10 1/290 16104
and current and another MR is from a fork
behaves like does not retarget merge request
another merge request is unchanged
# [RSpecRunTime] RSpec elapsed time: 18 minutes 19.61 seconds. Current RSS: ~1496M. load average: 1.28 1.17 1.10 1/290 16105
when many merge requests are to be retargeted
retargets and rebases only 4 of them
when rebase_when_retargetting_mrs is disabled
does not rebase any MRs
# [RSpecRunTime] RSpec elapsed time: 18 minutes 26.36 seconds. Current RSS: ~1498M. load average: 1.24 1.16 1.10 1/290 16222
# [RSpecRunTime] Finishing example group spec/services/merge_requests/retarget_chain_service_spec.rb. It took 14.35 seconds. Expected to take 17.53 seconds.
# [RSpecRunTime] Starting example group spec/lib/extracts_path_spec.rb. Expected to take 16.72 seconds.
ExtractsPath
#assign_ref_vars
log tree path has no escape sequences
behaves like assigns ref vars
assigns the repository var
ref contains %20
is not converted to a space in @id
# [RSpecRunTime] RSpec elapsed time: 18 minutes 27.59 seconds. Current RSS: ~1512M. load average: 1.24 1.16 1.10 1/290 16242
ref contains trailing space
strips surrounding space
ref contains leading space
strips surrounding space
path contains space
is not converted to %20 in @path
subclass overrides get_id
uses ref returned by get_id
ref contains space in the middle
returns 404
ref only exists without .atom suffix
with a path
renders a 404
without a path
sets the un-suffixed version as @ref
sets the request format to Atom
ref exists with .atom suffix
with a path
sets the suffixed version as @ref
does not change the request format
without a path
sets the suffixed version as @ref
does not change the request format
ref and path are nil
does not set commit
ref points to a previous default branch
redirects to the new default branch for a GET request
redirects to the new default branch for a HEAD request
returns 404 for any other request type
redirect behaviour is disabled
returns 404 for a GET request
behaves like extracts refs
#extract_ref
returns an empty pair when no repository_container is set
without a path
extracts a valid branch
extracts a valid tag
extracts a valid commit SHA1 ref without a path
extracts a valid commit SHA256 ref without a path
falls back to a primitive split for an invalid ref
does not fetch ref names when there is no slash
fetches ref names when there is a slash
with a path
extracts a valid branch
extracts a valid tag
extracts a valid commit SHA1
extracts a valid commit SHA256
falls back to a primitive split for an invalid ref
extracts the longest matching ref
when the repository does not have ambiguous refs
does not fetch all ref names when the first path component is a ref
fetches all ref names when the first path component is not a ref
when the repository has ambiguous refs
always fetches all ref names
#extract_ref_without_atom
ignores any matching refs suffixed with atom
returns the longest matching ref
raises an error if there are no matching refs
# [RSpecRunTime] Finishing example group spec/lib/extracts_path_spec.rb. It took 5.99 seconds. Expected to take 16.72 seconds.
# [RSpecRunTime] Starting example group spec/initializers/load_balancing_spec.rb. Expected to take 16.49 seconds.
load_balancing
with replica hosts configured
configures load balancer with two replica hosts
for a clustered puma worker
configures load balancer to have two replica hosts
makes a read query successfully
makes a write query successfully
# [RSpecRunTime] RSpec elapsed time: 18 minutes 44.83 seconds. Current RSS: ~1504M. load average: 1.11 1.13 1.09 1/283 16277
# [RSpecRunTime] Finishing example group spec/initializers/load_balancing_spec.rb. It took 12.6 seconds. Expected to take 16.49 seconds.
# [RSpecRunTime] Starting example group spec/workers/merge_request_cleanup_refs_worker_spec.rb. Expected to take 15.6 seconds.
MergeRequestCleanupRefsWorker
#perform_work
when next cleanup schedule is found
marks the cleanup schedule as completed on success
when service fails
marks the cleanup schedule as unstarted and track the failure
and cleanup schedule has already failed 3 times
marks the cleanup schedule as failed and track the failure
# [RSpecRunTime] RSpec elapsed time: 18 minutes 48.5 seconds. Current RSS: ~1532M. load average: 1.10 1.13 1.09 1/291 16408
when there is no next cleanup schedule found
does nothing
#remaining_work_count
returns number of scheduled and unstarted cleanup schedule records
when count exceeds max_running_jobs
gets capped at max_running_jobs
# [RSpecRunTime] RSpec elapsed time: 18 minutes 56.6 seconds. Current RSS: ~1589M. load average: 1.09 1.13 1.09 1/291 16799
#max_running_jobs
returns the value of MAX_RUNNING_JOBS
# [RSpecRunTime] Finishing example group spec/workers/merge_request_cleanup_refs_worker_spec.rb. It took 11.79 seconds. Expected to take 15.6 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb. Expected to take 15.49 seconds.
Gitlab::SidekiqConfig::WorkerMatcher
#match?
with valid input
query: "worker_name=WorkerA", expected_metadatas: ["WorkerA"]
is expected to contain exactly "WorkerA"
query: "worker_name=WorkerA2", expected_metadatas: ["WorkerA2"]
is expected to contain exactly "WorkerA2"
query: "worker_name=WorkerB|worker_name=WorkerD", expected_metadatas: ["WorkerB"]
is expected to contain exactly "WorkerB"
query: "worker_name!=WorkerA", expected_metadatas: ["WorkerA2", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA2", "WorkerB", and "WorkerC"
query: "feature_category=category_a", expected_metadatas: ["WorkerA", "WorkerA2"]
is expected to contain exactly "WorkerA" and "WorkerA2"
query: "feature_category=category_a,category_c", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"
query: "feature_category=category_a|feature_category=category_c", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"
query: "feature_category!=category_a", expected_metadatas: ["WorkerB", "WorkerC"]
is expected to contain exactly "WorkerB" and "WorkerC"
query: "has_external_dependencies=true", expected_metadatas: ["WorkerB"]
is expected to contain exactly "WorkerB"
query: "has_external_dependencies=false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"
query: "has_external_dependencies=true,false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"
query: "has_external_dependencies=true|has_external_dependencies=false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"
query: "has_external_dependencies!=true", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"
query: "urgency=high", expected_metadatas: ["WorkerA2", "WorkerB"]
is expected to contain exactly "WorkerA2" and "WorkerB"
query: "urgency=low", expected_metadatas: ["WorkerA"]
is expected to contain exactly "WorkerA"
query: "urgency=high,low,throttled", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"
query: "urgency=low|urgency=throttled", expected_metadatas: ["WorkerA", "WorkerC"]
is expected to contain exactly "WorkerA" and "WorkerC"
query: "urgency!=high", expected_metadatas: ["WorkerA", "WorkerC"]
is expected to contain exactly "WorkerA" and "WorkerC"
query: "name=a", expected_metadatas: ["WorkerA"]
is expected to contain exactly "WorkerA"
query: "name=a,b", expected_metadatas: ["WorkerA", "WorkerB"]
is expected to contain exactly "WorkerA" and "WorkerB"
query: "name=a,a:2|name=b", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"
query: "name!=a,a:2", expected_metadatas: ["WorkerB", "WorkerC"]
is expected to contain exactly "WorkerB" and "WorkerC"
query: "resource_boundary=memory", expected_metadatas: ["WorkerB", "WorkerC"]
is expected to contain exactly "WorkerB" and "WorkerC"
query: "resource_boundary=memory,cpu", expected_metadatas: ["WorkerA", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerB", and "WorkerC"
query: "resource_boundary=memory|resource_boundary=cpu", expected_metadatas: ["WorkerA", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerB", and "WorkerC"
query: "resource_boundary!=memory,cpu", expected_metadatas: ["WorkerA2"]
is expected to contain exactly "WorkerA2"
query: "tags=no_disk_io", expected_metadatas: ["WorkerA", "WorkerB"]
is expected to contain exactly "WorkerA" and "WorkerB"
query: "tags=no_disk_io,git_access", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"
query: "tags=no_disk_io|tags=git_access", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]
is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"
query: "tags=no_disk_io&tags=git_access", expected_metadatas: ["WorkerA"]
is expected to contain exactly "WorkerA"
query: "tags!=no_disk_io", expected_metadatas: ["WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA2" and "WorkerC"
query: "tags!=no_disk_io,git_access", expected_metadatas: ["WorkerC"]
is expected to contain exactly "WorkerC"
query: "tags=unknown_tag", expected_metadatas: []
is expected to contain exactly
query: "tags!=no_disk_io", expected_metadatas: ["WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA2" and "WorkerC"
query: "tags!=no_disk_io,git_access", expected_metadatas: ["WorkerC"]
is expected to contain exactly "WorkerC"
query: "tags!=unknown_tag", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"
query: "feature_category=category_a&urgency=high", expected_metadatas: ["WorkerA2"]
is expected to contain exactly "WorkerA2"
query: "feature_category=category_a&urgency=high|feature_category=category_c", expected_metadatas: ["WorkerA2", "WorkerC"]
is expected to contain exactly "WorkerA2" and "WorkerC"
query: "*", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]
is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"
with invalid input
query: "feature_category=\"category_a\"", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm
is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm
query: "feature_category=", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm
is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm
query: "feature_category~category_a", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm
is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm
query: "invalid_term=a", error: Gitlab::SidekiqConfig::WorkerMatcher::UnknownPredicate
is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::UnknownPredicate
# [RSpecRunTime] Finishing example group spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb. It took 5.48 seconds. Expected to take 15.49 seconds.
# [RSpecRunTime] Starting example group spec/uploaders/packages/package_file_uploader_spec.rb. Expected to take 14.81 seconds.
Packages::PackageFileUploader
behaves like builds correct paths
#store_dir
behaves like matches the method pattern
is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/
#cache_dir
behaves like matches the method pattern
is expected to match /\/packages\/tmp\/cache/
#work_dir
behaves like matches the method pattern
is expected to match /\/packages\/tmp\/work/
#upload_path
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
#relative_path
is relative (PENDING: Path not set, skipping.)
.absolute_path
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
.base_dir
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
path traversal exploits
throws an exception
object store is remote
behaves like builds correct paths
#store_dir
behaves like matches the method pattern
is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/
#cache_dir
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
#work_dir
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
#upload_path
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
#relative_path
is relative (PENDING: Path not set, skipping.)
.absolute_path
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
.base_dir
behaves like matches the method pattern
example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)
path traversal exploits
throws an exception
remote file
with object storage enabled
can store file remotely
# [RSpecRunTime] Finishing example group spec/uploaders/packages/package_file_uploader_spec.rb. It took 8.31 seconds. Expected to take 14.81 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/gitaly_client/ref_service_spec.rb. Expected to take 14.57 seconds.
Gitlab::GitalyClient::RefService
#branches
sends a find_all_branches message
#remote_branches
sends a find_all_remote_branches message
concatenates and returns the response branches as Gitlab::Git::Branch objects
#merged_branches
sends a find_all_branches message
#find_branch
sends a find_branch message
when Gitaly returns a ambiguios reference error
raises an UnknownRef error
#find_tag
sends a find_tag message
when tag is empty
does not send a fing_tag message
when Gitaly returns an Internal error
raises an Internal error
when Gitaly returns a tag_not_found error
raises an UnknownRef error
#default_branch_name
sends a find_default_branch_name message
#local_branches
sends a find_local_branches message
parses and sends the sort parameter
translates known mismatches on sort param values
uses default sort by name
#tags
sends a find_all_tags message
with sorting option
sends a correct find_all_tags message
with semantic version sorting
sends a correct find_all_tags message
when sorting option is invalid
uses default sort by name
with pagination option
sends a correct find_all_tags message
#branch_names_contains_sha
sends a list_branch_names_containing_commit message
#get_tag_messages
sends a get_tag_messages message
#get_tag_signatures
sends a get_tag_signatures message
#ref_exists?
sends a ref_exists message
#update_refs
sends a update_refs message
with a generic BadStatus error
raises the BadStatus error
with a reference state mismatch error
raises ReferencesLockedError
with a references locked error
raises ReferencesLockedError
with a invalid format error
raises InvalidRefFormatError
#delete_refs
sends a delete_refs message
with a references locked error
raises ReferencesLockedError
with a invalid format error
raises InvalidRefFormatError
#list_refs
sends a list_refs message
accepts a patterns argument
accepts a pointing_at_oids argument
accepts a peel_tags argument
#find_refs_by_oid
sends a find_refs_by_oid message
filters by ref_patterns
# [RSpecRunTime] Finishing example group spec/lib/gitlab/gitaly_client/ref_service_spec.rb. It took 5.4 seconds. Expected to take 14.57 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb. Expected to take 13.93 seconds.
Gitlab::Diff::PositionTracer::ImageStrategy
#trace
diff scenarios
when the file was created in the old diff
when the file is unchanged between the old and the new diff
returns the new position
when the file was updated between the old and the new diff
returns the position of the change
when the file was renamed in between the old and the new diff
returns the position of the change
when the file was removed in between the old and the new diff
returns the position of the change
when the file is unchanged in the new diff
returns the position of the change
# [RSpecRunTime] RSpec elapsed time: 19 minutes 21.05 seconds. Current RSS: ~1590M. load average: 1.18 1.15 1.10 1/294 17180
when the file was changed in the old diff
when the file is unchanged in between the old and the new diff
returns the new position
# [RSpecRunTime] RSpec elapsed time: 19 minutes 22.18 seconds. Current RSS: ~1586M. load average: 1.18 1.15 1.10 1/293 17267
when the file was updated in between the old and the new diff
returns the position of the change
# [RSpecRunTime] RSpec elapsed time: 19 minutes 23.26 seconds. Current RSS: ~1590M. load average: 1.18 1.15 1.10 1/293 17344
when the file was renamed in between the old and the new diff
returns the position of the change
# [RSpecRunTime] RSpec elapsed time: 19 minutes 24.46 seconds. Current RSS: ~1588M. load average: 1.18 1.15 1.10 1/293 17438
when the file was removed in between the old and the new diff
returns the position of the change
# [RSpecRunTime] RSpec elapsed time: 19 minutes 25.55 seconds. Current RSS: ~1585M. load average: 1.24 1.16 1.10 1/293 17514
when the file is unchanged in the new diff
returns the position of the change
# [RSpecRunTime] RSpec elapsed time: 19 minutes 26.82 seconds. Current RSS: ~1581M. load average: 1.24 1.16 1.10 3/293 17625
# [RSpecRunTime] Finishing example group spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb. It took 10.89 seconds. Expected to take 13.93 seconds.
# [RSpecRunTime] Starting example group spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb. Expected to take 13.76 seconds.
Sidebars::Projects::Menus::InfrastructureMenu
behaves like not serializable as super_sidebar_menu_args
returns nil
#render?
when menu does not have any menu items
returns false
when menu has menu items
returns true
behavior based on access level setting
infrastructure_access_level: enabled, render: true
renders based on the infrastructure access level
infrastructure_access_level: disabled, render: false
renders based on the infrastructure access level
#link
when Kubernetes menu item is visible
menu link points to Kubernetes page
when Kubernetes menu item is not visible
menu link points to Terraform states page
when Terraform states menu is not visible
menu link points to Google Cloud page
Menu Items
Kubernetes
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
Terraform states
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
if terraform_state.enabled=true
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
if terraform_state.enabled=false
is expected to be nil
Google Cloud
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when feature flag is turned off globally
is expected to be nil
when feature flag is enabled for specific project
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when feature flag is enabled for specific group
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when feature flag is enabled for specific project
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when instance is not configured for Google OAuth2
is expected to be nil
AWS
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when feature flag is turned off globally
is expected to be nil
when feature flag is enabled for specific project
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when feature flag is enabled for specific group
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
when feature flag is enabled for specific project
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
# [RSpecRunTime] Finishing example group spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb. It took 5.61 seconds. Expected to take 13.76 seconds.
# [RSpecRunTime] Starting example group spec/lib/sidebars/projects/menus/settings_menu_spec.rb. Expected to take 13.36 seconds.
Sidebars::Projects::Menus::SettingsMenu
#render?
returns false when menu does not have any menu items
#separated?
returns true
Menu items
General
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
Integrations
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
Webhooks
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
Access Tokens
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
Repository
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
CI/CD
when project is archived
is expected to be nil
when project is not archived
is expected not to be nil
when the user does not have access
is expected to be nil
Monitor
when project is archived
is expected to be nil
when project is not archived
is expected not to be nil
is expected to eq "Monitor"
when the user does not have access
is expected to be nil
Merge requests
behaves like access rights checks
is expected not to be nil
when the user does not have access
is expected to be nil
Packages and registries
when container registry setting is disabled
is expected to be nil
when container registry setting is enabled
is expected not to be nil
when the user does not have access
is expected to be nil
when package registry setting is enabled
is expected not to be nil
when the user does not have access
is expected to be nil
Usage Quotas
is expected not to be nil
when the user does not have access
is expected to be nil
# [RSpecRunTime] Finishing example group spec/lib/sidebars/projects/menus/settings_menu_spec.rb. It took 5.59 seconds. Expected to take 13.36 seconds.
# [RSpecRunTime] Starting example group spec/models/protected_branch/merge_access_level_spec.rb. Expected to take 12.92 seconds.
ProtectedBranch::MergeAccessLevel
does not allow STI
is expected to belong to protected_branch required: false
validations
when role?
is expected to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›
is expected to validate that :access_level cannot be empty/falsy
is expected to validate that :access_level is case-sensitively unique within the scope of :protected_branch_id
# [RSpecRunTime] RSpec elapsed time: 19 minutes 39.18 seconds. Current RSS: ~1587M. load average: 1.12 1.14 1.09 1/288 17626
when not role?
is expected not to validate that :access_level cannot be empty/falsy
is expected not to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›
is expected not to validate that :access_level is case-sensitively unique within the scope of :protected_branch_id
::human_access_levels
is expected to eq {30=>"Developers + Maintainers", 40=>"Maintainers", 60=>"Instance admins", 0=>"No one"}
#check_access
when current_user is nil
is expected to eq false
when current_user access exists without membership
does not check membership if check_membership_in_protected_ref_access FF is disabled
when check_membership_in_protected_ref_access FF is enabled
does check membership
returns false
when user has inherited membership
is expected to be truthy
when access_level is NO_ACCESS
is expected to eq false
when instance admin access is configured
when current_user is a maintainer
is expected to eq false
when current_user is admin
is expected to eq true
when current_user can push_code to project
and member access is high enough
is expected to eq true
when external authorization denies access
is expected to be falsey
and member access is too low
is expected to eq false
when current_user cannot push_code to project
is expected to eq false
#project
delegates project to protected_branch association
#protected_branch_group
looks for the group attached to protected_branch
when current_project is nil
and protected_branch_group isn't nil
assign_access_level: :guest, expected_check_access: false
is expected to eq false
assign_access_level: :reporter, expected_check_access: false
is expected to eq false
assign_access_level: :developer, expected_check_access: true
is expected to eq true
assign_access_level: :maintainer, expected_check_access: true
is expected to eq true
assign_access_level: :owner, expected_check_access: true
is expected to eq true
::allowed_access_levels
when running on Gitlab.com?
is expected to contain exactly 30, 40, and 0
when self hosted?
is expected to contain exactly 30, 40, 60, and 0
# [RSpecRunTime] Finishing example group spec/models/protected_branch/merge_access_level_spec.rb. It took 6.15 seconds. Expected to take 12.92 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/pipeline_schedules/create_service_spec.rb. Expected to take 12.72 seconds.
Ci::PipelineSchedules::CreateService
execute
when user does not have permission
returns ServiceResponse.error
when user has permission
saves values with passed params
returns ServiceResponse.success
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when schedule save fails
returns ServiceResponse.error
behaves like pipeline schedules checking variables permission
when sending variables
when user is maintainer
behaves like success response with variables
saves variables
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when user is developer
behaves like success response with variables
saves variables
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when restrict_user_defined_variables is true
behaves like success response with variables
saves variables
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when user is developer
behaves like failure response
does not save
when not sending variables
when user is maintainer
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when user is developer
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when restrict_user_defined_variables is true
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
when user is developer
behaves like success response
saves values with passed params
when enforce_full_refs_for_pipeline_schedules is enabled
saves values with passed params
# [RSpecRunTime] Finishing example group spec/services/ci/pipeline_schedules/create_service_spec.rb. It took 6.04 seconds. Expected to take 12.72 seconds.
# [RSpecRunTime] Starting example group spec/serializers/commit_entity_spec.rb. Expected to take 12.28 seconds.
CommitEntity
contains path to commit
contains URL to commit
needs to receive project in the request
exposes gravatar url that belongs to author
when commit author is a user
contains information about user
# [RSpecRunTime] RSpec elapsed time: 19 minutes 53.62 seconds. Current RSS: ~1585M. load average: 1.10 1.13 1.09 1/293 17681
when commit author is not a user
does not contain author details
when type is not set
does not expose extra properties
when type is "full"
exposes extra properties
when commit has signature
exposes "signature_html"
# [RSpecRunTime] RSpec elapsed time: 19 minutes 58.12 seconds. Current RSS: ~1578M. load average: 1.09 1.13 1.09 1/293 17740
when commit has pipeline
exposes "pipeline_status_path"
when commit_url_params is set
adds commit_url_params to url and path
# [RSpecRunTime] Finishing example group spec/serializers/commit_entity_spec.rb. It took 9.54 seconds. Expected to take 12.28 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb. Expected to take 12.06 seconds.
Gitlab::Ci::Pipeline::Chain::PopulateMetadata
with auto_cancel
builds pipeline_metadata
behaves like not breaking the chain
does not break the chain
# [RSpecRunTime] RSpec elapsed time: 20 minutes 1.1 seconds. Current RSS: ~1571M. load average: 1.08 1.13 1.09 1/293 17780
with no auto_cancel
behaves like not saving pipeline metadata
does not save pipeline metadata
with auto_cancel: nil
behaves like not saving pipeline metadata
does not save pipeline metadata
with auto_cancel_on_new_commit and no auto_cancel_on_job_failure
builds pipeline_metadata
with auto_cancel_on_job_failure and no auto_cancel_on_new_commit
builds pipeline_metadata
with auto_cancel_on_new_commit: nil and auto_cancel_on_job_failure: nil
behaves like not saving pipeline metadata
does not save pipeline metadata
with auto_cancel_on_new_commit valid and auto_cancel_on_job_failure: nil
builds pipeline_metadata
with auto_cancel_on_new_commit: nil and auto_cancel_on_job_failure valid
builds pipeline_metadata
when auto_cancel_on_job_failure: none
builds pipeline_metadata
when auto_cancel_pipeline_on_job_failure feature is disabled
ignores the auto_cancel_on_job_failure value
with workflow:rules:auto_cancel
with auto_cancel:on_new_commit not set and rules:workflow:auto_cancel:on_new_commit set
when the rule is matched
builds pipeline_metadata
when the rule is not matched
builds pipeline_metadata
with auto_cancel:on_new_commit set and rules:workflow:auto_cancel:on_new_commit set
when the rule is matched
builds pipeline_metadata
when the rule is not matched
builds pipeline_metadata
with pipeline name
builds pipeline_metadata
behaves like not breaking the chain
does not break the chain
with empty name
behaves like not saving pipeline metadata
does not save pipeline metadata
with empty name after variable substitution
behaves like not saving pipeline metadata
does not save pipeline metadata
with variables
substitutes variables
with invalid name
returns error and breaks chain
with both pipeline name and auto_cancel
builds pipeline_metadata
behaves like not breaking the chain
does not break the chain
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb. It took 6.14 seconds. Expected to take 12.06 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/mail_room/mail_room_spec.rb. Expected to take 11.67 seconds.
Gitlab::MailRoom
#enabled_configs
when both email and address is set
returns email configs
when the yml file cannot be found
returns an empty list
when email is disabled
returns an empty list
when email is enabled but address is not set
returns an empty list
when a config value is missing from the yml file
overwrites missing values with the default
when only incoming_email config is present
returns only encoming_email
setting up redis settings
sets delivery method to Sidekiq by default
sets redis config
setting up the log path
if the log path is a relative path
expands the log path to an absolute value
if the log path is absolute path
leaves the path as-is
#enabled_mailbox_types
when all mailbox types are enabled
returns the mailbox types
when an mailbox_types is disabled
returns the mailbox types
when email is disabled
returns an empty array
#worker_for
matched mailbox types
returns the constantized worker class
non-existing mailbox_type
returns nil
config/mail_room.yml
when delivery_method is implicit
behaves like renders mail-specific config file correctly
renders mail room config file correctly
behaves like renders arbitration options correctly
renders arbitration options correctly
behaves like renders the sidekiq delivery method and options correctly
renders the sidekiq delivery method and options correctly
when delivery_method is explicitly sidekiq
behaves like renders mail-specific config file correctly
renders mail room config file correctly
behaves like renders arbitration options correctly
renders arbitration options correctly
behaves like renders the sidekiq delivery method and options correctly
renders the sidekiq delivery method and options correctly
when delivery_method is webhook (internally postback in mail_room)
renders the webhook (postback) delivery method and options correctly
behaves like renders mail-specific config file correctly
renders mail room config file correctly
behaves like renders arbitration options correctly
renders arbitration options correctly
mailroom encrypted configuration
when parsing secrets.yml
reads in the secrets.yml file as erb and merges shared and test environments
when parsing gitlab.yml
returns default encrypted_secret_file path
returns encrypted_secret_file relative to custom shared path
returns custom encrypted_secret_file
when using encrypted secrets
renders the encrypted secrets into the configuration correctly
# [RSpecRunTime] Finishing example group spec/lib/gitlab/mail_room/mail_room_spec.rb. It took 3.96 seconds. Expected to take 11.67 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/template/merge_request_template_spec.rb. Expected to take 11.57 seconds.
Gitlab::Template::MergeRequestTemplate
.all
strips the md suffix
combines the globals and rest
# [RSpecRunTime] RSpec elapsed time: 20 minutes 12.06 seconds. Current RSS: ~1575M. load average: 1.07 1.12 1.09 1/293 18004
.find
returns nil if the file does not exist
returns the merge request object of a valid file
# [RSpecRunTime] RSpec elapsed time: 20 minutes 14.01 seconds. Current RSS: ~1585M. load average: 1.07 1.12 1.09 1/293 18161
.by_category
return array of templates
when repo is bare or empty
returns empty array
# [RSpecRunTime] RSpec elapsed time: 20 minutes 15.61 seconds. Current RSS: ~1580M. load average: 1.06 1.12 1.09 1/293 18242
#content
loads the full file
raises error when file is not found
when repo is empty
raises file not found
# [RSpecRunTime] RSpec elapsed time: 20 minutes 18.0 seconds. Current RSS: ~1579M. load average: 1.06 1.12 1.09 1/293 18399
# [RSpecRunTime] Finishing example group spec/lib/gitlab/template/merge_request_template_spec.rb. It took 8.14 seconds. Expected to take 11.57 seconds.
# [RSpecRunTime] Starting example group spec/rubocop/cop/graphql/descriptions_spec.rb. Expected to take 11.13 seconds.
RuboCop::Cop::Graphql::Descriptions
autocorrecting "this" to "the"
autocorrects if "this" is found
does not autocorrect if "this" is not found
autocorrects a heredoc if "this" is found
does not autocorrect a heredoc if "this" is not found
with fields
adds an offense when there is no description
adds an offense when description does not end in a period
adds an offense when description begins with "A"
adds an offense when description begins with "The"
adds an offense when description contains the demonstrative "this"
does not add an offense when a word does not contain the substring "this"
does not add an offense when description is correct
does not add an offense when there is a resolver
# [RSpecRunTime] RSpec elapsed time: 20 minutes 19.94 seconds. Current RSS: ~1576M. load average: 1.06 1.12 1.09 1/293 18400
with arguments
adds an offense when there is no description
adds an offense when description does not end in a period
adds an offense when description begins with "A"
adds an offense when description begins with "The"
adds an offense when description contains the demonstrative "this"
does not add an offense when a word does not contain the substring "this"
does not add an offense when description is correct
# [RSpecRunTime] RSpec elapsed time: 20 minutes 21.1 seconds. Current RSS: ~1580M. load average: 1.06 1.12 1.09 1/293 18401
autocorrecting periods in descriptions
autocorrects missing periods
does not autocorrect if periods exist
autocorrects a heredoc
does not autocorrect a heredoc if periods exist
with enum values
adds an offense when there is no description
adds an offense when description does not end in a period
adds an offense when description begins with "The"
adds an offense when description begins with "A"
adds an offense when description contains the demonstrative "this"
does not add an offense when a word does not contain the substring "this"
does not add an offense when description is correct (defined using `description:`)
does not add an offense when description is correct (defined as a second argument)
# [RSpecRunTime] RSpec elapsed time: 20 minutes 22.76 seconds. Current RSS: ~1583M. load average: 1.06 1.12 1.09 1/293 18402
# [RSpecRunTime] Finishing example group spec/rubocop/cop/graphql/descriptions_spec.rb. It took 4.74 seconds. Expected to take 11.13 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb. Expected to take 10.98 seconds.
Gitlab::ExclusiveLeaseHelpers::SleepingLock
#retried?
we have not made any attempts
is expected not to be retried
we just made a single (initial) attempt
is not considered a retry
made multiple attempts
is considered a retry
#obtain
when the lease is not held
obtains the lease on the first attempt, without sleeping
when the lease is obtained already
when retries are not specified
retries to obtain a lease and raises an error
# [RSpecRunTime] RSpec elapsed time: 20 minutes 24.41 seconds. Current RSS: ~1581M. load average: 1.06 1.12 1.09 1/293 18403
when specified retries are above the maximum attempts
retries to obtain a lease and raises an error
# [RSpecRunTime] RSpec elapsed time: 20 minutes 30.99 seconds. Current RSS: ~1576M. load average: 0.89 1.08 1.08 1/288 18404
when the lease is held elsewhere
retries to obtain a lease and raises an error
when the delay is computed from the attempt number
uses the computation to determine the sleep length
when lease is granted after retry
knows that it retried
cancel
cancels the lease
# [RSpecRunTime] Finishing example group spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb. It took 8.63 seconds. Expected to take 10.98 seconds.
# [RSpecRunTime] Starting example group spec/services/security/ci_configuration/sast_create_service_spec.rb. Expected to take 10.72 seconds.
Security::CiConfiguration::SastCreateService
#execute
user does not belong to project
returns an error status
does not track a snowplow event
user belongs to project
does track the snowplow event
raises exception if the user does not have permission to create a new branch
when exception is raised
when branch was created
tries to rm branch
# [RSpecRunTime] RSpec elapsed time: 20 minutes 33.65 seconds. Current RSS: ~1586M. load average: 0.89 1.08 1.08 1/293 18476
when branch was not created
does not try to rm branch
with no parameters
returns the path to create a new merge request
when the project has a non-default ci config file
does track the snowplow event
when existing ci config contains anchors/aliases
returns a ServiceResponse error
when parsing existing ci config gives a Psych error
returns a ServiceResponse error
when parsing existing ci config gives any other error
is successful
with parameters
returns the path to create a new merge request
when the project is empty
returns a ServiceResponse error
when the repository is empty
when initialize_with_sast is false
returns a ServiceResponse error
when initialize_with_sast is true
behaves like commits directly to the default branch
commits directly to the default branch
when committing to the default branch
does not try to remove that branch on raised exceptions
behaves like commits directly to the default branch
commits directly to the default branch
# [RSpecRunTime] Finishing example group spec/services/security/ci_configuration/sast_create_service_spec.rb. It took 6.07 seconds. Expected to take 10.72 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/runners/register_runner_service_spec.rb. Expected to take 10.6 seconds.
Ci::Runners::RegisterRunnerService#execute
when no token is provided
returns error response
when invalid token is provided
returns error response
when valid token is provided
when instance registration token is used
creates runner with default values
when registering instance runners is disallowed
behaves like runner registration is disallowed
returns error response with runner_registration_disallowed reason
with non-default arguments
creates runner with specified values
with runner token expiration interval
creates runner with token expiration
when project registration token is used
creates project runner
with runner registration disabled at instance level
behaves like runner registration is disallowed
returns error response with runner_registration_disallowed reason
with runner registration disabled at group level
behaves like runner registration is disallowed
returns error response with runner_registration_disallowed reason
when it exceeds the application limits
does not create runner
when abandoned runners cause application limits to not be exceeded
creates runner
when valid runner registrars do not include project
returns 403 error
when group registration token is used
creates a group runner
with runner registration disabled at instance level
behaves like runner registration is disallowed
returns error response with runner_registration_disallowed reason
with runner registration disabled at group level
behaves like runner registration is disallowed
returns error response with runner_registration_disallowed reason
when it exceeds the application limits
does not create runner
when abandoned runners cause application limits to not be exceeded
creates runner
when valid runner registrars do not include group
returns error response
when tags are provided
creates runner with tags
creates tags in bulk
and tag list exceeds limit
does not create any tags
# [RSpecRunTime] Finishing example group spec/services/ci/runners/register_runner_service_spec.rb. It took 4.68 seconds. Expected to take 10.6 seconds.
# [RSpecRunTime] Starting example group spec/serializers/merge_request_diff_entity_spec.rb. Expected to take 10.19 seconds.
MergeRequestDiffEntity
as json
exposes needed attributes
#version_index
when diff is not present
behaves like version_index is nil
returns nil
when diff is not included in @merge_request_diffs
behaves like version_index is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 20 minutes 45.33 seconds. Current RSS: ~1544M. load average: 0.99 1.09 1.08 1/294 18788
when @merge_request_diffs.size <= 1
behaves like version_index is nil
returns nil
when @merge_request_diffs.size > 1
returns difference between size and diff index
# [RSpecRunTime] RSpec elapsed time: 20 minutes 46.96 seconds. Current RSS: ~1545M. load average: 0.99 1.09 1.08 1/294 18874
#short_commit_sha
returns short sha
returns nil if head_commit_sha does not exist
#head_version_path
merge request can be merged
returns diff path with diff_head param set
merge request cannot be merged
returns diff path with diff_head param set
# [RSpecRunTime] Finishing example group spec/serializers/merge_request_diff_entity_spec.rb. It took 6.57 seconds. Expected to take 10.19 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/health_status/indicators/patroni_apdex_spec.rb. Expected to take 9.98 seconds.
Gitlab::Database::HealthStatus::Indicators::PatroniApdex
behaves like Prometheus Alert based health indicator
#evaluate
behaves like Patroni Apdex Evaluator
with main schema
returns NoSignal signal in case the feature flag is disabled
returns Normal signal when SLI condition is met
returns Stop signal when SLI condition is not met
without prometheus_alert_db_indicators_settings
returns Unknown signal
when Prometheus client is not ready
returns Unknown signal
when apdex SLI query is not configured
returns Unknown signal
when slo is not configured
returns Unknown signal
when SLI can not be calculated
result: nil
returns Unknown signal
result: []
returns Unknown signal
result: [{}]
returns Unknown signal
result: [{"value"=>1}]
returns Unknown signal
result: [{"value"=>[1]}]
returns Unknown signal
behaves like Patroni Apdex Evaluator
with ci schema
returns NoSignal signal in case the feature flag is disabled
returns Normal signal when SLI condition is met
returns Stop signal when SLI condition is not met
without prometheus_alert_db_indicators_settings
returns Unknown signal
when Prometheus client is not ready
returns Unknown signal
when apdex SLI query is not configured
returns Unknown signal
when slo is not configured
returns Unknown signal
when SLI can not be calculated
result: nil
returns Unknown signal
result: []
returns Unknown signal
result: [{}]
returns Unknown signal
result: [{"value"=>1}]
returns Unknown signal
result: [{"value"=>[1]}]
returns Unknown signal
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/health_status/indicators/patroni_apdex_spec.rb. It took 2.66 seconds. Expected to take 9.98 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/consul/internal_spec.rb. Expected to take 9.77 seconds.
Gitlab::Consul::Internal
.api_url
returns correct value
when consul setting is not present in gitlab.yml
does not fail
.discover_service
behaves like returns nil given blank value of
with
is expected to be nil
with
is expected to be nil
behaves like returns nil given blank value of
with
is expected to be nil
with
is expected to be nil
one service discovered
returns the service address and port
multiple services discovered
uses the first service
behaves like handles failure response
raises Gitlab::Consul::Internal::SocketError when SocketError is rescued
raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued
raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued
raises Consul::Internal::UnexpectedResponseError when StandardError is rescued
raises Consul::Internal::UnexpectedResponseError when request returns 500
raises Consul::Internal::UnexpectedResponseError when request returns non json data
.discover_prometheus_server_address
returns the server address
behaves like returns nil given blank value of
with
is expected to be nil
with
is expected to be nil
behaves like handles failure response
raises Gitlab::Consul::Internal::SocketError when SocketError is rescued
raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued
raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued
raises Consul::Internal::UnexpectedResponseError when StandardError is rescued
raises Consul::Internal::UnexpectedResponseError when request returns 500
raises Consul::Internal::UnexpectedResponseError when request returns non json data
# [RSpecRunTime] Finishing example group spec/lib/gitlab/consul/internal_spec.rb. It took 2.33 seconds. Expected to take 9.77 seconds.
# [RSpecRunTime] Starting example group spec/finders/keys_finder_spec.rb. Expected to take 9.47 seconds.
KeysFinder
key_type
when `key_type` is `ssh`
returns only SSH keys
# [RSpecRunTime] RSpec elapsed time: 20 minutes 56.52 seconds. Current RSS: ~1559M. load average: 0.99 1.09 1.08 1/293 18983
when `key_type` is not specified
returns all types of keys
fingerprint
with invalid fingerprint
with invalid MD5 fingerprint
raises InvalidFingerprint
with invalid SHA fingerprint
raises InvalidFingerprint
with valid fingerprints
personal key with valid MD5 params
with an existent fingerprint
returns the key
with FIPS mode
raises InvalidFingerprint
deploy key with an existent fingerprint
returns the key
with FIPS mode
raises InvalidFingerprint
with a non-existent fingerprint
returns nil
with FIPS mode
raises InvalidFingerprint
personal key with valid SHA256 params
with an existent fingerprint
returns key
deploy key with an existent fingerprint
returns key
with a non-existent fingerprint
returns nil
user
without user
contains ssh_keys of all users in the system
with user
contains ssh_keys of only the specified users
sort order
sorts in last_used_at_desc order
# [RSpecRunTime] Finishing example group spec/finders/keys_finder_spec.rb. It took 4.38 seconds. Expected to take 9.47 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/dictionary_spec.rb. Expected to take 9.4 seconds.
Gitlab::Database::Dictionary
#find_all_by_schema
returns an array of entries with a given schema
returns an empty array if no entries match the schema
.entries
all tables and views are unique
builds a Dictionary with validated Entry records
#find_all_having_desired_sharding_key_migration_job
returns an array of entries having desired sharding key migration job
#find_by_table_name
finds an entry by table name
returns nil if the entry is not found
::Entry
for a table
#name_and_schema
returns the name of the table and its gitlab schema
#table_name
returns the name of the table
#view_name
returns nil
#milestone
returns the milestone in which the table was introduced
#gitlab_schema
returns the gitlab_schema of the table
#schema?
checks if the given schema matches the schema of the table
#key_name
returns the value of the name of the table
#desired_sharding_key_migration_job_name
returns the name of the migration that backfills the desired sharding key
#validate!
raises an error if the gitlab_schema is empty
with allow_cross_joins
#allow_cross_to_schemas
returns the list of allowed schemas
with allow_cross_transactions
#allow_cross_to_schemas
returns the list of allowed schemas
with allow_cross_foreign_keys
#allow_cross_to_schemas
returns the list of allowed schemas
for a view
#table_name
returns nil
#view_name
returns the name of the view
#key_name
returns the value of the name of the view
.any_entry
loads an entry from any scope
#to_name_and_schema_mapping
returns a hash of name and schema mappings
.entry
loads an Entry from the given scope
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/dictionary_spec.rb. It took 2.5 seconds. Expected to take 9.4 seconds.
# [RSpecRunTime] Starting example group spec/models/snippet_statistics_spec.rb. Expected to take 9.27 seconds.
SnippetStatistics
does not allow STI
is expected to belong to snippet required: false
is expected to validate that :snippet cannot be empty/falsy
#update_commit_count
updates the count of commits
when the snippet does not have a repository
returns 0
#update_file_count
updates the count of files
when the snippet does not have a repository
returns 0
#update_repository_size
updates the repository_size
when the snippet does not have a repository
returns 0
#refresh!
retrieves and saves statistic data from repository
when the database is read-only
does nothing
with a PersonalSnippet
when creating
behaves like personal snippet statistics updates
schedules a namespace statistics worker
does not try to update project stats
when updating
behaves like personal snippet statistics updates
schedules a namespace statistics worker
does not try to update project stats
with a ProjectSnippet
does not call personal snippet callbacks
behaves like UpdateProjectStatistics
is expected to be a new record
# [RSpecRunTime] Finishing example group spec/models/snippet_statistics_spec.rb. It took 3.85 seconds. Expected to take 9.27 seconds.
# [RSpecRunTime] Starting example group spec/services/service_ping/submit_service_ping_service_spec.rb. Expected to take 8.9 seconds.
ServicePing::SubmitService
when usage ping is disabled
behaves like does not run
is expected not to receive post(*(any args)) 0 times
when usage ping is disabled from GitLab config file
behaves like does not run
is expected not to receive post(*(any args)) 0 times
when enabled_and_consented is false
behaves like does not run
is expected not to receive post(*(any args)) 0 times
when enabled_and_consented is true
submits a service ping payload without errors
when usage ping is enabled
sends a POST request
and user requires usage stats consent
behaves like does not run
is expected not to receive post(*(any args)) 0 times
when conv_index data is passed
saves usage_data_id to version_usage_data_id_value
behaves like saves DevOps report data from the response
is expected to eq 31.37
when only usage_data_id is passed in response
does not save DevOps report data
saves usage_data_id to version_usage_data_id_value
when version app usage_data_id is invalid
raises an exception
when DevOps report data is passed
behaves like saves DevOps report data from the response
is expected to eq 31.37
with saving raw_usage_data
creates a raw_usage_data record
saves the correct payload
links to the default organization
and usage ping response has unsuccessful status
raises an exception
and usage data is empty string
behaves like does not send a blank usage ping payload
is expected to raise ServicePing::SubmitService::SubmissionError
and usage data is nil
behaves like does not send a blank usage ping payload
is expected to raise ServicePing::SubmitService::SubmissionError
if version app response fails
raises SubmissionError
when skip_db_write passed to service
does not save RawUsageData
does not call DevOpsReport service
metadata reporting
submits metadata
# [RSpecRunTime] Finishing example group spec/services/service_ping/submit_service_ping_service_spec.rb. It took 3.07 seconds. Expected to take 8.9 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/build_erase_service_spec.rb. Expected to take 8.81 seconds.
Ci::BuildEraseService
#execute
when build is erasable
is successful
erases artifacts
erases trace
records erasure detail
when project is undergoing statistics refresh
logs a warning
# [RSpecRunTime] RSpec elapsed time: 21 minutes 11.27 seconds. Current RSS: ~1538M. load average: 0.99 1.08 1.08 1/288 19023
when build is not erasable
is not successful
does not erase artifacts
does not erase trace
# [RSpecRunTime] RSpec elapsed time: 21 minutes 14.53 seconds. Current RSS: ~1510M. load average: 0.99 1.08 1.08 1/288 19024
# [RSpecRunTime] Finishing example group spec/services/ci/build_erase_service_spec.rb. It took 7.05 seconds. Expected to take 8.81 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/build/step_spec.rb. Expected to take 8.61 seconds.
Gitlab::Ci::Build::Step
#from_commands
when script option is specified
behaves like has correct script
fabricates an object
when before and script option is specified
behaves like has correct script
fabricates an object
when timeout option is specified in seconds
has job level timeout
behaves like has correct script
fabricates an object
# [RSpecRunTime] RSpec elapsed time: 21 minutes 17.17 seconds. Current RSS: ~1499M. load average: 0.99 1.08 1.08 1/288 19025
#from_release
with release
returns the release-cli command line
when release is empty
does not fabricate an object
#from_after_script
when after_script is empty
does not fabricate an object
when after_script is not empty
fabricates an object
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/build/step_spec.rb. It took 5.05 seconds. Expected to take 8.61 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb. Expected to take 8.52 seconds.
Gitlab::GithubImport::Importer::SingleEndpointDiffNotesImporter
is expected to includes the Gitlab::GithubImport::ParallelScheduling module
is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module
is expected to eq Gitlab::GithubImport::Representation::DiffNote
is expected to eq Gitlab::GithubImport::Importer::DiffNoteImporter
is expected to eq :pull_request_comments
is expected to eq :diff_note
is expected to eq 1
#each_object_to_import
fetches data
skips cached pages
skips cached merge requests
# [RSpecRunTime] RSpec elapsed time: 21 minutes 24.74 seconds. Current RSS: ~1516M. load average: 0.99 1.08 1.08 1/288 19026
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb. It took 5.15 seconds. Expected to take 8.52 seconds.
# [RSpecRunTime] Starting example group spec/services/projects/deploy_tokens/create_service_spec.rb. Expected to take 8.32 seconds.
Projects::DeployTokens::CreateService
behaves like a deploy token creation service
#execute
when the deploy token is valid
creates a new DeployToken
creates a new ProjectDeployToken
returns a DeployToken
sets the creator_id as the id of the current_user
# [RSpecRunTime] RSpec elapsed time: 21 minutes 27.01 seconds. Current RSS: ~1514M. load average: 0.99 1.08 1.08 1/288 19027
when expires at date is not passed
sets Forever.date
when username is empty string
converts it to nil
when username is provided
keeps the provided username
when the deploy token is invalid
does not create a new DeployToken
does not create a new ProjectDeployToken
# [RSpecRunTime] RSpec elapsed time: 21 minutes 29.65 seconds. Current RSS: ~1509M. load average: 0.99 1.08 1.08 1/288 19028
# [RSpecRunTime] Finishing example group spec/services/projects/deploy_tokens/create_service_spec.rb. It took 4.91 seconds. Expected to take 8.32 seconds.
# [RSpecRunTime] Starting example group spec/services/quick_actions/target_service_spec.rb. Expected to take 8.25 seconds.
QuickActions::TargetService
#execute
for issue
behaves like find target
returns the target
# [RSpecRunTime] RSpec elapsed time: 21 minutes 30.82 seconds. Current RSS: ~1505M. load average: 0.99 1.08 1.08 1/288 19029
behaves like build target
builds a new target
behaves like build target
builds a new target
for work item
behaves like find target
returns the target
when work item belongs to a group
behaves like find target
returns the target
for merge request
behaves like find target
returns the target
behaves like build target
builds a new target
behaves like build target
builds a new target
for commit
behaves like find target
returns the target
behaves like no target
returns nil
with nil target_iid
behaves like find target
returns the target
for unknown type
behaves like no target
returns nil
# [RSpecRunTime] Finishing example group spec/services/quick_actions/target_service_spec.rb. It took 4.89 seconds. Expected to take 8.25 seconds.
# [RSpecRunTime] Starting example group spec/services/projects/download_service_spec.rb. Expected to take 7.97 seconds.
Projects::DownloadService
File service
for a URL that is not on allowlist
is expected to eq nil
for URLs that are on the allowlist
an image file
is expected to have key :alt
is expected to have key :url
is expected to match "rails_sample.jpg"
is expected to eq "rails_sample"
# [RSpecRunTime] RSpec elapsed time: 21 minutes 36.98 seconds. Current RSS: ~1551M. load average: 1.00 1.08 1.08 1/293 19063
a txt file
is expected to have key :alt
is expected to have key :url
is expected to match "doc_sample.txt"
is expected to eq "doc_sample.txt"
# [RSpecRunTime] RSpec elapsed time: 21 minutes 38.9 seconds. Current RSS: ~1542M. load average: 1.00 1.08 1.08 1/293 19064
# [RSpecRunTime] Finishing example group spec/services/projects/download_service_spec.rb. It took 4.37 seconds. Expected to take 7.97 seconds.
# [RSpecRunTime] Starting example group spec/models/integrations/campfire_spec.rb. Expected to take 7.92 seconds.
Integrations::Campfire
does not allow STI
behaves like Integrations::ResetSecretFields
#exposing_secrets_fields
returns an array of strings
#reset_secret_fields?
returns false if no exposing field has changed
returns true if any exposing field has changed
validation callback
when an exposing field has changed
clears all secret fields
when a secret field has been updated
does not clear this secret field
when a secret field has been updated with the same value
does not clear this secret field
when no exposing field has changed
does not clear any secret fields
behaves like Integrations::HasAvatar
#avatar_url
returns the expected avatar URL
Validations
is expected to validate that :room looks like an integer greater than 0
is expected to validate that the length of :subdomain is between 1 and 63
is expected to allow :subdomain to be ‹"foo"›
is expected not to allow :subdomain to be ‹"foo.bar"›
is expected not to allow :subdomain to be ‹"foo.bar/#"›
when integration is active
is expected to validate that :token cannot be empty/falsy
when integration is inactive
is expected not to validate that :token cannot be empty/falsy
#execute
calls Campfire API to get a list of rooms and speak in a room
calls Campfire API to get a list of rooms but shouldn't speak in a room
#log_error
logs an error
# [RSpecRunTime] Finishing example group spec/models/integrations/campfire_spec.rb. It took 2.3 seconds. Expected to take 7.92 seconds.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/board_resolver_spec.rb. Expected to take 7.67 seconds.
Resolvers::BaseResolver.single
#resolve
when there is no parent
returns nil if parent is nil
when project boards
behaves like group and project boards resolver
does not create a default board
calls Boards::BoardsFinder
requires an ID
when querying for a single board
returns specified board
returns nil if board not found
# [RSpecRunTime] RSpec elapsed time: 21 minutes 43.68 seconds. Current RSS: ~1537M. load average: 1.00 1.07 1.07 1/291 19065
when group boards
behaves like group and project boards resolver
does not create a default board
calls Boards::BoardsFinder
requires an ID
when querying for a single board
returns specified board
returns nil if board not found
# [RSpecRunTime] RSpec elapsed time: 21 minutes 44.83 seconds. Current RSS: ~1536M. load average: 1.00 1.07 1.07 1/290 19066
# [RSpecRunTime] Finishing example group spec/graphql/resolvers/board_resolver_spec.rb. It took 3.62 seconds. Expected to take 7.67 seconds.
# [RSpecRunTime] Starting example group spec/models/x509_certificate_spec.rb. Expected to take 7.67 seconds.
X509Certificate
does not allow STI
validation
is expected to validate that :subject_key_identifier cannot be empty/falsy
is expected to validate that :email cannot be empty/falsy
is expected to validate that :serial_number cannot be empty/falsy
is expected to validate that :x509_issuer_id cannot be empty/falsy
associations
is expected to belong to x509_issuer required: true
.safe_create!
creates a new certificate if it was not found
assigns the correct attributes when creating
calls mark_commit_signatures_unverified
certificate revocation handling
starts a revoke worker if certificate is revoked
does not starts a revoke worker for good certificates
# [RSpecRunTime] RSpec elapsed time: 21 minutes 46.93 seconds. Current RSS: ~1558M. load average: 1.00 1.07 1.07 1/288 19067
validators
accepts correct subject_key_identifier
rejects invalid subject_key_identifier
accepts correct email address
rejects invalid email
accepts valid serial_number
rejects invalid serial_number
# [RSpecRunTime] Finishing example group spec/models/x509_certificate_spec.rb. It took 2.78 seconds. Expected to take 7.67 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb. Expected to take 7.41 seconds.
Gitlab::Ci::Pipeline::Expression::Parser
#tree
validates simple operators
expression: "$VAR1 == \"123\"", result_tree: "equals($VAR1, \"123\")"
is expected to eq "equals($VAR1, \"123\")"
expression: "$VAR1 == \"123\" == $VAR2", result_tree: "equals(equals($VAR1, \"123\"), $VAR2)"
is expected to eq "equals(equals($VAR1, \"123\"), $VAR2)"
expression: "$VAR", result_tree: "$VAR"
is expected to eq "$VAR"
expression: "\"some value\"", result_tree: "\"some value\""
is expected to eq "\"some value\""
expression: "null", result_tree: "null"
is expected to eq "null"
expression: "$VAR1 || $VAR2 && $VAR3", result_tree: "or($VAR1, and($VAR2, $VAR3))"
is expected to eq "or($VAR1, and($VAR2, $VAR3))"
expression: "$VAR1 && $VAR2 || $VAR3", result_tree: "or(and($VAR1, $VAR2), $VAR3)"
is expected to eq "or(and($VAR1, $VAR2), $VAR3)"
expression: "$VAR1 && $VAR2 || $VAR3 && $VAR4", result_tree: "or(and($VAR1, $VAR2), and($VAR3, $VAR4))"
is expected to eq "or(and($VAR1, $VAR2), and($VAR3, $VAR4))"
expression: "$VAR1 && ($VAR2 || $VAR3) && $VAR4", result_tree: "and(and($VAR1, or($VAR2, $VAR3)), $VAR4)"
is expected to eq "and(and($VAR1, or($VAR2, $VAR3)), $VAR4)"
when combining && and OR operators
returns operations in a correct order
when using parenthesis
returns operations in a correct order
when expression is empty
raises a parsing error
when two value tokens have no operator
raises a parsing error
when an operator has no left side
raises an OperatorError
when an operator has no right side
raises an OperatorError
when parenthesis are unmatched
expression: "$VAR == ("
raises a ParseError
expression: "$VAR2 == (\"aa\""
raises a ParseError
expression: "$VAR2 == (\"aa\"))"
raises a ParseError
expression: "$VAR2 == \"aa\")"
raises a ParseError
expression: "(($VAR2 == \"aa\")"
raises a ParseError
expression: "($VAR2 == \"aa\"))"
raises a ParseError
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb. It took 2.21 seconds. Expected to take 7.41 seconds.
# [RSpecRunTime] Starting example group spec/models/concerns/use_sql_function_for_primary_key_lookups_spec.rb. Expected to take 7.4 seconds.
UseSqlFunctionForPrimaryKeyLookups
does not allow STI
when the use_sql_functions_for_primary_key_lookups FF is off
loads the correct record
uses the SQL-based finder query
when the use_sql_functions_for_primary_key_lookups FF is on
loads the correct record
uses the fuction-based finder query
uses query cache
when the model has ignored columns
enumerates the column names
when there are scope attributes
loads the correct record
does not use the function-based finder query
when there are multiple arguments
loads the correct records
does not use the function-based finder query
when there is block given
loads the correct records
does not use the function-based finder query
when there is no primary key defined
raises ActiveRecord::UnknownPrimaryKey
when id is provided as an array
returns the correct record as an array
does use the function-based finder query
when array has multiple elements
does not use the function-based finder query
when the provided id is null
raises ActiveRecord::RecordNotFound
when the provided id is not a string that can cast to numeric
raises ActiveRecord::RecordNotFound
# [RSpecRunTime] Finishing example group spec/models/concerns/use_sql_function_for_primary_key_lookups_spec.rb. It took 2.86 seconds. Expected to take 7.4 seconds.
# [RSpecRunTime] Starting example group spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb. Expected to take 7.14 seconds.
Clusters::Agents::Authorizations::UserAccess::ProjectAuthorization
is expected to validate jsonb schema "config"
is expected to belong to agent class_name => Clusters::Agent required: true
is expected to belong to project class_name => Project required: true
does not allow STI
.for_user
user_role: :guest, expected_access_level: nil
returns the expected result
# [RSpecRunTime] RSpec elapsed time: 21 minutes 54.0 seconds. Current RSS: ~1553M. load average: 1.00 1.07 1.07 1/288 19068
user_role: :reporter, expected_access_level: nil
returns the expected result
user_role: :developer, expected_access_level: 30
returns the expected result
user_role: :maintainer, expected_access_level: 40
returns the expected result
user_role: :owner, expected_access_level: 50
returns the expected result
#config_project
is expected to eq #<Project id:976 namespace959/project-1123>>
# [RSpecRunTime] Finishing example group spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb. It took 3.16 seconds. Expected to take 7.14 seconds.
# [RSpecRunTime] Starting example group spec/tooling/graphql/docs/renderer_spec.rb. Expected to take 7.13 seconds.
Tooling::Graphql::Docs::Renderer
#contents
headings
contains the expected sections
when a field has a list type
is expected to include "### `ArrayTest`\n\n#### Fields\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| <a id=\"arraytestfoo\"></a>`foo` | [`[String!]!`](#string) | A description. |\n"
a top level query field
generates the query with arguments
when description does not end with `.`
adds the `.` to the end
when fields are not defined in alphabetical order
lists the fields in alphabetical order
when a field has a documentation reference
behaves like renders correctly as GraphQL documentation
contains the expected section
when an argument is deprecated
behaves like renders correctly as GraphQL documentation
contains the expected section
when a field is deprecated
behaves like renders correctly as GraphQL documentation
contains the expected section
when a Query.field is deprecated
behaves like renders correctly as GraphQL documentation
contains the expected section
when an argument is in alpha
behaves like renders correctly as GraphQL documentation
contains the expected section
when a field is in alpha
behaves like renders correctly as GraphQL documentation
contains the expected section
when a Query.field is in alpha
behaves like renders correctly as GraphQL documentation
contains the expected section
when a field has an Enumeration type
behaves like renders correctly as GraphQL documentation
contains the expected section
when a field has a global ID type
section for IDTest
behaves like renders correctly as GraphQL documentation
contains the expected section
section for UserID
behaves like renders correctly as GraphQL documentation
contains the expected section
when there is a mutation
does not render the automatically generated payload type
does not render the automatically generated input type as its own section
behaves like renders correctly as GraphQL documentation
contains the expected section
when there is an input type
behaves like renders correctly as GraphQL documentation
contains the expected section
when there is an interface and a union
lists the fields correctly, and includes descriptions of all the types
# [RSpecRunTime] Finishing example group spec/tooling/graphql/docs/renderer_spec.rb. It took 2.37 seconds. Expected to take 7.13 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb. Expected to take 6.96 seconds.
Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation
is expected to be a kind of Gitlab::Database::SharedModel(abstract)
does not allow STI
.constraint_type_exists?
is expected to be truthy
always asks the database
#handle_exception!
increases the attempts number
saves error details
.table_available?
is expected to be truthy
when the table does not exist
is expected to be falsy
scopes
.ordered
is expected to eq [#<Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation id: 3, created_at: "2024-03-..."fk_users_id_2", table_name: "users", last_error: nil, attempts: 1, constraint_type: "foreign_key">]
.foreign_key_type
is expected to eq [#<Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation id: 4, created_at: "2024-03-..."fk_users_id_4", table_name: "users", last_error: nil, attempts: 1, constraint_type: "foreign_key">]
does not apply the filter if the column is not present
.check_constraint_type
is expected to eq [#<Gitlab::Database::AsyncConstraints::PostgresAsyncConstraintValidation id: 9, created_at: "2024-03-...sers_id_9", table_name: "users", last_error: nil, attempts: 0, constraint_type: "check_constraint">]
validations
is expected to validate that :name cannot be empty/falsy
is expected to validate that :name is case-sensitively unique within the scope of :table_name
is expected to validate that the length of :name is at most 63
is expected to validate that :table_name cannot be empty/falsy
is expected to validate that the length of :table_name is at most 63
is expected to validate that the length of :last_error is at most 10000
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb. It took 2.38 seconds. Expected to take 6.96 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb. Expected to take 6.85 seconds.
Gitlab::Ci::Pipeline::Expression::Lexer
#tokens
returns single value
does ignore whitespace characters
returns multiple values of the same token
returns multiple values with different tokens
returns tokens and operators
limits statement to specified amount of tokens
raises syntax error in case of finding unknown tokens
with complex expressions
expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]
is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]
expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]
is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]
expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]
is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]
expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]
is expected to eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]
expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]
is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]
expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]
is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]
expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]
is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]
expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]
is expected to eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]
expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]
is expected to eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]
with parentheses are used
expression: "($PRESENT_VARIABLE =~ /my var/) && $EMPTY_VARIABLE =~ /nope/", tokens: ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]
is expected to eq ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]
expression: "$PRESENT_VARIABLE =~ /my var/ || ($EMPTY_VARIABLE =~ /nope/)", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]
is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]
expression: "($PRESENT_VARIABLE && (null || $EMPTY_VARIABLE == \"\"))", tokens: ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]
is expected to eq ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]
#lexemes
returns an array of syntax lexemes
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb. It took 2.05 seconds. Expected to take 6.85 seconds.
# [RSpecRunTime] Starting example group spec/services/users/assigned_issues_count_service_spec.rb. Expected to take 6.72 seconds.
Users::AssignedIssuesCountService
when the number of assigned open issues exceeds max_limit
when user is admin
returns the max_limit count
# [RSpecRunTime] RSpec elapsed time: 22 minutes 4.15 seconds. Current RSS: ~1548M. load average: 1.00 1.07 1.07 1/288 19070
when user is non-admin
returns the max_limit count
when user has assigned open issues from archived and closed projects
count all assigned open issues excluding those from closed or archived projects
behaves like a counter caching service
#count
caches the count
#refresh_cache
refreshes the cache
#delete_cache
removes the cache
#uncached_count
does not cache the count
# [RSpecRunTime] Finishing example group spec/services/users/assigned_issues_count_service_spec.rb. It took 3.98 seconds. Expected to take 6.72 seconds.
# [RSpecRunTime] Starting example group spec/views/layouts/terms.html.haml_spec.rb. Expected to take 6.66 seconds.
layouts/terms
behaves like a layout which reflects the application theme setting
as a themed layout
when no theme is explicitly selected
renders with the default theme
when user is authenticated & has selected a specific theme
chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", primary_color="#222261">
renders with the Indigo theme
chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", primary_color="#41419f">
renders with the Light Indigo theme
chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", primary_color="#0b2640">
renders with the Blue theme
chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", primary_color="#145aa1">
renders with the Light Blue theme
chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", primary_color="#0e4328">
renders with the Green theme
chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", primary_color="#1b653f">
renders with the Light Green theme
chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", primary_color="#580d02">
renders with the Red theme
chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", primary_color="#a02e1c">
renders with the Light Red theme
chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", primary_color="#333238">
renders with the Gray theme
chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Neutral", css_class="ui-neutral", primary_color="#ececef">
renders with the Neutral theme
behaves like a layout which reflects the preferred language
when changing the a preferred language
renders the correct `lang` attribute in the html element
# [RSpecRunTime] Finishing example group spec/views/layouts/terms.html.haml_spec.rb. It took 3.6 seconds. Expected to take 6.66 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/email/service_desk_email_spec.rb. Expected to take 6.48 seconds.
Gitlab::Email::ServiceDeskEmail
behaves like common email methods
behaves like enabled? method for email
value: false, address: nil, result: false
is expected to eq false
value: false, address: "replies+%{key}@example.com", result: false
is expected to eq false
value: true, address: nil, result: false
is expected to eq false
value: true, address: "replies+%{key}@example.com", result: true
is expected to eq true
behaves like supports_wildcard? method for email
when address contains the wildcard placeholder
confirms that wildcard is supported
when address doesn't contain the wildcard placeholder
returns that wildcard is not supported
when address is nil
returns that wildcard is not supported
behaves like key_from_fallback_message_id method for email
returns reply key
behaves like supports_issue_creation? method for email
enabled_value: false, supports_wildcard_value: false, result: false
is expected to eq false
enabled_value: false, supports_wildcard_value: true, result: false
is expected to eq false
enabled_value: true, supports_wildcard_value: false, result: false
is expected to eq false
enabled_value: true, supports_wildcard_value: true, result: true
is expected to eq true
behaves like reply_address method for email
returns the address with an interpolated reply key
behaves like unsubscribe_address method for email
returns the address with interpolated reply key and unsubscribe suffix
behaves like scan_fallback_references method for email
returns reply key
.address_for_key
when service desk address is set
returns address
when service desk address is not set
returns nil
.key_from_address
when service desk address is set
returns key
when service desk address is not set
returns nil
# [RSpecRunTime] Finishing example group spec/lib/gitlab/email/service_desk_email_spec.rb. It took 1.97 seconds. Expected to take 6.48 seconds.
# [RSpecRunTime] Starting example group spec/models/packages/sem_ver_spec.rb. Expected to take 6.42 seconds.
Packages::SemVer
does not allow STI
#parse
behaves like #parse with a valid semver
with 1.0.0
returns v1.0.0 with prefix
returns 1.0.0 without prefix
behaves like #parse with a valid semver
with 1.0.0-pre
returns v1.0.0-pre with prefix
returns 1.0.0-pre without prefix
behaves like #parse with a valid semver
with 1.0.0+build
returns v1.0.0+build with prefix
returns 1.0.0+build without prefix
behaves like #parse with a valid semver
with 1.0.0-pre+build
returns v1.0.0-pre+build with prefix
returns 1.0.0-pre+build without prefix
behaves like #parse with an invalid semver
with 01.0.0
returns nil with prefix
returns nil without prefix
behaves like #parse with an invalid semver
with 0.01.0
returns nil with prefix
returns nil without prefix
behaves like #parse with an invalid semver
with 0.0.01
returns nil with prefix
returns nil without prefix
behaves like #parse with an invalid semver
with 1.0.0asdf
returns nil with prefix
returns nil without prefix
# [RSpecRunTime] Finishing example group spec/models/packages/sem_ver_spec.rb. It took 1.77 seconds. Expected to take 6.42 seconds.
# [RSpecRunTime] Starting example group spec/models/ci/commit_with_pipeline_spec.rb. Expected to take 6.33 seconds.
Ci::CommitWithPipeline
does not allow STI
#last_pipeline
returns last pipeline
#lazy_latest_pipeline
returns the correct pipelines with only 1 SQL query per project
#latest_pipeline
without ref argument
behaves like fetching latest pipeline
returns the latest pipeline for the project
returns the memoized pipeline for the key of
when a particular ref is specified
behaves like fetching latest pipeline
returns the latest pipeline for the project
returns the memoized pipeline for the key of master
#latest_pipeline_for_project
returns the latest pipeline of the commit for the given ref and project
#set_latest_pipeline_for_ref
sets the latest pipeline for a given reference
#status
returns the status of the latest pipeline for the given ref
returns nil when latest pipeline is not present for the given ref
returns the status of the latest pipeline when no ref is given
# [RSpecRunTime] Finishing example group spec/models/ci/commit_with_pipeline_spec.rb. It took 2.4 seconds. Expected to take 6.33 seconds.
# [RSpecRunTime] Starting example group spec/workers/bulk_imports/pipeline_batch_worker_spec.rb. Expected to take 6.25 seconds.
BulkImports::PipelineBatchWorker
performs multiple times sequentially without raising an exception
is labeled as idempotent
processes the batch once
with stop signal from database health check
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_BulkImports::PipelineBatchWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
defers the job by set time
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_BulkImports::PipelineBatchWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
lazy evaluates schema and tables
when `bulk_import_deferred_workers` feature flag is disabled
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_BulkImports::PipelineBatchWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
does not defer job execution
# [RSpecRunTime] RSpec elapsed time: 22 minutes 17.5 seconds. Current RSS: ~1550M. load average: 1.24 1.11 1.09 1/293 19109
.sidekiq_retries_exhausted
sets batch status to failed
#perform
runs the given pipeline batch successfully
with tracker status
when tracker is failed
skips the batch
when tracker is finished
skips the batch
with batch status
when batch status is started
finishes the batch
when batch status is created
finishes the batch
when batch status is finished
stays finished
when exclusive lease cannot be obtained
does not run the pipeline
when pipeline raises an exception
when pipeline is retryable
retries the batch
when pipeline raises an error
keeps batch status as `started` and lets the error bubble up
# [RSpecRunTime] Finishing example group spec/workers/bulk_imports/pipeline_batch_worker_spec.rb. It took 2.71 seconds. Expected to take 6.25 seconds.
# [RSpecRunTime] Starting example group spec/finders/autocomplete/group_users_finder_spec.rb. Expected to take 6.12 seconds.
Autocomplete::GroupUsersFinder
#execute
with group members
returns members of groups in the hierarchy
# [RSpecRunTime] RSpec elapsed time: 22 minutes 20.77 seconds. Current RSS: ~1539M. load average: 1.22 1.11 1.09 2/294 19110
with project members
returns members of descendant projects
with invited group members
returns members of groups invited to this group
returns members of groups invited to an ancestor group
returns members of groups invited to a descendant group
returns members of groups invited to a child project
returns members of groups invited to a descendant project
does not return members of groups invited to a project of an ancestor group
# [RSpecRunTime] RSpec elapsed time: 22 minutes 22.49 seconds. Current RSS: ~1535M. load average: 1.22 1.11 1.09 1/293 19111
# [RSpecRunTime] Finishing example group spec/finders/autocomplete/group_users_finder_spec.rb. It took 3.42 seconds. Expected to take 6.12 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/cache/request_cache_spec.rb. Expected to take 6.06 seconds.
Gitlab::Cache::RequestCache
when RequestStore is active
computes once for different instances when keys are the same
computes twice if RequestStore starts over
behaves like cache for the same instance
does not compute twice for the same argument
computes twice for the different argument
computes twice for the different class name
computes twice for the different method
when request_cache_key is provided
computes twice for the different keys, id
computes twice for the different keys, name
uses extra method cache key if provided
# [RSpecRunTime] RSpec elapsed time: 22 minutes 23.66 seconds. Current RSS: ~1548M. load average: 1.22 1.11 1.09 1/293 19112
when RequestStore is inactive
computes twice for different instances even if keys are the same
behaves like cache for the same instance
does not compute twice for the same argument
computes twice for the different argument
computes twice for the different class name
computes twice for the different method
when request_cache_key is provided
computes twice for the different keys, id
computes twice for the different keys, name
uses extra method cache key if provided
# [RSpecRunTime] Finishing example group spec/lib/gitlab/cache/request_cache_spec.rb. It took 1.98 seconds. Expected to take 6.06 seconds.
# [RSpecRunTime] Starting example group spec/models/milestone_note_spec.rb. Expected to take 5.91 seconds.
MilestoneNote
does not allow STI
.from_event
behaves like a synthetic note
behaves like a system note
has the correct attributes
# [RSpecRunTime] RSpec elapsed time: 22 minutes 25.96 seconds. Current RSS: ~1556M. load average: 1.20 1.11 1.09 1/293 19119
#discussion_id
returns the expected discussion id
# [RSpecRunTime] RSpec elapsed time: 22 minutes 27.1 seconds. Current RSS: ~1554M. load average: 1.20 1.11 1.09 1/289 19126
with a remove milestone event
creates the expected note
# [RSpecRunTime] RSpec elapsed time: 22 minutes 28.35 seconds. Current RSS: ~1556M. load average: 1.20 1.11 1.09 1/288 19133
# [RSpecRunTime] Finishing example group spec/models/milestone_note_spec.rb. It took 3.87 seconds. Expected to take 5.91 seconds.
# [RSpecRunTime] Starting example group spec/finders/releases/evidence_pipeline_finder_spec.rb. Expected to take 5.85 seconds.
Releases::EvidencePipelineFinder#execute
when the tag is passed
returns the evidence pipeline
when the ref is passed
returns the evidence pipeline
empty params
returns nil
params[:evidence_pipeline] is present
returns the passed evidence pipeline
# [RSpecRunTime] Finishing example group spec/finders/releases/evidence_pipeline_finder_spec.rb. It took 3.39 seconds. Expected to take 5.85 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb. Expected to take 5.79 seconds.
Gitlab::GithubImport::Importer::Events::CrossReferenced
with Issue
behaves like import cross-referenced event
when referenced in other issue
creates expected note
# [RSpecRunTime] RSpec elapsed time: 22 minutes 33.51 seconds. Current RSS: ~1553M. load average: 1.18 1.11 1.09 1/293 19199
when referenced in pull request
creates expected note
when referenced in out of project issue/pull_request
does not create expected note
with MergeRequest
behaves like import cross-referenced event
when referenced in other issue
creates expected note
when referenced in pull request
creates expected note
when referenced in out of project issue/pull_request
does not create expected note
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb. It took 3.69 seconds. Expected to take 5.79 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/popen/runner_spec.rb. Expected to take 5.64 seconds.
Gitlab::Popen::Runner
#run
runs the command and returns the result
#all_success_and_clean?
returns true when exit status is 0 and stderr is empty
returns false when exit status is not 0
returns false when exit stderr has something
#all_success?
returns true when exit status is 0
returns false when exit status is not 0
returns true
#all_stderr_empty?
returns true when stderr is empty
returns true when exit status is not 0
returns false when exit stderr has something
#failed_results
returns [] when everything is passed
returns the result when exit status is not 0
returns [] when exit stderr has something
#warned_results
returns [] when everything is passed
returns [] when exit status is not 0
returns the result when exit stderr has something
# [RSpecRunTime] Finishing example group spec/lib/gitlab/popen/runner_spec.rb. It took 1.72 seconds. Expected to take 5.64 seconds.
# [RSpecRunTime] Starting example group spec/services/projects/import_export/parallel_export_service_spec.rb. Expected to take 5.57 seconds.
Projects::ImportExport::ParallelExportService
#execute
creates a project export archive file
logs export progress
executes after export stragegy on export success
ensures files are cleaned up
when export fails
notifies the error to the user
# [RSpecRunTime] RSpec elapsed time: 22 minutes 39.57 seconds. Current RSS: ~1562M. load average: 1.17 1.11 1.09 1/293 19288
when after export stragegy fails
notifies the error to the user
# [RSpecRunTime] Finishing example group spec/services/projects/import_export/parallel_export_service_spec.rb. It took 2.86 seconds. Expected to take 5.57 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb. Expected to take 5.46 seconds.
Gitlab::Ci::Config::Entry::Reports::CoverageReport
validations
when it is valid
is expected to be valid
is expected to eq {:coverage_format=>"cobertura", :path=>"cobertura-coverage.xml"}
when it is not a hash
config: "string"
is expected not to be valid
is expected to include /should be a hash/
config: true
is expected not to be valid
is expected to include /should be a hash/
config: []
is expected not to be valid
is expected to include /should be a hash/
with unsupported coverage format
is expected not to be valid
is expected to include /format must be one of supported formats/
without coverage format
is expected not to be valid
is expected to include /format can't be blank/
without path
is expected not to be valid
is expected to include /path can't be blank/
with invalid path
is expected not to be valid
is expected to include /path should be a string/
with unknown keys
is expected not to be valid
is expected to include /contains unknown keys/
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb. It took 1.99 seconds. Expected to take 5.46 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage_data_counters/note_counter_spec.rb. Expected to take 5.38 seconds.
Gitlab::UsageDataCounters::NoteCounter
behaves like a note usage counter
.count(create)
increments the Note create counter by 1
.read(create)
returns the total number of create events
behaves like a note usage counter
.count(create)
increments the Note create counter by 1
.read(create)
returns the total number of create events
behaves like a note usage counter
.count(create)
increments the Note create counter by 1
.read(create)
returns the total number of create events
.totals
can report all totals
unknown events or noteable_type
event: :create, noteable_type: "Snippet", expected_count: 1, should_raise: false
handles event
event: :wibble, noteable_type: "Snippet", expected_count: 0, should_raise: true
handles event
event: :create, noteable_type: "MergeRequest", expected_count: 1, should_raise: false
handles event
event: :wibble, noteable_type: "MergeRequest", expected_count: 0, should_raise: true
handles event
event: :create, noteable_type: "Commit", expected_count: 1, should_raise: false
handles event
event: :wibble, noteable_type: "Commit", expected_count: 0, should_raise: true
handles event
event: :create, noteable_type: "Issue", expected_count: 0, should_raise: false
handles event
event: :wibble, noteable_type: "Issue", expected_count: 0, should_raise: false
handles event
# [RSpecRunTime] Finishing example group spec/lib/gitlab/usage_data_counters/note_counter_spec.rb. It took 1.57 seconds. Expected to take 5.38 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/auth/user_access_denied_reason_spec.rb. Expected to take 5.27 seconds.
Gitlab::Auth::UserAccessDeniedReason
#rejection_message
when a user is blocked
is expected to match /blocked/
a user did not accept the enforced terms
is expected to match /must accept the Terms of Service/
is expected to include "user570"
is expected to include "http://localhost"
# [RSpecRunTime] RSpec elapsed time: 22 minutes 45.85 seconds. Current RSS: ~1577M. load average: 1.07 1.09 1.08 1/288 19289
when the user is internal
is expected to match /This action cannot be performed by internal users/
when the user is deactivated
is expected to eq "Your account has been deactivated by your administrator. Please log back in from a web browser to reactivate your account at http://localhost"
when the user is unconfirmed
is expected to match /Your primary email address is not confirmed/
when the user is blocked pending approval
is expected to eq "Your account is pending approval from your administrator and hence blocked."
when the user has expired password
is expected to eq "Your password expired. Please access GitLab from a web browser to update your password."
# [RSpecRunTime] Finishing example group spec/lib/gitlab/auth/user_access_denied_reason_spec.rb. It took 3.04 seconds. Expected to take 5.27 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/endpoint_attributes_spec.rb. Expected to take 5.16 seconds.
Gitlab::EndpointAttributes
is nil when nothing was defined
returns the expected category
falls back to default when urgency was not defined
returns the expected urgency
returns feature category for an implied action if not specify actions
returns expected duration for an implied action if not specify actions
returns the expected category for categories defined in subclasses
falls back to superclass's feature category
returns the expected urgency for categories defined in subclasses
falls back to superclass's expected duration
raises an error when defining for the controller and for individual actions
raises an error when multiple calls define the same action
raises an error when multiple calls define the same action
does not raise an error when multiple calls define the same action and configs
raises an error if the expected duration is not supported
# [RSpecRunTime] Finishing example group spec/lib/gitlab/endpoint_attributes_spec.rb. It took 1.72 seconds. Expected to take 5.16 seconds.
# [RSpecRunTime] RSpec elapsed time: 22 minutes 48.45 seconds. Current RSS: ~1578M. load average: 1.07 1.09 1.08 1/288 19290
# [RSpecRunTime] Starting example group spec/lib/gitlab/reactive_cache_set_cache_spec.rb. Expected to take 5.12 seconds.
Gitlab::ReactiveCacheSetCache
#cache_key
includes the suffix
#read
is expected to be empty
after item added
is expected to contain exactly "test_item"
#write
writes the value to the cache
sets the expiry of the set
#clear_cache!
deletes the cached items
when key size is large
sends multiple pipelines of 1000 unlinks
#include?
is expected to equal false
item added
is expected to equal true
count
is expected to equal 0
item added
is expected to equal 1
# [RSpecRunTime] Finishing example group spec/lib/gitlab/reactive_cache_set_cache_spec.rb. It took 1.99 seconds. Expected to take 5.12 seconds.
# [RSpecRunTime] Starting example group spec/policies/projects/branch_rule_policy_spec.rb. Expected to take 5.02 seconds.
Projects::BranchRulePolicy
as a developer
behaves like disallows branch rule crud
is expected not to be allowed :read_branch_rule
is expected not to be allowed :create_branch_rule
is expected not to be allowed :update_branch_rule
is expected not to be allowed :destroy_branch_rule
as a guest
behaves like disallows branch rule crud
is expected not to be allowed :read_branch_rule
is expected not to be allowed :create_branch_rule
is expected not to be allowed :update_branch_rule
is expected not to be allowed :destroy_branch_rule
as a maintainer
behaves like allows branch rule crud
is expected to be allowed :read_branch_rule
is expected to be allowed :create_branch_rule
is expected to be allowed :update_branch_rule
is expected to be allowed :destroy_branch_rule
# [RSpecRunTime] Finishing example group spec/policies/projects/branch_rule_policy_spec.rb. It took 1.87 seconds. Expected to take 5.02 seconds.
# [RSpecRunTime] Starting example group spec/lib/bitbucket/representation/pull_request_comment_spec.rb. Expected to take 4.93 seconds.
Bitbucket::Representation::PullRequestComment
#iid
is expected to eq 1
#file_path
is expected to eq "/path"
#old_pos
is expected to eq 3
#new_pos
is expected to eq 3
#parent_id
is expected to eq 2
is expected to be nil
#inline?
is expected to be truthy
is expected to be falsey
#has_parent?
is expected to be truthy
is expected to be falsey
#deleted?
is expected to be truthy
is expected to be falsey
is expected to be falsey
# [RSpecRunTime] Finishing example group spec/lib/bitbucket/representation/pull_request_comment_spec.rb. It took 1.3 seconds. Expected to take 4.93 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/create_pipeline_service/parameter_content_spec.rb. Expected to take 4.91 seconds.
Ci::CreatePipelineService
#execute
when source is a dangling build
parameter config content
creates a pipeline
creates builds with the correct names
creates stages with the correct names
sets the correct config source
# [RSpecRunTime] RSpec elapsed time: 22 minutes 56.47 seconds. Current RSS: ~1554M. load average: 1.06 1.08 1.08 1/293 19327
# [RSpecRunTime] Finishing example group spec/services/ci/create_pipeline_service/parameter_content_spec.rb. It took 2.95 seconds. Expected to take 4.91 seconds.
# [RSpecRunTime] Starting example group spec/models/ci/build_trace_spec.rb. Expected to take 4.78 seconds.
Ci::BuildTrace
does not allow STI
returns formatted trace
delegated methods
is expected to delegate #state to the #trace object
is expected to delegate #append to the #trace object
is expected to delegate #truncated to the #trace object
is expected to delegate #offset to the #trace object
is expected to delegate #size to the #trace object
is expected to delegate #total to the #trace object
is expected to delegate #build_id to the #build object as #id
is expected to delegate #build_status to the #build object as #status
is expected to delegate #build_complete? to the #build object as #complete?
# [RSpecRunTime] RSpec elapsed time: 22 minutes 58.13 seconds. Current RSS: ~1555M. load average: 1.06 1.08 1.08 1/293 19328
with invalid UTF-8 data
returns valid UTF-8 data
# [RSpecRunTime] Finishing example group spec/models/ci/build_trace_spec.rb. It took 1.78 seconds. Expected to take 4.78 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sanitizers/svg_spec.rb. Expected to take 4.77 seconds.
Gitlab::Sanitizers::SVG
.clean
delegates sanitization to scrubber
returns sanitized data
scrubber
#scrub
removes an invalid element
removes an invalid attribute
accepts valid element
accepts valid namespaced attributes
#attribute_name_with_namespace
returns name with prefix when attribute is namespaced
#unsafe_href?
returns true if href attribute is an external url
returns false if href atttribute is an internal reference
#data_attribute?
returns true if is a valid data attribute
returns false if attribute is namespaced
returns false if not a data attribute
# [RSpecRunTime] Finishing example group spec/lib/gitlab/sanitizers/svg_spec.rb. It took 1.38 seconds. Expected to take 4.77 seconds.
# [RSpecRunTime] Starting example group spec/models/concerns/access_requestable_spec.rb. Expected to take 4.64 seconds.
AccessRequestable
does not allow STI
Group
#request_access
is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)
is expected to eq #<User id:1438 @user578>
#access_requested?
is expected to be truthy
Project
#request_access
is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ss: boolean, member_namespace_id: integer, member_role_id: integer, expiry_notified_at: timestamptz)
#access_requested?
is expected to be truthy
# [RSpecRunTime] Finishing example group spec/models/concerns/access_requestable_spec.rb. It took 2.59 seconds. Expected to take 4.64 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/import_export/repo_saver_spec.rb. Expected to take 4.63 seconds.
Gitlab::ImportExport::RepoSaver
bundle a project Git repo
bundles the repo successfully
creates the directory for the repository
when the repo is empty
bundles the repo successfully
# [RSpecRunTime] RSpec elapsed time: 23 minutes 4.53 seconds. Current RSS: ~1558M. load average: 1.05 1.08 1.08 1/293 19345
# [RSpecRunTime] Finishing example group spec/lib/gitlab/import_export/repo_saver_spec.rb. It took 2.3 seconds. Expected to take 4.63 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/composer/composer_json_service_spec.rb. Expected to take 4.53 seconds.
Packages::Composer::ComposerJsonService
#execute
with an existing file
with a valid file
returns the parsed json
with an invalid file
raises an error
without the composer.json file
raises an error
# [RSpecRunTime] Finishing example group spec/services/packages/composer/composer_json_service_spec.rb. It took 2.13 seconds. Expected to take 4.53 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb. Expected to take 4.48 seconds.
Gitlab::Ci::Reports::TestReportsComparer
#suite_comparers
when head and base reports include two test suites
returns test suite comparers with specified values
#total_status
when all tests cases are success in head suites
returns the total status
when there is a failed test case in head suites
returns the total status in head suite
when there is an error test case in head suites
returns the total status in head suite
#total_count
returns the total test counts in head suites
#resolved_count
when there is a resolved failure test case in head suites
returns the correct count
when there is a resolved error test case in head suites
returns the correct count
when there are no resolved test cases in head suites
returns the correct count
#failed_count
when there is a failed test case in head suites
returns the correct count
when there are no failed test cases in head suites
returns the correct count
#error_count
when there is an error test case in head suites
returns the correct count
when there are no error test cases in head suites
returns the correct count
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb. It took 1.43 seconds. Expected to take 4.48 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/snippets/blob_viewer_type_spec.rb. Expected to take 4.37 seconds.
Types::Snippets::BlobViewerType
has the correct fields
is expected to be non null
is expected to be non null
is expected to be non null
is expected to be non null
is expected not to be non null
is expected to be non null
is expected to be non null
collapsed
behaves like nil field converted to false
returns false
# [RSpecRunTime] RSpec elapsed time: 23 minutes 9.65 seconds. Current RSS: ~1579M. load average: 0.97 1.06 1.07 1/293 19415
tooLarge
behaves like nil field converted to false
returns false
# [RSpecRunTime] Finishing example group spec/graphql/types/snippets/blob_viewer_type_spec.rb. It took 1.78 seconds. Expected to take 4.37 seconds.
# [RSpecRunTime] Starting example group spec/tasks/gitlab/sidekiq_rake_spec.rb. Expected to take 4.37 seconds.
sidekiq.rake
gitlab:sidekiq:migrate_jobs:schedule rake task
behaves like migration rake task
runs the migrator with a mapping of workers to queues
gitlab:sidekiq:migrate_jobs:retry rake task
behaves like migration rake task
runs the migrator with a mapping of workers to queues
gitlab:sidekiq:migrate_jobs:queued rake task
runs the migrator with a mapping of workers to queues
# [RSpecRunTime] Finishing example group spec/tasks/gitlab/sidekiq_rake_spec.rb. It took 3.11 seconds. Expected to take 4.37 seconds.
# [RSpecRunTime] RSpec elapsed time: 23 minutes 13.11 seconds. Current RSS: ~1549M. load average: 0.97 1.06 1.07 1/293 19423
# [RSpecRunTime] Starting example group spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb. Expected to take 4.28 seconds.
Clusters::Agents::Authorizations::CiAccess::ConfigScopes
does not allow STI
.with_available_ci_access_fields
is expected to contain exactly #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 1, project_id: 1014, agent_id: 3, config: {"default_namespace"=>"production"}>, #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 2, project_id: 1014, agent_id: 4, config: {"access_as"=>{}}>, and #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 3, project_id: 1014, agent_id: 5, config: {"access_as"=>{"agent"=>{}}}>
# [RSpecRunTime] RSpec elapsed time: 23 minutes 16.75 seconds. Current RSS: ~1528M. load average: 0.97 1.06 1.07 1/294 19424
# [RSpecRunTime] Finishing example group spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb. It took 3.72 seconds. Expected to take 4.28 seconds.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/merge_requests_count_resolver_spec.rb. Expected to take 4.23 seconds.
Resolvers::MergeRequestsCountResolver
#resolve
is expected to have nullable GraphQL type Int
when user can only view an issue's closing merge requests that are public
returns the count of the merge requests closing the issue
# [RSpecRunTime] RSpec elapsed time: 23 minutes 19.26 seconds. Current RSS: ~1524M. load average: 0.97 1.06 1.07 1/295 19510
when user can view an issue's closing merge requests that are both public and private
returns the count of the merge requests closing the issue
# [RSpecRunTime] Finishing example group spec/graphql/resolvers/merge_requests_count_resolver_spec.rb. It took 2.77 seconds. Expected to take 4.23 seconds.
# [RSpecRunTime] Starting example group spec/services/branches/validate_new_service_spec.rb. Expected to take 4.16 seconds.
Branches::ValidateNewService
#execute
validation
returns error with an invalid branch name
returns success with a valid branch name
# [RSpecRunTime] RSpec elapsed time: 23 minutes 21.23 seconds. Current RSS: ~1542M. load average: 0.98 1.06 1.07 1/295 19524
branch exist
returns error when branch exists
returns success when branch name is available
# [RSpecRunTime] RSpec elapsed time: 23 minutes 22.58 seconds. Current RSS: ~1542M. load average: 0.98 1.06 1.07 1/294 19539
# [RSpecRunTime] Finishing example group spec/services/branches/validate_new_service_spec.rb. It took 3.06 seconds. Expected to take 4.16 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb. Expected to take 4.13 seconds.
Gitlab::Database::SchemaCacheWithRenamedTable
when table is not renamed yet
uses the original table to look up metadata
when table is renamed
uses the renamed table to look up metadata
has primary key
has the same column definitions
has the same indexes
has the same column_hash
when the table behind a model is actually a view
can persist records
can find records
# [RSpecRunTime] RSpec elapsed time: 23 minutes 25.12 seconds. Current RSS: ~1547M. load average: 0.98 1.06 1.07 1/294 19540
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb. It took 2.54 seconds. Expected to take 4.13 seconds.
# [RSpecRunTime] Starting example group spec/lib/file_size_validator_spec.rb. Expected to take 4.06 seconds.
FileSizeValidator
options uses an integer
attachment exceeds maximum limit
attachment under maximum limit
# [RSpecRunTime] RSpec elapsed time: 23 minutes 26.57 seconds. Current RSS: ~1539M. load average: 1.06 1.08 1.08 1/294 19541
options uses a symbol
attachment exceeds maximum limit
attachment under maximum limit
# [RSpecRunTime] RSpec elapsed time: 23 minutes 27.78 seconds. Current RSS: ~1538M. load average: 1.06 1.08 1.08 1/294 19542
# [RSpecRunTime] Finishing example group spec/lib/file_size_validator_spec.rb. It took 2.66 seconds. Expected to take 4.06 seconds.
# [RSpecRunTime] Starting example group spec/services/update_container_registry_info_service_spec.rb. Expected to take 4.01 seconds.
UpdateContainerRegistryInfoService
#execute
when container registry is disabled
behaves like invalid config
does not update the application settings
does not raise an error
when container registry api_url is blank
behaves like invalid config
does not update the application settings
does not raise an error
when creating a registry client instance
uses a token with no access permissions
when unabled to detect the container registry type
sets the application settings to their defaults
when able to detect the container registry type
when using the GitLab container registry
updates application settings accordingly
when using a third-party container registry
updates application settings accordingly
# [RSpecRunTime] RSpec elapsed time: 23 minutes 31.46 seconds. Current RSS: ~1572M. load average: 1.05 1.07 1.08 1/289 19543
# [RSpecRunTime] Finishing example group spec/services/update_container_registry_info_service_spec.rb. It took 3.67 seconds. Expected to take 4.01 seconds.
# [RSpecRunTime] Starting example group spec/helpers/sessions_helper_spec.rb. Expected to take 3.97 seconds.
SessionsHelper
#unconfirmed_email?
returns true when the flash alert contains a devise failure unconfirmed message
returns false when the flash alert does not contain a devise failure unconfirmed message
#unconfirmed_verification_email?
reset_first_offer?: true, unconfirmed_email_present?: true, token_valid?: true, result: true
is expected to eq true
reset_first_offer?: false, unconfirmed_email_present?: true, token_valid?: true, result: false
is expected to eq false
reset_first_offer?: true, unconfirmed_email_present?: false, token_valid?: true, result: false
is expected to eq false
reset_first_offer?: true, unconfirmed_email_present?: true, token_valid?: false, result: false
is expected to eq false
#verification_email
when there is an unconfirmed verification email
is expected to eq "unconfirmed@email"
when there is no unconfirmed verification email
is expected to eq "user1764@example.org"
#verification_data
returns the expected data
#obfuscated_email
delegates to Gitlab::Utils::Email.obfuscated_email
#remember_me_enabled?
when application setting is enabled
is expected to equal true
when application setting is disabled
is expected to equal false
# [RSpecRunTime] Finishing example group spec/helpers/sessions_helper_spec.rb. It took 1.67 seconds. Expected to take 3.97 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/variables/builder/project_spec.rb. Expected to take 3.89 seconds.
Gitlab::Ci::Variables::Builder::Project
#secret_variables
when the ref is protected
contains all the variables
when the ref is not protected
contains only the unprotected variables
when environment name is specified
when environment scope is exactly matched
is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007ce35592f058 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>
when environment scope is matched by wildcard
is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007ce354b30100 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>
when environment scope does not match
is expected not to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007ce35408f4f8 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>
when environment scope has _
does not treat it as wildcard
when environment name contains underscore
matches literally for _
when environment scope has %
does not treat it as wildcard
when environment name contains a percent
matches literally for _
when variables with the same name have different environment scopes
puts variables matching environment scope more in the end
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/variables/builder/project_spec.rb. It took 1.78 seconds. Expected to take 3.89 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/tracking/service_ping_context_spec.rb. Expected to take 3.85 seconds.
Gitlab::Tracking::ServicePingContext
#to_context
for redis_hll data source
contains event_name
for redis data source
contains event_name
#init
with valid configuration
data_source: :redis, event: "some_event"
does not raise errors
data_source: :redis_hll, event: "some_event"
does not raise errors
with invalid configuration
data_source: :redis, event: nil
does not raise errors
data_source: :redis_hll, event: nil
does not raise errors
data_source: :random, event: "some_event"
does not raise errors
# [RSpecRunTime] Finishing example group spec/lib/gitlab/tracking/service_ping_context_spec.rb. It took 0.84 second. Expected to take 3.85 seconds.
# [RSpecRunTime] Starting example group spec/helpers/award_emoji_helper_spec.rb. Expected to take 3.81 seconds.
AwardEmojiHelper
.toggle_award_url
note on personal snippet
returns correct url
note on project item
returns correct url
personal snippet
returns correct url
merge request
returns correct url
issue
returns correct url
# [RSpecRunTime] Finishing example group spec/helpers/award_emoji_helper_spec.rb. It took 2.8 seconds. Expected to take 3.81 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb. Expected to take 3.76 seconds.
Gitlab::Database::LoadBalancing::ServiceDiscovery::Sampler
#sample
samples max_replica_pools addresses
samples random ports across all hosts
returns the same answer for the same input when called multiple times
gives a consistent answer regardless of input ordering
samples fairly across all hosts
when input is an empty array
returns an empty array
when there are less replicas than max_replica_pools
returns the same addresses
when max_replica_pools is nil
returns the same addresses
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb. It took 1.0 second. Expected to take 3.76 seconds.
# [RSpecRunTime] Starting example group spec/models/work_items/widgets/assignees_spec.rb. Expected to take 3.72 seconds.
WorkItems::Widgets::Assignees
does not allow STI
.type
is expected to eq :assignees
.quick_action_params
is expected to include :assignee_ids
.can_invite_members?
when resource_parent is a project
checks the ability with the correct permission
when resource_parent is a group
checks the ability with the correct permission
#type
is expected to eq :assignees
#assignees
is expected to eq #<ActiveRecord::Associations::CollectionProxy [#<User id:1486 @user602>]>
#allows_multiple_assignees?
is expected to eq false
# [RSpecRunTime] Finishing example group spec/models/work_items/widgets/assignees_spec.rb. It took 1.35 seconds. Expected to take 3.72 seconds.
# [RSpecRunTime] Starting example group spec/lib/sidebars/admin/menus/applications_menu_spec.rb. Expected to take 3.68 seconds.
Sidebars::Admin::Menus::ApplicationsMenu
behaves like Admin menu without sub menus
does not contain any sub menu(s)
defines correct active route
behaves like Admin menu
renders the correct link
renders the correct title
renders the correct icon
renders the separator if needed
#render?
when user is admin
renders
when user is not admin
does not render
when user is not logged in
does not render
# [RSpecRunTime] Finishing example group spec/lib/sidebars/admin/menus/applications_menu_spec.rb. It took 1.08 seconds. Expected to take 3.68 seconds.
# [RSpecRunTime] Starting example group spec/components/pajamas/card_component_spec.rb. Expected to take 3.59 seconds.
Pajamas::CardComponent
slots
renders card header
renders card body
renders footer
with defaults
does not have a header or footer
renders the card and body
with custom options
renders card options
renders header options
renders body options
renders footer options
# [RSpecRunTime] Finishing example group spec/components/pajamas/card_component_spec.rb. It took 1.0 second. Expected to take 3.59 seconds.
# [RSpecRunTime] Starting example group spec/channels/noteable/notes_channel_spec.rb. Expected to take 3.53 seconds.
Noteable::NotesChannel
#subscribed
rejects the subscription when noteable params are missing
on an issue
behaves like handle subscription based on user access
subscribes to the noteable stream when user has access
rejects the subscription when the user does not have access
# [RSpecRunTime] RSpec elapsed time: 23 minutes 44.62 seconds. Current RSS: ~1596M. load average: 1.05 1.07 1.07 1/294 19596
on a merge request
behaves like handle subscription based on user access
subscribes to the noteable stream when user has access
rejects the subscription when the user does not have access
# [RSpecRunTime] Finishing example group spec/channels/noteable/notes_channel_spec.rb. It took 2.25 seconds. Expected to take 3.53 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/create_temporary_package_service_spec.rb. Expected to take 3.49 seconds.
Packages::CreateTemporaryPackageService
#execute
creates the package
can create two packages in a row
behaves like assigns the package creator
assigns the package creator
behaves like assigns build to package
with build info
assigns the pipeline to the package
# [RSpecRunTime] Finishing example group spec/services/packages/create_temporary_package_service_spec.rb. It took 1.54 seconds. Expected to take 3.49 seconds.
# [RSpecRunTime] Starting example group spec/models/packages/event_spec.rb. Expected to take 3.46 seconds.
Packages::Event
does not allow STI
.unique_counters_for
is expected to contain exactly "i_package_npm_deploy_token"
behaves like handle forbidden event type
is expected to eq []
when an originator type is quest
is expected to eq []
.event_allowed?
is expected to eq true
behaves like handle forbidden event type
is expected to eq false
.counters_for
is expected to contain exactly "i_package_push_package", "i_package_push_package_by_deploy_token", and "i_package_npm_push_package"
behaves like handle forbidden event type
is expected to eq []
# [RSpecRunTime] Finishing example group spec/models/packages/event_spec.rb. It took 0.99 second. Expected to take 3.46 seconds.
# [RSpecRunTime] Starting example group spec/serializers/rollout_status_entity_spec.rb. Expected to take 3.41 seconds.
RolloutStatusEntity
exposes status
exposes has_legacy_app_label
when kube deployment is valid
exposes deployment data
does not expose canary ingress if it does not exist
when canary ingress exists
expose canary ingress
when kube deployment is empty
exposes status
does not expose deployment data
# [RSpecRunTime] Finishing example group spec/serializers/rollout_status_entity_spec.rb. It took 0.84 second. Expected to take 3.41 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/async_indexes/index_creator_spec.rb. Expected to take 3.37 seconds.
Gitlab::Database::AsyncIndexes::IndexCreator
#perform
creates the index while controlling statement timeout
removes the index preparation record from postgres_async_indexes
skips logic if not able to acquire exclusive lease
logs messages around execution
when the index already exists
skips index creation
removes the index preparation record from postgres_async_indexes
logs an appropriate message
# [RSpecRunTime] RSpec elapsed time: 23 minutes 49.88 seconds. Current RSS: ~1597M. load average: 1.04 1.07 1.07 1/294 19631
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/async_indexes/index_creator_spec.rb. It took 1.29 seconds. Expected to take 3.37 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb. Expected to take 3.35 seconds.
Gitlab::Issuable::Clone::CopyResourceEventsService
copies the resource label events
with existing milestone events
copies existing resource milestone events
# [RSpecRunTime] RSpec elapsed time: 23 minutes 52.21 seconds. Current RSS: ~1579M. load average: 1.04 1.07 1.07 1/294 19632
with existing state events
copies existing state events as expected
# [RSpecRunTime] Finishing example group spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb. It took 2.55 seconds. Expected to take 3.35 seconds.
# [RSpecRunTime] Starting example group spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb. Expected to take 3.3 seconds.
Packages::MarkPackageFilesForDestructionWorker
#perform
with a valid package id
marks all package files as pending_destruction
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
with an invalid package id
marks no packag files
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
with a nil package id
marks no packag files
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
# [RSpecRunTime] Finishing example group spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb. It took 1.48 seconds. Expected to take 3.3 seconds.
# [RSpecRunTime] Starting example group spec/graphql/mutations/todos/restore_spec.rb. Expected to take 3.26 seconds.
Mutations::Todos::Restore
is expected to require graphql authorizations :update_todo
#resolve
restores a single todo
handles a todo which is already pending as expected
ignores requests for todos which do not belong to the current user
# [RSpecRunTime] RSpec elapsed time: 23 minutes 56.22 seconds. Current RSS: ~1574M. load average: 1.03 1.07 1.07 1/289 19633
# [RSpecRunTime] Finishing example group spec/graphql/mutations/todos/restore_spec.rb. It took 2.3 seconds. Expected to take 3.26 seconds.
# [RSpecRunTime] Starting example group spec/policies/project_hook_policy_spec.rb. Expected to take 3.24 seconds.
ProjectHookPolicy
when the user is not a maintainer
cannot read and destroy web-hooks
when the user is a maintainer
can read and destroy web-hooks
# [RSpecRunTime] Finishing example group spec/policies/project_hook_policy_spec.rb. It took 1.55 seconds. Expected to take 3.24 seconds.
# [RSpecRunTime] Starting example group spec/services/alert_management/http_integrations/update_service_spec.rb. Expected to take 3.18 seconds.
AlertManagement::HttpIntegrations::UpdateService
#execute
when the current_user is anonymous
behaves like error response
has an informative message
when current_user does not have permission to create integrations
behaves like error response
has an informative message
when an error occurs during update
behaves like error response
has an informative message
with name param
successfully updates the integration
with active param
successfully updates the integration
with regenerate_token flag
successfully updates the integration
# [RSpecRunTime] Finishing example group spec/services/alert_management/http_integrations/update_service_spec.rb. It took 1.38 seconds. Expected to take 3.18 seconds.
# [RSpecRunTime] Starting example group spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb. Expected to take 3.16 seconds.
BulkImports::Groups::Pipelines::NamespaceSettingsPipeline
#run
imports allowed namespace settings attributes
#transform
fetches only allowed attributes and symbolize keys
when there is no data to transform
is expected to eq nil
#after_run
calls extractor#remove_tmpdir
# [RSpecRunTime] Finishing example group spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb. It took 1.42 seconds. Expected to take 3.16 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/create_pipeline_service/artifacts_spec.rb. Expected to take 3.1 seconds.
Ci::CreatePipelineService
artifacts:
reports:
with valid config
creates pipeline with builds
# [RSpecRunTime] RSpec elapsed time: 24 minutes 1.73 seconds. Current RSS: ~1552M. load average: 1.03 1.06 1.07 1/292 19650
with invalid config
creates pipeline with yaml errors
# [RSpecRunTime] Finishing example group spec/services/ci/create_pipeline_service/artifacts_spec.rb. It took 1.6 seconds. Expected to take 3.1 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/update_tags_service_spec.rb. Expected to take 3.06 seconds.
Packages::UpdateTagsService
#execute
behaves like updating tags
updates a tag
with an existing tag
on the same package
behaves like updating tags
updates a tag
with different name
behaves like updating tags
updates a tag
on a different package
behaves like updating tags
updates a tag
with empty tags
is a no op
# [RSpecRunTime] Finishing example group spec/services/packages/update_tags_service_spec.rb. It took 1.46 seconds. Expected to take 3.06 seconds.
# [RSpecRunTime] Starting example group spec/workers/ci/archive_trace_worker_spec.rb. Expected to take 3.02 seconds.
Ci::ArchiveTraceWorker
#perform
when job is found
executes service
has preloaded the arguments for archiving
# [RSpecRunTime] RSpec elapsed time: 24 minutes 5.09 seconds. Current RSS: ~1542M. load average: 1.03 1.06 1.07 1/294 19657
when job is not found
does not execute service
# [RSpecRunTime] Finishing example group spec/workers/ci/archive_trace_worker_spec.rb. It took 1.57 seconds. Expected to take 3.02 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder_spec.rb. Expected to take 2.97 seconds.
Gitlab::Seeders::Ci::Runner::RunnerFleetPipelineSeeder
#seed
with nil job_count
creates expected jobs
# [RSpecRunTime] RSpec elapsed time: 24 minutes 7.1 seconds. Current RSS: ~1526M. load average: 1.03 1.06 1.07 1/294 19658
# [RSpecRunTime] Finishing example group spec/lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder_spec.rb. It took 1.9 seconds. Expected to take 2.97 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb. Expected to take 2.94 seconds.
Gitlab::GitalyClient::CleanupService
#apply_bfg_object_map_stream
sends an apply_bfg_object_map_stream message
#rewrite_history
sends a rewrite_history message
with a generic BadStatus error
raises the BadStatus error
with an empty request
raises an InvalidArgument error
# [RSpecRunTime] Finishing example group spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb. It took 1.99 seconds. Expected to take 2.94 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/import_export/group/object_builder_spec.rb. Expected to take 2.91 seconds.
Gitlab::ImportExport::Group::ObjectBuilder
labels
finds the existing group label
creates a new label
when description is an empty string
finds the existing group label
milestones
finds the existing group milestone
creates a new milestone
# [RSpecRunTime] Finishing example group spec/lib/gitlab/import_export/group/object_builder_spec.rb. It took 1.26 seconds. Expected to take 2.91 seconds.
# [RSpecRunTime] Starting example group spec/lib/bitbucket/representation/comment_spec.rb. Expected to take 2.85 seconds.
Bitbucket::Representation::Comment
#author
is expected to eq "Ben"
is expected to be nil
#note
is expected to eq "Text"
is expected to be nil
#created_at
is expected to eq Fri, 08 Mar 2024
#updated_at
is expected to eq Fri, 08 Mar 2024
is expected to eq Fri, 08 Mar 2024
# [RSpecRunTime] Finishing example group spec/lib/bitbucket/representation/comment_spec.rb. It took 0.94 second. Expected to take 2.85 seconds.
# [RSpecRunTime] Starting example group spec/finders/ci/runner_managers_finder_spec.rb. Expected to take 2.83 seconds.
Ci::RunnerManagersFinder#execute
filter by status
for offline
is expected to contain exactly #<Ci::RunnerManager id: 8, runner_id: 27, executor_type: nil, created_at: "2024-03-08 06:33:03.000000...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_495711da47">
for online
is expected to contain exactly #<Ci::RunnerManager id: 9, runner_id: 27, executor_type: nil, created_at: "2024-03-08 06:33:03.000000...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_b4ca42d88e">
for stale
is expected to contain exactly #<Ci::RunnerManager id: 11, runner_id: 27, executor_type: nil, created_at: "2024-03-01 06:33:02.00000...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_39edcf88e1">
for never_contacted
is expected to contain exactly #<Ci::RunnerManager id: 10, runner_id: 27, executor_type: nil, created_at: "2024-03-08 06:33:03.00000...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_86d23bb50f"> and #<Ci::RunnerManager id: 11, runner_id: 27, executor_type: nil, created_at: "2024-03-01 06:33:02.00000...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_39edcf88e1">
for invalid status
returns all runner managers
filter by system_id
when system_id matches runner_manager1's
is expected to contain exactly #<Ci::RunnerManager id: 12, runner_id: 27, executor_type: nil, created_at: "2024-03-08 06:33:03.68904...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_da26d7ff06">
when system_id matches runner_manager2's
is expected to contain exactly #<Ci::RunnerManager id: 13, runner_id: 27, executor_type: nil, created_at: "2024-03-08 06:33:03.69376...ion: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "r_9f49ed64b1">
when system_id doesn't match
is expected to be empty
without any arguments
returns all runner managers in id_desc order
# [RSpecRunTime] Finishing example group spec/finders/ci/runner_managers_finder_spec.rb. It took 1.19 seconds. Expected to take 2.83 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage/metrics/instrumentations/project_imports_creators_metric_spec.rb. Expected to take 2.8 seconds.
Gitlab::Usage::Metrics::Instrumentations::ProjectImportsCreatorsMetric
behaves like a correct instrumented metric value and query
behaves like a correct instrumented metric value
has correct value
# [RSpecRunTime] RSpec elapsed time: 24 minutes 14.0 seconds. Current RSS: ~1532M. load average: 1.03 1.06 1.07 1/289 19659
behaves like a correct instrumented metric query
has correct generate query
behaves like a correct instrumented metric value and query
behaves like a correct instrumented metric value
has correct value
behaves like a correct instrumented metric query
has correct generate query
# [RSpecRunTime] Finishing example group spec/lib/gitlab/usage/metrics/instrumentations/project_imports_creators_metric_spec.rb. It took 1.89 seconds. Expected to take 2.8 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/plantuml_spec.rb. Expected to take 2.76 seconds.
Gitlab::Plantuml
.configure
when PlantUML is enabled
configures the endpoint URL
enables PNG support
disables SVG support
disables TXT support
when PlantUML is disabled
configures the endpoint URL
enables PNG support
disables SVG support
disables TXT support
# [RSpecRunTime] Finishing example group spec/lib/gitlab/plantuml_spec.rb. It took 1.09 seconds. Expected to take 2.76 seconds.
# [RSpecRunTime] Starting example group spec/models/projects/wiki_repository_spec.rb. Expected to take 2.71 seconds.
Projects::WikiRepository
does not allow STI
associations
is expected to belong to project required: false inverse_of => wiki_repository
validations
is expected to validate that :project cannot be empty/falsy
is expected to validate that :project is case-sensitively unique
# [RSpecRunTime] Finishing example group spec/models/projects/wiki_repository_spec.rb. It took 0.85 second. Expected to take 2.71 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb. Expected to take 2.69 seconds.
Gitlab::SlashCommands::Presenters::IssueClose
is expected to be a kind of Hash
shows the issue
confidential issue
shows an ephemeral response
# [RSpecRunTime] RSpec elapsed time: 24 minutes 18.11 seconds. Current RSS: ~1535M. load average: 1.02 1.06 1.07 1/289 19660
# [RSpecRunTime] Finishing example group spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb. It took 1.8 seconds. Expected to take 2.69 seconds.
# [RSpecRunTime] Starting example group spec/workers/pipeline_hooks_worker_spec.rb. Expected to take 2.66 seconds.
PipelineHooksWorker
#perform
when pipeline exists
executes hooks for the pipeline
when pipeline does not exist
does not raise exception
when the user is blocked
returns early without executing
behaves like worker with data consistency
.get_data_consistency_feature_flag_enabled?
returns true
.get_data_consistency
returns correct data consistency
# [RSpecRunTime] Finishing example group spec/workers/pipeline_hooks_worker_spec.rb. It took 1.58 seconds. Expected to take 2.66 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/remove_tag_service_spec.rb. Expected to take 2.61 seconds.
Packages::RemoveTagService
#execute
with existing tag
is expected to change `Packages::Tag.count` by -1
with nil
is expected to raise ArgumentError
# [RSpecRunTime] RSpec elapsed time: 24 minutes 22.21 seconds. Current RSS: ~1518M. load average: 1.02 1.06 1.07 1/289 19661
# [RSpecRunTime] Finishing example group spec/services/packages/remove_tag_service_spec.rb. It took 2.53 seconds. Expected to take 2.61 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb. Expected to take 2.58 seconds.
Gitlab::LegacyGithubImport::ReleaseFormatter
#attributes
returns formatted attributes
with a nil published_at date
inserts a timestamp for released_at
#valid
when release is not a draft
returns true
when release is draft
returns false
when release has NULL tag
returns false
# [RSpecRunTime] Finishing example group spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb. It took 0.96 second. Expected to take 2.58 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/build_unschedule_service_spec.rb. Expected to take 2.55 seconds.
Ci::BuildUnscheduleService
#execute
when user is authorized to unschedule the build
when build is scheduled
transits build to manual
when build is not scheduled
responds with unprocessable entity
when user is not authorized to unschedule the build
responds with forbidden
# [RSpecRunTime] Finishing example group spec/services/ci/build_unschedule_service_spec.rb. It took 1.34 seconds. Expected to take 2.55 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/type/color_spec.rb. Expected to take 2.52 seconds.
Gitlab::Database::Type::Color
serializes by calling #to_s
serializes nil to nil
casts by calling Color::new
accepts colors as arguments to cast
allows nil database values
tells us what is serializable
tells us what is not serializable
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/type/color_spec.rb. It took 0.93 second. Expected to take 2.52 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/importer/events/reopened_spec.rb. Expected to take 2.49 seconds.
Gitlab::GithubImport::Importer::Events::Reopened
with Issue
behaves like new event
creates expected event and state event
with MergeRequest
behaves like new event
creates expected event and state event
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/importer/events/reopened_spec.rb. It took 1.27 seconds. Expected to take 2.49 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb. Expected to take 2.47 seconds.
Gitlab::ImportExport::WikiRepoSaver
bundle a wiki Git repo
bundles the repo successfully
when the repo is empty
bundles the repo successfully
# [RSpecRunTime] RSpec elapsed time: 24 minutes 28.35 seconds. Current RSS: ~1533M. load average: 1.02 1.06 1.07 1/295 19752
# [RSpecRunTime] Finishing example group spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb. It took 1.63 seconds. Expected to take 2.47 seconds.
# [RSpecRunTime] Starting example group spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb. Expected to take 2.42 seconds.
IncidentManagement::IssuableEscalationStatuses::AfterUpdateService
with status attributes
adds a status change system note
adds a status change timeline event
# [RSpecRunTime] RSpec elapsed time: 24 minutes 29.66 seconds. Current RSS: ~1529M. load average: 1.02 1.06 1.07 1/294 19753
with non-status attributes
does not add a status change system note or timeline event
# [RSpecRunTime] Finishing example group spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb. It took 1.61 seconds. Expected to take 2.42 seconds.
# [RSpecRunTime] Starting example group spec/models/user_mentions/commit_user_mention_spec.rb. Expected to take 2.4 seconds.
CommitUserMention
does not allow STI
associations
is expected to belong to note required: false
behaves like has user mentions
#has_mentions?
when no mentions
returns false
when mentioned_users_ids not null
returns true
when mentioned projects
returns true
when mentioned groups
returns true
# [RSpecRunTime] Finishing example group spec/models/user_mentions/commit_user_mention_spec.rb. It took 0.89 second. Expected to take 2.4 seconds.
# [RSpecRunTime] Starting example group spec/serializers/ci/daily_build_group_report_result_entity_spec.rb. Expected to take 2.35 seconds.
Ci::DailyBuildGroupReportResultEntity
#as_json
is expected to include :date
is expected not to include :group_name
is expected to include :coverage
when given param_type is not allowed
is expected not to include :coverage
is expected not to include :something_else
# [RSpecRunTime] Finishing example group spec/serializers/ci/daily_build_group_report_result_entity_spec.rb. It took 0.72 second. Expected to take 2.35 seconds.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/ci/test_suite_resolver_spec.rb. Expected to take 2.31 seconds.
Resolvers::Ci::TestSuiteResolver
#resolve
when pipeline has builds with test reports
renders test suite data
# [RSpecRunTime] RSpec elapsed time: 24 minutes 33.02 seconds. Current RSS: ~1553M. load average: 1.18 1.09 1.08 1/296 19772
when pipeline has no builds that matches the given build_ids
returns nil
# [RSpecRunTime] Finishing example group spec/graphql/resolvers/ci/test_suite_resolver_spec.rb. It took 1.83 seconds. Expected to take 2.31 seconds.
# [RSpecRunTime] Starting example group spec/rubocop/cop/migration/migration_record_spec.rb. Expected to take 2.27 seconds.
RuboCop::Cop::Migration::MigrationRecord
outside of a migration
behaves like a disabled cop
does not register any offenses
in migration
in an old migration
behaves like a disabled cop
does not register any offenses
that is recent
adds an offense if inheriting from ActiveRecord::Base
adds an offense if inheriting from ::ActiveRecord::Base
in migration
in an old migration
behaves like a disabled cop
does not register any offenses
that is recent
adds an offense if inheriting from ApplicationRecord
adds an offense if inheriting from ::ApplicationRecord
outside of a migration
behaves like a disabled cop
does not register any offenses
# [RSpecRunTime] Finishing example group spec/rubocop/cop/migration/migration_record_spec.rb. It took 1.1 seconds. Expected to take 2.27 seconds.
# [RSpecRunTime] Starting example group spec/services/admin/abuse_report_labels/create_service_spec.rb. Expected to take 2.26 seconds.
Admin::AbuseReportLabels::CreateService
#execute
behaves like creates a label with the correct values
creates a label with the correct values
returns the persisted label
without color param
behaves like creates a label with the correct values
creates a label with the correct values
returns the persisted label
with errors
does not create the label
returns the label with errors
# [RSpecRunTime] Finishing example group spec/services/admin/abuse_report_labels/create_service_spec.rb. It took 0.9 second. Expected to take 2.26 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/build_cancel_service_spec.rb. Expected to take 2.21 seconds.
Ci::BuildCancelService
#execute
when user is authorized to cancel the build
when build is cancelable
transits build to canceled
when build is not cancelable
responds with unprocessable entity
when user is not authorized to cancel the build
responds with forbidden
# [RSpecRunTime] Finishing example group spec/services/ci/build_cancel_service_spec.rb. It took 1.34 seconds. Expected to take 2.21 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb. Expected to take 2.19 seconds.
Gitlab::Ci::Reports::Security::Locations::SecretDetection
behaves like vulnerability location
#initialize
when all params are given
initializes an instance
param: :file_path
when param file_path is missing
raises an error
param: :start_line
when param start_line is missing
raises an error
#fingerprint
generates expected fingerprint
#fingerprint_path
generates expected fingerprint
#==
returns true when fingerprints are equal
returns false when fingerprints are different
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb. It took 0.89 second. Expected to take 2.19 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sidekiq_middleware/concurrency_limit/workers_map_spec.rb. Expected to take 2.15 seconds.
Gitlab::SidekiqMiddleware::ConcurrencyLimit::WorkersMap
.workers
includes the worker
.over_the_limit?
returns false if no limit is set
returns false if under the limit
returns true if over the limit
.limit_for
accepts worker instance
accepts worker class
returns nil for unknown worker
returns nil if the feature flag is disabled
# [RSpecRunTime] Finishing example group spec/lib/gitlab/sidekiq_middleware/concurrency_limit/workers_map_spec.rb. It took 1.04 seconds. Expected to take 2.15 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb. Expected to take 2.12 seconds.
Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns
builds array column names
when no columns are given
is expected to raise /No array columns were given/
when Arel AS node is given as input
works with Arel AS nodes
# [RSpecRunTime] Finishing example group spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb. It took 0.46 second. Expected to take 2.12 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/npm/deprecate_package_service_spec.rb. Expected to take 2.11 seconds.
Packages::Npm::DeprecatePackageService
#execute
when passing deprecatation message
adds or updates the deprecated field
executes 5 queries
when passing deprecated as empty string
removes the deprecation warning
when passing async: true to execute
calls the worker and return
# [RSpecRunTime] Finishing example group spec/services/packages/npm/deprecate_package_service_spec.rb. It took 1.05 seconds. Expected to take 2.11 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/color_type_spec.rb. Expected to take 2.06 seconds.
Types::ColorType
is expected to eq "Color"
coerces Color object into hex string
coerces an hex string into Color object
coerces an named Color into hex string
coerces an named color into Color object
rejects invalid input
rejects nil
# [RSpecRunTime] Finishing example group spec/graphql/types/color_type_spec.rb. It took 0.91 second. Expected to take 2.06 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/config/entry/release/assets_spec.rb. Expected to take 2.05 seconds.
Gitlab::Ci::Config::Entry::Release::Assets
validation
when entry config value is correct
#value
returns assets configuration
#valid?
is valid
when entry value is not correct
#errors
when value of assets is invalid
reports error
when value of assets:links is empty
reports error
when there is an unknown key present
reports error
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/config/entry/release/assets_spec.rb. It took 0.69 second. Expected to take 2.05 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_gists_import/status_spec.rb. Expected to take 1.99 seconds.
Gitlab::GithubGistsImport::Status
#fail!
sets failed status
#finish!
sets finished status
#started?
checks if status is started
#start!
expires the key
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_gists_import/status_spec.rb. It took 0.58 second. Expected to take 1.99 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/circuit_breaker/notifier_spec.rb. Expected to take 1.99 seconds.
Gitlab::CircuitBreaker::Notifier
#notify_run
test block
is expected not to raise Exception
#notify
when event is failure
sends an exception to Gitlab::ErrorTracking
when event is not failure
does not send an exception to Gitlab::ErrorTracking
#notify_warning
is expected not to raise Exception
# [RSpecRunTime] Finishing example group spec/lib/gitlab/circuit_breaker/notifier_spec.rb. It took 0.51 second. Expected to take 1.99 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/clients/proxy_spec.rb. Expected to take 1.93 seconds.
Gitlab::GithubImport::Clients::Proxy
is expected to delegate #octokit to the #client object
is expected to delegate #each_object to the #client object
is expected to delegate #user to the #client object
#repos
fetches repos with Gitlab::GithubImport::Client (GraphQL API)
#count_by
when value is cached
returns repository count from cache
when value is not cached
returns repository count
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/clients/proxy_spec.rb. It took 0.69 second. Expected to take 1.93 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/status/waiting_for_callback_spec.rb. Expected to take 1.91 seconds.
Gitlab::Ci::Status::WaitingForCallback
#name
is expected to eq "WAITING_FOR_CALLBACK"
#favicon
is expected to eq "favicon_status_pending"
#group
is expected to eq "waiting-for-callback"
#label
is expected to eq "waiting for callback"
#text
is expected to eq "Waiting"
#details_path
is expected to be nil
#icon
is expected to eq "status_pending"
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/status/waiting_for_callback_spec.rb. It took 0.8 second. Expected to take 1.91 seconds.
# [RSpecRunTime] Starting example group spec/lib/constraints/admin_constrainer_spec.rb. Expected to take 1.91 seconds.
Constraints::AdminConstrainer
#matches
application setting :admin_mode is enabled
when user is a regular user
forbids access
when user is an admin
admin mode is disabled
forbids access
admin mode is enabled
allows access
application setting :admin_mode is disabled
when user is a regular user
forbids access
when user is an admin
allows access
# [RSpecRunTime] Finishing example group spec/lib/constraints/admin_constrainer_spec.rb. It took 0.87 second. Expected to take 1.91 seconds.
# [RSpecRunTime] Starting example group spec/models/notes/note_metadata_spec.rb. Expected to take 1.86 seconds.
Notes::NoteMetadata
does not allow STI
callbacks
with before_save :ensure_email_participant_length
when email length is > 255
rewrites the email within max length
when email is within permissible length
saves the email as-is
associations
is expected to belong to note required: false
# [RSpecRunTime] Finishing example group spec/models/notes/note_metadata_spec.rb. It took 0.83 second. Expected to take 1.86 seconds.
# [RSpecRunTime] Starting example group spec/workers/pages_domain_verification_worker_spec.rb. Expected to take 1.85 seconds.
PagesDomainVerificationWorker
#perform
does nothing if the database is read-only
does nothing for a non-existent domain
delegates to VerifyPagesDomainService
# [RSpecRunTime] Finishing example group spec/workers/pages_domain_verification_worker_spec.rb. It took 0.57 second. Expected to take 1.85 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/timeframe_type_spec.rb. Expected to take 1.81 seconds.
Types::TimeframeInputType
coerces ISO-dates into Time objects
rejects invalid input
accepts times as input
requires both ends of the range
rejects invalid range
# [RSpecRunTime] Finishing example group spec/graphql/types/timeframe_type_spec.rb. It took 0.62 second. Expected to take 1.81 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/queue/pending_builds_strategy_spec.rb. Expected to take 1.79 seconds.
Ci::Queue::PendingBuildsStrategy
build_and_partition_ids
returns build id with partition id
builds_for_group_runner
returns builds ordered by build ID
# [RSpecRunTime] Finishing example group spec/services/ci/queue/pending_builds_strategy_spec.rb. It took 1.03 seconds. Expected to take 1.79 seconds.
# [RSpecRunTime] Starting example group spec/services/projects/batch_open_issues_count_service_spec.rb. Expected to take 1.75 seconds.
Projects::BatchOpenIssuesCountService
#refresh_cache_and_retrieve_data
when cache is clean
refreshes cache keys correctly
# [RSpecRunTime] RSpec elapsed time: 24 minutes 49.48 seconds. Current RSS: ~1541M. load average: 1.14 1.08 1.08 1/289 19773
# [RSpecRunTime] Finishing example group spec/services/projects/batch_open_issues_count_service_spec.rb. It took 1.2 seconds. Expected to take 1.75 seconds.
# [RSpecRunTime] Starting example group spec/views/notify/push_to_merge_request_email.text.haml_spec.rb. Expected to take 1.73 seconds.
notify/push_to_merge_request_email.text.haml
behaves like renders plain text email correctly
renders the email without HTML links
# [RSpecRunTime] RSpec elapsed time: 24 minutes 50.87 seconds. Current RSS: ~1544M. load average: 1.37 1.13 1.10 1/295 19817
# [RSpecRunTime] Finishing example group spec/views/notify/push_to_merge_request_email.text.haml_spec.rb. It took 1.39 seconds. Expected to take 1.73 seconds.
# [RSpecRunTime] Starting example group spec/graphql/mutations/users/saved_replies/create_spec.rb. Expected to take 1.69 seconds.
Mutations::Users::SavedReplies::Create
#resolve
when service fails to create a new saved reply
is expected to be nil
is expected to contain exactly "Content can't be blank" and "Name can't be blank"
when service successfully creates a new saved reply
is expected to eq "save_reply_name"
is expected to eq "Save Reply Content"
is expected to be empty
# [RSpecRunTime] Finishing example group spec/graphql/mutations/users/saved_replies/create_spec.rb. It took 0.81 second. Expected to take 1.69 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/kubernetes/config_map_spec.rb. Expected to take 1.66 seconds.
Gitlab::Kubernetes::ConfigMap
#generate
builds a Kubeclient Resource
#config_map_name
returns the config_map name
# [RSpecRunTime] Finishing example group spec/lib/gitlab/kubernetes/config_map_spec.rb. It took 0.43 second. Expected to take 1.66 seconds.
# [RSpecRunTime] Starting example group spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb. Expected to take 1.64 seconds.
RuboCop::Cop::Gitlab::AvoidFeatureGet
bans use of Feature.ban
ignores unrelated code
# [RSpecRunTime] Finishing example group spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb. It took 0.38 second. Expected to take 1.64 seconds.
# [RSpecRunTime] Starting example group spec/views/admin/projects/_form.html.haml_spec.rb. Expected to take 1.61 seconds.
admin/projects/_form
project runner registration setting
runner_registration_enabled: true, valid_runner_registrars: ["project"], checked: true, disabled: false
renders the checkbox correctly
runner_registration_enabled: false, valid_runner_registrars: ["project"], checked: false, disabled: false
renders the checkbox correctly
runner_registration_enabled: false, valid_runner_registrars: ["group"], checked: false, disabled: true
renders the checkbox correctly
# [RSpecRunTime] Finishing example group spec/views/admin/projects/_form.html.haml_spec.rb. It took 0.58 second. Expected to take 1.61 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/checks/force_push_spec.rb. Expected to take 1.57 seconds.
Gitlab::Checks::ForcePush
.force_push?
when the repo is empty
returns false
when new rev is a descendant of old rev
returns false
when new rev is not a descendant of old rev
returns true
# [RSpecRunTime] Finishing example group spec/lib/gitlab/checks/force_push_spec.rb. It took 0.87 second. Expected to take 1.57 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/kubernetes/ingress_spec.rb. Expected to take 1.54 seconds.
Gitlab::Kubernetes::Ingress
#canary?
with canary ingress parameters
is expected to be truthy
with stable ingress parameters
is expected to be falsey
#canary_weight
with canary ingress parameters
is expected to eq 50
# [RSpecRunTime] RSpec elapsed time: 24 minutes 55.67 seconds. Current RSS: ~1557M. load average: 1.34 1.13 1.09 1/294 19827
with stable ingress parameters
is expected to be nil
#name
is expected to eq "production-auto-deploy"
# [RSpecRunTime] Finishing example group spec/lib/gitlab/kubernetes/ingress_spec.rb. It took 1.92 seconds. Expected to take 1.54 seconds.
# [RSpecRunTime] Starting example group spec/workers/jira_connect/sync_feature_flags_worker_spec.rb. Expected to take 1.52 seconds.
JiraConnect::SyncFeatureFlagsWorker
behaves like worker with data consistency
.get_data_consistency_feature_flag_enabled?
returns true
.get_data_consistency
returns correct data consistency
#perform
when object exists
calls the Jira sync service
when object does not exist
does not call the sync service
# [RSpecRunTime] Finishing example group spec/workers/jira_connect/sync_feature_flags_worker_spec.rb. It took 0.84 second. Expected to take 1.52 seconds.
# [RSpecRunTime] Starting example group spec/routing/user_routing_spec.rb. Expected to take 1.48 seconds.
user routing
when GitHub OAuth on project import is cancelled
behaves like redirecting a legacy path
redirects /users/auth?error=access_denied&state=xyz to /users/sign_in
# [RSpecRunTime] RSpec elapsed time: 24 minutes 57.97 seconds. Current RSS: ~1569M. load average: 1.34 1.13 1.09 1/295 19829
when GitHub OAuth on sign in is cancelled
when all required parameters are present
behaves like redirecting a legacy path
redirects /users/auth?error=access_denied&state=xyz to /projects/new#import_project
when one of the required parameters is missing
behaves like redirecting a legacy path
redirects /users/auth?error=access_denied&state= to /auth
# [RSpecRunTime] Finishing example group spec/routing/user_routing_spec.rb. It took 1.57 seconds. Expected to take 1.48 seconds.
# [RSpecRunTime] Starting example group spec/lib/slack/block_kit/app_home_opened_spec.rb. Expected to take 1.47 seconds.
Slack::BlockKit::AppHomeOpened
#build
generates blocks of type "home"
prompts the user to connect their GitLab account
when the user has linked their GitLab account
displays the GitLab user they are linked to
# [RSpecRunTime] Finishing example group spec/lib/slack/block_kit/app_home_opened_spec.rb. It took 0.77 second. Expected to take 1.47 seconds.
# [RSpecRunTime] Starting example group spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb. Expected to take 1.43 seconds.
RuboCop::Cop::Migration::BackgroundMigrationMissingActiveConcern
in non-ee background migration
behaves like offense is not registered
does not register any offenses
in ee background migration
when scope_to is not used inside prepended block
does not register any offenses
when scope_to is used inside prepended block
does not register any offenses if the module does extend ActiveSupport::Concern
registers an offense if the module does not extend ActiveSupport::Concern
when outside of a migration
behaves like offense is not registered
does not register any offenses
# [RSpecRunTime] Finishing example group spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb. It took 0.68 second. Expected to take 1.43 seconds.
# [RSpecRunTime] Starting example group spec/validators/js_regex_validator_spec.rb. Expected to take 1.42 seconds.
JsRegexValidator
#validates_each
user_default_internal_regex: nil, result: []
generates correct errors
user_default_internal_regex: "", result: []
generates correct errors
user_default_internal_regex: "(?#comment)", result: ["Regex Pattern (?#comment) can not be expressed in Javascript"]
generates correct errors
user_default_internal_regex: "(?(a)b|c)", result: ["invalid conditional pattern: /(?(a)b|c)/i"]
generates correct errors
# [RSpecRunTime] Finishing example group spec/validators/js_regex_validator_spec.rb. It took 0.55 second. Expected to take 1.42 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/word_diff/positions_counter_spec.rb. Expected to take 1.38 seconds.
Gitlab::WordDiff::PositionsCounter
Initial state
starts with predefined values
#increase_pos_num
increases old and new positions
#increase_obj_index
increases object index
#set_pos_num
sets old and new positions
# [RSpecRunTime] Finishing example group spec/lib/gitlab/word_diff/positions_counter_spec.rb. It took 0.61 second. Expected to take 1.38 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage/metrics/instrumentations/count_project_snippets_metric_spec.rb. Expected to take 1.35 seconds.
Gitlab::Usage::Metrics::Instrumentations::CountProjectSnippetsMetric
with a timeframe of all
behaves like a correct instrumented metric value
has correct value
with a time_frame of 28 days
behaves like a correct instrumented metric value
has correct value
# [RSpecRunTime] Finishing example group spec/lib/gitlab/usage/metrics/instrumentations/count_project_snippets_metric_spec.rb. It took 0.89 second. Expected to take 1.35 seconds.
# [RSpecRunTime] Starting example group spec/views/shared/milestones/_top.html.haml_spec.rb. Expected to take 1.32 seconds.
shared/milestones/_top.html.haml
does not render a deprecation message for a non-legacy and non-dashboard milestone
# [RSpecRunTime] Finishing example group spec/views/shared/milestones/_top.html.haml_spec.rb. It took 0.87 second. Expected to take 1.32 seconds.
# [RSpecRunTime] Starting example group spec/presenters/dev_ops_report/metric_presenter_spec.rb. Expected to take 1.29 seconds.
DevOpsReport::MetricPresenter
#cards
includes instance score, leader score and percentage score
#idea_to_production_steps
returns percentage score when it depends on a single feature
returns percentage score when it depends on two features
#average_percentage_score
calculates an average value across all the features
# [RSpecRunTime] Finishing example group spec/presenters/dev_ops_report/metric_presenter_spec.rb. It took 0.56 second. Expected to take 1.29 seconds.
# [RSpecRunTime] Starting example group spec/services/export_csv/map_export_fields_service_spec.rb. Expected to take 1.25 seconds.
ExportCsv::MapExportFieldsService
#execute
returns a hash with selected fields only
when the fields collection is empty
returns a hash with all fields
when fields collection includes invalid fields
returns a hash with valid selected fields only
#invalid_fields
returns an array containing invalid fields
# [RSpecRunTime] Finishing example group spec/services/export_csv/map_export_fields_service_spec.rb. It took 0.53 second. Expected to take 1.25 seconds.
# [RSpecRunTime] Starting example group spec/lib/banzai/pipeline/post_process_pipeline_spec.rb. Expected to take 1.24 seconds.
Banzai::Pipeline::PostProcessPipeline
when a document only has upload links
does not make any Gitaly calls
when both upload and repository links are present
searches for attributes only once
# [RSpecRunTime] Finishing example group spec/lib/banzai/pipeline/post_process_pipeline_spec.rb. It took 0.81 second. Expected to take 1.24 seconds.
# [RSpecRunTime] Starting example group spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb. Expected to take 1.21 seconds.
devise/shared/_signup_omniauth_provider_list
is expected to have text "Register with:"
renders button in form
behaves like sso buttons have snowplow tracking
contains tracking attributes
# [RSpecRunTime] Finishing example group spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb. It took 0.69 second. Expected to take 1.21 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/incident_management/timeline_event_tag_type_spec.rb. Expected to take 1.19 seconds.
Types::IncidentManagement::TimelineEventTagType
is expected to require graphql authorizations :read_incident_management_timeline_event_tag
is expected to eq "TimelineEventTagType"
exposes the expected fields
# [RSpecRunTime] Finishing example group spec/graphql/types/incident_management/timeline_event_tag_type_spec.rb. It took 0.44 second. Expected to take 1.19 seconds.
# [RSpecRunTime] Starting example group spec/workers/todos_destroyer/entity_leave_worker_spec.rb. Expected to take 1.16 seconds.
TodosDestroyer::EntityLeaveWorker
calls the Todos::Destroy::EntityLeaveService with the params it was given
# [RSpecRunTime] Finishing example group spec/workers/todos_destroyer/entity_leave_worker_spec.rb. It took 0.25 second. Expected to take 1.16 seconds.
# [RSpecRunTime] Starting example group spec/lib/google_api/auth_spec.rb. Expected to take 1.14 seconds.
GoogleApi::Auth
#authorize_url
returns authorize_url
#get_token
returns token and expires_at
expects the client to receive default options
# [RSpecRunTime] Finishing example group spec/lib/google_api/auth_spec.rb. It took 0.44 second. Expected to take 1.14 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/container_respository_tags_sort_enum_spec.rb. Expected to take 1.12 seconds.
Types::ContainerRepositoryTagsSortEnum
is expected to eq "ContainerRepositoryTagSort"
exposes all the existing issue sort values
# [RSpecRunTime] Finishing example group spec/graphql/types/container_respository_tags_sort_enum_spec.rb. It took 0.34 second. Expected to take 1.12 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/merge_requests/mergeability_check_type_spec.rb. Expected to take 1.08 seconds.
Types::MergeRequests::MergeabilityCheckType
is expected to eq "MergeRequestMergeabilityCheck"
is expected to have graphql fields :identifier and :status
# [RSpecRunTime] Finishing example group spec/graphql/types/merge_requests/mergeability_check_type_spec.rb. It took 0.34 second. Expected to take 1.08 seconds.
# [RSpecRunTime] Starting example group spec/models/concerns/cross_database_modification_spec.rb. Expected to take 1.06 seconds.
CrossDatabaseModification
does not allow STI
.transaction
adds the current gitlab schema to gitlab_transactions_stack
yields
# [RSpecRunTime] Finishing example group spec/models/concerns/cross_database_modification_spec.rb. It took 0.45 second. Expected to take 1.06 seconds.
# [RSpecRunTime] Starting example group spec/models/group/crm_settings_spec.rb. Expected to take 1.02 seconds.
Group::CrmSettings
does not allow STI
associations
is expected to belong to group required: false
validations
is expected to validate that :group cannot be empty/falsy
# [RSpecRunTime] Finishing example group spec/models/group/crm_settings_spec.rb. It took 0.45 second. Expected to take 1.02 seconds.
# [RSpecRunTime] Starting example group spec/helpers/environment_helper_spec.rb. Expected to take 1.02 seconds.
EnvironmentHelper
#environments_detail_data_json
returns the correct data
# [RSpecRunTime] Finishing example group spec/helpers/environment_helper_spec.rb. It took 0.76 second. Expected to take 1.02 seconds.
# [RSpecRunTime] Starting example group spec/lib/bitbucket_server/retry_with_delay_spec.rb. Expected to take 0.98 second.
BitbucketServer::RetryWithDelay
.retry_with_delay
when the function succeeds on the first try
calls the function once and returns its result
when the request has a status code of 429
calls the function again after a delay
# [RSpecRunTime] Finishing example group spec/lib/bitbucket_server/retry_with_delay_spec.rb. It took 0.35 second. Expected to take 0.98 second.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb. Expected to take 0.96 second.
Resolvers::AlertManagement::AlertStatusCountsResolver
#resolve
is expected to be a kind of Gitlab::AlertManagement::AlertStatusCounts
is expected to eq #<Project id:1105 namespace1101/project-1269>>
# [RSpecRunTime] Finishing example group spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb. It took 0.6 second. Expected to take 0.96 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb. Expected to take 0.93 second.
Gitlab::Tracking::Helpers::WeakPasswordErrorEvent
when user does not have a weak password error
does not track the event
when user does not have any errors
does not track the event
when user has a weak password error
tracks the event
# [RSpecRunTime] Finishing example group spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb. It took 0.47 second. Expected to take 0.93 second.
# [RSpecRunTime] Starting example group spec/graphql/types/kas/agent_metadata_type_spec.rb. Expected to take 0.92 second.
Types::Kas::AgentMetadataType
is expected to eq "AgentMetadata"
is expected to eq "Information about a connected Agent"
is expected to have graphql fields :version, :commit, :pod_namespace, and :pod_name
# [RSpecRunTime] Finishing example group spec/graphql/types/kas/agent_metadata_type_spec.rb. It took 0.45 second. Expected to take 0.92 second.
# [RSpecRunTime] Starting example group spec/graphql/types/ci/test_report_summary_type_spec.rb. Expected to take 0.89 second.
Types::Ci::TestReportSummaryType
is expected to eq "TestReportSummary"
contains attributes related to a pipeline test report summary
# [RSpecRunTime] Finishing example group spec/graphql/types/ci/test_report_summary_type_spec.rb. It took 0.35 second. Expected to take 0.89 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb. Expected to take 0.87 second.
Gitlab::GithubImport::Importer::IssueAndLabelLinksImporter
#execute
imports an issue and its labels
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb. It took 0.26 second. Expected to take 0.87 second.
# [RSpecRunTime] Starting example group spec/graphql/types/label_type_spec.rb. Expected to take 0.83 second.
Types::LabelType
has the correct fields
is expected to require graphql authorizations :read_label
# [RSpecRunTime] Finishing example group spec/graphql/types/label_type_spec.rb. It took 0.34 second. Expected to take 0.83 second.
# [RSpecRunTime] Starting example group spec/serializers/serverless/domain_entity_spec.rb. Expected to take 0.8 second.
Serverless::DomainEntity
#as_json
has an id
has a domain
# [RSpecRunTime] Finishing example group spec/serializers/serverless/domain_entity_spec.rb. It took 0.37 second. Expected to take 0.8 second.
# [RSpecRunTime] Starting example group spec/workers/concerns/cluster_agent_queue_spec.rb. Expected to take 0.78 second.
ClusterAgentQueue
is expected to eq :deployment_management
# [RSpecRunTime] Finishing example group spec/workers/concerns/cluster_agent_queue_spec.rb. It took 0.26 second. Expected to take 0.78 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb. Expected to take 0.75 second.
Gitlab::SidekiqMiddleware::PauseControl::Client
#call
when strategy is enabled
does not schedule the job
when strategy is disabled
schedules the job
# [RSpecRunTime] Finishing example group spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb. It took 0.36 second. Expected to take 0.75 second.
# [RSpecRunTime] Starting example group spec/rubocop/qa_helpers_spec.rb. Expected to take 0.74 second.
RuboCop::QAHelpers
#in_qa_file?
returns true for a node in the qa/ directory
returns false for a node outside the qa/ directory
# [RSpecRunTime] Finishing example group spec/rubocop/qa_helpers_spec.rb. It took 0.34 second. Expected to take 0.74 second.
# [RSpecRunTime] Starting example group spec/policies/concerns/archived_abilities_spec.rb. Expected to take 0.71 second.
ArchivedAbilities
.archived_abilities
returns an array of abilities to be prevented when archived
.archived_features
returns an array of features to be prevented when archived
# [RSpecRunTime] Finishing example group spec/policies/concerns/archived_abilities_spec.rb. It took 0.37 second. Expected to take 0.71 second.
# [RSpecRunTime] Starting example group spec/graphql/types/security/codequality_reports_comparer/report_type_spec.rb. Expected to take 0.71 second.
Types::Security::CodequalityReportsComparer::ReportType
has expected fields
is expected to eq "CodequalityReportsComparerReport"
# [RSpecRunTime] Finishing example group spec/graphql/types/security/codequality_reports_comparer/report_type_spec.rb. It took 0.34 second. Expected to take 0.71 second.
# [RSpecRunTime] Starting example group spec/lib/mattermost/command_spec.rb. Expected to take 0.69 second.
Mattermost::Command
#create
for valid trigger word
returns a token
for error message
raises an error with message
# [RSpecRunTime] Finishing example group spec/lib/mattermost/command_spec.rb. It took 0.35 second. Expected to take 0.69 second.
# [RSpecRunTime] Starting example group spec/graphql/types/ci/catalog/resource_sort_enum_spec.rb. Expected to take 0.68 second.
Types::Ci::Catalog::ResourceSortEnum
exposes all the existing catalog resource sort orders
is expected to eq "CiCatalogResourceSort"
# [RSpecRunTime] Finishing example group spec/graphql/types/ci/catalog/resource_sort_enum_spec.rb. It took 0.34 second. Expected to take 0.68 second.
# [RSpecRunTime] Starting example group spec/graphql/types/permission_types/container_repository_spec.rb. Expected to take 0.66 second.
Types::PermissionTypes::ContainerRepository
has the expected fields
# [RSpecRunTime] Finishing example group spec/graphql/types/permission_types/container_repository_spec.rb. It took 0.27 second. Expected to take 0.66 second.
# [RSpecRunTime] Starting example group spec/graphql/types/packages/composer/metadatum_type_spec.rb. Expected to take 0.65 second.
Types::Packages::Composer::MetadatumType
includes composer metadatum fields
# [RSpecRunTime] Finishing example group spec/graphql/types/packages/composer/metadatum_type_spec.rb. It took 0.26 second. Expected to take 0.65 second.
# [RSpecRunTime] Starting example group spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb. Expected to take 0.64 second.
BulkImports::Groups::Extractors::SubgroupsExtractor
#extract
returns ExtractedData response
# [RSpecRunTime] Finishing example group spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb. It took 0.41 second. Expected to take 0.64 second.
# [RSpecRunTime] Starting example group spec/helpers/deploy_tokens_helper_spec.rb. Expected to take 0.59 second.
DeployTokensHelper
#deploy_token_revoke_button_data
returns expected hash
# [RSpecRunTime] Finishing example group spec/helpers/deploy_tokens_helper_spec.rb. It took 0.27 second. Expected to take 0.59 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/error_tracking/log_formatter_spec.rb. Expected to take 0.54 second.
Gitlab::ErrorTracking::LogFormatter
appends error-related log fields and filters sensitive Sidekiq arguments
# [RSpecRunTime] Finishing example group spec/lib/gitlab/error_tracking/log_formatter_spec.rb. It took 0.28 second. Expected to take 0.54 second.
# [RSpecRunTime] Starting example group spec/graphql/types/permission_types/ci/pipeline_spec.rb. Expected to take 0.51 second.
Types::PermissionTypes::Ci::Pipeline
has expected permission fields
# [RSpecRunTime] Finishing example group spec/graphql/types/permission_types/ci/pipeline_spec.rb. It took 0.25 second. Expected to take 0.51 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/async_constraints_spec.rb. Expected to take 0.49 second.
Gitlab::Database::AsyncConstraints
.validate_pending_entries!
executes pending validations
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/async_constraints_spec.rb. It took 0.27 second. Expected to take 0.49 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb. Expected to take 0.48 second.
Gitlab::Usage::Metrics::Instrumentations::UuidMetric
behaves like a correct instrumented metric value
has correct value
# [RSpecRunTime] Finishing example group spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb. It took 0.26 second. Expected to take 0.48 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/status/bridge/waiting_for_resource_spec.rb. Expected to take 0.46 second.
Gitlab::Ci::Status::Bridge::WaitingForResource
is expected to be < Gitlab::Ci::Status::Processable::WaitingForResource
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/status/bridge/waiting_for_resource_spec.rb. It took 0.26 second. Expected to take 0.46 second.
# [RSpecRunTime] Starting example group spec/graphql/types/work_items/widgets/notifications_type_spec.rb. Expected to take 0.45 second.
Types::WorkItems::Widgets::NotificationsType
exposes the expected fields
# [RSpecRunTime] Finishing example group spec/graphql/types/work_items/widgets/notifications_type_spec.rb. It took 0.26 second. Expected to take 0.45 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/saas_spec.rb. Expected to take 0.45 second.
Gitlab::Saas
.canary_toggle_com_url
is expected to eq "https://next.gitlab.com"
# [RSpecRunTime] Finishing example group spec/lib/gitlab/saas_spec.rb. It took 0.26 second. Expected to take 0.45 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb. Expected to take 0.43 second.
Gitlab::Memory::Watchdog::Handlers::PumaHandler
#call
invokes orderly termination via Puma API
# [RSpecRunTime] Finishing example group spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb. It took 0.26 second. Expected to take 0.43 second.
# [RSpecRunTime] Starting example group spec/graphql/types/ci/group_variable_connection_type_spec.rb. Expected to take 0.42 second.
#<Class:0x00007ce3549afbf0>
has the expected fields
# [RSpecRunTime] Finishing example group spec/graphql/types/ci/group_variable_connection_type_spec.rb. It took 0.26 second. Expected to take 0.42 second.
auto_explain log contains 1227 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-29-32.340.main.ndjson.gz
took 19.817494379
auto_explain log contains 1227 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-29-32.340.ci.ndjson.gz
took 17.515849217
[TEST PROF INFO] EventProf results for sql.active_record
Total time: 04:59.702 of 25:12.206 (19.82%)
Total events: 278063
Top 5 slowest suites (by time):
MergeRequests::RefreshService (./spec/services/merge_requests/refresh_service_spec.rb:5) – 00:53.454 (41891 / 77) of 03:44.206 (23.84%)
TodoService (./spec/services/todo_service_spec.rb:5) – 00:31.130 (27420 / 161) of 02:01.573 (25.61%)
Banzai::Filte...eferenceFilter (./spec/lib/banzai/filter/references/issue_reference_filter_spec.rb:5) – 00:20.427 (17199 / 99) of 01:13.328 (27.86%)
AutoMerge::BaseService (./spec/services/auto_merge/base_service_spec.rb:5) – 00:13.840 (11777 / 41) of 01:01.320 (22.57%)
MergeRequests...tyCheckService (./spec/services/merge_requests/mergeability_check_service_spec.rb:5) – 00:11.270 (9199 / 44) of 01:02.008 (18.18%)
Knapsack report was generated. Preview:
"spec/services/merge_requests/refresh_service_spec.rb": 224.15543018399967,
"spec/rubocop/cop/rspec/feature_category_spec.rb": 73.37248686099974,
"spec/services/todo_service_spec.rb": 121.57273549799993,
"spec/lib/banzai/filter/references/issue_reference_filter_spec.rb": 73.3284045750006,
"spec/helpers/projects_helper_spec.rb": 46.620867489000375,
"spec/services/auto_merge/base_service_spec.rb": 61.32054509000045,
"spec/services/merge_requests/mergeability_check_service_spec.rb": 62.00809244300035,
"spec/models/protected_branch_spec.rb": 36.32740436399945,
"spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb": 24.38458050600093,
"spec/models/concerns/milestoneish_spec.rb": 28.45781352099948,
"spec/views/search/_results.html.haml_spec.rb": 37.42203489599888,
"spec/scripts/internal_events/cli_spec.rb": 40.921688313999766,
"spec/finders/ci/runner_jobs_finder_spec.rb": 23.086432968000736,
"spec/policies/commit_policy_spec.rb": 25.690249265000602,
"spec/services/projects/update_repository_storage_service_spec.rb": 24.880237377999947,
"spec/lib/gitlab/project_authorizations_spec.rb": 25.08782289499868,
"spec/models/container_registry/protection/rule_spec.rb": 9.846844241999861,
"spec/models/merge_request_diff_commit_spec.rb": 20.223671771000227,
"spec/lib/container_registry/client_spec.rb": 10.38044280000031,
"spec/lib/bulk_imports/clients/http_spec.rb": 7.501448395001717,
"spec/finders/clusters/knative_services_finder_spec.rb": 19.816041366000718,
"spec/policies/ci/runner_manager_policy_spec.rb": 11.675345395000477,
"spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb": 8.49696709500131,
"spec/services/post_receive_service_spec.rb": 11.164130148999902,
"spec/policies/todo_policy_spec.rb": 12.32017554399863,
"spec/models/concerns/project_api_compatibility_spec.rb": 13.33620765500018,
"spec/lib/gitlab/cache/json_caches/json_keyed_spec.rb": 6.736918135000451,
"spec/helpers/tab_helper_spec.rb": 6.638710766001168,
"spec/workers/users/deactivate_dormant_users_worker_spec.rb": 10.178104942999198,
"spec/lib/gitlab/ci/trace/checksum_spec.rb": 9.394082114000412,
"spec/services/merge_requests/retarget_chain_service_spec.rb": 14.350664765999682,
"spec/lib/extracts_path_spec.rb": 5.992459741000857,
"spec/initializers/load_balancing_spec.rb": 12.602689350000219,
"spec/workers/merge_request_cleanup_refs_worker_spec.rb": 11.78862285499963,
"spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb": 5.481801931000518,
"spec/uploaders/packages/package_file_uploader_spec.rb": 8.314461050000318,
"spec/lib/gitlab/gitaly_client/ref_service_spec.rb": 5.398537819999547,
"spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb": 10.89281076000043,
"spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb": 5.604624466001042,
"spec/lib/sidebars/projects/menus/settings_menu_spec.rb": 5.587078478998592,
"spec/models/protected_branch/merge_access_level_spec.rb": 6.145919894001054,
"spec/services/ci/pipeline_schedules/create_service_spec.rb": 6.038667656001053,
"spec/serializers/commit_entity_spec.rb": 9.542107657000088,
"spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb": 6.141881663999811,
"spec/lib/gitlab/mail_room/mail_room_spec.rb": 3.9644683280002937,
"spec/lib/gitlab/template/merge_request_template_spec.rb": 8.137975240999367,
"spec/rubocop/cop/graphql/descriptions_spec.rb": 4.742077007000262,
"spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb": 8.628636213999926,
"spec/services/security/ci_configuration/sast_create_service_spec.rb": 6.073192342000766,
"spec/services/ci/runners/register_runner_service_spec.rb": 4.678495533999012,
"spec/serializers/merge_request_diff_entity_spec.rb": 6.56878749399948,
"spec/lib/gitlab/database/health_status/indicators/patroni_apdex_spec.rb": 2.6559218000002147,
"spec/lib/gitlab/consul/internal_spec.rb": 2.3300764190007612,
"spec/finders/keys_finder_spec.rb": 4.377074439000353,
"spec/lib/gitlab/database/dictionary_spec.rb": 2.496389279000141,
"spec/models/snippet_statistics_spec.rb": 3.8462162209998496,
"spec/services/service_ping/submit_service_ping_service_spec.rb": 3.069201381998937,
"spec/services/ci/build_erase_service_spec.rb": 7.04673897900102,
"spec/lib/gitlab/ci/build/step_spec.rb": 5.052428269998927,
"spec/lib/gitlab/github_import/importer/single_endpoint_diff_notes_importer_spec.rb": 5.147563589998754,
"spec/services/projects/deploy_tokens/create_service_spec.rb": 4.906402477998199,
"spec/services/quick_actions/target_service_spec.rb": 4.886748190001526,
"spec/services/projects/download_service_spec.rb": 4.367516680000335,
"spec/models/integrations/campfire_spec.rb": 2.303419451998707,
"spec/graphql/resolvers/board_resolver_spec.rb": 3.6211196369986283,
"spec/models/x509_certificate_spec.rb": 2.777725077001378,
"spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb": 2.209522602999641,
"spec/models/concerns/use_sql_function_for_primary_key_lookups_spec.rb": 2.856256286999269,
"spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb": 3.163306610998916,
"spec/tooling/graphql/docs/renderer_spec.rb": 2.370137212999907,
"spec/lib/gitlab/database/async_constraints/postgres_async_constraint_validation_spec.rb": 2.381529562999276,
"spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 2.049798280999312,
"spec/services/users/assigned_issues_count_service_spec.rb": 3.9839689259988518,
"spec/views/layouts/terms.html.haml_spec.rb": 3.5987856009996904,
"spec/lib/gitlab/email/service_desk_email_spec.rb": 1.964953060998596,
"spec/models/packages/sem_ver_spec.rb": 1.7663017449995095,
"spec/models/ci/commit_with_pipeline_spec.rb": 2.403906890000144,
"spec/workers/bulk_imports/pipeline_batch_worker_spec.rb": 2.7063944340006856,
"spec/finders/autocomplete/group_users_finder_spec.rb": 3.422610411000278,
"spec/lib/gitlab/cache/request_cache_spec.rb": 1.9841748689996166,
"spec/models/milestone_note_spec.rb": 3.8703664889999345,
"spec/finders/releases/evidence_pipeline_finder_spec.rb": 3.385704076001275,
"spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb": 3.688686099998449,
"spec/lib/gitlab/popen/runner_spec.rb": 1.7191732200008119,
"spec/services/projects/import_export/parallel_export_service_spec.rb": 2.8551691369993932,
"spec/lib/gitlab/ci/config/entry/reports/coverage_report_spec.rb": 1.9933566370000335,
"spec/lib/gitlab/usage_data_counters/note_counter_spec.rb": 1.568563296999855,
"spec/lib/gitlab/auth/user_access_denied_reason_spec.rb": 3.0417172350007604,
"spec/lib/gitlab/endpoint_attributes_spec.rb": 1.7192749400001048,
"spec/lib/gitlab/reactive_cache_set_cache_spec.rb": 1.9927374879989657,
"spec/policies/projects/branch_rule_policy_spec.rb": 1.8650992019993282,
"spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 1.3024891280001611,
"spec/services/ci/create_pipeline_service/parameter_content_spec.rb": 2.9449080470003537,
"spec/models/ci/build_trace_spec.rb": 1.780174662000718,
"spec/lib/gitlab/sanitizers/svg_spec.rb": 1.377439730000333,
"spec/models/concerns/access_requestable_spec.rb": 2.592121806999785,
"spec/lib/gitlab/import_export/repo_saver_spec.rb": 2.302081881000049,
"spec/services/packages/composer/composer_json_service_spec.rb": 2.131807971998569,
"spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 1.4278372729986586,
"spec/graphql/types/snippets/blob_viewer_type_spec.rb": 1.7749202930008323,
"spec/tasks/gitlab/sidekiq_rake_spec.rb": 3.110900756999399,
"spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb": 3.717662205999659,
"spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 2.774181635999412,
"spec/services/branches/validate_new_service_spec.rb": 3.059477582999534,
"spec/lib/gitlab/database/schema_cache_with_renamed_table_spec.rb": 2.5394971839996288,
"spec/lib/file_size_validator_spec.rb": 2.6566487700001744,
"spec/services/update_container_registry_info_service_spec.rb": 3.673908612001469,
"spec/helpers/sessions_helper_spec.rb": 1.6682470249998005,
"spec/lib/gitlab/ci/variables/builder/project_spec.rb": 1.7837738620000891,
"spec/lib/gitlab/tracking/service_ping_context_spec.rb": 0.8409980120013643,
"spec/helpers/award_emoji_helper_spec.rb": 2.7972878930013394,
"spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb": 0.9955561139995552,
"spec/models/work_items/widgets/assignees_spec.rb": 1.3521353929991164,
"spec/lib/sidebars/admin/menus/applications_menu_spec.rb": 1.0767432550001104,
"spec/components/pajamas/card_component_spec.rb": 1.003456663000179,
"spec/channels/noteable/notes_channel_spec.rb": 2.2517322069998045,
"spec/services/packages/create_temporary_package_service_spec.rb": 1.5361964109997643,
"spec/models/packages/event_spec.rb": 0.9857535150003969,
"spec/serializers/rollout_status_entity_spec.rb": 0.8398968619985681,
"spec/lib/gitlab/database/async_indexes/index_creator_spec.rb": 1.285422920000201,
"spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb": 2.5522550030000275,
"spec/workers/packages/mark_package_files_for_destruction_worker_spec.rb": 1.4747916489995987,
"spec/graphql/mutations/todos/restore_spec.rb": 2.303700022001067,
"spec/policies/project_hook_policy_spec.rb": 1.5539092990002246,
"spec/services/alert_management/http_integrations/update_service_spec.rb": 1.3810992979997536,
"spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb": 1.4173293250005372,
"spec/services/ci/create_pipeline_service/artifacts_spec.rb": 1.6038150429994857,
"spec/services/packages/update_tags_service_spec.rb": 1.4606069790006586,
"spec/workers/ci/archive_trace_worker_spec.rb": 1.570841806998942,
"spec/lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder_spec.rb": 1.8957214089987247,
"spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb": 1.9944185780004773,
"spec/lib/gitlab/import_export/group/object_builder_spec.rb": 1.2577523830004793,
"spec/lib/bitbucket/representation/comment_spec.rb": 0.9408619099995121,
"spec/finders/ci/runner_managers_finder_spec.rb": 1.1858743320008216,
"spec/lib/gitlab/usage/metrics/instrumentations/project_imports_creators_metric_spec.rb": 1.8891423490003945,
"spec/lib/gitlab/plantuml_spec.rb": 1.088441892999981,
"spec/models/projects/wiki_repository_spec.rb": 0.8538099199995486,
"spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb": 1.7952554499988764,
"spec/workers/pipeline_hooks_worker_spec.rb": 1.5767478460002167,
"spec/services/packages/remove_tag_service_spec.rb": 2.524678396001036,
"spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb": 0.9610244579998835,
"spec/services/ci/build_unschedule_service_spec.rb": 1.3436151839996455,
"spec/lib/gitlab/database/type/color_spec.rb": 0.9313762609999685,
"spec/lib/gitlab/github_import/importer/events/reopened_spec.rb": 1.2683412520000275,
"spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 1.6323645599986776,
"spec/services/incident_management/issuable_escalation_statuses/after_update_service_spec.rb": 1.6139747409997653,
"spec/models/user_mentions/commit_user_mention_spec.rb": 0.8902786569997261,
"spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 0.721121234999373,
"spec/graphql/resolvers/ci/test_suite_resolver_spec.rb": 1.8300380969994876,
"spec/rubocop/cop/migration/migration_record_spec.rb": 1.103423300999566,
"spec/services/admin/abuse_report_labels/create_service_spec.rb": 0.8959289849990455,
"spec/services/ci/build_cancel_service_spec.rb": 1.3357128649986407,
"spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb": 0.890393726000184,
"spec/lib/gitlab/sidekiq_middleware/concurrency_limit/workers_map_spec.rb": 1.041279728000518,
"spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 0.46309706600004574,
"spec/services/packages/npm/deprecate_package_service_spec.rb": 1.0466066780008987,
"spec/graphql/types/color_type_spec.rb": 0.9105337540004257,
"spec/lib/gitlab/ci/config/entry/release/assets_spec.rb": 0.6847944700002699,
"spec/lib/gitlab/github_gists_import/status_spec.rb": 0.5777180730001419,
"spec/lib/gitlab/circuit_breaker/notifier_spec.rb": 0.5076472800010379,
"spec/lib/gitlab/github_import/clients/proxy_spec.rb": 0.6906841700001678,
"spec/lib/gitlab/ci/status/waiting_for_callback_spec.rb": 0.8040739359985309,
"spec/lib/constraints/admin_constrainer_spec.rb": 0.8649170190001314,
"spec/models/notes/note_metadata_spec.rb": 0.8251568140003656,
"spec/workers/pages_domain_verification_worker_spec.rb": 0.5682005829985428,
"spec/graphql/types/timeframe_type_spec.rb": 0.6147349090006173,
"spec/services/ci/queue/pending_builds_strategy_spec.rb": 1.030416220000916,
"spec/services/projects/batch_open_issues_count_service_spec.rb": 1.2004454099987925,
"spec/views/notify/push_to_merge_request_email.text.haml_spec.rb": 1.389611837999837,
"spec/graphql/mutations/users/saved_replies/create_spec.rb": 0.8097445549992699,
"spec/lib/gitlab/kubernetes/config_map_spec.rb": 0.4315353799993318,
"spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb": 0.38403317499978584,
"spec/views/admin/projects/_form.html.haml_spec.rb": 0.5827678719997493,
"spec/lib/gitlab/checks/force_push_spec.rb": 0.8658244189991819,
"spec/lib/gitlab/kubernetes/ingress_spec.rb": 1.921104376000585,
"spec/workers/jira_connect/sync_feature_flags_worker_spec.rb": 0.8415702920010517,
"spec/routing/user_routing_spec.rb": 1.570298026999808,
"spec/lib/slack/block_kit/app_home_opened_spec.rb": 0.76642437999908,
"spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb": 0.6841975309998816,
"spec/validators/js_regex_validator_spec.rb": 0.5503098860008322,
"spec/lib/gitlab/word_diff/positions_counter_spec.rb": 0.6095423090009717,
"spec/lib/gitlab/usage/metrics/instrumentations/count_project_snippets_metric_spec.rb": 0.8890165960001468,
"spec/views/shared/milestones/_top.html.haml_spec.rb": 0.8734061979994294,
"spec/presenters/dev_ops_report/metric_presenter_spec.rb": 0.5601394650002476,
"spec/services/export_csv/map_export_fields_service_spec.rb": 0.5264669680000225,
"spec/lib/banzai/pipeline/post_process_pipeline_spec.rb": 0.8092834159997437,
"spec/views/devise/shared/_signup_omniauth_provider_list_spec.rb": 0.6898789589995431,
"spec/graphql/types/incident_management/timeline_event_tag_type_spec.rb": 0.4435351890006132,
"spec/workers/todos_destroyer/entity_leave_worker_spec.rb": 0.24767335099932097,
"spec/lib/google_api/auth_spec.rb": 0.43986909799969,
"spec/graphql/types/container_respository_tags_sort_enum_spec.rb": 0.33665128000029654,
"spec/graphql/types/merge_requests/mergeability_check_type_spec.rb": 0.337453710999398,
"spec/models/concerns/cross_database_modification_spec.rb": 0.4544590179993975,
"spec/models/group/crm_settings_spec.rb": 0.4517813769998611,
"spec/helpers/environment_helper_spec.rb": 0.7552594720000343,
"spec/lib/bitbucket_server/retry_with_delay_spec.rb": 0.346203818999129,
"spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb": 0.600561449999077,
"spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb": 0.46862743599922396,
"spec/graphql/types/kas/agent_metadata_type_spec.rb": 0.453914576999523,
"spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.3484436199996708,
"spec/lib/gitlab/github_import/importer/issue_and_label_links_importer_spec.rb": 0.2645195289987896,
"spec/graphql/types/label_type_spec.rb": 0.34398592000070494,
"spec/serializers/serverless/domain_entity_spec.rb": 0.37352550600007817,
"spec/workers/concerns/cluster_agent_queue_spec.rb": 0.25657657999909134,
"spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb": 0.3606548080006178,
"spec/rubocop/qa_helpers_spec.rb": 0.34204827999928966,
"spec/policies/concerns/archived_abilities_spec.rb": 0.3738196459999017,
"spec/graphql/types/security/codequality_reports_comparer/report_type_spec.rb": 0.34208740099893475,
"spec/lib/mattermost/command_spec.rb": 0.34913602999949944,
"spec/graphql/types/ci/catalog/resource_sort_enum_spec.rb": 0.3430508999990707,
"spec/graphql/types/permission_types/container_repository_spec.rb": 0.2732565380010783,
"spec/graphql/types/packages/composer/metadatum_type_spec.rb": 0.2618165389994829,
"spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb": 0.40543365299890866,
"spec/helpers/deploy_tokens_helper_spec.rb": 0.2739534079992154,
"spec/lib/gitlab/error_tracking/log_formatter_spec.rb": 0.2823427269995591,
"spec/graphql/types/permission_types/ci/pipeline_spec.rb": 0.2529574300006061,
"spec/lib/gitlab/database/async_constraints_spec.rb": 0.2722644980003679,
"spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb": 0.25717729099960707,
"spec/lib/gitlab/ci/status/bridge/waiting_for_resource_spec.rb": 0.25789371999962896,
"spec/graphql/types/work_items/widgets/notifications_type_spec.rb": 0.2596359199997096,
"spec/lib/gitlab/saas_spec.rb": 0.2576877900010004,
"spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb": 0.2643476190005458,
"spec/graphql/types/ci/group_variable_connection_type_spec.rb": 0.25717514000098163
Knapsack global time execution for tests: 25m 11s
Pending: (Failures listed here are expected and do not affect your suite's status)
1) Packages::PackageFileUploader behaves like builds correct paths #upload_path behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
2) Packages::PackageFileUploader behaves like builds correct paths #relative_path is relative
# Path not set, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:40
3) Packages::PackageFileUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
4) Packages::PackageFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
5) Packages::PackageFileUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
6) Packages::PackageFileUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
7) Packages::PackageFileUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
8) Packages::PackageFileUploader object store is remote behaves like builds correct paths #relative_path is relative
# Path not set, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:40
9) Packages::PackageFileUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
10) Packages::PackageFileUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern
# No pattern provided, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8
Failures:
1) Cli when showing usage examples when viewing examples for multiple events switches between events gracefully
Failure/Error: raise "Condition not met: #{condition_name}"
RuntimeError:
Condition not met: expect_cli_output do
output = plain_last_lines(320)
output.include?(expected_example_prompt) &&
output.include?(expected_event1_example) &&
output.include?(expected_event2_example)
end
# ./spec/support/helpers/wait_helpers.rb:16:in `block in wait_for'
# ./spec/support/helpers/wait_helpers.rb:9:in `loop'
# ./spec/support/helpers/wait_helpers.rb:9:in `wait_for'
# ./spec/scripts/internal_events/cli_spec.rb:908:in `block in expect_cli_output'
# ./spec/scripts/internal_events/cli_spec.rb:902:in `with_cli_thread'
# ./spec/scripts/internal_events/cli_spec.rb:908:in `expect_cli_output'
# ./spec/scripts/internal_events/cli_spec.rb:677:in `block (4 levels) in <top (required)>'
# ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:417:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:70:in `with_raw_context'
# ./spec/spec_helper.rb:413:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:260:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'
# ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
# ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
Finished in 25 minutes 56 seconds (files took 1 minute 45.37 seconds to load)
3893 examples, 1 failure, 10 pending
Failed examples:
rspec ./spec/scripts/internal_events/cli_spec.rb:664 # Cli when showing usage examples when viewing examples for multiple events switches between events gracefully
Randomized with seed 26704
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
[TEST PROF INFO] Time spent in factories: 11:13.732 (42.01% of total time)
RSpec exited with 1.
[job-metrics] Updating job metrics tag for the CI/CD job.
RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-6348595049.txt
Retrying the failing examples in a new RSpec process...
$ gem install junit_merge --no-document --version 0.1.2
Successfully installed nokogiri-1.16.2-x86_64-linux
Successfully installed junit_merge-0.1.2
2 gems installed
==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.
Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-6348595049.json --format RspecJunitFormatter --out rspec/rspec-retry-6348595049.xml --only-failures --pattern "spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,keeps,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,dot_gitlab_ci}{,/**/}*_spec.rb"
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
Run options: include {:last_run_status=>"failed"}
# [RSpecRunTime] Starting RSpec timer...
[TEST PROF INFO] EventProf enabled (sql.active_record)
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
unknown OID 2249: failed to recognize type of 'pg_stat_file'. It will be treated as String.
Test environment set up in 0.424528408 seconds
# [RSpecRunTime] Starting example group spec/scripts/internal_events/cli_spec.rb. Expected to take 40.84 seconds.
Cli
when showing usage examples
when viewing examples for multiple events
switches between events gracefully (FAILED - 1)
# [RSpecRunTime] Finishing example group spec/scripts/internal_events/cli_spec.rb. It took 20.83 seconds. Expected to take 40.84 seconds.
auto_explain log contains 1227 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-29-32.19864.main.ndjson.gz
took 17.490230454
auto_explain log contains 1228 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-29-32.19864.ci.ndjson.gz
took 17.45225158
[TEST PROF INFO] EventProf results for sql.active_record
Total time: 00:00.225 of 00:20.825 (1.08%)
Total events: 115
Top 5 slowest suites (by time):
Cli (./spec/scripts/internal_events/cli_spec.rb:7) – 00:00.225 (115 / 1) of 00:20.825 (1.08%)
Failures:
1) Cli when showing usage examples when viewing examples for multiple events switches between events gracefully
Failure/Error: raise "Condition not met: #{condition_name}"
RuntimeError:
Condition not met: expect_cli_output do
output = plain_last_lines(320)
output.include?(expected_example_prompt) &&
output.include?(expected_event1_example) &&
output.include?(expected_event2_example)
end
# ./spec/support/helpers/wait_helpers.rb:16:in `block in wait_for'
# ./spec/support/helpers/wait_helpers.rb:9:in `loop'
# ./spec/support/helpers/wait_helpers.rb:9:in `wait_for'
# ./spec/scripts/internal_events/cli_spec.rb:908:in `block in expect_cli_output'
# ./spec/scripts/internal_events/cli_spec.rb:902:in `with_cli_thread'
# ./spec/scripts/internal_events/cli_spec.rb:908:in `expect_cli_output'
# ./spec/scripts/internal_events/cli_spec.rb:677:in `block (4 levels) in <main>'
# ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:417:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:70:in `with_raw_context'
# ./spec/spec_helper.rb:413:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:260:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <main>'
# ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <main>'
Finished in 1 minute 0.87 seconds (files took 45.29 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/scripts/internal_events/cli_spec.rb:664 # Cli when showing usage examples when viewing examples for multiple events switches between events gracefully
Randomized with seed 22291
[TEST PROF INFO] Time spent in factories: 00:00.019 (0.03% of total time)
./scripts/rspec_helpers.sh: line 336: pop_var_context: head of shell_variables not a function context
./scripts/rspec_helpers.sh: line 220: pop_var_context: head of shell_variables not a function context
./scripts/rspec_helpers.sh: line 295: pop_var_context: head of shell_variables not a function context
scripts/utils.sh: line 83: pop_var_context: head of shell_variables not a function context
/usr/bin/bash: line 385: pop_var_context: head of shell_variables not a function context
Running after_script
Running after script...
$ source scripts/utils.sh
$ bundle exec gem list gitlab_quality-test_tooling
gitlab_quality-test_tooling (1.17.0)
$ $ section_start "relate-failure-issue" "Report test failures" # collapsed multi-line command
Report test failures
$ $ section_start "flaky-test-issues" "Report test flakiness" # collapsed multi-line command
Report test flakiness
$ $ section_start "slow-test-issues" "Report test slowness" # collapsed multi-line command
Report test slowness
$ $ section_start "slow-test-merge-request-report-note" "Report test slowness in MR note" # collapsed multi-line command
Report test slowness in MR note
$ $ section_start "knapsack-report-issues" "Report test files close to timing out" # collapsed multi-line command
Report test files close to timing out
$ tooling/bin/push_job_metrics || true
[job-metrics] Pushing job metrics file for the CI/CD job.
[job-metrics] Pushed 4 CI job metric entries to InfluxDB.
Uploading artifacts for failed job
Uploading artifacts...
auto_explain/: found 5 matching artifact files and directories
coverage/: found 4 matching artifact files and directories
WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab)
deprecations/: found 4 matching artifact files and directories
knapsack/: found 4 matching artifact files and directories
rspec/: found 15 matching artifact files and directories
WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab)
log/*.log: found 19 matching artifact files and directories
WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/6348595049/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com
WARNING: Retrying... context=artifacts-uploader error=request redirected
Uploading artifacts as "archive" to coordinator... 201 Created id=6348595049 responseStatus=201 Created token=glcbt-65
Uploading artifacts...
rspec/rspec-*.xml: found 2 matching artifact files and directories
WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/6348595049/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com
WARNING: Retrying... context=artifacts-uploader error=request redirected
Uploading artifacts as "junit" to coordinator... 201 Created id=6348595049 responseStatus=201 Created token=glcbt-65
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1