mirror of
https://github.com/redmine/redmine.git
synced 2025-12-16 05:20:28 +01:00
Show warning and the reason when the issue cannot be closed or reopen because of open subtask(s), blocking issue(s) or closed parent issue (#31589).
Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@19570 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -5278,6 +5278,7 @@ class IssuesControllerTest < Redmine::ControllerTest
|
||||
assert_select 'select[name=?]', 'issue[priority_id]' do
|
||||
assert_select 'option[value="15"]', 0
|
||||
end
|
||||
assert_select 'span.icon-warning', 0
|
||||
end
|
||||
|
||||
def test_edit_should_hide_project_if_user_is_not_allowed_to_change_project
|
||||
@@ -5389,6 +5390,21 @@ class IssuesControllerTest < Redmine::ControllerTest
|
||||
end
|
||||
end
|
||||
|
||||
def test_get_edit_for_issue_with_transition_warning_should_show_the_warning
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
get(
|
||||
:edit,
|
||||
:params => {
|
||||
:id => 9,
|
||||
}
|
||||
)
|
||||
|
||||
assert_response :success
|
||||
reason = l(:notice_issue_not_closable_by_blocking_issue)
|
||||
assert_select 'span.icon-warning[title=?]', reason, :text => reason
|
||||
end
|
||||
|
||||
def test_update_form_for_existing_issue
|
||||
@request.session[:user_id] = 2
|
||||
patch(
|
||||
|
||||
@@ -2104,6 +2104,10 @@ class IssueTest < ActiveSupport::TestCase
|
||||
child = Issue.generate!(:parent_issue_id => parent.id)
|
||||
|
||||
allowed_statuses = parent.reload.new_statuses_allowed_to(users(:users_002))
|
||||
|
||||
assert !parent.closable?
|
||||
assert_equal l(:notice_issue_not_closable_by_open_tasks), parent.transition_warning
|
||||
|
||||
assert allowed_statuses.any?
|
||||
assert_equal [], allowed_statuses.select(&:is_closed?)
|
||||
end
|
||||
@@ -2113,6 +2117,9 @@ class IssueTest < ActiveSupport::TestCase
|
||||
child = Issue.generate!(:parent_issue_id => parent.id, :status_id => 5)
|
||||
|
||||
allowed_statuses = parent.reload.new_statuses_allowed_to(users(:users_002))
|
||||
|
||||
assert parent.closable?
|
||||
assert_nil parent.transition_warning
|
||||
assert allowed_statuses.any?
|
||||
assert allowed_statuses.select(&:is_closed?).any?
|
||||
end
|
||||
@@ -3285,4 +3292,23 @@ class IssueTest < ActiveSupport::TestCase
|
||||
User.current = user_in_asia
|
||||
assert issue.overdue?
|
||||
end
|
||||
|
||||
def test_closable
|
||||
issue10 = Issue.find(10)
|
||||
assert issue10.closable?
|
||||
assert_nil issue10.transition_warning
|
||||
|
||||
# Issue blocked by another issue
|
||||
issue9 = Issue.find(9)
|
||||
assert !issue9.closable?
|
||||
assert_equal l(:notice_issue_not_closable_by_blocking_issue), issue9.transition_warning
|
||||
end
|
||||
|
||||
def test_reopenable
|
||||
parent = Issue.generate!(:status_id => 5)
|
||||
child = parent.generate_child!(:status_id => 5)
|
||||
|
||||
assert !child.reopenable?
|
||||
assert_equal l(:notice_issue_not_reopenable_by_closed_parent_issue), child.transition_warning
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user