require "test_helper"
class IssueTest < ActiveSupport::TestCase
+ def test_assigned_role
+ issue = create(:issue)
+
+ assert issue.valid?
+ issue.assigned_role = "bogus"
+ assert_not issue.valid?
+ end
+
def test_reported_user
- note = create(:note_comment, :author => create(:user)).note
- user = create(:user)
create(:language, :code => "en")
+ user = create(:user)
+ note = create(:note_comment, :author => create(:user)).note
+ anonymous_note = create(:note_comment, :author => nil).note
diary_entry = create(:diary_entry)
- issue = Issue.new
+ diary_comment = create(:diary_comment, :diary_entry => diary_entry)
- issue.reportable = user
+ issue = build(:issue, :reportable => user, :assigned_role => "administrator")
issue.save!
assert_equal issue.reported_user, user
- # FIXME: doesn't handle anonymous notes
- issue.reportable = note
+ issue = build(:issue, :reportable => note, :assigned_role => "administrator")
issue.save!
assert_equal issue.reported_user, note.author
- issue.reportable = diary_entry
+ issue = build(:issue, :reportable => anonymous_note, :assigned_role => "administrator")
issue.save!
- assert_equal issue.reported_user, diary_entry.user
- end
-
- def test_default_assigned_role
- create(:language, :code => "en")
- diary_entry = create(:diary_entry)
- changeset = create(:changeset)
+ assert_nil issue.reported_user
- issue = Issue.new
- issue.reportable = diary_entry
+ issue = build(:issue, :reportable => diary_entry, :assigned_role => "administrator")
issue.save!
- assert_equal "administrator", issue.assigned_role
-
- issue = Issue.new
- issue.reportable = changeset
- issue.save!
- assert_equal "moderator", issue.assigned_role
+ assert_equal issue.reported_user, diary_entry.user
- # check the callback doesn't override an explicitly set role
- issue.assigned_role = "administrator"
+ issue = build(:issue, :reportable => diary_comment, :assigned_role => "administrator")
issue.save!
- issue.reload
- assert_equal "administrator", issue.assigned_role
+ assert_equal issue.reported_user, diary_comment.user
end
end