diff --git a/app/models/overview_kanban.rb b/app/models/overview_kanban.rb index 09c3a77..60d71fc 100644 --- a/app/models/overview_kanban.rb +++ b/app/models/overview_kanban.rb @@ -16,18 +16,17 @@ def filter_issues(issues, filters = {}) filtered_issues = super(issues, filters) return filtered_issues unless filtered_issues.present? - # First issue sorted by highest priority - highest_priority_issue = filtered_issues.sort {|a,b| a.priority.position <=> b.priority.position}.first - [highest_priority_issue] # expects an Array returned + [extract_highest_priority_issue(filtered_issues)] # expects an Array returned end # After filtering issues, extract the highest priority one def backlog_issues_for(options={}) issues = super + [extract_highest_priority_issue(issues)] # expects an Array returned + end - # First issue sorted by highest priority - highest_priority_issue = issues.sort {|a,b| a.priority.position <=> b.priority.position}.first - [highest_priority_issue] # expects an Array returned + # Returns the first issue sorted by highest priority + def extract_highest_priority_issue(issues) + issues.sort {|a,b| a.priority.position <=> b.priority.position}.first end - end diff --git a/test/unit/overview_kanban_test.rb b/test/unit/overview_kanban_test.rb new file mode 100644 index 0000000..8127e04 --- /dev/null +++ b/test/unit/overview_kanban_test.rb @@ -0,0 +1,27 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class OverviewKanbanTest < ActiveSupport::TestCase + def setup + @user = User.generate! + User.current = @user + @project = Project.generate! + @kanban = OverviewKanban.new + high_priority + medium_priority + low_priority + end + + context "#extract_highest_priority_issue" do + should "return nil with no issues" do + assert_equal nil, @kanban.extract_highest_priority_issue([]) + end + + should "return the issue with the highest priority (by position)" do + @medium = Issue.generate_for_project!(@project, :priority => medium_priority).reload + @high = Issue.generate_for_project!(@project, :priority => high_priority).reload + @medium2 = Issue.generate_for_project!(@project, :priority => medium_priority).reload + assert_equal @high, @kanban.extract_highest_priority_issue([@medium, @high, @medium2]) + end + + end +end