summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/protected_branches_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects/protected_branches_controller_spec.rb')
-rw-r--r--spec/controllers/projects/protected_branches_controller_spec.rb29
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