Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-07-28 07:54:13 +0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-08-17 18:58:57 +0300
commit5ef567e33df9f4562f56fdbf60329c027dbfa913 (patch)
tree2552e17a84c831f1369966a75ae5af28b004029e /spec/services/boards
parent4180a15c568a16371e14a869166827a7998e993b (diff)
Does not allow Backlog/Done lists to be removed
Diffstat (limited to 'spec/services/boards')
-rw-r--r--spec/services/boards/lists/destroy_service_spec.rb46
1 files changed, 31 insertions, 15 deletions
diff --git a/spec/services/boards/lists/destroy_service_spec.rb b/spec/services/boards/lists/destroy_service_spec.rb
index 5fe9fa51407..85cc3a0bc67 100644
--- a/spec/services/boards/lists/destroy_service_spec.rb
+++ b/spec/services/boards/lists/destroy_service_spec.rb
@@ -5,26 +5,42 @@ describe Boards::Lists::DestroyService, services: true do
let(:project) { create(:project_with_board) }
let(:board) { project.board }
- it 'removes list from board' do
- list = create(:list, board: board)
- service = described_class.new(project, list_id: list.id)
+ context 'when list type is label' do
+ it 'removes list from board' do
+ list = create(:label_list, board: board)
+ service = described_class.new(project, list_id: list.id)
+
+ expect { service.execute }.to change(board.lists, :count).by(-1)
+ end
+
+ it 'decrements position of higher lists' do
+ list1 = create(:backlog_list, board: board, position: 1)
+ list2 = create(:label_list, board: board, position: 2)
+ list3 = create(:label_list, board: board, position: 3)
+ list4 = create(:label_list, board: board, position: 4)
+ list5 = create(:done_list, board: board, position: 5)
+
+ described_class.new(project, list_id: list2.id).execute
- expect { service.execute }.to change(board.lists, :count).by(-1)
+ expect(list1.reload.position).to eq 1
+ expect(list3.reload.position).to eq 2
+ expect(list4.reload.position).to eq 3
+ expect(list5.reload.position).to eq 4
+ end
end
- it 'decrements position of higher lists' do
- list1 = create(:list, board: board, position: 1)
- list2 = create(:list, board: board, position: 2)
- list3 = create(:list, board: board, position: 3)
- list4 = create(:list, board: board, position: 4)
- list5 = create(:list, board: board, position: 5)
+ it 'does not remove list from board when list type is backlog' do
+ list = create(:backlog_list, board: board)
+ service = described_class.new(project, list_id: list.id)
+
+ expect { service.execute }.not_to change(board.lists, :count)
+ end
- described_class.new(project, list_id: list2.id).execute
+ it 'does not remove list from board when list type is done' do
+ list = create(:done_list, board: board)
+ service = described_class.new(project, list_id: list.id)
- expect(list1.reload.position).to eq 1
- expect(list3.reload.position).to eq 2
- expect(list4.reload.position).to eq 3
- expect(list5.reload.position).to eq 4
+ expect { service.execute }.not_to change(board.lists, :count)
end
end
end