rspec unit pg11 2/20
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 13.3.1 (738bbe5a)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-1598718261-8a2bef15...18$ eval "$CI_PRE_CLONE_SCRIPT"19Downloading archived master...20Connecting to storage.googleapis.com (172.217.193.128:443)21saving to '/tmp/gitlab.tar.gz'22gitlab.tar.gz 26% |******** | 269M 0:00:02 ETA23gitlab.tar.gz 63% |******************** | 642M 0:00:01 ETA24gitlab.tar.gz 99% |******************************* | 1000M 0:00:00 ETA25gitlab.tar.gz 100% |********************************| 1007M 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 4e12f87c as master...32Skipping Git submodules setup34Checking cache for rails-v2-3...35Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/rails-v2-3 36Successfully extracted cache38Downloading artifacts for compile-test-assets (710020301)...39Downloading artifacts from coordinator... ok id=710020301 responseStatus=200 OK token=dz2RyhAg40Downloading artifacts for retrieve-tests-metadata (710020310)...41Downloading artifacts from coordinator... ok id=710020310 responseStatus=200 OK token=LNgn8mU-42Downloading artifacts for setup-test-env (710020306)...43Downloading artifacts from coordinator... ok id=710020306 responseStatus=200 OK token=wSxhzuKE44WARNING: 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 1 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 8 seconds.62$ gem install knapsack --no-document63Successfully installed knapsack-1.18.0641 gem installed65==> 'gem install knapsack --no-document' succeeded in 1 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 21 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=20200829.163223' -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 33 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.rb114Knapsack report generator started!115RSpec'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)>')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.022928103 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-29 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: "39QL6kUz344J7DFGOFDRZQ==\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: "rZcKd03PQLdzH/oO4G0k1w==\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: "YUdw5QtnHoQK5sMMmwLj/Q==\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/project483>>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-09... "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 exist2008Projects::CreateService#execute2009 creates labels on Project creation if there are templates2010 calls the passed block2011 writes project full path to .git/config2012 user namespace2013 is expected to eq #<Namespace id: 1282, name: "John Doe1061", path: "user1161", owner_id: 1148, created_at: "2020-08-29...cendants_override_disabled_shared_runners: false, traversal_ids: [], delayed_project_removal: false>2014 after create actions2015 invalidate personal_projects_count caches2016 builds associated project settings2017 behaves like storing arguments in the application context2018 places the expected params in the application context2019 admin creates project with other user's namespace_id2020 sets the correct permissions2021 group namespace2022 is expected to include #<Project id:832 group122/gitlab>>2023 group sharing2024 updates authorization2025 membership overrides2026 membership is higher from group hierarchy2027 updates authorization2028 membership is higher from group share2029 share max access level is not limiting2030 updates authorization2031 share max access level is limiting2032 updates authorization2033 error handling2034 handles invalid options2035 sets invalid service as inactive2036 wiki_enabled creates repository directory2037 wiki_enabled true creates wiki repository directory2038 is expected to be truthy2039 wiki_enabled false does not create wiki repository directory2040 is expected to be falsey2041 import data2042 does not write repository config2043 stores import data and URL2044 builds_enabled global setting2045 global builds_enabled false does not enable CI by default2046 is expected to be falsey2047 global builds_enabled true does enable CI by default2048 is expected to be truthy2049 default visibility level2050 creates a private project2051 restricted visibility level2052 when visibility is project based2053 does not allow a restricted visibility level for non-admins2054 allows a restricted visibility level for admins2055 when visibility is overridden2056 does not allow a restricted visibility level for non-admins2057 allows a restricted visibility level for admins2058 when visibility is misspelled2059 does not restrict project creation2060 repository creation2061 synchronously creates the repository2062 when another repository already exists on disk2063 with legacy storage2064 does not allow to create a project when path matches existing repository on disk2065 does not allow to import project when path matches existing repository on disk2066 with hashed storage2067 does not allow to create a project when path matches existing repository on disk2068 when readme initialization is requested2069 behaves like creates README.md2070 is expected to equal 12071 is expected to eql "README.md"2072 is expected to include "# GitLab"2073 and a default_branch_name is specified2074 creates README.md within the specified branch rather than master2075 behaves like creates README.md2076 is expected to equal 12077 is expected to eql "README.md"2078 is expected to include "# GitLab"2079 create service for the project2080 when there is an active instance-level and an active template integration2081 creates a service from the instance-level integration2082 when there is an active service template2083 creates a service from the template2084 when there is an invalid integration2085 creates an inactive service2086 when skip_disk_validation is used2087 sets the project attribute2088 when project has access to shared service2089 Prometheus application is shared via group cluster2090 creates PrometheusService record2091 Prometheus application is shared via instance cluster2092 creates PrometheusService record2093 cleans invalid record and logs warning2094 shared Prometheus application is not available2095 does not persist PrometheusService record2096 with external authorization enabled2097 does not save the project with an error if the service denies access2098 saves the project when the user has access to the label2099 does not save the project when the user has no access to the default label and no label is provided2100 behaves like measurable service2101 when measurement is enabled2102 measure service execution with Gitlab::Utils::Measuring2103 when measurement is disabled2104 does not measure service execution2105 with specialized_project_authorization_workers2106 updates authorization for current_user2107 schedules authorization update for users with access to group2108 when feature is disabled2109 updates authorization for current_user2110 uses AuthorizedProjectsWorker2111Gitlab::Ci::Pipeline::Seed::Build2112 #attributes2113 is expected to be a kind of Hash2114 is expected to include :name, :project, and :ref2115 with job:when2116 is expected to include {:when => "on_failure"}2117 with job:when:delayed2118 is expected to include {:when => "delayed", :start_in => "3 hours"}2119 with job:rules:[when:]2120 is matched2121 is expected to include {:when => "always"}2122 is not matched2123 is expected to include {:when => "never"}2124 with job:rules:[when:delayed]2125 is matched2126 is expected to include {:when => "delayed", :options => {:start_in => "3 hours"}}2127 is not matched2128 is expected to include {:when => "never"}2129 with job:rules but no explicit when:2130 is matched2131 is expected to include {:when => "on_success"}2132 is not matched2133 is expected to include {:when => "never"}2134 with cache:key2135 is expected to include {:options => {:cache => {:key => "a-value"}}}2136 with cache:key:files2137 includes cache options2138 with cache:key:prefix2139 is expected to include {:options => {:cache => {:key => "something-default"}}}2140 with cache:key:files and prefix2141 includes cache options2142 with empty cache2143 is expected to include {:options => {}}2144 #bridge?2145 when job is a downstream bridge2146 is expected to be truthy2147 when trigger definition is empty2148 is expected to be falsey2149 when job is an upstream bridge2150 is expected to be truthy2151 when upstream definition is empty2152 is expected to be falsey2153 when job is not a bridge2154 is expected to be falsey2155 #to_resource2156 memoizes a resource object2157 can not be persisted without explicit assignment2158 when job is not a bridge2159 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )2160 is expected to be valid2161 when job deploys to production2162 behaves like deployment job2163 returns a job with deployment2164 behaves like ensures environment existence2165 has environment2166 when the environment name is invalid2167 tracks an exception2168 behaves like non-deployment job2169 returns a job without deployment2170 behaves like ensures environment inexistence2171 does not have environment2172 when job starts a review app2173 behaves like deployment job2174 returns a job with deployment2175 behaves like ensures environment existence2176 has environment2177 when job stops a review app2178 returns a job without deployment2179 behaves like non-deployment job2180 returns a job without deployment2181 behaves like ensures environment existence2182 has environment2183 when job belongs to a resource group2184 returns a job with resource group2185 when job is a bridge2186 is expected to be a kind of Ci::Bridge(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upd...eger, waiting_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer)2187 is expected to be valid2188 applying job inclusion policies2189 when no branch policy is specified2190 is expected to be included2191 when branch policy does not match2192 when using only2193 is expected not to be included2194 when using except2195 is expected to be included2196 with both only and except policies2197 is expected not to be included2198 when branch regexp policy does not match2199 when using only2200 is expected not to be included2201 when using except2202 is expected to be included2203 with both only and except policies2204 is expected not to be included2205 when branch policy matches2206 when using only2207 is expected to be included2208 when using except2209 is expected not to be included2210 when using both only and except policies2211 is expected not to be included2212 when keyword policy matches2213 when using only2214 is expected to be included2215 when using except2216 is expected not to be included2217 when using both only and except policies2218 is expected not to be included2219 when keyword policy does not match2220 when using only2221 is expected not to be included2222 when using except2223 is expected to be included2224 when using both only and except policies2225 is expected not to be included2226 with source-keyword policy2227 matches2228 keyword: "pushes", source: "push"2229 using an only policy2230 is expected to be included2231 using an except policy2232 is expected not to be included2233 using both only and except policies2234 is expected not to be included2235 keyword: "web", source: "web"2236 using an only policy2237 is expected to be included2238 using an except policy2239 is expected not to be included2240 using both only and except policies2241 is expected not to be included2242 keyword: "triggers", source: "trigger"2243 using an only policy2244 is expected to be included2245 using an except policy2246 is expected not to be included2247 using both only and except policies2248 is expected not to be included2249 keyword: "schedules", source: "schedule"2250 using an only policy2251 is expected to be included2252 using an except policy2253 is expected not to be included2254 using both only and except policies2255 is expected not to be included2256 keyword: "api", source: "api"2257 using an only policy2258 is expected to be included2259 using an except policy2260 is expected not to be included2261 using both only and except policies2262 is expected not to be included2263 keyword: "external", source: "external"2264 using an only policy2265 is expected to be included2266 using an except policy2267 is expected not to be included2268 using both only and except policies2269 is expected not to be included2270 non-matches2271 keyword: "pushes", source: "web"2272 using an only policy2273 is expected not to be included2274 using an except policy2275 is expected to be included2276 using both only and except policies2277 is expected not to be included2278 keyword: "pushes", source: "trigger"2279 using an only policy2280 is expected not to be included2281 using an except policy2282 is expected to be included2283 using both only and except policies2284 is expected not to be included2285 keyword: "pushes", source: "schedule"2286 using an only policy2287 is expected not to be included2288 using an except policy2289 is expected to be included2290 using both only and except policies2291 is expected not to be included2292 keyword: "pushes", source: "api"2293 using an only policy2294 is expected not to be included2295 using an except policy2296 is expected to be included2297 using both only and except policies2298 is expected not to be included2299 keyword: "pushes", source: "external"2300 using an only policy2301 is expected not to be included2302 using an except policy2303 is expected to be included2304 using both only and except policies2305 is expected not to be included2306 keyword: "web", source: "push"2307 using an only policy2308 is expected not to be included2309 using an except policy2310 is expected to be included2311 using both only and except policies2312 is expected not to be included2313 keyword: "web", source: "trigger"2314 using an only policy2315 is expected not to be included2316 using an except policy2317 is expected to be included2318 using both only and except policies2319 is expected not to be included2320 keyword: "web", source: "schedule"2321 using an only policy2322 is expected not to be included2323 using an except policy2324 is expected to be included2325 using both only and except policies2326 is expected not to be included2327 keyword: "web", source: "api"2328 using an only policy2329 is expected not to be included2330 using an except policy2331 is expected to be included2332 using both only and except policies2333 is expected not to be included2334 keyword: "web", source: "external"2335 using an only policy2336 is expected not to be included2337 using an except policy2338 is expected to be included2339 using both only and except policies2340 is expected not to be included2341 keyword: "triggers", source: "push"2342 using an only policy2343 is expected not to be included2344 using an except policy2345 is expected to be included2346 using both only and except policies2347 is expected not to be included2348 keyword: "triggers", source: "web"2349 using an only policy2350 is expected not to be included2351 using an except policy2352 is expected to be included2353 using both only and except policies2354 is expected not to be included2355 keyword: "triggers", source: "schedule"2356 using an only policy2357 is expected not to be included2358 using an except policy2359 is expected to be included2360 using both only and except policies2361 is expected not to be included2362 keyword: "triggers", source: "api"2363 using an only policy2364 is expected not to be included2365 using an except policy2366 is expected to be included2367 using both only and except policies2368 is expected not to be included2369 keyword: "triggers", source: "external"2370 using an only policy2371 is expected not to be included2372 using an except policy2373 is expected to be included2374 using both only and except policies2375 is expected not to be included2376 keyword: "schedules", source: "push"2377 using an only policy2378 is expected not to be included2379 using an except policy2380 is expected to be included2381 using both only and except policies2382 is expected not to be included2383 keyword: "schedules", source: "web"2384 using an only policy2385 is expected not to be included2386 using an except policy2387 is expected to be included2388 using both only and except policies2389 is expected not to be included2390 keyword: "schedules", source: "trigger"2391 using an only policy2392 is expected not to be included2393 using an except policy2394 is expected to be included2395 using both only and except policies2396 is expected not to be included2397 keyword: "schedules", source: "api"2398 using an only policy2399 is expected not to be included2400 using an except policy2401 is expected to be included2402 using both only and except policies2403 is expected not to be included2404 keyword: "schedules", source: "external"2405 using an only policy2406 is expected not to be included2407 using an except policy2408 is expected to be included2409 using both only and except policies2410 is expected not to be included2411 keyword: "api", source: "push"2412 using an only policy2413 is expected not to be included2414 using an except policy2415 is expected to be included2416 using both only and except policies2417 is expected not to be included2418 keyword: "api", source: "web"2419 using an only policy2420 is expected not to be included2421 using an except policy2422 is expected to be included2423 using both only and except policies2424 is expected not to be included2425 keyword: "api", source: "trigger"2426 using an only policy2427 is expected not to be included2428 using an except policy2429 is expected to be included2430 using both only and except policies2431 is expected not to be included2432 keyword: "api", source: "schedule"2433 using an only policy2434 is expected not to be included2435 using an except policy2436 is expected to be included2437 using both only and except policies2438 is expected not to be included2439 keyword: "api", source: "external"2440 using an only policy2441 is expected not to be included2442 using an except policy2443 is expected to be included2444 using both only and except policies2445 is expected not to be included2446 keyword: "external", source: "push"2447 using an only policy2448 is expected not to be included2449 using an except policy2450 is expected to be included2451 using both only and except policies2452 is expected not to be included2453 keyword: "external", source: "web"2454 using an only policy2455 is expected not to be included2456 using an except policy2457 is expected to be included2458 using both only and except policies2459 is expected not to be included2460 keyword: "external", source: "trigger"2461 using an only policy2462 is expected not to be included2463 using an except policy2464 is expected to be included2465 using both only and except policies2466 is expected not to be included2467 keyword: "external", source: "schedule"2468 using an only policy2469 is expected not to be included2470 using an except policy2471 is expected to be included2472 using both only and except policies2473 is expected not to be included2474 keyword: "external", source: "api"2475 using an only policy2476 is expected not to be included2477 using an except policy2478 is expected to be included2479 using both only and except policies2480 is expected not to be included2481 when repository path matches2482 when using only2483 is expected to be included2484 when using except2485 is expected not to be included2486 when using both only and except policies2487 is expected not to be included2488 when using both only and except policies2489 is expected not to be included2490 when repository path does not match2491 when using only2492 is expected not to be included2493 when using except2494 is expected to be included2495 when using both only and except policies2496 is expected not to be included2497 using rules:2498 with a matching if: rule2499 with an explicit `when: never`2500 rule_set: [{:if=>"$VARIABLE == null", :when=>"never"}]2501 is expected not to be included2502 correctly populates when:2503 rule_set: [{:if=>"$VARIABLE == null", :when=>"never"}, {:if=>"$VARIABLE == null", :when=>"always"}]2504 is expected not to be included2505 correctly populates when:2506 rule_set: [{:if=>"$VARIABLE != \"the wrong value\"", :when=>"never"}, {:if=>"$VARIABLE == null", :when=>"always"}]2507 is expected not to be included2508 correctly populates when:2509 with an explicit `when: always`2510 rule_set: [{:if=>"$VARIABLE == null", :when=>"always"}]2511 is expected to be included2512 correctly populates when:2513 rule_set: [{:if=>"$VARIABLE == null", :when=>"always"}, {:if=>"$VARIABLE == null", :when=>"never"}]2514 is expected to be included2515 correctly populates when:2516 rule_set: [{:if=>"$VARIABLE != \"the wrong value\"", :when=>"always"}, {:if=>"$VARIABLE == null", :when=>"never"}]2517 is expected to be included2518 correctly populates when:2519 with an explicit `when: on_failure`2520 rule_set: [{:if=>"$CI_JOB_NAME == \"rspec\" && $VAR == null", :when=>"on_failure"}]2521 is expected to be included2522 correctly populates when:2523 rule_set: [{:if=>"$VARIABLE != null", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$CI_JOB_NAME == \"rspec\"", :when=>"on_failure"}]2524 is expected to be included2525 correctly populates when:2526 rule_set: [{:if=>"$VARIABLE == \"the wrong value\"", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$CI_BUILD_NAME == \"rspec\"", :when=>"on_failure"}]2527 is expected to be included2528 correctly populates when:2529 with an explicit `when: delayed`2530 rule_set: [{:if=>"$VARIABLE == null", :when=>"delayed", :start_in=>"1 day"}]2531 is expected to be included2532 correctly populates when:2533 rule_set: [{:if=>"$VARIABLE == null", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$VARIABLE == null", :when=>"never"}]2534 is expected to be included2535 correctly populates when:2536 rule_set: [{:if=>"$VARIABLE != \"the wrong value\"", :when=>"delayed", :start_in=>"1 day"}, {:if=>"$VARIABLE == null", :when=>"never"}]2537 is expected to be included2538 correctly populates when:2539 without an explicit when: value2540 rule_set: [{:if=>"$VARIABLE == null"}]2541 is expected to be included2542 correctly populates when:2543 rule_set: [{:if=>"$VARIABLE == null"}, {:if=>"$VARIABLE == null"}]2544 is expected to be included2545 correctly populates when:2546 rule_set: [{:if=>"$VARIABLE != \"the wrong value\""}, {:if=>"$VARIABLE == null"}]2547 is expected to be included2548 correctly populates when:2549 with a matching changes: rule2550 with an explicit `when: never`2551 rule_set: [{:changes=>["*/**/*.rb"], :when=>"never"}, {:changes=>["*/**/*.rb"], :when=>"always"}]2552 is expected not to be included2553 correctly populates when:2554 rule_set: [{:changes=>["app/models/ci/pipeline.rb"], :when=>"never"}, {:changes=>["app/models/ci/pipeline.rb"], :when=>"always"}]2555 is expected not to be included2556 correctly populates when:2557 rule_set: [{:changes=>["spec/**/*.rb"], :when=>"never"}, {:changes=>["spec/**/*.rb"], :when=>"always"}]2558 is expected not to be included2559 correctly populates when:2560 rule_set: [{:changes=>["*.yml"], :when=>"never"}, {:changes=>["*.yml"], :when=>"always"}]2561 is expected not to be included2562 correctly populates when:2563 rule_set: [{:changes=>[".*.yml"], :when=>"never"}, {:changes=>[".*.yml"], :when=>"always"}]2564 is expected not to be included2565 correctly populates when:2566 rule_set: [{:changes=>["**/*"], :when=>"never"}, {:changes=>["**/*"], :when=>"always"}]2567 is expected not to be included2568 correctly populates when:2569 rule_set: [{:changes=>["*/**/*.rb", "*.yml"], :when=>"never"}, {:changes=>["*/**/*.rb", "*.yml"], :when=>"always"}]2570 is expected not to be included2571 correctly populates when:2572 rule_set: [{:changes=>[".*.yml", "**/*"], :when=>"never"}, {:changes=>[".*.yml", "**/*"], :when=>"always"}]2573 is expected not to be included2574 correctly populates when:2575 with an explicit `when: always`2576 rule_set: [{:changes=>["*/**/*.rb"], :when=>"always"}, {:changes=>["*/**/*.rb"], :when=>"never"}]2577 is expected to be included2578 correctly populates when:2579 rule_set: [{:changes=>["app/models/ci/pipeline.rb"], :when=>"always"}, {:changes=>["app/models/ci/pipeline.rb"], :when=>"never"}]2580 is expected to be included2581 correctly populates when:2582 rule_set: [{:changes=>["spec/**/*.rb"], :when=>"always"}, {:changes=>["spec/**/*.rb"], :when=>"never"}]2583 is expected to be included2584 correctly populates when:2585 rule_set: [{:changes=>["*.yml"], :when=>"always"}, {:changes=>["*.yml"], :when=>"never"}]2586 is expected to be included2587 correctly populates when:2588 rule_set: [{:changes=>[".*.yml"], :when=>"always"}, {:changes=>[".*.yml"], :when=>"never"}]2589 is expected to be included2590 correctly populates when:2591 rule_set: [{:changes=>["**/*"], :when=>"always"}, {:changes=>["**/*"], :when=>"never"}]2592 is expected to be included2593 correctly populates when:2594 rule_set: [{:changes=>["*/**/*.rb", "*.yml"], :when=>"always"}, {:changes=>["*/**/*.rb", "*.yml"], :when=>"never"}]2595 is expected to be included2596 correctly populates when:2597 rule_set: [{:changes=>[".*.yml", "**/*"], :when=>"always"}, {:changes=>[".*.yml", "**/*"], :when=>"never"}]2598 is expected to be included2599 correctly populates when:2600 without an explicit when: value2601 rule_set: [{:changes=>["*/**/*.rb"]}]2602 is expected to be included2603 correctly populates when:2604 rule_set: [{:changes=>["app/models/ci/pipeline.rb"]}]2605 is expected to be included2606 correctly populates when:2607 rule_set: [{:changes=>["spec/**/*.rb"]}]2608 is expected to be included2609 correctly populates when:2610 rule_set: [{:changes=>["*.yml"]}]2611 is expected to be included2612 correctly populates when:2613 rule_set: [{:changes=>[".*.yml"]}]2614 is expected to be included2615 correctly populates when:2616 rule_set: [{:changes=>["**/*"]}]2617 is expected to be included2618 correctly populates when:2619 rule_set: [{:changes=>["*/**/*.rb", "*.yml"]}]2620 is expected to be included2621 correctly populates when:2622 rule_set: [{:changes=>[".*.yml", "**/*"]}]2623 is expected to be included2624 correctly populates when:2625 with no matching rule2626 rule_set: [{:if=>"$VARIABLE != null", :when=>"never"}]2627 is expected not to be included2628 correctly populates when:2629 rule_set: [{:if=>"$VARIABLE != null", :when=>"never"}, {:if=>"$VARIABLE != null", :when=>"always"}]2630 is expected not to be included2631 correctly populates when:2632 rule_set: [{:if=>"$VARIABLE == \"the wrong value\"", :when=>"never"}, {:if=>"$VARIABLE != null", :when=>"always"}]2633 is expected not to be included2634 correctly populates when:2635 rule_set: [{:if=>"$VARIABLE != null", :when=>"always"}]2636 is expected not to be included2637 correctly populates when:2638 rule_set: [{:if=>"$VARIABLE != null", :when=>"always"}, {:if=>"$VARIABLE != null", :when=>"never"}]2639 is expected not to be included2640 correctly populates when:2641 rule_set: [{:if=>"$VARIABLE == \"the wrong value\"", :when=>"always"}, {:if=>"$VARIABLE != null", :when=>"never"}]2642 is expected not to be included2643 correctly populates when:2644 rule_set: [{:if=>"$VARIABLE != null"}]2645 is expected not to be included2646 correctly populates when:2647 rule_set: [{:if=>"$VARIABLE != null"}, {:if=>"$VARIABLE != null"}]2648 is expected not to be included2649 correctly populates when:2650 rule_set: [{:if=>"$VARIABLE == \"the wrong value\""}, {:if=>"$VARIABLE != null"}]2651 is expected not to be included2652 correctly populates when:2653 with no rules2654 is expected not to be included2655 correctly populates when:2656 applying needs: dependency2657 when build job is not present in prior stages2658 is included2659 returns an error2660 when build job is part of prior stages2661 is included2662 does not have errors2663 when using 101 needs2664 when ci_plan_needs_size_limit is disabled2665 returns an error2666 when ci_plan_needs_size_limit is enabled2667 returns an error2668 when ci_needs_size_limit is set to 1002669 returns an error2670 when ci_needs_size_limit is set to 02671 returns an error2672Members::DestroyService2673 with a member with access2674 when current user cannot destroy the given member2675 with a project member2676 behaves like a service raising Gitlab::Access::AccessDeniedError2677 raises Gitlab::Access::AccessDeniedError2678 behaves like a service destroying a member with access2679 invalidates cached counts for assigned issues and merge requests2680 behaves like a service destroying a member2681 destroys the member2682 destroys member notification_settings2683 with a group member2684 behaves like a service raising Gitlab::Access::AccessDeniedError2685 raises Gitlab::Access::AccessDeniedError2686 behaves like a service destroying a member with access2687 invalidates cached counts for assigned issues and merge requests2688 behaves like a service destroying a member2689 destroys the member2690 destroys member notification_settings2691 when current user can destroy the given member2692 with a project member2693 behaves like a service destroying a member with access2694 invalidates cached counts for assigned issues and merge requests2695 behaves like a service destroying a member2696 destroys the member2697 destroys member notification_settings2698 unassign issuables2699 behaves like a service destroying a member with access2700 invalidates cached counts for assigned issues and merge requests2701 behaves like a service destroying a member2702 destroys the member2703 destroys member notification_settings2704 with a project bot member2705 when the destroy_bot flag is true2706 behaves like a service destroying a member with access2707 invalidates cached counts for assigned issues and merge requests2708 behaves like a service destroying a member2709 destroys the member2710 destroys member notification_settings2711 when the destroy_bot flag is not specified2712 behaves like a service raising Gitlab::Access::AccessDeniedError2713 raises Gitlab::Access::AccessDeniedError2714 with a group member2715 behaves like a service destroying a member with access2716 invalidates cached counts for assigned issues and merge requests2717 behaves like a service destroying a member2718 destroys the member2719 destroys member notification_settings2720 unassign issuables2721 behaves like a service destroying a member with access2722 invalidates cached counts for assigned issues and merge requests2723 behaves like a service destroying a member2724 destroys the member2725 destroys member notification_settings2726 with an access requester2727 when current user cannot destroy the given access requester2728 behaves like a service raising Gitlab::Access::AccessDeniedError2729 raises Gitlab::Access::AccessDeniedError2730 behaves like a service destroying a member2731 destroys the member2732 destroys member notification_settings2733 behaves like a service raising Gitlab::Access::AccessDeniedError2734 raises Gitlab::Access::AccessDeniedError2735 behaves like a service destroying a member2736 destroys the member2737 destroys member notification_settings2738 when current user can destroy the given access requester2739 behaves like a service destroying an access requester2740 calls Member#after_decline_request2741 behaves like a service destroying a member2742 destroys the member2743 destroys member notification_settings2744 when current user is the member2745 does not call Member#after_decline_request2746 behaves like a service destroying an access requester2747 calls Member#after_decline_request2748 behaves like a service destroying a member2749 destroys the member2750 destroys member notification_settings2751 when current user is the member2752 does not call Member#after_decline_request2753 with an invited user2754 when current user cannot destroy the given invited user2755 behaves like a service raising Gitlab::Access::AccessDeniedError2756 raises Gitlab::Access::AccessDeniedError2757 behaves like a service destroying a member2758 destroys the member2759 destroys member notification_settings2760 behaves like a service raising Gitlab::Access::AccessDeniedError2761 raises Gitlab::Access::AccessDeniedError2762 behaves like a service destroying a member2763 destroys the member2764 destroys member notification_settings2765 when current user can destroy the given invited user2766 behaves like a service destroying a member2767 destroys the member2768 destroys member notification_settings2769 behaves like a service destroying a member2770 destroys the member2771 destroys member notification_settings2772 subresources2773 removes the project membership2774 removes the group membership2775 removes the subgroup membership2776 removes the subsubgroup membership2777 removes the subsubproject membership2778 does not remove the user from the control project2779Todos::Destroy::EntityLeaveService2780 #execute2781 when a user leaves a project2782 when project is private2783 removes project todos for the provided user2784 when the user is member of the project2785 does not remove any todos2786 when the user is a project guest2787 removes only confidential issues todos2788 when the user is member of a parent group2789 does not remove any todos2790 when the user is guest of a parent group2791 removes only confidential issues todos2792 when project is not private2793 enqueues the PrivateFeaturesWorker2794 confidential issues2795 when a user is not an author of confidential issue2796 removes only confidential issues todos2797 when a user is an author of confidential issue2798 does not remove any todos2799 when a user is an assignee of confidential issue2800 does not remove any todos2801 when a user is a project guest2802 removes only confidential issues todos2803 when a user is a project guest but group developer2804 does not remove any todos2805 feature visibility check2806 when issues are visible only to project members2807 removes only users issue todos2808 when a user leaves a group2809 when group is private2810 removes group and subproject todos for the user2811 when the user is member of the group2812 does not remove any todos2813 when the user is member of the group project but not the group2814 does not remove any todos2815 with nested groups2816 when the user is not a member of any groups/projects2817 removes todos for the user including subprojects todos2818 when the user is member of a parent group2819 does not remove any todos2820 when the user is member of a subgroup2821 does not remove group and subproject todos2822 when the user is member of a child project2823 does not remove subproject and group todos2824 when group is not private2825 enqueues the PrivateFeaturesWorker2826 when user is not member2827 removes only confidential issues todos2828 when user is a project guest2829 removes only confidential issues todos2830 when user is a project guest & group developer2831 does not remove any todos2832 when entity type is not valid2833 raises an exception2834 when entity was not found2835 does not remove any todos2836Gitlab::CycleAnalytics::StageSummary2837 #new_issues2838 doesn't find issues from other projects2839 when from date is given2840 finds the number of issues created after the 'from date'2841 returns the localized title2842 when `to` parameter is given2843 doesn't find any record2844 finds records created between `from` and `to` range2845 #commits2846 doesn't find commits from other projects2847 finds a large (> 100) number of commits if present2848 when from date is given2849 finds the number of commits created after the 'from date'2850 returns the localized title2851 when `to` parameter is given2852 doesn't find any record2853 finds records created between `from` and `to` range2854 when a guest user is signed in2855 does not include commit stats2856 #deploys2857 doesn't find commits from other projects2858 when from date is given2859 finds the number of deploys made created after the 'from date'2860 returns the localized title2861 when `to` parameter is given2862 doesn't find any record2863 finds records created between `from` and `to` range2864 #deployment_frequency2865 includes the unit: `per day`2866 returns 0.0 when there were deploys but the frequency was too low2867 returns `-` when there were no deploys2868 when `to` is nil2869 includes range until now2870 when `to` is given2871 finds records created between `from` and `to` range2872 when `from` and `to` are within a day2873 returns the number of deployments made on that day2874Ci::BuildPolicy2875 #rules2876 when user does not have access to the project2877 when public builds are enabled2878 does not include ability to read build2879 when public builds are disabled2880 does not include ability to read build2881 when anonymous user has access to the project2882 when public builds are enabled2883 includes ability to read build2884 when public builds are disabled2885 does not include ability to read build2886 when team member has access to the project2887 team member is a guest2888 when public builds are enabled2889 includes ability to read build2890 when public builds are disabled2891 does not include ability to read build2892 team member is a reporter2893 when public builds are enabled2894 includes ability to read build2895 when public builds are disabled2896 does not include ability to read build2897 when maintainer is allowed to push to pipeline branch2898 enables update_build if user is maintainer2899 rules for protected ref2900 when no one can push or merge to the branch2901 does not include ability to update build2902 when developers can push to the branch2903 includes ability to update build2904 when no one can create the tag2905 does not include ability to update build2906 when no one can create the tag but it is not a tag2907 includes ability to update build2908 rules for erase build2909 when a developer erases a build2910 when developers can push to the branch2911 when the build was created by the developer2912 when the build was created for a protected ref2913 is expected to be disallowed :erase_build2914 when the build was created for an unprotected ref2915 is expected to be allowed :erase_build2916 when the build was created by the other2917 is expected to be disallowed :erase_build2918 when no one can push or merge to the branch2919 is expected to be disallowed :erase_build2920 when a maintainer erases a build2921 when maintainers can push to the branch2922 when the build was created by the maintainer2923 is expected to be allowed :erase_build2924 when the build was created by the other2925 is expected to be allowed :erase_build2926 when no one can push or merge to the branch2927 is expected to be disallowed :erase_build2928 when an admin erases a build2929 when the build was created for a protected branch2930 is expected to be allowed :erase_build2931 when the build was created for a protected tag2932 is expected to be allowed :erase_build2933 when the build was created for an unprotected ref2934 is expected to be allowed :erase_build2935 manage a web ide terminal2936 when create_web_ide_terminal access enabled2937 with admin2938 when admin mode enabled2939 is expected to be allowed :create_build_service_proxy2940 when admin mode disabled2941 is expected not to be allowed :create_build_service_proxy2942 when build is not from a webide pipeline2943 is expected not to be allowed :create_build_service_proxy2944 when build has no runner terminal2945 when admin mode enabled2946 is expected to be allowed :update_web_ide_terminal2947 is expected not to be allowed :create_build_service_proxy2948 when admin mode disabled2949 is expected not to be allowed :update_web_ide_terminal2950 is expected not to be allowed :create_build_service_proxy2951 feature flag "build_service_proxy" is disabled2952 is expected not to be allowed :create_build_service_proxy2953 with owner2954 behaves like allowed build owner access2955 is expected not to be allowed :create_build_service_proxy2956 when user is the owner of the job2957 is expected to be allowed :create_build_service_proxy2958 with maintainer2959 behaves like allowed build owner access2960 is expected not to be allowed :create_build_service_proxy2961 when user is the owner of the job2962 is expected to be allowed :create_build_service_proxy2963 with developer2964 behaves like forbidden access2965 is expected not to be allowed :create_build_service_proxy2966 when user is the owner of the job2967 is expected not to be allowed :create_build_service_proxy2968 with reporter2969 behaves like forbidden access2970 is expected not to be allowed :create_build_service_proxy2971 when user is the owner of the job2972 is expected not to be allowed :create_build_service_proxy2973 with guest2974 behaves like forbidden access2975 is expected not to be allowed :create_build_service_proxy2976 when user is the owner of the job2977 is expected not to be allowed :create_build_service_proxy2978 with non member2979 behaves like forbidden access2980 is expected not to be allowed :create_build_service_proxy2981 when user is the owner of the job2982 is expected not to be allowed :create_build_service_proxy2983Banzai::Filter::RepositoryLinkFilter2984 does not trigger a gitaly n+12985 does not raise an exception on invalid URIs2986 does not raise an exception on URIs containing invalid utf-8 byte sequences2987 does not raise an exception on URIs containing invalid utf-8 byte sequences in context requested path2988 does not raise an exception with a garbled path2989 does not explode with an escaped null byte2990 ignores ref if commit is passed2991 with a wiki2992 does not modify any relative URL in anchor2993 does not modify any relative URL in image2994 does not modify any relative URL in video2995 does not modify any relative URL in audio2996 without a repository2997 does not modify any relative URL in anchor2998 does not modify any relative URL in image2999 does not modify any relative URL in video3000 does not modify any relative URL in audio3001 with an empty repository3002 does not modify any relative URL in anchor3003 does not modify any relative URL in image3004 does not modify any relative URL in video3005 does not modify any relative URL in audio3006 without project repository access3007 does not modify any relative URL in anchor3008 does not modify any relative URL in image3009 does not modify any relative URL in video3010 does not modify any relative URL in audio3011 with a valid commit3012 handles Gitaly unavailable exceptions gracefully3013 handles Gitaly timeout exceptions gracefully3014 rebuilds absolute URL for a file in the repo3015 does not modify relative URLs in system notes3016 ignores absolute URLs with two leading slashes3017 rebuilds relative URL for a file in the repo3018 rebuilds relative URL for a missing file in the repo3019 rebuilds relative URL for a file in the repo with leading ./3020 rebuilds relative URL for a file in the repo up one directory3021 rebuilds relative URL for a file in the repo up multiple directories3022 rebuilds relative URL for a file in the repository root3023 rebuilds relative URL for a file in the repo with an anchor3024 rebuilds relative URL for a directory in the repo3025 rebuilds relative URL for an image in the repo3026 rebuilds relative URL for link to an image in the repo3027 rebuilds relative URL for a video in the repo3028 rebuilds relative URL for audio in the repo3029 does not modify relative URL with an anchor only3030 does not modify absolute URL3031 does not call gitaly3032 supports Unicode filenames3033 when requested path is a file in the repo3034 rebuilds URL relative to the containing directory3035 when requested path is a directory in the repo3036 rebuilds URL relative to the directory3037 when ref name contains percent sign3038 correctly escapes the ref3039 when ref name contains special chars3040 correctly escapes the ref3041 when requested path is a directory with space in the repo3042 does not escape the space twice3043 with a valid ref3044 handles Gitaly unavailable exceptions gracefully3045 handles Gitaly timeout exceptions gracefully3046 rebuilds absolute URL for a file in the repo3047 does not modify relative URLs in system notes3048 ignores absolute URLs with two leading slashes3049 rebuilds relative URL for a file in the repo3050 rebuilds relative URL for a missing file in the repo3051 rebuilds relative URL for a file in the repo with leading ./3052 rebuilds relative URL for a file in the repo up one directory3053 rebuilds relative URL for a file in the repo up multiple directories3054 rebuilds relative URL for a file in the repository root3055 rebuilds relative URL for a file in the repo with an anchor3056 rebuilds relative URL for a directory in the repo3057 rebuilds relative URL for an image in the repo3058 rebuilds relative URL for link to an image in the repo3059 rebuilds relative URL for a video in the repo3060 rebuilds relative URL for audio in the repo3061 does not modify relative URL with an anchor only3062 does not modify absolute URL3063 does not call gitaly3064 supports Unicode filenames3065 when requested path is a file in the repo3066 rebuilds URL relative to the containing directory3067 when requested path is a directory in the repo3068 rebuilds URL relative to the directory3069 when ref name contains percent sign3070 correctly escapes the ref3071 when ref name contains special chars3072 correctly escapes the ref3073 when requested path is a directory with space in the repo3074 does not escape the space twice3075Releases::CreateService3076 #execute3077 behaves like a successful release creation3078 creates a new release3079 when the tag does not exist3080 raises an error3081 when ref is provided3082 creates a tag if the tag does not exist3083 behaves like a successful release creation3084 creates a new release3085 there already exists a release on a tag3086 raises an error and does not update the release3087 when a passed-in milestone does not exist for this project3088 raises an error saying the milestone is inexistent3089 #find_or_build_release3090 does not save the built release3091 when existing milestone is passed in3092 creates a release and ties this milestone to it3093 when another release was previously created with that same milestone linked3094 also creates another release tied to that same milestone3095 when multiple existing milestone titles are passed in3096 creates a release and ties it to these milestones3097 when multiple miletone titles are passed in but one of them does not exist3098 raises an error3099 does not create any release3100 when no milestone is passed in3101 creates a release without a milestone tied to it3102 does not create any new MilestoneRelease object3103 when an empty value is passed as a milestone3104 creates a release without a milestone tied to it3105 Evidence collection3106 historical release3107 does not execute CreateEvidenceWorker3108 does not create an Evidence object3109 is a historical release3110 is not an upcoming release3111 immediate release3112 sets `released_at` to the current dttm3113 queues CreateEvidenceWorker3114 creates Evidence3115 is not a historical release3116 is not an upcoming release3117 creates evidence without pipeline if it does not exist3118 uses the last pipeline for evidence3119 pipeline is still being used for evidence if new pipeline is being created for tag3120 uses the last pipeline for evidence when tag is already created3121 when old evidence_pipeline is passed to service3122 uses the old pipeline for evidence3123 upcoming release3124 queues CreateEvidenceWorker3125 queues CreateEvidenceWorker at the released_at timestamp3126 creates Evidence3127 is not a historical release3128 is an upcoming release3129 creates evidence without pipeline if it does not exist3130 uses the last pipeline for evidence3131 pipeline is still being used for evidence if new pipeline is being created for tag3132 uses the last pipeline for evidence when tag is already created3133 when old evidence_pipeline is passed to service3134 uses the old pipeline for evidence3135IssuesFinder3136 #execute3137 scope: all3138 returns all issues3139 finds issues user can access due to group3140 assignee filtering3141 behaves like assignee ID filter3142 returns issuables assigned to that user3143 behaves like assignee NOT ID filter3144 returns issuables not assigned to that user3145 filter by username3146 behaves like assignee username filter3147 returns issuables assigned to those users3148 behaves like assignee NOT username filter3149 returns issuables not assigned to those users3150 behaves like no assignee filter3151 returns issuables not assigned to any assignee3152 returns issuables not assigned to any assignee3153 behaves like any assignee filter3155 returns issuables assigned to any assignee3156 returns issuables assigned to any assignee3157 filtering by projects3158 when projects are passed in a list of ids3159 returns the issue belonging to the projects3160 when projects are passed in a subquery3161 returns the issue belonging to the projects3162 filtering by group_id3163 when include_subgroup param not set3164 returns all group issues3165 when projects outside the group are passed3166 returns no issues3167 when projects of the group are passed3168 returns the issue within the group and projects3169 when projects of the group are passed as a subquery3170 returns the issue within the group and projects3171 when include_subgroup param is true3172 returns all group and subgroup issues3173 when mixed projects are passed3174 returns the issue within the group and projects3175 filtering by author ID3176 returns issues created by that user3177 filtering by not author ID3178 returns issues not created by that user3179 filtering by nonexistent author ID and issue term using CTE for search3180 returns no results3181 filtering by milestone3182 returns issues assigned to that milestone3183 filtering by not milestone3184 returns issues not assigned to that milestone3185 filtering by group milestone3186 returns issues assigned to that group milestone3187 using NOT3188 returns issues not assigned to that group milestone3189 filtering by no milestone3190 returns issues with no milestone3191 returns issues with no milestone (deprecated)3192 filtering by any milestone3193 returns issues with any assigned milestone3194 returns issues with any assigned milestone (deprecated)3195 filtering by upcoming milestone3196 returns issues in the upcoming milestone for each project or group3197 using NOT3198 returns issues not in upcoming milestones for each project or group, but must have a due date3199 filtering by started milestone3200 returns issues in the started milestones for each project3201 using NOT3202 returns issues not in the started milestones for each project3203 filtering by label3204 returns issues with that label3205 using NOT3206 returns issues that do not have that label3207 shadowing the same outside param3208 does not take precedence over labels outside NOT3209 further filtering outside params3210 further filters on the returned resultset3211 filtering by multiple labels3212 returns the unique issues with all those labels3213 using NOT3214 returns issues that do not have any of the labels provided3215 filtering by a label that includes any or none in the title3216 returns the unique issues with all those labels3217 using NOT3218 returns issues that do not have ANY ONE of the labels provided3219 filtering by no label3220 returns issues with no labels3221 filtering by any label3222 returns issues that have one or more label3223 filtering by issue term3224 returns issues with title and description match for search term3225 filtering by issue term in title3226 returns issues with title match for search term3227 filtering by issues iids3228 returns issues with iids match3229 using NOT3230 returns issues with no iids match3231 filtering by state3232 with opened3233 returns only opened issues3234 with closed3235 returns only closed issues3236 with all3237 returns all issues3238 with invalid state3239 returns all issues3240 filtering by created_at3241 through created_after3242 returns issues created on or after the given date3243 through created_before3244 returns issues created on or before the given date3245 through created_after and created_before3246 returns issues created between the given dates3247 filtering by updated_at3248 through updated_after3249 returns issues updated on or after the given date3250 through updated_before3251 returns issues updated on or before the given date3252 through updated_after and updated_before3253 returns issues updated between the given dates3254 filtering by closed_at3255 through closed_after3256 returns issues closed on or after the given date3257 through closed_before3258 returns issues closed on or before the given date3259 through closed_after and closed_before3260 returns issues closed between the given dates3261 filtering by reaction name3262 user searches by no reaction3263 returns issues that the user did not react to3264 user searches by any reaction3265 returns issues that the user reacted to3266 user searches by "thumbsup" reaction3267 returns issues that the user thumbsup to3268 using NOT3269 returns issues that the user did not thumbsup to3270 user2 searches by "thumbsup" reaction3271 returns issues that the user2 thumbsup to3272 using NOT3273 returns issues that the user2 thumbsup to3274 user searches by "thumbsdown" reaction3275 returns issues that the user thumbsdown to3276 using NOT3277 returns issues that the user thumbsdown to3278 filtering by confidential3279 no filtering3280 returns all issues3281 user filters confidential issues3282 returns only confdential issues3283 user filters only public issues3284 returns only confdential issues3285 filtering by issue type3286 no type given3287 returns all issues3288 incident type3289 returns incident issues3290 issue type3291 returns all issues with type issue3292 multiple params3293 returns all issues3294 without array3295 returns incident issues3296 invalid params3297 returns no issues3298 when the user is unauthorized3299 returns no results3300 when the user can see some, but not all, issues3301 returns only issues they can see3302 personal scope3303 returns issue assigned to the user3304 filtering by project3305 returns issues assigned to the user in that project3306 when project restricts issues3307 doesn't return team-only issues to non team members3308 doesn't return issues if feature disabled3309 external authorization3310 behaves like a finder with external authorization service3311 finds the subject3312 with an external authorization service3313 does not include the subject when no project was given3314 includes the subject when a project id was given3315 #row_count3316 returns the number of rows for the default state3317 returns the number of rows for a given state3318 #with_confidentiality_access_check3319 when no project filter is given3320 for an anonymous user3321 returns only public issues3322 for a user without project membership3323 returns only public issues3324 for a guest user3325 returns only public issues3326 for a project member with access to view confidential issues3327 returns all issues3328 for an admin3329 returns all issues3330 when searching within a specific project3331 for an anonymous user3332 returns only public issues3333 does not filter by confidentiality3334 for a user without project membership3335 returns only public issues3336 filters by confidentiality3337 for a guest user3338 returns only public issues3339 filters by confidentiality3340 for a project member with access to view confidential issues3341 returns all issues3342 does not filter by confidentiality3343 for an admin3344 returns all issues3345 does not filter by confidentiality3346 #use_cte_for_search?3347 when there is no search param3348 returns false3349 when the force_cte param is falsey3350 returns false3351 when the attempt_group_search_optimizations flag is disabled3352 returns false3353 when attempt_group_search_optimizations is unset and attempt_project_search_optimizations is set3354 and the corresponding feature flag is disabled3355 returns false3356 and the corresponding feature flag is enabled3357 returns true3358 when all conditions are met3359 returns true3360Projects::TransferService3361 with npm packages3362 with a root namespace change3363 does not allow the transfer3364 without a root namespace change3365 does allow the transfer3366 namespace -> namespace3367 updates the namespace3368 when transfer succeeds3369 sends notifications3370 invalidates the user's personal_project_count cache3371 executes system hooks3372 moves the disk path3373 updates project full path in .git/config3374 updates storage location3375 when transfer fails3376 rolls back repo location3377 rolls back project full path in .git/config3378 doesn't send move notifications3379 doesn't run system hooks3380 does not update storage location3381 namespace -> no namespace3382 does not allow the project transfer3383 disallow transferring of project with tags3384 does not allow the project transfer3385 namespace -> not allowed namespace3386 does not allow the project transfer3387 namespace which contains orphan repository with same projects path name3388 does not allow the project transfer3389 target namespace containing the same project name3390 does not allow the project transfer3391 target namespace containing the same project path3392 does not allow the project transfer3393 target namespace allows developers to create projects3394 the user is a member of the target namespace with developer permissions3395 does not allow project transfer to the target namespace3396 visibility level3397 when namespace visibility level < project visibility level3398 is expected to eq 103399 when namespace visibility level > project visibility level3400 is expected to eq 03401 missing group labels applied to issues or merge requests3402 delegates transfer to Labels::TransferService3403 missing group milestones applied to issues or merge requests3404 delegates transfer to Milestones::TransferService3405 when hashed storage in use3406 does not move the disk path3407 does not move the disk path when the transfer fails3408 refreshing project authorizations3409 refreshes the permissions of the old and new namespace3410 only schedules a single job for every user3411 transferring a design repository3412 does not create a design repository3413 when the project has a design repository3414 with legacy storage3415 moves the repository3416 does not move the repository when an error occurs3417 with hashed storage3418 does not move the repository3419 does not move the repository when an error occurs3420 moving pages3421 schedules a job when pages are deployed3422 does not schedule a job when no pages are deployed3423 when async_pages_move_project_transfer is disabled3424 moves pages inline3425LabelsFinder3426 #execute3427 with no filter3428 returns labels from projects the user have access3429 returns labels available if nil title is supplied3430 behaves like filtering by group3431 returns labels available for any non-archived project within the group3432 when only_group_labels is true3433 returns only group labels3434 when group has no projects3435 when only group labels is false3436 returns group labels3437 when including labels from group ancestors3438 returns labels from group and its ancestors3439 ignores labels from groups which user can not read3440 when including labels from group descendants3441 returns labels from group and its descendants3442 ignores labels from groups which user can not read3443 when including labels from group projects with limited visibility3444 when merge requests and issues are not visible for non members3445 when user is not a group member3446 behaves like with limited visibility3447 returns only authorized projects labels3448 when user is a group member3449 behaves like with full visibility3450 returns all projects labels3451 when merge requests are not visible for non members3452 when user is not a group member3453 behaves like with full visibility3454 returns all projects labels3455 when user is a group member3456 behaves like with full visibility3457 returns all projects labels3458 when issues are not visible for non members3459 when user is not a group member3460 behaves like with full visibility3461 returns all projects labels3462 when user is a group member3463 behaves like with full visibility3464 returns all projects labels3465 behaves like filtering by group3466 returns labels available for any non-archived project within the group3467 when only_group_labels is true3468 returns only group labels3469 when group has no projects3470 when only group labels is false3471 returns group labels3472 when including labels from group ancestors3473 returns labels from group and its ancestors3474 ignores labels from groups which user can not read3475 when including labels from group descendants3476 returns labels from group and its descendants3477 ignores labels from groups which user can not read3478 when including labels from group projects with limited visibility3479 when merge requests and issues are not visible for non members3480 when user is not a group member3481 behaves like with limited visibility3482 returns only authorized projects labels3483 when user is a group member3484 behaves like with full visibility3485 returns all projects labels3486 when merge requests are not visible for non members3487 when user is not a group member3488 behaves like with full visibility3489 returns all projects labels3490 when user is a group member3491 behaves like with full visibility3492 returns all projects labels3493 when issues are not visible for non members3494 when user is not a group member3495 behaves like with full visibility3496 returns all projects labels3497 when user is a group member3498 behaves like with full visibility3499 returns all projects labels3500 behaves like filtering by group3501 returns labels available for any non-archived project within the group3502 when only_group_labels is true3503 returns only group labels3504 when group has no projects3505 when only group labels is false3506 returns group labels3507 when including labels from group ancestors3508 returns labels from group and its ancestors3509 ignores labels from groups which user can not read3510 when including labels from group descendants3511 returns labels from group and its descendants3512 ignores labels from groups which user can not read3513 when including labels from group projects with limited visibility3514 when merge requests and issues are not visible for non members3515 when user is not a group member3516 behaves like with limited visibility3517 returns only authorized projects labels3518 when user is a group member3519 behaves like with full visibility3520 returns all projects labels3521 when merge requests are not visible for non members3522 when user is not a group member3523 behaves like with full visibility3524 returns all projects labels3525 when user is a group member3526 behaves like with full visibility3527 returns all projects labels3528 when issues are not visible for non members3529 when user is not a group member3530 behaves like with full visibility3531 returns all projects labels3532 when user is a group member3533 behaves like with full visibility3534 returns all projects labels3535 filtering by project_id3536 returns labels available for the project3537 when include_ancestor_groups is true3538 returns all ancestor labels3539 as an administrator3540 does not return labels from another project3541 filtering by title3542 returns label with that title3543 returns label with title alias3544 returns no labels if empty title is supplied3545 returns no labels if blank title is supplied3546 returns no labels if empty name is supplied3547 search by title and description3548 returns labels with a partially matching title3549 returns labels with a partially matching description3550 returns labels matching a single character3551 filter by subscription3552 returns labels user subscribed to3553 external authorization3554 behaves like a finder with external authorization service3555 finds the subject3556 with an external authorization service3557 does not include the subject when no project was given3558 includes the subject when a project id was given3559Clusters::Applications::Cilium3560 is expected to belong to cluster required:3561 is expected to validate that :cluster cannot be empty/falsy3562 #can_uninstall?3563 calls allowed_to_uninstall?3564 #name3565 is .application_name3566 is recorded in Clusters::Cluster::APPLICATIONS3567 .association_name3568 is expected to eq :application_cilium3569 #status_states3570 returns a hash of state values3571 returns an integer for installed state value3572 .available3573 is expected to contain exactly #<Clusters::Applications::Cilium id: 1, cluster_id: 29, created_at: "2020-08-29 16:42:28", updated_at: "2020-08-29 16:42:28", status: 3, status_reason: nil> and #<Clusters::Applications::Cilium id: 2, cluster_id: 35, created_at: "2020-08-29 16:42:29", updated_at: "2020-08-29 16:42:29", status: 5, status_reason: nil>3574 status state machine3575 #make_installing3576 is installing3577 #make_installed3578 is installed3579 does not update the helm version3580 the cluster has no helm installed3581 runs without errors3582 application is updating3583 is updated3584 does not update the helm version3585 the cluster has no helm installed3586 runs without errors3587 #make_errored3588 is errored3589 application is updating3590 is update_errored3591 application is uninstalling3592 is uninstall_errored3593 #make_externally_installed3594 is installed3595 helm record does not exist3596 does not create a helm record3597 helm record exists3598 does not update helm version3599 application is updated3600 is installed3601 application is errored3602 is installed3603 clears #status_reason3604 #make_externally_uninstalled3605 is uninstalled3606 application is updated3607 is uninstalled3608 application is errored3609 is uninstalled3610 clears #status_reason3611 #make_scheduled3612 is scheduled3613 when installed3614 is scheduled3615 when was errored3616 clears #status_reason3617 when was updated_errored3618 clears #status_reason3619 when was uninstall_errored3620 clears #status_reason3621 #make_uninstalling3622 is uninstalling3623 #available?3624 trait: :not_installable, available: false3625 is expected not to be available3626 trait: :installable, available: false3627 is expected not to be available3628 trait: :scheduled, available: false3629 is expected not to be available3630 trait: :installing, available: false3631 is expected not to be available3632 trait: :installed, available: true3633 is expected to be available3634 trait: :updating, available: false3635 is expected not to be available3636 trait: :updated, available: true3637 is expected to be available3638 trait: :errored, available: false3639 is expected not to be available3640 trait: :update_errored, available: false3641 is expected not to be available3642 trait: :uninstalling, available: false3643 is expected not to be available3644 trait: :uninstall_errored, available: false3645 is expected not to be available3646 trait: :uninstalled, available: false3647 is expected not to be available3648 trait: :timed_out, available: false3649 is expected not to be available3650 #status3651 sets a default status3652 #allowed_to_uninstall?3653 is expected to equal false3654Milestones::TransferService3655 #execute3656 when old_group is present3657 without existing milestone at the new group level3658 recreates the missing group milestones at project level3659 applies new project milestone to issues with group milestone3660 deletes milestone issue counters cache for both milestones3661 does not apply new project milestone to issues with project milestone3662 applies new project milestone to merge_requests with group milestone3663 does not apply new project milestone to issuables with project milestone3664 does not recreate missing group milestones that are not applied to issues or merge requests3665 when milestone is from an ancestor group3666 recreates the missing group milestones at project level3667 when find_or_create_milestone returns nil3668 removes issues group milestone3669 removes merge requests group milestone3670 with existing milestone at the new group level3671 does not create a new milestone3672 applies existing milestone to issues with group milestone3673 applies existing milestone to merge_requests with group milestone3674 when old_group is not present3675 returns nil3676layouts/nav/sidebar/_project3677 behaves like has nav sidebar3678 has collapsed nav sidebar on mobile3679 issue boards3680 has board tab3681 packages tab3682 highlights sidebar item and flyout3683 highlights container registry tab3684 Packages3685 when packages is enabled3686 packages link is visible3687 packages list link is visible3688 container registry link is visible3689 when container registry is disabled3690 packages top level and list link are visible3691 container registry link is not visible3692 releases entry3693 renders releases link3694 wiki entry tab3695 when wiki is enabled3696 shows the wiki tab with the wiki internal link3697 when wiki is disabled3698 does not show the wiki tab3699 external wiki entry tab3700 when it is active3701 shows the external wiki tab with the external wiki service link3702 when it is disabled3703 does not show the external wiki tab3704 confluence tab3705 when the Confluence integration is active3706 shows the Confluence tab3707 does not show the GitLab wiki tab3708 when it is disabled3709 does not show the Confluence tab3710 shows the GitLab wiki tab3711 ci/cd settings tab3712 when project is archived3713 does not show the ci/cd settings tab3714 when project is active3715 shows the ci/cd settings tab3716 operations settings tab3717 archive projects3718 when project is archived3719 does not show the operations settings tab3720 when project is active3721 shows the operations settings tab3722 Alert Management3723 shows the Alerts sidebar entry3724 value stream analytics entry3725 when value stream analytics is enabled3726 shows the value stream analytics entry3727 when value stream analytics is disabled3728 does not show the value stream analytics entry3729 project access tokens3730 self-managed instance3731 displays "Access Tokens" nav item3732 gitlab.com3733 does not display "Access Tokens" nav item3734Clusters::Platforms::Kubernetes3735 is expected to belong to cluster required:3736 is expected to be a kind of Gitlab::Kubernetes3737 is expected to respond to #ca_pem3738 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›3739 is expected to validate that :api_url cannot be empty/falsy3740 is expected to validate that :token cannot be empty/falsy3741 is expected to delegate #enabled? to the #cluster object3742 is expected to delegate #provided_by_user? to the #cluster object3743 behaves like having unique enum values3744 has unique values in "authorization_type"3745 before_validation3746 when namespace includes upper case3747 converts to lower case3748 when namespace is blank3749 nullifies the namespace3750 validation3751 when validates namespace3752 when namespace is nil3753 is expected to be truthy3754 when namespace is longer than 633755 is expected to be falsey3756 when namespace includes invalid character3757 is expected to be falsey3758 when namespace is vaild3759 is expected to be truthy3760 for group cluster3761 is expected to be falsey3762 when validates api_url3763 when api_url is invalid url3764 is expected to be falsey3765 when api_url is nil3766 is expected to be falsey3767 when api_url is valid url3768 is expected to be truthy3769 when api_url is localhost3770 is expected to be falsey3771 Application settings allows local requests3772 is expected to be truthy3773 when validates token3774 when token is nil3775 is expected to be falsey3776 ca_cert3777 with a valid certificate3778 is expected to be truthy3779 with an invalid certificate3780 is expected to be falsey3781 but the certificate is not being updated3782 is expected to be truthy3783 with no certificate3784 is expected to be truthy3785 when using reserved namespaces3786 when no namespace is manually assigned3787 is expected to be valid3788 when no reserved namespace is assigned3789 is expected to be valid3790 when reserved namespace is assigned3791 is expected not to be valid3792 #kubeclient3793 is expected to be an instance of Gitlab::Kubernetes::KubeClient3794 ca_pem is a single certificate3795 adds it to cert_store3796 ca_pem is a chain3797 includes chain of certificates3798 #rbac?3799 is expected to be truthy3800 #predefined_variables3801 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}3802 platform has a CA certificate3803 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}3804 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}3805 cluster is managed by project3806 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}3807 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}3808 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}3809 kubernetes namespace exists3810 is expected to include {:key => :fake_key, :value => "fake_value"}3811 kubernetes namespace does not exist3812 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}3813 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}3814 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}3815 cluster is unmanaged3816 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}3817 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}3818 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}3819 custom namespace is provided3820 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}3821 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}3822 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}3823 cluster variables3824 is expected to include {:key => :fake_key, :value => "fake_value"}3825 #terminals3826 with invalid pods3827 returns no terminals3828 with valid pods3829 returns terminals3830 uses max session time from settings3831 #calculate_reactive_cache_for3832 when the kubernetes integration is disabled3833 is expected to be nil3834 when kubernetes responds with valid pods and deployments3835 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}]}3836 when kubernetes responds with 500s3837 is expected to raise Kubeclient::HttpError3838 when kubernetes responds with 404s3839 is expected to include {:pods => []}3840TeamcityService3841 Associations3842 is expected to belong to project required:3843 is expected to have one service_hook3844 Validations3845 when service is active3846 is expected to validate that :build_type cannot be empty/falsy3847 is expected to validate that :teamcity_url cannot be empty/falsy3848 behaves like issue tracker service URL attribute3849 is expected to allow :teamcity_url to be ‹"https://example.com"›3850 is expected not to allow :teamcity_url to be ‹"example.com"›3851 is expected not to allow :teamcity_url to be ‹"ftp://example.com"›3852 is expected not to allow :teamcity_url to be ‹"herp-and-derp"›3853 #username3854 does not validate the presence of username if password is nil3855 validates the presence of username if password is present3856 #password3857 does not validate the presence of password if username is nil3858 validates the presence of password if username is present3859 when service is inactive3860 is expected not to validate that :build_type cannot be empty/falsy3861 is expected not to validate that :teamcity_url cannot be empty/falsy3862 is expected not to validate that :username cannot be empty/falsy3863 is expected not to validate that :password cannot be empty/falsy3864 Callbacks3865 before_update :reset_password3866 saves password if new url is set together with password when no password was previously set3867 when a password was previously set3868 resets password if url changed3869 does not reset password if username changed3870 does not reset password if new url is set together with password, even if it's the same password3871 #build_page3872 returns the contents of the reactive cache3873 #commit_status3874 returns the contents of the reactive cache3875 #calculate_reactive_cache3876 build_page3877 returns a specific URL when status is 5003878 returns a build URL when teamcity_url has no trailing slash3879 returns the teamcity_url when teamcity is unreachable3880 teamcity_url has trailing slash3881 returns a build URL3882 commit_status3883 sets commit status to :error when status is 5003884 sets commit status to "pending" when status is 4043885 sets commit status to "success" when build status contains SUCCESS3886 sets commit status to "failed" when build status contains FAILURE3887 sets commit status to "pending" when build status contains Pending3888 sets commit status to :error when build status is unknown3889 sets commit status to :error when teamcity is unreachable3890 #execute3891 returns nil when event is not supported3892 when push3893 handles push request correctly3894 returns nil when ref is blank3895 returns nil when there is no content3896 returns nil when a merge request is opened for the same ref3897 when merge_request3898 handles merge request correctly3899 returns nil when merge request is not opened3900 returns nil unless merge request is marked as unchecked3901GroupDescendantsFinder3902 #has_children?3903 is true when there are projects3904 when there are subgroups3905 is true when there are projects3906 #execute3907 includes projects3908 does not include archived projects3909 sorts elements by latest created as default3910 does not include projects shared with the group3911 when archived is `true`3912 includes archived projects3913 when archived is `only`3914 includes only archived projects3915 with a filter3916 includes only projects matching the filter3917 sorting by name3918 sorts elements by name3919 with nested groups3920 sorts elements by name3921 with nested groups3922 #execute3923 contains projects and subgroups3924 does not include subgroups the user does not have access to3925 only includes public groups when no user is given3926 when archived is `true`3927 includes archived projects in the count of subgroups3928 with a filter3929 contains only matching projects and subgroups3930 does not include subgroups the user does not have access to3931 with matching children3932 includes a group that has a subgroup matching the query and its parent3933 includes the parent of a matching project3934 does not include the parent itself3935 with a small page size3936 contains all the ancestors of a matching subgroup regardless the page size3937GroupMember3938 scopes3939 counts users by group ID3940 .of_ldap_type3941 returns ldap type users3942 .access_level_roles3943 returns Gitlab::Access.options_with_owner3944 .access_levels3945 returns Gitlab::Access.options_with_owner3946 .add_users3947 adds the given users to the given group3948 behaves like members notifications3949 #after_create3950 sends email to user3951 #after_update3952 calls NotificationService.update_group_member3953 does not send an email when the access level has not changed3954 #accept_request3955 calls NotificationService.new_group_member3956 #accept_invite!3957 calls NotificationService.accept_group_invite3958 #decline_invite!3959 calls NotificationService.decline_group_invite3960 #real_source_type3961 is expected to eq "Group"3962 #update_two_factor_requirement3963 is called after creation and deletion3964 #after_accept_invite3965 calls #update_two_factor_requirement3966 access levels3967 with parent group3968 behaves like inherited access level as a member of entity3969 with root parent_entity developer member3970 is allowed to be a maintainer of the entity3971 is not allowed to be a reporter of the entity3972 is allowed to change to be a developer of the entity3973 is not allowed to change to be a guest of the entity3974 shows an error if the member can't be updated3975 allows changing the level from a non existing member3976 with parent group and a sub subgroup3977 behaves like inherited access level as a member of entity3978 with root parent_entity developer member3979 is allowed to be a maintainer of the entity3980 is not allowed to be a reporter of the entity3981 is allowed to change to be a developer of the entity3982 is not allowed to change to be a guest of the entity3983 shows an error if the member can't be updated3984 allows changing the level from a non existing member3985 when only the subgroup has the member3986 behaves like inherited access level as a member of entity3987 with root parent_entity developer member3988 is allowed to be a maintainer of the entity3989 is not allowed to be a reporter of the entity3990 is allowed to change to be a developer of the entity3991 is not allowed to change to be a guest of the entity3992 shows an error if the member can't be updated3993 allows changing the level from a non existing member3994Ci::PipelineTriggerService3995 #execute3996 with a trigger token3997 when trigger belongs to a different project3998 does nothing3999 when params have an existsed trigger token4000 when params have an existsed ref4001 triggers a pipeline4002 when commit message has [ci skip]4003 ignores [ci skip] and create as general4004 when params have a variable4005 has a variable4006 when params have a non-existsed ref4007 does not trigger a pipeline4008 when params have a non-existsed trigger token4009 does not trigger a pipeline4010 with a pipeline job token4011 when job user does not have a permission to read a project4012 does nothing4013 when job is not running4014 does nothing4015 when params have an existsed job token4016 when params have an existsed ref4017 triggers a pipeline4018 when commit message has [ci skip]4019 ignores [ci skip] and create as general4020 when params have a variable4021 has a variable4022 when params have a non-existsed ref4023 does not job a pipeline4024 when params have a non-existsed trigger token4025 does not trigger a pipeline4026WhereComposite4027 .where_composite4028 requires at least one permitted key4029 requires all arguments to match the permitted_keys4030 attaches a key error as cause if a key is missing4031 returns an empty relation if there are no arguments4032 permits extra arguments4033 can handle multiple fields4034 is equivalent to ids.map { |attrs| model.find_by(attrs) }4035 constructs (A&B) for one argument4036 constructs (A&B) OR (C&D) for two arguments4037 constructs (A&B) OR (C&D) OR (E&F) for three arguments4038 large sets of IDs4039 constructs correct trees of constraints4040 raises errors if too many IDs are passed4041MergeRequests::Conflicts::ListService4042 #can_be_resolved_in_ui?4043 returns a falsey value when the MR can be merged without conflicts4044 returns a falsey value when the MR is marked as having conflicts, but has none4045 returns a falsey value when one of the MR branches is missing4046 returns a falsey value when the MR does not support new diff notes4047 returns a falsey value when the conflicts contain a large file4048 returns a falsey value when the conflicts contain a binary file4049 returns a falsey value when the conflicts contain a file edited in one branch and deleted in another4050 returns a truthy value when the conflicts are resolvable in the UI4051 returns a truthy value when the conflicts have to be resolved in an editor4052 returns a falsey value when the MR has a missing ref after a force push4053 returns a falsey value when the MR has a missing revision after a force push4054 returns a falsey value when the conflict is in a submodule revision4055Ci::BuildTraceChunk4056 behaves like having unique enum values4057 has unique values in "data_store"4058 FastDestroyAll4059 Forbid #destroy and #destroy_all4060 does not delete database rows and associted external data4061 .fast_destroy_all4062 deletes database rows and associted external data4063 .use_fast_destroy4064 performs cascading delete with fast_destroy_all4065 CHUNK_SIZE4066 Chunk size can not be changed without special care4067 .all_stores4068 returns a correctly ordered array4069 returns redis store as the lowest precedence4070 returns fog store as the highest precedence4071 #data4072 when data_store is redis4073 is expected to eq "Sample data in redis"4074 when data_store is database4075 is expected to eq "Sample data in database"4076 when data_store is fog4077 is expected to eq "Sample data in fog"4078 #append4079 when data_store is redis4080 when there are no data4081 has no data4082 does not read data when appending4083 behaves like Appending correctly4084 when offset is negative4085 is expected to raise Exception with "Offset is out of range"4086 when offset is bigger than data size4087 is expected to raise Exception with "Offset is out of range"4088 when new data overflows chunk size4089 is expected to raise Exception with "Chunk size overflow"4090 when offset is EOF4091 appends4092 when the other process is appending4093 raise an error4094 when new_data is nil4095 raises an error4096 when new_data is empty4097 does not append4098 does not execute UPDATE4099 when offset is middle of datasize4100 appends4101 behaves like Scheduling sidekiq worker to flush data to persist store4102 when new data fulfilled chunk size4103 schedules trace chunk flush worker4104 migrates data to object storage4105 when there are some data4106 has data4107 behaves like Appending correctly4108 when offset is negative4109 is expected to raise Exception with "Offset is out of range"4110 when offset is bigger than data size4111 is expected to raise Exception with "Offset is out of range"4112 when new data overflows chunk size4113 is expected to raise Exception with "Chunk size overflow"4114 when offset is EOF4115 appends4116 when the other process is appending4117 raise an error4118 when new_data is nil4119 raises an error4120 when new_data is empty4121 does not append4122 does not execute UPDATE4123 when offset is middle of datasize4124 appends4125 behaves like Scheduling sidekiq worker to flush data to persist store4126 when new data fulfilled chunk size4127 schedules trace chunk flush worker4128 migrates data to object storage4129 when data_store is database4130 when there are no data4131 has no data4132 behaves like Appending correctly4133 when offset is negative4134 is expected to raise Exception with "Offset is out of range"4135 when offset is bigger than data size4136 is expected to raise Exception with "Offset is out of range"4137 when new data overflows chunk size4138 is expected to raise Exception with "Chunk size overflow"4139 when offset is EOF4140 appends4141 when the other process is appending4142 raise an error4143 when new_data is nil4144 raises an error4145 when new_data is empty4146 does not append4147 does not execute UPDATE4148 when offset is middle of datasize4149 appends4150 behaves like Scheduling no sidekiq worker4151 when new data fulfilled chunk size4152 does not schedule trace chunk flush worker4153 does not migrate data to object storage4154 when there are some data4155 has data4156 behaves like Appending correctly4157 when offset is negative4158 is expected to raise Exception with "Offset is out of range"4159 when offset is bigger than data size4160 is expected to raise Exception with "Offset is out of range"4161 when new data overflows chunk size4162 is expected to raise Exception with "Chunk size overflow"4163 when offset is EOF4164 appends4165 when the other process is appending4166 raise an error4167 when new_data is nil4168 raises an error4169 when new_data is empty4170 does not append4171 does not execute UPDATE4172 when offset is middle of datasize4173 appends4174 behaves like Scheduling no sidekiq worker4175 when new data fulfilled chunk size4176 does not schedule trace chunk flush worker4177 does not migrate data to object storage4178 when data_store is fog4179 when there are no data4180 has no data4181 behaves like Appending correctly4182 when offset is negative4183 is expected to raise Exception with "Offset is out of range"4184 when offset is bigger than data size4185 is expected to raise Exception with "Offset is out of range"4186 when new data overflows chunk size4187 is expected to raise Exception with "Chunk size overflow"4188 when offset is EOF4189 appends4190 when the other process is appending4191 raise an error4192 when new_data is nil4193 raises an error4194 when new_data is empty4195 does not append4196 does not execute UPDATE4197 when offset is middle of datasize4198 appends4199 behaves like Scheduling no sidekiq worker4200 when new data fulfilled chunk size4201 does not schedule trace chunk flush worker4202 does not migrate data to object storage4203 when there are some data4204 has data4205 behaves like Appending correctly4206 when offset is negative4207 is expected to raise Exception with "Offset is out of range"4208 when offset is bigger than data size4209 is expected to raise Exception with "Offset is out of range"4210 when new data overflows chunk size4211 is expected to raise Exception with "Chunk size overflow"4212 when offset is EOF4213 appends4214 when the other process is appending4215 raise an error4216 when new_data is nil4217 raises an error4218 when new_data is empty4219 does not append4220 does not execute UPDATE4221 when offset is middle of datasize4222 appends4223 behaves like Scheduling no sidekiq worker4224 when new data fulfilled chunk size4225 does not schedule trace chunk flush worker4226 does not migrate data to object storage4227 #truncate4228 when data_store is redis4229 behaves like truncates4230 when offset is negative4231 is expected to raise Exception with "Offset is out of range"4232 when offset is bigger than data size4233 is expected to raise Exception with "Offset is out of range"4234 when offset is 104235 truncates4236 when data_store is database4237 behaves like truncates4238 when offset is negative4239 is expected to raise Exception with "Offset is out of range"4240 when offset is bigger than data size4241 is expected to raise Exception with "Offset is out of range"4242 when offset is 104243 truncates4244 when data_store is fog4245 behaves like truncates4246 when offset is negative4247 is expected to raise Exception with "Offset is out of range"4248 when offset is bigger than data size4249 is expected to raise Exception with "Offset is out of range"4250 when offset is 104251 truncates4252 #size4253 when data_store is redis4254 when data exists4255 is expected to eq 204256 when data exists4257 is expected to eq 04258 when data_store is database4259 when data exists4260 is expected to eq 234261 when data does not exist4262 is expected to eq 04263 when data_store is fog4264 when data exists4265 is expected to eq 184266 when data does not exist4267 is expected to eq 04268 #persist_data!4269 when data_store is redis4270 when data exists4271 when data size reached CHUNK_SIZE4272 persists the data4273 calculates CRC32 checksum4274 behaves like Atomic operation4275 when the other process is persisting4276 raise an error4277 when data size has not reached CHUNK_SIZE4278 does not persist the data and the orignal data is intact4279 when data does not exist4280 does not persist4281 when data_store is database4282 when data exists4283 when data size reached CHUNK_SIZE4284 persists the data4285 behaves like Atomic operation4286 when the other process is persisting4287 raise an error4288 when data size has not reached CHUNK_SIZE4289 does not persist the data and the orignal data is intact4290 when data does not exist4291 does not persist4292 when data_store is fog4293 when data exists4294 when data size reached CHUNK_SIZE4295 does not change data store4296 behaves like Atomic operation4297 when the other process is persisting4298 raise an error4299 when data size has not reached CHUNK_SIZE4300 does not raise error4301 deletes data in redis after a parent record destroyed4302 when traces are archived4303 behaves like deletes all build_trace_chunk and data in redis4304 deletes all build_trace_chunk and data in redis4305 when project is destroyed4306 behaves like deletes all build_trace_chunk and data in redis4307 deletes all build_trace_chunk and data in redis4308ProjectFeature4309 PRIVATE_FEATURES_MIN_ACCESS_LEVEL_FOR_PRIVATE_PROJECT4310 has higher level than that of PRIVATE_FEATURES_MIN_ACCESS_LEVEL4311 repository related features4312 does not allow repository related features have higher level4313 public features4314 does not allow public access level for issues4315 does not allow public access level for wiki4316 does not allow public access level for builds4317 does not allow public access level for merge_requests4318 does not allow public access level for snippets4319 does not allow public access level for repository4320 does not allow public access level for metrics_dashboard4321 default pages access level4322 when new project is private4323 is expected to eq 104324 when new project is internal4325 is expected to eq 104326 when new project is public4327 is expected to eq 204328 when access control is forced on the admin level4329 is expected to eq 104330 #public_pages?4331 returns true if Pages access control is not enabled4332 when Pages access control is enabled4333 project_visibility: :private, pages_access_level: 30, result: true4334 properly handles project and Pages visibility settings4335 returns false if access_control is forced on the admin level4336 project_visibility: :internal, pages_access_level: 30, result: true4337 properly handles project and Pages visibility settings4338 returns false if access_control is forced on the admin level4339 project_visibility: :internal, pages_access_level: 20, result: false4340 properly handles project and Pages visibility settings4341 returns false if access_control is forced on the admin level4342 project_visibility: :public, pages_access_level: 20, result: true4343 properly handles project and Pages visibility settings4344 returns false if access_control is forced on the admin level4345 project_visibility: :private, pages_access_level: 10, result: false4346 properly handles project and Pages visibility settings4347 returns false if access_control is forced on the admin level4348 project_visibility: :public, pages_access_level: 10, result: false4349 properly handles project and Pages visibility settings4350 returns false if access_control is forced on the admin level4351 #private_pages?4352 returns false if public_pages? is true4353 returns true if public_pages? is false4354 .required_minimum_access_level4355 handles reporter level4356 handles guest level4357 accepts ActiveModel4358 accepts string4359 handles repository4360 raises error if feature is invalid4361 .required_minimum_access_level_for_private_project4362 returns higher permission for repository4363 returns normal permission for issues4364GenericCommitStatus4365 validations4366 is expected to validate that the length of :target_url is at most 2554367 is expected to allow :target_url to be ‹nil›4368 is expected to allow :target_url to be ‹"http://gitlab.com/s"›4369 is expected not to allow :target_url to be ‹"javascript:alert(1)"›4370 #name_uniqueness_across_types4371 without attributes4372 behaves like it does not have uniqueness errors4373 does not return errors4374 with only a pipeline4375 without name4376 behaves like it does not have uniqueness errors4377 does not return errors4378 with only a name4379 without pipeline4380 behaves like it does not have uniqueness errors4381 does not return errors4382 with pipeline and name4383 without other statuses4384 behaves like it does not have uniqueness errors4385 does not return errors4386 with generic statuses4387 behaves like it does not have uniqueness errors4388 does not return errors4389 with ci_build statuses4390 returns name error4391 #context4392 is expected to eq "my_context"4393 #tags4394 is expected to eq [:external]4395 #detailed_status4396 returns detailed status object4397 when user has ability to see datails4398 details path points to an external URL4399 when user should not see details4400 does not have details4401 set_default_values4402 #context4403 is expected not to be nil4404 #stage4405 is expected not to be nil4406 #stage_idx4407 is expected not to be nil4408 #present4409 is expected to be a kind of GenericCommitStatusPresenter4410Gitlab::GithubImport::Importer::MilestonesImporter4411 #execute4412 imports the milestones in bulk4413 #build_milestones4414 returns an Array containnig milestone rows4415 does not create milestones that already exist4416 #build_milestones_cache4417 builds the milestones cache4418 #build4419 returns the attributes of the milestone as a Hash4420 the returned Hash4421 includes the milestone number4422 includes the milestone title4423 includes the milestone description4424 includes the project ID4425 includes the milestone state4426 includes the due date4427 responds correctly to no due date value4428 includes the created timestamp4429 includes the updated timestamp4430 #each_milestone4431 returns the milestones4432Mutations::DesignManagement::Delete4433 #resolve4434 when the feature is not available4435 behaves like resource not available4436 behaves like failures4437 raises Gitlab::Graphql::Errors::ResourceNotAvailable4438 when the feature is available4439 when the user is not allowed to delete designs4440 behaves like resource not available4441 behaves like failures4442 raises Gitlab::Graphql::Errors::ResourceNotAvailable4443 deleting an already deleted file4444 fails with an argument error4445 when deleting all the designs4446 returns a new version, and no errors4447 runs no more than 28 queries4448 the current designs4449 is empty4450 when deleting a design4451 returns the expected response4452 the current designs4453 does contain designs b and c4454GpgKeys::DestroyService4455 destroys the GPG key4456Gitlab::DiscussionsDiff::FileCollection4457 #load_highlight4458 writes uncached diffs highlight4459 does not write cache for already cached file4460 does not write cache for empty mapping4461 does not write cache for resolved notes4462 loaded diff files have highlighted lines loaded4463 not loaded diff files does not have highlighted lines loaded4464ForkTargetsFinder4465 #execute4466 returns all user manageable namespaces4467 returns only groups when only_groups option is passed4468 returns groups relation when only_groups option is passed4469Gitlab::Ci::Config::Entry::Kubernetes4470 attributes4471 is expected to respond to #namespace4472 is expected to respond to #has_namespace?4473 validations4474 config4475 is a hash containing known keys4476 is expected to be valid4477 is a hash containing an unknown key4478 is expected not to be valid4479 is a string4480 is expected not to be valid4481 namespace4482 is a string4483 is expected to be valid4484 is a hash4485 is expected not to be valid4486 is not present4487 is expected not to be valid4488PipelineBackgroundQueue4489 sets a default object storage queue automatically4490Knapsack report was generated. Preview:4491{4492 "spec/models/project_spec.rb": 155.6480085849762,4493 "spec/services/projects/create_service_spec.rb": 54.691492319107056,4494 "spec/lib/gitlab/ci/pipeline/seed/build_spec.rb": 49.798043727874756,4495 "spec/services/members/destroy_service_spec.rb": 28.7566499710083,4496 "spec/services/todos/destroy/entity_leave_service_spec.rb": 29.4369957447052,4497 "spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb": 20.41867184638977,4498 "spec/policies/ci/build_policy_spec.rb": 15.762299060821533,4499 "spec/lib/banzai/filter/repository_link_filter_spec.rb": 15.405069589614868,4500 "spec/services/releases/create_service_spec.rb": 11.939091205596924,4501 "spec/finders/issues_finder_spec.rb": 12.859784364700317,4502 "spec/services/projects/transfer_service_spec.rb": 11.317054986953735,4503 "spec/finders/labels_finder_spec.rb": 13.38713812828064,4504 "spec/models/clusters/applications/cilium_spec.rb": 8.099721431732178,4505 "spec/services/milestones/transfer_service_spec.rb": 7.51079797744751,4506 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 7.940518379211426,4507 "spec/models/clusters/platforms/kubernetes_spec.rb": 7.003514766693115,4508 "spec/models/project_services/teamcity_service_spec.rb": 6.66304874420166,4509 "spec/finders/group_descendants_finder_spec.rb": 7.680758237838745,4510 "spec/models/members/group_member_spec.rb": 5.996364593505859,4511 "spec/services/ci/pipeline_trigger_service_spec.rb": 5.40733790397644,4512 "spec/models/concerns/where_composite_spec.rb": 2.6599314212799072,4513 "spec/services/merge_requests/conflicts/list_service_spec.rb": 4.568307399749756,4514 "spec/models/ci/build_trace_chunk_spec.rb": 4.149048566818237,4515 "spec/models/project_feature_spec.rb": 3.0388293266296387,4516 "spec/models/generic_commit_status_spec.rb": 2.5814578533172607,4517 "spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb": 2.225292921066284,4518 "spec/graphql/mutations/design_management/delete_spec.rb": 2.8980824947357178,4519 "spec/services/gpg_keys/destroy_service_spec.rb": 3.6166164875030518,4520 "spec/lib/gitlab/discussions_diff/file_collection_spec.rb": 2.6783335208892822,4521 "spec/finders/fork_targets_finder_spec.rb": 1.536550760269165,4522 "spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb": 0.02502918243408203,4523 "spec/workers/concerns/pipeline_background_queue_spec.rb": 0.00255894660949707034524}4525Knapsack global time execution for tests: 08m 25s4526Finished in 10 minutes 47 seconds (files took 37.23 seconds to load)45272294 examples, 0 failures4528Sat Aug 29 16:44:33 UTC 20204530Not uploading cache rails-v2-3 due to policy4532Uploading artifacts...4533coverage/: found 5 matching files and directories 4534knapsack/: found 3 matching files and directories 4535rspec_flaky/: found 4 matching files and directories 4536rspec_profiling/: found 2 matching files and directories 4537WARNING: tmp/capybara/: no matching files 4538tmp/memory_test/: found 2 matching files and directories 4539log/*.log: found 15 matching files and directories 4540Uploading artifacts as "archive" to coordinator... ok id=710020347 responseStatus=201 Created token=xCDog5zU4541Uploading artifacts...4542junit_rspec.xml: found 1 matching files and directories 4543Uploading artifacts as "junit" to coordinator... ok id=710020347 responseStatus=201 Created token=xCDog5zU4544Job succeeded