summaryrefslogtreecommitdiff
path: root/spec/controllers
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-08-02 23:01:45 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-08-17 12:58:58 -0300
commit64d7559532cf033845bbfdc942ee9ea02076e602 (patch)
treed02c781cf4cd4a8179c03987e855926fc89fb952 /spec/controllers
parent75f0bc4af87b418b6b27f69c03bf9fa4756cedfc (diff)
downloadgitlab-ce-64d7559532cf033845bbfdc942ee9ea02076e602.tar.gz
Refactor spec for Projects::BoardListsController
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/projects/board_lists_controller_spec.rb85
1 files changed, 36 insertions, 49 deletions
diff --git a/spec/controllers/projects/board_lists_controller_spec.rb b/spec/controllers/projects/board_lists_controller_spec.rb
index aa9eb958d26..41d0432e14f 100644
--- a/spec/controllers/projects/board_lists_controller_spec.rb
+++ b/spec/controllers/projects/board_lists_controller_spec.rb
@@ -2,6 +2,7 @@ require 'spec_helper'
describe Projects::BoardListsController do
let(:project) { create(:project_with_board) }
+ let(:board) { project.board }
let(:user) { create(:user) }
before do
@@ -14,19 +15,13 @@ describe Projects::BoardListsController do
let(:label) { create(:label, project: project, name: 'Development') }
it 'returns a successful 200 response' do
- post :create, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- list: { label_id: label.id },
- format: :json
+ create_board_list label_id: label.id
expect(response).to have_http_status(200)
end
it 'returns the created list' do
- post :create, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- list: { label_id: label.id },
- format: :json
+ create_board_list label_id: label.id
expect(response).to match_response_schema('list')
end
@@ -34,10 +29,7 @@ describe Projects::BoardListsController do
context 'with invalid params' do
it 'returns an error' do
- post :create, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- list: { label_id: nil },
- format: :json
+ create_board_list label_id: nil
parsed_response = JSON.parse(response.body)
@@ -45,29 +37,28 @@ describe Projects::BoardListsController do
expect(response).to have_http_status(422)
end
end
+
+ def create_board_list(label_id:)
+ post :create, namespace_id: project.namespace.to_param,
+ project_id: project.to_param,
+ list: { label_id: label_id },
+ format: :json
+ end
end
describe 'PATCH #update' do
- let!(:planning) { create(:list, board: project.board, position: 1) }
- let!(:development) { create(:list, board: project.board, position: 2) }
+ let!(:planning) { create(:list, board: board, position: 1) }
+ let!(:development) { create(:list, board: board, position: 2) }
context 'with valid position' do
it 'returns a successful 200 response' do
- patch :update, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: planning.to_param,
- list: { position: 2 },
- format: :json
+ move list: planning, position: 2
expect(response).to have_http_status(200)
end
it 'moves the list to the desired position' do
- patch :update, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: planning.to_param,
- list: { position: 2 },
- format: :json
+ move list: planning, position: 2
expect(planning.reload.position).to eq 2
end
@@ -75,11 +66,7 @@ describe Projects::BoardListsController do
context 'with invalid position' do
it 'returns a unprocessable entity 422 response' do
- patch :update, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: planning.to_param,
- list: { position: 6 },
- format: :json
+ move list: planning, position: 6
expect(response).to have_http_status(422)
end
@@ -87,49 +74,49 @@ describe Projects::BoardListsController do
context 'with invalid list id' do
it 'returns a not found 404 response' do
- patch :update, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: 999,
- list: { position: 2 },
- format: :json
+ move list: 999, position: 2
expect(response).to have_http_status(404)
end
end
+
+ def move(list:, position:)
+ patch :update, namespace_id: project.namespace.to_param,
+ project_id: project.to_param,
+ id: list.to_param,
+ list: { position: position },
+ format: :json
+ end
end
describe 'DELETE #destroy' do
context 'with valid list id' do
- let!(:planning) { create(:list, board: project.board, position: 1) }
+ let!(:planning) { create(:list, board: board, position: 1) }
it 'returns a successful 200 response' do
- delete :destroy, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: planning.to_param,
- format: :json
+ remove_board_list list: planning
expect(response).to have_http_status(200)
end
it 'removes list from board' do
- expect do
- delete :destroy, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: planning.to_param,
- format: :json
- end.to change(project.board.lists, :size).by(-1)
+ expect { remove_board_list list: planning }.to change(board.lists, :size).by(-1)
end
end
context 'with invalid list id' do
it 'returns a not found 404 response' do
- delete :destroy, namespace_id: project.namespace.to_param,
- project_id: project.to_param,
- id: 999,
- format: :json
+ remove_board_list list: 999
expect(response).to have_http_status(404)
end
end
+
+ def remove_board_list(list)
+ delete :destroy, namespace_id: project.namespace.to_param,
+ project_id: project.to_param,
+ id: list.to_param,
+ format: :json
+ end
end
end