From 438b8be051f70fee04090eb4051fa01946c75432 Mon Sep 17 00:00:00 2001 From: Marius Bobin Date: Tue, 20 Aug 2019 12:19:13 +0300 Subject: Improve readability for pipelines visibility table Gather project's visibility level constants in a hash and use the keys as reference. --- spec/requests/api/pipelines_spec.rb | 355 +++++++++++++++++++----------------- 1 file 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) -- cgit v1.2.1