diff options
author | Marius Bobin <mbobin@gitlab.com> | 2019-08-20 12:19:13 +0300 |
---|---|---|
committer | Marius Bobin <mbobin@gitlab.com> | 2019-08-22 11:39:52 +0300 |
commit | 438b8be051f70fee04090eb4051fa01946c75432 (patch) | |
tree | 1cd68bb8ef45ca245eaec04f07e205a04a7ec729 | |
parent | e67b44bc239bb5408aba8ec1d58bc9d04855a814 (diff) | |
download | gitlab-ce-438b8be051f70fee04090eb4051fa01946c75432.tar.gz |
Improve readability for pipelines visibility table
Gather project's visibility level constants in a hash and use the
keys as reference.
-rw-r--r-- | spec/requests/api/pipelines_spec.rb | 355 |
1 files changed, 185 insertions, 170 deletions
diff --git a/spec/requests/api/pipelines_spec.rb b/spec/requests/api/pipelines_spec.rb index 6d7d1508e77..bfe5406c5d6 100644 --- a/spec/requests/api/pipelines_spec.rb +++ b/spec/requests/api/pipelines_spec.rb @@ -301,182 +301,197 @@ describe API::Pipelines do a_hash_including('message') end - where(:visibility_level, :builds_access_level, :public_builds, :is_admin, :user_role, :response_status) do - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | true | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | true | :non_member | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | true | :guest | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | true | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | true | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | false | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | false | :non_member | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | false | :guest | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | false | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | false | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | true | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | true | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | true | :non_member | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | true | :guest | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | true | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | true | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | false | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | false | :non_member | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | false | :guest | 403 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | false | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | false | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::ENABLED | false | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | true | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | true | :non_member | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | true | :guest | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | true | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | true | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | false | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | false | :non_member | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | false | :guest | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | false | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | false | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | true | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | true | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | true | :non_member | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | true | :guest | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | true | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | true | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | false | nil | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | false | :non_member | 404 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | false | :guest | 403 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | false | :reporter | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | false | :developer | 200 - Gitlab::VisibilityLevel::PRIVATE | ProjectFeature::PRIVATE | false | false | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | true | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | true | :non_member | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | true | :guest | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | true | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | true | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | true | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | false | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | false | :non_member | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | false | :guest | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | false | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | false | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | true | false | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | true | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | true | :non_member | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | true | :guest | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | true | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | true | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | true | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | false | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | false | :non_member | 403 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | false | :guest | 403 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | false | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | false | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::ENABLED | false | false | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | true | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | true | :non_member | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | true | :guest | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | true | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | true | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | true | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | false | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | false | :non_member | 403 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | false | :guest | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | false | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | false | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | true | false | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | true | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | true | :non_member | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | true | :guest | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | true | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | true | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | true | :maintainer | 200 - - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | false | nil | 404 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | false | :non_member | 403 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | false | :guest | 403 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | false | :reporter | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | false | :developer | 200 - Gitlab::VisibilityLevel::INTERNAL | ProjectFeature::PRIVATE | false | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | true | nil | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | true | :non_member | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | true | :guest | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | true | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | true | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | false | nil | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | false | :non_member | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | false | :guest | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | false | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | false | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | true | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | true | nil | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | true | :non_member | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | true | :guest | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | true | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | true | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | false | nil | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | false | :non_member | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | false | :guest | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | false | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | false | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::ENABLED | false | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | true | nil | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | true | :non_member | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | true | :guest | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | true | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | true | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | false | nil | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | false | :non_member | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | false | :guest | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | false | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | false | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | true | false | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | true | nil | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | true | :non_member | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | true | :guest | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | true | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | true | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | true | :maintainer | 200 - - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | false | nil | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | false | :non_member | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | false | :guest | 403 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | false | :reporter | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | false | :developer | 200 - Gitlab::VisibilityLevel::PUBLIC | ProjectFeature::PRIVATE | false | false | :maintainer | 200 + let(:visibility_levels) do + { + private: Gitlab::VisibilityLevel::PRIVATE, + internal: Gitlab::VisibilityLevel::INTERNAL, + public: Gitlab::VisibilityLevel::PUBLIC + } + end + + let(:builds_access_levels) do + { + enabled: ProjectFeature::ENABLED, + private: ProjectFeature::PRIVATE + } + end + + where(:visibility_level, :builds_access_level, :public_builds, :is_admin, :user_role, :response_status) do + :private | :enabled | true | true | nil | 404 + :private | :enabled | true | true | :non_member | 200 + :private | :enabled | true | true | :guest | 200 + :private | :enabled | true | true | :reporter | 200 + :private | :enabled | true | true | :developer | 200 + :private | :enabled | true | true | :maintainer | 200 + + :private | :enabled | true | false | nil | 404 + :private | :enabled | true | false | :non_member | 404 + :private | :enabled | true | false | :guest | 200 + :private | :enabled | true | false | :reporter | 200 + :private | :enabled | true | false | :developer | 200 + :private | :enabled | true | false | :maintainer | 200 + + :private | :enabled | false | true | nil | 404 + :private | :enabled | false | true | :non_member | 200 + :private | :enabled | false | true | :guest | 200 + :private | :enabled | false | true | :reporter | 200 + :private | :enabled | false | true | :developer | 200 + :private | :enabled | false | true | :maintainer | 200 + + :private | :enabled | false | false | nil | 404 + :private | :enabled | false | false | :non_member | 404 + :private | :enabled | false | false | :guest | 403 + :private | :enabled | false | false | :reporter | 200 + :private | :enabled | false | false | :developer | 200 + :private | :enabled | false | false | :maintainer | 200 + + :private | :private | true | true | nil | 404 + :private | :private | true | true | :non_member | 200 + :private | :private | true | true | :guest | 200 + :private | :private | true | true | :reporter | 200 + :private | :private | true | true | :developer | 200 + :private | :private | true | true | :maintainer | 200 + + :private | :private | true | false | nil | 404 + :private | :private | true | false | :non_member | 404 + :private | :private | true | false | :guest | 200 + :private | :private | true | false | :reporter | 200 + :private | :private | true | false | :developer | 200 + :private | :private | true | false | :maintainer | 200 + + :private | :private | false | true | nil | 404 + :private | :private | false | true | :non_member | 200 + :private | :private | false | true | :guest | 200 + :private | :private | false | true | :reporter | 200 + :private | :private | false | true | :developer | 200 + :private | :private | false | true | :maintainer | 200 + + :private | :private | false | false | nil | 404 + :private | :private | false | false | :non_member | 404 + :private | :private | false | false | :guest | 403 + :private | :private | false | false | :reporter | 200 + :private | :private | false | false | :developer | 200 + :private | :private | false | false | :maintainer | 200 + + :internal | :enabled | true | true | nil | 404 + :internal | :enabled | true | true | :non_member | 200 + :internal | :enabled | true | true | :guest | 200 + :internal | :enabled | true | true | :reporter | 200 + :internal | :enabled | true | true | :developer | 200 + :internal | :enabled | true | true | :maintainer | 200 + + :internal | :enabled | true | false | nil | 404 + :internal | :enabled | true | false | :non_member | 200 + :internal | :enabled | true | false | :guest | 200 + :internal | :enabled | true | false | :reporter | 200 + :internal | :enabled | true | false | :developer | 200 + :internal | :enabled | true | false | :maintainer | 200 + + :internal | :enabled | false | true | nil | 404 + :internal | :enabled | false | true | :non_member | 200 + :internal | :enabled | false | true | :guest | 200 + :internal | :enabled | false | true | :reporter | 200 + :internal | :enabled | false | true | :developer | 200 + :internal | :enabled | false | true | :maintainer | 200 + + :internal | :enabled | false | false | nil | 404 + :internal | :enabled | false | false | :non_member | 403 + :internal | :enabled | false | false | :guest | 403 + :internal | :enabled | false | false | :reporter | 200 + :internal | :enabled | false | false | :developer | 200 + :internal | :enabled | false | false | :maintainer | 200 + + :internal | :private | true | true | nil | 404 + :internal | :private | true | true | :non_member | 200 + :internal | :private | true | true | :guest | 200 + :internal | :private | true | true | :reporter | 200 + :internal | :private | true | true | :developer | 200 + :internal | :private | true | true | :maintainer | 200 + + :internal | :private | true | false | nil | 404 + :internal | :private | true | false | :non_member | 403 + :internal | :private | true | false | :guest | 200 + :internal | :private | true | false | :reporter | 200 + :internal | :private | true | false | :developer | 200 + :internal | :private | true | false | :maintainer | 200 + + :internal | :private | false | true | nil | 404 + :internal | :private | false | true | :non_member | 200 + :internal | :private | false | true | :guest | 200 + :internal | :private | false | true | :reporter | 200 + :internal | :private | false | true | :developer | 200 + :internal | :private | false | true | :maintainer | 200 + + :internal | :private | false | false | nil | 404 + :internal | :private | false | false | :non_member | 403 + :internal | :private | false | false | :guest | 403 + :internal | :private | false | false | :reporter | 200 + :internal | :private | false | false | :developer | 200 + :internal | :private | false | false | :maintainer | 200 + + :public | :enabled | true | true | nil | 200 + :public | :enabled | true | true | :non_member | 200 + :public | :enabled | true | true | :guest | 200 + :public | :enabled | true | true | :reporter | 200 + :public | :enabled | true | true | :developer | 200 + :public | :enabled | true | true | :maintainer | 200 + + :public | :enabled | true | false | nil | 200 + :public | :enabled | true | false | :non_member | 200 + :public | :enabled | true | false | :guest | 200 + :public | :enabled | true | false | :reporter | 200 + :public | :enabled | true | false | :developer | 200 + :public | :enabled | true | false | :maintainer | 200 + + :public | :enabled | false | true | nil | 403 + :public | :enabled | false | true | :non_member | 200 + :public | :enabled | false | true | :guest | 200 + :public | :enabled | false | true | :reporter | 200 + :public | :enabled | false | true | :developer | 200 + :public | :enabled | false | true | :maintainer | 200 + + :public | :enabled | false | false | nil | 403 + :public | :enabled | false | false | :non_member | 403 + :public | :enabled | false | false | :guest | 403 + :public | :enabled | false | false | :reporter | 200 + :public | :enabled | false | false | :developer | 200 + :public | :enabled | false | false | :maintainer | 200 + + :public | :private | true | true | nil | 403 + :public | :private | true | true | :non_member | 200 + :public | :private | true | true | :guest | 200 + :public | :private | true | true | :reporter | 200 + :public | :private | true | true | :developer | 200 + :public | :private | true | true | :maintainer | 200 + + :public | :private | true | false | nil | 403 + :public | :private | true | false | :non_member | 403 + :public | :private | true | false | :guest | 200 + :public | :private | true | false | :reporter | 200 + :public | :private | true | false | :developer | 200 + :public | :private | true | false | :maintainer | 200 + + :public | :private | false | true | nil | 403 + :public | :private | false | true | :non_member | 200 + :public | :private | false | true | :guest | 200 + :public | :private | false | true | :reporter | 200 + :public | :private | false | true | :developer | 200 + :public | :private | false | true | :maintainer | 200 + + :public | :private | false | false | nil | 403 + :public | :private | false | false | :non_member | 403 + :public | :private | false | false | :guest | 403 + :public | :private | false | false | :reporter | 200 + :public | :private | false | false | :developer | 200 + :public | :private | false | false | :maintainer | 200 end with_them do before do ci_user.update!(admin: is_admin) - project.update!(visibility_level: visibility_level, public_builds: public_builds) - project.project_feature.update!(builds_access_level: builds_access_level) + project.update!(visibility_level: visibility_levels[visibility_level], public_builds: public_builds) + project.project_feature.update!(builds_access_level: builds_access_levels[builds_access_level]) project.add_role(ci_user, user_role) if user_role && user_role != :non_member get api("/projects/#{project.id}/pipelines", user_role && ci_user) |