comment = @issue.comments.build(issue_comment_params)
comment.user = current_user
comment.save!
- notice = t(".comment_created")
- reassign_issue(@issue) if params[:reassign]
- redirect_to @issue, :notice => notice
+
+ if params[:reassign]
+ reassign_issue(@issue)
+ flash[:notice] = t ".issue_reassigned"
+
+ if current_user.has_role? @issue.assigned_role
+ redirect_to @issue
+ else
+ redirect_to issues_path
+ end
+ else
+ flash[:notice] = t(".comment_created")
+ redirect_to @issue
+ end
end
private
issue_comments:
create:
comment_created: Your comment was successfully created
+ issue_reassigned: Your comment was created and the issue was reassigned
reports:
new:
title_html: "Report %{link}"
check :reassign
click_on "Add Comment"
+ assert_content "and the issue was reassigned"
+ assert_current_path issues_path
+
issue.reload
assert_equal "moderator", issue.assigned_role
end
+ def test_reassign_issue_as_super_user
+ issue = create(:issue)
+ sign_in_as(create(:super_user))
+
+ visit issue_path(issue)
+
+ fill_in :issue_comment_body, :with => "reassigning to moderators"
+ check :reassign
+ click_on "Add Comment"
+
+ assert_content "and the issue was reassigned"
+ assert_current_path issue_path(issue)
+ end
+
def test_issue_index_with_multiple_roles
user1 = create(:user)
user2 = create(:user)