1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-01-31 11:37:14 +00:00

Fix NoMethodError in Issue#blocked? due to invalid issue_from_id in Issue#relations_from (#8539).

Patch by Go MAEDA (user:maeda).


git-svn-id: https://svn.redmine.org/redmine/trunk@23048 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2024-09-10 00:55:32 +00:00
parent e8879d891f
commit 68121841b5
2 changed files with 11 additions and 1 deletions

View File

@ -1018,7 +1018,7 @@ class Issue < ApplicationRecord
# Returns true if this issue is blocked by another issue that is still open
def blocked?
!relations_to.detect {|ir| ir.relation_type == 'blocks' && !ir.issue_from.closed?}.nil?
relations_to.any? {|ir| ir.relation_type == 'blocks' && ir.issue_from&.closed? == false}
end
# Returns true if this issue can be closed and if not, returns false and populates the reason

View File

@ -2222,6 +2222,16 @@ class IssueTest < ActiveSupport::TestCase
assert !blocking_issue.blocked?
end
def test_blocked_should_not_raise_exception_when_blocking_issue_id_is_invalid
ir = IssueRelation.find_by(issue_from_id: 10, issue_to_id: 9, relation_type: 'blocks')
issue = Issue.find(9)
assert issue.blocked?
ir.update_column :issue_from_id, 0 # invalid issue id
issue.reload
assert_nothing_raised {assert_not issue.blocked?}
end
def test_blocked_issues_dont_allow_closed_statuses
blocked_issue = Issue.find(9)