rspec unit pg11 3/20
Passed Started
by
@ayufan
Kamil Trzciński
1Running with gitlab-runner 13.3.0 (86ad88ea)2 on prm-com-gitlab-org bd0915564Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...5Starting service postgres:11.6 ...6Pulling docker image postgres:11.6 ...7Using docker image sha256:2c963c0eb8c6efa49bb8352ea446f248d208d674cfc34fc9ea275b5f99f8dedd for postgres:11.6 ...8Starting service redis:4.0-alpine ...9Pulling docker image redis:4.0-alpine ...10Using docker image sha256:e3dd0e49bca555d559ca2e97f06a1efa108ebd230fddcb17606723994f18ae3b for redis:4.0-alpine ...11Waiting for services to be up and running...12Authenticating with credentials from job payload (GitLab Registry)13Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...14Using docker image sha256:cd688957c9207f55272d81be6d4908692d78233833e3f09a9c0899b2f24eb3ff for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...16Running on runner-bd091556-project-278964-concurrent-0 via runner-bd091556-prm-1598350047-d5d4a982...18$ eval "$CI_PRE_CLONE_SCRIPT"19Downloading archived master...20Connecting to storage.googleapis.com (172.217.204.128:443)21saving to '/tmp/gitlab.tar.gz'22gitlab.tar.gz 18% |****** | 189M 0:00:04 ETA23gitlab.tar.gz 55% |***************** | 557M 0:00:01 ETA24gitlab.tar.gz 92% |***************************** | 927M 0:00:00 ETA25gitlab.tar.gz 100% |********************************| 1004M 0:00:00 ETA26'/tmp/gitlab.tar.gz' saved27Extracting tarball into /builds/gitlab-org/gitlab...28Fetching changes with git depth set to 20...29Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/30Created fresh repository.31Checking out dbc1a472 as master...32Skipping Git submodules setup34Checking cache for rails-v2-3...35cache.zip is up to date 36Successfully extracted cache38Downloading artifacts for compile-test-assets (702959600)...39Downloading artifacts from coordinator... ok id=702959600 responseStatus=200 OK token=efr6uzds40Downloading artifacts for retrieve-tests-metadata (702959602)...41Downloading artifacts from coordinator... ok id=702959602 responseStatus=200 OK token=VgekGNeS42Downloading artifacts for setup-test-env (702959601)...43Downloading artifacts from coordinator... ok id=702959601 responseStatus=200 OK token=Fwwkf6XV44WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 46$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb47$ export GOPATH=$CI_PROJECT_DIR/.go48$ mkdir -p $GOPATH49$ source scripts/utils.sh50$ source scripts/prepare_build.sh51Bundler version 1.17.252$ bundle install --clean --without=production --without=development --jobs=2 --path=vendor --retry=3 --quiet53==> 'bundle install --clean --without=production --without=development --jobs=2 --path=vendor --retry=3 --quiet' succeeded in 2 seconds.54$ bundle check55Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.56The Gemfile's dependencies are satisfied57==> 'bundle check' succeeded in 0 seconds.58$ bundle pristine pg59Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.60Installing pg 1.2.2 with native extensions61==> 'bundle pristine pg' succeeded in 10 seconds.62$ gem install knapsack --no-document63Successfully installed knapsack-1.18.0641 gem installed65==> 'gem install knapsack --no-document' succeeded in 0 seconds.66$ setup_db_user_only67CREATE ROLE68GRANT69==> 'setup_db_user_only' succeeded in 0 seconds.70$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee71Dropped database 'gitlabhq_test'72Created database 'gitlabhq_test'73Dropped database 'gitlabhq_geo_test'74Created database 'gitlabhq_geo_test'75==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 27 seconds.76$ run_timed_command "scripts/gitaly-test-build"77$ scripts/gitaly-test-build78Settings are listed in order of priority. The top value will be used.79retry80Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 381path82Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"83jobs84Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 485app_config86Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config"87gemfile88Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"89flags90Set via BUNDLE_FLAGS: "--jobs=4 --retry=3 --quiet --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby"91silence_root_warning92Set via BUNDLE_SILENCE_ROOT_WARNING: true93go install -ldflags '-X gitlab.com/gitlab-org/gitaly/internal/version.version=13.3.0-rc5 -X gitlab.com/gitlab-org/gitaly/internal/version.buildtime=20200825.153135' -tags "tracer_static,tracer_static_jaeger,continuous_profiler_stackdriver" gitlab.com/gitlab-org/gitaly/cmd/praefect gitlab.com/gitlab-org/gitaly/cmd/gitaly-hooks gitlab.com/gitlab-org/gitaly/cmd/gitaly-blackbox gitlab.com/gitlab-org/gitaly/cmd/gitaly gitlab.com/gitlab-org/gitaly/cmd/gitaly-debug gitlab.com/gitlab-org/gitaly/cmd/gitaly-ssh gitlab.com/gitlab-org/gitaly/cmd/gitaly-wrapper94install /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/praefect /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-hooks /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-blackbox /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-debug /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-ssh /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-wrapper /builds/gitlab-org/gitlab/tmp/tests/gitaly95Checking gitaly-ruby Gemfile...96Checking gitaly-ruby bundle...97Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.98The Gemfile's dependencies are satisfied99Trying to connect to gitaly: ........ OK100Trying to connect to praefect: ........ OK101==> 'scripts/gitaly-test-build' succeeded in 44 seconds.102$ run_timed_command "scripts/gitaly-test-spawn"103$ scripts/gitaly-test-spawn104Checking gitaly-ruby Gemfile...105Checking gitaly-ruby bundle...106Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.107The Gemfile's dependencies are satisfied108Trying to connect to gitaly: ........ OK109Trying to connect to praefect: ....... OK110==> 'scripts/gitaly-test-spawn' succeeded in 2 seconds.111$ source scripts/rspec_helpers.sh112$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"113KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,support_specs,tasks,uploaders,validators,views,workers,elastic_integration,tooling}{,/**/}*_spec.rb114RSpec's reporter has already been initialized with #<IO:<STDERR>> as the deprecation stream, so your change to `deprecation_stream` will be ignored. You should configure it earlier for it to take effect, or use the `--deprecation-out` CLI option. (Called from /builds/gitlab-org/gitlab/spec/support/rspec.rb:12:in `block in <top (required)>')115Knapsack report generator started!116Run options:117 include {:focus=>true}118 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}119All examples were filtered out; ignoring {:focus=>true}120==> Setting up gitlab-test bare repository in /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare...121 /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.035650067 seconds...122Project123 returns valid url to repo124 behaves like having unique enum values125 has unique values in "auto_cancel_pending_pipelines"126 associations127 is expected to belong to group required:128 is expected to belong to namespace required:129 is expected to belong to creator class_name => User required:130 is expected to belong to pool_repository required:131 is expected to have many users132 is expected to have many services133 is expected to have many events134 is expected to have many merge_requests135 is expected to have many issues136 is expected to have many milestones137 is expected to have many iterations138 is expected to have many project_members dependent => delete_all139 is expected to have many users through project_members140 is expected to have many requesters dependent => delete_all141 is expected to have many notes142 is expected to have many snippets class_name => ProjectSnippet143 is expected to have many deploy_keys_projects144 is expected to have many deploy_keys145 is expected to have many hooks146 is expected to have many protected_branches147 is expected to have one slack_service148 is expected to have one microsoft_teams_service149 is expected to have one mattermost_service150 is expected to have one hangouts_chat_service151 is expected to have one unify_circuit_service152 is expected to have one webex_teams_service153 is expected to have one packagist_service154 is expected to have one pushover_service155 is expected to have one asana_service156 is expected to have many boards157 is expected to have one campfire_service158 is expected to have one discord_service159 is expected to have one drone_ci_service160 is expected to have one emails_on_push_service161 is expected to have one pipelines_email_service162 is expected to have one irker_service163 is expected to have one pivotaltracker_service164 is expected to have one hipchat_service165 is expected to have one flowdock_service166 is expected to have one assembla_service167 is expected to have one slack_slash_commands_service168 is expected to have one mattermost_slash_commands_service169 is expected to have one buildkite_service170 is expected to have one bamboo_service171 is expected to have one teamcity_service172 is expected to have one jira_service173 is expected to have one redmine_service174 is expected to have one youtrack_service175 is expected to have one custom_issue_tracker_service176 is expected to have one bugzilla_service177 is expected to have one external_wiki_service178 is expected to have one confluence_service179 is expected to have one project_feature180 is expected to have one project_repository181 is expected to have one container_expiration_policy182 is expected to have one statistics class_name => ProjectStatistics183 is expected to have one import_data class_name => ProjectImportData184 is expected to have one last_event class_name => Event185 is expected to have one forked_from_project through fork_network_member186 is expected to have one auto_devops class_name => ProjectAutoDevops187 is expected to have one error_tracking_setting class_name => ErrorTracking::ProjectErrorTrackingSetting188 is expected to have one project_setting189 is expected to have one alerting_setting class_name => Alerting::ProjectAlertingSetting190 is expected to have many commit_statuses191 is expected to have many ci_pipelines192 is expected to have many ci_refs193 is expected to have many builds194 is expected to have many build_trace_section_names195 is expected to have many build_report_results196 is expected to have many runner_projects197 is expected to have many runners198 is expected to have many variables199 is expected to have many triggers200 is expected to have many pages_domains201 is expected to have many labels class_name => ProjectLabel202 is expected to have many users_star_projects203 is expected to have many repository_languages204 is expected to have many environments205 is expected to have many deployments206 is expected to have many todos207 is expected to have many releases208 is expected to have many lfs_objects_projects209 is expected to have many project_group_links210 is expected to have many notification_settings dependent => delete_all211 is expected to have many forked_to_members class_name => ForkNetworkMember212 is expected to have many forks through forked_to_members213 is expected to have many uploads214 is expected to have many pipeline_schedules215 is expected to have many members_and_requesters216 is expected to have many clusters217 is expected to have many management_clusters class_name => Clusters::Cluster218 is expected to have many kubernetes_namespaces219 is expected to have many cluster_agents class_name => Clusters::Agent220 is expected to have many custom_attributes class_name => ProjectCustomAttribute221 is expected to have many project_badges class_name => ProjectBadge222 is expected to have many lfs_file_locks223 is expected to have many project_deploy_tokens224 is expected to have many deploy_tokens through project_deploy_tokens225 is expected to have many cycle_analytics_stages226 is expected to have many external_pull_requests227 is expected to have many sourced_pipelines228 is expected to have many source_pipelines229 is expected to have many prometheus_alert_events230 is expected to have many self_managed_prometheus_alert_events231 is expected to have many alert_management_alerts232 is expected to have many jira_imports233 is expected to have many metrics_users_starred_dashboards inverse_of => project234 is expected to have many repository_storage_moves235 is expected to have many reviews inverse_of => project236 is expected to have many packages class_name => Packages::Package237 is expected to have many package_files class_name => Packages::PackageFile238 is expected to have many pipeline_artifacts239 has an inverse relationship with merge requests240 has a distinct has_many :lfs_objects relation through lfs_objects_projects241 behaves like model with repository242 #commits_by243 retrieves several commits from the repository by oid244 #web_url245 when given the only_path option246 when only_path is false247 returns the full web URL for this repo248 when only_path is true249 returns the relative web URL for this repo250 when only_path is nil251 returns the full web URL for this repo252 when not given the only_path option253 returns the full web URL for this repo254 #url_to_repo255 returns the SSH URL to the repository256 #ssh_url_to_repo257 returns the SSH URL to the repository258 #http_url_to_repo259 returns the HTTP URL to the repository260 #repository261 returns valid repo262 #storage263 returns valid storage264 #full_path265 returns valid full_path266 #empty_repo?267 when the repo does not exist268 returns true269 when the repo exists270 returns the empty state of the repository271 #valid_repo?272 is expected to equal false273 is expected to equal true274 #repository_exists?275 is expected to equal false276 is expected to equal true277 #repo_exists?278 is expected to equal false279 is expected to equal true280 #root_ref281 is expected to equal true282 is expected to equal false283 is expected to equal false284 Respond to285 is expected to respond to #base_dir286 is expected to respond to #disk_path287 is expected to respond to #gitlab_shell288 .pick_repository_storage289 picks storage from ApplicationSetting290 picks from the available storages based on weight291 behaves like model with wiki292 #create_wiki293 returns true if the wiki repository already exists294 returns true if the wiki repository was created295 when the repository cannot be created296 returns false and adds a validation error297 #wiki_repository_exists?298 returns true when the wiki repository exists299 returns false when the wiki repository does not exist300 wiki path conflict301 when the new path has been used by the wiki of other Project302 has an error on the name attribute303 when the new wiki path has been used by the path of other Project304 has an error on the name attribute305 when the new path has been used by the wiki of other Group306 has an error on the name attribute307 when the new wiki path has been used by the path of other Group308 has an error on the name attribute309 after initialized310 has a project_feature311 when creating a new project312 automatically creates a CI/CD settings row313 automatically creates a container expiration policy row314 does not create another container expiration policy if there is already one315 automatically creates a Pages metadata row316 automatically builds a project setting row317 updating cd_cd_settings318 does not raise an error319 #members & #requesters320 behaves like members and requesters associations321 #members_and_requesters322 includes members and requesters323 #members324 includes members and exclude requesters325 #requesters326 does not include requesters327 ci_pipelines association328 returns only pipelines from ci_sources329 modules330 is expected to includes the Gitlab::ConfigHelper module331 is expected to includes the Gitlab::ShellAdapter module332 is expected to includes the Gitlab::VisibilityLevel module333 is expected to includes the Referable module334 is expected to includes the Sortable module335 validation336 is expected to validate that :name cannot be empty/falsy337 is expected to validate that :name is case-sensitively unique within the scope of :namespace_id338 is expected to validate that the length of :name is at most 255339 is expected to validate that :path cannot be empty/falsy340 is expected to validate that the length of :path is at most 255341 is expected to validate that the length of :description is at most 2000342 is expected to validate that the length of :ci_config_path is at most 255343 is expected to allow :ci_config_path to be ‹""›344 is expected not to allow :ci_config_path to be ‹"test/../foo"›345 is expected not to allow :ci_config_path to be ‹"/test/foo"›346 is expected to validate that :creator cannot be empty/falsy347 is expected to validate that :namespace cannot be empty/falsy348 is expected to validate that :repository_storage cannot be empty/falsy349 is expected to validate that :max_artifacts_size looks like an integer greater than 0350 validates build timeout constraints351 does not allow new projects beyond user limits352 validates the visibility353 validates presence of project_feature354 repository storages inclusion355 does not allow repository storages that don't match a label in the configuration356 import_url357 does not allow an invalid URI as import_url358 does allow a SSH URI as import_url for persisted projects359 does not allow a SSH URI as import_url for new projects360 does allow a valid URI as import_url361 allows an empty URI362 does not produce import data on an empty URI363 does not produce import data on an invalid URI364 does not allow import_url pointing to localhost365 does not allow import_url pointing to the local network366 does not allow import_url with invalid ports for new projects367 does not allow import_url with invalid ports for persisted projects368 does not allow import_url with invalid user369 does not allow urls with CR or LF characters370 project pending deletion371 contains errors related to the project being deleted372 path validation373 allows paths reserved on the root namespace374 rejects paths reserved on another level375 rejects nested paths376 allows a reserved group name377 allows a path ending in a period378 #all_pipelines379 has all pipelines380 when builds are disabled381 returns .external pipelines382 #has_packages?383 with maven packages384 behaves like returning true examples385 is expected to equal true386 with npm packages387 behaves like returning true examples388 is expected to equal true389 with conan packages390 behaves like returning true examples391 is expected to equal true392 with no package type393 behaves like returning false examples394 is expected to equal false395 #ci_pipelines396 has ci pipelines397 when builds are disabled398 returns .external pipelines399 #autoclose_referenced_issues400 when DB entry is nil401 returns true402 when DB entry is true403 returns true404 when DB entry is false405 returns false406 project token407 sets an random token if none provided408 does not set an random token if one provided409 Respond to410 is expected to respond to #url_to_repo411 is expected to respond to #execute_hooks412 is expected to respond to #owner413 is expected to respond to #path_with_namespace414 is expected to respond to #full_path415 delegation416 is expected to delegate #add_guest to the #team object417 is expected to delegate #add_reporter to the #team object418 is expected to delegate #add_developer to the #team object419 is expected to delegate #add_maintainer to the #team object420 is expected to delegate #add_user to the #team object421 is expected to delegate #add_users to the #team object422 is expected to delegate #team_members to the #team object as #members423 is expected to delegate #owner_name to the #owner object passing arguments [{:allow_nil=>true}] as #name424 is expected to delegate #root_ancestor to the #namespace object passing arguments [{:allow_nil=>true}]425 is expected to delegate #last_pipeline to the #commit object passing arguments [{:allow_nil=>true}]426 reference methods427 #to_reference428 returns the path with reference_postfix429 returns the path with reference_postfix when arg is self430 returns the full_path with reference_postfix when full431 returns the full_path with reference_postfix when cross-project432 #to_reference_base433 when nil argument434 returns nil435 when full is true436 returns complete path to the project437 when same project argument438 returns nil439 when cross namespace project argument440 returns complete path to the project441 when same namespace / cross-project argument442 returns path to the project443 when different namespace / cross-project argument with same owner444 returns full path to the project445 when argument is a namespace446 with same project path447 returns path to the project448 with different project path449 returns full path to the project450 when argument is a user451 returns full path to the project452 #to_human_reference453 when nil argument454 returns nil455 when same project argument456 returns nil457 when cross namespace project argument458 returns complete name with namespace of the project459 when same namespace / cross-project argument460 returns name of the project461 #merge_method462 ff: true, rebase: true, method: :ff463 is expected to eq :ff464 ff: true, rebase: false, method: :ff465 is expected to eq :ff466 ff: false, rebase: true, method: :rebase_merge467 is expected to eq :rebase_merge468 ff: false, rebase: false, method: :merge469 is expected to eq :merge470 #readme_url471 with a non-existing repository472 returns nil473 with an existing repository474 when no README exists475 returns nil476 when a README exists477 returns the README478 #new_issuable_address479 incoming email enabled480 returns the address to create a new issue481 returns the address to create a new merge request482 returns nil with invalid address type483 incoming email disabled484 returns nil485 returns nil486 last_activity methods487 last_activity488 alias last_activity to last_event489 last_activity_date490 returns the creation date of the project's last event if present491 returns the project's last update date if it has no events492 returns the most recent timestamp493 #get_issue494 with default issues tracker495 returns an issue496 returns count of open issues497 returns nil when no issue found498 returns nil when user doesn't have access499 with external issues tracker500 when internal issues are enabled501 returns interlan issue502 returns an ExternalIssue when internal issue does not exists503 when internal issues are disabled504 returns always an External issues505 returns an ExternalIssue when internal issue does not exists506 #issue_exists?507 is truthy when issue exists508 is falsey when issue does not exist509 #to_param510 with namespace511 is expected to eq "gitlabhq"512 with invalid path513 returns previous path to keep project suitable for use in URLs when persisted514 returns current path when new record515 #default_issues_tracker?516 is true if used internal tracker517 is false if used other tracker518 #external_issue_tracker519 returns nil and does not query services when there is no external issue tracker520 retrieves external_issue_tracker querying services and cache it when there is external issue tracker521 on existing projects with no value for has_external_issue_tracker522 updates the has_external_issue_tracker boolean523 #cache_has_external_issue_tracker524 stores true if there is any external_issue_tracker525 stores false if there is no external_issue_tracker526 does not cache data when in a read-only GitLab instance527 #cache_has_external_wiki528 stores true if there is any external_wikis529 stores false if there is no external_wikis530 does not cache data when in a read-only GitLab instance531 #has_wiki?532 returns true if project is wiki enabled or has external wiki533 #default_owner534 the project does not have a group535 is the namespace owner536 the project is in a group537 is the group owner538 #external_wiki539 with an active external wiki540 sets :has_external_wiki as true541 sets :has_external_wiki as false if an external wiki service is destroyed later542 with an inactive external wiki543 sets :has_external_wiki as false544 with no external wiki545 sets :has_external_wiki as false546 sets :has_external_wiki as true if an external wiki service is created later547 #star_count548 counts stars from multiple users549 counts stars on the right project550 #avatar_type551 is true if avatar is image552 is false if avatar is html page553 #avatar_url554 when avatar file is uploaded555 shows correct url556 when avatar file in git557 is expected to eq "http://localhost/namespace157/project162/-/avatar"558 when git repo is empty559 is expected to eq nil560 #pipeline_for561 with a matching pipeline562 with explicit sha563 behaves like giving the correct pipeline564 is expected to eq #<Ci::Pipeline id: 9, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil..., source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 5, locked: "unlocked">565 return latest566 is expected to eq #<Ci::Pipeline id: 11, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni..., source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 6, locked: "unlocked">567 with supplied id568 is expected to eq #<Ci::Pipeline id: 13, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni..., source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 7, locked: "unlocked">569 with implicit sha570 behaves like giving the correct pipeline571 is expected to eq #<Ci::Pipeline id: 14, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni..., source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 8, locked: "unlocked">572 return latest573 is expected to eq #<Ci::Pipeline id: 16, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni..., source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 9, locked: "unlocked">574 when there is no matching pipeline575 is expected to be nil576 #pipelines_for577 is expected to contain exactly #<Ci::Pipeline id: 17, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni... source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 10, locked: "unlocked"> and #<Ci::Pipeline id: 18, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni... source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 10, locked: "unlocked">578 #builds_enabled579 is expected to be truthy580 .sort_by_attribute581 reorders the input relation by start count desc582 .with_shared_runners583 when shared runners are enabled for project584 returns a project585 when shared runners are disabled for project586 returns an empty array587 .cached_count588 returns total project count589 .trending590 sorts projects by the amount of notes in descending order591 does not take system notes into account592 .starred_by593 returns only projects starred by the given user594 .with_limit595 limits the number of projects returned596 .visible_to_user597 when a user has access to a project598 is expected to eq [#<Project id:160 namespace184/project189>>]599 when a user does not have access to any projects600 is expected to eq []601 .with_service602 avoid n + 1603 .service_desk_enabled604 returns the correct project605 #service_desk_enabled?606 is enabled607 #service_desk_address608 when service_desk_email is disabled609 behaves like with incoming email address610 when incoming email is enabled611 uses project full path as service desk address key612 when incoming email is disabled613 uses project full path as service desk address key614 when service_desk_email is enabled615 when service_desk_custom_address flag is enabled616 returns custom address when project_key is set617 behaves like with incoming email address618 when incoming email is enabled619 uses project full path as service desk address key620 when incoming email is disabled621 uses project full path as service desk address key622 when service_desk_custom_address flag is disabled623 behaves like with incoming email address624 when incoming email is enabled625 uses project full path as service desk address key626 when incoming email is disabled627 uses project full path as service desk address key628 .find_by_service_desk_project_key629 returns the correct project630 returns nil if there is no project with the key631 repository storage by default632 picks storage from ApplicationSetting633 shared runners by default634 are enabled635 is expected to be truthy636 are disabled637 is expected to be falsey638 #any_runners?639 shared runners640 for shared runners disabled641 has no runners available642 has a specific runner643 has a shared runner, but they are prohibited to use644 checks the presence of specific runner645 returns false if match cannot be found646 for shared runners enabled647 has a shared runner648 checks the presence of shared runner649 returns false if match cannot be found650 group runners651 for group runners disabled652 has no runners available653 has a group runner, but they are prohibited to use654 for group runners enabled655 has a group runner656 checks the presence of group runner657 returns false if match cannot be found658 #shared_runners659 when shared runners are enabled for project660 returns a list of shared runners661 when shared runners are disabled for project662 returns a empty list663 #visibility_level664 by default665 is expected to eq 0666 when set to INTERNAL in application settings667 is expected to eq 10668 attribute_name: :visibility, value: "public"669 sets the visibility level670 attribute_name: :visibility_level, value: 20671 sets the visibility level672 attribute_name: "visibility", value: "public"673 sets the visibility level674 attribute_name: "visibility_level", value: 20675 sets the visibility level676 #visibility_level_allowed?677 when checking on non-forked project678 is expected to be truthy679 is expected to be truthy680 is expected to be truthy681 when checking on forked project682 is expected to be truthy683 is expected to be truthy684 is expected to be falsey685 #pages_deployed?686 if pages are deployed687 is expected to be truthy688 if public folder doesn't exist689 is expected to be falsey690 #default_branch_protected?691 default_branch_protection_level: 0, result: false692 is expected to eq false693 default_branch_protection_level: 1, result: false694 is expected to eq false695 default_branch_protection_level: 3, result: true696 is expected to eq true697 default_branch_protection_level: 2, result: true698 is expected to eq true699 #pages_url700 group page701 is expected to eq "http://group.example.com"702 mixed case path703 is expected to eq "http://group.example.com"704 project page705 is expected to eq "http://group.example.com/project"706 mixed case path707 is expected to eq "http://group.example.com/Project"708 #pages_group_url709 group page710 is expected to eq "http://group.example.com:1234"711 project page712 is expected to eq "http://group.example.com:1234"713 .search714 returns projects with a matching name715 returns projects with a partially matching name716 returns projects with a matching name regardless of the casing717 returns projects with a matching description718 returns projects with a partially matching description719 returns projects with a matching description regardless of the casing720 returns projects with a matching path721 returns projects with a partially matching path722 returns projects with a matching path regardless of the casing723 when include_namespace is true724 returns projects that match the group path725 returns projects that match the full path726 with pending_delete project727 shows pending deletion project728 .optionally_search729 searches for projects matching the query if one is given730 returns the current relation if no search query is given731 .eager_load_namespace_and_owner732 eager loads the namespace and namespace owner733 #expire_caches_before_rename734 expires the caches of the repository and wiki735 .search_by_title736 returns projects with a matching name737 returns projects with a partially matching name738 returns projects with a matching name regardless of the casing739 when checking projects from groups740 when group is private project can not be internal741 is expected to be falsey742 when group is internal project can not be public743 is expected to be falsey744 #track_project_repository745 with projects on legacy storage746 behaves like tracks storage location747 when a project repository entry does not exist748 creates a new entry749 tracks the project storage location750 when a tracking entry exists751 does not create a new entry in the database752 updates the project storage location753 with projects on hashed storage754 behaves like tracks storage location755 when a project repository entry does not exist756 creates a new entry757 tracks the project storage location758 when a tracking entry exists759 does not create a new entry in the database760 updates the project storage location761 #create_repository762 using a regular repository763 creates the repository764 adds an error if the repository could not be created765 using a forked repository766 does nothing767 #ensure_repository768 creates the repository if it not exist769 does not create the repository if it exists770 creates the repository if it is a fork771 handling import URL772 returns the sanitized URL773 saves the url credentials percent decoded774 saves url with no credentials775 #container_registry_url776 for enabled registry777 is expected not to be nil778 for disabled registry779 is expected to be nil780 #has_container_registry_tags?781 when container registry is enabled782 when tags are present for multi-level registries783 has image tags784 when tags are present for root repository785 has image tags786 when there are no tags at all787 does not have image tags788 when container registry is disabled789 does not have image tags790 does not check root repository tags791 iterates through container repositories792 #ci_config_path=793 default_ci_config_path: nil, project_ci_config_path: :notset, expected_ci_config_path: :default794 returns the correct path795 default_ci_config_path: nil, project_ci_config_path: nil, expected_ci_config_path: :default796 returns the correct path797 default_ci_config_path: nil, project_ci_config_path: "", expected_ci_config_path: :default798 returns the correct path799 default_ci_config_path: nil, project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"800 returns the correct path801 default_ci_config_path: "", project_ci_config_path: :notset, expected_ci_config_path: :default802 returns the correct path803 default_ci_config_path: "", project_ci_config_path: nil, expected_ci_config_path: :default804 returns the correct path805 default_ci_config_path: "", project_ci_config_path: "", expected_ci_config_path: :default806 returns the correct path807 default_ci_config_path: "", project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"808 returns the correct path809 default_ci_config_path: "global/path", project_ci_config_path: :notset, expected_ci_config_path: "global/path"810 returns the correct path811 default_ci_config_path: "global/path", project_ci_config_path: nil, expected_ci_config_path: :default812 returns the correct path813 default_ci_config_path: "global/path", project_ci_config_path: "", expected_ci_config_path: :default814 returns the correct path815 default_ci_config_path: "global/path", project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"816 returns the correct path817 #uses_default_ci_config?818 has a custom ci config path819 has a blank ci config path820 does not have a custom ci config path821 #latest_successful_build_for_ref822 behaves like latest successful build for sha or ref823 with many builds824 gives the latest builds from latest pipeline825 with succeeded pipeline826 standalone pipeline827 returns builds for ref for default_branch828 with nonexistent build829 returns empty relation if the build cannot be found830 with some pending pipeline831 gives the latest build from latest pipeline832 with pending pipeline833 returns empty relation834 with a specified ref835 is expected to eq #<Ci::Build id: 10, status: "success", finished_at: "2020-08-25 08:53:29", trace: nil, created_at: "2...up_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", tag_list: nil>836 #latest_pipeline_for_ref837 default repository branch838 is expected to eq #<Ci::Pipeline id: 28, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: nil, locked: "unlocked">839 provided ref840 is expected to eq #<Ci::Pipeline id: 32, ref: "add-balsamiq-file", sha: "b89b56d795dcf0351e9d627b58fd2fc67616da05", bef...source_sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: nil, locked: "unlocked">841 bad ref842 is expected to be nil843 #latest_successful_build_for_sha844 behaves like latest successful build for sha or ref845 with many builds846 gives the latest builds from latest pipeline847 with succeeded pipeline848 standalone pipeline849 returns builds for ref for default_branch850 with nonexistent build851 returns empty relation if the build cannot be found852 with some pending pipeline853 gives the latest build from latest pipeline854 with pending pipeline855 returns empty relation856 #latest_successful_build_for_ref!857 with many builds858 gives the latest builds from latest pipeline859 with succeeded pipeline860 standalone pipeline861 returns builds for ref for default_branch862 returns exception if the build cannot be found863 with some pending pipeline864 gives the latest build from latest pipeline865 with pending pipeline866 returns empty relation867 #import_status868 with import_state869 returns the right status870 without import_state871 returns none872 #jira_import_status873 when no jira imports874 returns none875 when there are jira imports876 when latest import status is initial or jira imports are mising877 returns initial878 when latest import status is scheduled879 returns scheduled880 #human_import_status_name881 with import_state882 returns the right human import status883 without import_state884 returns none885 #add_import_job886 forked887 schedules a RepositoryForkWorker job888 without repository889 schedules RepositoryImportWorker890 not forked891 schedules a RepositoryImportWorker job892 jira import893 schedules a jira import job894 #jira_import?895 is expected to equal true896 is expected to equal true897 #remove_import_data898 when jira import899 does remove import data900 when neither a mirror nor a jira import901 removes import data902 #gitlab_project_import?903 is expected to equal true904 #gitea_import?905 is expected to equal true906 #has_remote_mirror?907 returns true when a remote mirror is enabled908 returns false when remote mirror is disabled909 #update_remote_mirrors910 syncs enabled remote mirror911 does nothing when remote mirror is disabled globally and not overridden912 does not sync disabled remote mirrors913 #remote_mirror_available?914 when remote mirror global setting is enabled915 returns true916 when remote mirror global setting is disabled917 returns true when overridden918 returns false when not overridden919 #mark_stuck_remote_mirrors_as_failed!920 fails stuck remote mirrors921 #ancestors_upto922 returns all ancestors when no namespace is given923 includes ancestors upto but excluding the given ancestor924 with hierarchy_order925 returns ancestors ordered by descending hierarchy926 can be used with upto option927 #root_ancestor928 is expected to eq #<Namespace id: 423, name: "John Doe395", path: "namespace327", owner_id: 380, created_at: "2020-08-2...cendants_override_disabled_shared_runners: false, traversal_ids: [], delayed_project_removal: false>929 in a group930 is expected to eq #<Group id:424 @group34>931 in a nested group932 is expected to eq #<Group id:427 @group35>933 #emails_disabled?934 emails disabled in group935 returns true936 emails enabled in group937 returns false938 returns true939 #lfs_enabled?940 LFS disabled in group941 behaves like project overrides group942 returns true when enabled in project943 returns false when disabled in project944 returns the value from the namespace, when no value is set in project945 LFS enabled in group946 behaves like project overrides group947 returns true when enabled in project948 returns false when disabled in project949 returns the value from the namespace, when no value is set in project950 LFS disabled globally951 when no values are set952 behaves like it always returns false953 is expected to be falsey954 when all values are set to true955 behaves like it always returns false956 is expected to be falsey957 #change_head958 returns error if branch does not exist959 calls the before_change_head and after_change_head methods960 updates commit count961 copies the gitattributes962 reloads the default branch963 forks964 #fork_network965 includes a fork of the project966 includes a fork of a fork967 includes sibling forks968 includes the base project969 #in_fork_network_of?970 is true for a real fork971 is true for a fork of a fork972 is true for sibling forks973 is false when another project is given974 #fork_source975 returns the direct source if it exists976 returns the root of the fork network when the directs source was deleted977 returns nil if it is the root of the fork network978 #forks979 includes direct forks of the project980 #lfs_storage_project981 returns self for non-forks982 returns the fork network root for forks983 returns self when fork_source is nil984 #all_lfs_objects985 when LFS object is only associated to the source986 returns the lfs object for a project987 returns the lfs object for a fork988 when LFS object is only associated to the fork989 returns nothing990 returns the lfs object for a fork991 when LFS object is associated to both source and fork992 returns the lfs object for the source and fork993 #set_repository_read_only!994 returns true when there is no existing git transfer in progress995 returns false when there is an existing git transfer in progress996 #set_repository_writable!997 sets repository_read_only to false998 #pushes_since_gc999 without any pushes1000 returns 01001 with a number of pushes1002 returns the number of pushes1003 #increment_pushes_since_gc1004 increments the number of pushes since the last GC1005 #reset_pushes_since_gc1006 resets the number of pushes since the last GC1007 #deployment_variables1008 when the deployment platform is stubbed1009 when project has a deployment platform1010 is expected to eq ["platform", "variables"]1011 when project has no deployment platform1012 is expected to eq []1013 when project has a deployment platforms1014 when environment name is review/name1015 returns variables from this service1016 when environment name is other1017 returns variables from this service1018 #default_environment1019 returns production environment when it exists1020 returns first environment when no production environment exists1021 returns nil when no available environment exists1022 #ci_variables_for1023 memoizes the result by ref and environment1024 when the ref is not protected1025 contains only the CI variables1026 when the ref is a protected branch1027 behaves like ref is protected1028 contains all the variables1029 when the ref is a protected tag1030 behaves like ref is protected1031 contains all the variables1032 when environment name is specified1033 when environment scope is exactly matched1034 is expected to contain exactly #<Ci::Variable id: 10, key: [FILTERED], value: nil, encrypted_value: "SNEJQtESDgVct6uiIvwYbA==\n", en...d: 389, protected: false, environment_scope: "review/name", masked: false, variable_type: "env_var">1035 when environment scope is matched by wildcard1036 is expected to contain exactly #<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "kA2xEtYRzpTtR+ngmkyjXA==\n", en...t_id: 390, protected: false, environment_scope: "review/*", masked: false, variable_type: "env_var">1037 when environment scope does not match1038 is expected not to contain exactly #<Ci::Variable id: 14, key: [FILTERED], value: nil, encrypted_value: "nvYFnU8NUbX+RdHe6J2tCA==\n", en...1, protected: false, environment_scope: "review/*/special", masked: false, variable_type: "env_var">1039 when environment scope has _1040 does not treat it as wildcard1041 when environment name contains underscore1042 matches literally for _1043 when environment scope has %1044 does not treat it as wildcard1045 when environment name contains a percent1046 matches literally for _1047 when variables with the same name have different environment scopes1048 puts variables matching environment scope more in the end1049 #ci_instance_variables_for1050 when the ref is not protected1051 contains only the CI variables1052 when the ref is protected1053 contains all the variables1054 #any_lfs_file_locks?1055 returns false when there are no LFS file locks1056 returns a cached true when there are LFS file locks1057 #protected_for?1058 when ref is nil1059 returns false1060 when ref is ref name1061 when ref is ambiguous1062 raises an error1063 when the ref is not protected1064 behaves like ref is not protected1065 returns false1066 when the ref is a protected branch1067 behaves like ref is protected branch1068 returns true1069 when the ref is a protected tag1070 behaves like ref is protected tag1071 returns true1072 when ref does not exist1073 returns false1074 when ref is full ref1075 when the ref is not protected1076 behaves like ref is not protected1077 returns false1078 when the ref is a protected branch1079 behaves like ref is protected branch1080 returns true1081 when the ref is a protected tag1082 behaves like ref is protected tag1083 returns true1084 when branch ref name is a full tag ref1085 when ref is not protected1086 returns false1087 when ref is a protected branch1088 returns true1089 when ref does not exist1090 returns false1091 #update_project_statistics1092 is called after creation1093 copies the namespace_id1094 updates the namespace_id when changed1095 inside_path1096 returns correct project1097 #route_map_for1098 when there is a .gitlab/route-map.yml at the commit1099 when the route map is valid1100 returns a route map1101 when the route map is invalid1102 returns nil1103 when there is no .gitlab/route-map.yml at the commit1104 returns nil1105 #public_path_for_source_path1106 when there is a route map1107 returns a public path with a leading slash unmodified1108 when the source path is mapped1109 returns the public path1110 when the source path is not mapped1111 returns nil1112 when there is no route map1113 returns nil1114 #parent1115 is expected to eq #<Namespace id: 587, name: "John Doe529", path: "namespace422", owner_id: 513, created_at: "2020-08-2...cendants_override_disabled_shared_runners: false, traversal_ids: [], delayed_project_removal: false>1116 #parent_id1117 is expected to eq 5881118 #parent_changed?1119 is expected to be truthy1120 #default_merge_request_target1121 when forked from a more visible project1122 returns the more restrictive project1123 when forked from a project with disabled merge requests1124 returns the current project1125 when forked from a project with enabled merge requests1126 returns the source project1127 when not forked1128 returns the current project1129 #pages_url1130 top-level group1131 group page1132 is expected to eq "http://group.example.com"1133 project page1134 is expected to eq "http://group.example.com/project"1135 nested group1136 group page1137 is expected to eq "http://group.example.com/group68/group.example.com"1138 project page1139 is expected to eq "http://group.example.com/group69/project"1140 #lfs_http_url_to_repo1141 when a custom HTTP clone URL root is not set1142 returns the url to the repo without a username1143 when a custom HTTP clone URL root is set1144 returns the url to the repo, with the root replaced with the custom one1145 #pipeline_status1146 builds a pipeline status1147 hase a loaded pipeline status1148 #update1149 validates the visibility1150 does not validate the visibility1151 #last_repository_updated_at1152 sets to created_at upon creation1153 .public_or_visible_to_user1154 with a user1155 includes projects the user has access to1156 includes projects the user can see1157 without a user1158 only includes public projects1159 min_access_level1160 excludes projects when user does not have required minimum access level1161 with deploy token users1162 deploy token user without project1163 is expected to eq []1164 deploy token user with project1165 is expected to include #<Project id:453 namespace441/project449>>1166 .ids_with_issuables_available_for1167 returns project ids with milestones available for user1168 .with_feature_available_for_user1169 with user1170 behaves like feature disabled1171 does not return projects with the project feature disabled1172 behaves like feature public1173 returns projects with the project feature public1174 behaves like feature enabled1175 returns projects with the project feature enabled1176 behaves like feature access level is nil1177 returns projects with the project feature access level nil1178 when feature is private1179 when user does not have access to the feature1180 does not return projects with the project feature private1181 when user has access to the feature1182 returns projects with the project feature private1183 user is an admin1184 behaves like feature disabled1185 does not return projects with the project feature disabled1186 behaves like feature public1187 returns projects with the project feature public1188 behaves like feature enabled1189 returns projects with the project feature enabled1190 behaves like feature access level is nil1191 returns projects with the project feature access level nil1192 when feature is private1193 returns projects with the project feature private1194 without user1195 behaves like feature disabled1196 does not return projects with the project feature disabled1197 behaves like feature public1198 returns projects with the project feature public1199 behaves like feature enabled1200 returns projects with the project feature enabled1201 behaves like feature access level is nil1202 returns projects with the project feature access level nil1203 when feature is private1204 does not return projects with the project feature private1205 .filter_by_feature_visibility1206 reporter level access1207 project_level: :public, feature_access_level: :enabled, membership: :admin, expected_count: 11208 respects visibility1209 project_level: :public, feature_access_level: :enabled, membership: :reporter, expected_count: 11210 respects visibility1211 project_level: :public, feature_access_level: :enabled, membership: :guest, expected_count: 11212 respects visibility1213 project_level: :public, feature_access_level: :enabled, membership: :non_member, expected_count: 11214 respects visibility1215 project_level: :public, feature_access_level: :enabled, membership: :anonymous, expected_count: 11216 respects visibility1217 project_level: :public, feature_access_level: :private, membership: :admin, expected_count: 11218 respects visibility1219 project_level: :public, feature_access_level: :private, membership: :reporter, expected_count: 11220 respects visibility1221 project_level: :public, feature_access_level: :private, membership: :guest, expected_count: 01222 respects visibility1223 project_level: :public, feature_access_level: :private, membership: :non_member, expected_count: 01224 respects visibility1225 project_level: :public, feature_access_level: :private, membership: :anonymous, expected_count: 01226 respects visibility1227 project_level: :public, feature_access_level: :disabled, membership: :reporter, expected_count: 01228 respects visibility1229 project_level: :public, feature_access_level: :disabled, membership: :guest, expected_count: 01230 respects visibility1231 project_level: :public, feature_access_level: :disabled, membership: :non_member, expected_count: 01232 respects visibility1233 project_level: :public, feature_access_level: :disabled, membership: :anonymous, expected_count: 01234 respects visibility1235 project_level: :internal, feature_access_level: :enabled, membership: :admin, expected_count: 11236 respects visibility1237 project_level: :internal, feature_access_level: :enabled, membership: :reporter, expected_count: 11238 respects visibility1239 project_level: :internal, feature_access_level: :enabled, membership: :guest, expected_count: 11240 respects visibility1241 project_level: :internal, feature_access_level: :enabled, membership: :non_member, expected_count: 11242 respects visibility1243 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, expected_count: 01244 respects visibility1245 project_level: :internal, feature_access_level: :private, membership: :admin, expected_count: 11246 respects visibility1247 project_level: :internal, feature_access_level: :private, membership: :reporter, expected_count: 11248 respects visibility1249 project_level: :internal, feature_access_level: :private, membership: :guest, expected_count: 01250 respects visibility1251 project_level: :internal, feature_access_level: :private, membership: :non_member, expected_count: 01252 respects visibility1253 project_level: :internal, feature_access_level: :private, membership: :anonymous, expected_count: 01254 respects visibility1255 project_level: :internal, feature_access_level: :disabled, membership: :reporter, expected_count: 01256 respects visibility1257 project_level: :internal, feature_access_level: :disabled, membership: :guest, expected_count: 01258 respects visibility1259 project_level: :internal, feature_access_level: :disabled, membership: :non_member, expected_count: 01260 respects visibility1261 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, expected_count: 01262 respects visibility1263 project_level: :private, feature_access_level: :private, membership: :admin, expected_count: 11264 respects visibility1265 project_level: :private, feature_access_level: :private, membership: :reporter, expected_count: 11266 respects visibility1267 project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 01268 respects visibility1269 project_level: :private, feature_access_level: :private, membership: :non_member, expected_count: 01270 respects visibility1271 project_level: :private, feature_access_level: :private, membership: :anonymous, expected_count: 01272 respects visibility1273 project_level: :private, feature_access_level: :disabled, membership: :reporter, expected_count: 01274 respects visibility1275 project_level: :private, feature_access_level: :disabled, membership: :guest, expected_count: 01276 respects visibility1277 project_level: :private, feature_access_level: :disabled, membership: :non_member, expected_count: 01278 respects visibility1279 project_level: :private, feature_access_level: :disabled, membership: :anonymous, expected_count: 01280 respects visibility1281 issues1282 project_level: :public, feature_access_level: :enabled, membership: :admin, expected_count: 11283 respects visibility1284 project_level: :public, feature_access_level: :enabled, membership: :reporter, expected_count: 11285 respects visibility1286 project_level: :public, feature_access_level: :enabled, membership: :guest, expected_count: 11287 respects visibility1288 project_level: :public, feature_access_level: :enabled, membership: :non_member, expected_count: 11289 respects visibility1290 project_level: :public, feature_access_level: :enabled, membership: :anonymous, expected_count: 11291 respects visibility1292 project_level: :public, feature_access_level: :private, membership: :admin, expected_count: 11293 respects visibility1294 project_level: :public, feature_access_level: :private, membership: :reporter, expected_count: 11295 respects visibility1296 project_level: :public, feature_access_level: :private, membership: :guest, expected_count: 11297 respects visibility1298 project_level: :public, feature_access_level: :private, membership: :non_member, expected_count: 01299 respects visibility1300 project_level: :public, feature_access_level: :private, membership: :anonymous, expected_count: 01301 respects visibility1302 project_level: :public, feature_access_level: :disabled, membership: :reporter, expected_count: 01303 respects visibility1304 project_level: :public, feature_access_level: :disabled, membership: :guest, expected_count: 01305 respects visibility1306 project_level: :public, feature_access_level: :disabled, membership: :non_member, expected_count: 01307 respects visibility1308 project_level: :public, feature_access_level: :disabled, membership: :anonymous, expected_count: 01309 respects visibility1310 project_level: :internal, feature_access_level: :enabled, membership: :admin, expected_count: 11311 respects visibility1312 project_level: :internal, feature_access_level: :enabled, membership: :reporter, expected_count: 11313 respects visibility1314 project_level: :internal, feature_access_level: :enabled, membership: :guest, expected_count: 11315 respects visibility1316 project_level: :internal, feature_access_level: :enabled, membership: :non_member, expected_count: 11317 respects visibility1318 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, expected_count: 01319 respects visibility1320 project_level: :internal, feature_access_level: :private, membership: :admin, expected_count: 11321 respects visibility1322 project_level: :internal, feature_access_level: :private, membership: :reporter, expected_count: 11323 respects visibility1324 project_level: :internal, feature_access_level: :private, membership: :guest, expected_count: 11325 respects visibility1326 project_level: :internal, feature_access_level: :private, membership: :non_member, expected_count: 01327 respects visibility1328 project_level: :internal, feature_access_level: :private, membership: :anonymous, expected_count: 01329 respects visibility1330 project_level: :internal, feature_access_level: :disabled, membership: :reporter, expected_count: 01331 respects visibility1332 project_level: :internal, feature_access_level: :disabled, membership: :guest, expected_count: 01333 respects visibility1334 project_level: :internal, feature_access_level: :disabled, membership: :non_member, expected_count: 01335 respects visibility1336 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, expected_count: 01337 respects visibility1338 project_level: :private, feature_access_level: :private, membership: :admin, expected_count: 11339 respects visibility1340 project_level: :private, feature_access_level: :private, membership: :reporter, expected_count: 11341 respects visibility1342 project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 11343 respects visibility1344 project_level: :private, feature_access_level: :private, membership: :non_member, expected_count: 01345 respects visibility1346 project_level: :private, feature_access_level: :private, membership: :anonymous, expected_count: 01347 respects visibility1348 project_level: :private, feature_access_level: :disabled, membership: :reporter, expected_count: 01349 respects visibility1350 project_level: :private, feature_access_level: :disabled, membership: :guest, expected_count: 01351 respects visibility1352 project_level: :private, feature_access_level: :disabled, membership: :non_member, expected_count: 01353 respects visibility1354 project_level: :private, feature_access_level: :disabled, membership: :anonymous, expected_count: 01355 respects visibility1356 wiki1357 project_level: :public, feature_access_level: :enabled, membership: :admin, expected_count: 11358 respects visibility1359 project_level: :public, feature_access_level: :enabled, membership: :reporter, expected_count: 11360 respects visibility1361 project_level: :public, feature_access_level: :enabled, membership: :guest, expected_count: 11362 respects visibility1363 project_level: :public, feature_access_level: :enabled, membership: :non_member, expected_count: 11364 respects visibility1365 project_level: :public, feature_access_level: :enabled, membership: :anonymous, expected_count: 11366 respects visibility1367 project_level: :public, feature_access_level: :private, membership: :admin, expected_count: 11368 respects visibility1369 project_level: :public, feature_access_level: :private, membership: :reporter, expected_count: 11370 respects visibility1371 project_level: :public, feature_access_level: :private, membership: :guest, expected_count: 11372 respects visibility1373 project_level: :public, feature_access_level: :private, membership: :non_member, expected_count: 01374 respects visibility1375 project_level: :public, feature_access_level: :private, membership: :anonymous, expected_count: 01376 respects visibility1377 project_level: :public, feature_access_level: :disabled, membership: :reporter, expected_count: 01378 respects visibility1379 project_level: :public, feature_access_level: :disabled, membership: :guest, expected_count: 01380 respects visibility1381 project_level: :public, feature_access_level: :disabled, membership: :non_member, expected_count: 01382 respects visibility1383 project_level: :public, feature_access_level: :disabled, membership: :anonymous, expected_count: 01384 respects visibility1385 project_level: :internal, feature_access_level: :enabled, membership: :admin, expected_count: 11386 respects visibility1387 project_level: :internal, feature_access_level: :enabled, membership: :reporter, expected_count: 11388 respects visibility1389 project_level: :internal, feature_access_level: :enabled, membership: :guest, expected_count: 11390 respects visibility1391 project_level: :internal, feature_access_level: :enabled, membership: :non_member, expected_count: 11392 respects visibility1393 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, expected_count: 01394 respects visibility1395 project_level: :internal, feature_access_level: :private, membership: :admin, expected_count: 11396 respects visibility1397 project_level: :internal, feature_access_level: :private, membership: :reporter, expected_count: 11398 respects visibility1399 project_level: :internal, feature_access_level: :private, membership: :guest, expected_count: 11400 respects visibility1401 project_level: :internal, feature_access_level: :private, membership: :non_member, expected_count: 01402 respects visibility1403 project_level: :internal, feature_access_level: :private, membership: :anonymous, expected_count: 01404 respects visibility1405 project_level: :internal, feature_access_level: :disabled, membership: :reporter, expected_count: 01406 respects visibility1407 project_level: :internal, feature_access_level: :disabled, membership: :guest, expected_count: 01408 respects visibility1409 project_level: :internal, feature_access_level: :disabled, membership: :non_member, expected_count: 01410 respects visibility1411 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, expected_count: 01412 respects visibility1413 project_level: :private, feature_access_level: :private, membership: :admin, expected_count: 11414 respects visibility1415 project_level: :private, feature_access_level: :private, membership: :reporter, expected_count: 11416 respects visibility1417 project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 11418 respects visibility1419 project_level: :private, feature_access_level: :private, membership: :non_member, expected_count: 01420 respects visibility1421 project_level: :private, feature_access_level: :private, membership: :anonymous, expected_count: 01422 respects visibility1423 project_level: :private, feature_access_level: :disabled, membership: :reporter, expected_count: 01424 respects visibility1425 project_level: :private, feature_access_level: :disabled, membership: :guest, expected_count: 01426 respects visibility1427 project_level: :private, feature_access_level: :disabled, membership: :non_member, expected_count: 01428 respects visibility1429 project_level: :private, feature_access_level: :disabled, membership: :anonymous, expected_count: 01430 respects visibility1431 code1432 project_level: :public, feature_access_level: :enabled, membership: :admin, expected_count: 11433 respects visibility1434 project_level: :public, feature_access_level: :enabled, membership: :reporter, expected_count: 11435 respects visibility1436 project_level: :public, feature_access_level: :enabled, membership: :guest, expected_count: 11437 respects visibility1438 project_level: :public, feature_access_level: :enabled, membership: :non_member, expected_count: 11439 respects visibility1440 project_level: :public, feature_access_level: :enabled, membership: :anonymous, expected_count: 11441 respects visibility1442 project_level: :public, feature_access_level: :private, membership: :admin, expected_count: 11443 respects visibility1444 project_level: :public, feature_access_level: :private, membership: :reporter, expected_count: 11445 respects visibility1446 project_level: :public, feature_access_level: :private, membership: :guest, expected_count: 11447 respects visibility1448 project_level: :public, feature_access_level: :private, membership: :non_member, expected_count: 01449 respects visibility1450 project_level: :public, feature_access_level: :private, membership: :anonymous, expected_count: 01451 respects visibility1452 project_level: :public, feature_access_level: :disabled, membership: :reporter, expected_count: 01453 respects visibility1454 project_level: :public, feature_access_level: :disabled, membership: :guest, expected_count: 01455 respects visibility1456 project_level: :public, feature_access_level: :disabled, membership: :non_member, expected_count: 01457 respects visibility1458 project_level: :public, feature_access_level: :disabled, membership: :anonymous, expected_count: 01459 respects visibility1460 project_level: :internal, feature_access_level: :enabled, membership: :admin, expected_count: 11461 respects visibility1462 project_level: :internal, feature_access_level: :enabled, membership: :reporter, expected_count: 11463 respects visibility1464 project_level: :internal, feature_access_level: :enabled, membership: :guest, expected_count: 11465 respects visibility1466 project_level: :internal, feature_access_level: :enabled, membership: :non_member, expected_count: 11467 respects visibility1468 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, expected_count: 01469 respects visibility1470 project_level: :internal, feature_access_level: :private, membership: :admin, expected_count: 11471 respects visibility1472 project_level: :internal, feature_access_level: :private, membership: :reporter, expected_count: 11473 respects visibility1474 project_level: :internal, feature_access_level: :private, membership: :guest, expected_count: 11475 respects visibility1476 project_level: :internal, feature_access_level: :private, membership: :non_member, expected_count: 01477 respects visibility1478 project_level: :internal, feature_access_level: :private, membership: :anonymous, expected_count: 01479 respects visibility1480 project_level: :internal, feature_access_level: :disabled, membership: :reporter, expected_count: 01481 respects visibility1482 project_level: :internal, feature_access_level: :disabled, membership: :guest, expected_count: 01483 respects visibility1484 project_level: :internal, feature_access_level: :disabled, membership: :non_member, expected_count: 01485 respects visibility1486 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, expected_count: 01487 respects visibility1488 project_level: :private, feature_access_level: :private, membership: :admin, expected_count: 11489 respects visibility1490 project_level: :private, feature_access_level: :private, membership: :reporter, expected_count: 11491 respects visibility1492 project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 01493 respects visibility1494 project_level: :private, feature_access_level: :private, membership: :non_member, expected_count: 01495 respects visibility1496 project_level: :private, feature_access_level: :private, membership: :anonymous, expected_count: 01497 respects visibility1498 project_level: :private, feature_access_level: :disabled, membership: :reporter, expected_count: 01499 respects visibility1500 project_level: :private, feature_access_level: :disabled, membership: :guest, expected_count: 01501 respects visibility1502 project_level: :private, feature_access_level: :disabled, membership: :non_member, expected_count: 01503 respects visibility1504 project_level: :private, feature_access_level: :disabled, membership: :anonymous, expected_count: 01505 respects visibility1506 .wrap_with_cte1507 wrapped query matches original1508 #pages_available?1509 when the project is in a top level namespace1510 is expected to equal true1511 when the project is in a subgroup1512 is expected to equal true1513 #remove_private_deploy_keys1514 for a private deploy key1515 when the key is not linked to another project1516 removes the key1517 when the key is linked to another project1518 does not remove the key1519 for a public deploy key1520 does not remove the key1521 #remove_pages1522 removes the pages directory and marks the project as not having pages deployed1523 is run when the project is destroyed1524 #remove_export1525 removes the export1526 #forks_count1527 returns the number of forks1528 #git_transfer_in_progress?1529 returns false when repo_reference_count and wiki_reference_count are 01530 returns true when repo_reference_count is > 01531 returns true when wiki_reference_count is > 01532 legacy storage1533 #base_dir1534 returns base_dir based on namespace only1535 #disk_path1536 returns disk_path based on namespace and project path1537 #legacy_storage?1538 returns true when storage_version is nil1539 returns true when the storage_version is 01540 #hashed_storage?1541 returns false1542 #pages_path1543 returns a path where pages are stored1544 #migrate_to_hashed_storage!1545 returns true1546 does not run validation1547 schedules HashedStorage::ProjectMigrateWorker with delayed start when the project repo is in use1548 schedules HashedStorage::ProjectMigrateWorker with delayed start when the wiki repo is in use1549 schedules HashedStorage::ProjectMigrateWorker1550 #rollback_to_legacy_storage!1551 returns nil1552 does not run validations1553 hashed storage1554 #legacy_storage?1555 returns false1556 #hashed_storage?1557 returns true if rolled out1558 returns false when not rolled out yet1559 #base_dir1560 returns base_dir based on hash of project id1561 #disk_path1562 returns disk_path based on hash of project id1563 #pages_path1564 returns a path where pages are stored1565 #migrate_to_hashed_storage!1566 returns nil1567 does not flag as read-only1568 when partially migrated1569 enqueues a job1570 #rollback_to_legacy_storage!1571 returns true1572 does not run validations1573 does not flag as read-only1574 enqueues a job1575 #has_ci?1576 when has .gitlab-ci.yml1577 CI is available1578 when there is no .gitlab-ci.yml1579 CI is available1580 when auto devops is disabled1581 CI is not available1582 #auto_devops_enabled?1583 when explicitly enabled1584 is expected to be truthy1585 when explicitly disabled1586 is expected to be falsey1587 when enabled in settings1588 is expected to be truthy1589 when disabled in settings1590 is expected to be falsey1591 when explicitly enabled1592 is expected to be truthy1593 when explicitly disabled1594 is expected to be falsey1595 when force_autodevops_on_by_default is enabled for the project1596 is expected to be truthy1597 with group parents1598 when enabled on parent1599 when auto devops instance enabled1600 is expected to be truthy1601 when auto devops instance disabled1602 is expected to be truthy1603 when disabled on parent1604 when auto devops instance enabled1605 is expected to be falsy1606 when auto devops instance disabled1607 is expected to be falsy1608 when enabled on root parent1609 when auto devops instance enabled1610 is expected to be truthy1611 when auto devops instance disabled1612 is expected to be truthy1613 when explicitly disabled on parent1614 is expected to be falsy1615 when disabled on root parent1616 when auto devops instance enabled1617 is expected to be falsy1618 when auto devops instance disabled1619 is expected to be falsy1620 when explicitly disabled on parent1621 is expected to be falsy1622 #has_auto_devops_implicitly_enabled?1623 when disabled in settings1624 does not have auto devops implicitly disabled1625 when enabled in settings1626 auto devops is implicitly disabled1627 when explicitly disabled1628 does not have auto devops implicitly disabled1629 when explicitly enabled1630 does not have auto devops implicitly disabled1631 when enabled on group1632 has auto devops implicitly enabled1633 when enabled on parent group1634 has auto devops implicitly enabled1635 #has_auto_devops_implicitly_disabled?1636 when explicitly disabled1637 does not have auto devops implicitly disabled1638 when explicitly enabled1639 does not have auto devops implicitly disabled1640 when enabled in settings1641 does not have auto devops implicitly disabled1642 when disabled in settings1643 auto devops is implicitly disabled1644 when force_autodevops_on_by_default is enabled for the project1645 does not have auto devops implicitly disabled1646 when disabled on group1647 has auto devops implicitly disabled1648 when disabled on parent group1649 has auto devops implicitly disabled1650 #api_variables1651 exposes API v4 URL1652 contains a URL variable for every supported API version1653 #latest_successful_builds_for1654 without a ref1655 returns a pipeline for the default branch1656 with the ref set to the default branch1657 returns a pipeline for the default branch1658 with a ref that is not the default branch1659 returns the latest successful pipeline for the given ref1660 #check_repository_path_availability1661 when the repository already exists1662 returns false when repository already exists1663 when the repository does not exist1664 returns false when repository already exists1665 skips gitlab-shell exists?1666 #latest_successful_pipeline_for_default_branch1667 memoizes and returns the latest successful pipeline for the default branch1668 #after_import1669 runs the correct hooks1670 branch protection1671 does not protect when branch protection is disabled1672 gives developer access to push when branch protection is set to 'developers can push'1673 gives developer access to merge when branch protection is set to 'developers can merge'1674 protects default branch1675 #update_project_counter_caches1676 updates all project counter caches1677 #write_repository_config1678 writes full path in .git/config when key is missing1679 updates full path in .git/config when key is present1680 does not raise an error with an empty repository1681 #default_branch1682 with an empty repository1683 Gitlab::CurrentSettings.default_branch_name is unavailable1684 returns that value1685 Gitlab::CurrentSettings.default_branch_name is available1686 returns that value1687 #to_ability_name1688 returns project1689 #execute_hooks1690 executes active projects hooks with the specified scope1691 does not execute project hooks that dont match the specified scope1692 does not execute project hooks which are not active1693 executes the system hooks with the specified scope1694 executes the system hooks when inside a transaction1695 #execute_services1696 executes services with the specified scope1697 does not execute services that don't match the specified scope1698 #has_active_hooks?1699 is expected to be falsey1700 returns true when a matching push hook exists1701 returns true when a matching system hook exists1702 returns true when a plugin exists1703 #has_active_services?1704 is expected to be falsey1705 returns true when a matching service exists1706 #badges1707 returns the project and the project group badges1708 with nested_groups1709 returns the project and the project nested groups badges1710 with cross internal project merge requests1711 does not endlessly loop for internal projects with MRs to each other1712 with cross project merge requests1713 #merge_requests_allowing_push_to_user1714 returns open merge requests for which the user has developer access to the target project1715 does not include closed merge requests1716 does not include merge requests for guest users1717 does not include the merge request for other users1718 is empty when no user is passed1719 #any_branch_allows_collaboration?1720 allows access when there are merge requests open allowing collaboration1721 does not allow access when there are no merge requests open allowing collaboration1722 #branch_allows_collaboration?1723 allows access if the user can merge the merge request1724 does not allow guest users access1725 does not allow access to branches for which the merge request was closed1726 does not allow access if the user cannot merge the merge request1727 when the requeststore is active1728 only queries per project across instances1729 #external_authorization_classification_label1730 falls back to the default when none is configured1731 returns the classification label if it was configured on the project1732 #pages_https_only?1733 when HTTPS pages are disabled1734 is expected not to be pages https only1735 when HTTPS pages are enabled1736 is expected to be pages https only1737 #pages_https_only? validation1738 when no domains are associated1739 is expected to be valid1740 when domains including keys and certificates are associated1741 is expected to be valid1742 when domains including no keys or certificates are associated1743 is expected not to be valid1744 #toggle_ci_cd_settings!1745 toggles the value on #settings1746 #gitlab_deploy_token1747 when there is a gitlab deploy token associated1748 is expected to eq #<DeployToken id: 7, revoked: false, read_repository: true, read_registry: true, expires_at: "2020-08... "project_type", write_registry: false, read_package_registry: false, write_package_registry: false>1749 when there is no a gitlab deploy token associated1750 is expected to be nil1751 when there is a gitlab deploy token associated but is has been revoked1752 is expected to be nil1753 when there is a gitlab deploy token associated but it is expired1754 is expected to be nil1755 when there is a deploy token associated with a different name1756 is expected to be nil1757 when there is a deploy token associated to a different project1758 is expected to be nil1759 with uploads1760 behaves like model with uploads1761 .destroy1762 with mounted uploader1763 deletes remote uploads1764 with not mounted uploads1765 with local files1766 deletes any FileUploader uploads which are not mounted1767 deletes local files1768 with remote files1769 deletes any FileUploader uploads which are not mounted1770 deletes remote files1771 #members_among1772 when users is an Array1773 returns project members among the users1774 maintains input order1775 returns empty array if users is empty1776 when users is a relation1777 returns project members among the users1778 returns empty relation if users is empty1779 #find_or_initialize_services1780 returns only enabled services1781 #find_or_initialize_service1782 avoids N+1 database queries1783 returns nil if integration is disabled1784 with an existing integration1785 retrieves the integration1786 with an instance-level and template integrations1787 builds the service from the instance if exists1788 with an instance-level and template integrations1789 builds the service from the template if instance does not exists1790 without an exisiting integration, nor instance-level or template1791 builds the service if instance or template does not exists1792 .for_group1793 returns the projects for a given group1794 .for_repository_storage1795 returns the projects for a given repository storage1796 .excluding_repository_storage1797 returns the projects excluding the given repository storage1798 .deployments1799 when there is a deployment record with created status1800 does not return the record1801 when there is a deployment record with running status1802 does not return the record1803 when there is a deployment record with success status1804 returns the record1805 #snippets_visible?1806 returns true when a logged in user can read snippets1807 returns true when an anonymous user can read snippets1808 returns false when a user can not read snippets1809 #all_clusters1810 returns project level cluster1811 project belongs to a group1812 returns clusters for groups of this project1813 project is hosted on instance with integrated cluster1814 returns all available clusters for this project1815 #object_pool_params1816 when the objects cannot be pooled1817 is expected to be empty1818 when a pool is created1819 returns that pool repository1820 #git_objects_poolable?1821 when not using hashed storage1822 is expected not to be git objects poolable1823 when the project is private1824 is expected not to be git objects poolable1825 when the project is public1826 is expected to be git objects poolable1827 when the project is internal1828 is expected to be git objects poolable1829 when objects are poolable1830 is expected to be git objects poolable1831 #leave_pool_repository1832 removes the membership1833 #check_personal_projects_limit1834 when creating a project for a group1835 does nothing1836 when the user is not allowed to create a personal project1837 when the project limit is zero1838 adds a validation error1839 when the project limit is greater than zero1840 adds a validation error1841 when the user is allowed to create personal projects1842 does nothing1843 pages deployed1844 mark_pages_as_deployed1845 creates new record and sets deployed to true if none exists yet1846 updates the existing record and sets deployed to true1847 mark_pages_as_not_deployed1848 creates new record and sets deployed to false if none exists yet1849 updates the existing record and sets deployed to false1850 #has_pool_repsitory?1851 returns false when it does not have a pool repository1852 returns true when it has a pool repository1853 #access_request_approvers_to_be_notified1854 returns a maximum of ten, active, non_requested maintainers of the project in recent_sign_in descending order1855 #pages_lookup_path1856 returns instance of Pages::LookupPath1857 .with_pages_deployed1858 returns only projects that have pages deployed1859 .pages_metadata_not_migrated1860 returns only projects that have pages deployed1861 #pages_group_root?1862 returns returns true if pages_url is same as pages_group_url1863 returns returns false if pages_url is different than pages_group_url1864 #closest_setting1865 when setting is of non-boolean type1866 global_setting: 100, group_setting: 200, project_setting: 300, result: 3001867 behaves like fetching closest setting1868 returns closest non-nil value1869 global_setting: 100, group_setting: 200, project_setting: nil, result: 2001870 behaves like fetching closest setting1871 returns closest non-nil value1872 global_setting: 100, group_setting: nil, project_setting: nil, result: 1001873 behaves like fetching closest setting1874 returns closest non-nil value1875 global_setting: nil, group_setting: nil, project_setting: nil, result: nil1876 behaves like fetching closest setting1877 returns closest non-nil value1878 when setting is of boolean type1879 global_setting: true, group_setting: true, project_setting: false, result: false1880 behaves like fetching closest setting1881 returns closest non-nil value1882 global_setting: true, group_setting: false, project_setting: nil, result: false1883 behaves like fetching closest setting1884 returns closest non-nil value1885 global_setting: true, group_setting: nil, project_setting: nil, result: true1886 behaves like fetching closest setting1887 returns closest non-nil value1888 #drop_visibility_level!1889 when has a group1890 when the group `visibility_level` is more strict1891 sets `visibility_level` value from the group1892 when the group `visibility_level` is less strict1893 does not change the value of the `visibility_level` field1894 when `restricted_visibility_levels` of the GitLab instance exist1895 when `visibility_level` is included into `restricted_visibility_levels`1896 sets `visibility_level` value to `PRIVATE`1897 when `restricted_visibility_levels` does not include `visibility_level`1898 does not change the value of the `visibility_level` field1899 with services and chat names1900 removes chat names on removal1901 with_issues_or_mrs_available_for_user1902 returns correct projects1903 #limited_protected_branches1904 returns limited number of protected branches based on specified limit1905 #all_lfs_objects_oids1906 when project has associated LFS objects1907 returns OIDs of LFS objects1908 and there are specified oids1909 returns OIDs of LFS objects that match specified oids1910 when fork has associated LFS objects to itself and source1911 returns OIDs of LFS objects1912 when project has no associated LFS objects1913 returns empty array1914 #lfs_objects_oids1915 when project has associated LFS objects1916 returns OIDs of LFS objects1917 and there are specified oids1918 returns OIDs of LFS objects that match specified oids1919 when project has no associated LFS objects1920 returns empty array1921 #alerts_service_activated?1922 when project has an activated alerts service1923 is expected to be truthy1924 when project has an inactive alerts service1925 is expected to be falsey1926 #prometheus_service_active?1927 when project has an activated prometheus service1928 is expected to be truthy1929 when project has an inactive prometheus service1930 the service is marked as inactive1931 #self_monitoring?1932 when the project is instance self monitoring1933 is expected to equal true1934 when the project is not self monitoring1935 is expected to equal false1936 #add_export_job1937 if not already present1938 starts project export job1939 #export_in_progress?1940 when project export is enqueued1941 is expected to equal false1942 when project export is in progress1943 is expected to equal true1944 when project export is completed1945 is expected to equal false1946 #export_status1947 when project export is enqueued1948 is expected to eq :queued1949 when project export is in progress1950 is expected to eq :started1951 when project export is completed1952 is expected to eq :finished1953 when project export is being regenerated1954 is expected to eq :regeneration_in_progress1955 #has_packages?1956 with maven packages1957 behaves like has_package1958 package of package_type exists1959 is expected to equal true1960 package of package_type does not exist1961 is expected to equal false1962 with npm packages1963 behaves like has_package1964 package of package_type exists1965 is expected to equal true1966 package of package_type does not exist1967 is expected to equal false1968 with conan packages1969 behaves like has_package1970 package of package_type exists1971 is expected to equal true1972 package of package_type does not exist1973 is expected to equal false1974 calling has_package? with nil1975 is expected to equal false1976 #environments_for_scope1977 retrieves all project environments when using the * wildcard1978 retrieves a specific project environment when using the name of that environment1979 #latest_jira_import1980 when no jira imports1981 returns nil1982 when single jira import1983 returns the jira import1984 when multiple jira imports1985 returns latest jira import by created_at1986 #packages_enabled1987 is expected to equal true1988 #package_already_taken?1989 no package exists with the same name1990 returns false1991 returns false if it is the project that the package belongs to1992 a package already exists with the same name1993 returns true1994 #design_management_enabled?1995 lfs_enabled: false, hashed_storage_enabled: false, expectation: false1996 is expected to equal false1997 lfs_enabled: true, hashed_storage_enabled: false, expectation: false1998 is expected to equal false1999 lfs_enabled: false, hashed_storage_enabled: true, expectation: false2000 is expected to equal false2001 lfs_enabled: true, hashed_storage_enabled: true, expectation: true2002 is expected to equal true2003 #bots2004 is expected to contain exactly #<User id:1142 @user1155>2005 is expected not to include #<User id:1143 @user1156>2006 #metrics_setting2007 creates setting if it does not exist2008CycleAnalytics#staging2009 start condition: merge request that closes issue is merged2010 end condition: merge request that closes issue is deployed to production2011 finds the median of available durations between the two conditions2012 when the data belongs to another project2013 returns nil2014 when the end condition happens before the start condition2015 returns nil2016 start condition NOT PRESENT: merge request that closes issue is merged2017 end condition: merge request that closes issue is deployed to production2018 returns nil2019 start condition: merge request that closes issue is merged2020 end condition NOT PRESENT: merge request that closes issue is deployed to production2021 returns nil2022 start condition: merge request that closes issue is merged2023 end condition: production deploy happens after merge request is merged (along with other changes)2024 finds the median of available durations between the two conditions2025 when the data belongs to another project2026 returns nil2027 when the end condition happens before the start condition2028 returns nil2029 start condition NOT PRESENT: merge request that closes issue is merged2030 end condition: production deploy happens after merge request is merged (along with other changes)2031 returns nil2032 start condition: merge request that closes issue is merged2033 end condition NOT PRESENT: production deploy happens after merge request is merged (along with other changes)2034 returns nil2035 start condition: merge request that closes issue is merged2036 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2037 finds the median of available durations between the two conditions2038 when the data belongs to another project2039 returns nil2040 when the end condition happens before the start condition2041 returns nil2042 start condition NOT PRESENT: merge request that closes issue is merged2043 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2044 returns nil2045 start condition: merge request that closes issue is merged2046 end condition NOT PRESENT: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)2047 returns nil2048 when none of the start / end conditions are matched2049 returns nil2050 when a regular merge request (that doesn't close the issue) is merged and deployed2051 returns nil2052 when the deployment happens to a non-production environment2053 returns nil2054gitlab:seed:group_seed rake task2055 performs group seed successfully2056Members::DestroyService2057 with a member with access2058 when current user cannot destroy the given member2059 with a project member2060 behaves like a service raising Gitlab::Access::AccessDeniedError2061 raises Gitlab::Access::AccessDeniedError2062 behaves like a service destroying a member with access2063 invalidates cached counts for assigned issues and merge requests2064 behaves like a service destroying a member2065 destroys the member2066 destroys member notification_settings2067 with a group member2068 behaves like a service raising Gitlab::Access::AccessDeniedError2069 raises Gitlab::Access::AccessDeniedError2070 behaves like a service destroying a member with access2071 invalidates cached counts for assigned issues and merge requests2072 behaves like a service destroying a member2073 destroys the member2074 destroys member notification_settings2075 when current user can destroy the given member2076 with a project member2077 behaves like a service destroying a member with access2078 invalidates cached counts for assigned issues and merge requests2079 behaves like a service destroying a member2080 destroys the member2081 destroys member notification_settings2082 unassign issuables2083 behaves like a service destroying a member with access2084 invalidates cached counts for assigned issues and merge requests2085 behaves like a service destroying a member2086 destroys the member2087 destroys member notification_settings2088 with a project bot member2089 when the destroy_bot flag is true2090 behaves like a service destroying a member with access2091 invalidates cached counts for assigned issues and merge requests2092 behaves like a service destroying a member2093 destroys the member2094 destroys member notification_settings2095 when the destroy_bot flag is not specified2096 behaves like a service raising Gitlab::Access::AccessDeniedError2097 raises Gitlab::Access::AccessDeniedError2098 with a group member2099 behaves like a service destroying a member with access2100 invalidates cached counts for assigned issues and merge requests2101 behaves like a service destroying a member2102 destroys the member2103 destroys member notification_settings2104 unassign issuables2105 behaves like a service destroying a member with access2106 invalidates cached counts for assigned issues and merge requests2107 behaves like a service destroying a member2108 destroys the member2109 destroys member notification_settings2110 with an access requester2111 when current user cannot destroy the given access requester2112 behaves like a service raising Gitlab::Access::AccessDeniedError2113 raises Gitlab::Access::AccessDeniedError2114 behaves like a service destroying a member2115 destroys the member2116 destroys member notification_settings2117 behaves like a service raising Gitlab::Access::AccessDeniedError2118 raises Gitlab::Access::AccessDeniedError2119 behaves like a service destroying a member2120 destroys the member2121 destroys member notification_settings2122 when current user can destroy the given access requester2123 behaves like a service destroying an access requester2124 calls Member#after_decline_request2125 behaves like a service destroying a member2126 destroys the member2127 destroys member notification_settings2128 when current user is the member2129 does not call Member#after_decline_request2130 behaves like a service destroying an access requester2131 calls Member#after_decline_request2132 behaves like a service destroying a member2133 destroys the member2134 destroys member notification_settings2135 when current user is the member2136 does not call Member#after_decline_request2137 with an invited user2138 when current user cannot destroy the given invited user2139 behaves like a service raising Gitlab::Access::AccessDeniedError2140 raises Gitlab::Access::AccessDeniedError2141 behaves like a service destroying a member2142 destroys the member2143 destroys member notification_settings2144 behaves like a service raising Gitlab::Access::AccessDeniedError2145 raises Gitlab::Access::AccessDeniedError2146 behaves like a service destroying a member2147 destroys the member2148 destroys member notification_settings2149 when current user can destroy the given invited user2150 behaves like a service destroying a member2151 destroys the member2152 destroys member notification_settings2153 behaves like a service destroying a member2154 destroys the member2155 destroys member notification_settings2156 subresources2157 removes the project membership2158 removes the group membership2159 removes the subgroup membership2160 removes the subsubgroup membership2161 removes the subsubproject membership2162 does not remove the user from the control project2163Users::MigrateToGhostUserService2164 migrating a user's associated records to the ghost user2165 issues2166 deleted user is present as both author and edited_user2167 for a issue the user has created2168 does not delete the issue2169 blocks the user before migrating issues to the 'Ghost User'2170 migrates all associated fields to te "Ghost user"2171 race conditions2172 blocks the user before issue migration begins2173 when issue migration fails and is rolled back2174 rolls back the user block2175 doesn't unblock an previously-blocked user2176 when issue migration fails with a non-rollback exception2177 rolls back the user block2178 doesn't unblock an previously-blocked user2179 deleted user is present only as edited_user2180 for a issue the user has created2181 does not delete the issue2182 blocks the user before migrating issues to the 'Ghost User'2183 migrates all associated fields to te "Ghost user"2184 race conditions2185 blocks the user before issue migration begins2186 when issue migration fails and is rolled back2187 rolls back the user block2188 doesn't unblock an previously-blocked user2189 when issue migration fails with a non-rollback exception2190 rolls back the user block2191 doesn't unblock an previously-blocked user2192 merge requests2193 deleted user is present as both author and merge_user2194 for a merge request the user has created2195 does not delete the merge request2196 blocks the user before migrating merge requests to the 'Ghost User'2197 migrates all associated fields to te "Ghost user"2198 race conditions2199 blocks the user before merge request migration begins2200 when merge request migration fails and is rolled back2201 rolls back the user block2202 doesn't unblock an previously-blocked user2203 when merge request migration fails with a non-rollback exception2204 rolls back the user block2205 doesn't unblock an previously-blocked user2206 deleted user is present only as both merge_user2207 for a merge request the user has created2208 does not delete the merge request2209 blocks the user before migrating merge requests to the 'Ghost User'2210 migrates all associated fields to te "Ghost user"2211 race conditions2212 blocks the user before merge request migration begins2213 when merge request migration fails and is rolled back2214 rolls back the user block2215 doesn't unblock an previously-blocked user2216 when merge request migration fails with a non-rollback exception2217 rolls back the user block2218 doesn't unblock an previously-blocked user2219 notes2220 for a note the user has created2221 does not delete the note2222 blocks the user before migrating notes to the 'Ghost User'2223 migrates all associated fields to te "Ghost user"2224 race conditions2225 blocks the user before note migration begins2226 when note migration fails and is rolled back2227 rolls back the user block2228 doesn't unblock an previously-blocked user2229 when note migration fails with a non-rollback exception2230 rolls back the user block2231 doesn't unblock an previously-blocked user2232 abuse reports2233 for a abuse report the user has created2234 does not delete the abuse report2235 blocks the user before migrating abuse reports to the 'Ghost User'2236 migrates all associated fields to te "Ghost user"2237 race conditions2238 blocks the user before abuse report migration begins2239 when abuse report migration fails and is rolled back2240 rolls back the user block2241 doesn't unblock an previously-blocked user2242 when abuse report migration fails with a non-rollback exception2243 rolls back the user block2244 doesn't unblock an previously-blocked user2245 award emoji2246 for a award emoji the user has created2247 does not delete the award emoji2248 blocks the user before migrating award emojis to the 'Ghost User'2249 migrates all associated fields to te "Ghost user"2250 race conditions2251 blocks the user before award emoji migration begins2252 when award emoji migration fails and is rolled back2253 rolls back the user block2254 doesn't unblock an previously-blocked user2255 when award emoji migration fails with a non-rollback exception2256 rolls back the user block2257 doesn't unblock an previously-blocked user2258 when the awardable already has an award emoji of the same name assigned to the ghost user2259 migrates the award emoji regardless2260 does not leave the migrated award emoji in an invalid state2261 snippets2262 for a snippet the user has created2263 does not delete the snippet2264 blocks the user before migrating snippets to the 'Ghost User'2265 migrates all associated fields to te "Ghost user"2266 race conditions2267 blocks the user before snippet migration begins2268 when snippet migration fails and is rolled back2269 rolls back the user block2270 doesn't unblock an previously-blocked user2271 when snippet migration fails with a non-rollback exception2272 rolls back the user block2273 doesn't unblock an previously-blocked user2274 reviews2275 for a review the user has created2276 does not delete the review2277 blocks the user before migrating reviews to the 'Ghost User'2278 migrates all associated fields to te "Ghost user"2279 race conditions2280 blocks the user before review migration begins2281 when review migration fails and is rolled back2282 rolls back the user block2283 doesn't unblock an previously-blocked user2284 when review migration fails with a non-rollback exception2285 rolls back the user block2286 doesn't unblock an previously-blocked user2287 when record migration fails with a rollback exception2288 for records that were already migrated2289 reverses the migration2290Snippets::UpdateService2291 #execute2292 when Project Snippet2293 behaves like a service that updates a snippet2294 updates a snippet with the provided attributes2295 behaves like public visibility level restrictions apply2296 when user is not an admin2297 responds with an error2298 does not update snippet to public visibility2299 when user is an admin2300 responds with success2301 updates the snippet to public visibility2302 when visibility level is passed as a string2303 assigns the correct visibility level2304 behaves like snippet update data is tracked2305 increments count when create succeeds2306 when update fails2307 does not increment count2308 behaves like updates repository content2309 commit the files to the repository2310 returns error if snippet does not have a snippet_repository2311 when an error is raised2312 logs the error2313 returns error with generic error message2314 when the repository does not exist2315 does not try to commit file2316 behaves like commit operation fails2317 returns error2318 when repository is empty2319 destroys the created repository in disk2320 destroys the SnippetRepository object2321 expires the repository exists method cache2322 when repository is not empty2323 does not destroy the repository2324 does not destroy the snippet repository2325 expires the repository exists method cache2326 with snippet modifications2327 rolls back any snippet modifications2328 keeps any snippet modifications2329 behaves like committable attributes2330 when file_name is updated2331 commits to repository2332 when content is updated2333 commits to repository2334 when content or file_name is not updated2335 does not perform any commit2336 behaves like when snippet_actions param is present2337 updates a snippet with the provided attributes2338 commits the files to the repository2339 when content or file_name params are present2340 raises a validation error2341 when snippet_file content is not present2342 does not update snippet content2343 when snippet_actions param is invalid2344 raises a validation error2345 when an error is raised committing the file2346 keeps any snippet modifications2347 commit actions2348 update action2349 updates the file content2350 when previous_path is present2351 updates the file content2352 when content is not present2353 behaves like returns an error2354 is expected to eq "Snippet actions have invalid data"2355 when file_path does not exist2356 behaves like returns an error2357 is expected to eq "Repository Error updating the snippet"2358 move action2359 when file_path and previous_path are the same2360 behaves like returns an error2361 is expected to eq "Snippet actions have invalid data"2362 when file_path and previous_path are different2363 renames the file2364 when previous_path does not exist2365 behaves like returns an error2366 is expected to eq "Repository Error updating the snippet"2367 when user wants to rename the file and update content2368 performs both operations2369 delete action2370 behaves like deletes the file2371 is expected to be nil2372 when previous_path is present and same as file_path2373 behaves like deletes the file2374 is expected to be nil2375 when previous_path is present and is different from file_path2376 behaves like deletes the file2377 is expected to be nil2378 when content is present2379 behaves like deletes the file2380 is expected to be nil2381 when file_path does not exist2382 behaves like returns an error2383 is expected to eq "Repository Error updating the snippet"2384 create action2385 creates the file2386 when content is not present2387 behaves like returns an error2388 is expected to eq "Snippet actions have invalid data"2389 when file_path is not present or empty2390 generates the file path for the files2391 when file_path already exists in the repository2392 behaves like returns an error2393 is expected to eq "Repository Error updating the snippet"2394 when previous_path is present2395 creates the file2396 combination of actions2397 performs all operations2398 behaves like only file_name is present2399 when renaming the file_name2400 behaves like content is not updated2401 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2402 when file_name does not change2403 behaves like content is not updated2404 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2405 behaves like only content is present2406 updates the content2407 behaves like snippets spam check is performed2408 when allow_possible_spam flag is true2409 behaves like marked as spam2410 marks a snippet as spam2411 invalidates the snippet2412 creates a new spam_log2413 assigns a spam_log to an issue2414 when allow_possible_spam flag is false2415 behaves like marked as spam2416 marks a snippet as spam2417 invalidates the snippet2418 creates a new spam_log2419 assigns a spam_log to an issue2420 when allow_possible_spam flag is nil2421 behaves like marked as spam2422 marks a snippet as spam2423 invalidates the snippet2424 creates a new spam_log2425 assigns a spam_log to an issue2426 when snippet does not have a repository2427 behaves like creates repository and creates file2428 creates repository2429 commits the files to the repository2430 when the repository creation fails2431 raise an error2432 does not try to commit file2433 behaves like commit operation fails2434 returns error2435 when repository is empty2436 destroys the created repository in disk2437 destroys the SnippetRepository object2438 expires the repository exists method cache2439 when repository is not empty2440 does not destroy the repository2441 does not destroy the snippet repository2442 expires the repository exists method cache2443 with snippet modifications2444 rolls back any snippet modifications2445 keeps any snippet modifications2446 when PersonalSnippet2447 behaves like a service that updates a snippet2448 updates a snippet with the provided attributes2449 behaves like public visibility level restrictions apply2450 when user is not an admin2451 responds with an error2452 does not update snippet to public visibility2453 when user is an admin2454 responds with success2455 updates the snippet to public visibility2456 when visibility level is passed as a string2457 assigns the correct visibility level2458 behaves like snippet update data is tracked2459 increments count when create succeeds2460 when update fails2461 does not increment count2462 behaves like updates repository content2463 commit the files to the repository2464 returns error if snippet does not have a snippet_repository2465 when an error is raised2466 logs the error2467 returns error with generic error message2468 when the repository does not exist2469 does not try to commit file2470 behaves like commit operation fails2471 returns error2472 when repository is empty2473 destroys the created repository in disk2474 destroys the SnippetRepository object2475 expires the repository exists method cache2476 when repository is not empty2477 does not destroy the repository2478 does not destroy the snippet repository2479 expires the repository exists method cache2480 with snippet modifications2481 rolls back any snippet modifications2482 keeps any snippet modifications2483 behaves like committable attributes2484 when file_name is updated2485 commits to repository2486 when content is updated2487 commits to repository2488 when content or file_name is not updated2489 does not perform any commit2490 behaves like when snippet_actions param is present2491 updates a snippet with the provided attributes2492 commits the files to the repository2493 when content or file_name params are present2494 raises a validation error2495 when snippet_file content is not present2496 does not update snippet content2497 when snippet_actions param is invalid2498 raises a validation error2499 when an error is raised committing the file2500 keeps any snippet modifications2501 commit actions2502 update action2503 updates the file content2504 when previous_path is present2505 updates the file content2506 when content is not present2507 behaves like returns an error2508 is expected to eq "Snippet actions have invalid data"2509 when file_path does not exist2510 behaves like returns an error2511 is expected to eq "Repository Error updating the snippet"2512 move action2513 when file_path and previous_path are the same2514 behaves like returns an error2515 is expected to eq "Snippet actions have invalid data"2516 when file_path and previous_path are different2517 renames the file2518 when previous_path does not exist2519 behaves like returns an error2520 is expected to eq "Repository Error updating the snippet"2521 when user wants to rename the file and update content2522 performs both operations2523 delete action2524 behaves like deletes the file2525 is expected to be nil2526 when previous_path is present and same as file_path2527 behaves like deletes the file2528 is expected to be nil2529 when previous_path is present and is different from file_path2530 behaves like deletes the file2531 is expected to be nil2532 when content is present2533 behaves like deletes the file2534 is expected to be nil2535 when file_path does not exist2536 behaves like returns an error2537 is expected to eq "Repository Error updating the snippet"2538 create action2539 creates the file2540 when content is not present2541 behaves like returns an error2542 is expected to eq "Snippet actions have invalid data"2543 when file_path is not present or empty2544 generates the file path for the files2545 when file_path already exists in the repository2546 behaves like returns an error2547 is expected to eq "Repository Error updating the snippet"2548 when previous_path is present2549 creates the file2550 combination of actions2551 performs all operations2552 behaves like only file_name is present2553 when renaming the file_name2554 behaves like content is not updated2555 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2556 when file_name does not change2557 behaves like content is not updated2558 is expected to eq "/custom-highlighting/*.gitlab-custom gitlab-language=ruby\n"2559 behaves like only content is present2560 updates the content2561 behaves like snippets spam check is performed2562 when allow_possible_spam flag is true2563 behaves like marked as spam2564 marks a snippet as spam2565 invalidates the snippet2566 creates a new spam_log2567 assigns a spam_log to an issue2568 when allow_possible_spam flag is false2569 behaves like marked as spam2570 marks a snippet as spam2571 invalidates the snippet2572 creates a new spam_log2573 assigns a spam_log to an issue2574 when allow_possible_spam flag is nil2575 behaves like marked as spam2576 marks a snippet as spam2577 invalidates the snippet2578 creates a new spam_log2579 assigns a spam_log to an issue2580 when snippet does not have a repository2581 behaves like creates repository and creates file2582 creates repository2583 commits the files to the repository2584 when the repository creation fails2585 raise an error2586 does not try to commit file2587 behaves like commit operation fails2588 returns error2589 when repository is empty2590 destroys the created repository in disk2591 destroys the SnippetRepository object2592 expires the repository exists method cache2593 when repository is not empty2594 does not destroy the repository2595 does not destroy the snippet repository2596 expires the repository exists method cache2597 with snippet modifications2598 rolls back any snippet modifications2599 keeps any snippet modifications2600Gitlab::Auth2601 constants2602 API_SCOPES contains all scopes for API access2603 ADMIN_SCOPES contains all scopes for ADMIN access2604 REPOSITORY_SCOPES contains all scopes for REPOSITORY access2605 OPENID_SCOPES contains all scopes for OpenID Connect2606 DEFAULT_SCOPES contains all default scopes2607 optional_scopes contains all non-default scopes2608 available_scopes2609 contains all non-default scopes2610 contains for non-admin user all non-default scopes without ADMIN access2611 contains for admin user all non-default scopes with ADMIN access2612 registry_scopes2613 when registry is disabled2614 is empty2615 when registry is enabled2616 contains all registry related scopes2617 find_for_git_client2618 recognizes other ci services2619 recognizes master passwords2620 allows user authenticating from the same ip2621 blocks user authenticating from two distinct ips2622 returns double nil for invalid credentials2623 throws an error suggesting user create a PAT when internal auth is disabled2624 rate limiting2625 when IP is already banned2626 raises an IpBlacklisted exception2627 for CI registry user2628 skips rate limiting for successful auth2629 skips rate limiting for failed auth2630 for other users2631 resets rate limit for successful auth2632 rate limits a user by unique IPs2633 registers failure for failed auth2634 build token2635 for running build2636 recognises user-less build2637 recognises user token2638 fails with blocked user token2639 username is not gitlab-ci-token2640 fails to authenticate2641 for created build2642 denies authentication2643 for waiting_for_resource build2644 denies authentication2645 for preparing build2646 denies authentication2647 for pending build2648 denies authentication2649 for success build2650 denies authentication2651 for failed build2652 denies authentication2653 for canceled build2654 denies authentication2655 for skipped build2656 denies authentication2657 for manual build2658 denies authentication2659 for scheduled build2660 denies authentication2661 while using LFS authenticate2662 recognizes user lfs tokens2663 recognizes deploy key lfs tokens2664 does not try password auth before oauth2665 grants deploy key write permissions2666 does not grant deploy key write permissions2667 while using OAuth tokens as passwords2668 succeeds for OAuth tokens with the `api` scope2669 fails for OAuth tokens with other scopes2670 does not try password auth before oauth2671 blocked user2672 behaves like an oauth failure2673 fails2674 orphaned token2675 behaves like an oauth failure2676 fails2677 while using personal access tokens as passwords2678 succeeds for personal access tokens with the `api` scope2679 succeeds for personal access tokens with the `read_repository` scope2680 succeeds for personal access tokens with the `write_repository` scope2681 succeeds if it is an impersonation token2682 limits abilities based on scope2683 fails if password is nil2684 when registry is enabled2685 succeeds for personal access tokens with the `read_registry` scope2686 when user is blocked2687 fails if user is blocked2688 while using regular user and password2689 fails for a blocked user2690 goes through lfs authentication2691 goes through oauth authentication when the username is oauth22692 while using deploy tokens2693 when deploy token and user have the same username2694 succeeds for the token2695 succeeds for the user2696 when deploy tokens have the same username2697 and belong to the same project2698 succeeds for the right token2699 fails for the wrong token2700 and belong to different projects2701 succeeds for the right token2702 fails for the wrong token2703 when the deploy token has read_repository as scope2704 succeeds when login and token are valid2705 succeeds when custom login and token are valid2706 does not attempt to rate limit unique IPs for a deploy token2707 fails when login is not valid2708 fails when token is not valid2709 fails if token is nil2710 fails if token is not related to project2711 fails if token has been revoked2712 when the deploy token is of group type2713 succeeds when login and a group deploy token are valid2714 fails if token is not related to group2715 when the deploy token has read_registry as a scope2716 when registry enabled2717 succeeds when login and a project token are valid2718 behaves like registry token scope2719 fails when login is not valid2720 fails when token is not valid2721 fails if token is nil2722 fails if token is not related to project2723 fails if token has been revoked2724 behaves like deploy token with disabled registry2725 when registry disabled2726 fails when login and token are valid2727 when the deploy token has write_registry as a scope2728 when registry enabled2729 succeeds when login and a project token are valid2730 behaves like registry token scope2731 fails when login is not valid2732 fails when token is not valid2733 fails if token is nil2734 fails if token is not related to project2735 fails if token has been revoked2736 behaves like deploy token with disabled registry2737 when registry disabled2738 fails when login and token are valid2739 find_with_user_password2740 finds user by valid login/password2741 finds user by valid email/password with case-insensitive email2742 finds user by valid username/password with case-insensitive username2743 does not find user with invalid password2744 does not find user with invalid login2745 allows user authenticating from the same ip2746 blocks user authenticating from two distinct ips2747 finds the user in deactivated state2748 does not find user in blocked state2749 does not find user in ldap_blocked state2750 with ldap enabled2751 tries to autheticate with db before ldap2752 does not find user by using ldap as fallback to for authentication2753 find new user by using ldap as fallback to for authentication2754 with password authentication disabled for Git2755 does not find user by valid login/password2756 with ldap enabled2757 does not find non-ldap user by valid login/password2758 .resource_bot_scopes2759 is expected to include :api and :read_api2760 is expected to include :read_repository and :write_repository2761 is expected to include nil2762Banzai::Filter::RepositoryLinkFilter2763 does not trigger a gitaly n+12764 does not raise an exception on invalid URIs2765 does not raise an exception on URIs containing invalid utf-8 byte sequences2766 does not raise an exception on URIs containing invalid utf-8 byte sequences in context requested path2767 does not raise an exception with a garbled path2768 does not explode with an escaped null byte2769 ignores ref if commit is passed2770 with a wiki2771 does not modify any relative URL in anchor2772 does not modify any relative URL in image2773 does not modify any relative URL in video2774 does not modify any relative URL in audio2775 without a repository2776 does not modify any relative URL in anchor2777 does not modify any relative URL in image2778 does not modify any relative URL in video2779 does not modify any relative URL in audio2780 with an empty repository2781 does not modify any relative URL in anchor2782 does not modify any relative URL in image2783 does not modify any relative URL in video2784 does not modify any relative URL in audio2785 without project repository access2786 does not modify any relative URL in anchor2787 does not modify any relative URL in image2788 does not modify any relative URL in video2789 does not modify any relative URL in audio2790 with a valid commit2791 handles Gitaly unavailable exceptions gracefully2792 handles Gitaly timeout exceptions gracefully2793 rebuilds absolute URL for a file in the repo2794 does not modify relative URLs in system notes2795 ignores absolute URLs with two leading slashes2796 rebuilds relative URL for a file in the repo2797 rebuilds relative URL for a missing file in the repo2798 rebuilds relative URL for a file in the repo with leading ./2799 rebuilds relative URL for a file in the repo up one directory2800 rebuilds relative URL for a file in the repo up multiple directories2801 rebuilds relative URL for a file in the repository root2802 rebuilds relative URL for a file in the repo with an anchor2803 rebuilds relative URL for a directory in the repo2804 rebuilds relative URL for an image in the repo2805 rebuilds relative URL for link to an image in the repo2806 rebuilds relative URL for a video in the repo2807 rebuilds relative URL for audio in the repo2808 does not modify relative URL with an anchor only2809 does not modify absolute URL2810 does not call gitaly2811 supports Unicode filenames2812 when requested path is a file in the repo2813 rebuilds URL relative to the containing directory2814 when requested path is a directory in the repo2815 rebuilds URL relative to the directory2816 when ref name contains percent sign2817 correctly escapes the ref2818 when ref name contains special chars2819 correctly escapes the ref2820 when requested path is a directory with space in the repo2821 does not escape the space twice2822 with a valid ref2823 handles Gitaly unavailable exceptions gracefully2824 handles Gitaly timeout exceptions gracefully2825 rebuilds absolute URL for a file in the repo2826 does not modify relative URLs in system notes2827 ignores absolute URLs with two leading slashes2828 rebuilds relative URL for a file in the repo2829 rebuilds relative URL for a missing file in the repo2830 rebuilds relative URL for a file in the repo with leading ./2831 rebuilds relative URL for a file in the repo up one directory2832 rebuilds relative URL for a file in the repo up multiple directories2833 rebuilds relative URL for a file in the repository root2834 rebuilds relative URL for a file in the repo with an anchor2835 rebuilds relative URL for a directory in the repo2836 rebuilds relative URL for an image in the repo2837 rebuilds relative URL for link to an image in the repo2838 rebuilds relative URL for a video in the repo2839 rebuilds relative URL for audio in the repo2840 does not modify relative URL with an anchor only2841 does not modify absolute URL2842 does not call gitaly2843 supports Unicode filenames2844 when requested path is a file in the repo2845 rebuilds URL relative to the containing directory2846 when requested path is a directory in the repo2847 rebuilds URL relative to the directory2848 when ref name contains percent sign2849 correctly escapes the ref2850 when ref name contains special chars2851 correctly escapes the ref2852 when requested path is a directory with space in the repo2853 does not escape the space twice2854Gitlab::ImportExport::AfterExportStrategies::BaseAfterExportStrategy2855 #execute2856 returns if project exported file is not found2857 creates a lock file in the export dir2858 when the method succeeds2859 removes the lock file2860 removes the archive path2861 when the method fails2862 when validation fails2863 does not create the lock file2864 does not execute main logic2865 logs validation errors in shared context2866 removes the archive path2867 when an exception is raised2868 removes the lock2869 #log_validation_errors2870 add the message to the shared context2871 #to_json2872 adds the current strategy class to the serialized attributes2873Gitlab::Ci::Status::Pipeline::Factory2874 when pipeline has a core status2875 when core status is created2876 matches correct core status for created2877 does not match extended statuses2878 fabricates a core status created2879 extends core status with common pipeline methods2880 when core status is waiting_for_resource2881 matches correct core status for waiting_for_resource2882 does not match extended statuses2883 fabricates a core status waiting_for_resource2884 extends core status with common pipeline methods2885 when core status is preparing2886 matches correct core status for preparing2887 does not match extended statuses2888 fabricates a core status preparing2889 extends core status with common pipeline methods2890 when core status is pending2891 matches correct core status for pending2892 does not match extended statuses2893 fabricates a core status pending2894 extends core status with common pipeline methods2895 when core status is running2896 matches correct core status for running2897 does not match extended statuses2898 fabricates a core status running2899 extends core status with common pipeline methods2900 when core status is success2901 matches correct core status for success2902 does not match extended statuses2903 fabricates a core status success2904 extends core status with common pipeline methods2905 when core status is failed2906 matches correct core status for failed2907 does not match extended statuses2908 fabricates a core status failed2909 extends core status with common pipeline methods2910 when core status is canceled2911 matches correct core status for canceled2912 does not match extended statuses2913 fabricates a core status canceled2914 extends core status with common pipeline methods2915 when core status is skipped2916 matches correct core status for skipped2917 does not match extended statuses2918 fabricates a core status skipped2919 extends core status with common pipeline methods2920 when core status is manual2921 matches manual core status2922 matches a correct extended statuses2923 extends core status with common pipeline methods2924 when core status is scheduled2925 matches scheduled core status2926 matches a correct extended statuses2927 extends core status with common pipeline methods2928 when pipeline has warnings2929 matches correct core status2930 matches correct extended statuses2931 fabricates extended "success with warnings" status2932 extends core status with common pipeline method2933Banzai::Filter::MergeRequestReferenceFilter2934 requires project context2935 ignores valid references contained inside 'pre' element2936 ignores valid references contained inside 'code' element2937 ignores valid references contained inside 'a' element2938 ignores valid references contained inside 'style' element2939 performance2940 does not have a N+1 query problem2941 all references2942 adds merge request iid2943 adds project data attribute with project id2944 does not add `has-tooltip` class2945 internal reference2946 links to a valid reference2947 links with adjacent text2948 ignores invalid merge IDs2949 ignores out-of-bounds merge request IDs on the referenced project2950 has no title2951 escapes the title attribute2952 includes default classes, without tooltip2953 includes a data-project attribute2954 includes a data-merge-request attribute2955 supports an :only_path context2956 cross-project / cross-namespace complete reference2957 links to a valid reference2958 link has valid text2959 has valid text2960 ignores invalid merge IDs on the referenced project2961 cross-project / same-namespace complete reference2962 links to a valid reference2963 link has valid text2964 has valid text2965 ignores invalid merge IDs on the referenced project2966 cross-project shorthand reference2967 links to a valid reference2968 link has valid text2969 has valid text2970 ignores invalid merge IDs on the referenced project2971 URL reference for a commit2972 links to a valid reference2973 commit ref tag is valid2974 has valid text2975 has valid title attribute2976 ignores invalid commit short_ids on link text2977 cross-project URL reference2978 links to a valid reference2979 links with adjacent text2980 group context2981 links to a valid reference2982MarkupHelper2983 #markdown2984 referencing multiple objects2985 links to the merge request2986 links to the commit2987 links to the issue2988 override default project2989 links to the issue2990 uploads2991 inside a project2992 renders uploads relative to project2993 inside a group2994 renders uploads relative to the group2995 with a group in the context2996 renders uploads relative to project2997 when text contains a relative link to an image in the repository2998 when requested_path is provided, but ref isn't2999 returns the correct HTML for the image3000 when requested_path and ref parameters are both provided3001 returns the correct HTML for the image3002 when ref is provided, but requested_path isn't3003 returns the correct HTML for the image3004 when neither requested_path, nor ref parameter is provided3005 returns the correct HTML for the image3006 #markdown_field3007 with already redacted attribute3008 returns the redacted attribute3009 without redacted attribute3010 renders the markdown value3011 when post_process is false3012 does not run Markdown post processing3013 #link_to_markdown_field3014 handles references nested in links with all the text3015 #link_to_markdown3016 handles references nested in links with all the text3017 forwards HTML options3018 escapes HTML passed in as the body3019 ignores reference links when they are the entire body3020 replaces commit message with emoji to link3021 #link_to_html3022 wraps the rendered content in a link3023 escapes HTML passed as an emoji3024 #render_wiki_content3025 when file is Markdown3026 renders using #markdown_unsafe helper method3027 when file is Asciidoc3028 renders using Gitlab::Asciidoc3029 any other format3030 renders all other formats using Gitlab::OtherMarkup3031 #markup3032 preserves encoding3033 delegates to #markdown_unsafe when file name corresponds to Markdown3034 delegates to #asciidoc_unsafe when file name corresponds to AsciiDoc3035 uses passed in rendered content3036 defaults to CommonMark3037 #markup_unsafe3038 when text is missing3039 returns an empty string3040 when file is a markdown file3041 returns html (rendered by Banzai)3042 when renderer returns an error3043 returns html (rendered by ActionView:TextHelper)3044 logs the error3045 when file is asciidoc file3046 returns html (rendered by Gitlab::Asciidoc)3047 when file is a regular text file3048 returns html (rendered by ActionView::TagHelper)3049 when file has an unknown type3050 returns html (rendered by Gitlab::OtherMarkup)3051 #first_line_in_markdown3052 when the asked attribute can be redacted3053 displays inline code3054 truncates the text with multiple paragraphs3055 displays the first line of a code block3056 truncates a single long line of text3057 preserves a link href when link text is truncated3058 preserves code color scheme3059 keeps whitelisted tags3060 truncates Markdown properly3061 truncates Markdown with emoji properly3062 does not post-process truncated text3063 when images are allowed3064 preserves data-src for lazy images3065 when images are not allowed3066 removes any images3067 labels formatting3068 preserves style attribute for a label that can be accessed by current_user3069 does not style a label that can not be accessed by current_user3070 when the asked attribute can not be redacted3071 displays inline code3072 truncates the text with multiple paragraphs3073 displays the first line of a code block3074 truncates a single long line of text3075 preserves a link href when link text is truncated3076 preserves code color scheme3077 keeps whitelisted tags3078 truncates Markdown properly3079 truncates Markdown with emoji properly3080 does not post-process truncated text3081 when images are allowed3082 preserves data-src for lazy images3083 when images are not allowed3084 removes any images3085 labels formatting3086 preserves style attribute for a label that can be accessed by current_user3087 does not style a label that can not be accessed by current_user3088 #cross_project_reference3089 shows the full MR reference3090 shows the full issue reference3091Groups::UpdateService3092 #execute3093 with project3094 behaves like with packages3095 with npm packages3096DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3097 does not allow a path update3098 allows name update3099 located in a subgroup3100DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3101 does allow a path update if there is not a root namespace change3102 behaves like with packages3103 with npm packages3104DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3105 does not allow a path update3106 allows name update3107 project visibility_level validation3108 public group with public projects3109 does not change permission level3110 returns false if save failed3111 when a project has container images3112 within group3113 with path updates3114DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3115 does not allow the update3116 with name updates3117 allows the update3118 within subgroup3119DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3120 does not allow path updates3121 internal group with internal project3122 does not change permission level3123 internal group with private project3124 changes permission level to private3125 with parent_id user doesn't have permissions for3126 does not update parent_id3127 unauthorized visibility_level validation3128 does not change permission level3129 when updating #emails_disabled3130 updates the attribute3131 does not update when not group owner3132 updating default_branch_protection3133 for users who have the ability to update default_branch_protection3134 updates the attribute3135 for users who do not have the ability to update default_branch_protection3136 does not update the attribute3137 rename group3138DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3139 returns true3140 error moving group3141DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3142 does not raise an error3143DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3144 returns false3145DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3146 has the right error3147DEPRECATION WARNING: Class level methods will no longer inherit scoping from `for_group_and_its_subgroups` in Rails 6.1. To continue using the scoped relation, pass it into the block directly. To instead access the full set of models, as Rails 6.1 will, use `ContainerRepository.default_scoped`. (called from block in <class:ContainerRepository> at /builds/gitlab-org/gitlab/app/models/container_repository.rb:25)3148 hasn't changed the path3149 for a subgroup3150 when the parent group share_with_group_lock is enabled3151 for the parent group owner3152 allows disabling share_with_group_lock3153 for a subgroup owner (who does not own the parent)3154 does not allow disabling share_with_group_lock3155MergeRequestDiffCommit3156 behaves like a BulkInsertSafe model3157 when calling class methods directly3158 raises an error when method is not bulk-insert safe3159 does not raise an error when method is bulk-insert safe3160 does not raise an error when the call is triggered by belongs_to3161 .bulk_insert!3162 when all items are valid3163 inserts them all3164 returns an empty array3165 when some items are invalid3166 does not insert any of them and raises an error3167 inserts them anyway when bypassing validations3168 #to_hash3169 returns the same results as Commit#to_hash, except for parent_ids3170 .create_bulk3171 inserts the commits into the database en masse3172 with dates larger than the DB limit3173 uses a sanitized date3174Banzai::Filter::CommitRangeReferenceFilter3175 requires project context3176 ignores valid references contained inside 'pre' element3177 ignores valid references contained inside 'code' element3178 ignores valid references contained inside 'a' element3179 ignores valid references contained inside 'style' element3180 internal reference3181 links to a valid two-dot reference3182 links to a valid three-dot reference3183 links to a valid short ID3184 links with adjacent text3185 ignores invalid commit IDs3186 includes no title attribute3187 includes default classes3188 includes a data-project attribute3189 includes a data-commit-range attribute3190 supports an :only_path option3191 cross-project / cross-namespace complete reference3192 links to a valid reference3193 link has valid text3194 has valid text3195 ignores invalid commit IDs on the referenced project3196 cross-project / same-namespace complete reference3197 links to a valid reference3198 link has valid text3199 has valid text3200 ignores invalid commit IDs on the referenced project3201 cross-project shorthand reference3202 links to a valid reference3203 link has valid text3204 has valid text3205 ignores invalid commit IDs on the referenced project3206 cross-project URL reference3207 links to a valid reference3208 links with adjacent text3209 ignores invalid commit IDs on the referenced project3210 group context3211 ignores internal references3212 links to a full-path reference3213ProtectedBranch3214 Associations3215 is expected to belong to project required:3216 Validation3217 is expected to validate that :project cannot be empty/falsy3218 is expected to validate that :name cannot be empty/falsy3219 #matches?3220 when the protected branch setting is not a wildcard3221 returns true for branch names that are an exact match3222 returns false for branch names that are not an exact match3223 when the protected branch name contains wildcard(s)3224 when there is a single '*'3225 returns true for branch names matching the wildcard3226 returns false for branch names not matching the wildcard3227 when the wildcard contains regex symbols other than a '*'3228 returns true for branch names matching the wildcard3229 returns false for branch names not matching the wildcard3230 when there are '*'s at either end3231 returns true for branch names matching the wildcard3232 returns false for branch names not matching the wildcard3233 when there are arbitrarily placed '*'s3234 returns true for branch names matching the wildcard3235 returns false for branch names not matching the wildcard3236 #matching3237 for direct matches3238 returns a list of protected branches matching the given branch name3239 accepts a list of protected branches to search from, so as to avoid a DB call3240 for wildcard matches3241 returns a list of protected branches matching the given branch name3242 accepts a list of protected branches to search from, so as to avoid a DB call3243 #protected?3244 existing project3245 returns true when the branch matches a protected branch via direct match3246 returns true when the branch matches a protected branch via wildcard match3247 returns false when the branch does not match a protected branch via direct match3248 returns false when the branch does not match a protected branch via wildcard match3249 new project3250 when the group has set their own default_branch_protection level3251 default_branch_protection_level: 0, result: false3252 protects the default branch based on the default branch protection setting of the group3253 default_branch_protection_level: 1, result: false3254 protects the default branch based on the default branch protection setting of the group3255 default_branch_protection_level: 3, result: true3256 protects the default branch based on the default branch protection setting of the group3257 default_branch_protection_level: 2, result: true3258 protects the default branch based on the default branch protection setting of the group3259 when the group has not set their own default_branch_protection level3260 default_branch_protection_level: 0, result: false3261 protects the default branch based on the instance level default branch protection setting3262 default_branch_protection_level: 1, result: false3263 protects the default branch based on the instance level default branch protection setting3264 default_branch_protection_level: 3, result: true3265 protects the default branch based on the instance level default branch protection setting3266 default_branch_protection_level: 2, result: true3267 protects the default branch based on the instance level default branch protection setting3268 #any_protected?3269 existing project3270 returns true when any of the branch names match a protected branch via direct match3271 returns true when any of the branch matches a protected branch via wildcard match3272 returns false when none of branches does not match a protected branch via direct match3273 returns false when none of the branches does not match a protected branch via wildcard match3274 .by_name3275 returns protected branches with a matching name3276 returns protected branches with a partially matching name3277 returns protected branches with a matching name regardless of the casing3278 returns nothing when nothing matches3279 return nothing when query is blank3280Files::MultiService3281 #execute3282 with a valid action3283 returns a hash with the :success status3284 with an invalid action3285 returns a hash with the :error status3286 Updating files3287 when the file has been previously updated3288 rejects the commit3289 when the file have not been modified3290 accepts the commit3291 changing execute_filemode of a file3292 accepts the commit3293 updates the execute_filemode of the file3294 when the file doesn't exists3295 rejects the commit3296 when moving a file3297 when original file has been updated3298 rejects the commit3299 when original file has not been updated3300 moves the file3301 when content is nil3302 moves the existing content untouched3303 when content is an empty string3304 moves the file and empties it3305 when creating a file matching an LFS filter3306 creates an LFS pointer3307 creates an LfsObject with the file's content3308 links the LfsObject to the project3309 with base64 encoded content3310 creates an LFS pointer3311 creates an LfsObject with the file's content3312 when file status validation is skipped3313 does not check the last commit3314 creates the file3315 when force is set to true and branch already exists3316 is still a success3317ForkNetwork3318 #add_root_as_member3319 adds the root project as a member when creating a new root network3320 #find_fork_in3321 finds all fork of the current network in al collection3322 #merge_requests3323 finds merge requests within the fork network3324 for a deleted project3325 keeps the fork network3326 allows multiple fork networks where the root project is deleted3327Banzai::Filter::IssuableStateFilter3328 ignores non-GFM links3329 ignores non-issuable links3330 ignores issuable links with empty content3331 ignores issuable links with custom anchor3332 ignores issuable links to specific comments3333 ignores merge request links to diffs tab3334 handles cross project references3335 handles references from group scopes3336 skips cross project references if the user cannot read cross project3337 does not append state when filter is not enabled3338 when project is in pending delete3339 does not append issue state3340 for issue references3341 ignores open issue references3342 appends state to closed issue references3343 appends state to moved issue references3344 for merge request references3345 ignores open merge request references3346 ignores locked merge request references3347 appends state to closed merge request references3348 appends state to merged merge request references3349rake gitlab:storage:*3350 gitlab:storage:migrate_to_hashed3351 with rollback already scheduled3352 does nothing3353 with 0 legacy projects3354 does nothing3355 with 3 legacy projects3356 enqueues migrations and count projects correctly3357 behaves like handles custom BATCH env var3358 in batches of 13359 enqueues one HashedStorage::MigratorWorker per project3360 in batches of 23361 enqueues one HashedStorage::MigratorWorker per 2 projects3362 with same id in range3363 displays message when project cant be found3364 displays a message when project exists but its already migrated3365 enqueues migration when project can be found3366 gitlab:storage:rollback_to_legacy3367 behaves like make sure database is writable3368 read-only database3369 does nothing3370 with migration already scheduled3371 does nothing3372 with 0 hashed projects3373 does nothing3374 with 3 hashed projects3375 enqueues migrations and count projects correctly3376 behaves like handles custom BATCH env var3377 in batches of 13378 enqueues one HashedStorage::RollbackerWorker per project3379 in batches of 23380 enqueues one HashedStorage::RollbackerWorker per 2 projects3381 gitlab:storage:legacy_projects3382 behaves like rake entities summary3383 with existing 3 legacy projects3384 reports 3 legacy projects3385 without any legacy project3386 displays message for empty results3387 gitlab:storage:list_legacy_projects3388 behaves like rake listing entities3389 limiting to 23390 lists 2 out of 3 legacy projects3391 without any legacy project3392 displays message for empty results3393 gitlab:storage:hashed_projects3394 behaves like rake entities summary3395 with existing 3 hashed projects3396 reports 3 hashed projects3397 without any hashed project3398 displays message for empty results3399 gitlab:storage:list_hashed_projects3400 behaves like rake listing entities3401 limiting to 23402 lists 2 out of 3 hashed projects3403 without any hashed project3404 displays message for empty results3405 gitlab:storage:legacy_attachments3406 behaves like rake entities summary3407 with existing 3 legacy attachments3408 reports 3 legacy attachments3409 without any legacy attachment3410 displays message for empty results3411 gitlab:storage:list_legacy_attachments3412 behaves like rake listing entities3413 limiting to 23414 lists 2 out of 3 legacy attachments3415 without any legacy attachment3416 displays message for empty results3417 gitlab:storage:hashed_attachments3418 behaves like rake entities summary3419 with existing 3 hashed attachments3420 reports 3 hashed attachments3421 without any hashed attachment3422 displays message for empty results3423 gitlab:storage:list_hashed_attachments3424 behaves like rake listing entities3425 limiting to 23426 lists 2 out of 3 hashed attachments3427 without any hashed attachment3428 displays message for empty results3429StuckCiJobsWorker3430 when job is pending3431 when job is not stuck3432 when job was not updated for more than 1 day ago3433 behaves like job is dropped3434 changes status3435 when job have data integrity problem3436 does drop the job and logs the reason3437 when job was updated in less than 1 day ago3438 behaves like job is unchanged3439 doesn't change status3440 when job was not updated for more than 1 hour ago3441 behaves like job is unchanged3442 doesn't change status3443 when job is stuck3444 when job was not updated for more than 1 hour ago3445 behaves like job is dropped3446 changes status3447 when job have data integrity problem3448 does drop the job and logs the reason3449 when job was updated in less than 13450 hour ago3451 behaves like job is unchanged3452 doesn't change status3453 when job is running3454 when job was not updated for more than 1 hour ago3455 behaves like job is dropped3456 changes status3457 when job have data integrity problem3458 does drop the job and logs the reason3459 when job was updated in less than 1 hour ago3460 behaves like job is unchanged3461 doesn't change status3462 when job is success3463 behaves like job is unchanged3464 doesn't change status3465 when job is skipped3466 behaves like job is unchanged3467 doesn't change status3468 when job is failed3469 behaves like job is unchanged3470 doesn't change status3471 when job is canceled3472 behaves like job is unchanged3473 doesn't change status3474 for deleted project3475 does drop job3476 drop stale scheduled builds3477 when scheduled at 2 hours ago but it is not executed yet3478 drops the stale scheduled build3479 when scheduled at 30 minutes ago but it is not executed yet3480 does not drop the stale scheduled build yet3481 when there are no stale scheduled builds3482 does not drop the stale scheduled build yet3483 exclusive lease3484 is guard by exclusive lease when executed concurrently3485 can be executed in sequence3486 cancels exclusive leases after worker perform3487IssueLinks::ListService3488 #execute3489 user can see all issues3490 ensures no N+1 queries are made3491 returns related issues JSON3492 referencing a public project issue3493 presents issue3494 referencing issue with removed relationships3495 when referenced a deleted issue3496 ignores issue3497 when referenced an issue with deleted project3498 ignores issue3499 when referenced an issue with deleted namespace3500 ignores issue3501 user cannot see relations3502 when user cannot see the referenced issue3503 returns an empty list3504 when user cannot see the issue that referenced3505 returns an empty list3506 remove relations3507 user can admin related issues just on target project3508 returns no destroy relation path3509 user can admin related issues just on source project3510 returns no destroy relation path3511 when user can admin related issues on both projects3512 returns related issue destroy relation path3513ProjectStatistics3514 associations3515 is expected to belong to project required:3516 is expected to belong to namespace required:3517 scopes3518 .for_project_ids3519 returns only requested projects3520 statistics columns3521 support values up to 8 exabytes3522 #total_repository_size3523 sums repository and LFS object size3524 #wiki_size3525 is initialized with not null value3526 coerces any nil value to 03527 #snippets_size3528 is initialized with not null value3529 coerces any nil value to 03530 #refresh!3531 without arguments3532 sums all counters3533 when passing an only: argument3534 only updates the given columns3535 without repositories3536 does not crash3537 with deleted repositories3538 does not crash3539 when the column is namespace relatable3540 when arguments are passed3541 schedules the aggregation worker3542 when no argument is passed3543 schedules the aggregation worker3544 when the column is not namespace relatable3545 does not schedules an aggregation worker3546 #update_commit_count3547 stores the number of commits in the repository3548 #update_repository_size3549 stores the size of the repository3550 #update_wiki_size3551 stores the size of the wiki3552 #update_snippets_size3553 stores the size of snippets3554 when not all snippets has statistics3555 stores the size of snippets with statistics3556 #update_lfs_objects_size3557 stores the size of related LFS objects3558 #update_storage_size3559 sums all storage counters3560 works during wiki_size backfill3561 when nullable columns are nil3562 does not raise any error3563 .increment_statistic3564 when adjusting :build_artifacts_size3565 behaves like a statistic that increases storage_size3566 increases the statistic by that amount3567 increases also storage size by that amount3568 when adjusting :pipeline_artifacts_size3569 behaves like a statistic that increases storage_size3570 increases the statistic by that amount3571 increases also storage size by that amount3572 when adjusting :packages_size3573 behaves like a statistic that increases storage_size3574 increases the statistic by that amount3575 increases also storage size by that amount3576 when the amount is 03577 does not execute a query3578 when using an invalid column3579 raises an error3580MembersFinder#execute3581 returns members for project and parent groups3582 returns owners and maintainers3583 returns active users and excludes invited users3584 includes only non-invite members if user do not have amdin permissions on project3585 includes invited members if user have admin permissions on project3586 includes nested group members if asked3587 returns only members of project if asked3588 returns only inherited members of project if asked3589 returns only inherited members of a personal project3590 returns the members.access_level when the user is invited3591 returns the highest access_level for the user3592 returns searched members if requested3593 returns members sorted by id_desc3594 when include_invited_groups_members == true3595 includes all the invited_groups members including members inherited from ancestor groups3596 includes all the invited_groups members3597 excludes group_members not visible to the user3598 when the user is a member of invited group and ancestor groups3599 returns the highest access_level for the user limited by project_group_link.group_access3600Gitlab::MarkdownCache::ActiveRecord::Extension3601 an unchanged markdown field3602 is expected to eq "`Foo`"3603 is expected to eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Foo</code></p>"3604 is expected not to be truthy3605 is expected to eq 16384003606 a changed markdown field3607 is expected to eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Bar</code></p>"3608 is expected to eq 16384003609 when a markdown field is set repeatedly to an empty string3610 is expected to receive refresh_markdown_cache(*(any args)) 1 time3611 when a markdown field is set repeatedly to a string which renders as empty html3612 is expected to receive refresh_markdown_cache(*(any args)) 1 time3613 a non-markdown field changed3614 is expected to eq 23615 is expected to eq "`Foo`"3616 is expected to eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Foo</code></p>"3617 is expected to eq 16384003618 version is out of date3619 is expected to eq "<p data-sourcepos=\"1:1-1:5\" dir=\"auto\"><code>Bar</code></p>"3620 is expected to eq 16384003621 when an invalidating field is changed3622 invalidates the cache when project changes3623 invalidates the cache when author changes3624 .attributes3625 excludes cache attributes that is blacklisted by default3626 #cached_html_up_to_date?3627 returns false if markdown has been changed but html has not3628 returns true if markdown has not been changed but html has3629 returns true if markdown and html have both been changed3630 returns false if the markdown field is set but the html is not3631 #refresh_markdown_cache!3632 skips saving if not persisted3633 saves the changes3634Ci::UpdateBuildQueueService3635 when updating specific runners3636 behaves like matching build3637 when there is a online runner that can pick build3638 behaves like refreshes runner3639 ticks runner queue value3640 behaves like mismatching tags3641 when there is no runner that can pick build due to tag mismatch3642 behaves like does not refresh runner3643 ticks runner queue value3644 behaves like recent runner queue3645 when there is runner with expired cache3646 when ci_update_queues_for_online_runners is enabled3647 behaves like does not refresh runner3648 ticks runner queue value3649 when ci_update_queues_for_online_runners is disabled3650 behaves like refreshes runner3651 ticks runner queue value3652 when the runner is assigned to another project3653 behaves like does not refresh runner3654 ticks runner queue value3655 when updating shared runners3656 behaves like matching build3657 when there is a online runner that can pick build3658 behaves like refreshes runner3659 ticks runner queue value3660 behaves like mismatching tags3661 when there is no runner that can pick build due to tag mismatch3662 behaves like does not refresh runner3663 ticks runner queue value3664 behaves like recent runner queue3665 when there is runner with expired cache3666 when ci_update_queues_for_online_runners is enabled3667 behaves like does not refresh runner3668 ticks runner queue value3669 when ci_update_queues_for_online_runners is disabled3670 behaves like refreshes runner3671 ticks runner queue value3672 when there is no runner that can pick build due to being disabled on project3673 behaves like does not refresh runner3674 ticks runner queue value3675 when updating group runners3676 behaves like matching build3677 when there is a online runner that can pick build3678 behaves like refreshes runner3679 ticks runner queue value3680 behaves like mismatching tags3681 when there is no runner that can pick build due to tag mismatch3682 behaves like does not refresh runner3683 ticks runner queue value3684 behaves like recent runner queue3685 when there is runner with expired cache3686 when ci_update_queues_for_online_runners is enabled3687 behaves like does not refresh runner3688 ticks runner queue value3689 when ci_update_queues_for_online_runners is disabled3690 behaves like refreshes runner3691 ticks runner queue value3692 when there is no runner that can pick build due to being disabled on project3693 behaves like does not refresh runner3694 ticks runner queue value3695Gitlab::BitbucketServerImport::Importer3696 #import_repository3697 adds a remote3698 raises a Gitlab::Shell exception in the fetch3699 raises an unhandled exception in the fetch3700 #import_pull_requests3701 imports merge event3702 imports comments3703 imports threaded discussions3704 falls back to comments if diff comments fail to validate3705 reports an error if an exception is raised3706 metrics3707 counts and measures duration of imported projects3708 counts imported pull requests3709 inaccessible branches3710 #restore_branches3711 #delete_temp_branches3712MergeRequests::CreatePipelineService3713 #execute3714 creates a detached merge request pipeline3715 defaults to merge_request_event3716 with fork merge request3717 when actor has permission to create pipelines in target project3718 creates a pipeline in the target project3719 when ci_allow_to_create_merge_request_pipelines_in_target_project feature flag is disabled3720 creates a pipeline in the source project3721 when actor has permission to create pipelines in forked project3722 creates a pipeline in the source project3723 when actor does not have permission to create pipelines3724 returns nothing3725 when service is called multiple times3726 creates a pipeline once3727 when allow_duplicate option is true3728 creates pipelines multiple times3729 when .gitlab-ci.yml does not use workflow:rules3730 without only: [merge_requests] keyword3731 does not create a pipeline3732 with rules that specify creation on a tag3733 does not create a pipeline3734 when workflow:rules are specified3735 when rules request creation on merge request3736 creates a detached merge request pipeline3737 with rules do specify creation on a tag3738 does not create a pipeline3739ProjectImportState3740 associations3741 is expected to belong to project required:3742 validations3743 is expected to validate that :project cannot be empty/falsy3744 Project import job3745 imports a project3746 records job and correlation IDs3747 #relation_hard_failures3748 returns hard relation failures related to this import3749 limits returned collection to given maximum3750 #mark_as_failed3751 logs error when update column fails3752 updates last_error with error message3753 #human_status_name3754 when import_state exists3755 returns the humanized status name3756 import state transitions3757 state transition: [:started] => [:finished]3758 resets last_error3759 performs housekeeping when an import of a fresh project is completed3760 does not perform housekeeping when project repository does not exist3761 does not perform housekeeping when project does not have a valid import type3762 clearing `jid` after finish3763 without an JID3764 does nothing3765 with an JID3766 unsets the JID3767Gitlab::Redis::SharedState3768 .params3769 withstands mutation3770 when url contains unix socket reference3771 with old format3772 returns path key instead3773 with new format3774 returns path key instead3775 when url is host based3776 with old format3777 returns hash with host, port, db, and password3778 with new format3779 returns hash with host, port, db, and password3780 .url3781 withstands mutation3782 when yml file with env variable3783 reads redis url from env variable3784 ._raw_config3785 is frozen3786 returns false when the file does not exist3787 returns false when the filename can't be determined3788 .with3789 when running on single-threaded runtime3790 instantiates a connection pool with size 53791 when running on multi-threaded runtime3792 instantiates a connection pool with a size based on the concurrency of the worker3793 #sentinels3794 when sentinels are defined3795 returns an array of hashes with host and port keys3796 when sentinels are not defined3797 returns nil3798 #sentinels?3799 when sentinels are defined3800 returns true3801 when sentinels are not defined3802 returns false3803 #raw_config_hash3804 returns default redis url when no config file is present3805 returns old-style single url config in a hash3806 #fetch_config3807 returns false when no config file is present3808 returns false when config file is present but has invalid YAML3809Types::Ci::GroupType3810 is expected to eq "CiGroup"3811 exposes the expected fields3812Knapsack report was generated. Preview:3813{3814 "spec/models/project_spec.rb": 306.58653450012207,3815 "spec/models/cycle_analytics/staging_spec.rb": 87.27515149116516,3816 "spec/tasks/gitlab/seed/group_seed_rake_spec.rb": 76.87467408180237,3817 "spec/services/members/destroy_service_spec.rb": 45.33404731750488,3818 "spec/services/users/migrate_to_ghost_user_service_spec.rb": 43.512709617614746,3819 "spec/services/snippets/update_service_spec.rb": 32.68081498146057,3820 "spec/lib/gitlab/auth_spec.rb": 32.66517376899719,3821 "spec/lib/banzai/filter/repository_link_filter_spec.rb": 24.09976077079773,3822 "spec/lib/gitlab/import_export/after_export_strategies/base_after_export_strategy_spec.rb": 18.062293767929077,3823 "spec/lib/gitlab/ci/status/pipeline/factory_spec.rb": 17.36143922805786,3824 "spec/lib/banzai/filter/merge_request_reference_filter_spec.rb": 19.08904504776001,3825 "spec/helpers/markup_helper_spec.rb": 12.561400651931763,3826 "spec/services/groups/update_service_spec.rb": 11.576196432113647,3827 "spec/models/merge_request_diff_commit_spec.rb": 10.533846616744995,3828 "spec/lib/banzai/filter/commit_range_reference_filter_spec.rb": 11.923815250396729,3829 "spec/models/protected_branch_spec.rb": 9.201680660247803,3830 "spec/services/files/multi_service_spec.rb": 8.389434814453125,3831 "spec/models/fork_network_spec.rb": 9.664226531982422,3832 "spec/lib/banzai/filter/issuable_state_filter_spec.rb": 6.956021785736084,3833 "spec/tasks/gitlab/storage_rake_spec.rb": 7.5689697265625,3834 "spec/workers/stuck_ci_jobs_worker_spec.rb": 6.921522378921509,3835 "spec/services/issue_links/list_service_spec.rb": 6.988196611404419,3836 "spec/models/project_statistics_spec.rb": 7.333620071411133,3837 "spec/finders/members_finder_spec.rb": 5.215776205062866,3838 "spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb": 4.142902612686157,3839 "spec/services/ci/update_build_queue_service_spec.rb": 5.94172739982605,3840 "spec/lib/gitlab/bitbucket_server_import/importer_spec.rb": 6.067382335662842,3841 "spec/services/merge_requests/create_pipeline_service_spec.rb": 6.273518323898315,3842 "spec/models/project_import_state_spec.rb": 4.06452488899231,3843 "spec/lib/gitlab/redis/shared_state_spec.rb": 0.09091353416442871,3844 "spec/graphql/types/ci/group_type_spec.rb": 0.0054075717926025393845}3846Knapsack global time execution for tests: 14m 04s3847Finished in 18 minutes 27 seconds (files took 57.65 seconds to load)38482021 examples, 0 failures3849Tue Aug 25 15:51:59 UTC 20203851Not uploading cache rails-v2-3 due to policy3853Uploading artifacts...3854coverage/: found 5 matching files and directories 3855knapsack/: found 3 matching files and directories 3856rspec_flaky/: found 4 matching files and directories 3857rspec_profiling/: found 2 matching files and directories 3858WARNING: tmp/capybara/: no matching files 3859tmp/memory_test/: found 2 matching files and directories 3860log/*.log: found 13 matching files and directories 3861Uploading artifacts as "archive" to coordinator... ok id=702959646 responseStatus=201 Created token=3yGTbWkD3862Uploading artifacts...3863junit_rspec.xml: found 1 matching files and directories 3864Uploading artifacts as "junit" to coordinator... ok id=702959646 responseStatus=201 Created token=3yGTbWkD3865Job succeeded