1 # frozen_string_literal: true
 
   3 require "application_system_test_case"
 
   5 class ReportUserTest < ApplicationSystemTestCase
 
   6   def test_no_link_when_not_logged_in
 
   7     note = create(:note_with_comments)
 
   9     assert_content note.description
 
  11     assert_no_content I18n.t("users.show.report")
 
  14   def test_can_report_user
 
  16     sign_in_as(create(:user))
 
  19     click_on I18n.t("users.show.report")
 
  20     assert_content "Report"
 
  21     assert_content I18n.t("reports.new.disclaimer.intro")
 
  23     choose I18n.t("reports.new.categories.user.vandal_label")
 
  24     fill_in "report_details", :with => "This user is a vandal"
 
  25     assert_difference "Issue.count", 1 do
 
  26       click_on "Create Report"
 
  29     assert_content "Your report has been registered successfully"
 
  31     assert_equal user, Issue.last.reportable
 
  32     assert_equal "moderator", Issue.last.assigned_role
 
  35   def test_it_promotes_issues
 
  37     sign_in_as(create(:user))
 
  40     click_on I18n.t("users.show.report")
 
  41     assert_content "Report"
 
  42     assert_content I18n.t("reports.new.disclaimer.intro")
 
  44     choose I18n.t("reports.new.categories.user.vandal_label")
 
  45     fill_in "report_details", :with => "This user is a vandal"
 
  46     assert_difference "Issue.count", 1 do
 
  47       click_on "Create Report"
 
  50     assert_content "Your report has been registered successfully"
 
  52     assert_equal user, Issue.last.reportable
 
  53     assert_equal "moderator", Issue.last.assigned_role
 
  57     click_on I18n.t("users.show.report")
 
  58     assert_content "Report"
 
  59     assert_content I18n.t("reports.new.disclaimer.intro")
 
  61     choose I18n.t("reports.new.categories.user.spam_label")
 
  62     fill_in "report_details", :with => "This user is a spammer"
 
  63     assert_no_difference "Issue.count" do
 
  64       click_on "Create Report"
 
  67     assert_content "Your report has been registered successfully"
 
  69     assert_equal user, Issue.last.reportable
 
  70     assert_equal "administrator", Issue.last.assigned_role