[Issue sorting on board] Addressing review issues
This commit is contained in:
parent
39db04bb17
commit
32538def14
|
@ -114,6 +114,13 @@ module RelativePositioning
|
|||
|
||||
private
|
||||
|
||||
# This method takes two integer values (positions) and
|
||||
# calculates some random position between them. The range is huge as
|
||||
# the maximum integer value is 2147483647. Ideally, the calculated value would be
|
||||
# exactly between those terminating values, but this will introduce possibility of a race condition
|
||||
# so two or more issues can get the same value, we want to avoid that and we also want to avoid
|
||||
# using a lock here. If we have two issues with distance more than one thousand, we are OK.
|
||||
# Given the huge range of possible values that integer can fit we shoud never face a problem.
|
||||
def position_between(pos_before, pos_after)
|
||||
pos_before ||= MIN_POSITION
|
||||
pos_after ||= MAX_POSITION
|
||||
|
|
|
@ -68,11 +68,9 @@ module Boards
|
|||
end
|
||||
|
||||
def move_between_iids
|
||||
move_after_iid = params[:move_after_iid]
|
||||
move_before_iid = params[:move_before_iid]
|
||||
return unless move_after_iid || move_before_iid
|
||||
return unless params[:move_after_iid] || params[:move_before_iid]
|
||||
|
||||
[move_after_iid, move_before_iid]
|
||||
[params[:move_after_iid], params[:move_before_iid]]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -21,6 +21,7 @@ Issue:
|
|||
- milestone_id
|
||||
- weight
|
||||
- time_estimate
|
||||
- relative_position
|
||||
Event:
|
||||
- id
|
||||
- target_type
|
||||
|
|
|
@ -43,32 +43,6 @@ describe Boards::Issues::ListService, services: true do
|
|||
described_class.new(project, user, params).execute
|
||||
end
|
||||
|
||||
context 'sets default order to priority' do
|
||||
it 'returns opened issues when list id is missing' do
|
||||
params = { board_id: board.id }
|
||||
|
||||
issues = described_class.new(project, user, params).execute
|
||||
|
||||
expect(issues).to eq [opened_issue2, reopened_issue1, opened_issue1]
|
||||
end
|
||||
|
||||
it 'returns closed issues when listing issues from Done' do
|
||||
params = { board_id: board.id, id: done.id }
|
||||
|
||||
issues = described_class.new(project, user, params).execute
|
||||
|
||||
expect(issues).to eq [closed_issue4, closed_issue2, closed_issue3, closed_issue1]
|
||||
end
|
||||
|
||||
it 'returns opened issues that have label list applied when listing issues from a label list' do
|
||||
params = { board_id: board.id, id: list1.id }
|
||||
|
||||
issues = described_class.new(project, user, params).execute
|
||||
|
||||
expect(issues).to eq [list1_issue3, list1_issue1, list1_issue2]
|
||||
end
|
||||
end
|
||||
|
||||
context 'with list that does not belong to the board' do
|
||||
it 'raises an error' do
|
||||
list = create(:list)
|
||||
|
|
|
@ -94,9 +94,9 @@ describe Boards::Issues::MoveService, services: true do
|
|||
end
|
||||
|
||||
it 'sorts issues' do
|
||||
issue.move_between(issue1, issue2)
|
||||
issue.move_between!(issue1, issue2)
|
||||
|
||||
params.merge! move_after_iid: issue1.iid, move_before_iid: issue2.iid
|
||||
params.merge! move_after_iid: issue.iid, move_before_iid: issue2.iid
|
||||
|
||||
described_class.new(project, user, params).execute(issue1)
|
||||
|
||||
|
|
Loading…
Reference in New Issue