diff options
Diffstat (limited to 'spec/controllers/projects/protected_branches_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/protected_branches_controller_spec.rb | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/spec/controllers/projects/protected_branches_controller_spec.rb b/spec/controllers/projects/protected_branches_controller_spec.rb index 14728618633..6778d4100b8 100644 --- a/spec/controllers/projects/protected_branches_controller_spec.rb +++ b/spec/controllers/projects/protected_branches_controller_spec.rb @@ -33,21 +33,26 @@ RSpec.describe Projects::ProtectedBranchesController do let(:create_params) { attributes_for(:protected_branch).merge(access_level_params) } - it 'creates the protected branch rule' do - expect do - post(:create, params: project_params.merge(protected_branch: create_params)) - end.to change(ProtectedBranch, :count).by(1) - end + describe "created successfully" do + using RSpec::Parameterized::TableSyntax - context 'when repository is empty' do - let(:project) { empty_project } + let(:protected_branch) { create(:protected_branch, project: ref_project) } + let(:project_params) { { namespace_id: ref_project.namespace.to_param, project_id: ref_project } } + + subject { post(:create, params: project_params.merge(protected_branch: create_params), format: format) } - it 'creates the protected branch rule' do - expect do - post(:create, params: project_params.merge(protected_branch: create_params)) - end.to change(ProtectedBranch, :count).by(1) + where(:format, :ref_project, :response_status) do + :html | ref(:project) | :found + :html | ref(:empty_project) | :found + :json | ref(:project) | :ok + :json | ref(:empty_project) | :ok + end - expect(response).to have_gitlab_http_status(:found) + with_them do + it 'creates a protected branch' do + expect { subject }.to change(ProtectedBranch, :count).by(1) + expect(response).to have_gitlab_http_status(response_status) + end end end |