Improve project_with_board factory to create the default lists
This commit is contained in:
parent
10d3696f78
commit
97551e8dd9
|
@ -4,4 +4,12 @@ class Board < ActiveRecord::Base
|
|||
has_many :lists, -> { order(:list_type, :position) }, dependent: :delete_all
|
||||
|
||||
validates :project, presence: true
|
||||
|
||||
def backlog_list
|
||||
lists.merge(List.backlog).take
|
||||
end
|
||||
|
||||
def done_list
|
||||
lists.merge(List.done).take
|
||||
end
|
||||
end
|
||||
|
|
|
@ -20,10 +20,7 @@ describe Projects::Boards::ListsController do
|
|||
end
|
||||
|
||||
it 'returns a list of board lists' do
|
||||
board = project.create_board
|
||||
create(:backlog_list, board: board)
|
||||
create(:list, board: board)
|
||||
create(:done_list, board: board)
|
||||
|
||||
read_board_list user: user
|
||||
|
||||
|
|
|
@ -106,6 +106,8 @@ FactoryGirl.define do
|
|||
factory :project_with_board, parent: :empty_project do
|
||||
after(:create) do |project|
|
||||
project.create_board
|
||||
project.board.lists.create(list_type: :backlog)
|
||||
project.board.lists.create(list_type: :done)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,15 +4,11 @@ describe 'Issue Boards', feature: true, js: true do
|
|||
include WaitForAjax
|
||||
include WaitForVueResource
|
||||
|
||||
let(:project) { create(:empty_project, :public) }
|
||||
let(:project) { create(:project_with_board, :public) }
|
||||
let(:user) { create(:user) }
|
||||
let!(:user2) { create(:user) }
|
||||
|
||||
before do
|
||||
project.create_board
|
||||
project.board.lists.create(list_type: :backlog)
|
||||
project.board.lists.create(list_type: :done)
|
||||
|
||||
project.team << [user, :master]
|
||||
project.team << [user2, :master]
|
||||
|
||||
|
|
|
@ -13,10 +13,10 @@ describe Boards::Issues::ListService, services: true do
|
|||
let(:p2) { create(:label, title: 'P2', project: project, priority: 2) }
|
||||
let(:p3) { create(:label, title: 'P3', project: project, priority: 3) }
|
||||
|
||||
let!(:backlog) { create(:backlog_list, board: board) }
|
||||
let!(:backlog) { project.board.backlog_list }
|
||||
let!(:list1) { create(:list, board: board, label: development, position: 0) }
|
||||
let!(:list2) { create(:list, board: board, label: testing, position: 1) }
|
||||
let!(:done) { create(:done_list, board: board) }
|
||||
let!(:done) { project.board.done_list }
|
||||
|
||||
let!(:opened_issue1) { create(:labeled_issue, project: project, labels: [bug]) }
|
||||
let!(:opened_issue2) { create(:labeled_issue, project: project, labels: [p2]) }
|
||||
|
|
|
@ -10,10 +10,10 @@ describe Boards::Issues::MoveService, services: true do
|
|||
let(:development) { create(:label, project: project, name: 'Development') }
|
||||
let(:testing) { create(:label, project: project, name: 'Testing') }
|
||||
|
||||
let!(:backlog) { create(:backlog_list, board: board) }
|
||||
let!(:backlog) { project.board.backlog_list }
|
||||
let!(:list1) { create(:list, board: board, label: development, position: 0) }
|
||||
let!(:list2) { create(:list, board: board, label: testing, position: 1) }
|
||||
let!(:done) { create(:done_list, board: board) }
|
||||
let!(:done) { project.board.done_list }
|
||||
|
||||
before do
|
||||
project.team << [user, :developer]
|
||||
|
|
|
@ -17,17 +17,15 @@ describe Boards::Lists::CreateService, services: true do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when board lists has only a backlog list' do
|
||||
context 'when board lists has backlog, and done lists' do
|
||||
it 'creates a new list at beginning of the list' do
|
||||
create(:backlog_list, board: board)
|
||||
|
||||
list = service.execute
|
||||
|
||||
expect(list.position).to eq 0
|
||||
end
|
||||
end
|
||||
|
||||
context 'when board lists has only labels lists' do
|
||||
context 'when board lists has labels lists' do
|
||||
it 'creates a new list at end of the lists' do
|
||||
create(:list, board: board, position: 0)
|
||||
create(:list, board: board, position: 1)
|
||||
|
@ -40,8 +38,6 @@ describe Boards::Lists::CreateService, services: true do
|
|||
|
||||
context 'when board lists has backlog, label and done lists' do
|
||||
it 'creates a new list at end of the label lists' do
|
||||
create(:backlog_list, board: board)
|
||||
create(:done_list, board: board)
|
||||
list1 = create(:list, board: board, position: 0)
|
||||
|
||||
list2 = service.execute
|
||||
|
|
|
@ -15,11 +15,11 @@ describe Boards::Lists::DestroyService, services: true do
|
|||
end
|
||||
|
||||
it 'decrements position of higher lists' do
|
||||
backlog = create(:backlog_list, board: board)
|
||||
backlog = project.board.backlog_list
|
||||
development = create(:list, board: board, position: 0)
|
||||
review = create(:list, board: board, position: 1)
|
||||
staging = create(:list, board: board, position: 2)
|
||||
done = create(:done_list, board: board)
|
||||
done = project.board.done_list
|
||||
|
||||
described_class.new(project, user).execute(development)
|
||||
|
||||
|
@ -31,14 +31,14 @@ describe Boards::Lists::DestroyService, services: true do
|
|||
end
|
||||
|
||||
it 'does not remove list from board when list type is backlog' do
|
||||
list = create(:backlog_list, board: board)
|
||||
list = project.board.backlog_list
|
||||
service = described_class.new(project, user)
|
||||
|
||||
expect { service.execute(list) }.not_to change(board.lists, :count)
|
||||
end
|
||||
|
||||
it 'does not remove list from board when list type is done' do
|
||||
list = create(:done_list, board: board)
|
||||
list = project.board.done_list
|
||||
service = described_class.new(project, user)
|
||||
|
||||
expect { service.execute(list) }.not_to change(board.lists, :count)
|
||||
|
|
|
@ -6,12 +6,12 @@ describe Boards::Lists::MoveService, services: true do
|
|||
let(:board) { project.board }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
let!(:backlog) { create(:backlog_list, board: board) }
|
||||
let!(:backlog) { project.board.backlog_list }
|
||||
let!(:planning) { create(:list, board: board, position: 0) }
|
||||
let!(:development) { create(:list, board: board, position: 1) }
|
||||
let!(:review) { create(:list, board: board, position: 2) }
|
||||
let!(:staging) { create(:list, board: board, position: 3) }
|
||||
let!(:done) { create(:done_list, board: board) }
|
||||
let!(:done) { project.board.done_list }
|
||||
|
||||
context 'when list type is set to label' do
|
||||
it 'keeps position of lists when new position is nil' do
|
||||
|
|
Loading…
Reference in New Issue