rspec unit pg14 9/44
Running with gitlab-runner 17.4.0~pre.110.g27400594 (27400594)
on blue-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org tDjA3Sp3, system ID: s_96a8ae3d1050
feature flags: FF_NETWORK_PER_BUILD:true, FF_TIMESTAMPS: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.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-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:ec1b0a84ddf9124276ac189cc4d98ef28f0aea95ebd148d9e4c18b28928dd999 for redis:6.2-alpine with digest redis@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5 ...
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.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 ...
Using docker image sha256:aa37a7017401b2a84d3f720a6ed6389cfe8d2a1468aaca032b100991cbba77ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14@sha256:036c9797d01edcfb3215f122f60a3f361ccc9f49fbbf2e6885d697523594297e ...
Preparing environment
Running on runner-tdja3sp3-project-278964-concurrent-0 via runner-tdja3sp3-private-1729795084-e05999dc...
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.2.5-gemfile-Gemfile-19...
Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bookworm-ruby-3.2.5-gemfile-Gemfile-19 ETag="0c5095f10121bb5ad66eedb77afe35b5"
Successfully extracted cache
Downloading artifacts
Downloading artifacts for clone-gitlab-repo (8181075443)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=8181075443 responseStatus=200 OK token=glcbt-66
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 (8181075500)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=8181075500 responseStatus=200 OK token=glcbt-66
Downloading artifacts for detect-tests (8181075512)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=8181075512 responseStatus=200 OK token=glcbt-66
Downloading artifacts for retrieve-tests-metadata (8181075525)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=8181075525 responseStatus=200 OK token=glcbt-66
Downloading artifacts for setup-test-env (8181075505)...
Downloading artifacts from coordinator... ok host=storage.googleapis.com id=8181075505 responseStatus=200 OK token=glcbt-66
Executing "step_script" stage of the job script
Using docker image sha256:aa37a7017401b2a84d3f720a6ed6389cfe8d2a1468aaca032b100991cbba77ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14:rubygems-3.4-git-2.45-lfs-2.9-chrome-123-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bookworm-ruby-3.2.5-golang-1.22-rust-1.73-node-20.12-postgresql-14@sha256:036c9797d01edcfb3215f122f60a3f361ccc9f49fbbf2e6885d697523594297e ...
$ 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
$ log_disk_usage "true"
*******************************************************
This runner currently has 66G free disk space.
*******************************************************
Disk usage detail
$ 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 1 seconds.
$ $ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"[0;m
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"
RSpec
[21:05:11] 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_9_44_278964_report.json
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_9_44_278964_report.json
NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_9_44_278964_report.json
RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-8181075816.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...
spec/lib/omni_auth/strategies/jwt_spec.rb not found in master report
RSpec suite is expected to take 29 minutes 19.38 seconds.
Expected duration for tests:
{
"spec/models/merge_request_diff_spec.rb": 505.9660229549897,
"spec/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb": 124.43712579108146,
"spec/models/ci/bridge_spec.rb": 98.09259446347957,
"spec/finders/issues_finder_spec.rb": 80.36882237273447,
"spec/services/ci/retry_pipeline_service_spec.rb": 70.60268754724342,
"spec/views/search/_results.html.haml_spec.rb": 63.73744928109447,
"spec/lib/gitlab/background_migration/backfill_merge_request_reviewers_project_id_spec.rb": 54.44680161011364,
"spec/finders/merge_request_target_project_finder_spec.rb": 50.52752224984191,
"spec/lib/gitlab/background_migration/backfill_packages_package_files_project_id_spec.rb": 43.307640944657834,
"spec/services/milestones/transfer_service_spec.rb": 37.97151571637802,
"spec/models/merge_request_diff_commit_spec.rb": 34.13437237280367,
"spec/services/merge_requests/link_lfs_objects_service_spec.rb": 31.48605641882431,
"spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb": 29.057700973461504,
"spec/workers/database/batched_background_migration_worker_spec.rb": 26.918049761563744,
"spec/lib/gitlab/ci/badge/pipeline/status_spec.rb": 24.390907560610458,
"spec/finders/ci/pipelines_for_merge_request_finder_spec.rb": 22.273499522672324,
"spec/lib/gitlab/relative_positioning/item_context_spec.rb": 20.657701958248268,
"spec/workers/resource_access_tokens/inactive_tokens_deletion_cron_worker_spec.rb": 19.725370696433103,
"spec/policies/todo_policy_spec.rb": 18.245676795840083,
"spec/tasks/gitlab/click_house/migration_rake_spec.rb": 17.092057679941767,
"spec/lib/api/entities/merge_request_basic_spec.rb": 16.110476577847034,
"spec/lib/gitlab/zentao/client_spec.rb": 15.24298715917926,
"spec/models/ci/variable_spec.rb": 14.255005849966594,
"spec/finders/concerns/finder_with_cross_project_access_spec.rb": 13.495284633961646,
"spec/policies/ci/runner_policy_spec.rb": 12.768121101648862,
"spec/services/ci/components/fetch_service_spec.rb": 11.72210630201641,
"spec/presenters/clusters/cluster_presenter_spec.rb": 11.22808568875325,
"spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb": 10.904729612786927,
"spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb": 10.26507799280353,
"spec/lib/gitlab/checks/commits_check_spec.rb": 9.950761953031215,
"spec/services/deployments/update_service_spec.rb": 9.71739770971954,
"spec/models/members/last_group_owner_assigner_spec.rb": 8.839306029010881,
"spec/models/protected_tag_spec.rb": 8.560407573849727,
"spec/lib/gitlab/checks/lfs_integrity_spec.rb": 8.245443316908233,
"spec/lib/gitlab/current_settings_spec.rb": 7.751214174825176,
"spec/policies/personal_snippet_policy_spec.rb": 7.468001780413691,
"spec/workers/new_issue_worker_spec.rb": 7.0251736742355115,
"spec/lib/gitlab/background_migration/delete_stale_packages_npm_metadata_caches_spec.rb": 6.783427975384247,
"spec/graphql/resolvers/projects_resolver_spec.rb": 6.592510361917976,
"spec/lib/gitlab/bitbucket_import/importers/pull_request_importer_spec.rb": 6.30447218739993,
"spec/lib/gitlab/background_migration/backfill_issues_dates_with_work_item_dates_sources_spec.rb": 6.134671004580415,
"spec/models/legacy_diff_discussion_spec.rb": 5.844975018336688,
"spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb": 5.809057308001449,
"spec/models/packages/debian/group_distribution_spec.rb": 5.421330224838378,
"spec/services/packages/debian/create_distribution_service_spec.rb": 5.395400991149111,
"spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb": 5.038785685792516,
"spec/services/users/create_service_spec.rb": 4.947672435361466,
"spec/services/ci/change_variable_service_spec.rb": 4.713974570716793,
"spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 4.61679314559512,
"spec/services/ci/test_failure_history_service_spec.rb": 4.393669348043042,
"spec/services/git/base_hooks_service_spec.rb": 4.299465095441608,
"spec/services/bulk_imports/repository_bundle_export_service_spec.rb": 4.103813769521954,
"spec/services/ci/pipelines/update_metadata_service_spec.rb": 4.0482072335283075,
"spec/services/integrations/slack_installation/instance_service_spec.rb": 3.803728097565996,
"spec/finders/projects/ml/candidate_finder_spec.rb": 3.768601874358052,
"spec/lib/gitlab/database/namespace_project_ids_each_batch_spec.rb": 3.5549848772806802,
"spec/workers/integrations/create_external_cross_reference_worker_spec.rb": 3.493011487134088,
"spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 3.317961386842667,
"spec/models/namespaces/descendants_spec.rb": 3.2847782386015556,
"spec/lib/gitlab/sidekiq_middleware_spec.rb": 3.0715348216945686,
"spec/services/work_items/delete_service_spec.rb": 3.046263630723872,
"spec/lib/banzai/filter/autolink_filter_spec.rb": 2.8490397495191973,
"spec/services/import/source_users/update_service_spec.rb": 2.837311259802155,
"spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb": 2.685508683802958,
"spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb": 2.679712429911036,
"spec/routing/admin_routing_spec.rb": 2.570944487704421,
"spec/services/projects/detect_repository_languages_service_spec.rb": 2.516009633296388,
"spec/policies/gitlab/git/tag_policy_spec.rb": 2.4391563359932302,
"spec/services/click_house/sync_strategies/audit_event_sync_strategy_spec.rb": 2.3606568006212223,
"spec/services/merge_requests/mergeability/run_checks_service_spec.rb": 2.2815003096178126,
"spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb": 2.2287795947913773,
"spec/finders/groups/accepting_project_transfers_finder_spec.rb": 2.14965270697388,
"spec/graphql/types/alert_management/prometheus_integration_type_spec.rb": 2.092672230599948,
"spec/graphql/types/diff_type_spec.rb": 2.027686093591234,
"spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb": 1.9984603586003606,
"spec/views/layouts/devise_empty.html.haml_spec.rb": 1.905859977566589,
"spec/services/branch_rules/base_service_spec.rb": 1.8835837839080158,
"spec/lib/gitlab/database/health_status/indicators/wal_rate_spec.rb": 1.8027728536115148,
"spec/lib/gitlab/ci/pipeline/chain/create_spec.rb": 1.774761614617268,
"spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb": 1.7261078073546798,
"spec/services/alert_management/metric_images/upload_service_spec.rb": 1.6856276479925107,
"spec/lib/gitlab/harbor/query_spec.rb": 1.6531285676758891,
"spec/lib/gitlab/usage/metrics/instrumentations/count_projects_metric_spec.rb": 1.6070198350357763,
"spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb": 1.5590740572795168,
"spec/lib/gitlab/middleware/read_only_spec.rb": 1.510178388044113,
"spec/workers/packages/helm/extraction_worker_spec.rb": 1.4777815107245402,
"spec/lib/gitlab/jira_import/handle_labels_service_spec.rb": 1.4434720836545682,
"spec/lib/api/entities/branch_spec.rb": 1.4041851047206366,
"spec/views/projects/pages/new.html.haml_spec.rb": 1.367400732846235,
"spec/services/clusters/cleanup/service_account_service_spec.rb": 1.3077038658536588,
"spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_gbp_metric_spec.rb": 1.293647745146125,
"spec/services/bulk_imports/file_decompression_service_spec.rb": 1.2172411449800837,
"spec/lib/gitlab/rack_attack/user_allowlist_spec.rb": 1.2096549165188364,
"spec/lib/gitlab/ci/config/entry/environment_spec.rb": 1.1658995317719065,
"spec/services/packages/npm/create_metadata_cache_service_spec.rb": 1.1198603292150442,
"spec/workers/ml/experiment_tracking/associate_ml_candidate_to_package_worker_spec.rb": 1.1001643703279789,
"spec/models/integrations/apple_app_store_spec.rb": 1.040079307806206,
"spec/graphql/resolvers/commit_pipelines_resolver_spec.rb": 1.0161680340571357,
"spec/rubocop/cop/static_translation_definition_spec.rb": 0.9589313418025093,
"spec/workers/ci/pipeline_bridge_status_worker_spec.rb": 0.9285531836188252,
"spec/workers/clusters/agents/delete_expired_events_worker_spec.rb": 0.8686658397636388,
"spec/lib/api/helpers/packages/npm_spec.rb": 0.8444861178118397,
"spec/tooling/danger/feature_flag_spec.rb": 0.8247999713147219,
"spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb": 0.7757209131063814,
"spec/lib/gitlab/usage/event_selection_rule_spec.rb": 0.77157699547933,
"spec/serializers/group_link/group_link_entity_spec.rb": 0.7217603763045917,
"spec/lib/click_house/iterator_spec.rb": 0.7195383416685057,
"spec/support_specs/database/multiple_databases_helpers_spec.rb": 0.668178773097806,
"spec/models/ml/candidate_metadata_spec.rb": 0.6672779714236052,
"spec/workers/gitlab/import/stuck_import_job_spec.rb": 0.6289332947169115,
"spec/lib/gitlab/bitbucket_import/parallel_scheduling_spec.rb": 0.6243043377026555,
"spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb": 0.5866688094594905,
"spec/lib/gitlab/private_commit_email_spec.rb": 0.5762228915095802,
"spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb": 0.5395860866954285,
"spec/lib/gitlab/import/metrics_spec.rb": 0.5287088725826418,
"spec/tooling/danger/datateam_spec.rb": 0.4960991233251081,
"spec/lib/gitlab/api_authentication/builder_spec.rb": 0.4802837226600647,
"spec/rubocop/cop/gitlab/avoid_gitlab_instance_checks_spec.rb": 0.4481661250940518,
"spec/presenters/issue_email_participant_presenter_spec.rb": 0.43322630580391913,
"spec/models/attr_encrypted_patches_spec.rb": 0.39780967782183707,
"spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 0.39637032630374425,
"spec/lib/gitlab/spamcheck/result_spec.rb": 0.38272132313873575,
"spec/presenters/environment_presenter_spec.rb": 0.35226765367832213,
"spec/helpers/calendar_helper_spec.rb": 0.3419737544002433,
"spec/lib/gitlab/webpack/manifest_spec.rb": 0.3273434164858552,
"spec/graphql/types/terraform/state_type_spec.rb": 0.3196351000684797,
"spec/models/concerns/legacy_bulk_insert_spec.rb": 0.3000123755762333,
"spec/graphql/types/container_registry/protection/rule_type_spec.rb": 0.2935770609453533,
"spec/rubocop/cop/api/ensure_string_detail_spec.rb": 0.2810783187861813,
"spec/lib/gitlab/auth/key_status_checker_spec.rb": 0.2689563526242832,
"spec/lib/sidebars/user_settings/menus/notifications_menu_spec.rb": 0.2650659455883917,
"spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb": 0.24847248894665355,
"spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb": 0.24543888849040457,
"spec/serializers/ci/pipeline_schedule_entity_spec.rb": 0.2286113109480331,
"spec/rubocop/cop/code_reuse/worker_spec.rb": 0.2282367202411864,
"spec/models/namespaces/randomized_suffix_path_spec.rb": 0.21802044240182175,
"spec/lib/gitlab/github_import/representation/user_spec.rb": 0.2104200911826291,
"spec/models/work_items/widgets/start_and_due_date_spec.rb": 0.2010823279566138,
"spec/graphql/mutations/users/saved_replies/destroy_spec.rb": 0.20016558550034283,
"spec/views/devise/shared/_error_messages.html.haml_spec.rb": 0.19286742983833935,
"spec/lib/gitlab/ci/config/entry/imageable_spec.rb": 0.1808374371392163,
"spec/lib/gitlab/error_tracking/processor/sanitizer_processor_spec.rb": 0.17894427885556813,
"spec/graphql/types/error_tracking/sentry_error_type_spec.rb": 0.1659705107262055,
"spec/lib/banzai/pipeline/email_pipeline_spec.rb": 0.16409156505258543,
"spec/lib/gitlab/sidekiq_middleware/pause_control_spec.rb": 0.15491323816890126,
"spec/rubocop/cop/performance/active_record_subtransactions_spec.rb": 0.15309856886322407,
"spec/helpers/ci/pipeline_schedules_helper_spec.rb": 0.14256384189169236,
"spec/lib/gitlab/utils/log_limited_array_spec.rb": 0.14049168930646294,
"spec/lib/gitlab/middleware/rails_queue_duration_spec.rb": 0.13185417094521112,
"spec/rubocop/cop/graphql/enum_names_spec.rb": 0.1292132856261497,
"spec/lib/gitlab/view/presenter/factory_spec.rb": 0.12275657127928558,
"spec/graphql/types/group_member_type_spec.rb": 0.12082899823365381,
"spec/presenters/key_presenter_spec.rb": 0.11476428664615382,
"spec/graphql/types/alert_management/alert_type_spec.rb": 0.10966580721639123,
"spec/initializers/rack_multipart_patch_spec.rb": 0.1040974630306683,
"spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb": 0.09861153172478898,
"spec/rubocop/cop/database/establish_connection_spec.rb": 0.09745429655855904,
"spec/graphql/types/release_assets_input_type_spec.rb": 0.0934273635539255,
"spec/lib/gitlab/git/bundle_file_spec.rb": 0.09224880529047859,
"spec/graphql/types/project_member_relation_enum_spec.rb": 0.0867382128810084,
"spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb": 0.08457605302205898,
"spec/views/help/drawers.html.haml_spec.rb": 0.07903368851638257,
"spec/graphql/types/security/codequality_reports_comparer/status_enum_spec.rb": 0.07435912272901166,
"spec/lib/gitlab/middleware/sidekiq_web_static_spec.rb": 0.07229450778643351,
"spec/graphql/types/ci/config/job_restriction_type_spec.rb": 0.07160137954731588,
"spec/graphql/types/tree/submodule_type_spec.rb": 0.07010790216433258,
"spec/lib/gitlab/ci/config/external/mapper/base_spec.rb": 0.06927956768188054,
"spec/graphql/types/packages/terraform_module/metadatum/output_type_spec.rb": 0.06749201582426115,
"spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb": 0.06660251781880683,
"spec/graphql/types/availability_enum_spec.rb": 0.06281258318796985,
"spec/initializers/session_store_spec.rb": 0.05815398065043545,
"spec/routing/projects/security/configuration_controller_routing_spec.rb": 0.047315818080198066,
"spec/lib/gitlab/ci/reports/sbom/metadata_spec.rb": 0.04520618039625306,
"spec/graphql/types/work_items/email_participant_type_spec.rb": 0.043555332248617226,
"spec/graphql/types/packages/terraform_module/metadatum/example_type_spec.rb": 0.04260166146560079,
"spec/serializers/integrations/project_serializer_spec.rb": 0.04156362493131844,
"spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb": 0.04011465949727753
}
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-8181075816.json --format RspecJunitFormatter --out rspec/rspec-8181075816.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/models/merge_request_diff_spec.rb spec/lib/gitlab/background_migration/fix_allow_descendants_override_disabled_shared_runners_spec.rb spec/models/ci/bridge_spec.rb spec/finders/issues_finder_spec.rb spec/services/ci/retry_pipeline_service_spec.rb spec/views/search/_results.html.haml_spec.rb spec/lib/gitlab/background_migration/backfill_merge_request_reviewers_project_id_spec.rb spec/finders/merge_request_target_project_finder_spec.rb spec/lib/gitlab/background_migration/backfill_packages_package_files_project_id_spec.rb spec/services/milestones/transfer_service_spec.rb spec/models/merge_request_diff_commit_spec.rb spec/services/merge_requests/link_lfs_objects_service_spec.rb spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb spec/workers/database/batched_background_migration_worker_spec.rb spec/lib/gitlab/ci/badge/pipeline/status_spec.rb spec/finders/ci/pipelines_for_merge_request_finder_spec.rb spec/lib/gitlab/relative_positioning/item_context_spec.rb spec/workers/resource_access_tokens/inactive_tokens_deletion_cron_worker_spec.rb spec/policies/todo_policy_spec.rb spec/tasks/gitlab/click_house/migration_rake_spec.rb spec/lib/api/entities/merge_request_basic_spec.rb spec/lib/gitlab/zentao/client_spec.rb spec/models/ci/variable_spec.rb spec/finders/concerns/finder_with_cross_project_access_spec.rb spec/policies/ci/runner_policy_spec.rb spec/services/ci/components/fetch_service_spec.rb spec/presenters/clusters/cluster_presenter_spec.rb spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb spec/lib/gitlab/checks/commits_check_spec.rb spec/services/deployments/update_service_spec.rb spec/models/members/last_group_owner_assigner_spec.rb spec/models/protected_tag_spec.rb spec/lib/gitlab/checks/lfs_integrity_spec.rb spec/lib/gitlab/current_settings_spec.rb spec/policies/personal_snippet_policy_spec.rb spec/workers/new_issue_worker_spec.rb spec/lib/gitlab/background_migration/delete_stale_packages_npm_metadata_caches_spec.rb spec/graphql/resolvers/projects_resolver_spec.rb spec/lib/gitlab/bitbucket_import/importers/pull_request_importer_spec.rb spec/lib/gitlab/background_migration/backfill_issues_dates_with_work_item_dates_sources_spec.rb spec/models/legacy_diff_discussion_spec.rb spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb spec/models/packages/debian/group_distribution_spec.rb spec/services/packages/debian/create_distribution_service_spec.rb spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb spec/services/users/create_service_spec.rb spec/services/ci/change_variable_service_spec.rb spec/graphql/resolvers/merge_requests_count_resolver_spec.rb spec/services/ci/test_failure_history_service_spec.rb spec/services/git/base_hooks_service_spec.rb spec/services/bulk_imports/repository_bundle_export_service_spec.rb spec/services/ci/pipelines/update_metadata_service_spec.rb spec/services/integrations/slack_installation/instance_service_spec.rb spec/finders/projects/ml/candidate_finder_spec.rb spec/lib/gitlab/database/namespace_project_ids_each_batch_spec.rb spec/workers/integrations/create_external_cross_reference_worker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb spec/models/namespaces/descendants_spec.rb spec/lib/gitlab/sidekiq_middleware_spec.rb spec/services/work_items/delete_service_spec.rb spec/lib/banzai/filter/autolink_filter_spec.rb spec/services/import/source_users/update_service_spec.rb spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb spec/routing/admin_routing_spec.rb spec/services/projects/detect_repository_languages_service_spec.rb spec/policies/gitlab/git/tag_policy_spec.rb spec/services/click_house/sync_strategies/audit_event_sync_strategy_spec.rb spec/services/merge_requests/mergeability/run_checks_service_spec.rb spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb spec/finders/groups/accepting_project_transfers_finder_spec.rb spec/graphql/types/alert_management/prometheus_integration_type_spec.rb spec/graphql/types/diff_type_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb spec/views/layouts/devise_empty.html.haml_spec.rb spec/services/branch_rules/base_service_spec.rb spec/lib/gitlab/database/health_status/indicators/wal_rate_spec.rb spec/lib/gitlab/ci/pipeline/chain/create_spec.rb spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb spec/services/alert_management/metric_images/upload_service_spec.rb spec/lib/gitlab/harbor/query_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_metric_spec.rb spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb spec/lib/gitlab/middleware/read_only_spec.rb spec/workers/packages/helm/extraction_worker_spec.rb spec/lib/gitlab/jira_import/handle_labels_service_spec.rb spec/lib/api/entities/branch_spec.rb spec/views/projects/pages/new.html.haml_spec.rb spec/services/clusters/cleanup/service_account_service_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_gbp_metric_spec.rb spec/services/bulk_imports/file_decompression_service_spec.rb spec/lib/gitlab/rack_attack/user_allowlist_spec.rb spec/lib/gitlab/ci/config/entry/environment_spec.rb spec/services/packages/npm/create_metadata_cache_service_spec.rb spec/workers/ml/experiment_tracking/associate_ml_candidate_to_package_worker_spec.rb spec/models/integrations/apple_app_store_spec.rb spec/graphql/resolvers/commit_pipelines_resolver_spec.rb spec/rubocop/cop/static_translation_definition_spec.rb spec/workers/ci/pipeline_bridge_status_worker_spec.rb spec/workers/clusters/agents/delete_expired_events_worker_spec.rb spec/lib/api/helpers/packages/npm_spec.rb spec/tooling/danger/feature_flag_spec.rb spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb spec/lib/gitlab/usage/event_selection_rule_spec.rb spec/serializers/group_link/group_link_entity_spec.rb spec/lib/click_house/iterator_spec.rb spec/support_specs/database/multiple_databases_helpers_spec.rb spec/models/ml/candidate_metadata_spec.rb spec/workers/gitlab/import/stuck_import_job_spec.rb spec/lib/gitlab/bitbucket_import/parallel_scheduling_spec.rb spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb spec/lib/gitlab/private_commit_email_spec.rb spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb spec/lib/gitlab/import/metrics_spec.rb spec/tooling/danger/datateam_spec.rb spec/lib/gitlab/api_authentication/builder_spec.rb spec/rubocop/cop/gitlab/avoid_gitlab_instance_checks_spec.rb spec/presenters/issue_email_participant_presenter_spec.rb spec/models/attr_encrypted_patches_spec.rb spec/lib/bitbucket/representation/pull_request_comment_spec.rb spec/lib/gitlab/spamcheck/result_spec.rb spec/presenters/environment_presenter_spec.rb spec/helpers/calendar_helper_spec.rb spec/lib/gitlab/webpack/manifest_spec.rb spec/graphql/types/terraform/state_type_spec.rb spec/models/concerns/legacy_bulk_insert_spec.rb spec/graphql/types/container_registry/protection/rule_type_spec.rb spec/rubocop/cop/api/ensure_string_detail_spec.rb spec/lib/gitlab/auth/key_status_checker_spec.rb spec/lib/sidebars/user_settings/menus/notifications_menu_spec.rb spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb spec/serializers/ci/pipeline_schedule_entity_spec.rb spec/rubocop/cop/code_reuse/worker_spec.rb spec/models/namespaces/randomized_suffix_path_spec.rb spec/lib/gitlab/github_import/representation/user_spec.rb spec/models/work_items/widgets/start_and_due_date_spec.rb spec/graphql/mutations/users/saved_replies/destroy_spec.rb spec/views/devise/shared/_error_messages.html.haml_spec.rb spec/lib/gitlab/ci/config/entry/imageable_spec.rb spec/lib/gitlab/error_tracking/processor/sanitizer_processor_spec.rb spec/graphql/types/error_tracking/sentry_error_type_spec.rb spec/lib/banzai/pipeline/email_pipeline_spec.rb spec/lib/gitlab/sidekiq_middleware/pause_control_spec.rb spec/rubocop/cop/performance/active_record_subtransactions_spec.rb spec/helpers/ci/pipeline_schedules_helper_spec.rb spec/lib/gitlab/utils/log_limited_array_spec.rb spec/lib/gitlab/middleware/rails_queue_duration_spec.rb spec/rubocop/cop/graphql/enum_names_spec.rb spec/lib/gitlab/view/presenter/factory_spec.rb spec/graphql/types/group_member_type_spec.rb spec/presenters/key_presenter_spec.rb spec/graphql/types/alert_management/alert_type_spec.rb spec/initializers/rack_multipart_patch_spec.rb spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb spec/rubocop/cop/database/establish_connection_spec.rb spec/graphql/types/release_assets_input_type_spec.rb spec/lib/gitlab/git/bundle_file_spec.rb spec/graphql/types/project_member_relation_enum_spec.rb spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb spec/views/help/drawers.html.haml_spec.rb spec/graphql/types/security/codequality_reports_comparer/status_enum_spec.rb spec/lib/gitlab/middleware/sidekiq_web_static_spec.rb spec/graphql/types/ci/config/job_restriction_type_spec.rb spec/graphql/types/tree/submodule_type_spec.rb spec/lib/gitlab/ci/config/external/mapper/base_spec.rb spec/graphql/types/packages/terraform_module/metadatum/output_type_spec.rb spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb spec/graphql/types/availability_enum_spec.rb spec/initializers/session_store_spec.rb spec/routing/projects/security/configuration_controller_routing_spec.rb spec/lib/gitlab/ci/reports/sbom/metadata_spec.rb spec/graphql/types/work_items/email_participant_type_spec.rb spec/graphql/types/packages/terraform_module/metadatum/example_type_spec.rb spec/serializers/integrations/project_serializer_spec.rb spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb spec/lib/omni_auth/strategies/jwt_spec.rbKnapsack report generator started!
/builds/gitlab-org/gitlab/vendor/ruby/3.2.0/gems/io-event-1.6.5/lib/io/event/support.rb:27: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future!
Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>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.185269358 seconds
# [RSpecRunTime] Starting example group spec/models/merge_request_diff_spec.rb. Expected to take 8 minutes 25.97 seconds.
MergeRequestDiff
does not allow STI
validations
is expected not to validate that :diff_type is case-sensitively unique within the scope of :merge_request_id
checks sha format of base_commit_sha, head_commit_sha and start_commit_sha
does not validate uniqueness by default
when merge request diff is a merge_head type
is valid
when merge_head diff exists
validates uniqueness
create new record
is expected to be valid
is expected to be persisted
is expected to eq 29
is expected to eq 20
is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"
is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"
is expected to eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"
is expected to eq "1e05e04d4c2a6414d9d4ab38208511a3bbe715f2"
calls GraphqlTriggers.merge_request_diff_generated
creates hidden refs
when diff_type is merge_head
is expected to be valid
is expected to be persisted
is expected to eq 30
is expected to eq 20
is expected to eq "842f3edc264adba59a7711e7fe53e7ace1dd99d2"
is expected to eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"
is expected to eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"
creates hidden refs
# [RSpecRunTime] RSpec elapsed time: 57.11 seconds. Current RSS: ~1255M. Threads: 4. load average: 1.35 1.27 1.20 1/297 2867
.
.by_head_commit_sha
with given sha equal to the diff's head_commit_sha
returns the merge request diff
# [RSpecRunTime] RSpec elapsed time: 59.24 seconds. Current RSS: ~1256M. Threads: 4. load average: 1.35 1.27 1.20 1/297 2925
.
with given sha not equal to any diff's head_commit_sha
returns an empty result
# [RSpecRunTime] RSpec elapsed time: 1 minute 0.95 second. Current RSS: ~1257M. Threads: 4. load average: 1.35 1.27 1.20 1/297 2983
.
.by_commit_sha
with sha contained in
returns merge request diffs
# [RSpecRunTime] RSpec elapsed time: 1 minute 2.6 seconds. Current RSS: ~1258M. Threads: 4. load average: 1.32 1.26 1.20 1/297 3042
.
with sha not contained in
returns empty result
# [RSpecRunTime] RSpec elapsed time: 1 minute 4.28 seconds. Current RSS: ~1260M. Threads: 4. load average: 1.32 1.26 1.20 1/298 3101
.
.ids_for_external_storage_migration
external diffs are disabled
is expected to be empty
# [RSpecRunTime] RSpec elapsed time: 1 minute 11.61 seconds. Current RSS: ~1292M. Threads: 4. load average: 1.35 1.27 1.20 1/299 3415
.
external diffs are misconfigured
is expected to be empty
external diffs are enabled unconditionally
is expected to contain exactly 36, 37, 39, 40, 41, 42, and 38
ignores diffs with 0 files
external diffs are enabled for outdated diffs
returns records for outdated merge request versions
with limit
respects the limit
#ensure_project_id
when project_id is null
is expected to change `MergeRequestDiff#project_id` from nil to 33
# [RSpecRunTime] RSpec elapsed time: 1 minute 13.3 seconds. Current RSS: ~1294M. Threads: 4. load average: 1.35 1.27 1.20 1/299 3468
.
when project_id is already set
is expected not to change `MergeRequestDiff#project_id`
#update_external_diff_store
change_stored_externally: false, change_external_diff: false
is expected not to receive update_column(:external_diff_store, 1) 0 times
# [RSpecRunTime] RSpec elapsed time: 1 minute 15.46 seconds. Current RSS: ~1290M. Threads: 4. load average: 1.35 1.27 1.20 1/299 3529
.
change_stored_externally: false, change_external_diff: true
is expected to receive update_column(:external_diff_store, 1) 1 time
change_stored_externally: true, change_external_diff: false
is expected to receive update_column(:external_diff_store, 1) 1 time
change_stored_externally: true, change_external_diff: true
is expected to receive update_column(:external_diff_store, 1) 1 time
#migrate_files_to_external_storage!
converts from in-database to external file storage
migrates a nil diff file
safely handles a transaction error when migrating to external storage
converts from in-database to external object storage
does nothing with an external diff
does nothing if external diffs are disabled
diff adds an empty file
migrates the diff to object storage
# [RSpecRunTime] RSpec elapsed time: 1 minute 27.52 seconds. Current RSS: ~1275M. Threads: 4. load average: 1.41 1.29 1.21 1/299 3966
.
#migrate_files_to_database!
converts from external to in-database storage
does nothing with an in-database diff
does nothing with an empty diff
# [RSpecRunTime] RSpec elapsed time: 1 minute 32.49 seconds. Current RSS: ~1273M. Threads: 4. load average: 1.38 1.29 1.21 1/299 4139
.
#latest?
is expected to be latest
is expected not to be latest
# [RSpecRunTime] RSpec elapsed time: 1 minute 36.6 seconds. Current RSS: ~1273M. Threads: 4. load average: 1.35 1.28 1.21 1/299 4323
.
internal diffs configured
when it was not cleaned by the system
returns persisted diffs
# [RSpecRunTime] RSpec elapsed time: 1 minute 38.29 seconds. Current RSS: ~1272M. Threads: 4. load average: 1.35 1.28 1.21 1/299 4384
.
when diff was cleaned by the system
returns diffs from repository if can compare with current diff refs
returns persisted diffs if cannot compare with diff refs
returns persisted diffs if diff refs does not exist
# [RSpecRunTime] RSpec elapsed time: 1 minute 43.4 seconds. Current RSS: ~1274M. Threads: 4. load average: 1.32 1.28 1.21 1/299 4558
.
#diffs_in_batch
when no persisted files available
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
returns empty pagination data
measures diffs_comparison
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 1 minute 51.66 seconds. Current RSS: ~1277M. Threads: 4. load average: 1.27 1.27 1.20 1/299 4866
.
when diff_options include ignore_whitespace_change
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
returns empty pagination data
measures diffs_comparison
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 1 minute 59.89 seconds. Current RSS: ~1278M. Threads: 4. load average: 1.41 1.30 1.21 1/298 5173
.
behaves like perform generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 2 minutes 1.66 seconds. Current RSS: ~1278M. Threads: 4. load average: 1.62 1.34 1.23 1/298 5239
.
when persisted files available
returns paginated diffs
sorts diff files directory first
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 2 minutes 6.63 seconds. Current RSS: ~1279M. Threads: 4. load average: 1.57 1.33 1.23 1/298 5414
.
when diff_options include ignore_whitespace_change
returns pagination data from MergeRequestDiffBatch
returns an empty MergeRequestBatch with empty pagination data when the batch is empty
behaves like perform generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 2 minutes 11.63 seconds. Current RSS: ~1279M. Threads: 4. load average: 1.52 1.33 1.23 1/299 5605
.
#paginated_diffs
when no persisted files available
returns a Gitlab::Diff::FileCollection::Compare
behaves like diffs with generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 2 minutes 15.07 seconds. Current RSS: ~1281M. Threads: 4. load average: 1.52 1.33 1.23 1/299 5736
.
when persisted files available
returns paginated diffs
sorts diff files directory first
behaves like diffs with generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 2 minutes 20.1 seconds. Current RSS: ~1282M. Threads: 4. load average: 1.48 1.32 1.23 1/299 5911
.
#diffs
when no persisted files available
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
# [RSpecRunTime] RSpec elapsed time: 2 minutes 23.48 seconds. Current RSS: ~1283M. Threads: 4. load average: 1.44 1.32 1.22 1/299 6031
.
when diff_options include ignore_whitespace_change
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
# [RSpecRunTime] RSpec elapsed time: 2 minutes 26.82 seconds. Current RSS: ~1284M. Threads: 4. load average: 1.41 1.31 1.22 1/299 6150
.
when persisted files available
returns diffs
sorts diff files directory first
# [RSpecRunTime] RSpec elapsed time: 2 minutes 30.35 seconds. Current RSS: ~1285M. Threads: 4. load average: 1.41 1.31 1.22 1/299 6268
.
#raw_diffs
when the :ignore_whitespace_change option is set
creates a new compare object instead of using preprocessed data
# [RSpecRunTime] RSpec elapsed time: 2 minutes 32.06 seconds. Current RSS: ~1285M. Threads: 4. load average: 1.45 1.32 1.23 1/299 6329
.
when the raw diffs are empty
returns an empty DiffCollection
# [RSpecRunTime] RSpec elapsed time: 2 minutes 33.84 seconds. Current RSS: ~1287M. Threads: 4. load average: 1.45 1.32 1.23 1/299 6387
.
when the raw diffs exist
returns the diffs
when the :paths option is set
only returns diffs that match the (old path, new path) given
only serializes diff files found by query
uses the preprocessed diffs
# [RSpecRunTime] RSpec elapsed time: 2 minutes 40.32 seconds. Current RSS: ~1287M. Threads: 4. load average: 1.42 1.32 1.23 1/300 6618
.
#set_patch_id_sha
sets the patch_id_sha attribute
when base_commit_sha is nil
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 2 minutes 43.64 seconds. Current RSS: ~1291M. Threads: 4. load average: 1.54 1.35 1.24 1/300 6737
.
when head_commit_sha is nil
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 2 minutes 45.34 seconds. Current RSS: ~1291M. Threads: 4. load average: 1.54 1.35 1.24 1/299 6796
.
when head_commit_sha and base_commit_sha match
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 2 minutes 46.99 seconds. Current RSS: ~1292M. Threads: 4. load average: 1.50 1.34 1.23 1/299 6857
.
#get_patch_id_sha
when the patch_id exists on the model
returns the patch_id
# [RSpecRunTime] RSpec elapsed time: 2 minutes 48.67 seconds. Current RSS: ~1291M. Threads: 4. load average: 1.50 1.34 1.23 1/299 6915
.
when the patch_id does not exist on the model
retrieves the patch id, saves the model, and returns it
when base_sha is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 2 minutes 52.04 seconds. Current RSS: ~1292M. Threads: 4. load average: 1.62 1.37 1.24 1/299 7033
.
when head_sha is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 2 minutes 53.75 seconds. Current RSS: ~1293M. Threads: 4. load average: 1.62 1.37 1.24 1/299 7092
.
when base_sha and head_sha dont match
returns nil
# [RSpecRunTime] RSpec elapsed time: 2 minutes 55.53 seconds. Current RSS: ~1294M. Threads: 4. load average: 1.62 1.37 1.24 1/299 7152
.
#save_diffs
saves collected state
saves overflow state
saves empty state
persists diff files sorted directory first
expands collapsed diffs before saving
saves binary diffs correctly
with diffs that contain a null byte
saves diffs correctly
# [RSpecRunTime] RSpec elapsed time: 3 minutes 6.23 seconds. Current RSS: ~1308M. Threads: 4. load average: 1.52 1.36 1.24 1/300 7584
.
handling generated files
sets generated field correctly
# [RSpecRunTime] RSpec elapsed time: 3 minutes 8.05 seconds. Current RSS: ~1303M. Threads: 4. load average: 1.48 1.35 1.24 1/300 7754
.
external diffs on disk always enabled
when it was not cleaned by the system
returns persisted diffs
# [RSpecRunTime] RSpec elapsed time: 3 minutes 9.82 seconds. Current RSS: ~1302M. Threads: 4. load average: 1.48 1.35 1.24 1/300 7813
.
when diff was cleaned by the system
returns diffs from repository if can compare with current diff refs
returns persisted diffs if cannot compare with diff refs
returns persisted diffs if diff refs does not exist
# [RSpecRunTime] RSpec elapsed time: 3 minutes 14.95 seconds. Current RSS: ~1301M. Threads: 4. load average: 1.44 1.34 1.24 1/300 7986
.
#diffs_in_batch
when no persisted files available
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
returns empty pagination data
measures diffs_comparison
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 3 minutes 23.28 seconds. Current RSS: ~1301M. Threads: 4. load average: 1.30 1.32 1.23 1/300 8297
.
when diff_options include ignore_whitespace_change
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
returns empty pagination data
measures diffs_comparison
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 3 minutes 31.72 seconds. Current RSS: ~1301M. Threads: 4. load average: 1.33 1.32 1.23 1/300 8606
.
behaves like perform generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 3 minutes 33.46 seconds. Current RSS: ~1301M. Threads: 4. load average: 1.33 1.32 1.23 1/300 8671
.
when persisted files available
returns paginated diffs
sorts diff files directory first
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 3 minutes 38.48 seconds. Current RSS: ~1301M. Threads: 4. load average: 1.31 1.32 1.23 1/300 8846
.
when diff_options include ignore_whitespace_change
returns pagination data from MergeRequestDiffBatch
returns an empty MergeRequestBatch with empty pagination data when the batch is empty
behaves like perform generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 3 minutes 43.62 seconds. Current RSS: ~1304M. Threads: 4. load average: 1.28 1.31 1.23 1/300 9034
.
#paginated_diffs
when no persisted files available
returns a Gitlab::Diff::FileCollection::Compare
behaves like diffs with generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 3 minutes 47.12 seconds. Current RSS: ~1304M. Threads: 4. load average: 1.26 1.31 1.23 1/300 9166
.
when persisted files available
returns paginated diffs
sorts diff files directory first
behaves like diffs with generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 3 minutes 52.26 seconds. Current RSS: ~1306M. Threads: 4. load average: 1.24 1.30 1.23 1/301 9345
.
#diffs
when no persisted files available
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
# [RSpecRunTime] RSpec elapsed time: 3 minutes 55.66 seconds. Current RSS: ~1306M. Threads: 4. load average: 1.24 1.30 1.23 1/301 9465
.
when diff_options include ignore_whitespace_change
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
# [RSpecRunTime] RSpec elapsed time: 3 minutes 59.05 seconds. Current RSS: ~1308M. Threads: 4. load average: 1.38 1.33 1.24 1/301 9584
.
when persisted files available
returns diffs
sorts diff files directory first
# [RSpecRunTime] RSpec elapsed time: 4 minutes 2.64 seconds. Current RSS: ~1309M. Threads: 4. load average: 1.35 1.32 1.23 1/301 9702
.
#raw_diffs
when the :ignore_whitespace_change option is set
creates a new compare object instead of using preprocessed data
# [RSpecRunTime] RSpec elapsed time: 4 minutes 4.36 seconds. Current RSS: ~1308M. Threads: 4. load average: 1.35 1.32 1.23 1/301 9764
.
when the raw diffs are empty
returns an empty DiffCollection
# [RSpecRunTime] RSpec elapsed time: 4 minutes 6.11 seconds. Current RSS: ~1309M. Threads: 4. load average: 1.35 1.32 1.23 1/301 9823
.
when the raw diffs exist
returns the diffs
when the :paths option is set
only returns diffs that match the (old path, new path) given
only serializes diff files found by query
uses the preprocessed diffs
# [RSpecRunTime] RSpec elapsed time: 4 minutes 12.77 seconds. Current RSS: ~1310M. Threads: 4. load average: 1.37 1.33 1.24 1/301 10054
.
#set_patch_id_sha
sets the patch_id_sha attribute
when base_commit_sha is nil
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 4 minutes 16.2 seconds. Current RSS: ~1310M. Threads: 4. load average: 1.37 1.33 1.24 1/301 10172
.
when head_commit_sha is nil
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 4 minutes 17.92 seconds. Current RSS: ~1312M. Threads: 4. load average: 1.58 1.37 1.25 1/301 10230
.
when head_commit_sha and base_commit_sha match
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 4 minutes 19.68 seconds. Current RSS: ~1313M. Threads: 4. load average: 1.58 1.37 1.25 1/301 10289
.
#get_patch_id_sha
when the patch_id exists on the model
returns the patch_id
# [RSpecRunTime] RSpec elapsed time: 4 minutes 21.42 seconds. Current RSS: ~1315M. Threads: 4. load average: 1.58 1.37 1.25 1/301 10348
.
when the patch_id does not exist on the model
retrieves the patch id, saves the model, and returns it
when base_sha is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 4 minutes 24.78 seconds. Current RSS: ~1315M. Threads: 4. load average: 1.53 1.37 1.25 1/301 10466
.
when head_sha is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 4 minutes 26.54 seconds. Current RSS: ~1315M. Threads: 4. load average: 1.53 1.37 1.25 1/301 10525
.
when base_sha and head_sha dont match
returns nil
# [RSpecRunTime] RSpec elapsed time: 4 minutes 28.27 seconds. Current RSS: ~1315M. Threads: 4. load average: 1.49 1.36 1.25 1/301 10585
.
#save_diffs
saves collected state
saves overflow state
saves empty state
persists diff files sorted directory first
expands collapsed diffs before saving
saves binary diffs correctly
with diffs that contain a null byte
saves diffs correctly
# [RSpecRunTime] RSpec elapsed time: 4 minutes 39.16 seconds. Current RSS: ~1330M. Threads: 4. load average: 1.41 1.35 1.25 1/301 11015
.
handling generated files
sets generated field correctly
# [RSpecRunTime] RSpec elapsed time: 4 minutes 41.01 seconds. Current RSS: ~1323M. Threads: 4. load average: 1.41 1.35 1.25 3/302 11186
.
external diffs in object storage always enabled
empty diff
creates an empty diff
# [RSpecRunTime] RSpec elapsed time: 4 minutes 42.64 seconds. Current RSS: ~1323M. Threads: 4. load average: 1.38 1.34 1.25 1/302 11236
.
normal diff
creates a diff in object storage
# [RSpecRunTime] RSpec elapsed time: 4 minutes 44.41 seconds. Current RSS: ~1322M. Threads: 4. load average: 1.38 1.34 1.25 1/301 11296
.
diff adding an empty file
creates a diff in object storage
# [RSpecRunTime] RSpec elapsed time: 4 minutes 46.16 seconds. Current RSS: ~1323M. Threads: 4. load average: 1.38 1.34 1.25 1/301 11385
.
exernal diffs enabled for outdated diffs
stores up-to-date diffs in the database
stores diffs for recently closed MRs in the database
stores diffs for recently merged MRs in the database
stores diffs for old MR versions in external storage
stores diffs for old closed MRs in external storage
stores diffs for old merged MRs in external storage
when it was not cleaned by the system
returns persisted diffs
# [RSpecRunTime] RSpec elapsed time: 4 minutes 57.9 seconds. Current RSS: ~1325M. Threads: 4. load average: 1.30 1.32 1.24 1/301 11806
.
when diff was cleaned by the system
returns diffs from repository if can compare with current diff refs
returns persisted diffs if cannot compare with diff refs
returns persisted diffs if diff refs does not exist
# [RSpecRunTime] RSpec elapsed time: 5 minutes 3.01 seconds. Current RSS: ~1325M. Threads: 4. load average: 1.27 1.32 1.24 1/301 11979
.
#diffs_in_batch
when no persisted files available
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
returns empty pagination data
measures diffs_comparison
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 5 minutes 11.45 seconds. Current RSS: ~1328M. Threads: 4. load average: 1.25 1.31 1.24 1/301 12285
.
when diff_options include ignore_whitespace_change
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
returns empty pagination data
measures diffs_comparison
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 5 minutes 19.87 seconds. Current RSS: ~1329M. Threads: 4. load average: 1.21 1.30 1.24 1/306 12593
.
behaves like perform generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 5 minutes 21.65 seconds. Current RSS: ~1329M. Threads: 4. load average: 1.27 1.31 1.24 1/303 12658
.
when persisted files available
returns paginated diffs
sorts diff files directory first
behaves like measuring diffs metrics
is expected to receive measure(:diffs_collection) 1 time
# [RSpecRunTime] RSpec elapsed time: 5 minutes 26.77 seconds. Current RSS: ~1329M. Threads: 4. load average: 1.25 1.31 1.24 1/303 12833
.
when diff_options include ignore_whitespace_change
returns pagination data from MergeRequestDiffBatch
returns an empty MergeRequestBatch with empty pagination data when the batch is empty
behaves like perform generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 5 minutes 31.96 seconds. Current RSS: ~1331M. Threads: 4. load average: 1.39 1.34 1.25 1/303 13021
.
#paginated_diffs
when no persisted files available
returns a Gitlab::Diff::FileCollection::Compare
behaves like diffs with generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 5 minutes 35.47 seconds. Current RSS: ~1332M. Threads: 4. load average: 1.39 1.34 1.25 1/303 13152
.
when persisted files available
returns paginated diffs
sorts diff files directory first
behaves like diffs with generated files check
checks generated files
# [RSpecRunTime] RSpec elapsed time: 5 minutes 40.68 seconds. Current RSS: ~1332M. Threads: 4. load average: 1.36 1.33 1.25 3/304 13329
.
#diffs
when no persisted files available
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
# [RSpecRunTime] RSpec elapsed time: 5 minutes 44.21 seconds. Current RSS: ~1334M. Threads: 4. load average: 1.41 1.34 1.25 1/303 13449
.
when diff_options include ignore_whitespace_change
behaves like fetching full diffs
returns diffs from repository comparison
returns a Gitlab::Diff::FileCollection::Compare with full diffs
# [RSpecRunTime] RSpec elapsed time: 5 minutes 47.63 seconds. Current RSS: ~1333M. Threads: 4. load average: 1.38 1.34 1.25 1/303 13568
.
when persisted files available
returns diffs
sorts diff files directory first
# [RSpecRunTime] RSpec elapsed time: 5 minutes 51.11 seconds. Current RSS: ~1335M. Threads: 4. load average: 1.38 1.34 1.25 1/303 13686
.
#raw_diffs
when the :ignore_whitespace_change option is set
creates a new compare object instead of using preprocessed data
# [RSpecRunTime] RSpec elapsed time: 5 minutes 52.81 seconds. Current RSS: ~1335M. Threads: 4. load average: 1.35 1.33 1.25 1/303 13747
.
when the raw diffs are empty
returns an empty DiffCollection
# [RSpecRunTime] RSpec elapsed time: 5 minutes 55.56 seconds. Current RSS: ~1335M. Threads: 4. load average: 1.35 1.33 1.25 1/303 13806
.
when the raw diffs exist
returns the diffs
when the :paths option is set
only returns diffs that match the (old path, new path) given
only serializes diff files found by query
uses the preprocessed diffs
# [RSpecRunTime] RSpec elapsed time: 6 minutes 2.18 seconds. Current RSS: ~1347M. Threads: 4. load average: 1.37 1.34 1.25 1/303 14037
.
#set_patch_id_sha
sets the patch_id_sha attribute
when base_commit_sha is nil
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 6 minutes 5.62 seconds. Current RSS: ~1348M. Threads: 4. load average: 1.37 1.34 1.25 1/303 14154
.
when head_commit_sha is nil
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 6 minutes 7.3 seconds. Current RSS: ~1349M. Threads: 4. load average: 1.34 1.33 1.25 1/303 14213
.
when head_commit_sha and base_commit_sha match
records patch_id_sha as nil
# [RSpecRunTime] RSpec elapsed time: 6 minutes 9.03 seconds. Current RSS: ~1349M. Threads: 4. load average: 1.34 1.33 1.25 1/303 14271
.
#get_patch_id_sha
when the patch_id exists on the model
returns the patch_id
# [RSpecRunTime] RSpec elapsed time: 6 minutes 10.72 seconds. Current RSS: ~1347M. Threads: 4. load average: 1.34 1.33 1.25 1/303 14331
.
when the patch_id does not exist on the model
retrieves the patch id, saves the model, and returns it
when base_sha is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 6 minutes 14.11 seconds. Current RSS: ~1346M. Threads: 4. load average: 1.31 1.32 1.25 1/303 14449
.
when head_sha is nil
returns nil
# [RSpecRunTime] RSpec elapsed time: 6 minutes 15.81 seconds. Current RSS: ~1345M. Threads: 4. load average: 1.31 1.32 1.25 1/303 14507
.
when base_sha and head_sha dont match
returns nil
# [RSpecRunTime] RSpec elapsed time: 6 minutes 17.57 seconds. Current RSS: ~1345M. Threads: 4. load average: 1.29 1.32 1.25 1/303 14568
.
#save_diffs
saves collected state
saves overflow state
saves empty state
persists diff files sorted directory first
expands collapsed diffs before saving
saves binary diffs correctly
with diffs that contain a null byte
saves diffs correctly
# [RSpecRunTime] RSpec elapsed time: 6 minutes 28.46 seconds. Current RSS: ~1351M. Threads: 4. load average: 1.32 1.32 1.25 1/303 15001
.
handling generated files
sets generated field correctly
# [RSpecRunTime] RSpec elapsed time: 6 minutes 30.36 seconds. Current RSS: ~1346M. Threads: 4. load average: 1.32 1.32 1.25 1/303 15172
.
#commit_shas
returns all commit SHAs using commits from the DB
with limit attribute
behaves like limited number of shas
returns limited number of shas
# [RSpecRunTime] RSpec elapsed time: 6 minutes 33.73 seconds. Current RSS: ~1343M. Threads: 4. load average: 1.30 1.32 1.25 1/303 15291
.
with preloaded diff commits
does not trigger any query
behaves like limited number of shas
returns limited number of shas
# [RSpecRunTime] RSpec elapsed time: 6 minutes 37.07 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.35 1.33 1.25 1/303 15406
.
#compare_with
delegates compare to the service
uses git diff A..B approach by default
# [RSpecRunTime] RSpec elapsed time: 6 minutes 40.56 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.35 1.33 1.25 1/304 15524
.
#commits_count
returns number of commits using serialized commits
# [RSpecRunTime] RSpec elapsed time: 6 minutes 42.34 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.40 1.34 1.26 1/303 15582
.
#files_count
is set by default
is set to the sentinel value if the actual value exceeds it
uses the cached count if present
uses the actual count if nil
uses the actual count if overflown
# [RSpecRunTime] RSpec elapsed time: 6 minutes 44.18 seconds. Current RSS: ~1343M. Threads: 4. load average: 1.40 1.34 1.26 1/303 15641
.
#first_commit
returns first commit
# [RSpecRunTime] RSpec elapsed time: 6 minutes 45.87 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.40 1.34 1.26 1/303 15700
.
#last_commit
returns last commit
# [RSpecRunTime] RSpec elapsed time: 6 minutes 47.53 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.37 1.34 1.26 1/303 15758
.
#includes_any_commits?
returns false if passed commits do not exist
returns true if passed commits exists
processes the passed shas in batches
number of existing commits is greater than batch size
performs a separate request for each batch
# [RSpecRunTime] RSpec elapsed time: 6 minutes 52.5 seconds. Current RSS: ~1349M. Threads: 4. load average: 1.50 1.36 1.27 1/303 15931
.
#modified_paths
returns affected file paths
when fallback_on_overflow is true
when the merge_request_diff is overflowed
returns file paths via project.repository#diff_stats
# [RSpecRunTime] RSpec elapsed time: 6 minutes 55.27 seconds. Current RSS: ~1345M. Threads: 4. load average: 1.50 1.36 1.27 1/303 16016
.
when the merge_request_diff is not overflowed
returns expect file paths withoout called #modified_paths_for_overflowed_mr
# [RSpecRunTime] RSpec elapsed time: 6 minutes 56.66 seconds. Current RSS: ~1351M. Threads: 4. load average: 1.54 1.37 1.27 1/303 16043
.
#opening_external_diff
external diffs disabled
is expected not to be exists
yields nil
# [RSpecRunTime] RSpec elapsed time: 7 minutes 0.01 second. Current RSS: ~1353M. Threads: 4. load average: 1.54 1.37 1.27 1/303 16161
.
external diffs enabled
is expected to be exists
yields an open file
is re-entrant
# [RSpecRunTime] RSpec elapsed time: 7 minutes 5.01 seconds. Current RSS: ~1349M. Threads: 4. load average: 1.50 1.37 1.27 1/303 16334
.
#lines_count
returns sum of all changed lines count in diff files
# [RSpecRunTime] RSpec elapsed time: 7 minutes 6.75 seconds. Current RSS: ~1349M. Threads: 4. load average: 1.54 1.38 1.27 1/303 16392
.
#commits
returns a CommitCollection whose container points to the target project
returns a non-empty CommitCollection
with a page
returns a limited number of commits for page
# [RSpecRunTime] RSpec elapsed time: 7 minutes 10.0 seconds. Current RSS: ~1356M. Threads: 4. load average: 1.54 1.38 1.27 1/303 16472
.
.latest_diff_for_merge_requests
loads the latest merge_request_diff record for the given merge requests
loads nothing if the merge request has no diff record
loads nothing if nil was passed as merge_request
# [RSpecRunTime] RSpec elapsed time: 7 minutes 13.22 seconds. Current RSS: ~1368M. Threads: 4. load average: 1.50 1.37 1.27 1/302 16550
.
external diff caching
#cached_external_diff
when diff is externally stored
when diff is already cached
yields cached file
# [RSpecRunTime] RSpec elapsed time: 7 minutes 14.99 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.50 1.37 1.27 1/303 16609
.
when diff is not cached
caches external diff in tmp storage
# [RSpecRunTime] RSpec elapsed time: 7 minutes 16.66 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.46 1.37 1.27 1/303 16667
.
when diff is not externally stored
yields nil
# [RSpecRunTime] RSpec elapsed time: 7 minutes 18.38 seconds. Current RSS: ~1374M. Threads: 4. load average: 1.46 1.37 1.27 1/303 16725
.
#remove_cached_external_diff
removes external diff cache diff
when path is traversed
raises
# [RSpecRunTime] RSpec elapsed time: 7 minutes 21.64 seconds. Current RSS: ~1369M. Threads: 4. load average: 1.42 1.36 1.27 1/303 16841
.
when path is not allowed
raises
# [RSpecRunTime] RSpec elapsed time: 7 minutes 23.38 seconds. Current RSS: ~1364M. Threads: 4. load average: 1.42 1.36 1.27 1/303 16900
.
when dir does not exist
returns
# [RSpecRunTime] RSpec elapsed time: 7 minutes 25.02 seconds. Current RSS: ~1360M. Threads: 4. load average: 1.42 1.36 1.27 1/303 16958
.
#has_encoded_file_paths?
when there are diff files with encoded_file_path as true
returns true
# [RSpecRunTime] RSpec elapsed time: 7 minutes 26.31 seconds. Current RSS: ~1359M. Threads: 4. load average: 1.42 1.36 1.27 1/303 16985
.
when there are no diff files with encoded_file_path as true
returns false
# [RSpecRunTime] RSpec elapsed time: 7 minutes 27.66 seconds. Current RSS: ~1357M. Threads: 4. load average: 1.39 1.35 1.27 2/303 17012
.
# [RSpecRunTime] Finishing example group spec/models/merge_request_diff_spec.rb. It took 7 minutes 18.36 seconds. Expected to take 8 minutes 25.97 seconds.
# [RSpecRunTime] Starting example group spec/models/ci/bridge_spec.rb. Expected to take 1 minute 38.09 seconds.
Ci::Bridge
does not allow STI
has one sourced pipeline
has one downstream pipeline
behaves like has ID tokens
delegations
is expected to delegate #id_tokens to the #metadata object, allowing #metadata to return nil
# [RSpecRunTime] RSpec elapsed time: 7 minutes 32.04 seconds. Current RSS: ~1365M. Threads: 4. load average: 1.35 1.35 1.27 1/302 17031
.
#id_tokens?
without metadata
is expected to be falsy
with metadata
when ID tokens exist
is expected to be truthy
when ID tokens do not exist
is expected to be falsy
#id_tokens=
assigns the ID tokens to the CI job
behaves like a retryable job
#enqueue_immediately?
defaults to false
#set_enqueue_immediately!
changes #enqueue_immediately? to true
behaves like a deployable job
is expected to have one deployment
#has_outdated_deployment?
when job has no environment
is expected to be falsey
when deployment is not persisted
returns false to ignore the Build and not take any Deployment-related action
# [RSpecRunTime] RSpec elapsed time: 7 minutes 36.53 seconds. Current RSS: ~1369M. Threads: 4. load average: 1.35 1.35 1.27 1/299 17052
.
when project has forward deployment disabled
is expected to be falsey
when job is not an outdated deployment
is expected to be falsey
when job is older than the latest deployment and still pending status
is expected to be truthy
when job is older than the latest deployment but succeeded once
returns false for allowing rollback
when forward_deployment_rollback_allowed option is disabled
returns true for disallowing rollback
state transition as a deployable
has deployments record with created status
when transits to running
transits deployment status to running
behaves like avoid deadlock
executes UPDATE in the right order
# [RSpecRunTime] RSpec elapsed time: 7 minutes 39.02 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.33 1.34 1.26 1/299 17063
.
when deployment is already running state
does not change deployment status and tracks an error
when transits to success
transits deployment status to success
behaves like avoid deadlock
executes UPDATE in the right order
behaves like calling proper BuildFinishedWorker
calls Ci::BuildFinishedWorker (PENDING: No reason given)
when transits to failed
transits deployment status to failed
behaves like avoid deadlock
executes UPDATE in the right order
behaves like calling proper BuildFinishedWorker
calls Ci::BuildFinishedWorker (PENDING: No reason given)
when transits to skipped
transits deployment status to skipped
behaves like avoid deadlock
executes UPDATE in the right order
when transits to canceled
transits deployment status to canceled
behaves like avoid deadlock
executes UPDATE in the right order
behaves like calling proper BuildFinishedWorker
calls Ci::BuildFinishedWorker (PENDING: No reason given)
when transits from skipped to created to running
during skipped to created
transitions to created
during created to running
transitions to running and calls webhook
#on_stop
when a job has a specification that it can be stopped from the other job
returns the other job name
when a job does not have environment information
returns nil
#environment_tier_from_options
is expected to eq "production"
when options does not include deployment_tier
is expected to be nil
#environment_tier
is expected to eq "production"
when options does not include deployment_tier
uses tier from environment
when persisted environment is absent
is expected to be nil
#environment_url
is expected to eq "http://prd.example.com/$CI_JOB_NAME"
when options does not include url
fetches from the persisted environment
when persisted environment is absent
is expected to be nil
#environment_slug
is expected to eq "review-master-8dyme2"
when persisted environment is absent
is expected to be nil
environment
#has_environment_keyword?
when environment is defined
is expected to be truthy
when environment is not defined
is expected to be falsey
#expanded_environment_name
when environment uses $CI_COMMIT_REF_NAME
is expected to eq "review/master"
when environment uses yaml_variables containing symbol keys
returns an expanded environment name with a list of variables
when job metadata has already persisted the expanded environment name
returns a persisted expanded environment name without a list of variables
when using persisted variables
is expected to eq "review/x"
when environment name uses a nested variable
is expected to eq "review/master"
#expanded_kubernetes_namespace
environment and namespace are not set
is expected to be nil
environment is specified
namespace is not set
is expected to be nil
namespace is provided
with a static value
is expected to eq "production"
with a dynamic value
is expected to eq "deploy-master"
#deployment_job?
when environment is defined
no action is defined
is expected to be truthy
and start action is defined
is expected to be truthy
when environment is not defined
is expected to be falsey
#stops_environment?
when environment is defined
no action is defined
is expected to be falsey
and stop action is defined
is expected to be truthy
when environment is not defined
is expected to be falsey
#persisted_environment
when referenced literally
is expected to eq #<Environment id: 30, project_id: 258, name: "foo-master", created_at: "2024-10-24 21:14:27.557979740..., flux_resource_path: nil, description: nil, description_html: "", cached_markdown_version: 2162688>
when referenced with a variable
is expected to eq #<Environment id: 31, project_id: 258, name: "foo-master", created_at: "2024-10-24 21:14:27.708316404..., flux_resource_path: nil, description: nil, description_html: "", cached_markdown_version: 2162688>
when there is no environment
is expected to be nil
when job has a stop environment
expands environment name
#deployment_status
when job is a last deployment
is expected to eq :last
when there is a newer job with deployment
is expected to eq :out_of_date
when job with deployment has failed
is expected to eq :failed
when job with deployment is running
is expected to eq :creating
no-op methods for compatibility with Ci::Build
returns an empty array job_artifacts
return nil for artifacts_expire_at
return nil for runner
returns an empty TagList for tag_list
#retryable?
returns true
when there is a pipeline loop detected
returns false
when the pipeline depth has reached the max descendents
returns false
#tags
only has a bridge tag
#detailed_status
returns detailed status object
#scoped_variables
returns a hash representing variables
when bridge has dependency which has dotenv variable in the same project
includes inherited variable that is public
is expected to include {"VARIABLE_1" => "VARIABLE_VALUE"}
includes inherited variable that is private
is expected to include {"VARIABLE_2" => "VARIABLE_VALUE"}
when bridge has dependency which has dotenv variable in a different project
includes inherited variable that is public
is expected to include {"VARIABLE_3" => "VARIABLE_VALUE"}
does not include inherited variable that is private
is expected not to include {"VARIABLE_4" => "VARIABLE_VALUE"}
state machine events
start_cancel!
transitions from preparing to canceling
transitions from pending to canceling
transitions from running to canceling
transitions from waiting_for_callback to canceling
transitions from waiting_for_resource to canceling
transitions from created to canceling
transitions from scheduled to canceling
transitions from manual to canceling
does not transition from success to canceling
does not transition from failed to canceling
does not transition from canceling to canceling
does not transition from canceled to canceling
does not transition from skipped to canceling
# [RSpecRunTime] RSpec elapsed time: 8 minutes 1.94 seconds. Current RSS: ~1315M. Threads: 4. load average: 1.27 1.33 1.26 1/297 17064
.
finish_cancel!
transitions from preparing to canceling
transitions from pending to canceling
transitions from running to canceling
transitions from waiting_for_callback to canceling
transitions from waiting_for_resource to canceling
transitions from created to canceling
transitions from scheduled to canceling
transitions from manual to canceling
transitions from canceling to canceling
does not transition from success to canceling
does not transition from failed to canceling
does not transition from canceled to canceling
does not transition from skipped to canceling
# [RSpecRunTime] RSpec elapsed time: 8 minutes 11.16 seconds. Current RSS: ~1316M. Threads: 4. load average: 1.25 1.32 1.26 2/297 17065
.
state machine transitions
when bridge points towards downstream
schedules downstream pipeline creation when the status is created
schedules downstream pipeline creation when the status is manual
schedules downstream pipeline creation when the status is waiting for resource
raises error when the status is failed
#inherit_status_from_downstream!
when status is not supported
when status is created
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 13.08 seconds. Current RSS: ~1316M. Threads: 4. load average: 1.23 1.32 1.26 1/297 17066
.
when status is waiting_for_resource
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 14.2 seconds. Current RSS: ~1316M. Threads: 4. load average: 1.23 1.32 1.26 1/297 17067
.
when status is preparing
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 15.34 seconds. Current RSS: ~1318M. Threads: 4. load average: 1.23 1.32 1.26 1/297 17068
.
when status is waiting_for_callback
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 16.47 seconds. Current RSS: ~1317M. Threads: 4. load average: 1.23 1.32 1.26 1/297 17069
.
when status is pending
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 17.56 seconds. Current RSS: ~1317M. Threads: 4. load average: 1.29 1.33 1.26 1/297 17070
.
when status is running
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 18.72 seconds. Current RSS: ~1318M. Threads: 4. load average: 1.29 1.33 1.26 1/297 17071
.
when status is canceling
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 19.84 seconds. Current RSS: ~1317M. Threads: 4. load average: 1.29 1.33 1.26 1/297 17072
.
when status is manual
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 20.93 seconds. Current RSS: ~1317M. Threads: 4. load average: 1.29 1.33 1.26 1/297 17073
.
when status is scheduled
returns false
does not change the bridge status
# [RSpecRunTime] RSpec elapsed time: 8 minutes 22.13 seconds. Current RSS: ~1317M. Threads: 4. load average: 1.27 1.32 1.26 2/297 17074
.
when status is supported
downstream_status: "success", upstream_status: "success"
inherits the downstream status
downstream_status: "canceled", upstream_status: "canceled"
inherits the downstream status
downstream_status: "failed", upstream_status: "failed"
inherits the downstream status
downstream_status: "skipped", upstream_status: "failed"
inherits the downstream status
#dependent?
when bridge has strategy depend
is expected to equal true
when bridge does not have strategy depend
is expected to equal false
#yaml_variables
returns YAML variables
#downstream_variables
returns variables that are going to be passed downstream
when using variables interpolation
correctly expands variables with interpolation
when using variables interpolation on file variables
does not expand file variable and forwards the file variable
when recursive interpolation has been used
does not expand variable recursively
forward variables
yaml_variables: nil, pipeline_variables: nil, variables: ["BRIDGE"]
returns variables according to the forward value
yaml_variables: nil, pipeline_variables: false, variables: ["BRIDGE"]
returns variables according to the forward value
yaml_variables: nil, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]
returns variables according to the forward value
yaml_variables: false, pipeline_variables: nil, variables: []
returns variables according to the forward value
yaml_variables: false, pipeline_variables: false, variables: []
returns variables according to the forward value
yaml_variables: false, pipeline_variables: true, variables: ["PVAR1"]
returns variables according to the forward value
yaml_variables: true, pipeline_variables: nil, variables: ["BRIDGE"]
returns variables according to the forward value
yaml_variables: true, pipeline_variables: false, variables: ["BRIDGE"]
returns variables according to the forward value
yaml_variables: true, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]
returns variables according to the forward value
when sending a variable via both yaml and pipeline
uses the pipeline variable
when sending a file variable from pipeline variable
forwards the pipeline file variable
when a pipeline variable interpolates a scoped file variable
does not expand the scoped file variable and forwards the file variable
when the pipeline runs from a pipeline schedule
adds the schedule variable
# [RSpecRunTime] RSpec elapsed time: 8 minutes 31.28 seconds. Current RSS: ~1320M. Threads: 4. load average: 1.25 1.32 1.26 1/298 17076
.
when sending a file variable from pipeline schedule
forwards the schedule file variable
when a pipeline schedule variable interpolates a scoped file variable
does not expand the scoped file variable and forwards the file variable
when using raw variables
expands variables according to their raw attributes
# [RSpecRunTime] RSpec elapsed time: 8 minutes 34.31 seconds. Current RSS: ~1322M. Threads: 4. load average: 1.23 1.31 1.26 1/298 17077
.
variables expansion
when they are protected
and downstream project group is different from bridge group
behaves like does not expand project and group variables downstream
behaves like does not expand variables from a project downstream
is expected not to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
# [RSpecRunTime] RSpec elapsed time: 8 minutes 36.1 seconds. Current RSS: ~1329M. Threads: 4. load average: 1.23 1.31 1.26 1/299 17102
.
behaves like does not expand variables from a group downstream
is expected not to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and there is no downstream project
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and downstream project equals bridge project
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and downstream project group is equal to bridge project group
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like does not expand variables from a project downstream
is expected not to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and downstream project has no group
behaves like does not expand project and group variables downstream
behaves like does not expand variables from a project downstream
is expected not to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like does not expand variables from a group downstream
is expected not to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
when they are not protected
and downstream project group is different from bridge group
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and there is no downstream project
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and downstream project equals bridge project
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and downstream project group is equal to bridge project group
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
and downstream project has no group
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
behaves like feature flag is disabled
behaves like expands project and group variables downstream
behaves like expands variables from a project downstream
is expected to include {:key => "EXPANDED_PROJECT_VAR6", :value => "project value6 this is a secret"}
behaves like expands variables from a group downstream
is expected to include {:key => "EXPANDED_GROUP_VAR6", :value => "group value6 this is a secret"}
#variables
returns bridge scoped variables and pipeline persisted variables
behaves like a triggerable processable
#variables
when trigger_request is present
is expected to include {:key => "CI_TRIGGER_SHORT_TOKEN", :value => "toke", :public => true, :masked => false}
#pipeline_variables
returns the pipeline variables
#pipeline_schedule_variables
when pipeline is on a schedule
returns the pipeline schedule variables
when pipeline is not on a schedule
returns empty array
#forward_yaml_variables?
forward: true, result: true
is expected to eq true
forward: false, result: false
is expected to eq false
forward: nil, result: true
is expected to eq true
#forward_pipeline_variables?
forward: true, result: true
is expected to eq true
forward: false, result: false
is expected to eq false
forward: nil, result: false
is expected to eq false
metadata support
reads YAML variables from metadata
reads options from metadata
#triggers_child_pipeline?
when bridge defines a downstream YAML
is expected to be truthy
when bridge does not define a downstream YAML
is expected to be falsey
#yaml_for_downstream
when bridge defines a downstream YAML
is expected to eq "---\ninclude: path/to/child.yml\n"
when bridge does not define a downstream YAML
is expected to be nil
#downstream_project_path
when trigger is defined
when using variable expansion
correctly expands variables
#target_ref
when trigger is defined
returns a ref name
when using variable expansion
correctly expands variables
when trigger does not have project defined
returns nil
#play
enqueues the bridge
# [RSpecRunTime] RSpec elapsed time: 8 minutes 55.86 seconds. Current RSS: ~1323M. Threads: 4. load average: 1.29 1.32 1.27 1/298 17103
.
#playable?
when bridge is a manual action
is expected to be truthy
when build is not a manual action
is expected to be falsey
#action?
when bridge is a manual action
is expected to be truthy
when build is not a manual action
is expected to be falsey
#can_auto_cancel_pipeline_on_job_failure?
is expected to equal true
#dependency_variables
when downloading from previous stages from the same project
inherits dependent variables that are public
is expected to eq {"VARIABLE_5"=>"VARIABLE_VALUE"}
inherits dependent variables that are private
is expected to eq {"VARIABLE_7"=>"VARIABLE_VALUE"}
when downloading from previous stages in a different project
inherits dependent variables that are public
is expected to eq {"VARIABLE_9"=>"VARIABLE_VALUE"}
does not inherit dependent variables that are private
is expected not to eq {"VARIABLE_11"=>"VARIABLE_VALUE"}
when using needs within the same project
inherits only needs with artifacts variables that are public
is expected to eq {"VARIABLE_13"=>"VARIABLE_VALUE"}
inherits needs with artifacts variables that are public
is expected to eq {"VARIABLE_16"=>"VARIABLE_VALUE"}
when using needs from different project
inherits only needs with artifacts variables that are public
is expected to eq {"VARIABLE_19"=>"VARIABLE_VALUE"}
does not inherit needs with artifacts variables that are public
is expected not to eq {"VARIABLE_22"=>"VARIABLE_VALUE"}
metadata partitioning
creates the metadata record and assigns its partition
#deployment_job?
is expected to eq false
# [RSpecRunTime] Finishing example group spec/models/ci/bridge_spec.rb. It took 1 minute 30.86 seconds. Expected to take 1 minute 38.09 seconds.
# [RSpecRunTime] Starting example group spec/finders/issues_finder_spec.rb. Expected to take 1 minute 20.37 seconds.
IssuesFinder
behaves like issues or work items finder
#execute
scope: all
returns all items
finds items user can access due to group
user does not have read permissions
when filtering by project id
returns no items
# [RSpecRunTime] RSpec elapsed time: 9 minutes 4.8 seconds. Current RSS: ~1327M. Threads: 4. load average: 1.32 1.33 1.27 1/297 17104
.
when filtering by group id
returns no items
assignee filtering
behaves like assignee ID filter
returns issuables assigned to that user
behaves like assignee NOT ID filter
returns issuables not assigned to that user
behaves like assignee OR filter
returns issuables assigned to the given users
when assignee_id does not exist
behaves like assignee NOT ID filter
returns issuables not assigned to that user
filter by username
behaves like assignee username filter
returns issuables assigned to those users
behaves like assignee NOT username filter
returns issuables not assigned to those users
behaves like assignee OR filter
returns issuables assigned to the given users
when assignee_username does not exist
behaves like assignee NOT username filter
returns issuables not assigned to those users
behaves like no assignee filter
returns issuables not assigned to any assignee
returns issuables not assigned to any assignee
returns issuables not assigned to any assignee
behaves like any assignee filter
returns issuables assigned to any assignee
returns issuables assigned to any assignee
returns issuables assigned to any assignee
filtering by release
when filter by none
returns items without releases
when sort by milestone
returns items without any releases
when filter by any
returns items with any releases
when sort by milestone
returns items without any releases
when filter by a release_tag
returns the items associated with the release tag
when sort by milestone
returns the items associated with the release tag
when filter by a negated release_tag
returns the items not associated with the release
when sort by milestone
returns the items not associated with the release
filtering by projects
when projects are passed in a list of ids
returns the item belonging to the projects
when projects are passed in a subquery
returns the item belonging to the projects
filtering by author
by author ID
returns items created by that user
using OR
returns items created by any of the given users
filtering by NOT author ID
returns items not created by that user
filtering by nonexistent author ID and issue term using CTE for search
returns no results
filtering by milestone
returns items assigned to that milestone
filtering by not milestone
returns items not assigned to that milestone
with multiple milestones
returns items not assigned to both milestones
filtering by group milestone
returns items assigned to that group milestone
using NOT
returns items not assigned to that group milestone
# [RSpecRunTime] RSpec elapsed time: 9 minutes 17.98 seconds. Current RSS: ~1336M. Threads: 4. load average: 1.25 1.31 1.26 1/297 17105
.
filtering by no milestone
returns items with no milestone
returns items with no milestone (deprecated)
filtering by any milestone
returns items with any assigned milestone
returns items with any assigned milestone (deprecated)
filtering by upcoming milestone
returns items in the upcoming milestone for each project or group
using NOT
returns items not in upcoming milestones for each project or group, but must have a due date
# [RSpecRunTime] RSpec elapsed time: 9 minutes 26.97 seconds. Current RSS: ~1333M. Threads: 4. load average: 1.21 1.30 1.26 1/297 17106
.
filtering by started milestone
returns items in the started milestones for each project
using NOT
returns items not in the started milestones for each project
# [RSpecRunTime] RSpec elapsed time: 9 minutes 33.86 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.19 1.30 1.26 1/297 17107
.
filtering by label
returns items with that label
using NOT
returns items that do not have that label
shadowing the same outside param
does not take precedence over labels outside NOT
further filtering outside params
further filters on the returned resultset
filtering by multiple labels
returns the unique items with all those labels
using NOT
returns items that do not have any of the labels provided
using OR
returns items that have at least one of the given labels
filtering by a label that includes any or none in the title
returns the unique items with all those labels
using NOT
returns items that do not have ANY ONE of the labels provided
filtering by no label
returns items with no labels
filtering by any label
returns items that have one or more label
when the same label exists on project and group levels
finds both item records
filtering by item term
with latin search term
returns matching items
with non-latin search term
returns matching items
filtering by item term in title
returns items with title match for search term
filtering by items iids
returns items where iids match
using NOT
returns items with no iids match
filtering by state
with opened
returns only opened items
with closed
returns only closed items
with all
returns all items
with invalid state
returns all items
filtering by created_at
through created_after
returns items created on or after the given date
through created_before
returns items created on or before the given date
through created_after and created_before
returns items created between the given dates
filtering by updated_at
through updated_after
returns items updated on or after the given date
through updated_before
returns items updated on or before the given date
through updated_after and updated_before
returns items updated between the given dates
filtering by closed_at
through closed_after
returns items closed on or after the given date
through closed_before
returns items closed on or before the given date
through closed_after and closed_before
returns items closed between the given dates
filtering by reaction name
user searches by no reaction
returns items that the user did not react to
user searches by any reaction
returns items that the user reacted to
user searches by "thumbs_up" reaction
returns items that the user thumbs_up to
using NOT
returns items that the user did not thumbs_up to
user2 searches by "thumbs_up" reaction
returns items that the user2 thumbs_up to
using NOT
returns items that the user2 thumbs_up to
user searches by "thumbs_down" reaction
returns items that the user thumbs_down to
using NOT
returns items that the user thumbs_down to
filtering by confidential
no filtering
returns all items
user filters confidential items
returns only confidential items
user filters only public items
returns only public items
filtering by subscribed
no filtering
returns all items
# [RSpecRunTime] RSpec elapsed time: 9 minutes 48.32 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.22 1.30 1.26 1/298 17108
.
user filters for subscribed items
returns only subscribed items
user filters out subscribed items
returns only unsubscribed items
when filter_subscriptions FF is disabled
does not apply filter
filtering by item type
no type given
returns all items
incident type
returns incident items
objective type
returns incident items
key_result type
returns incident items
item type
returns all items with type issue
multiple params
returns all items
without array
returns incident items
invalid params
returns no items
crm filtering
filtering by crm contact
when the user can read crm contacts
returns for that contact
# [RSpecRunTime] RSpec elapsed time: 9 minutes 53.35 seconds. Current RSS: ~1336M. Threads: 4. load average: 1.12 1.28 1.25 1/298 17109
.
when the user can not read crm contacts
does not filter by contact
filtering by crm organization
when the user can read crm organization
returns for that crm organization
when the user can not read crm organization
does not filter by crm organization
when the user is unauthorized
returns no results
when the user can see some, but not all, items
returns only items they can see
personal scope
returns item assigned to the user
filtering by project
returns items assigned to the user in that project
when project restricts items
doesn't return team-only items to non team members
doesn't return items if feature disabled
# [RSpecRunTime] RSpec elapsed time: 9 minutes 57.21 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.03 1.25 1.25 1/298 17110
.
external authorization
behaves like a finder with external authorization service
finds the subject
with an external authorization service
does not include the subject when no project was given
includes the subject when a project id was given
# [RSpecRunTime] RSpec elapsed time: 10 minutes 1.37 seconds. Current RSS: ~1338M. Threads: 4. load average: 1.03 1.25 1.25 3/297 17111
.
filtering by due date
with param set to no due date
returns items with no due date
with param set to any due date
returns items with any due date
with param set to due today
returns items due today
with param set to due tomorrow
returns items due today
with param set to overdue
returns overdue items
with param set to next month and previous two weeks
returns items due in the previous two weeks and next month
with invalid param
returns no items
#row_count
returns -1 if the query times out
when admin mode is enabled
returns the number of rows for the default state
returns the number of rows for a given state
when admin mode is disabled
returns no rows
confidentiality access check
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
when no project filter is given
for a user without project membership
behaves like returns public, does not return hidden or confidential
returns only public items
for a guest user
behaves like returns public, does not return hidden or confidential
returns only public items
for a project member with access to view confidential items
behaves like returns public and confidential, does not return hidden
returns only public and confidential items
for an admin
when admin mode is enabled
behaves like returns public, confidential, and hidden
returns all items
when admin mode is disabled
behaves like returns public, does not return hidden or confidential
returns only public items
when searching within a specific project
for an anonymous user
does not filter by confidentiality
behaves like returns public, does not return hidden or confidential
returns only public items
for a user without project membership
filters by confidentiality
behaves like returns public, does not return hidden or confidential
returns only public items
for a guest user
filters by confidentiality
behaves like returns public, does not return hidden or confidential
returns only public items
for a project member with access to view confidential items
does not filter by confidentiality
behaves like returns public and confidential, does not return hidden
returns only public and confidential items
for an admin
when admin mode is enabled
does not filter by confidentiality
behaves like returns public, confidential, and hidden
returns all items
when admin mode is disabled
filters by confidentiality
behaves like returns public, does not return hidden or confidential
returns only public items
when filtering items assigned to the current user
returns items assigned to the user
does not filter by confidentiality
when both assignee_id and assignee_username are provided
behaves like returns public, does not return hidden or confidential
returns only public items
#use_cte_for_search?
when there is no search param
returns false
when the force_cte param is falsey
returns false
when a non-simple sort is given
returns false
when all conditions are met
uses group search optimization
returns true
uses project search optimization
returns true
with simple sort
returns true
with simple sort as a symbol
returns true
#parent_param=
klass: :Project, param: :project_id
sets the params
klass: :Group, param: :group_id
sets the params
unexpected parent
raises an error
when filtering by group_id
when include_subgroup param not set
returns all group items
when projects outside the group are passed
returns no items
# [RSpecRunTime] RSpec elapsed time: 10 minutes 12.32 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.02 1.24 1.24 1/297 17112
.
when projects of the group are passed
returns the item within the group and projects
when projects of the group are passed as a subquery
returns the item within the group and projects
when release_tag is passed as a parameter
ignores the release_tag parameter
when include_subgroup param is true
returns all group and subgroup items
when mixed projects are passed
returns the item within the group and projects
when filtering by a date
when filtering by due_before
returns relevant issues
# [RSpecRunTime] RSpec elapsed time: 10 minutes 15.47 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.02 1.24 1.24 1/297 17113
.
when filtering by due_after
returns relevant issues
# [RSpecRunTime] Finishing example group spec/finders/issues_finder_spec.rb. It took 1 minute 17.09 seconds. Expected to take 1 minute 20.37 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/retry_pipeline_service_spec.rb. Expected to take 1 minute 10.6 seconds.
Ci::RetryPipelineService#execute
when user has full ability to modify pipeline
closes all todos about failed jobs for pipeline
reprocesses the pipeline
when there are already retried jobs present
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not retry jobs that has already been retried
# [RSpecRunTime] RSpec elapsed time: 10 minutes 19.95 seconds. Current RSS: ~1343M. Threads: 4. load average: 1.02 1.24 1.24 1/297 17114
.
when there are failed builds in the last stage
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
enqueues all builds in the last stage
# [RSpecRunTime] RSpec elapsed time: 10 minutes 22.39 seconds. Current RSS: ~1347M. Threads: 4. load average: 1.02 1.23 1.24 1/297 17115
.
when there are failed or canceled builds in the first stage
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries builds failed builds and marks subsequent for processing
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
changes ownership of subsequent builds
# [RSpecRunTime] RSpec elapsed time: 10 minutes 28.47 seconds. Current RSS: ~1363M. Threads: 4. load average: 1.02 1.23 1.24 1/297 17116
.
when there is failed build present which was run on failure
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries builds only in the first stage
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
creates a new job for report job in this case
# [RSpecRunTime] RSpec elapsed time: 10 minutes 34.44 seconds. Current RSS: ~1361M. Threads: 4. load average: 1.02 1.22 1.24 1/297 17117
.
when there is a failed test in a DAG
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries the test
when there is a failed DAG test without needs
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries the test
# [RSpecRunTime] RSpec elapsed time: 10 minutes 39.34 seconds. Current RSS: ~1353M. Threads: 4. load average: 1.01 1.22 1.24 1/296 17118
.
when the last stage was skipped
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries builds only in the first stage
# [RSpecRunTime] RSpec elapsed time: 10 minutes 41.67 seconds. Current RSS: ~1349M. Threads: 4. load average: 1.01 1.22 1.24 1/297 17119
.
when pipeline contains manual actions
when there are optional manual actions only
when there is a canceled manual action in first stage
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries failed builds and marks subsequent for processing
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
changes ownership of subsequent builds
# [RSpecRunTime] RSpec elapsed time: 10 minutes 46.79 seconds. Current RSS: ~1357M. Threads: 4. load average: 1.01 1.21 1.23 1/297 17120
.
when pipeline has blocking manual actions defined
when pipeline retry should enqueue builds
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries failed builds
# [RSpecRunTime] RSpec elapsed time: 10 minutes 49.42 seconds. Current RSS: ~1359M. Threads: 4. load average: 1.01 1.21 1.23 1/297 17121
.
when pipeline retry should block pipeline immediately
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
reprocesses blocking manual action and blocks pipeline
# [RSpecRunTime] RSpec elapsed time: 10 minutes 52.24 seconds. Current RSS: ~1356M. Threads: 4. load average: 1.01 1.21 1.23 1/298 17122
.
when there is a skipped manual action in last stage
retries canceled job and reprocesses manual actions
# [RSpecRunTime] RSpec elapsed time: 10 minutes 54.3 seconds. Current RSS: ~1357M. Threads: 4. load average: 1.01 1.21 1.23 1/298 17123
.
when there is a created manual action in the last stage
retries canceled job and does not update the manual action
# [RSpecRunTime] RSpec elapsed time: 10 minutes 56.2 seconds. Current RSS: ~1354M. Threads: 4. load average: 1.01 1.21 1.23 1/298 17124
.
when there is a created manual action in the first stage
retries canceled job and processes the manual action
# [RSpecRunTime] RSpec elapsed time: 10 minutes 58.06 seconds. Current RSS: ~1352M. Threads: 4. load average: 1.01 1.20 1.23 1/298 17125
.
when there is a failed manual action
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
processes the manual action
# [RSpecRunTime] RSpec elapsed time: 10 minutes 59.97 seconds. Current RSS: ~1350M. Threads: 4. load average: 1.01 1.20 1.23 1/298 17126
.
when pipeline has processables with nil scheduling_type
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
populates scheduling_type of processables
# [RSpecRunTime] RSpec elapsed time: 11 minutes 2.62 seconds. Current RSS: ~1351M. Threads: 4. load average: 1.01 1.20 1.23 1/298 17127
.
when the pipeline is a downstream pipeline and the bridge is depended
without permission
does nothing to the bridge
# [RSpecRunTime] RSpec elapsed time: 11 minutes 4.09 seconds. Current RSS: ~1352M. Threads: 4. load average: 1.01 1.20 1.23 1/298 17128
.
with permission
marks source bridge as pending
assigns the current user to the source bridge
# [RSpecRunTime] RSpec elapsed time: 11 minutes 7.38 seconds. Current RSS: ~1352M. Threads: 4. load average: 1.01 1.20 1.23 1/298 17129
.
when there are skipped jobs in later stages
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
retries failed jobs and processes skipped jobs
# [RSpecRunTime] RSpec elapsed time: 11 minutes 9.74 seconds. Current RSS: ~1351M. Threads: 4. load average: 1.01 1.20 1.23 1/298 17130
.
when user is not allowed to retry build
returns an error
when user is not allowed to retry pipeline
returns an error
when user is not allowed to trigger manual action
when there is a failed manual action present
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
returns an error
# [RSpecRunTime] RSpec elapsed time: 11 minutes 12.02 seconds. Current RSS: ~1350M. Threads: 4. load average: 1.01 1.19 1.22 1/298 17131
.
when there is a failed manual action in later stage
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
returns an error
# [RSpecRunTime] RSpec elapsed time: 11 minutes 13.16 seconds. Current RSS: ~1351M. Threads: 4. load average: 1.01 1.19 1.22 1/298 17132
.
when maintainer is allowed to push to forked project
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
allows to retry failed pipeline
# [RSpecRunTime] RSpec elapsed time: 11 minutes 17.08 seconds. Current RSS: ~1346M. Threads: 4. load average: 0.93 1.17 1.22 1/298 17133
.
# [RSpecRunTime] Finishing example group spec/services/ci/retry_pipeline_service_spec.rb. It took 1 minute 0.82 second. Expected to take 1 minute 10.6 seconds.
# [RSpecRunTime] Starting example group spec/views/search/_results.html.haml_spec.rb. Expected to take 1 minute 3.74 seconds.
search/_results
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: 11 minutes 21.97 seconds. Current RSS: ~1352M. Threads: 4. load average: 0.93 1.17 1.22 1/301 17248
.
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 24.21 seconds. Current RSS: ~1348M. Threads: 4. load average: 0.93 1.17 1.22 1/301 17249
.
when scope is merge_requests
when admin mode is enabled
renders the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 26.5 seconds. Current RSS: ~1343M. Threads: 4. load average: 0.93 1.17 1.22 1/301 17250
.
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 28.74 seconds. Current RSS: ~1339M. Threads: 4. load average: 0.94 1.17 1.22 1/300 17251
.
git blame click tracking
when admin mode is enabled
renders the click link event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 31.08 seconds. Current RSS: ~1336M. Threads: 4. load average: 0.94 1.17 1.22 1/297 17257
.
when admin mode is disabled
does not render the click link event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 33.3 seconds. Current RSS: ~1336M. Threads: 4. load average: 1.02 1.18 1.22 1/297 17258
.
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: 11 minutes 37.53 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.02 1.18 1.22 1/297 17263
.
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 39.63 seconds. Current RSS: ~1336M. Threads: 4. load average: 1.02 1.18 1.22 1/297 17264
.
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: 11 minutes 44.24 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.02 1.18 1.22 1/298 17265
.
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 46.59 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.02 1.18 1.22 2/298 17266
.
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: 11 minutes 50.84 seconds. Current RSS: ~1338M. Threads: 4. load average: 1.02 1.17 1.22 1/298 17274
.
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 53.09 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.02 1.17 1.21 1/298 17275
.
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: 11 minutes 57.56 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.01 1.17 1.21 1/298 17276
.
when admin mode is disabled
does not render the click text event tracking attributes
# [RSpecRunTime] RSpec elapsed time: 11 minutes 59.74 seconds. Current RSS: ~1342M. Threads: 4. load average: 1.01 1.17 1.21 1/298 17277
.
when searching notes which contain quotes in markdown
renders plain quotes
# [RSpecRunTime] RSpec elapsed time: 12 minutes 2.51 seconds. Current RSS: ~1339M. Threads: 4. load average: 1.01 1.16 1.21 1/297 17278
.
page size
when search results have a count
displays the page size
# [RSpecRunTime] RSpec elapsed time: 12 minutes 4.83 seconds. Current RSS: ~1338M. Threads: 4. load average: 1.01 1.16 1.21 1/297 17279
.
when search results do not have a count
does not display the page size
# [RSpecRunTime] RSpec elapsed time: 12 minutes 7.09 seconds. Current RSS: ~1337M. Threads: 4. load average: 1.01 1.16 1.21 1/297 17280
.
# [RSpecRunTime] Finishing example group spec/views/search/_results.html.haml_spec.rb. It took 50.0 seconds. Expected to take 1 minute 3.74 seconds.
# [RSpecRunTime] Starting example group spec/finders/merge_request_target_project_finder_spec.rb. Expected to take 50.53 seconds.
MergeRequestTargetProjectFinder
public projects
behaves like finding related projects
finds sibling projects and base project
does not include projects that have merge requests turned off by default
includes projects that have merge requests turned off by default with a more-permissive project feature
does not contain archived projects
does not include routes by default
includes routes when requested
# [RSpecRunTime] RSpec elapsed time: 12 minutes 20.94 seconds. Current RSS: ~1338M. Threads: 4. load average: 0.94 1.14 1.20 1/297 17281
.
private projects
only finds the projects the user is a member of
when the user is a member of all projects
behaves like finding related projects
finds sibling projects and base project
does not include projects that have merge requests turned off by default
includes projects that have merge requests turned off by default with a more-permissive project feature
does not contain archived projects
does not include routes by default
includes routes when requested
# [RSpecRunTime] RSpec elapsed time: 12 minutes 40.31 seconds. Current RSS: ~1341M. Threads: 4. load average: 1.50 1.26 1.24 1/297 17282
.
searching
returns all projects with empty search
returns forked project with search string
returns no projects with search for project that does no exist
# [RSpecRunTime] RSpec elapsed time: 12 minutes 49.72 seconds. Current RSS: ~1342M. Threads: 4. load average: 1.43 1.25 1.24 1/297 17283
.
# [RSpecRunTime] Finishing example group spec/finders/merge_request_target_project_finder_spec.rb. It took 42.64 seconds. Expected to take 50.53 seconds.
# [RSpecRunTime] Starting example group spec/services/milestones/transfer_service_spec.rb. Expected to take 37.97 seconds.
Milestones::TransferService
#execute
when old_group is present
without existing milestone at the new group level
recreates the missing group milestones at project level
applies new project milestone to issues with group milestone
deletes milestone counters cache for both milestones
does not apply new project milestone to issues with project milestone
applies new project milestone to merge_requests with group milestone
does not apply new project milestone to issuables with project milestone
does not recreate missing group milestones that are not applied to issues or merge requests
when milestone is from an ancestor group
recreates the missing group milestones at project level
# [RSpecRunTime] RSpec elapsed time: 13 minutes 7.91 seconds. Current RSS: ~1345M. Threads: 4. load average: 1.30 1.23 1.23 1/297 17284
.
when find_or_create_milestone returns nil
removes issues group milestone
removes merge requests group milestone
# [RSpecRunTime] RSpec elapsed time: 13 minutes 12.39 seconds. Current RSS: ~1344M. Threads: 4. load average: 1.28 1.23 1.23 1/297 17285
.
with existing milestone at the new group level
does not create a new milestone
applies existing milestone to issues with group milestone
applies existing milestone to merge_requests with group milestone
# [RSpecRunTime] RSpec elapsed time: 13 minutes 19.17 seconds. Current RSS: ~1346M. Threads: 4. load average: 1.26 1.23 1.23 1/297 17286
.
when old_group is not present
returns nil
# [RSpecRunTime] Finishing example group spec/services/milestones/transfer_service_spec.rb. It took 30.12 seconds. Expected to take 37.97 seconds.
# [RSpecRunTime] Starting example group spec/models/merge_request_diff_commit_spec.rb. Expected to take 34.13 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: 13 minutes 43.63 seconds. Current RSS: ~1379M. Threads: 4. load average: 1.09 1.19 1.22 1/303 17807
.
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: 13 minutes 45.73 seconds. Current RSS: ~1377M. Threads: 4. load average: 1.09 1.19 1.22 1/304 17867
.
.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: 13 minutes 50.78 seconds. Current RSS: ~1373M. Threads: 4. load average: 1.08 1.19 1.21 1/304 18044
.
.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 31.03 seconds. Expected to take 34.13 seconds.
# [RSpecRunTime] Starting example group spec/services/merge_requests/link_lfs_objects_service_spec.rb. Expected to take 31.49 seconds.
MergeRequests::LinkLfsObjectsService
when no oldrev and newrev passed
behaves like linking LFS objects
when source project is the same as target project
does not call Projects::LfsPointers::LfsLinkService#execute
# [RSpecRunTime] RSpec elapsed time: 13 minutes 52.53 seconds. Current RSS: ~1371M. Threads: 4. load average: 1.07 1.18 1.21 1/304 18070
.
when source project is different from target project
and there are changes
and there are LFS objects added
Job arguments to ProjectCacheWorker must be native JSON types, but :lfs_objects_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ProjectCacheWorker must be native JSON types, but :lfs_objects_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
calls Projects::LfsPointers::LfsLinkService#execute with OIDs of LFS objects in merge request
# [RSpecRunTime] RSpec elapsed time: 13 minutes 57.98 seconds. Current RSS: ~1369M. Threads: 4. load average: 1.07 1.18 1.21 1/304 18263
.
but there are no LFS objects added
does not call Projects::LfsPointers::LfsLinkService#execute
# [RSpecRunTime] RSpec elapsed time: 14 minutes 1.54 seconds. Current RSS: ~1367M. Threads: 4. load average: 1.07 1.18 1.21 1/304 18421
.
and there are no changes
does not call Projects::LfsPointers::LfsLinkService#execute
# [RSpecRunTime] RSpec elapsed time: 14 minutes 4.57 seconds. Current RSS: ~1372M. Threads: 4. load average: 1.06 1.18 1.21 1/303 18499
.
when oldrev and newrev are passed
behaves like linking LFS objects
when source project is the same as target project
does not call Projects::LfsPointers::LfsLinkService#execute
# [RSpecRunTime] RSpec elapsed time: 14 minutes 6.05 seconds. Current RSS: ~1380M. Threads: 4. load average: 1.06 1.18 1.21 1/303 18525
.
when source project is different from target project
and there are changes
and there are LFS objects added
Job arguments to ProjectCacheWorker must be native JSON types, but :lfs_objects_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to ProjectCacheWorker must be native JSON types, but :lfs_objects_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
calls Projects::LfsPointers::LfsLinkService#execute with OIDs of LFS objects in merge request
# [RSpecRunTime] RSpec elapsed time: 14 minutes 10.03 seconds. Current RSS: ~1376M. Threads: 4. load average: 1.06 1.17 1.21 1/304 18719
.
but there are no LFS objects added
does not call Projects::LfsPointers::LfsLinkService#execute
# [RSpecRunTime] RSpec elapsed time: 14 minutes 13.63 seconds. Current RSS: ~1373M. Threads: 4. load average: 1.05 1.17 1.21 1/304 18877
.
and there are no changes
does not call Projects::LfsPointers::LfsLinkService#execute
# [RSpecRunTime] RSpec elapsed time: 14 minutes 16.72 seconds. Current RSS: ~1372M. Threads: 4. load average: 1.05 1.17 1.20 1/304 18956
.
# [RSpecRunTime] Finishing example group spec/services/merge_requests/link_lfs_objects_service_spec.rb. It took 25.85 seconds. Expected to take 31.49 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb. Expected to take 29.06 seconds.
Gitlab::GithubImport::Importer::PullRequestImporter
#execute
imports the pull request
caches the created MR ID even if importer later fails
# [RSpecRunTime] RSpec elapsed time: 14 minutes 18.99 seconds. Current RSS: ~1380M. Threads: 4. load average: 1.05 1.17 1.20 1/304 18995
.
#create_merge_request
when the author could be found
imports the pull request with the pull request author as the merge request author
returns the created merge request
when the description has user mentions
adds backticks to the username
# [RSpecRunTime] RSpec elapsed time: 14 minutes 22.68 seconds. Current RSS: ~1380M. Threads: 4. load average: 1.04 1.16 1.20 1/304 19053
.
when the source and target branch are identical
uses a generated source branch name for the merge request
# [RSpecRunTime] RSpec elapsed time: 14 minutes 23.97 seconds. Current RSS: ~1380M. Threads: 4. load average: 1.04 1.16 1.20 1/304 19073
.
when the import fails due to a foreign key error
does not raise any errors
# [RSpecRunTime] RSpec elapsed time: 14 minutes 25.22 seconds. Current RSS: ~1378M. Threads: 4. load average: 1.04 1.16 1.20 1/304 19093
.
when the merge request already exists
returns the existing merge request
# [RSpecRunTime] RSpec elapsed time: 14 minutes 26.52 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.04 1.16 1.20 1/304 19113
.
when the author could not be found
imports the pull request with the project creator as the merge request author
# [RSpecRunTime] RSpec elapsed time: 14 minutes 27.79 seconds. Current RSS: ~1373M. Threads: 4. load average: 1.04 1.16 1.20 1/304 19133
.
when merge request is invalid
fails validation
# [RSpecRunTime] RSpec elapsed time: 14 minutes 28.95 seconds. Current RSS: ~1372M. Threads: 4. load average: 1.04 1.16 1.20 1/304 19153
.
#set_merge_request_assignees
when pull request has an assignee
sets merge request assignees
# [RSpecRunTime] RSpec elapsed time: 14 minutes 31.61 seconds. Current RSS: ~1383M. Threads: 4. load average: 1.04 1.16 1.20 1/305 19232
.
when pull request does not have any assignees
does not set merge request assignees
# [RSpecRunTime] RSpec elapsed time: 14 minutes 32.73 seconds. Current RSS: ~1383M. Threads: 4. load average: 1.04 1.16 1.20 1/305 19252
.
#insert_git_data
does not create the source branch if merge request is merged
creates a merge request diff and sets it as the latest
creates the merge request diff commits
when merge request is open
creates the source branch
is able to retry on pre-receive errors
ignores Git command errors when creating a branch
ignores Git PreReceive errors when creating a branch
# [RSpecRunTime] RSpec elapsed time: 14 minutes 43.39 seconds. Current RSS: ~1373M. Threads: 4. load average: 1.03 1.15 1.20 2/306 19513
.
when the merge request exists
creates the merge request diffs if they do not yet exist
# [RSpecRunTime] RSpec elapsed time: 14 minutes 44.82 seconds. Current RSS: ~1373M. Threads: 4. load average: 1.03 1.15 1.20 1/305 19545
.
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb. It took 28.09 seconds. Expected to take 29.06 seconds.
# [RSpecRunTime] Starting example group spec/workers/database/batched_background_migration_worker_spec.rb. Expected to take 26.92 seconds.
Database::BatchedBackgroundMigrationWorker
behaves like it runs batched background migration jobs
defining the job attributes
defines the data_consistency as always
defines the feature_category as database
defines the idempotency as true
.tracking_database
does not raise an error
overrides the method to return the tracking database
.lease_key
does not raise an error
returns the lease key
.enabled?
returns true when execute_batched_migrations_on_schedule feature flag is enabled
returns false when execute_batched_migrations_on_schedule feature flag is disabled
returns false when disallow_database_ddl_feature_flags feature flag is enabled
#perform
when the base model does not exist
does nothing (PENDING: because the base model for main exists)
logs a message indicating execution is skipped (PENDING: because the base model for main exists)
when the base model does exist
when the tracking database is shared
does nothing (PENDING: Skipping because database main exists)
when the tracking database is not shared
when the execute_batched_migrations_on_schedule feature flag is disabled
does nothing
when the disallow_database_ddl_feature_flags feature flag is enabled
does nothing
when the execute_batched_migrations_on_schedule feature flag is enabled
when database config is shared
does nothing
when no active migrations exist
does nothing
when active migrations exist
delegetes the execution to ExecutionWorker
executing an entire migration
marks the migration record as finished
creates job records for each processed batch
marks all job records as succeeded
updates matching records in the range
does not update non-matching records in the range
health status
puts migration on hold when there is autovaccum activity on related tables
puts migration on hold when the pending WAL count is above the limit
# [RSpecRunTime] RSpec elapsed time: 15 minutes 9.96 seconds. Current RSS: ~1331M. Threads: 4. load average: 0.74 1.07 1.17 1/299 19546
.
# [RSpecRunTime] Finishing example group spec/workers/database/batched_background_migration_worker_spec.rb. It took 25.14 seconds. Expected to take 26.92 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/badge/pipeline/status_spec.rb. Expected to take 24.39 seconds.
Gitlab::Ci::Badge::Pipeline::Status
#entity
always says pipeline
# [RSpecRunTime] RSpec elapsed time: 15 minutes 11.07 seconds. Current RSS: ~1341M. Threads: 4. load average: 0.74 1.07 1.17 3/299 19565
.
#template
returns badge template
# [RSpecRunTime] RSpec elapsed time: 15 minutes 12.14 seconds. Current RSS: ~1352M. Threads: 4. load average: 0.76 1.07 1.17 1/299 19584
.
#metadata
returns badge metadata
# [RSpecRunTime] RSpec elapsed time: 15 minutes 13.16 seconds. Current RSS: ~1364M. Threads: 4. load average: 0.76 1.07 1.17 1/299 19603
.
pipeline exists
pipeline success
#status
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is successful
# [RSpecRunTime] RSpec elapsed time: 15 minutes 15.52 seconds. Current RSS: ~1376M. Threads: 4. load average: 0.76 1.07 1.17 1/300 19628
.
pipeline failed
#status
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
failed
# [RSpecRunTime] RSpec elapsed time: 15 minutes 17.74 seconds. Current RSS: ~1376M. Threads: 4. load average: 0.78 1.07 1.17 1/301 19653
.
when outdated pipeline for given ref exists
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not take outdated pipeline into account
# [RSpecRunTime] RSpec elapsed time: 15 minutes 21.08 seconds. Current RSS: ~1370M. Threads: 4. load average: 0.78 1.07 1.17 1/302 19678
.
when multiple pipelines exist for given sha
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to PipelineNotificationWorker must be native JSON types, but :ref_status is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
does not take outdated pipeline into account
# [RSpecRunTime] RSpec elapsed time: 15 minutes 24.34 seconds. Current RSS: ~1359M. Threads: 4. load average: 0.88 1.09 1.17 1/303 19703
.
when ignored_skipped is set to true
#status
uses latest non-skipped status
# [RSpecRunTime] RSpec elapsed time: 15 minutes 26.29 seconds. Current RSS: ~1356M. Threads: 4. load average: 0.88 1.09 1.17 1/303 19728
.
when ignored_skipped is set to false
#status
uses latest status
# [RSpecRunTime] RSpec elapsed time: 15 minutes 28.34 seconds. Current RSS: ~1362M. Threads: 4. load average: 0.97 1.10 1.18 4/303 19753
.
build does not exist
#status
is unknown
# [RSpecRunTime] RSpec elapsed time: 15 minutes 29.41 seconds. Current RSS: ~1362M. Threads: 4. load average: 0.97 1.10 1.18 1/303 19772
.
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/badge/pipeline/status_spec.rb. It took 19.45 seconds. Expected to take 24.39 seconds.
# [RSpecRunTime] Starting example group spec/finders/ci/pipelines_for_merge_request_finder_spec.rb. Expected to take 22.27 seconds.
Ci::PipelinesForMergeRequestFinder
#execute
when actor has permission to read pipelines in both parent and forked projects
returns all pipelines
# [RSpecRunTime] RSpec elapsed time: 15 minutes 33.43 seconds. Current RSS: ~1375M. Threads: 4. load average: 0.97 1.10 1.18 1/305 19852
.
when actor has permission to read pipelines in both parent and forked projects
returns all pipelines
when actor has permission to read pipelines in the parent project only
returns pipelines in parent
when actor has permission to read pipelines in the forked project only
returns pipelines in fork
when actor does not have permission to read pipelines
returns nothing
when actor is nil
returns nothing
#all
with single merge_request_diffs
behaves like returning pipelines with proper ordering
returns all pipelines
# [RSpecRunTime] RSpec elapsed time: 15 minutes 37.8 seconds. Current RSS: ~1371M. Threads: 4. load average: 1.21 1.15 1.19 1/305 20079
.
with multiple irrelevant merge_request_diffs
behaves like returning pipelines with proper ordering
returns all pipelines
# [RSpecRunTime] RSpec elapsed time: 15 minutes 39.55 seconds. Current RSS: ~1372M. Threads: 4. load average: 1.21 1.15 1.19 1/305 20137
.
with unsaved merge request
returns pipelines from diff_head_sha
# [RSpecRunTime] RSpec elapsed time: 15 minutes 40.7 seconds. Current RSS: ~1376M. Threads: 4. load average: 1.21 1.15 1.19 1/306 20157
.
when pipelines exist for the branch and merge request
returns merge request pipeline first
when there are a branch pipeline and a merge request pipeline
returns merge request pipelines first
# [RSpecRunTime] RSpec elapsed time: 15 minutes 44.0 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.12 1.13 1.18 1/305 20275
.
when there are multiple merge request pipelines from the same branch
returns only related merge request pipelines
# [RSpecRunTime] RSpec elapsed time: 15 minutes 46.03 seconds. Current RSS: ~1376M. Threads: 4. load average: 1.12 1.13 1.18 1/305 20356
.
when detached merge request pipeline is run on head ref of the merge request
sets the head ref of the merge request to the pipeline ref
includes the detached merge request pipeline even though the ref is custom path
# [RSpecRunTime] RSpec elapsed time: 15 minutes 49.27 seconds. Current RSS: ~1374M. Threads: 4. load average: 1.11 1.13 1.18 1/305 20478
.
# [RSpecRunTime] Finishing example group spec/finders/ci/pipelines_for_merge_request_finder_spec.rb. It took 19.87 seconds. Expected to take 22.27 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/relative_positioning/item_context_spec.rb. Expected to take 20.66 seconds.
Gitlab::RelativePositioning::ItemContext
there are gaps at the start and end
is always possible to find a gap
index: 4
is possible to shift_right, which will consume the gap at the end
is possible to create_space_right, which will move the gap to immediately after
is possible to shift_left, which will consume the gap at the start
is possible to create_space_left, which will move the gap to immediately before
# [RSpecRunTime] RSpec elapsed time: 15 minutes 50.77 seconds. Current RSS: ~1367M. Threads: 4. load average: 1.11 1.13 1.18 3/305 20479
.
index: 3
is possible to shift_right, which will consume the gap at the end
is possible to create_space_right, which will move the gap to immediately after
is possible to shift_left, which will consume the gap at the start
is possible to create_space_left, which will move the gap to immediately before
index: 2
is possible to shift_right, which will consume the gap at the end
is possible to create_space_right, which will move the gap to immediately after
is possible to shift_left, which will consume the gap at the start
is possible to create_space_left, which will move the gap to immediately before
index: 1
is possible to shift_right, which will consume the gap at the end
is possible to create_space_right, which will move the gap to immediately after
is possible to shift_left, which will consume the gap at the start
is possible to create_space_left, which will move the gap to immediately before
index: 0
is possible to shift_right, which will consume the gap at the end
is possible to create_space_right, which will move the gap to immediately after
is possible to shift_left, which will consume the gap at the start
is possible to create_space_left, which will move the gap to immediately before
there is a gap of multiple spaces
is impossible to move the last element to the right
is impossible to move the first element to the left
is possible to move the last element to the left
is possible to move the first element to the right
is possible to find the gap from the right
is possible to find the gap from the left
there are several free spaces
current_pos: 102
finds the closest gap
finds the neighbours
finds the next relative_positions
finds the min/max positions
finds the min/max siblings
current_pos: 104
finds the closest gap
finds the neighbours
finds the next relative_positions
finds the min/max positions
finds the min/max siblings
current_pos: 106
finds the closest gap
finds the neighbours
finds the next relative_positions
finds the min/max positions
finds the min/max siblings
there is at least one free space
free_space: 101
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 15 minutes 56.15 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.10 1.12 1.18 1/304 20480
.
free_space: 102
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 15 minutes 57.84 seconds. Current RSS: ~1377M. Threads: 4. load average: 1.09 1.12 1.18 1/301 20481
.
free_space: 103
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 15 minutes 59.63 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.09 1.12 1.18 1/300 20482
.
free_space: 104
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 16 minutes 1.38 seconds. Current RSS: ~1374M. Threads: 4. load average: 1.09 1.12 1.18 1/299 20483
.
free_space: 105
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 16 minutes 3.11 seconds. Current RSS: ~1365M. Threads: 4. load average: 1.16 1.14 1.19 1/299 20484
.
free_space: 106
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 16 minutes 4.85 seconds. Current RSS: ~1366M. Threads: 4. load average: 1.16 1.14 1.19 1/299 20485
.
free_space: 107
can always find a gap before if there is space to the left
can always find a gap after if there is space to the right
# [RSpecRunTime] RSpec elapsed time: 16 minutes 6.55 seconds. Current RSS: ~1360M. Threads: 4. load average: 1.16 1.14 1.19 1/299 20486
.
#at_position
finds the item at the specified position
raises InvalidPosition when the item cannot be found
# [RSpecRunTime] Finishing example group spec/lib/gitlab/relative_positioning/item_context_spec.rb. It took 17.54 seconds. Expected to take 20.66 seconds.
# [RSpecRunTime] Starting example group spec/workers/resource_access_tokens/inactive_tokens_deletion_cron_worker_spec.rb. Expected to take 19.73 seconds.
ResourceAccessTokens::InactiveTokensDeletionCronWorker
behaves like worker with data consistency
.get_data_consistency_feature_flag_enabled?
returns true
.get_data_consistency
returns correct data consistency
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
#perform
Job arguments to DeleteUserWorker must be native JSON types, but :skip_authorization is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to DeleteUserWorker must be native JSON types, but :skip_authorization is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
Job arguments to DeleteUserWorker must be native JSON types, but :skip_authorization is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
initiates user deletion for every resource access token that became inactive before the cutoff
when enable_inactive_tokens_deletion_cron_worker FF is disabled
does not do anything
# [RSpecRunTime] RSpec elapsed time: 16 minutes 21.44 seconds. Current RSS: ~1347M. Threads: 4. load average: 1.13 1.13 1.18 1/299 20487
.
for runtime limit
when runtime limit is reached
schedules the worker in 2 minutes with the last processed user id value as the cursor
# [RSpecRunTime] RSpec elapsed time: 16 minutes 22.5 seconds. Current RSS: ~1344M. Threads: 4. load average: 1.12 1.13 1.18 1/299 20488
.
when runtime limit is not reached
does not schedule the worker
# [RSpecRunTime] Finishing example group spec/workers/resource_access_tokens/inactive_tokens_deletion_cron_worker_spec.rb. It took 15.74 seconds. Expected to take 19.73 seconds.
# [RSpecRunTime] Starting example group spec/policies/todo_policy_spec.rb. Expected to take 18.25 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: 16 minutes 27.49 seconds. Current RSS: ~1342M. Threads: 4. load average: 1.11 1.12 1.18 1/299 20489
.
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: 16 minutes 36.82 seconds. Current RSS: ~1340M. Threads: 4. load average: 1.09 1.12 1.18 1/299 20490
.
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 15.06 seconds. Expected to take 18.25 seconds.
# [RSpecRunTime] Starting example group spec/lib/api/entities/merge_request_basic_spec.rb. Expected to take 16.11 seconds.
API::Entities::MergeRequestBasic
includes expected fields
with :with_api_entity_associations scope
avoids N+1 queries
# [RSpecRunTime] RSpec elapsed time: 16 minutes 51.94 seconds. Current RSS: ~1415M. Threads: 4. load average: 0.99 1.10 1.17 1/304 20803
.
reviewers
includes assigned reviewers
squash
is expected to eq true
squash_on_merge
is expected to eq false
# [RSpecRunTime] Finishing example group spec/lib/api/entities/merge_request_basic_spec.rb. It took 14.69 seconds. Expected to take 16.11 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/zentao/client_spec.rb. Expected to take 15.24 seconds.
Gitlab::Zentao::Client
#new
if integration is nil
raises ConfigError
integration is provided
is initialized successfully
#fetch_product
with valid product
fetches the product
with invalid product
fetches the empty product
with invalid response
fetches the empty product
#ping
with valid resource
responds with success
with deleted resource
responds with unsuccess
#fetch_issues
returns the response
marking the issues as seen in the product
adds issue ids to the cache
does not add issue ids to the cache if max set size has been reached
does not duplicate issue ids in the cache
touches the cache ttl every time issues are fetched
# [RSpecRunTime] RSpec elapsed time: 17 minutes 0.28 second. Current RSS: ~1381M. Threads: 4. load average: 0.99 1.09 1.17 1/301 20804
.
#fetch_issue
with invalid id
raises Error
with valid id
when issue has been seen on the index
fetches the issue
when issue has not been seen on the index
raises RequestError
#url
api url
no ends slash
verify url
ends slash
verify url
no api url
joins url correctly
# [RSpecRunTime] Finishing example group spec/lib/gitlab/zentao/client_spec.rb. It took 12.43 seconds. Expected to take 15.24 seconds.
# [RSpecRunTime] Starting example group spec/models/ci/variable_spec.rb. Expected to take 14.26 seconds.
Ci::Variable
does not allow STI
behaves like CI variable
is expected to includes the Ci::HasVariable module
strips whitespaces when assigning key
can convert to runner variable
variable type
defines variable types
defaults variable type to env_var
supports variable type file
behaves like includes Limitable concern
#exceeds_limits?
without plan limits configured
is expected to eq false
without plan limits configured
is expected to eq false
with an existing model
is expected to eq true
validations
is expected to be a kind of Limitable
without plan limits configured
can create new models
with plan limits configured
can create new models
with an existing model
cannot create new models exceeding the plan limits
validations
is expected to includes the Presentable module
is expected to includes the Ci::Maskable module
is expected to includes the Ci::HidableVariable module
is expected to includes the HasEnvironmentScope module
is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure
is expected to allow :description to be ‹""›
is expected to allow :description to be ‹nil›
is expected to validate that the length of :description is at most 255
.by_environment_scope
is expected to contain exactly #<Ci::Variable id: 49, key: [FILTERED], value: nil, encrypted_value: "o/d+KbcLILhmPtrPbvrEYw==\n", en... "production", masked: false, variable_type: "env_var", raw: false, description: nil, hidden: false>
# [RSpecRunTime] RSpec elapsed time: 17 minutes 7.96 seconds. Current RSS: ~1380M. Threads: 4. load average: 0.99 1.09 1.17 1/299 20805
.
.unprotected
when variable is protected
returns nothing
when variable is not protected
returns the variable
loose foreign key on ci_variables.project_id
behaves like cleanup by a loose foreign key
cleans up (delete or nullify) the model
# [RSpecRunTime] RSpec elapsed time: 17 minutes 17.64 seconds. Current RSS: ~1366M. Threads: 4. load average: 0.99 1.09 1.16 1/299 20806
.
#audit_details
equals to the variable's key
# [RSpecRunTime] Finishing example group spec/models/ci/variable_spec.rb. It took 12.95 seconds. Expected to take 14.26 seconds.
# [RSpecRunTime] Starting example group spec/finders/concerns/finder_with_cross_project_access_spec.rb. Expected to take 13.5 seconds.
FinderWithCrossProjectAccess
when the user cannot read cross project
#execute
returns a issue if the check is disabled
returns an empty relation when the check is enabled
only queries once when check is enabled
only queries once when check is disabled
# [RSpecRunTime] RSpec elapsed time: 17 minutes 21.82 seconds. Current RSS: ~1370M. Threads: 4. load average: 0.99 1.09 1.16 1/299 20807
.
#find
checks the accessibility of the subject directly
returns the issue
# [RSpecRunTime] RSpec elapsed time: 17 minutes 24.02 seconds. Current RSS: ~1370M. Threads: 4. load average: 0.99 1.09 1.16 1/299 20808
.
#find_by
checks the accessibility of the subject directly
# [RSpecRunTime] RSpec elapsed time: 17 minutes 25.16 seconds. Current RSS: ~1369M. Threads: 4. load average: 0.99 1.09 1.16 1/299 20809
.
#find_by!
checks the accessibility of the subject directly
re-enables the check after the find failed
# [RSpecRunTime] RSpec elapsed time: 17 minutes 27.29 seconds. Current RSS: ~1365M. Threads: 4. load average: 1.00 1.08 1.16 1/299 20810
.
when the user can read cross project
returns the result
# [RSpecRunTime] RSpec elapsed time: 17 minutes 28.38 seconds. Current RSS: ~1367M. Threads: 4. load average: 1.00 1.08 1.16 1/299 20811
.
when specifying a model
.finder_model
is set correctly
# [RSpecRunTime] RSpec elapsed time: 17 minutes 29.49 seconds. Current RSS: ~1369M. Threads: 4. load average: 1.00 1.08 1.16 1/299 20812
.
# [RSpecRunTime] Finishing example group spec/finders/concerns/finder_with_cross_project_access_spec.rb. It took 11.81 seconds. Expected to take 13.5 seconds.
# [RSpecRunTime] Starting example group spec/policies/ci/runner_policy_spec.rb. Expected to take 12.77 seconds.
Ci::RunnerPolicy
ability :read_ephemeral_token
with request made by creator
is expected to be allowed :read_ephemeral_token
with request made by another user
is expected not to be allowed :read_ephemeral_token
ability :read_runner
behaves like runner read policy
without access
behaves like does not allow reading runners/runner managers on any scope
with instance runner
is expected not to be allowed :read_runner
with shared runners disabled for groups and projects
is expected not to be allowed :read_runner
# [RSpecRunTime] RSpec elapsed time: 17 minutes 32.27 seconds. Current RSS: ~1362M. Threads: 4. load average: 1.00 1.08 1.16 1/299 20813
.
with group runner
is expected not to be allowed :read_runner
with group invited as maintainer to group containing runner
is expected not to be allowed :read_runner
with sharing of group runners disabled
is expected not to be allowed :read_runner
with project runner
is expected not to be allowed :read_runner
with guest access
behaves like does not allow reading runners/runner managers on any scope
with instance runner
is expected not to be allowed :read_runner
with shared runners disabled for groups and projects
is expected not to be allowed :read_runner
with group runner
is expected not to be allowed :read_runner
with group invited as maintainer to group containing runner
is expected not to be allowed :read_runner
with sharing of group runners disabled
is expected not to be allowed :read_runner
with project runner
is expected not to be allowed :read_runner
with reporter access
behaves like does not allow reading runners/runner managers on any scope
with instance runner
is expected not to be allowed :read_runner
with shared runners disabled for groups and projects
is expected not to be allowed :read_runner
with group runner
is expected not to be allowed :read_runner
with group invited as maintainer to group containing runner
is expected not to be allowed :read_runner
with sharing of group runners disabled
is expected not to be allowed :read_runner
with project runner
is expected not to be allowed :read_runner
with developer access
behaves like does not allow reading runners/runner managers on any scope
with instance runner
is expected not to be allowed :read_runner
with shared runners disabled for groups and projects
is expected not to be allowed :read_runner
with group runner
is expected not to be allowed :read_runner
with group invited as maintainer to group containing runner
is expected not to be allowed :read_runner
with sharing of group runners disabled
is expected not to be allowed :read_runner
with project runner
is expected not to be allowed :read_runner
with maintainer access
behaves like a policy allowing reading instance runner/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
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: false, expect_can_read: true
is expected to be allowed :read_runner
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner
behaves like a policy allowing reading group runner/runner manager depending on runner sharing
with group runner
is expected to be allowed :read_runner
with sharing of group runners disabled
is expected to be allowed :read_runner
when user belongs to subgroup only
with runner visible to group project
is expected to be allowed :read_runner
with sharing of group runners disabled
is expected not to be allowed :read_runner
without projects in group
is expected not to be allowed :read_runner
when user is not maintainer in associated group
is expected not to be allowed :read_runner
when user is maintainer in a group invited to group as maintainer
is expected to be allowed :read_runner
when user is a reporter in a group invited to group as maintainer
is expected not to be allowed :read_runner
when runner is in subgroup
is expected to be allowed :read_runner
with sharing of group runners disabled
is expected not to be allowed :read_runner
with project runner
is expected to be allowed :read_runner
when user is not maintainer in parent group
is expected not to be allowed :read_runner
when user is maintainer in a group invited to project as maintainer
is expected to be allowed :read_runner
with owner access
behaves like a policy allowing reading instance runner/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
shared_runners_enabled_on_group: false, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: false, expect_can_read: true
is expected to be allowed :read_runner
shared_runners_enabled_on_group: true, shared_runners_enabled_on_project: true, expect_can_read: true
is expected to be allowed :read_runner
with group runner
is expected to be allowed :read_runner
with sharing of group runners disabled
is expected to be allowed :read_runner
with project runner
is expected to be allowed :read_runner
# [RSpecRunTime] Finishing example group spec/policies/ci/runner_policy_spec.rb. It took 11.84 seconds. Expected to take 12.77 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/components/fetch_service_spec.rb. Expected to take 11.72 seconds.
Ci::Components::FetchService
#execute
when address points to an external component
when component path points to a template file in a project
behaves like an external component
when user does not have permissions to read the code
returns a generic error response
when the user is external and the project is internal
returns an error response for external user accessing internal project
# [RSpecRunTime] RSpec elapsed time: 17 minutes 44.25 seconds. Current RSS: ~1352M. Threads: 4. load average: 1.00 1.08 1.16 1/305 20946
.
when version is a branch name
behaves like component address
when content exists
returns the content
when content does not exist
returns an error
when version is a tag name
behaves like component address
when content exists
returns the content
when content does not exist
returns an error
when version is a commit sha
behaves like component address
when content exists
returns the content
when content does not exist
returns an error
when version is not provided
returns an error
when version is ~latest
and the project is not a catalog resource
returns an error
and the project does not exist
returns an error
when project does not exist
returns an error
when host is different than the current instance host
returns an error
when component path points to a template directory in a project
behaves like an external component
when user does not have permissions to read the code
returns a generic error response
when the user is external and the project is internal
returns an error response for external user accessing internal project
# [RSpecRunTime] RSpec elapsed time: 17 minutes 48.98 seconds. Current RSS: ~1354M. Threads: 4. load average: 1.08 1.10 1.16 1/304 21003
.
when version is a branch name
behaves like component address
when content exists
returns the content
when content does not exist
returns an error
when version is a tag name
behaves like component address
when content exists
returns the content
when content does not exist
returns an error
when version is a commit sha
behaves like component address
when content exists
returns the content
when content does not exist
returns an error
when version is not provided
returns an error
when version is ~latest
and the project is not a catalog resource
returns an error
and the project does not exist
returns an error
when project does not exist
returns an error
when host is different than the current instance host
returns an error
when the project exists but the component does not
returns a content not found error
# [RSpecRunTime] Finishing example group spec/services/ci/components/fetch_service_spec.rb. It took 10.91 seconds. Expected to take 11.72 seconds.
# [RSpecRunTime] Starting example group spec/presenters/clusters/cluster_presenter_spec.rb. Expected to take 11.23 seconds.
Clusters::ClusterPresenter
inherits from Gitlab::View::Presenter::Delegated
#initialize
takes a cluster and optional params
exposes cluster
forwards missing methods to cluster
# [RSpecRunTime] RSpec elapsed time: 17 minutes 56.13 seconds. Current RSS: ~1369M. Threads: 4. load average: 1.15 1.11 1.17 1/304 21010
.
#provider_label
AWS provider
is expected to eq "Elastic Kubernetes Service"
GCP provider
is expected to eq "Google Kubernetes Engine"
#provider_management_url
AWS provider
is expected to include "us-east-1"
is expected to include "test-cluster"
GCP provider
is expected to include "us-central1-a"
is expected to include "test-cluster"
#show_path
project_type cluster
is expected to eq "/namespace617/project-668/-/clusters/18"
# [RSpecRunTime] RSpec elapsed time: 17 minutes 58.26 seconds. Current RSS: ~1365M. Threads: 4. load average: 1.14 1.11 1.17 1/304 21011
.
group_type cluster
is expected to eq "/groups/group120/-/clusters/21"
instance_type cluster
is expected to eq "/admin/clusters/24"
#read_only_kubernetes_platform_fields?
with a user-provided cluster
is expected to be falsy
with a GCP-provided cluster
is expected to be truthy
#health_data
with project cluster
behaves like cluster health data
is expected to include {:"clusters-path" => "/namespace618/project-669/-/clusters", :"documentation-path" => "/help/user/infrastructure/clusters/manage/clusters_health.md", :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}
# [RSpecRunTime] RSpec elapsed time: 18 minutes 1.09 seconds. Current RSS: ~1377M. Threads: 4. load average: 1.14 1.11 1.17 1/299 21012
.
with group cluster
behaves like cluster health data
is expected to include {:"clusters-path" => "/groups/group121/-/clusters", :"documentation-path" => "/help/user/infrastructure/clusters/manage/clusters_health.md", :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}
# [RSpecRunTime] Finishing example group spec/presenters/clusters/cluster_presenter_spec.rb. It took 9.77 seconds. Expected to take 11.23 seconds.
# [RSpecRunTime] Starting example group spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb. Expected to take 10.9 seconds.
Packages::Debian::DistributionReleaseFileUploader
Packages::Debian::ProjectDistribution
is expected to includes the Packages::GcsSignedUrlMetadata module
behaves like builds correct paths
#store_dir
behaves like matches the method pattern
is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_distribution\/\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}\/debian_project_distribution\/\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
remote file
with object storage enabled
can store file remotely
behaves like augmenting GCS signed URL with metadata
when the fog provider is not Google
is expected not to include "x-goog-custom-audit-gitlab-"
# [RSpecRunTime] RSpec elapsed time: 18 minutes 4.54 seconds. Current RSS: ~1370M. Threads: 4. load average: 1.13 1.11 1.17 1/299 21013
.
when the fog provider is Google
when on GitLab.com
is expected to include "x-goog-custom-audit-gitlab-namespace=1439" and "x-goog-custom-audit-gitlab-size-bytes=31"
is expected to include "x-goog-custom-audit-gitlab-project=666"
when an error occurs
is expected not to raise Exception
is expected not to include "x-goog-custom-audit-gitlab-"
tracks the error
# [RSpecRunTime] RSpec elapsed time: 18 minutes 9.14 seconds. Current RSS: ~1358M. Threads: 4. load average: 1.12 1.10 1.17 1/299 21014
.
when not on GitLab.com
is expected not to include "x-goog-custom-audit-gitlab-"
#filename
is expected to eq "Release"
with signed_file
is expected to eq "InRelease"
Packages::Debian::GroupDistribution
is expected to includes the Packages::GcsSignedUrlMetadata module
behaves like builds correct paths
#store_dir
behaves like matches the method pattern
is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_distribution\/\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}\/debian_group_distribution\/\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
remote file
with object storage enabled
can store file remotely
behaves like augmenting GCS signed URL with metadata
when the fog provider is not Google
is expected not to include "x-goog-custom-audit-gitlab-"
when the fog provider is Google
when on GitLab.com
is expected to include "x-goog-custom-audit-gitlab-namespace=1454" and "x-goog-custom-audit-gitlab-size-bytes=31"
example at ./spec/support/shared_examples/uploaders/gcs_signed_url_metadata_shared_examples.rb:38
when an error occurs
is expected not to raise Exception
is expected not to include "x-goog-custom-audit-gitlab-"
tracks the error
when not on GitLab.com
is expected not to include "x-goog-custom-audit-gitlab-"
#filename
is expected to eq "Release"
with signed_file
is expected to eq "InRelease"
# [RSpecRunTime] Finishing example group spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb. It took 10.24 seconds. Expected to take 10.9 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb. Expected to take 10.27 seconds.
Gitlab::Database::Migrations::Observers::TransactionDuration
records real and sub transactions duration
when there are sub-transactions
records transaction duration
# [RSpecRunTime] RSpec elapsed time: 18 minutes 19.67 seconds. Current RSS: ~1357M. Threads: 4. load average: 1.10 1.10 1.16 1/299 21015
.
when there are real-transactions
records transaction duration
# [RSpecRunTime] RSpec elapsed time: 18 minutes 24.38 seconds. Current RSS: ~1352M. Threads: 4. load average: 1.09 1.10 1.16 1/299 21016
.
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb. It took 12.14 seconds. Expected to take 10.27 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/checks/commits_check_spec.rb. Expected to take 9.95 seconds.
Gitlab::Checks::CommitsCheck
#validate!
when commits is not empty
when deletion is true
does not call check_signed_commit_authorship!
# [RSpecRunTime] RSpec elapsed time: 18 minutes 25.75 seconds. Current RSS: ~1352M. Threads: 4. load average: 1.09 1.10 1.16 1/300 21036
.
when commits are not signed by GitLab
does not call check_signed_commit_authorship!
# [RSpecRunTime] RSpec elapsed time: 18 minutes 27.19 seconds. Current RSS: ~1362M. Threads: 4. load average: 1.16 1.11 1.17 1/300 21056
.
when a commit is signed by GitLab
when author is equal to the committer
does not call check_signed_commit_authorship!
# [RSpecRunTime] RSpec elapsed time: 18 minutes 28.55 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.16 1.11 1.17 1/301 21076
.
when author is not equal to the committer
when protocol is web
raises an error
# [RSpecRunTime] RSpec elapsed time: 18 minutes 30.05 seconds. Current RSS: ~1379M. Threads: 4. load average: 1.16 1.11 1.17 1/302 21096
.
when protocol is ssh
does not raise an error nor call check_signed_commit_authorship!
# [RSpecRunTime] RSpec elapsed time: 18 minutes 31.51 seconds. Current RSS: ~1380M. Threads: 4. load average: 1.16 1.11 1.17 1/303 21116
.
when protocol is http
does not raise an error nor call check_signed_commit_authorship!
# [RSpecRunTime] RSpec elapsed time: 18 minutes 32.92 seconds. Current RSS: ~1382M. Threads: 4. load average: 1.15 1.11 1.17 1/303 21136
.
# [RSpecRunTime] Finishing example group spec/lib/gitlab/checks/commits_check_spec.rb. It took 8.53 seconds. Expected to take 9.95 seconds.
# [RSpecRunTime] Starting example group spec/services/deployments/update_service_spec.rb. Expected to take 9.72 seconds.
Deployments::UpdateService
#execute
can update the status to running
can update the status to success
can update the status to failed
can update the status to canceled
does not change the state if the status is invalid
links merge requests when changing the status to success
# [RSpecRunTime] RSpec elapsed time: 18 minutes 41.48 seconds. Current RSS: ~1392M. Threads: 4. load average: 1.14 1.11 1.17 1/304 21281
.
# [RSpecRunTime] Finishing example group spec/services/deployments/update_service_spec.rb. It took 8.57 seconds. Expected to take 9.72 seconds.
# [RSpecRunTime] Starting example group spec/models/members/last_group_owner_assigner_spec.rb. Expected to take 8.84 seconds.
LastGroupOwnerAssigner
does not allow STI
#execute
avoids extra database queries utilizing memoization
when there are unblocked owners
with one unblocked owner
is expected to change `GroupMember#last_owner` from nil to true
with multiple unblocked owners
is expected to change `GroupMember#last_owner` from nil to false
has many members passed
with owners from a parent
when top-level group
with group sharing
is expected to change `GroupMember#last_owner` from nil to true
when subgroup
is expected to change `GroupMember#last_owner` from nil to false
when there are blocked owners
with one blocked owner
is expected to change `GroupMember#last_owner` from nil to true
with multiple unblocked owners
is expected to change `GroupMember#last_owner` from nil to false
with multiple blocked owners
is expected to change `GroupMember#last_owner` from nil to false
with owners from a parent
when top-level group
with group sharing
is expected to change `GroupMember#last_owner` from nil to true
when subgroup
is expected to change `GroupMember#last_owner` from nil to true
with two owners
is expected to change `GroupMember#last_owner` from nil to false
# [RSpecRunTime] RSpec elapsed time: 18 minutes 48.5 seconds. Current RSS: ~1361M. Threads: 4. load average: 1.12 1.11 1.16 1/302 21282
.
when there are bot members
with a bot owner
is expected to change `GroupMember#last_owner` from nil to true
# [RSpecRunTime] Finishing example group spec/models/members/last_group_owner_assigner_spec.rb. It took 7.45 seconds. Expected to take 8.84 seconds.
# [RSpecRunTime] Starting example group spec/models/protected_tag_spec.rb. Expected to take 8.56 seconds.
ProtectedTag
does not allow STI
behaves like protected ref
Associations
is expected to belong to project required: false
Validations
is expected to validate that :name cannot be empty/falsy
ref_matcher delegates
#matching
behaves like RefMatcher#matching
when refs are strings
behaves like returns `refs` matching `ref_pattern`
when there is a match
is expected to contain exactly "v1.0"
when there is no match
is expected to be empty
when ref pattern is a wildcard
is expected to contain exactly "v1.0" and "v1.1"
when refs are ref objects
behaves like returns `refs` matching `ref_pattern`
when there is a match
is expected to contain exactly #<InstanceDouble(Gitlab::Git::Ref) (anonymous)>
when there is no match
is expected to be empty
when ref pattern is a wildcard
is expected to contain exactly #<InstanceDouble(Gitlab::Git::Ref) (anonymous)> and #<InstanceDouble(Gitlab::Git::Ref) (anonymous)>
#matches?
behaves like RefMatcher#matches?
when ref_pattern matches ref_name
is expected to be truthy
when ref_name is empty
is expected to be falsey
when ref_pattern wildcard matches ref_name
is expected to be truthy
when ref_pattern wildcard does not match ref_name
is expected to be falsey
when ref_pattern with ReDoS
does not cause catastrophic backtracking
#wildcard?
behaves like RefMatcher#wildcard?
when pattern is not a wildcard
is expected to be falsey
when pattern is a wildcard
is expected to be truthy
#commit
when project is present
when a commit exists with the same name
is expected to eq nil
when a commit does not exist with the same name
is expected to be nil
when project is nil
is expected to be nil
behaves like protected ref with access levels for
protected_ref_access_levels(*types)
is expected to have many create_access_levels inverse_of => protected_tag
is expected to accepts_nested_attributes_for :create_access_levels allow_destroy => true
Associations
is expected to belong to project required: false
is expected to have many create_access_levels inverse_of => protected_tag
Validation
is expected to validate that :project cannot be empty/falsy
#protected?
returns true when the tag matches a protected tag via direct match
returns true when the tag matches a protected tag via wildcard match
returns false when the tag does not match a protected tag via direct match
returns false when the tag does not match a protected tag via wildcard match
returns false when tag name is nil
with caching
correctly invalidates a cache
correctly uses the cached version
# [RSpecRunTime] RSpec elapsed time: 18 minutes 56.2 seconds. Current RSS: ~1411M. Threads: 4. load average: 1.11 1.10 1.16 1/298 21391
.
# [RSpecRunTime] Finishing example group spec/models/protected_tag_spec.rb. It took 7.25 seconds. Expected to take 8.56 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/checks/lfs_integrity_spec.rb. Expected to take 8.25 seconds.
Gitlab::Checks::LfsIntegrity
#objects_missing?
with LFS not enabled
skips integrity check
# [RSpecRunTime] RSpec elapsed time: 18 minutes 57.49 seconds. Current RSS: ~1411M. Threads: 4. load average: 1.10 1.10 1.16 1/299 21451
.
with LFS enabled
is true if any LFS blobs are missing
Job arguments to ProjectCacheWorker must be native JSON types, but :lfs_objects_size is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is false if LFS objects have already been uploaded
nil rev
skips integrity check
# [RSpecRunTime] RSpec elapsed time: 19 minutes 1.2 seconds. Current RSS: ~1410M. Threads: 4. load average: 1.10 1.10 1.16 1/304 21594
.
deletion
skips integrity check
# [RSpecRunTime] RSpec elapsed time: 19 minutes 2.27 seconds. Current RSS: ~1409M. Threads: 4. load average: 1.09 1.10 1.16 7/304 21613
.
no changes
skips integrity check
# [RSpecRunTime] RSpec elapsed time: 19 minutes 3.37 seconds. Current RSS: ~1408M. Threads: 4. load average: 1.09 1.10 1.16 1/304 21632
.
# [RSpecRunTime] Finishing example group spec/lib/gitlab/checks/lfs_integrity_spec.rb. It took 7.17 seconds. Expected to take 8.25 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/current_settings_spec.rb. Expected to take 7.75 seconds.
Gitlab::CurrentSettings
.expire_current_application_settings
expires the cache
.signup_limited?
when there are allowed domains
is expected to be truthy
when there are email restrictions
is expected to be truthy
when the admin has to approve signups
is expected to be truthy
when new users are set to external
is expected to be truthy
when there are no restrictions
is expected to be falsey
.signup_disabled?
when signup is enabled
is expected to be falsey
when signup is disabled
is expected to be truthy
#current_application_settings
allows keys to be called directly
when key is in ApplicationSettingFetcher
retrieves settings using ApplicationSettingFetcher
# [RSpecRunTime] RSpec elapsed time: 19 minutes 8.6 seconds. Current RSS: ~1489M. Threads: 4. load average: 1.16 1.12 1.17 1/303 21633
.
when key is in OrganizationSetting
and the current organization is known
retrieves settings using OrganizationSetting
and the current organization is unknown
raises NoMethodError
when key is in both sources
for test purposes, ensure the values are different
prefers ApplicationSettingFetcher
when key is in neither
raises NoMethodError
#current_application_settings?
when settings are cached in RequestStore
returns true
when ApplicationSettingFetcher.current_application_settings? returns true
returns true
when not cached and not in ApplicationSettingFetcher
returns false
# [RSpecRunTime] Finishing example group spec/lib/gitlab/current_settings_spec.rb. It took 6.78 seconds. Expected to take 7.75 seconds.
# [RSpecRunTime] Starting example group spec/policies/personal_snippet_policy_spec.rb. Expected to take 7.47 seconds.
PersonalSnippetPolicy
public snippet
no user
is expected to be disallowed :update_snippet and :admin_snippet
regular user
is expected to be disallowed :update_snippet and :admin_snippet
author
is expected to be allowed :update_snippet and :admin_snippet
behaves like admin access with admin mode
admin user
is expected to be allowed :update_snippet and :admin_snippet
internal snippet
no user
is expected to be disallowed :update_snippet and :admin_snippet
regular user
is expected to be disallowed :update_snippet and :admin_snippet
external user
is expected to be disallowed :update_snippet and :admin_snippet
snippet author
is expected to be allowed :update_snippet and :admin_snippet
behaves like admin access with admin mode
admin user
is expected to be allowed :update_snippet and :admin_snippet
private snippet
no user
is expected to be disallowed :update_snippet and :admin_snippet
regular user
is expected to be disallowed :update_snippet and :admin_snippet
external user
is expected to be disallowed :update_snippet and :admin_snippet
snippet author
is expected to be allowed :update_snippet and :admin_snippet
behaves like admin access with admin mode
admin user
is expected to be allowed :update_snippet and :admin_snippet
when the author of the snippet is banned
no user
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to be disallowed :update_snippet and :admin_snippet
regular user
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to be disallowed :update_snippet and :admin_snippet
external user
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to be disallowed :update_snippet and :admin_snippet
snippet author
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to be disallowed :update_snippet and :admin_snippet
behaves like admin access with admin mode
admin user
Job arguments to ElasticAssociationIndexerWorker must be native JSON types, but :issues is a Symbol.
See https://github.com/sidekiq/sidekiq/wiki/Best-Practices
To disable this error, add `Sidekiq.strict_args!(false)` to your initializer.
is expected to be allowed :update_snippet and :admin_snippet
# [RSpecRunTime] Finishing example group spec/policies/personal_snippet_policy_spec.rb. It took 8.34 seconds. Expected to take 7.47 seconds.
# [RSpecRunTime] Starting example group spec/workers/new_issue_worker_spec.rb. Expected to take 7.03 seconds.
NewIssueWorker
#perform
when an issue not found
does not call Services
logs an error
when a user not found
does not call Services
logs an error
# [RSpecRunTime] RSpec elapsed time: 19 minutes 20.37 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.14 1.11 1.16 1/299 21634
.
with a user
when the new issue author is blocked
behaves like a new issue where the current_user cannot trigger notifications
does not create a notification for the mentioned user
# [RSpecRunTime] RSpec elapsed time: 19 minutes 21.5 seconds. Current RSS: ~1365M. Threads: 4. load average: 1.14 1.11 1.16 1/299 21635
.
when the new issue author is a ghost
behaves like a new issue where the current_user cannot trigger notifications
does not create a notification for the mentioned user
when everything is ok
creates a new event record
creates a notification for the mentioned user
calls Issues::AfterCreateService
when a class is set
creates event with the correct type
# [RSpecRunTime] RSpec elapsed time: 19 minutes 23.72 seconds. Current RSS: ~1368M. Threads: 4. load average: 1.13 1.11 1.16 1/299 21636
.
when skip_notifications is true
does not call NotificationService
# [RSpecRunTime] Finishing example group spec/workers/new_issue_worker_spec.rb. It took 5.46 seconds. Expected to take 7.03 seconds.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/projects_resolver_spec.rb. Expected to take 6.59 seconds.
Resolvers::ProjectsResolver
#resolve
when user is not logged in
when no filters are applied
returns all public projects
when search filter is provided
returns matching project
# [RSpecRunTime] RSpec elapsed time: 19 minutes 27.45 seconds. Current RSS: ~1361M. Threads: 4. load average: 1.12 1.11 1.16 1/299 21637
.
when membership filter is provided
returns empty list
when searchNamespaces filter is provided
returns projects in a matching namespace
when searchNamespaces filter false
returns ignores namespace matches
when topics filter is provided
returns matching project
when personal filter is provided
returns all public projects
when user is logged in
when no filters are applied
returns all visible projects for the user
when search filter is provided
returns matching project
when membership filter is provided
returns projects that user is member of
when searchNamespaces filter is provided
returns projects from matching group
when searchNamespaces filter false
returns ignores namespace matches
when ids filter is provided
returns matching project
when sorting
when sorting by similarity
returns projects in order of similarity to search
# [RSpecRunTime] RSpec elapsed time: 19 minutes 29.53 seconds. Current RSS: ~1360M. Threads: 4. load average: 1.12 1.11 1.16 1/299 21638
.
when no sort is provided
returns projects in descending order by id
when topics filter is provided
returns matching project
when personal filter is provided
returns matching project
# [RSpecRunTime] Finishing example group spec/graphql/resolvers/projects_resolver_spec.rb. It took 5.78 seconds. Expected to take 6.59 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/bitbucket_import/importers/pull_request_importer_spec.rb. Expected to take 6.3 seconds.
Gitlab::BitbucketImport::Importers::PullRequestImporter
#execute
calls MergeRequestCreator
creates a merge request with the correct attributes
converts mentions in the description
logs its progress
increments the merge requests counter
when the state is closed
marks merge request as closed
# [RSpecRunTime] RSpec elapsed time: 19 minutes 32.19 seconds. Current RSS: ~1367M. Threads: 4. load average: 1.11 1.11 1.16 1/300 21669
.
when the state is opened
marks merge request as opened
when the source and target projects are different
skips the import
when the author does not have a bitbucket identity
sets the author and assignee to the project creator and adds the author to the description
when none of the reviewers have an identity
does not set reviewer_ids
when closed by user cannot be found
sets the merged by user to the project creator
when merge state is closed
sets the closed by user to the project creator
# [RSpecRunTime] RSpec elapsed time: 19 minutes 34.18 seconds. Current RSS: ~1363M. Threads: 4. load average: 1.11 1.11 1.16 1/300 21680
.
head_commit_sha for merge request diff
when the source commit hash from Bitbucket is found on the repo
is set to the source commit hash
when the source commit hash is not found but the merge commit hash is found
is set to the merge commit hash
when both the source commit and merge commit hash are not found
is nil
when an error is raised
tracks the failure and does not fail
# [RSpecRunTime] Finishing example group spec/lib/gitlab/bitbucket_import/importers/pull_request_importer_spec.rb. It took 5.25 seconds. Expected to take 6.3 seconds.
# [RSpecRunTime] Starting example group spec/models/legacy_diff_discussion_spec.rb. Expected to take 5.84 seconds.
LegacyDiffDiscussion
does not allow STI
#reply_attributes
includes line_code
# [RSpecRunTime] RSpec elapsed time: 19 minutes 36.71 seconds. Current RSS: ~1364M. Threads: 4. load average: 1.11 1.11 1.16 1/303 21745
.
#merge_request_version_params
when the discussion is active
returns an empty hash, which will end up showing the latest version
# [RSpecRunTime] RSpec elapsed time: 19 minutes 38.37 seconds. Current RSS: ~1371M. Threads: 4. load average: 1.02 1.09 1.15 1/305 21803
.
when the discussion is outdated
returns nil
# [RSpecRunTime] RSpec elapsed time: 19 minutes 40.01 seconds. Current RSS: ~1380M. Threads: 4. load average: 1.02 1.09 1.15 1/305 21861
.
# [RSpecRunTime] Finishing example group spec/models/legacy_diff_discussion_spec.rb. It took 5.03 seconds. Expected to take 5.84 seconds.
# [RSpecRunTime] Starting example group spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb. Expected to take 5.81 seconds.
gitlab:ci_secure_files
gitlab:ci_secure_files:migrate
invokes the migration helper to move files to object storage
when an error is raised while migrating
logs the error
# [RSpecRunTime] RSpec elapsed time: 19 minutes 41.5 seconds. Current RSS: ~1382M. Threads: 4. load average: 1.02 1.09 1.15 1/305 21862
.
# [RSpecRunTime] Finishing example group spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb. It took 5.36 seconds. Expected to take 5.81 seconds.
# [RSpecRunTime] RSpec elapsed time: 19 minutes 45.43 seconds. Current RSS: ~1365M. Threads: 4. load average: 1.10 1.10 1.16 1/304 21863
.
# [RSpecRunTime] Starting example group spec/models/packages/debian/group_distribution_spec.rb. Expected to take 5.42 seconds.
Packages::Debian::GroupDistribution
does not allow STI
behaves like Debian Distribution for common behavior
relationships
is expected to belong to creator class_name => User required: false
validations
#creator
is expected not to validate that :creator cannot be empty/falsy
#codename
is expected to validate that :codename cannot be empty/falsy
is expected to allow :codename to be ‹"buster"›
is expected to allow :codename to be ‹"buster-updates"›
is expected to allow :codename to be ‹"Debian10.5"›
is expected not to allow :codename to be ‹"jessie/updates"›
is expected not to allow :codename to be ‹"hé"›
#suite
is expected to allow :suite to be ‹nil›
is expected to allow :suite to be ‹"testing"›
is expected not to allow :suite to be ‹"hé"›
#origin
is expected to allow :origin to be ‹nil›
is expected to allow :origin to be ‹"Debian"›
is expected not to allow :origin to be ‹"hé"›
#label
is expected to allow :label to be ‹nil›
is expected to allow :label to be ‹"Debian"›
is expected not to allow :label to be ‹"hé"›
#version
is expected to allow :version to be ‹nil›
is expected to allow :version to be ‹"10.6"›
is expected not to allow :version to be ‹"hé"›
#description
is expected to allow :description to be ‹nil›
is expected to allow :description to be ‹"Debian 10.6 Released 26 September 2020"›
is expected to allow :description to be ‹"Hé !"›
#valid_time_duration_seconds
is expected to allow :valid_time_duration_seconds to be ‹nil›
is expected to allow :valid_time_duration_seconds to be ‹86400›
is expected not to allow :valid_time_duration_seconds to be ‹43200›
#file
is expected not to validate that :file cannot be empty/falsy
#file_store
is expected to validate that :file_store cannot be empty/falsy
#file_signature
is expected not to validate that :file_signature is empty/falsy
#signed_file
is expected not to validate that :signed_file cannot be empty/falsy
#signed_file_store
is expected to validate that :signed_file_store cannot be empty/falsy
scopes
.with_container
does not return other distributions
.with_codename
does not return other distributions
.with_suite
does not return other distributions
.with_codename_or_suite
passing codename
does not return other distributions
passing suite
does not return other distributions
behaves like Debian Distribution with group container
behaves like Debian Distribution for specific behavior
#unique_debian_suite_and_codename
with_existing_suite: false, suite: nil, codename: :keep, errors: nil
debian_group_distribution
is expected to be valid
with_existing_suite: false, suite: "testing", codename: :keep, errors: nil
debian_group_distribution
is expected to be valid
with_existing_suite: false, suite: nil, codename: :codename, errors: ["Codename has already been taken"]
debian_group_distribution
is expected to eq ["Codename has already been taken"]
with_existing_suite: false, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]
debian_group_distribution
is expected to eq ["Suite has already been taken as Codename"]
with_existing_suite: false, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]
debian_group_distribution
is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]
with_existing_suite: true, suite: nil, codename: :keep, errors: nil
debian_group_distribution
is expected to be valid
with_existing_suite: true, suite: "testing", codename: :keep, errors: nil
debian_group_distribution
is expected to be valid
with_existing_suite: true, suite: nil, codename: :codename, errors: ["Codename has already been taken"]
debian_group_distribution
is expected to eq ["Codename has already been taken"]
with_existing_suite: true, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]
debian_group_distribution
is expected to eq ["Suite has already been taken as Codename"]
with_existing_suite: true, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]
debian_group_distribution
is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]
with_existing_suite: true, suite: nil, codename: :suite, errors: ["Codename has already been taken as Suite"]
debian_group_distribution
is expected to eq ["Codename has already been taken as Suite"]
with_existing_suite: true, suite: :suite, codename: :keep, errors: ["Suite has already been taken"]
debian_group_distribution
is expected to eq ["Suite has already been taken"]
with_existing_suite: true, suite: :suite, codename: :suite, errors: ["Suite has already been taken", "Codename has already been taken as Suite"]
debian_group_distribution
is expected to eq ["Suite has already been taken", "Codename has already been taken as Suite"]
relationships
is expected to belong to group required: false
is expected to have one key class_name => Packages::Debian::GroupDistributionKey inverse_of => distribution
is expected to have many components class_name => Packages::Debian::GroupComponent inverse_of => distribution
is expected to have many architectures class_name => Packages::Debian::GroupArchitecture inverse_of => distribution
#group
is expected to validate that :group cannot be empty/falsy
group distribution specifics
#packages
returns only public packages with same codename
# [RSpecRunTime] RSpec elapsed time: 19 minutes 50.29 seconds. Current RSS: ~1358M. Threads: 4. load average: 1.09 1.10 1.16 1/299 21864
.
#package_files
returns only files from public packages with same codename
with pending destruction package files
does not return them
# [RSpecRunTime] Finishing example group spec/models/packages/debian/group_distribution_spec.rb. It took 4.97 seconds. Expected to take 5.42 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/debian/create_distribution_service_spec.rb. Expected to take 5.4 seconds.
Packages::Debian::CreateDistributionService
within a projet
behaves like Debian Create Distribution Service
with only the codename param
behaves like Create Debian Distribution
returns ServiceResponse
with codename, components and architectures
behaves like Create Debian Distribution
returns ServiceResponse
with invalid suite
behaves like Create Debian Distribution
returns ServiceResponse
with invalid component name
behaves like Create Debian Distribution
returns ServiceResponse
with invalid architecture name
behaves like Create Debian Distribution
returns ServiceResponse
within a group
behaves like Debian Create Distribution Service
with only the codename param
behaves like Create Debian Distribution
returns ServiceResponse
with codename, components and architectures
behaves like Create Debian Distribution
returns ServiceResponse
with invalid suite
behaves like Create Debian Distribution
returns ServiceResponse
with invalid component name
behaves like Create Debian Distribution
returns ServiceResponse
with invalid architecture name
behaves like Create Debian Distribution
returns ServiceResponse
# [RSpecRunTime] Finishing example group spec/services/packages/debian/create_distribution_service_spec.rb. It took 4.17 seconds. Expected to take 5.4 seconds.
# [RSpecRunTime] Starting example group spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb. Expected to take 5.04 seconds.
gitlab:audit_event_types rake tasks
compile_docs
invokes Gitlab::AuditEventTypes::CompileDocsTask with correct arguments
check_docs
invokes Gitlab::AuditEventTypes::CheckDocsTask with correct arguments
# [RSpecRunTime] Finishing example group spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb. It took 3.95 seconds. Expected to take 5.04 seconds.
# [RSpecRunTime] RSpec elapsed time: 19 minutes 58.59 seconds. Current RSS: ~1356M. Threads: 4. load average: 0.92 1.06 1.15 1/299 21865
.
# [RSpecRunTime] Starting example group spec/services/users/create_service_spec.rb. Expected to take 4.95 seconds.
Users::CreateService
#execute
with an admin user
when required parameters are provided
returns a persisted user
persists the given attributes
user is not confirmed if skip_confirmation param is not present
logs the user creation
executes system hooks
does not send a notification email
with user_detail created
creates the user_detail record
# [RSpecRunTime] RSpec elapsed time: 20 minutes 0.64 second. Current RSS: ~1367M. Threads: 4. load average: 0.92 1.06 1.15 1/299 21866
.
when the current_user is not persisted
persists the given attributes and sets created_by_id to nil
when force_random_password parameter is true
generates random password
when password_automatically_set parameter is true
persists the given attributes
when skip_confirmation parameter is true
confirms the user
when reset_password parameter is true
resets password even if a password parameter is given
sends a notification email
with nil user
persists the given attributes
with user_detail created
creates the user_detail record
# [RSpecRunTime] Finishing example group spec/services/users/create_service_spec.rb. It took 4.1 seconds. Expected to take 4.95 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/change_variable_service_spec.rb. Expected to take 4.71 seconds.
Ci::ChangeVariableService
container is a project
#execute
behaves like create variable flow
with no extra attributes
persists a variable
with masked attribute requested to be true
persists a variable
with masked attribute requested to be false
persists a variable
with masked_and_hidden attribute requested to be true
persists a variable and set hidden and masked attributes
with masked_and_hidden attribute requested to be false
persists a variable and set hidden and masked attributes
behaves like update variable flow
when a variable is not hidden
when a change to the masked attribute is requested
updates a variable
when a masked attribute is not requested for change
updates a variable
when a request is made to change a masked attribute to its current value
updates a variable
when a request is made to change the hidden attribute
fails to update the hidden attribute
when a request is made to change the hidden attribute to its current value
updates a variable
when a variable does not exist
raises a record not found error
when a variable is hidden
when a change to the masked attribute is requested
fails to update the masked attribute
when a masked attribute is not requested for change
updates a variable
when a request is made to change a masked attribute to its current value
updates a variable
when a request is made to change the hidden attribute
fails to update the hidden attribute
when a request is made to change the hidden attribute to its current value
updates a variable
when a variable does not exist
raises a record not found error
behaves like destroy variable flow
destroys a variable
when the variable does not exist
raises a record not found error
container is a group
#execute
behaves like create variable flow
with no extra attributes
persists a variable
with masked attribute requested to be true
persists a variable
with masked attribute requested to be false
persists a variable
with masked_and_hidden attribute requested to be true
persists a variable and set hidden and masked attributes
with masked_and_hidden attribute requested to be false
persists a variable and set hidden and masked attributes
behaves like update variable flow
when a variable is not hidden
when a change to the masked attribute is requested
updates a variable
when a masked attribute is not requested for change
updates a variable
when a request is made to change a masked attribute to its current value
updates a variable
when a request is made to change the hidden attribute
fails to update the hidden attribute
when a request is made to change the hidden attribute to its current value
updates a variable
when a variable does not exist
raises a record not found error
when a variable is hidden
when a change to the masked attribute is requested
fails to update the masked attribute
when a masked attribute is not requested for change
updates a variable
when a request is made to change a masked attribute to its current value
updates a variable
when a request is made to change the hidden attribute
fails to update the hidden attribute
when a request is made to change the hidden attribute to its current value
updates a variable
when a variable does not exist
raises a record not found error
behaves like destroy variable flow
destroys a variable
when the variable does not exist
raises a record not found error
# [RSpecRunTime] Finishing example group spec/services/ci/change_variable_service_spec.rb. It took 4.0 seconds. Expected to take 4.71 seconds.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/merge_requests_count_resolver_spec.rb. Expected to take 4.62 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: 20 minutes 10.42 seconds. Current RSS: ~1387M. Threads: 4. load average: 1.01 1.08 1.15 1/304 22004
.
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 4.01 seconds. Expected to take 4.62 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/test_failure_history_service_spec.rb. Expected to take 4.39 seconds.
Ci::TestFailureHistoryService
#execute
when pipeline has failed builds with test reports
creates unit test failures records
assigns partition_id to Ci::UnitTestFailure
when pipeline is not for the default branch
does not persist data
# [RSpecRunTime] RSpec elapsed time: 20 minutes 12.46 seconds. Current RSS: ~1396M. Threads: 4. load average: 1.01 1.08 1.15 1/305 22033
.
when test failure data have already been persisted with the same exact attributes
does not fail but does not persist new data
when number of failed unit tests exceed the limit
does not persist data
when number of failed unit tests across multiple builds exceed the limit
does not persist data
when test failure data have duplicates within the same payload (happens when the JUnit report has duplicate unit test names but have different failures)
does not fail but does not persist duplicate data
when pipeline has no failed builds with test reports
does not persist data
#should_track_failures?
when feature flag is enabled and pipeline ref is the default branch
is expected to eq true
when pipeline is not equal to the project default branch
is expected to eq false
when total number of builds with failed tests exceeds the max number of trackable failures
is expected to eq false
#async
when service should track failures
enqueues the worker when #perform_if_needed is called
when service should not track failures
does not enqueue the worker when #perform_if_needed is called
# [RSpecRunTime] Finishing example group spec/services/ci/test_failure_history_service_spec.rb. It took 3.6 seconds. Expected to take 4.39 seconds.
# [RSpecRunTime] Starting example group spec/services/git/base_hooks_service_spec.rb. Expected to take 4.3 seconds.
Git::BaseHooksService
Generating CI variables from push options
with empty push options
behaves like creates pipeline with params and expected variables
calls the create pipeline service
# [RSpecRunTime] RSpec elapsed time: 20 minutes 15.49 seconds. Current RSS: ~1396M. Threads: 4. load average: 1.01 1.08 1.15 3/306 22081
.
with push options not specifying variables
behaves like creates pipeline with params and expected variables
calls the create pipeline service
with push options specifying variables
behaves like creates pipeline with params and expected variables
calls the create pipeline service
with push options not specifying variables in correct format
behaves like creates pipeline with params and expected variables
calls the create pipeline service
Pipeline creation
when the pipeline is persisted
and there are no errors
returns success
and there are errors
does not log errors and returns success
when the pipeline wasn't persisted
and there are no errors
returns success
and there are errors
logs errors and returns success
notifying KAS
enqueues the notification worker
when KAS is disabled
is expected not to receive perform_async(*(any args)) 0 times
project hooks and integrations
hooks
active hooks
executes the hooks
inactive hooks
does not execute the hooks
with integrations
with active integrations
executes the services
with integrations.skip_ci push option
executes the services
with inactive integrations
does not execute the services
when execute_project_hooks param is set to false
does not execute hooks and integrations
push event
creates push event
create_push_event is set to false
does not create push event
# [RSpecRunTime] Finishing example group spec/services/git/base_hooks_service_spec.rb. It took 3.75 seconds. Expected to take 4.3 seconds.
# [RSpecRunTime] Starting example group spec/services/bulk_imports/repository_bundle_export_service_spec.rb. Expected to take 4.1 seconds.
BulkImports::RepositoryBundleExportService
#execute
when repository exists
bundles repository to disk
when repository does not exist
does not bundle repository to disk
when repository is empty
does not bundle repository to disk
when repository exists
bundles repository to disk
when repository does not exist
does not bundle repository to disk
when repository is empty
does not bundle repository to disk
# [RSpecRunTime] Finishing example group spec/services/bulk_imports/repository_bundle_export_service_spec.rb. It took 3.58 seconds. Expected to take 4.1 seconds.
# [RSpecRunTime] Starting example group spec/services/ci/pipelines/update_metadata_service_spec.rb. Expected to take 4.05 seconds.
Ci::Pipelines::UpdateMetadataService
when new name is too long
does not update the name
when pipeline has no name
updates the name
when pipeline has a name
updates the name
# [RSpecRunTime] Finishing example group spec/services/ci/pipelines/update_metadata_service_spec.rb. It took 2.02 seconds. Expected to take 4.05 seconds.
# [RSpecRunTime] Starting example group spec/services/integrations/slack_installation/instance_service_spec.rb. Expected to take 3.8 seconds.
Integrations::SlackInstallation::InstanceService
behaves like Integrations::SlackInstallation::BaseService
when Slack responds with an error
behaves like error response
returns error result with message
when HTTP error occurs when exchanging token
tracks the error
behaves like error response
returns error result with message
when slack_app_enabled is not set
behaves like error response
returns error result with message
when user is unauthorized
behaves like error response
returns error result with message
when Slack responds with an access token
handles propagation correctly
behaves like success response
returns success result and creates all needed records
when integration record already exists
behaves like success response
returns success result and creates all needed records
when installation record already exists
behaves like success response
returns success result and creates all needed records
when the team has other Slack installation records
updates related legacy records
behaves like success response
returns success result and creates all needed records
# [RSpecRunTime] RSpec elapsed time: 20 minutes 26.74 seconds. Current RSS: ~1366M. Threads: 4. load average: 1.01 1.07 1.15 1/300 22154
.
# [RSpecRunTime] Finishing example group spec/services/integrations/slack_installation/instance_service_spec.rb. It took 3.1 seconds. Expected to take 3.8 seconds.
# [RSpecRunTime] Starting example group spec/finders/projects/ml/candidate_finder_spec.rb. Expected to take 3.77 seconds.
Projects::Ml::CandidateFinder
.execute
by name
when params has no name
fetches all candidates in the experiment
does not fetch candidate not in experiment
# [RSpecRunTime] RSpec elapsed time: 20 minutes 29.68 seconds. Current RSS: ~1361M. Threads: 4. load average: 1.01 1.07 1.15 1/299 22155
.
when name is included in params
fetches the correct candidates
sorting
test_case: "default params", order_by: nil, order_by_type: nil, direction: nil, expected_order: [3, 2, 1, 0]
is expected to eq [#<Ml::Candidate id: 4, created_at: "2024-10-24 21:27:09.351279309 +0000", updated_at: "2024-10-24 21...-4503-b0be-c501ed6934a0", project_id: 746, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
test_case: "ascending order", order_by: nil, order_by_type: nil, direction: "ASC", expected_order: [0, 1, 2, 3]
is expected to eq [#<Ml::Candidate id: 1, created_at: "2024-10-24 21:27:07.948402053 +0000", updated_at: "2024-10-24 21...-4cbc-8f7f-76f3155d8e28", project_id: 749, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
test_case: "column is passed", order_by: "name", order_by_type: "column", direction: "ASC", expected_order: [1, 3, 0, 2]
is expected to eq [#<Ml::Candidate id: 2, created_at: "2024-10-24 21:27:08.490716058 +0000", updated_at: "2024-10-24 21...-46a5-b3d0-3cf2df694511", project_id: 748, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
test_case: "column is a metric", order_by: "auc", order_by_type: "metric", direction: nil, expected_order: [2, 0, 1, 3]
is expected to eq [#<Ml::Candidate id: 3, created_at: "2024-10-24 21:27:08.924850192 +0000", updated_at: "2024-10-24 21...-4cbc-8f7f-76f3155d8e28", project_id: 749, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
test_case: "invalid sort", order_by: nil, order_by_type: nil, direction: "INVALID", expected_order: [3, 2, 1, 0]
is expected to eq [#<Ml::Candidate id: 4, created_at: "2024-10-24 21:27:09.351279309 +0000", updated_at: "2024-10-24 21...-4503-b0be-c501ed6934a0", project_id: 746, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
test_case: "invalid order by", order_by: "INVALID", order_by_type: "column", direction: "desc", expected_order: [3, 2, 1, 0]
is expected to eq [#<Ml::Candidate id: 4, created_at: "2024-10-24 21:27:09.351279309 +0000", updated_at: "2024-10-24 21...-4503-b0be-c501ed6934a0", project_id: 746, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
test_case: "invalid order by metric", order_by: nil, order_by_type: "metric", direction: "desc", expected_order: []
is expected to eq []
when name and sort by metric is passed
is expected to eq [#<Ml::Candidate id: 3, created_at: "2024-10-24 21:27:08.924850192 +0000", updated_at: "2024-10-24 21...-4e95-9498-93ac70b508da", project_id: 747, internal_id: 1, ci_build_id: nil, model_version_id: nil>]
# [RSpecRunTime] Finishing example group spec/finders/projects/ml/candidate_finder_spec.rb. It took 3.39 seconds. Expected to take 3.77 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/namespace_project_ids_each_batch_spec.rb. Expected to take 3.55 seconds.
Gitlab::Database::NamespaceProjectIdsEachBatch
returns the correct project IDs
when passed an optional resolver
returns the correct project IDs filtered by resolver
# [RSpecRunTime] RSpec elapsed time: 20 minutes 33.21 seconds. Current RSS: ~1361M. Threads: 4. load average: 1.01 1.07 1.14 1/299 22156
.
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/namespace_project_ids_each_batch_spec.rb. It took 3.07 seconds. Expected to take 3.55 seconds.
# [RSpecRunTime] Starting example group spec/workers/integrations/create_external_cross_reference_worker_spec.rb. Expected to take 3.49 seconds.
Integrations::CreateExternalCrossReferenceWorker
has the `until_executed` deduplicate strategy
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
can run multiple times with the same arguments
# [RSpecRunTime] RSpec elapsed time: 20 minutes 35.26 seconds. Current RSS: ~1375M. Threads: 4. load average: 1.01 1.07 1.14 1/302 22216
.
mentionable_type: "Commit", mentionable_id: lazy { commit.id }
creates a cross reference
mentionable_type: "Issue", mentionable_id: lazy { issue.id }
creates a cross reference
mentionable_type: "MergeRequest", mentionable_id: lazy { merge_request.id }
creates a cross reference
mentionable_type: "Note", mentionable_id: lazy { note.id }
creates a cross reference
mentionable_type: "Snippet", mentionable_id: lazy { snippet.id }
creates a cross reference
error handling
project_id does not exist
behaves like does not create a cross reference
does not create a cross reference
author_id does not exist
behaves like does not create a cross reference
does not create a cross reference
mentionable_id does not exist
behaves like does not create a cross reference
does not create a cross reference
mentionable_type is not a Mentionable
behaves like does not create a cross reference
does not create a cross reference
mentionable_type is not a defined constant
behaves like does not create a cross reference
does not create a cross reference
mentionable is a Commit and mentionable_id does not exist
behaves like does not create a cross reference
does not create a cross reference
# [RSpecRunTime] Finishing example group spec/workers/integrations/create_external_cross_reference_worker_spec.rb. It took 2.48 seconds. Expected to take 3.49 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb. Expected to take 3.32 seconds.
Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged
behaves like value stream analytics event
is expected to be a kind of String
is expected to be a kind of Symbol
is expected to include ApplicationRecord(abstract)
is expected to respond to #timestamp_projection
is expected to respond to #html_description
is expected to be a kind of Array
#apply_query_customization
expects an ActiveRecord::Relation object as argument and returns a modified version of it
#hash_code
returns a hash that uniquely identifies an event
does not differ when the same object is built with the same params
behaves like LEFT JOIN-able value stream analytics event
can use the event as LEFT JOIN
when looking at the record with data
contains the timestamp expression
# [RSpecRunTime] RSpec elapsed time: 20 minutes 38.66 seconds. Current RSS: ~1396M. Threads: 4. load average: 1.09 1.09 1.15 1/305 22332
.
when looking at the record without data
returns nil for the timestamp expression
# [RSpecRunTime] Finishing example group spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb. It took 3.01 seconds. Expected to take 3.32 seconds.
# [RSpecRunTime] Starting example group spec/models/namespaces/descendants_spec.rb. Expected to take 3.28 seconds.
Namespaces::Descendants
does not allow STI
factory
up to date descendant record for a group
creates up-to-date descendant record for a subgroup
.expire_for
sets the outdated_at column for the given namespace ids
associations
is expected to belong to namespace required: false
.upsert_with_consistent_data
updates the namespace descendant record
.load_outdated_batch
returns outdated namespace_descendants ids
validations
is expected to validate that :namespace_id is case-sensitively unique
# [RSpecRunTime] Finishing example group spec/models/namespaces/descendants_spec.rb. It took 2.83 seconds. Expected to take 3.28 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sidekiq_middleware_spec.rb. Expected to take 3.07 seconds.
Gitlab::SidekiqMiddleware
.server_configurator
server metrics
records correct Gitaly duration
# [RSpecRunTime] RSpec elapsed time: 20 minutes 42.99 seconds. Current RSS: ~1392M. Threads: 4. load average: 1.08 1.08 1.15 1/304 22333
.
all optional middlewares on
behaves like a middleware chain
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
passes through the right middlewares
behaves like a middleware chain for mailer
behaves like a middleware chain
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
passes through the right middlewares
all optional middlewares off
behaves like a middleware chain
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
passes through the right middlewares
behaves like a middleware chain for mailer
behaves like a middleware chain
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
passes through the right middlewares
.client_configurator
behaves like a middleware chain
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_TestWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
passes through the right middlewares
behaves like a middleware chain for mailer
behaves like a middleware chain
DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)
passes through the right middlewares
# [RSpecRunTime] Finishing example group spec/lib/gitlab/sidekiq_middleware_spec.rb. It took 2.17 seconds. Expected to take 3.07 seconds.
# [RSpecRunTime] Starting example group spec/services/work_items/delete_service_spec.rb. Expected to take 3.05 seconds.
WorkItems::DeleteService
#execute
when user can delete the work item
is expected to be success
publish WorkItems::WorkItemDeletedEvent
when there are errors preventing to delete the work item
is expected to be error
returns error messages
# [RSpecRunTime] RSpec elapsed time: 20 minutes 45.79 seconds. Current RSS: ~1395M. Threads: 4. load average: 1.08 1.08 1.15 1/304 22352
.
when user cannot delete the work item
is expected to be error
returns error messages
does not publish WorkItems::WorkItemDeletedEvent
# [RSpecRunTime] Finishing example group spec/services/work_items/delete_service_spec.rb. It took 2.59 seconds. Expected to take 3.05 seconds.
# [RSpecRunTime] Starting example group spec/lib/banzai/filter/autolink_filter_spec.rb. Expected to take 2.85 seconds.
Banzai::Filter::AutolinkFilter
does not timeout with excessively long scheme and no link
does nothing when :autolink is false
does nothing with non-link text
does not timeout with excessively long scheme
when using default markdown engine
does nothing
autolinks when using single_line pipeline
autolinks when using commit_description pipeline
# [RSpecRunTime] RSpec elapsed time: 20 minutes 49.3 seconds. Current RSS: ~1439M. Threads: 4. load average: 1.07 1.08 1.15 1/299 22353
.
when the link is inside a tag
renders text after the link correctly for http
renders text after the link correctly for rdar
when using various schemes
autolinks http
autolinks https
autolinks ftp
autolinks short URLs
autolinks multiple URLs
accepts link_attr options
autolinks smb
autolinks multiple occurrences of smb
autolinks irc
autolinks rdar
does not autolink javascript
does not autolink bad URLs
does not autolink bad URLs after we remove trailing punctuation
does not include trailing punctuation
includes trailing punctuation when part of a balanced pair
removes trailing quotes
removes one closing punctuation mark when the punctuation in the link is unbalanced
does not double-encode HTML entities
does not include trailing HTML entities
escapes RTLO and other characters
encodes international domains
ignores valid links contained inside 'a' element
ignores valid links contained inside 'code' element
ignores valid links contained inside 'kbd' element
ignores valid links contained inside 'pre' element
ignores valid links contained inside 'script' element
ignores valid links contained inside 'style' element
# [RSpecRunTime] Finishing example group spec/lib/banzai/filter/autolink_filter_spec.rb. It took 3.96 seconds. Expected to take 2.85 seconds.
# [RSpecRunTime] Starting example group spec/services/import/source_users/update_service_spec.rb. Expected to take 2.84 seconds.
Import::SourceUsers::UpdateService
#execute
updates both placeholder user and source user
generates unique usernames
when placeholder user fails to be updated
does not update source_user
converts Users::UpdateService hash error to ServiceResponse
when source user fails to be updated
returns error
when source name is nil
does not update placeholder user name
does not update source_user source name
returns success
when source username is nil
does not update placeholder username
does not update source_user source username
returns success
when placeholder user is nil
does not update placeholder user and still update the source user
when placeholder user is an ImportUser
does not update placeholder user and still update the source user
when source user already has a source name set
does not update the source name
when source user already has a source username set
does not update the source username
# [RSpecRunTime] Finishing example group spec/services/import/source_users/update_service_spec.rb. It took 2.26 seconds. Expected to take 2.84 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb. Expected to take 2.69 seconds.
Gitlab::MarkdownCache::ActiveRecord::Extension
an unchanged markdown field
is expected to eq "`Foo`"
is expected to eq "<p dir=\"auto\"><code>Foo</code></p>"
is expected not to be truthy
is expected to eq 2162688
a changed markdown field
is expected to eq "<p dir=\"auto\"><code>Bar</code></p>"
is expected to eq 2162688
when a markdown field is set repeatedly to an empty string
is expected to receive refresh_markdown_cache(*(any args)) 1 time
when a markdown field is set repeatedly to a string which renders as empty html
is expected to receive refresh_markdown_cache(*(any args)) 1 time
a non-markdown field changed
is expected to eq 2
is expected to eq "`Foo`"
is expected to eq "<p dir=\"auto\"><code>Foo</code></p>"
is expected to eq 2162688
version is out of date
is expected to eq "<p dir=\"auto\"><code>Bar</code></p>"
is expected to eq 2162688
when an invalidating field is changed
invalidates the cache when project changes
invalidates the cache when author changes
.attributes
excludes cache attributes that are denylisted by default
#cached_html_up_to_date?
returns false if markdown has been changed but html has not
returns true if markdown has not been changed but html has
returns true if markdown and html have both been changed
returns false if the markdown field is set but the html is not
#refresh_markdown_cache!
skips saving if not persisted
saves the changes
with note
calls store_mentions!
during import
does not call store_mentions!
when persisted cache is newer than current version
does not save the generated HTML
when persisted cache is nil
does not save the generated HTML
# [RSpecRunTime] Finishing example group spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb. It took 2.39 seconds. Expected to take 2.69 seconds.
# [RSpecRunTime] Starting example group spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb. Expected to take 2.68 seconds.
Sidebars::Projects::Menus::MergeRequestsMenu
behaves like serializable as super_sidebar_menu_args
returns hash with provided attributes
returns hash with an item_id
#render?
when repository is not present
returns false
when repository is present
when user can read merge requests
returns true
when user cannot read merge requests
returns false
#pill_count
returns zero when there are no open merge requests
memoizes the query
when there are open merge requests
returns the number of open merge requests
formatting
when the count value is over 1000
returns truncated digits
# [RSpecRunTime] Finishing example group spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb. It took 2.17 seconds. Expected to take 2.68 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::UsersController routing
to #new
to #unblock
to #block
to #destroy
to #show
to #index
to #create
to #update
to #edit
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.27 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::ProjectsController routing
to #index
to #show
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.08 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::HooksController routing
to #update
to #edit
to #test
to #destroy
to #index
to #create
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.2 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::HookLogsController routing
to #retry
to #show
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.07 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::BackgroundJobsController routing
to #show
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.04 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::DashboardController routing
to #index
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.05 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::HealthCheckController routing
to #show
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.05 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::InitialSetupController routing
PATCH #update
PUT #update
GET #new
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.1 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::DevOpsReportController routing
to #show
admin devops reports
redirects from /admin/dev_ops_report to /admin/dev_ops_reports
# [RSpecRunTime] RSpec elapsed time: 21 minutes 0.68 second. Current RSS: ~1481M. Threads: 5. load average: 1.06 1.08 1.15 1/304 22415
.
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 2.77 seconds. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::GroupsController routing
to #show
to #edit
to #index
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.12 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::OrganizationsController routing
to #index
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.05 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::SessionsController routing
to #new
to #destroy
to #create
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.11 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::PlanLimitsController routing
to #create
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.04 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/routing/admin_routing_spec.rb. Expected to take 2.57 seconds.
Admin::RunnersController routing
to #runner_setup_scripts
# [RSpecRunTime] Finishing example group spec/routing/admin_routing_spec.rb. It took 0.04 second. Expected to take 2.57 seconds.
# [RSpecRunTime] Starting example group spec/services/projects/detect_repository_languages_service_spec.rb. Expected to take 2.52 seconds.
Projects::DetectRepositoryLanguagesService
#execute
without previous detection
inserts new programming languages in the database
inserts the repository langauges
updates detected_repository_languages flag
# [RSpecRunTime] RSpec elapsed time: 21 minutes 2.57 seconds. Current RSS: ~1494M. Threads: 5. load average: 1.22 1.11 1.16 1/305 22454
.
with a previous detection
updates the repository languages
doesn't touch detected_repository_languages flag
when no repository exists
has no languages
# [RSpecRunTime] Finishing example group spec/services/projects/detect_repository_languages_service_spec.rb. It took 2.29 seconds. Expected to take 2.52 seconds.
# [RSpecRunTime] Starting example group spec/policies/gitlab/git/tag_policy_spec.rb. Expected to take 2.44 seconds.
Gitlab::Git::TagPolicy
when user is a project maintainer
is expected to be allowed :delete_tag
when the tag is protected
is expected to be allowed :delete_tag
# [RSpecRunTime] RSpec elapsed time: 21 minutes 5.23 seconds. Current RSS: ~1495M. Threads: 5. load average: 1.22 1.11 1.16 1/305 22486
.
when user is a project developer
is expected to be allowed :delete_tag
when the tag is protected
is expected to be disallowed :delete_tag
when user is a project guest
is expected to be disallowed :delete_tag
when user is a project owner
is expected to be allowed :delete_tag
when the tag is protected
is expected to be allowed :delete_tag
# [RSpecRunTime] Finishing example group spec/policies/gitlab/git/tag_policy_spec.rb. It took 2.2 seconds. Expected to take 2.44 seconds.
# [RSpecRunTime] Starting example group spec/services/merge_requests/mergeability/run_checks_service_spec.rb. Expected to take 2.28 seconds.
MergeRequests::Mergeability::RunChecksService
#execute
when every check is skipped
is still a success
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 0
# [RSpecRunTime] RSpec elapsed time: 21 minutes 7.02 seconds. Current RSS: ~1498M. Threads: 5. load average: 1.20 1.11 1.16 1/306 22545
.
when a check is skipped
does not execute the check
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 16
when one check fails
returns the failed check
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 16
when one check is checking
returns the checking check
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 16
when one check is inactive
is still a success
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 16
when a check is not skipped
when the check is cacheable
when the check is cached
returns the cached result
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 1
when the check is not cached
writes and returns the result
behaves like checks are all executed
when all checks are set to be executed
is expected to eq 1
when check is not cacheable
does not call the results store
# [RSpecRunTime] Finishing example group spec/services/merge_requests/mergeability/run_checks_service_spec.rb. It took 1.97 seconds. Expected to take 2.28 seconds.
# [RSpecRunTime] Starting example group spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb. Expected to take 2.23 seconds.
CloudSeed::GoogleCloud::ServiceAccountsService
find_for_project
when a project does not have GCP service account vars
returns an empty list
when a project has GCP service account ci vars
returns a list of service accounts
add_for_project
saves GCP creds as project CI vars
replaces previously stored CI vars with new CI vars
underlying project CI vars must be protected as per value
# [RSpecRunTime] RSpec elapsed time: 21 minutes 9.48 seconds. Current RSS: ~1452M. Threads: 5. load average: 1.20 1.11 1.16 1/306 22546
.
# [RSpecRunTime] Finishing example group spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb. It took 1.94 seconds. Expected to take 2.23 seconds.
# [RSpecRunTime] Starting example group spec/finders/groups/accepting_project_transfers_finder_spec.rb. Expected to take 2.15 seconds.
Groups::AcceptingProjectTransfersFinder
#execute
only returns groups where the user has access to transfer projects to
# [RSpecRunTime] RSpec elapsed time: 21 minutes 11.39 seconds. Current RSS: ~1431M. Threads: 5. load average: 1.20 1.11 1.16 1/305 22547
.
# [RSpecRunTime] Finishing example group spec/finders/groups/accepting_project_transfers_finder_spec.rb. It took 1.91 seconds. Expected to take 2.15 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/alert_management/prometheus_integration_type_spec.rb. Expected to take 2.09 seconds.
Types::AlertManagement::PrometheusIntegrationType
is expected to eq "AlertManagementPrometheusIntegration"
is expected to require graphql authorizations :admin_project
resolvers
behaves like has field with value
correctly renders the field
behaves like has field with value
correctly renders the field
behaves like has field with value
correctly renders the field
behaves like has field with value
correctly renders the field
behaves like has field with value
correctly renders the field
with alerting setting
behaves like has field with value
correctly renders the field
a group integration
field: id
is redacted
field: type
is redacted
field: name
is redacted
field: active
is redacted
field: token
is redacted
field: url
is redacted
field: apiUrl
is redacted
# [RSpecRunTime] Finishing example group spec/graphql/types/alert_management/prometheus_integration_type_spec.rb. It took 1.61 seconds. Expected to take 2.09 seconds.
# [RSpecRunTime] Starting example group spec/graphql/types/diff_type_spec.rb. Expected to take 2.03 seconds.
Types::DiffType
contains attributes related to diff
is expected to eq "Diff"
#diff
returns the diff of the passed commit
# [RSpecRunTime] RSpec elapsed time: 21 minutes 14.66 seconds. Current RSS: ~1428M. Threads: 5. load average: 1.18 1.11 1.15 1/306 22606
.
# [RSpecRunTime] Finishing example group spec/graphql/types/diff_type_spec.rb. It took 1.66 seconds. Expected to take 2.03 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb. Expected to take 2.0 seconds.
Gitlab::Ci::Pipeline::Expression::Lexeme::NotEquals
.build
with non-evaluable operands
creates a new instance of the token
with evaluable operands
creates a new instance of the token
.type
is an operator
.precedence
has a precedence
#evaluate
when left and right are equal
left_value: "string", right_value: "string"
is expected to eq false
left_value: 1, right_value: 1
is expected to eq false
left_value: "", right_value: ""
is expected to eq false
left_value: nil, right_value: nil
is expected to eq false
when left and right are not equal
left_value: "one string", right_value: "two string"
is expected to eq true
left_value: "one string", right_value: 1
is expected to eq true
left_value: "one string", right_value: 2
is expected to eq true
left_value: "one string", right_value: ""
is expected to eq true
left_value: "one string", right_value: nil
is expected to eq true
left_value: "one string", right_value: false
is expected to eq true
left_value: "one string", right_value: true
is expected to eq true
left_value: "two string", right_value: "one string"
is expected to eq true
left_value: "two string", right_value: 1
is expected to eq true
left_value: "two string", right_value: 2
is expected to eq true
left_value: "two string", right_value: ""
is expected to eq true
left_value: "two string", right_value: nil
is expected to eq true
left_value: "two string", right_value: false
is expected to eq true
left_value: "two string", right_value: true
is expected to eq true
left_value: 1, right_value: "one string"
is expected to eq true
left_value: 1, right_value: "two string"
is expected to eq true
left_value: 1, right_value: 2
is expected to eq true
left_value: 1, right_value: ""
is expected to eq true
left_value: 1, right_value: nil
is expected to eq true
left_value: 1, right_value: false
is expected to eq true
left_value: 1, right_value: true
is expected to eq true
left_value: 2, right_value: "one string"
is expected to eq true
left_value: 2, right_value: "two string"
is expected to eq true
left_value: 2, right_value: 1
is expected to eq true
left_value: 2, right_value: ""
is expected to eq true
left_value: 2, right_value: nil
is expected to eq true
left_value: 2, right_value: false
is expected to eq true
left_value: 2, right_value: true
is expected to eq true
left_value: "", right_value: "one string"
is expected to eq true
left_value: "", right_value: "two string"
is expected to eq true
left_value: "", right_value: 1
is expected to eq true
left_value: "", right_value: 2
is expected to eq true
left_value: "", right_value: nil
is expected to eq true
left_value: "", right_value: false
is expected to eq true
left_value: "", right_value: true
is expected to eq true
left_value: nil, right_value: "one string"
is expected to eq true
left_value: nil, right_value: "two string"
is expected to eq true
left_value: nil, right_value: 1
is expected to eq true
left_value: nil, right_value: 2
is expected to eq true
left_value: nil, right_value: ""
is expected to eq true
left_value: nil, right_value: false
is expected to eq true
left_value: nil, right_value: true
is expected to eq true
left_value: false, right_value: "one string"
is expected to eq true
left_value: false, right_value: "two string"
is expected to eq true
left_value: false, right_value: 1
is expected to eq true
left_value: false, right_value: 2
is expected to eq true
left_value: false, right_value: ""
is expected to eq true
left_value: false, right_value: nil
is expected to eq true
left_value: false, right_value: true
is expected to eq true
left_value: true, right_value: "one string"
is expected to eq true
left_value: true, right_value: "two string"
is expected to eq true
left_value: true, right_value: 1
is expected to eq true
left_value: true, right_value: 2
is expected to eq true
left_value: true, right_value: ""
is expected to eq true
left_value: true, right_value: nil
is expected to eq true
left_value: true, right_value: false
is expected to eq true
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb. It took 1.64 seconds. Expected to take 2.0 seconds.
# [RSpecRunTime] Starting example group spec/views/layouts/devise_empty.html.haml_spec.rb. Expected to take 1.91 seconds.
layouts/devise_empty
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] RSpec elapsed time: 21 minutes 17.49 seconds. Current RSS: ~1446M. Threads: 5. load average: 1.17 1.11 1.15 1/302 22607
.
behaves like a layout which reflects the application color mode setting
as a color mode layout
when no color mode is explicitly selected
renders with the default color
when user is authenticated & has selected a specific color mode
chosen_color_mode: #<struct Gitlab::ColorModes::Mode id=1, name="Light", css_class="gl-light">
renders with the Light color mode
chosen_color_mode: #<struct Gitlab::ColorModes::Mode id=2, name="Dark (Experiment)", css_class="gl-dark">
renders with the Dark (Experiment) color mode
chosen_color_mode: #<struct Gitlab::ColorModes::Mode id=3, name="Auto (Experiment)", css_class="gl-system">
renders with the Auto (Experiment) color mode
# [RSpecRunTime] Finishing example group spec/views/layouts/devise_empty.html.haml_spec.rb. It took 1.46 seconds. Expected to take 1.91 seconds.
# [RSpecRunTime] Starting example group spec/services/branch_rules/base_service_spec.rb. Expected to take 1.88 seconds.
BranchRules::BaseService
#execute
with skip_authorization: false
behaves like missing_method_error
raises a missing method error
# [RSpecRunTime] RSpec elapsed time: 21 minutes 20.38 seconds. Current RSS: ~1451M. Threads: 5. load average: 1.17 1.11 1.15 1/302 22626
.
with skip_authorization: true
when branch_rule is an instance of Projects::BranchRule
behaves like missing_method_error
raises a missing method error
when branch_rule is not an instance of Projects::BranchRule
returns an unknown branch rule type error
when branch_rule is nil
returns an unknown branch rule type error
# [RSpecRunTime] Finishing example group spec/services/branch_rules/base_service_spec.rb. It took 2.69 seconds. Expected to take 1.88 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/health_status/indicators/wal_rate_spec.rb. Expected to take 1.8 seconds.
Gitlab::Database::HealthStatus::Indicators::WalRate
behaves like Prometheus Alert based health indicator
#evaluate
when using prometheus client
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
when using mimir client
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
when using prometheus client
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
when using mimir client
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/wal_rate_spec.rb. It took 1.44 seconds. Expected to take 1.8 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/pipeline/chain/create_spec.rb. Expected to take 1.77 seconds.
Gitlab::Ci::Pipeline::Chain::Create
when pipeline is ready to be saved
saves a pipeline
does not break the chain
creates stages
when pipeline has validation errors
breaks the chain
appends validation error
when pipeline has duplicate iid
breaks the chain
appends validation error
flushes internal id records for pipelines
propagates different uniqueness errors
tags persistence
without tags
extracts an empty tag list
with tags
bulk inserts tags
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/pipeline/chain/create_spec.rb. It took 1.59 seconds. Expected to take 1.77 seconds.
# [RSpecRunTime] Starting example group spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb. Expected to take 1.73 seconds.
Rubocop::Cop::RSpec::BeforeAllRoleAssignment
with `let`
and `before_all`
does not register an offense
and `before`
does not register an offense
with `let_it_be` variants
let_it_be: :let_it_be
and `before_all`
does not register an offense
and `before`
and without role methods
does not register an offense
and role methods
role_method: :add_guest
registers an offense
role_method: :add_reporter
registers an offense
role_method: :add_developer
registers an offense
role_method: :add_maintainer
registers an offense
role_method: :add_owner
registers an offense
role_method: :add_role
registers an offense
without nested contexts
registers an offense
with nested contexts
registers an offense
edge cases
with unrelated `let_it_be` definition
does not register an offense
with many role method calls
registers an offense
with alternative example groups
registers an offense
with `let_it_be` outside of the ancestors chain
does not register an offense
let_it_be: :let_it_be_with_reload
and `before_all`
does not register an offense
and `before`
and without role methods
does not register an offense
and role methods
role_method: :add_guest
registers an offense
role_method: :add_reporter
registers an offense
role_method: :add_developer
registers an offense
role_method: :add_maintainer
registers an offense
role_method: :add_owner
registers an offense
role_method: :add_role
registers an offense
without nested contexts
registers an offense
with nested contexts
registers an offense
edge cases
with unrelated `let_it_be` definition
does not register an offense
with many role method calls
registers an offense
with alternative example groups
registers an offense
with `let_it_be` outside of the ancestors chain
does not register an offense
let_it_be: :let_it_be_with_refind
and `before_all`
does not register an offense
and `before`
and without role methods
does not register an offense
and role methods
role_method: :add_guest
registers an offense
role_method: :add_reporter
registers an offense
role_method: :add_developer
registers an offense
role_method: :add_maintainer
registers an offense
role_method: :add_owner
registers an offense
role_method: :add_role
registers an offense
without nested contexts
registers an offense
with nested contexts
registers an offense
edge cases
with unrelated `let_it_be` definition
does not register an offense
with many role method calls
registers an offense
with alternative example groups
registers an offense
with `let_it_be` outside of the ancestors chain
does not register an offense
# [RSpecRunTime] Finishing example group spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb. It took 1.38 seconds. Expected to take 1.73 seconds.
# [RSpecRunTime] Starting example group spec/services/alert_management/metric_images/upload_service_spec.rb. Expected to take 1.69 seconds.
AlertManagement::MetricImages::UploadService
#execute
user does not have permissions
behaves like no metric saved, an error given
returns an error and does not upload
user has permissions
behaves like uploads the metric
uploads the metric and returns a success
no url given
behaves like uploads the metric
uploads the metric and returns a success
record invalid
behaves like no metric saved, an error given
returns an error and does not upload
user is guest
behaves like no metric saved, an error given
returns an error and does not upload
# [RSpecRunTime] Finishing example group spec/services/alert_management/metric_images/upload_service_spec.rb. It took 1.4 seconds. Expected to take 1.69 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/harbor/query_spec.rb. Expected to take 1.65 seconds.
Gitlab::Harbor::Query
Validations
page
with valid page
initialize successfully
with invalid page
initialize failed
limit
with valid limit
initialize successfully
with invalid limit
with limit less than 0
initialize failed
with limit greater than 25
initialize failed
repository_id
with valid repository_id
initialize successfully
with invalid repository_id
initialize failed
artifact_id
with valid artifact_id
initialize successfully
with invalid artifact_id
initialize failed
sort
with valid sort
initialize successfully
with invalid sort
initialize failed
search
search_param: "name=desc", is_valid: true
validates according to the regex
search_param: "name=value1,name=value-2", is_valid: true
validates according to the regex
search_param: "name=value1,name=value_2", is_valid: false
validates according to the regex
search_param: "name=desc,key=value", is_valid: false
validates according to the regex
search_param: "name=value1, name=value2", is_valid: false
validates according to the regex
search_param: "name", is_valid: false
validates according to the regex
#repositories
when params is {}
fills default params
when params contains options
fills params with standard of Harbor
when params contains invalid sort option
ignores invalid sort params
when client.get_repositories returns data
returns the right repositories data
#artifacts
when params is {}
fills default params
when params contains options
fills params with standard of Harbor
when params contains invalid sort option
ignores invalid sort params
when client.get_artifacts returns data
returns the right artifacts data
#tags
when params is {}
fills default params
when params contains options
fills params with standard of Harbor
when params contains invalid sort option
ignores invalid sort params
when client.get_tags returns data
returns the right tags data
# [RSpecRunTime] Finishing example group spec/lib/gitlab/harbor/query_spec.rb. It took 1.2 seconds. Expected to take 1.65 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage/metrics/instrumentations/count_projects_metric_spec.rb. Expected to take 1.61 seconds.
Gitlab::Usage::Metrics::Instrumentations::CountProjectsMetric
with all time frame
behaves like a correct instrumented metric value and query
behaves like a correct instrumented metric value
has correct value
# [RSpecRunTime] RSpec elapsed time: 21 minutes 28.76 seconds. Current RSS: ~1447M. Threads: 5. load average: 1.14 1.10 1.15 1/300 22627
.
behaves like a correct instrumented metric query
has correct generate query
with 28d time frame
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/count_projects_metric_spec.rb. It took 1.4 seconds. Expected to take 1.61 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb. Expected to take 1.56 seconds.
Gitlab::Pagination::Keyset::CursorPager
#paginate
returns the limited relation
#finalize
passes information about next page to request
when retrieving the last page
does not build information about the next page
when retrieving an empty page
does not build information about the next page
# [RSpecRunTime] Finishing example group spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb. It took 0.87 second. Expected to take 1.56 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/middleware/read_only_spec.rb. Expected to take 1.51 seconds.
Gitlab::Middleware::ReadOnly
when database is read-only
behaves like write access for a read-only GitLab instance
normal requests to a read-only GitLab instance
expects PATCH requests to be disallowed
expects PUT requests to be disallowed
expects POST requests to be disallowed
expects a internal POST request to be allowed after a disallowed request
expects DELETE requests to be disallowed
expects POST of new file that looks like an LFS batch url to be disallowed
returns last_vistited_url for disallowed request
allowlisted requests
expects a POST internal request to be allowed
expects a POST internal request with trailing slash to be allowed
expects a graphql request to be allowed
expects a graphql request with trailing slash to be allowed
relative URL is configured
expects a graphql request to be allowed
expects a graphql request with trailing slash to be allowed
sidekiq admin requests
mounted_at: ""
allows requests
allows requests with trailing slash
mounted_at: "/"
allows requests
allows requests with trailing slash
mounted_at: "/gitlab"
allows requests
allows requests with trailing slash
mounted_at: "/gitlab/"
allows requests
allows requests with trailing slash
mounted_at: "/gitlab/gitlab"
allows requests
allows requests with trailing slash
mounted_at: "/gitlab/gitlab/"
allows requests
allows requests with trailing slash
description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"
expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed
expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL with trailing slash to be allowed
description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"
expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed
expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL with trailing slash to be allowed
description: "user sign out", path: "/users/sign_out"
expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed
expects a POST description: "user sign out", path: "/users/sign_out" URL with trailing slash to be allowed
description: "admin session", path: "/admin/session"
expects a POST description: "admin session", path: "/admin/session" URL to be allowed
expects a POST description: "admin session", path: "/admin/session" URL with trailing slash to be allowed
description: "admin session destroy", path: "/admin/session/destroy"
expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed
expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL with trailing slash to be allowed
description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"
expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed
expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL with trailing slash not to be allowed
description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"
expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed
expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL with trailing slash not to be allowed
description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"
expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed
expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL with trailing slash not to be allowed
JSON requests to a read-only GitLab instance
expects PATCH requests to be disallowed
expects PUT requests to be disallowed
expects POST requests to be disallowed
expects DELETE requests to be disallowed
# [RSpecRunTime] Finishing example group spec/lib/gitlab/middleware/read_only_spec.rb. It took 1.28 seconds. Expected to take 1.51 seconds.
# [RSpecRunTime] Starting example group spec/workers/packages/helm/extraction_worker_spec.rb. Expected to take 1.48 seconds.
Packages::Helm::ExtractionWorker
#perform
with valid package file
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
updates package and package file
with invalid package file id
doesn't update helm_file_metadatum
with controlled errors
with an empty package file
behaves like handling error
mark the package as errored
with an invalid YAML
behaves like handling error
mark the package as errored
with an invalid Chart.yaml
behaves like handling error
mark the package as errored
with uncontrolled errors
behaves like handling error
mark the package as errored
# [RSpecRunTime] Finishing example group spec/workers/packages/helm/extraction_worker_spec.rb. It took 1.32 seconds. Expected to take 1.48 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/jira_import/handle_labels_service_spec.rb. Expected to take 1.44 seconds.
Gitlab::JiraImport::HandleLabelsService
#execute
when some provided jira labels are missing
creates the missing labels on the project level
returns the id of all labels matching the title
when no provided jira labels are missing
does not create any new labels
returns the id of all labels matching the title
when no labels are provided
does not create any new labels
# [RSpecRunTime] Finishing example group spec/lib/gitlab/jira_import/handle_labels_service_spec.rb. It took 1.08 seconds. Expected to take 1.44 seconds.
# [RSpecRunTime] Starting example group spec/lib/api/entities/branch_spec.rb. Expected to take 1.4 seconds.
API::Entities::Branch
#as_json
includes basic fields
# [RSpecRunTime] Finishing example group spec/lib/api/entities/branch_spec.rb. It took 1.0 second. Expected to take 1.4 seconds.
# [RSpecRunTime] Starting example group spec/views/projects/pages/new.html.haml_spec.rb. Expected to take 1.37 seconds.
projects/pages/new
shows the onboarding wizard
# [RSpecRunTime] Finishing example group spec/views/projects/pages/new.html.haml_spec.rb. It took 1.15 seconds. Expected to take 1.37 seconds.
# [RSpecRunTime] RSpec elapsed time: 21 minutes 35.63 seconds. Current RSS: ~1456M. Threads: 5. load average: 1.13 1.10 1.15 1/301 22674
.
# [RSpecRunTime] Starting example group spec/services/clusters/cleanup/service_account_service_spec.rb. Expected to take 1.31 seconds.
Clusters::Cleanup::ServiceAccountService
#execute
deletes gitlab service account
logs all events
deletes cluster
when cluster.kubeclient is nil
deletes cluster
when there is a Kubeclient::HttpError
with error:Unauthorized
destroys cluster
with error:forbidden
destroys cluster
with error:Certificate verify Failed
destroys cluster
# [RSpecRunTime] Finishing example group spec/services/clusters/cleanup/service_account_service_spec.rb. It took 0.98 second. Expected to take 1.31 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_gbp_metric_spec.rb. Expected to take 1.29 seconds.
Gitlab::Usage::Metrics::Instrumentations::CountSlackAppInstallationsGbpMetric
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/count_slack_app_installations_gbp_metric_spec.rb. It took 1.03 seconds. Expected to take 1.29 seconds.
# [RSpecRunTime] Starting example group spec/services/bulk_imports/file_decompression_service_spec.rb. Expected to take 1.22 seconds.
BulkImports::FileDecompressionService
#execute
decompresses specified file
performs decompressed file size validation
when dir is not in tmpdir
raises an error
when path is being traversed
raises an error
when compressed file is a symlink
is expected not to exist "/tmp/d20241024-343-fblvdq/file.gz"
when compressed file shares multiple hard links
is expected not to exist "/tmp/d20241024-343-fblvdq/file.gz"
when decompressed file is a symlink
is expected not to exist "/tmp/d20241024-343-fblvdq/file.txt"
when decompressed file shares multiple hard links
is expected not to exist "/tmp/d20241024-343-fblvdq/file.txt"
# [RSpecRunTime] Finishing example group spec/services/bulk_imports/file_decompression_service_spec.rb. It took 0.82 second. Expected to take 1.22 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/rack_attack/user_allowlist_spec.rb. Expected to take 1.21 seconds.
Gitlab::RackAttack::UserAllowlist
input: nil, elements: []
has the expected elements
implements empty?
implements include?
input: "", elements: []
has the expected elements
implements empty?
implements include?
input: "123", elements: [123]
has the expected elements
implements empty?
implements include?
input: "123,456", elements: [123, 456]
has the expected elements
implements empty?
implements include?
input: "123,foobar, 456,", elements: [123, 456]
has the expected elements
implements empty?
implements include?
# [RSpecRunTime] Finishing example group spec/lib/gitlab/rack_attack/user_allowlist_spec.rb. It took 0.42 second. Expected to take 1.21 seconds.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/config/entry/environment_spec.rb. Expected to take 1.17 seconds.
Gitlab::Ci::Config::Entry::Environment
when configuration is a string
#string?
is string configuration
#hash?
is not hash configuration
#valid?
is valid
#value
returns valid hash
#name
returns environment name
#url
returns environment url
when configuration is a hash
#string?
is not string configuration
#hash?
is hash configuration
#valid?
is valid
#value
returns valid hash
#name
returns environment name
#url
returns environment url
when valid action is used
action: "start"
is valid
action: "stop"
is valid
action: "prepare"
is valid
action: "verify"
is valid
action: "access"
is valid
when wrong action type is used
#valid?
is not valid
#errors
contains error about wrong action type
when invalid action is used
#valid?
is not valid
#errors
contains error about invalid action
when on_stop is used
is valid
when invalid on_stop is used
#valid?
is not valid
#errors
contains error about invalid action
when wrong url type is used
#valid?
is not valid
#errors
contains error about wrong url type
when variables are used for environment
#valid?
is valid
when auto_stop_in is specified
when auto_stop_in is correct format
becomes valid
when variables are used for auto_stop_in
becomes valid
when configuration is invalid
when configuration is an array
#valid?
is not valid
#errors
contains error about invalid type
when environment name is not present
#valid?
is not valid
#errors?
contains error about missing environment name
kubernetes
is a string
is expected not to be valid
is a hash
is expected to be valid
is nil
is expected to be valid
deployment_tier
is a string
is expected to be valid
is a hash
is expected not to be valid
is nil
is expected to be valid
is unknown value
is invalid and adds an error
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/config/entry/environment_spec.rb. It took 1.09 seconds. Expected to take 1.17 seconds.
# [RSpecRunTime] Starting example group spec/services/packages/npm/create_metadata_cache_service_spec.rb. Expected to take 1.12 seconds.
Packages::Npm::CreateMetadataCacheService
#lease_key
returns an unique key
#execute
creates a new metadata cache
obtains a lease to create a new metadata cache
with existing metadata cache
does not create a new metadata cache
updates the metadata cache
when the lease is already taken
does not create a new metadata cache
returns nil
# [RSpecRunTime] Finishing example group spec/services/packages/npm/create_metadata_cache_service_spec.rb. It took 1.56 seconds. Expected to take 1.12 seconds.
# [RSpecRunTime] Starting example group spec/workers/ml/experiment_tracking/associate_ml_candidate_to_package_worker_spec.rb. Expected to take 1.1 seconds.
Ml::ExperimentTracking::AssociateMlCandidateToPackageWorker
.handle_event
behaves like subscribes to event
consumes the published event
behaves like an idempotent worker
is labeled as idempotent
performs multiple times sequentially without raising an exception
when package name matches ml_experiment_{id}
when candidate with iid exists
associates candidate to package
when no candidate with iid exists
does not associate candidate
when candidate with iid exists but in a different project
does not associate candidate
when package is deleted before event is called
does not associate candidate
#handles_event?
package_name: "ml_experiment_1234", package_type: "generic", handles_event: true
is expected to eq true
package_name: "ml_experiment_1234", package_type: "maven", handles_event: false
is expected to eq false
package_name: "1234", package_type: "generic", handles_event: false
is expected to eq false
package_name: "ml_experiment_", package_type: "generic", handles_event: false
is expected to eq false
package_name: "blah", package_type: "generic", handles_event: false
is expected to eq false
# [RSpecRunTime] Finishing example group spec/workers/ml/experiment_tracking/associate_ml_candidate_to_package_worker_spec.rb. It took 0.92 second. Expected to take 1.1 seconds.
# [RSpecRunTime] Starting example group spec/models/integrations/apple_app_store_spec.rb. Expected to take 1.04 seconds.
Integrations::AppleAppStore
does not allow STI
when integration is enabled
#fields
returns custom fields
#test
returns true for a successful request
returns false for an invalid request
#help
renders prompt information
.to_param
returns the name of the integration
#ci_variables
returns the vars for protected branch
doesn't return the vars for unprotected branch
#initialize_properties
when app_store_protected_refs is nil
sets app_store_protected_refs to true
when app_store_protected_refs is false
sets app_store_protected_refs to false
Validations
when active
is expected to validate that :app_store_issuer_id cannot be empty/falsy
is expected to validate that :app_store_key_id cannot be empty/falsy
is expected to validate that :app_store_private_key cannot be empty/falsy
is expected to validate that :app_store_private_key_file_name cannot be empty/falsy
************************************************************************
Warning from shoulda-matchers:
You are using `validate_inclusion_of` to assert that a boolean column
allows boolean values and disallows non-boolean ones. Be aware that it
is not possible to fully test this, as boolean columns will
automatically convert non-boolean values to boolean ones. Hence, you
should consider removing this test.
************************************************************************
is expected to validate that :app_store_protected_refs is either ‹true› or ‹false›
is expected to allow :app_store_issuer_id to be ‹"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"›
is expected not to allow :app_store_issuer_id to be ‹"abcde"›
is expected to allow :app_store_private_key to be ‹"-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKS+CfS9GcRSdYSN\nSzyH5QJQBr5umRL6E+KilOV39iYFO/9oHjUdapTRWkrwnNPCp7qaeck4Jr8iv14t\nPVNDfNr76eGb6/3YknOAP0QOjLWunoC8kjU+N/JHU52NrUeX3qEy8EKV9LeCDJcB\nkBk+Yejn9nypg8c7sLsn33CB6i3bAgMBAAECgYA2D26w80T7WZvazYr86BNMePpd\nj2mIAqx32KZHzt/lhh40J/SRtX9+Kl0Y7nBoRR5Ja9u/HkAIxNxLiUjwg9r6cpg/\nuITEF5nMt7lAk391BuI+7VOZZGbJDsq2ulPd6lO+C8Kq/PI/e4kXcIjeH6KwQsuR\n5vrXfBZ3sQfflaiN4QJBANBt8JY2LIGQF8o89qwUpRL5vbnKQ4IzZ5+TOl4RLR7O\nAQpJ81tG...›
is expected not to allow :app_store_private_key to be ‹"foo"›
is expected to allow :app_store_key_id to be ‹"ABCD1EF12G"›
is expected not to allow :app_store_key_id to be ‹"ABC"›
is expected not to allow :app_store_key_id to be ‹"abc1"›
is expected not to allow :app_store_key_id to be ‹"-A0-"›
when integration is disabled
#ci_variables
returns an empty array
# [RSpecRunTime] Finishing example group spec/models/integrations/apple_app_store_spec.rb. It took 0.79 second. Expected to take 1.04 seconds.
# [RSpecRunTime] Starting example group spec/graphql/resolvers/commit_pipelines_resolver_spec.rb. Expected to take 1.02 seconds.
Resolvers::CommitPipelinesResolver
resolves pipelines for commit and ref
# [RSpecRunTime] Finishing example group spec/graphql/resolvers/commit_pipelines_resolver_spec.rb. It took 0.84 second. Expected to take 1.02 seconds.
# [RSpecRunTime] Starting example group spec/rubocop/cop/static_translation_definition_spec.rb. Expected to take 0.96 second.
RuboCop::Cop::StaticTranslationDefinition
ignore
code: "CONSTANT_1 = __(\"a\")"
does not register an offense
code: "CONSTANT_2 = s__(\"a\")"
does not register an offense
code: "CONSTANT_3 = n__(\"a\")"
does not register an offense
code: "CONSTANT_var = _(code)"
does not register an offense
code: "CONSTANT_int = _(1)"
does not register an offense
code: "CONSTANT_none = _()"
does not register an offense
code: "class MyClass\n def self.method\n @cache ||= { hello: -> { _(\"hello\") } }\n end\nend\n"
does not register an offense
code: "class MyClass\n def self.method\n @cache ||= { hello: proc { _(\"hello\") } }\n end\nend\n"
does not register an offense
code: "class MyClass\n def method\n @cache ||= { hello: _(\"hello\") }\n end\nend\n"
does not register an offense
code: "def method\n s_('a')\nend\n"
does not register an offense
code: "class MyClass\n VALID = -> {\n s_('hi')\n }\nend\n"
does not register an offense
code: "class MyClass\n def hello\n {\n a: _('hi')\n }\n end\nend\n"
does not register an offense
code: "SomeClass = Struct.new do\n def text\n _('Some translated text')\n end\nend\n"
does not register an offense
code: "Struct.new('SomeClass') do\n def text\n _('Some translated text')\n end\nend\n"
does not register an offense
code: "class MyClass\n field :foo, title: -> { _('A title') }\nend\n"
does not register an offense
code: "included do\n put do\n _('b')\n end\nend\nclass_methods do\n expose do\n _('b')\n end\nend\n"
does not register an offense
offenses
code: "A = _(\"a\")\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n"
registers an offense
code: "B = s_(\"b\")\n ^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n"
registers an offense
code: "C = n_(\"c\")\n ^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n"
registers an offense
code: "A = _('a' \\\n ^^^^^^^ [...]\n 'b')\n"
registers an offense
code: "A = _(\"a\#{s}\")\n ^^^^^^^^^^ [...]\n"
registers an offense
code: "class MyClass\n def self.translations\n @cache ||= { hello: _(\"hello\") }\n ^^^^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n end\nend\n"
registers an offense
code: "module MyModule\n A = {\n b: {\n c: _(\"a\")\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n }\n }\nend\n"
registers an offense
code: "class MyClass\n B = [\n [\n s_(\"a\")\n ^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n ]\n ]\nend\n"
registers an offense
code: "class MyClass\n field :foo, title: _('A title')\n ^^^^^^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\n"
registers an offense
code: "included do\n _('a')\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\nprepended do\n self.var = _('a')\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\nclass_methods do\n _('a')\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\n"
registers an offense
# [RSpecRunTime] Finishing example group spec/rubocop/cop/static_translation_definition_spec.rb. It took 0.7 second. Expected to take 0.96 second.
# [RSpecRunTime] Starting example group spec/workers/ci/pipeline_bridge_status_worker_spec.rb. Expected to take 0.93 second.
Ci::PipelineBridgeStatusWorker
#perform
when pipeline exists
calls the service
when pipeline does not exist
does not call the service
# [RSpecRunTime] Finishing example group spec/workers/ci/pipeline_bridge_status_worker_spec.rb. It took 0.67 second. Expected to take 0.93 second.
# [RSpecRunTime] Starting example group spec/workers/clusters/agents/delete_expired_events_worker_spec.rb. Expected to take 0.87 second.
Clusters::Agents::DeleteExpiredEventsWorker
#perform
calls the deletion service
agent no longer exists
completes without raising an error
# [RSpecRunTime] Finishing example group spec/workers/clusters/agents/delete_expired_events_worker_spec.rb. It took 0.71 second. Expected to take 0.87 second.
# [RSpecRunTime] Starting example group spec/lib/api/helpers/packages/npm_spec.rb. Expected to take 0.84 second.
API::Helpers::Packages::Npm
#enqueue_sync_metadata_cache_worker
behaves like enqueue a worker to sync a metadata cache
enqueues a worker to create a metadata cache
# [RSpecRunTime] Finishing example group spec/lib/api/helpers/packages/npm_spec.rb. It took 0.67 second. Expected to take 0.84 second.
# [RSpecRunTime] Starting example group spec/tooling/danger/feature_flag_spec.rb. Expected to take 0.82 second.
Tooling::Danger::FeatureFlag
Tooling::Danger::FeatureFlag::Found
.build
is expected to be a kind of Tooling::Danger::FeatureFlag::Found(keyword_init: true)
when given path does not exist
is expected to be nil
when YAML is invalid
is expected to be nil
#valid?
when name is nil
is expected to eq false
when name is not nil
is expected to eq true
#missing_group?
when group is nil
is expected to eq true
when group is not nil
is expected to eq false
#missing_feature_issue_url?
when feature_issue_url is nil
is expected to eq true
when feature_issue_url is not nil
is expected to eq false
#missing_introduced_by_url?
when introduced_by_url is nil
is expected to eq true
when introduced_by_url is not nil
is expected to eq false
#missing_rollout_issue_url?
when rollout_issue_url is nil
is expected to eq true
when rollout_issue_url is not nil
is expected to eq false
#missing_milestone?
when milestone is nil
is expected to eq true
when milestone is not nil
is expected to eq false
#default_enabled?
when default_enabled is nil
is expected to eq false
when default_enabled is false
is expected to eq false
when default_enabled is true
is expected to eq true
#group_match_mr_label?
when group is nil
is true only if MR has no group label
when group is not nil
is true only if MR has the same group label
#find_line_index
when line is found
is expected to eq 1
when line is not found
is expected to be nil
#feature_flag_files
retrieves added feature flag files
with added added feature flag files
returns an array of Found objects
without added added feature flag files
returns an array of Found objects
retrieves modified feature flag files
with modified modified feature flag files
returns an array of Found objects
without modified modified feature flag files
returns an array of Found objects
retrieves deleted feature flag files
with deleted deleted feature flag files
returns an array of Found objects
without deleted deleted feature flag files
returns an array of Found objects
# [RSpecRunTime] Finishing example group spec/tooling/danger/feature_flag_spec.rb. It took 0.7 second. Expected to take 0.82 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb. Expected to take 0.78 second.
Gitlab::Database::PostgresIndexBloatEstimate
is expected to be a kind of Gitlab::Database::SharedModel(abstract)
#bloat_size
returns the bloat size in bytes
#bloat_size_bytes
is an alias of #bloat_size
#index
belongs to a PostgresIndex
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb. It took 0.77 second. Expected to take 0.78 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/usage/event_selection_rule_spec.rb. Expected to take 0.77 second.
Gitlab::Usage::EventSelectionRule
#redis_keys_for_time_frame
without a filter
when time_frame is "all"
returns an array with a single redis key
when time_frame is "7d"
returns an array with a single redis keys for correct week
when time_frame is "28d"
returns an array with a keys for the last 4 full weeks
with a filter
when time_frame is "all"
returns an array with a single redis key
when unique_identifier_name is nil
when time_frame is "7d"
returns an array with a single redis keys for the correct week
when key is overridden
uses the legacy key
when time_frame is "28d"
returns an array with a keys for the last 4 full weeks
when unique_identifier_name is set
when time_frame is "7d"
returns an array with a single redis keys for the correct week
when time_frame is "28d"
returns an array with a keys for the last 4 full weeks
.matches?
with no filter
with no additional_properties
is expected to eq true
with additional_properties
is expected to eq true
with filter
with matching additional_properties
is expected to eq true
with not matching additional_properties
is expected to eq false
with no additional_properties
is expected to eq false
#redis_key_for_date
without a filter
returns the key name
with a single property filter
returns the correct key with filter
with a multi property filter that is unordered
returns the correct key with filter
when time framed
adds the key prefix and suffix to the event name
.initialize
sets the attributes
#total_counter?
when it has unique_identifier_name
is expected to eq false
when it has no unique_identifier_name
is expected to eq true
object equality - #eql
treats objects identical with identical attributes
compared to different class leads to in-equality
different name leads to in-equality
different time_framed leads to in-equality
different filter leads to in-equality
different unique_identifier_name leads to in-equality
# [RSpecRunTime] Finishing example group spec/lib/gitlab/usage/event_selection_rule_spec.rb. It took 0.68 second. Expected to take 0.77 second.
# [RSpecRunTime] Starting example group spec/serializers/group_link/group_link_entity_spec.rb. Expected to take 0.72 second.
GroupLink::GroupLinkEntity
matches json schema
correctly exposes `shared_with_group.avatar_url`
for direct member
behaves like exposes source type properties
exposes `is_direct_member` as `true`
exposes `is_inherited_member` as `false`
for inherited member
behaves like exposes source type properties
exposes `is_direct_member` as `false`
exposes `is_inherited_member` as `true`
# [RSpecRunTime] Finishing example group spec/serializers/group_link/group_link_entity_spec.rb. It took 0.55 second. Expected to take 0.72 second.
# [RSpecRunTime] Starting example group spec/support_specs/database/multiple_databases_helpers_spec.rb. Expected to take 0.67 second.
Database::MultipleDatabasesHelpers
preloads database version for Ci::ApplicationRecord
preloads database version for ApplicationRecord
.with_added_ci_connection
when only a single database is setup
connects Ci::ApplicationRecord to the main database for the duration of the block (PENDING: Skipping because some of the extra databases [:ci] are setup)
when multiple databases are setup
does not mock the original Ci::ApplicationRecord connection
.with_reestablished_active_record_base
when doing establish_connection
on ActiveRecord::Base
raises exception
when using with_reestablished_active_record_base
does not raise exception
on Ci::ApplicationRecord
raises exception
when using with_reestablished_active_record_base
does not raise exception
when trying to access connection
when reconnect is true
does not raise exception
when reconnect is false
does raise exception
# [RSpecRunTime] Finishing example group spec/support_specs/database/multiple_databases_helpers_spec.rb. It took 0.62 second. Expected to take 0.67 second.
# [RSpecRunTime] Starting example group spec/models/ml/candidate_metadata_spec.rb. Expected to take 0.67 second.
Ml::CandidateMetadata
does not allow STI
associations
is expected to belong to candidate required: false
uniqueness of name
is unique within candidate
# [RSpecRunTime] Finishing example group spec/models/ml/candidate_metadata_spec.rb. It took 0.57 second. Expected to take 0.67 second.
# [RSpecRunTime] Starting example group spec/workers/gitlab/import/stuck_import_job_spec.rb. Expected to take 0.63 second.
Gitlab::Import::StuckImportJob
marks the stuck import project as failed and track the error on import_failures
# [RSpecRunTime] Finishing example group spec/workers/gitlab/import/stuck_import_job_spec.rb. It took 0.55 second. Expected to take 0.63 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/bitbucket_import/parallel_scheduling_spec.rb. Expected to take 0.62 second.
Gitlab::BitbucketImport::ParallelScheduling
#calculate_job_delay
returns an incremental delay
deducts the runtime from the delay
#each_object_to_import
without representation_type
raises NotImplementedError
with representation_type
yields every object to import
resumes from the last page
does not yield the object if it was already imported
# [RSpecRunTime] Finishing example group spec/lib/gitlab/bitbucket_import/parallel_scheduling_spec.rb. It took 0.61 second. Expected to take 0.62 second.
# [RSpecRunTime] Starting example group spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb. Expected to take 0.59 second.
Types::Admin::Analytics::UsageTrends::MeasurementType
is expected to have graphql field :recorded_at
is expected to have graphql field :identifier
is expected to have graphql field :count
authorization
when the user is not admin
returns an error
does not return usageTrendsMeasurements data
when user is an admin
returns usageTrendsMeasurements data
# [RSpecRunTime] Finishing example group spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb. It took 0.48 second. Expected to take 0.59 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/private_commit_email_spec.rb. Expected to take 0.58 second.
Gitlab::PrivateCommitEmail
.regex
is expected to match "1-foo@users.noreply.localhost"
is expected to match "1-BLAH@users.noreply.localhost"
is expected not to match "1-foo@users.noreply.localhost.foo"
is expected not to match "1-foo@users.noreply.gitlab.com"
is expected not to match "foo-1@users.noreply.gitlab.com"
is expected not to match "foobar@gitlab.com"
is only generated once per request
.user_id_for_email
parses user id from email
returns nil on invalid commit email
.user_ids_for_email
returns deduplicated user IDs for each valid email
returns an empty array with no valid emails
.for_user
returns email in the format id-username@hostname
stores the private commit email with uppercase
# [RSpecRunTime] Finishing example group spec/lib/gitlab/private_commit_email_spec.rb. It took 0.46 second. Expected to take 0.58 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb. Expected to take 0.54 second.
Gitlab::ErrorTracking::Processor::SidekiqProcessor
.filter_arguments
returns a lazy enumerator
arguments filtering
klass: "UnknownWorker", expected: [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]
is expected to eq [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]
klass: "NoPermittedArguments", expected: [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]
is expected to eq [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]
klass: "OnePermittedArgument", expected: [1, "string", "[FILTERED]", "[FILTERED]"]
is expected to eq [1, "string", "[FILTERED]", "[FILTERED]"]
klass: "AllPermittedArguments", expected: [1, "string", [1, 2], {:a=>1}]
is expected to eq [1, "string", [1, 2], {:a=>1}]
.permitted_arguments_for_worker
returns the loggable_arguments for a worker class as a set
returns an empty set when the worker class does not exist
returns an empty set when the worker class does not respond to loggable_arguments
returns an empty set when loggable_arguments cannot be converted to a set
memoizes the results
.loggable_arguments
filters and limits the arguments, then converts to strings
.call
when there is Sidekiq data
when processing via the default error handler
with Sentry events
for an unknown worker
only allows numeric arguments for an unknown worker
for a permitted worker
allows all argument types for a permitted worker
when processing via Gitlab::ErrorTracking
with Sentry events
for an unknown worker
only allows numeric arguments for an unknown worker
for a permitted worker
allows all argument types for a permitted worker
with Sentry events
behaves like handles jobstr fields
when a jobstr field is present
removes the jobstr
when no jobstr value is present
does nothing
when there is no Sidekiq data
with Sentry events
behaves like does nothing
does nothing
when there is Sidekiq data but no job
with Sentry events
behaves like does nothing
does nothing
# [RSpecRunTime] Finishing example group spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb. It took 0.53 second. Expected to take 0.54 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/import/metrics_spec.rb. Expected to take 0.53 second.
Gitlab::Import::Metrics
#track_start_import
when project is not a github import
does not emit importer metrics
when project is a github import
emits importer metrics
#track_failed_import
when project is not a github import
does not emit importer metrics
when project is a github import
emits importer metrics
#track_finished_import
when project is a github import
emits importer metrics
when import is partially completed
emits snowplow metrics
when project is not a github import
does not emit importer metrics
#track_cancelled_import
when project is not a github import
does not emit importer metrics
when project is a github import
emits importer metrics
#issues_counter
creates a counter for issues
#merge_requests_counter
creates a counter for issues
# [RSpecRunTime] Finishing example group spec/lib/gitlab/import/metrics_spec.rb. It took 0.48 second. Expected to take 0.53 second.
# [RSpecRunTime] Starting example group spec/tooling/danger/datateam_spec.rb. Expected to take 0.5 second.
Tooling::Danger::Datateam
data team danger
with structure.sql subtraction changes and no Data Warehouse::Impact Check label
aggregate_failures
with structure.sql subtraction changes and Data Warehouse::Impact Check label
aggregate_failures
with structure.sql addition changes and no Data Warehouse::Impact Check label
aggregate_failures
with user model changes
aggregate_failures
with perfomance indicator changes and no Data Warehouse::Impact Check label
aggregate_failures
with perfomance indicator changes and Data Warehouse::Impact Check label
aggregate_failures
with metric file changes and no performance indicator changes
aggregate_failures
with metric file changes and no performance indicator changes and other label
aggregate_failures
with performance indicator changes and other label
aggregate_failures
with performance indicator changes, Data Warehouse::Impact Check and other label
aggregate_failures
with performance indicator changes and other labels
aggregate_failures
with metric status removed
aggregate_failures
with metric status active
aggregate_failures
with database metric files added
aggregate_failures
with non-database metric files added
aggregate_failures
# [RSpecRunTime] Finishing example group spec/tooling/danger/datateam_spec.rb. It took 0.39 second. Expected to take 0.5 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/api_authentication/builder_spec.rb. Expected to take 0.48 second.
Gitlab::APIAuthentication::Builder
#build
behaves like builds the correct result
with 1 token type(s) and 1 sent through(s)
works when passed together
works when token types are passed separately
works when sent throughs are passed separately
works when token types and sent throughs are passed separately
behaves like builds the correct result
with 1 token type(s) and 2 sent through(s)
works when passed together
works when token types are passed separately
works when sent throughs are passed separately
works when token types and sent throughs are passed separately
behaves like builds the correct result
with 2 token type(s) and 1 sent through(s)
works when passed together
works when token types are passed separately
works when sent throughs are passed separately
works when token types and sent throughs are passed separately
behaves like builds the correct result
with 2 token type(s) and 2 sent through(s)
works when passed together
works when token types are passed separately
works when sent throughs are passed separately
works when token types and sent throughs are passed separately
with a complex auth strategy
builds the correct result
# [RSpecRunTime] Finishing example group spec/lib/gitlab/api_authentication/builder_spec.rb. It took 0.4 second. Expected to take 0.48 second.
# [RSpecRunTime] Starting example group spec/rubocop/cop/gitlab/avoid_gitlab_instance_checks_spec.rb. Expected to take 0.45 second.
RuboCop::Cop::Gitlab::AvoidGitlabInstanceChecks
bad examples
code: "Gitlab.com?"
registers an offense
code: "Gitlab.com_except_jh?"
registers an offense
code: "Gitlab.com_and_canary?"
registers an offense
code: "Gitlab.com_but_not_canary?"
registers an offense
code: "Gitlab.org_or_com?"
registers an offense
code: "::Gitlab.com?"
registers an offense
code: "Gitlab::CurrentSettings.should_check_namespace_plan?"
registers an offense
code: "::Gitlab::CurrentSettings.should_check_namespace_plan?"
registers an offense
code: "Gitlab::Saas.enabled?"
registers an offense
code: "::Gitlab::Saas.enabled?"
registers an offense
good examples
code: "com?"
does not register an offense
code: "com"
does not register an offense
code: "Gitlab.com"
does not register an offense
code: "Gitlab::CurrentSettings.check_namespace_plan?"
does not register an offense
# [RSpecRunTime] Finishing example group spec/rubocop/cop/gitlab/avoid_gitlab_instance_checks_spec.rb. It took 0.37 second. Expected to take 0.45 second.
# [RSpecRunTime] Starting example group spec/presenters/issue_email_participant_presenter_spec.rb. Expected to take 0.43 second.
IssueEmailParticipantPresenter
#email
when anonymous
is expected to eq "an*****@e*****.c**"
with signed in user
when user has no role in project
is expected to eq "an*****@e*****.c**"
when user has guest role in project
is expected to eq "an*****@e*****.c**"
when user has reporter role in project
is expected to eq "any@example.com"
when user has developer role in project
is expected to eq "any@example.com"
# [RSpecRunTime] Finishing example group spec/presenters/issue_email_participant_presenter_spec.rb. It took 0.35 second. Expected to take 0.43 second.
# [RSpecRunTime] Starting example group spec/models/attr_encrypted_patches_spec.rb. Expected to take 0.4 second.
GitLab monkey-patches to AttrEncrypted
does not allow STI
#attr_encrypted_attributes
does not share state with other instances
#attribute_instance_methods_as_symbols_available?
returns false
does not define virtual attributes
calls attr_changed? method with kwargs
# [RSpecRunTime] Finishing example group spec/models/attr_encrypted_patches_spec.rb. It took 0.31 second. Expected to take 0.4 second.
# [RSpecRunTime] Starting example group spec/lib/bitbucket/representation/pull_request_comment_spec.rb. Expected to take 0.4 second.
Bitbucket::Representation::PullRequestComment
#inline?
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
#parent_id
is expected to eq 2
is expected to be nil
#new_pos
is expected to eq 3
#old_pos
is expected to eq 3
#file_path
is expected to eq "/path"
#iid
is expected to eq 1
#has_parent?
is expected to be truthy
is expected to be falsey
# [RSpecRunTime] Finishing example group spec/lib/bitbucket/representation/pull_request_comment_spec.rb. It took 0.31 second. Expected to take 0.4 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/spamcheck/result_spec.rb. Expected to take 0.38 second.
Gitlab::Spamcheck::Result
#initialize
verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.01
returns expected verdict
returns expected evaluated?
returns expected score
verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.5
returns expected verdict
returns expected evaluated?
returns expected score
verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.75
returns expected verdict
returns expected evaluated?
returns expected score
verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.99
returns expected verdict
returns expected evaluated?
returns expected score
verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.0
returns expected verdict
returns expected evaluated?
returns expected score
# [RSpecRunTime] Finishing example group spec/lib/gitlab/spamcheck/result_spec.rb. It took 0.46 second. Expected to take 0.38 second.
# [RSpecRunTime] Starting example group spec/presenters/environment_presenter_spec.rb. Expected to take 0.35 second.
EnvironmentPresenter
#deployments_display_count
with less than the maximum deployments
returns the actual deployments count
with more than the maximum deployments
returns MAX_DISPLAY_COUNT value
# [RSpecRunTime] Finishing example group spec/presenters/environment_presenter_spec.rb. It took 0.31 second. Expected to take 0.35 second.
# [RSpecRunTime] Starting example group spec/helpers/calendar_helper_spec.rb. Expected to take 0.34 second.
CalendarHelper
#calendar_url_options
when signed in
includes the current_user's feed_token
when signed out
does not have a feed_token
when feed token disabled
does not have a feed_token
# [RSpecRunTime] Finishing example group spec/helpers/calendar_helper_spec.rb. It took 0.29 second. Expected to take 0.34 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/webpack/manifest_spec.rb. Expected to take 0.33 second.
Gitlab::Webpack::Manifest
with dev server enabled
.asset_paths
errors if we can't find the manifest
behaves like a valid manifest
returns single entry asset paths from the manifest
returns multiple entry asset paths from the manifest
errors on a missing entry point
webpack errors
does not error if errors is present but empty
when webpack has 'Module build failed' errors in its manifest
errors
when webpack does not have 'Module build failed' errors in its manifest
does not error
with dev server disabled
.asset_paths
errors if we can't find the manifest
behaves like a valid manifest
returns single entry asset paths from the manifest
returns multiple entry asset paths from the manifest
errors on a missing entry point
# [RSpecRunTime] Finishing example group spec/lib/gitlab/webpack/manifest_spec.rb. It took 0.3 second. Expected to take 0.33 second.
# [RSpecRunTime] Starting example group spec/graphql/types/terraform/state_type_spec.rb. Expected to take 0.32 second.
Types::Terraform::StateType
is expected to require graphql authorizations :read_terraform_state
is expected to eq "TerraformState"
fields
is expected to have graphql fields :id, :name, :locked_by_user, :locked_at, :latest_version, :created_at, :updated_at, and :deleted_at
is expected to be non null
is expected to be non null
is expected not to be non null
is expected not 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 not to be non null
is expected to eq 3
# [RSpecRunTime] Finishing example group spec/graphql/types/terraform/state_type_spec.rb. It took 0.29 second. Expected to take 0.32 second.
# [RSpecRunTime] Starting example group spec/models/concerns/legacy_bulk_insert_spec.rb. Expected to take 0.3 second.
LegacyBulkInsert
does not allow STI
#bulk_insert
does nothing with empty rows
uses the ordering from the first row
quotes column names
quotes values
does not quote values of a column in the disable_quote option
does not quote values of columns in the disable_quote option
handles non-UTF-8 data
when using PostgreSQL
allows the returning of the IDs of the inserted rows
allows setting the upsert to do nothing
# [RSpecRunTime] Finishing example group spec/models/concerns/legacy_bulk_insert_spec.rb. It took 0.26 second. Expected to take 0.3 second.
# [RSpecRunTime] Starting example group spec/graphql/types/container_registry/protection/rule_type_spec.rb. Expected to take 0.29 second.
Types::ContainerRegistry::Protection::RuleType
is expected to be present
is expected to eq "ContainerRegistryProtectionRule"
is expected to require graphql authorizations :admin_container_image
minimum_access_level_for_delete
is expected to have nullable GraphQL type ContainerRegistryProtectionRuleAccessLevel
repository_path_pattern
is expected to have non-null GraphQL type String
id
is expected to have non-null GraphQL type ContainerRegistryProtectionRuleID
minimum_access_level_for_push
is expected to have nullable GraphQL type ContainerRegistryProtectionRuleAccessLevel
# [RSpecRunTime] Finishing example group spec/graphql/types/container_registry/protection/rule_type_spec.rb. It took 0.17 second. Expected to take 0.29 second.
# [RSpecRunTime] Starting example group spec/rubocop/cop/api/ensure_string_detail_spec.rb. Expected to take 0.28 second.
RuboCop::Cop::API::EnsureStringDetail
when in_api? == true
when detail field uses a string
does not add an offense
when detail field uses interpolation in a string
does not add an offense
when detail field uses a multiline string
does not add an offense
when detail field uses a constant
does not add an offense (PENDING: No reason given)
when detail field uses a HEREDOC string
does not add an offense
when detail field uses an array
adds an offense
when detail field is outside of desc block
does not add an offense
when in_api? == false
does not add an offense
# [RSpecRunTime] Finishing example group spec/rubocop/cop/api/ensure_string_detail_spec.rb. It took 0.23 second. Expected to take 0.28 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/auth/key_status_checker_spec.rb. Expected to take 0.27 second.
Gitlab::Auth::KeyStatusChecker
#show_console_message?
for an expired key
is expected to eq true
for a key expiring in the next 7 days
is expected to eq true
for a key expiring after the next 7 days
is expected to eq false
for a key that never expires
is expected to eq false
#console_message
for an expired key
is expected to eq "INFO: Your SSH key has expired. Please generate a new key."
for a key expiring in the next 7 days
is expected to eq "INFO: Your SSH key is expiring soon. Please generate a new key."
for a key expiring after the next 7 days
is expected to be nil
for a key that never expires
is expected to be nil
# [RSpecRunTime] Finishing example group spec/lib/gitlab/auth/key_status_checker_spec.rb. It took 0.3 second. Expected to take 0.27 second.
# [RSpecRunTime] Starting example group spec/lib/sidebars/user_settings/menus/notifications_menu_spec.rb. Expected to take 0.27 second.
Sidebars::UserSettings::Menus::NotificationsMenu
behaves like User settings menu
does not contain any sub menu
renders the correct link
renders the correct title
renders the correct icon
defines correct active route
behaves like User settings menu #render? method
#render?
when user is logged in
renders
when user is not logged in
does not render
# [RSpecRunTime] Finishing example group spec/lib/sidebars/user_settings/menus/notifications_menu_spec.rb. It took 0.25 second. Expected to take 0.27 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb. Expected to take 0.25 second.
Gitlab::Database::Partitioning::SingleNumericListPartition
.from_sql
uses specified table name
uses specified partition name
parses the definition
#partition_name
is the explicit name if provided
defaults to the table name followed by the partition value
sorting
is incomparable if the tables do not match
sorts by the value when the tables match
sorts by numeric value rather than text value
# [RSpecRunTime] Finishing example group spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb. It took 0.2 second. Expected to take 0.25 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb. Expected to take 0.25 second.
Gitlab::Email::Hook::DisableEmailInterceptor
does not send emails
# [RSpecRunTime] Finishing example group spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb. It took 0.22 second. Expected to take 0.25 second.
# [RSpecRunTime] Starting example group spec/serializers/ci/pipeline_schedule_entity_spec.rb. Expected to take 0.23 second.
Ci::PipelineScheduleEntity
is expected to include :description
is expected to eq 1000000143
is expected to include :id
is expected to include :path
is expected to eq "pipeline schedule"
is expected to eq "/namespace775/project-838/-/pipeline_schedules"
# [RSpecRunTime] Finishing example group spec/serializers/ci/pipeline_schedule_entity_spec.rb. It took 0.23 second. Expected to take 0.23 second.
# [RSpecRunTime] Starting example group spec/rubocop/cop/code_reuse/worker_spec.rb. Expected to take 0.23 second.
RuboCop::Cop::CodeReuse::Worker
flags the use of a worker in a controller
flags the use of a worker in a Serializer
flags the use of a worker in a Finder
flags the use of a worker in a model class method
flags the use of a worker in an API
flags the use of a worker in GraphQL
flags the use of a worker in a Presenter
# [RSpecRunTime] Finishing example group spec/rubocop/cop/code_reuse/worker_spec.rb. It took 0.22 second. Expected to take 0.23 second.
# [RSpecRunTime] Starting example group spec/models/namespaces/randomized_suffix_path_spec.rb. Expected to take 0.22 second.
Namespaces::RandomizedSuffixPath
does not allow STI
#to_s
represents with given path
#call
returns path without count when count is 0
returns path suffixed with count when between 0 and 4
adds a "randomized" suffix when MAX_TRIES is exhausted
adds an offset to the "randomized" suffix when MAX_TRIES is exhausted
# [RSpecRunTime] Finishing example group spec/models/namespaces/randomized_suffix_path_spec.rb. It took 0.18 second. Expected to take 0.22 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/github_import/representation/user_spec.rb. Expected to take 0.21 second.
Gitlab::GithubImport::Representation::User
.from_api_response
behaves like a User
returns an instance of User
the returned User
includes the user ID
includes the username
.from_json_hash
behaves like a User
returns an instance of User
the returned User
includes the user ID
includes the username
# [RSpecRunTime] Finishing example group spec/lib/gitlab/github_import/representation/user_spec.rb. It took 0.17 second. Expected to take 0.21 second.
# [RSpecRunTime] Starting example group spec/models/work_items/widgets/start_and_due_date_spec.rb. Expected to take 0.2 second.
WorkItems::Widgets::StartAndDueDate
does not allow STI
.type
is expected to eq :start_and_due_date
#type
is expected to eq :start_and_due_date
.quick_action_params
is expected to contain exactly :due_date
.quick_action_commands
is expected to contain exactly :due and :remove_due_date
#fixed?
is expected to eq true
#can_rollup?
is expected to eq false
# [RSpecRunTime] Finishing example group spec/models/work_items/widgets/start_and_due_date_spec.rb. It took 0.18 second. Expected to take 0.2 second.
# [RSpecRunTime] Starting example group spec/graphql/mutations/users/saved_replies/destroy_spec.rb. Expected to take 0.2 second.
Mutations::Users::SavedReplies::Destroy
#resolve
when service fails to delete a new saved reply
raises Gitlab::Graphql::Errors::ResourceNotAvailable
when service successfully deletes the saved reply
is expected to be empty
# [RSpecRunTime] Finishing example group spec/graphql/mutations/users/saved_replies/destroy_spec.rb. It took 0.19 second. Expected to take 0.2 second.
# [RSpecRunTime] Starting example group spec/views/devise/shared/_error_messages.html.haml_spec.rb. Expected to take 0.19 second.
devise/shared/_error_messages
Error messages
with errors
shows errors
without errors
does not show errors
# [RSpecRunTime] Finishing example group spec/views/devise/shared/_error_messages.html.haml_spec.rb. It took 0.11 second. Expected to take 0.19 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/config/entry/imageable_spec.rb. Expected to take 0.18 second.
Gitlab::Ci::Config::Entry::Imageable
when entry value is correct
#valid?
is valid
when entry value is not correct
#errors
saves errors
#valid?
is not valid
when unexpected key is specified
#errors
saves errors
#valid?
is not valid
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/config/entry/imageable_spec.rb. It took 0.16 second. Expected to take 0.18 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/error_tracking/processor/sanitizer_processor_spec.rb. Expected to take 0.18 second.
Gitlab::ErrorTracking::Processor::SanitizerProcessor
.call
when event attributes contains sensitive information
filters sensitive attributes
when request contains sensitive information
filters sensitive headers
filters query string parameters
removes cookies
removes data
# [RSpecRunTime] Finishing example group spec/lib/gitlab/error_tracking/processor/sanitizer_processor_spec.rb. It took 0.14 second. Expected to take 0.18 second.
# [RSpecRunTime] Starting example group spec/graphql/types/error_tracking/sentry_error_type_spec.rb. Expected to take 0.17 second.
Types::ErrorTracking::SentryErrorType
exposes the expected fields
is expected to eq "SentryError"
# [RSpecRunTime] Finishing example group spec/graphql/types/error_tracking/sentry_error_type_spec.rb. It took 0.06 second. Expected to take 0.17 second.
# [RSpecRunTime] Starting example group spec/lib/banzai/pipeline/email_pipeline_spec.rb. Expected to take 0.16 second.
Banzai::Pipeline::EmailPipeline
.filters
returns the expected type
excludes ImageLazyLoadFilter
shows punycode for autolinks
behaves like sanitize pipeline
includes BaseSanitizationFilter
includes SanitizeLinkFilter
# [RSpecRunTime] Finishing example group spec/lib/banzai/pipeline/email_pipeline_spec.rb. It took 0.15 second. Expected to take 0.16 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sidekiq_middleware/pause_control_spec.rb. Expected to take 0.15 second.
Gitlab::SidekiqMiddleware::PauseControl
.for
strategy_name: :none, expected_class: Gitlab::SidekiqMiddleware::PauseControl::Strategies::None
returns the right class
strategy_name: :unknown, expected_class: Gitlab::SidekiqMiddleware::PauseControl::Strategies::None
returns the right class
strategy_name: :click_house_migration, expected_class: Gitlab::SidekiqMiddleware::PauseControl::Strategies::ClickHouseMigration
returns the right class
strategy_name: :zoekt, expected_class: Gitlab::SidekiqMiddleware::PauseControl::Strategies::Zoekt
returns the right class
strategy_name: :deprecated, expected_class: Gitlab::SidekiqMiddleware::PauseControl::Strategies::Deprecated
returns the right class
# [RSpecRunTime] Finishing example group spec/lib/gitlab/sidekiq_middleware/pause_control_spec.rb. It took 0.13 second. Expected to take 0.15 second.
# [RSpecRunTime] Starting example group spec/rubocop/cop/performance/active_record_subtransactions_spec.rb. Expected to take 0.15 second.
RuboCop::Cop::Performance::ActiveRecordSubtransactions
when calling #transaction with no arguments
does not register an offense
when calling #transaction with only requires_new: true
registers an offense
when calling #transaction with other options
does not register an offense
when passing multiple arguments to #transaction, including requires_new: true
registers an offense
when calling #transaction with requires_new: false
does not register an offense
# [RSpecRunTime] Finishing example group spec/rubocop/cop/performance/active_record_subtransactions_spec.rb. It took 0.14 second. Expected to take 0.15 second.
# [RSpecRunTime] Starting example group spec/helpers/ci/pipeline_schedules_helper_spec.rb. Expected to take 0.14 second.
Ci::PipelineSchedulesHelper
#js_pipeline_schedules_form_data
returns pipeline schedule form data
# [RSpecRunTime] Finishing example group spec/helpers/ci/pipeline_schedules_helper_spec.rb. It took 0.11 second. Expected to take 0.14 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/utils/log_limited_array_spec.rb. Expected to take 0.14 second.
Gitlab::Utils::LogLimitedArray
.log_limited_array
when the argument is not an array
returns an empty array
when the argument is an array
when the array is under the limit
returns the array unchanged
when the array exceeds the limit
when no sentinel value is passed
replaces arguments after the limit with an ellipsis string
when a sentinel value is passed
replaces arguments after the limit with the sentinel
when the array contains arrays and hashes
calculates the size based on the JSON representation
# [RSpecRunTime] Finishing example group spec/lib/gitlab/utils/log_limited_array_spec.rb. It took 0.13 second. Expected to take 0.14 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/middleware/rails_queue_duration_spec.rb. Expected to take 0.13 second.
Gitlab::Middleware::RailsQueueDuration
#call
calls the app when metrics are disabled
when metrics are enabled
calls the app when metrics are enabled but no timing header is found
sets proxy_flight_time and calls the app when the header is present
observes rails queue duration metrics and calls the app when the header is present
# [RSpecRunTime] Finishing example group spec/lib/gitlab/middleware/rails_queue_duration_spec.rb. It took 0.12 second. Expected to take 0.13 second.
# [RSpecRunTime] Starting example group spec/rubocop/cop/graphql/enum_names_spec.rb. Expected to take 0.13 second.
RuboCop::Cop::Graphql::EnumNames
graphql_name
adds an offense when `graphql_name` is not set
adds no offense when `declarative_enum` is used
adds an offense when `graphql_name` includes `enum`
class name
adds an offense when class name does not end with `Enum`
# [RSpecRunTime] Finishing example group spec/rubocop/cop/graphql/enum_names_spec.rb. It took 0.12 second. Expected to take 0.13 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/view/presenter/factory_spec.rb. Expected to take 0.12 second.
Gitlab::View::Presenter::Factory
#initialize
without optional parameters
takes a subject and optional params
with optional parameters
takes a subject and optional params
#fabricate!
detects the presenter based on the given subject
uses the presenter_class if given on #initialize
# [RSpecRunTime] Finishing example group spec/lib/gitlab/view/presenter/factory_spec.rb. It took 0.11 second. Expected to take 0.12 second.
# [RSpecRunTime] Starting example group spec/graphql/types/group_member_type_spec.rb. Expected to take 0.12 second.
Types::GroupMemberType
has the expected fields
is expected to expose permissions using Types::PermissionTypes::Group
is expected to require graphql authorizations :read_group
is expected to eq "GroupMember"
# [RSpecRunTime] Finishing example group spec/graphql/types/group_member_type_spec.rb. It took 0.1 second. Expected to take 0.12 second.
# [RSpecRunTime] Starting example group spec/presenters/key_presenter_spec.rb. Expected to take 0.11 second.
KeyPresenter
#humanized_error_message
when public key is unsupported
returns the custom error message
when key is expired
returns Active Record error message
# [RSpecRunTime] Finishing example group spec/presenters/key_presenter_spec.rb. It took 0.09 second. Expected to take 0.11 second.
# [RSpecRunTime] Starting example group spec/graphql/types/alert_management/alert_type_spec.rb. Expected to take 0.11 second.
Types::AlertManagement::AlertType
is expected to include Types::TodoableInterface
exposes the expected fields
is expected to eq "AlertManagementAlert"
is expected to require graphql authorizations :read_alert_management_alert
# [RSpecRunTime] Finishing example group spec/graphql/types/alert_management/alert_type_spec.rb. It took 0.11 second. Expected to take 0.11 second.
# [RSpecRunTime] Starting example group spec/initializers/rack_multipart_patch_spec.rb. Expected to take 0.1 second.
Rack::Multipart
with Content-Length under the limit
extracts multipart message
with Content-Length over the limit
from environment
behaves like logs multipart message
extracts multipart message
default limit
behaves like logs multipart message
extracts multipart message
# [RSpecRunTime] Finishing example group spec/initializers/rack_multipart_patch_spec.rb. It took 0.08 second. Expected to take 0.1 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb. Expected to take 0.1 second.
Gitlab::Graphql::QueryAnalyzers::AST::LoggerAnalyzer
#result
returns the complexity, depth, duration, etc
does not crash when #analyze_query returns []
gracefully handles analysis errors
# [RSpecRunTime] Finishing example group spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb. It took 0.08 second. Expected to take 0.1 second.
# [RSpecRunTime] Starting example group spec/rubocop/cop/database/establish_connection_spec.rb. Expected to take 0.1 second.
RuboCop::Cop::Database::EstablishConnection
flags the use of ActiveRecord::Base.establish_connection with arguments
flags the use of ActiveRecord::Base.establish_connection
flags the use of SomeModel.establish_connection
# [RSpecRunTime] Finishing example group spec/rubocop/cop/database/establish_connection_spec.rb. It took 0.09 second. Expected to take 0.1 second.
# [RSpecRunTime] Starting example group spec/graphql/types/release_assets_input_type_spec.rb. Expected to take 0.09 second.
Types::ReleaseAssetsInputType
sets the type of links argument to ReleaseAssetLinkInputType
is expected to eq "ReleaseAssetsInput"
has the correct arguments
# [RSpecRunTime] Finishing example group spec/graphql/types/release_assets_input_type_spec.rb. It took 0.14 second. Expected to take 0.09 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/git/bundle_file_spec.rb. Expected to take 0.09 second.
Gitlab::Git::BundleFile
.check!
returns nil for a valid bundle
raises an exception for an invalid bundle
# [RSpecRunTime] Finishing example group spec/lib/gitlab/git/bundle_file_spec.rb. It took 0.09 second. Expected to take 0.09 second.
# [RSpecRunTime] Starting example group spec/graphql/types/project_member_relation_enum_spec.rb. Expected to take 0.09 second.
Types::ProjectMemberRelationEnum
is expected to eq "ProjectMemberRelation"
exposes all the existing project member relation type values
# [RSpecRunTime] Finishing example group spec/graphql/types/project_member_relation_enum_spec.rb. It took 0.07 second. Expected to take 0.09 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb. Expected to take 0.08 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.07 second. Expected to take 0.08 second.
# [RSpecRunTime] Starting example group spec/views/help/drawers.html.haml_spec.rb. Expected to take 0.08 second.
help/drawers
Markdown rendering
renders Markdown
# [RSpecRunTime] Finishing example group spec/views/help/drawers.html.haml_spec.rb. It took 0.08 second. Expected to take 0.08 second.
# [RSpecRunTime] Starting example group spec/graphql/types/security/codequality_reports_comparer/status_enum_spec.rb. Expected to take 0.07 second.
Types::Security::CodequalityReportsComparer::StatusEnum
is expected to eq "CodequalityReportsComparerStatus"
exposes all codequality report status values
# [RSpecRunTime] Finishing example group spec/graphql/types/security/codequality_reports_comparer/status_enum_spec.rb. It took 0.06 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/middleware/sidekiq_web_static_spec.rb. Expected to take 0.07 second.
Gitlab::Middleware::SidekiqWebStatic
#call
with an /admin/sidekiq route
deletes the HTTP_X_SENDFILE_TYPE header
with some static asset route
keeps the HTTP_X_SENDFILE_TYPE header
# [RSpecRunTime] Finishing example group spec/lib/gitlab/middleware/sidekiq_web_static_spec.rb. It took 0.07 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/graphql/types/ci/config/job_restriction_type_spec.rb. Expected to take 0.07 second.
Types::Ci::Config::JobRestrictionType
is expected to eq "CiConfigJobRestriction"
exposes the expected fields
# [RSpecRunTime] Finishing example group spec/graphql/types/ci/config/job_restriction_type_spec.rb. It took 0.06 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/graphql/types/tree/submodule_type_spec.rb. Expected to take 0.07 second.
Types::Tree::SubmoduleType
is expected to eq "Submodule"
is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :tree_url
# [RSpecRunTime] Finishing example group spec/graphql/types/tree/submodule_type_spec.rb. It took 0.06 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/config/external/mapper/base_spec.rb. Expected to take 0.07 second.
Gitlab::Ci::Config::External::Mapper::Base
#process
when the method is not implemented
raises NotImplementedError
when the method is implemented
calls the method
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/config/external/mapper/base_spec.rb. It took 0.07 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/graphql/types/packages/terraform_module/metadatum/output_type_spec.rb. Expected to take 0.07 second.
Types::Packages::TerraformModule::Metadatum::OutputType
description can be null
includes terraform module metadatum output fields
# [RSpecRunTime] Finishing example group spec/graphql/types/packages/terraform_module/metadatum/output_type_spec.rb. It took 0.06 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb. Expected to take 0.07 second.
SystemCheck::App::GitlabCableConfigExistsCheck
#check?
when config/cable.yml exists
is expected to eq true
when config/cable.yml does not exist
is expected to eq false
# [RSpecRunTime] Finishing example group spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb. It took 0.06 second. Expected to take 0.07 second.
# [RSpecRunTime] Starting example group spec/graphql/types/availability_enum_spec.rb. Expected to take 0.06 second.
Types::AvailabilityEnum
exposes all the existing access levels
is expected to eq "AvailabilityEnum"
# [RSpecRunTime] Finishing example group spec/graphql/types/availability_enum_spec.rb. It took 0.06 second. Expected to take 0.06 second.
# [RSpecRunTime] Starting example group spec/initializers/session_store_spec.rb. Expected to take 0.06 second.
Session initializer for GitLab
config#session_store
initialized as a redis_store with a proper servers configuration
# [RSpecRunTime] Finishing example group spec/initializers/session_store_spec.rb. It took 0.05 second. Expected to take 0.06 second.
# [RSpecRunTime] Starting example group spec/routing/projects/security/configuration_controller_routing_spec.rb. Expected to take 0.05 second.
Projects::Security::ConfigurationController routing
routes to #show
# [RSpecRunTime] Finishing example group spec/routing/projects/security/configuration_controller_routing_spec.rb. It took 0.04 second. Expected to take 0.05 second.
# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/reports/sbom/metadata_spec.rb. Expected to take 0.05 second.
Gitlab::Ci::Reports::Sbom::Metadata
has correct attributes
# [RSpecRunTime] Finishing example group spec/lib/gitlab/ci/reports/sbom/metadata_spec.rb. It took 0.04 second. Expected to take 0.05 second.
# [RSpecRunTime] Starting example group spec/graphql/types/work_items/email_participant_type_spec.rb. Expected to take 0.04 second.
Types::WorkItems::EmailParticipantType
exposes the expected fields
# [RSpecRunTime] Finishing example group spec/graphql/types/work_items/email_participant_type_spec.rb. It took 0.04 second. Expected to take 0.04 second.
# [RSpecRunTime] Starting example group spec/graphql/types/packages/terraform_module/metadatum/example_type_spec.rb. Expected to take 0.04 second.
Types::Packages::TerraformModule::Metadatum::ExampleType
includes terraform module metadatum root fields
# [RSpecRunTime] Finishing example group spec/graphql/types/packages/terraform_module/metadatum/example_type_spec.rb. It took 0.04 second. Expected to take 0.04 second.
# [RSpecRunTime] Starting example group spec/serializers/integrations/project_serializer_spec.rb. Expected to take 0.04 second.
Integrations::ProjectSerializer
represents Integrations::ProjectEntity entities
# [RSpecRunTime] Finishing example group spec/serializers/integrations/project_serializer_spec.rb. It took 0.04 second. Expected to take 0.04 second.
# [RSpecRunTime] Starting example group spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb. Expected to take 0.04 second.
Ci::DailyBuildGroupReportResultSerializer
#to_json
returns an array of group results
# [RSpecRunTime] Finishing example group spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb. It took 0.04 second. Expected to take 0.04 second.
auto_explain log contains 1711 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-9-44.343.main.ndjson.gz
took 21.692470959
auto_explain log contains 1712 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-9-44.343.ci.ndjson.gz
took 18.532520419
[TEST PROF INFO] EventProf results for sql.active_record
Total time: 04:12.786 of 21:53.629 (19.24%)
Total events: 199796
Top 5 slowest suites (by time):
MergeRequestDiff (./spec/models/merge_request_diff_spec.rb:5) – 00:59.058 (44284 / 267) of 07:18.333 (13.47%)
Ci::Bridge (./spec/models/ci/bridge_spec.rb:5) – 00:19.884 (16064 / 238) of 01:30.855 (21.89%)
IssuesFinder (./spec/finders/issues_finder_spec.rb:5) – 00:18.120 (13876 / 161) of 01:17.091 (23.51%)
Ci::RetryPipe...ervice#execute (./spec/services/ci/retry_pipeline_service_spec.rb:5) – 00:14.275 (10264 / 29) of 01:00.820 (23.47%)
search/_results (./spec/views/search/_results.html.haml_spec.rb:5) – 00:12.174 (9391 / 21) of 00:50.001 (24.35%)
Knapsack report was generated. Preview:
{
"spec/models/merge_request_diff_spec.rb": 438.3325983809991,
"spec/models/ci/bridge_spec.rb": 90.85529423099979,
"spec/finders/issues_finder_spec.rb": 77.0908847339997,
"spec/services/ci/retry_pipeline_service_spec.rb": 60.820242214000245,
"spec/views/search/_results.html.haml_spec.rb": 50.0003723610007,
"spec/finders/merge_request_target_project_finder_spec.rb": 42.63814430900129,
"spec/services/milestones/transfer_service_spec.rb": 30.12067410199961,
"spec/models/merge_request_diff_commit_spec.rb": 31.027063542998803,
"spec/services/merge_requests/link_lfs_objects_service_spec.rb": 25.850723921999816,
"spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb": 28.093177358001412,
"spec/workers/database/batched_background_migration_worker_spec.rb": 25.138306648999787,
"spec/lib/gitlab/ci/badge/pipeline/status_spec.rb": 19.447345173999565,
"spec/finders/ci/pipelines_for_merge_request_finder_spec.rb": 19.86743387000024,
"spec/lib/gitlab/relative_positioning/item_context_spec.rb": 17.538738341998396,
"spec/workers/resource_access_tokens/inactive_tokens_deletion_cron_worker_spec.rb": 15.741374613000517,
"spec/policies/todo_policy_spec.rb": 15.056715401000474,
"spec/lib/api/entities/merge_request_basic_spec.rb": 14.68533430700154,
"spec/lib/gitlab/zentao/client_spec.rb": 12.431823511999028,
"spec/models/ci/variable_spec.rb": 12.954296029000034,
"spec/finders/concerns/finder_with_cross_project_access_spec.rb": 11.805802651999329,
"spec/policies/ci/runner_policy_spec.rb": 11.835340587000246,
"spec/services/ci/components/fetch_service_spec.rb": 10.907860708999578,
"spec/presenters/clusters/cluster_presenter_spec.rb": 9.769324418000906,
"spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb": 10.239752035999118,
"spec/lib/gitlab/database/migrations/observers/transaction_duration_spec.rb": 12.135143471999982,
"spec/lib/gitlab/checks/commits_check_spec.rb": 8.53395371499937,
"spec/services/deployments/update_service_spec.rb": 8.574238977000277,
"spec/models/members/last_group_owner_assigner_spec.rb": 7.451290524999422,
"spec/models/protected_tag_spec.rb": 7.24840753999888,
"spec/lib/gitlab/checks/lfs_integrity_spec.rb": 7.173045182998976,
"spec/lib/gitlab/current_settings_spec.rb": 6.7760542319992965,
"spec/policies/personal_snippet_policy_spec.rb": 8.342705799001124,
"spec/workers/new_issue_worker_spec.rb": 5.456331994999346,
"spec/graphql/resolvers/projects_resolver_spec.rb": 5.783219076000023,
"spec/lib/gitlab/bitbucket_import/importers/pull_request_importer_spec.rb": 5.249045750000732,
"spec/models/legacy_diff_discussion_spec.rb": 5.026533709000432,
"spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb": 5.356614852000348,
"spec/models/packages/debian/group_distribution_spec.rb": 4.9720560789992305,
"spec/services/packages/debian/create_distribution_service_spec.rb": 4.170978551001099,
"spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb": 3.952810672999476,
"spec/services/users/create_service_spec.rb": 4.098783547999119,
"spec/services/ci/change_variable_service_spec.rb": 3.99684799500028,
"spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 4.012017122000543,
"spec/services/ci/test_failure_history_service_spec.rb": 3.5977277050005796,
"spec/services/git/base_hooks_service_spec.rb": 3.7515090979995875,
"spec/services/bulk_imports/repository_bundle_export_service_spec.rb": 3.582450206999056,
"spec/services/ci/pipelines/update_metadata_service_spec.rb": 2.0239269680005236,
"spec/services/integrations/slack_installation/instance_service_spec.rb": 3.104184981000799,
"spec/finders/projects/ml/candidate_finder_spec.rb": 3.394580260001021,
"spec/lib/gitlab/database/namespace_project_ids_each_batch_spec.rb": 3.0708614960003615,
"spec/workers/integrations/create_external_cross_reference_worker_spec.rb": 2.477528430001257,
"spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 3.006365307001033,
"spec/models/namespaces/descendants_spec.rb": 2.8319558980001602,
"spec/lib/gitlab/sidekiq_middleware_spec.rb": 2.171799772000668,
"spec/services/work_items/delete_service_spec.rb": 2.5861272109996207,
"spec/lib/banzai/filter/autolink_filter_spec.rb": 3.9620866010009195,
"spec/services/import/source_users/update_service_spec.rb": 2.259033656999236,
"spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb": 2.3854466549983044,
"spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb": 2.169049662999896,
"spec/routing/admin_routing_spec.rb": 3.997148036996805,
"spec/services/projects/detect_repository_languages_service_spec.rb": 2.2876959320001333,
"spec/policies/gitlab/git/tag_policy_spec.rb": 2.2013974170004076,
"spec/services/merge_requests/mergeability/run_checks_service_spec.rb": 1.9741934569992736,
"spec/services/cloud_seed/google_cloud/service_accounts_service_spec.rb": 1.9374959529995976,
"spec/finders/groups/accepting_project_transfers_finder_spec.rb": 1.9139974969984905,
"spec/graphql/types/alert_management/prometheus_integration_type_spec.rb": 1.6055012810011249,
"spec/graphql/types/diff_type_spec.rb": 1.661958411001251,
"spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb": 1.6381946649999009,
"spec/views/layouts/devise_empty.html.haml_spec.rb": 1.4643674649996683,
"spec/services/branch_rules/base_service_spec.rb": 2.693669342001158,
"spec/lib/gitlab/database/health_status/indicators/wal_rate_spec.rb": 1.4379280899993319,
"spec/lib/gitlab/ci/pipeline/chain/create_spec.rb": 1.590092303998972,
"spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb": 1.3815675299993018,
"spec/services/alert_management/metric_images/upload_service_spec.rb": 1.3992046160001337,
"spec/lib/gitlab/harbor/query_spec.rb": 1.1958721219998552,
"spec/lib/gitlab/usage/metrics/instrumentations/count_projects_metric_spec.rb": 1.3966091969996342,
"spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb": 0.8678529600001639,
"spec/lib/gitlab/middleware/read_only_spec.rb": 1.2756860190002044,
"spec/workers/packages/helm/extraction_worker_spec.rb": 1.3161304599998402,
"spec/lib/gitlab/jira_import/handle_labels_service_spec.rb": 1.079648733000795,
"spec/lib/api/entities/branch_spec.rb": 0.9993665660003899,
"spec/views/projects/pages/new.html.haml_spec.rb": 1.1510046999992483,
"spec/services/clusters/cleanup/service_account_service_spec.rb": 0.979680680000456,
"spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_gbp_metric_spec.rb": 1.0283356410000124,
"spec/services/bulk_imports/file_decompression_service_spec.rb": 0.8189720979989943,
"spec/lib/gitlab/rack_attack/user_allowlist_spec.rb": 0.4206600369998341,
"spec/lib/gitlab/ci/config/entry/environment_spec.rb": 1.0880842210008268,
"spec/services/packages/npm/create_metadata_cache_service_spec.rb": 1.561570028999995,
"spec/workers/ml/experiment_tracking/associate_ml_candidate_to_package_worker_spec.rb": 0.9239170390010258,
"spec/models/integrations/apple_app_store_spec.rb": 0.7935415020001528,
"spec/graphql/resolvers/commit_pipelines_resolver_spec.rb": 0.8372236750001321,
"spec/rubocop/cop/static_translation_definition_spec.rb": 0.704421287000514,
"spec/workers/ci/pipeline_bridge_status_worker_spec.rb": 0.6648278639986529,
"spec/workers/clusters/agents/delete_expired_events_worker_spec.rb": 0.714129526000761,
"spec/lib/api/helpers/packages/npm_spec.rb": 0.6704206240010535,
"spec/tooling/danger/feature_flag_spec.rb": 0.6966717889990832,
"spec/lib/gitlab/database/postgres_index_bloat_estimate_spec.rb": 0.7691131870014942,
"spec/lib/gitlab/usage/event_selection_rule_spec.rb": 0.6781171319998975,
"spec/serializers/group_link/group_link_entity_spec.rb": 0.5505715149993193,
"spec/support_specs/database/multiple_databases_helpers_spec.rb": 0.6210964420006349,
"spec/models/ml/candidate_metadata_spec.rb": 0.5688465310013271,
"spec/workers/gitlab/import/stuck_import_job_spec.rb": 0.5530456129999948,
"spec/lib/gitlab/bitbucket_import/parallel_scheduling_spec.rb": 0.6094069240007229,
"spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb": 0.4784468170000764,
"spec/lib/gitlab/private_commit_email_spec.rb": 0.4569470909991651,
"spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb": 0.5275224479992175,
"spec/lib/gitlab/import/metrics_spec.rb": 0.4792200159990898,
"spec/tooling/danger/datateam_spec.rb": 0.3916027320010471,
"spec/lib/gitlab/api_authentication/builder_spec.rb": 0.4009564299994963,
"spec/rubocop/cop/gitlab/avoid_gitlab_instance_checks_spec.rb": 0.3711456460005138,
"spec/presenters/issue_email_participant_presenter_spec.rb": 0.34759981900060666,
"spec/models/attr_encrypted_patches_spec.rb": 0.30998341599843116,
"spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 0.3143036360015685,
"spec/lib/gitlab/spamcheck/result_spec.rb": 0.45724789099949703,
"spec/presenters/environment_presenter_spec.rb": 0.3081311469995853,
"spec/helpers/calendar_helper_spec.rb": 0.2944317890014645,
"spec/lib/gitlab/webpack/manifest_spec.rb": 0.29865462799898523,
"spec/graphql/types/terraform/state_type_spec.rb": 0.2892191899991303,
"spec/models/concerns/legacy_bulk_insert_spec.rb": 0.2549754360006773,
"spec/graphql/types/container_registry/protection/rule_type_spec.rb": 0.1733904499997152,
"spec/rubocop/cop/api/ensure_string_detail_spec.rb": 0.23121984000135853,
"spec/lib/gitlab/auth/key_status_checker_spec.rb": 0.2946986779988947,
"spec/lib/sidebars/user_settings/menus/notifications_menu_spec.rb": 0.25178180699913355,
"spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb": 0.1983463849992404,
"spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb": 0.2230754420015728,
"spec/serializers/ci/pipeline_schedule_entity_spec.rb": 0.23247380900102144,
"spec/rubocop/cop/code_reuse/worker_spec.rb": 0.21685866200095916,
"spec/models/namespaces/randomized_suffix_path_spec.rb": 0.1768686790001084,
"spec/lib/gitlab/github_import/representation/user_spec.rb": 0.1691062800000509,
"spec/models/work_items/widgets/start_and_due_date_spec.rb": 0.18297339799937617,
"spec/graphql/mutations/users/saved_replies/destroy_spec.rb": 0.18542945700028213,
"spec/views/devise/shared/_error_messages.html.haml_spec.rb": 0.10603998199985654,
"spec/lib/gitlab/ci/config/entry/imageable_spec.rb": 0.1546994630007248,
"spec/lib/gitlab/error_tracking/processor/sanitizer_processor_spec.rb": 0.13922419499976968,
"spec/graphql/types/error_tracking/sentry_error_type_spec.rb": 0.057716549999895506,
"spec/lib/banzai/pipeline/email_pipeline_spec.rb": 0.14686202499979117,
"spec/lib/gitlab/sidekiq_middleware/pause_control_spec.rb": 0.12835001700113935,
"spec/rubocop/cop/performance/active_record_subtransactions_spec.rb": 0.1409467859994038,
"spec/helpers/ci/pipeline_schedules_helper_spec.rb": 0.10657212199839705,
"spec/lib/gitlab/utils/log_limited_array_spec.rb": 0.1296731370002817,
"spec/lib/gitlab/middleware/rails_queue_duration_spec.rb": 0.11549612000089837,
"spec/rubocop/cop/graphql/enum_names_spec.rb": 0.11622815000009723,
"spec/lib/gitlab/view/presenter/factory_spec.rb": 0.11110596999969857,
"spec/graphql/types/group_member_type_spec.rb": 0.10403985199991439,
"spec/presenters/key_presenter_spec.rb": 0.0869860749990039,
"spec/graphql/types/alert_management/alert_type_spec.rb": 0.10777217100076086,
"spec/initializers/rack_multipart_patch_spec.rb": 0.08461477499986358,
"spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb": 0.08410332600033144,
"spec/rubocop/cop/database/establish_connection_spec.rb": 0.08621269499963091,
"spec/graphql/types/release_assets_input_type_spec.rb": 0.13554775599914137,
"spec/lib/gitlab/git/bundle_file_spec.rb": 0.08598554499985767,
"spec/graphql/types/project_member_relation_enum_spec.rb": 0.06494799900065118,
"spec/lib/gitlab/sidekiq_middleware/pause_control/client_spec.rb": 0.07389101799890341,
"spec/views/help/drawers.html.haml_spec.rb": 0.07525524700031383,
"spec/graphql/types/security/codequality_reports_comparer/status_enum_spec.rb": 0.0623464590007643,
"spec/lib/gitlab/middleware/sidekiq_web_static_spec.rb": 0.06785997800034238,
"spec/graphql/types/ci/config/job_restriction_type_spec.rb": 0.06309214999964752,
"spec/graphql/types/tree/submodule_type_spec.rb": 0.06349724899882858,
"spec/lib/gitlab/ci/config/external/mapper/base_spec.rb": 0.06681556799958344,
"spec/graphql/types/packages/terraform_module/metadatum/output_type_spec.rb": 0.06219941899871628,
"spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb": 0.061852098999224836,
"spec/graphql/types/availability_enum_spec.rb": 0.062109958998917136,
"spec/initializers/session_store_spec.rb": 0.049697851000019,
"spec/routing/projects/security/configuration_controller_routing_spec.rb": 0.04247259300063888,
"spec/lib/gitlab/ci/reports/sbom/metadata_spec.rb": 0.03879987300024368,
"spec/graphql/types/work_items/email_participant_type_spec.rb": 0.03944757299905177,
"spec/graphql/types/packages/terraform_module/metadatum/example_type_spec.rb": 0.03645752400007041,
"spec/serializers/integrations/project_serializer_spec.rb": 0.03729130399915448,
"spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb": 0.03959684300025401
}
Knapsack global time execution for tests: 21m 53s
Pending: (Failures listed here are expected and do not affect your suite's status)
1) Ci::Bridge behaves like a deployable job state transition as a deployable when transits to success behaves like calling proper BuildFinishedWorker calls Ci::BuildFinishedWorker
# No reason given
# ./spec/support/shared_examples/ci/deployable_shared_examples.rb:9
2) Ci::Bridge behaves like a deployable job state transition as a deployable when transits to failed behaves like calling proper BuildFinishedWorker calls Ci::BuildFinishedWorker
# No reason given
# ./spec/support/shared_examples/ci/deployable_shared_examples.rb:9
3) Ci::Bridge behaves like a deployable job state transition as a deployable when transits to canceled behaves like calling proper BuildFinishedWorker calls Ci::BuildFinishedWorker
# No reason given
# ./spec/support/shared_examples/ci/deployable_shared_examples.rb:9
4) Database::BatchedBackgroundMigrationWorker behaves like it runs batched background migration jobs #perform when the base model does not exist does nothing
# because the base model for main exists
# ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:76
5) Database::BatchedBackgroundMigrationWorker behaves like it runs batched background migration jobs #perform when the base model does not exist logs a message indicating execution is skipped
# because the base model for main exists
# ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:82
6) Database::BatchedBackgroundMigrationWorker behaves like it runs batched background migration jobs #perform when the base model does exist when the tracking database is shared does nothing
# Skipping because database main exists
# ./spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb:105
7) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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
11) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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
12) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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
13) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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
14) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution 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
15) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
16) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths #relative_path is relative
# Path not set, skipping.
# ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:40
17) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
18) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
19) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
20) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
21) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
22) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution 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
23) Database::MultipleDatabasesHelpers .with_added_ci_connection when only a single database is setup connects Ci::ApplicationRecord to the main database for the duration of the block
# Skipping because some of the extra databases [:ci] are setup
# ./spec/support_specs/database/multiple_databases_helpers_spec.rb:89
24) RuboCop::Cop::API::EnsureStringDetail when in_api? == true when detail field uses a constant does not add an offense
# No reason given
Failure/Error:
expect_no_offenses(<<~CODE)
class SomeAPI
resource :projects do
DESCRIPTION = 'A string'
desc 'Some API thing related to a project' do
detail DESCRIPTION
end
end
end
expected: "class SomeAPI\n resource :projects do\n DESCRIPTION = 'A string'\n\n desc 'Some API thing related to a project' do\n detail DESCRIPTION\n end\n end\nend\n"
got: "class SomeAPI\n resource :projects do\n DESCRIPTION = 'A string'\n\n desc 'Some API thing rel... ^^^^^^^^^^^^^^^^^^ Only String objects are permitted in API detail field.\n end\n end\nend\n"
(compared using ==)
Diff:
@@ -4,6 +4,7 @@
desc 'Some API thing related to a project' do
detail DESCRIPTION
+ ^^^^^^^^^^^^^^^^^^ Only String objects are permitted in API detail field.
end
end
end
# ./spec/rubocop/cop/api/ensure_string_detail_spec.rb:61:in `block (4 levels) in <top (required)>'
# ./spec/spec_helper.rb:479:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
# ./spec/spec_helper.rb:478:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:473:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:464:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:460:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:92:in `with_raw_context'
# ./spec/spec_helper.rb:460:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:277: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 22 minutes 45 seconds (files took 1 minute 25.53 seconds to load)
2561 examples, 0 failures, 24 pending
Randomized with seed 27989
[TEST PROF INFO] Time spent in factories: 15:26.638 (67.36% of total time)
RSpec exited with 0.
No examples to retry, congrats!
Running after_script
Running after script...
$ source scripts/utils.sh
$ log_disk_usage
*******************************************************
This runner currently has 63G free disk space.
*******************************************************
Disk usage detail
$ bundle exec gem list gitlab_quality-test_tooling
gitlab_quality-test_tooling (2.1.0)
$ $ section_start "failed-test-issues" "Report test failures" # collapsed multi-line command[0;m
Report test failures
$ $ section_start "flaky-test-issues" "Report test flakiness" # collapsed multi-line command[0;m
Report test flakiness
$ $ section_start "slow-test-issues" "Report test slowness" # collapsed multi-line command[0;m
Report test slowness
$ $ section_start "slow-test-merge-request-report-note" "Report test slowness in MR note" # collapsed multi-line command[0;m
Report test slowness in MR note
$ $ section_start "knapsack-report-issues" "Report test files close to timing out" # collapsed multi-line command[0;m
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.
Saving cache for successful job
Not uploading cache ruby-gems-debian-bookworm-ruby-3.2.5-gemfile-Gemfile-19 due to policy
Uploading artifacts for successful job
Uploading artifacts...
auto_explain/: found 3 matching artifact files and directories
coverage/: found 5 matching artifact files and directories
crystalball/: found 2 matching artifact files and directories
deprecations/: found 4 matching artifact files and directories
knapsack/: found 4 matching artifact files and directories
rspec/: found 16 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/8181075816/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=8181075816 responseStatus=201 Created token=glcbt-66
Uploading artifacts...
rspec/rspec-*.xml: found 1 matching artifact files and directories
WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/8181075816/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=8181075816 responseStatus=201 Created token=glcbt-66
Cleaning up project directory and file based variables
Job succeeded