openstreetmap-website/test/system/report_diary_entry_test.rb
2023-09-26 18:42:57 +01:00

65 lines
1.9 KiB
Ruby

require "application_system_test_case"
class ReportDiaryEntryTest < ApplicationSystemTestCase
def setup
create(:language, :code => "en")
@diary_entry = create(:diary_entry)
end
def test_no_link_when_not_logged_in
visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
assert_content @diary_entry.title
assert_no_content I18n.t("diary_entries.diary_entry.report")
end
def test_it_works
sign_in_as(create(:user))
visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
assert_content @diary_entry.title
click_link I18n.t("diary_entries.diary_entry.report")
assert_content "Report"
assert_content I18n.t("reports.new.disclaimer.intro")
choose I18n.t("reports.new.categories.diary_entry.spam_label")
fill_in "report_details", :with => "This is advertising"
assert_difference "Issue.count", 1 do
click_button "Create Report"
end
assert_content "Your report has been registered successfully"
assert_equal @diary_entry, Issue.last.reportable
assert_equal "administrator", Issue.last.assigned_role
end
def test_it_reopens_issue
issue = create(:issue, :reportable => @diary_entry)
issue.resolve!
sign_in_as(create(:user))
visit diary_entry_path(@diary_entry.user.display_name, @diary_entry)
assert_content @diary_entry.title
click_link I18n.t("diary_entries.diary_entry.report")
assert_content "Report"
assert_content I18n.t("reports.new.disclaimer.intro")
choose I18n.t("reports.new.categories.diary_entry.spam_label")
fill_in "report_details", :with => "This is advertising"
assert_no_difference "Issue.count" do
click_button "Create Report"
end
issue.reload
assert_not issue.resolved?
assert_predicate issue, :open?
end
def test_missing_report_params
sign_in_as(create(:user))
visit new_report_path
assert_content I18n.t("reports.new.missing_params")
end
end