Fix an issue with the report verification, causing it to lose the text of a report if the user fails to fill in a category.
By using a `render` instead of a `redirect_to`, the rails standard verification behaviour works better. It means we also get a nice red "can't be blank" message highlighting the specific missing field.
redirect_to helpers.reportable_url(@report.issue.reportable), :notice => t(".successful_report")
else
redirect_to helpers.reportable_url(@report.issue.reportable), :notice => t(".successful_report")
else
- redirect_to new_report_path(:reportable_type => @report.issue.reportable_type, :reportable_id => @report.issue.reportable_id), :notice => t(".provide_details")
+ flash[:notice] = t(".provide_details")
+ render :action => "new"
category = "other"
post reports_path(:report => {
:category => category,
category = "other"
post reports_path(:report => {
:category => category,
- :issue => { :reportable_id => 1, :reportable_type => "User" }
+ :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
- assert_response :redirect
+ assert_response :success
+ assert_template :new
+ assert_match(/Please provide the required details/, flash[:notice])
assert_equal 1, issue.reports.count
end
assert_equal 1, issue.reports.count
end