]> git.openstreetmap.org Git - rails.git/blobdiff - test/models/issue_test.rb
Merge remote-tracking branch 'upstream/pull/5315'
[rails.git] / test / models / issue_test.rb
index 49649eede79c5279f9dad1e1d0afdf39d7d1d920..b2a868a93f7d62e94576f7abee33155165a1d2af 100644 (file)
@@ -1,46 +1,40 @@
 require "test_helper"
 
 class IssueTest < ActiveSupport::TestCase
+  def test_assigned_role
+    issue = create(:issue)
+
+    assert_predicate issue, :valid?
+    issue.assigned_role = "bogus"
+    assert_not_predicate 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