summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-06-06 16:27:54 +0100
committerPhil Hughes <me@iamphill.com>2017-06-06 16:27:54 +0100
commit973e8c0fc50bc6614ca42413555a3f73625c7efa (patch)
tree61e70ee3ef7180b9ef0dbd0eddd072d0ba4ecde9
parente7b4eade0d69a70400a8d18ec72218c7b0bf1517 (diff)
downloadgitlab-ce-973e8c0fc50bc6614ca42413555a3f73625c7efa.tar.gz
updated service spec
-rw-r--r--app/assets/javascripts/boards/components/modal/footer.js3
-rw-r--r--app/services/boards/lists/list_service.rb2
-rw-r--r--spec/services/boards/lists/list_service_spec.rb37
3 files changed, 33 insertions, 9 deletions
diff --git a/app/assets/javascripts/boards/components/modal/footer.js b/app/assets/javascripts/boards/components/modal/footer.js
index 096b9cb4b38..478a1335b2b 100644
--- a/app/assets/javascripts/boards/components/modal/footer.js
+++ b/app/assets/javascripts/boards/components/modal/footer.js
@@ -26,7 +26,8 @@ gl.issueBoards.ModalFooter = Vue.extend({
},
methods: {
addIssues() {
- const list = this.modal.selectedList || this.state.lists[1];
+ const firstListIndex = 1;
+ const list = this.modal.selectedList || this.state.lists[firstListIndex];
const selectedIssues = ModalStore.getSelectedIssues();
const issueIds = selectedIssues.map(issue => issue.globalId);
diff --git a/app/services/boards/lists/list_service.rb b/app/services/boards/lists/list_service.rb
index 4ec56c3ac4d..df2a01a69e5 100644
--- a/app/services/boards/lists/list_service.rb
+++ b/app/services/boards/lists/list_service.rb
@@ -2,7 +2,7 @@ module Boards
module Lists
class ListService < BaseService
def execute(board)
- board.lists.create(list_type: :backlog) unless board.lists.backlog.any?
+ board.lists.create(list_type: :backlog) unless board.lists.backlog.exists?
board.lists
end
diff --git a/spec/services/boards/lists/list_service_spec.rb b/spec/services/boards/lists/list_service_spec.rb
index 97063381196..99016a8be0c 100644
--- a/spec/services/boards/lists/list_service_spec.rb
+++ b/spec/services/boards/lists/list_service_spec.rb
@@ -1,16 +1,39 @@
require 'spec_helper'
describe Boards::Lists::ListService, services: true do
+ let(:project) { create(:empty_project) }
+ let(:board) { create(:board, project: project) }
+ let(:label) { create(:label, project: project) }
+ let!(:list) { create(:list, board: board, label: label) }
+ let(:service) { described_class.new(project, double) }
+
describe '#execute' do
- it "returns board's lists" do
- project = create(:empty_project)
- board = create(:board, project: project)
- label = create(:label, project: project)
- list = create(:list, board: board, label: label)
+ context 'when the board has a backlog list' do
+ before do
+ create(:backlog_list, board: board)
+ end
+
+ it 'does not create a backlog list' do
+ service.execute(board)
+
+ expect(board.lists.merge(List.backlog)).to eq [board.backlog_list]
+ end
+
+ it "returns board's lists" do
+ expect(service.execute(board)).to eq [board.backlog_list, list, board.closed_list]
+ end
+ end
+
+ context 'when the board does not have a backlog list' do
+ it 'creates a backlog list' do
+ service.execute(board)
- service = described_class.new(project, double)
+ expect(board.backlog_list).not_to be nil
+ end
- expect(service.execute(board)).to eq [board.backlog_list, list, board.closed_list]
+ it "returns board's lists" do
+ expect(service.execute(board)).to eq [board.backlog_list, list, board.closed_list]
+ end
end
end
end