Commit 8b92946b authored by Jonah Bishop's avatar Jonah Bishop

Change percent_complete rescue value from 100 to 0

The percent_complete method returns a value of 100 when a
ZeroDivisionError occurs. That seems like a very strange default for an
error case, and results in a bug when a milestone has no corresponding
issues (new, empty milestones show 100% completion). This commit changes
the rescue value to 0, and subsequently fixes #1656, which reported this
problem.
parent b5ea3550
...@@ -11,6 +11,7 @@ v 7.12.0 (unreleased) ...@@ -11,6 +11,7 @@ v 7.12.0 (unreleased)
- Update Asciidoctor gem to version 1.5.2. (Jakub Jirutka) - Update Asciidoctor gem to version 1.5.2. (Jakub Jirutka)
- Fix resolving of relative links to repository files in AsciiDoc documents. (Jakub Jirutka) - Fix resolving of relative links to repository files in AsciiDoc documents. (Jakub Jirutka)
- Use the user list from the target project in a merge request (Stan Hu) - Use the user list from the target project in a merge request (Stan Hu)
- Fix new/empty milestones showing 100% completion value (Jonah Bishop)
v 7.11.2 v 7.11.2
- no changes - no changes
......
...@@ -44,7 +44,7 @@ class GroupMilestone ...@@ -44,7 +44,7 @@ class GroupMilestone
def percent_complete def percent_complete
((closed_items_count * 100) / total_items_count).abs ((closed_items_count * 100) / total_items_count).abs
rescue ZeroDivisionError rescue ZeroDivisionError
100 0
end end
def state def state
......
...@@ -66,7 +66,7 @@ class Milestone < ActiveRecord::Base ...@@ -66,7 +66,7 @@ class Milestone < ActiveRecord::Base
def percent_complete def percent_complete
((closed_items_count * 100) / total_items_count).abs ((closed_items_count * 100) / total_items_count).abs
rescue ZeroDivisionError rescue ZeroDivisionError
100 0
end end
def expires_at def expires_at
......
...@@ -47,7 +47,7 @@ describe Milestone do ...@@ -47,7 +47,7 @@ describe Milestone do
it "should recover from dividing by zero" do it "should recover from dividing by zero" do
expect(milestone.issues).to receive(:count).and_return(0) expect(milestone.issues).to receive(:count).and_return(0)
expect(milestone.percent_complete).to eq(100) expect(milestone.percent_complete).to eq(0)
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment