mirror of
https://github.com/redmine/redmine.git
synced 2026-05-07 03:17:41 +02:00
Adds a Setting to control how an Issue's done_ratio is calculated:
* Issue field (default) - the done_ratio field for the Issue * Issue status - uses the Issue Status's value #4274 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3151 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -70,4 +70,27 @@ class IssueStatusesControllerTest < ActionController::TestCase
|
||||
assert_redirected_to 'issue_statuses/list'
|
||||
assert_not_nil IssueStatus.find_by_id(1)
|
||||
end
|
||||
|
||||
context "on POST to :update_issue_done_ratio" do
|
||||
context "with Setting.issue_done_ratio using the issue_field" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_field'
|
||||
post :update_issue_done_ratio
|
||||
end
|
||||
|
||||
should_set_the_flash_to /not updated/
|
||||
should_redirect_to('the list') { '/issue_statuses/list' }
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_status" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_status'
|
||||
post :update_issue_done_ratio
|
||||
end
|
||||
|
||||
should_set_the_flash_to /Issue done ratios updated/
|
||||
should_redirect_to('the list') { '/issue_statuses/list' }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -66,4 +66,40 @@ class IssueStatusTest < ActiveSupport::TestCase
|
||||
status.reload
|
||||
assert status.is_default?
|
||||
end
|
||||
|
||||
context "#update_done_ratios" do
|
||||
setup do
|
||||
@issue = Issue.find(1)
|
||||
@issue_status = IssueStatus.find(1)
|
||||
@issue_status.update_attribute(:default_done_ratio, 50)
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_field" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_field'
|
||||
end
|
||||
|
||||
should "change nothing" do
|
||||
IssueStatus.update_issue_done_ratios
|
||||
|
||||
assert_equal 0, Issue.count(:conditions => {:done_ratio => 50})
|
||||
end
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_status" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_status'
|
||||
end
|
||||
|
||||
should "update all of the issue's done_ratios to match their Issue Status" do
|
||||
IssueStatus.update_issue_done_ratios
|
||||
|
||||
issues = Issue.find([1,3,4,5,6,7,9,10])
|
||||
issues.each do |issue|
|
||||
assert_equal @issue_status, issue.status
|
||||
assert_equal 50, issue.read_attribute(:done_ratio)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -529,4 +529,64 @@ class IssueTest < ActiveSupport::TestCase
|
||||
end
|
||||
assert ActionMailer::Base.deliveries.empty?
|
||||
end
|
||||
|
||||
context "#done_ratio" do
|
||||
setup do
|
||||
@issue = Issue.find(1)
|
||||
@issue_status = IssueStatus.find(1)
|
||||
@issue_status.update_attribute(:default_done_ratio, 50)
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_field" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_field'
|
||||
end
|
||||
|
||||
should "read the issue's field" do
|
||||
assert_equal 0, @issue.done_ratio
|
||||
end
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_status" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_status'
|
||||
end
|
||||
|
||||
should "read the Issue Status's default done ratio" do
|
||||
assert_equal 50, @issue.done_ratio
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "#update_done_ratio_from_issue_status" do
|
||||
setup do
|
||||
@issue = Issue.find(1)
|
||||
@issue_status = IssueStatus.find(1)
|
||||
@issue_status.update_attribute(:default_done_ratio, 50)
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_field" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_field'
|
||||
end
|
||||
|
||||
should "not change the issue" do
|
||||
@issue.update_done_ratio_from_issue_status
|
||||
|
||||
assert_equal 0, @issue.done_ratio
|
||||
end
|
||||
end
|
||||
|
||||
context "with Setting.issue_done_ratio using the issue_status" do
|
||||
setup do
|
||||
Setting.issue_done_ratio = 'issue_status'
|
||||
end
|
||||
|
||||
should "not change the issue's done ratio" do
|
||||
@issue.update_done_ratio_from_issue_status
|
||||
|
||||
assert_equal 50, @issue.done_ratio
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user