]> git.openstreetmap.org Git - rails.git/blob - test/models/diary_entry_test.rb
Enable PostGIS
[rails.git] / test / models / diary_entry_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class DiaryEntryTest < ActiveSupport::TestCase
6   def test_diary_entry_validations
7     diary_entry_valid({})
8     diary_entry_valid({ :title => "" }, :valid => false)
9     diary_entry_valid({ :title => "a" * 255 })
10     diary_entry_valid({ :title => "a" * 256 }, :valid => false)
11     diary_entry_valid({ :body => "" }, :valid => false)
12     diary_entry_valid({ :body => "x" }, :valid => true)
13     diary_entry_valid({ :body => "x" * 262144 }, :valid => true)
14     diary_entry_valid({ :body => "x" * 262145 }, :valid => false)
15     diary_entry_valid({ :latitude => 90 })
16     diary_entry_valid({ :latitude => 90.00001 }, :valid => false)
17     diary_entry_valid({ :latitude => -90 })
18     diary_entry_valid({ :latitude => -90.00001 }, :valid => false)
19     diary_entry_valid({ :longitude => 180 })
20     diary_entry_valid({ :longitude => 180.00001 }, :valid => false)
21     diary_entry_valid({ :longitude => -180 })
22     diary_entry_valid({ :longitude => -180.00001 }, :valid => false)
23   end
24
25   def test_diary_entry_visible
26     visible = create(:diary_entry)
27     hidden = create(:diary_entry, :visible => false)
28     assert_includes DiaryEntry.visible, visible
29     assert_raise ActiveRecord::RecordNotFound do
30       DiaryEntry.visible.find(hidden.id)
31     end
32   end
33
34   def test_diary_entry_comments
35     diary = create(:diary_entry)
36     assert_equal(0, diary.comments.count)
37     create(:diary_comment, :diary_entry => diary)
38     assert_equal(1, diary.comments.count)
39   end
40
41   def test_diary_entry_visible_comments
42     diary = create(:diary_entry)
43     create(:diary_comment, :diary_entry => diary)
44     create(:diary_comment, :diary_entry => diary, :visible => false)
45     assert_equal 1, diary.visible_comments.count
46     assert_equal 2, diary.comments.count
47   end
48
49   def test_visible_subscribers
50     commenter1 = create(:user)
51     commenter2 = create(:user, :suspended)
52     commenter3 = create(:user)
53     diary_entry = create(:diary_entry)
54     create(:diary_entry_subscription, :diary_entry => diary_entry, :user => commenter1)
55     create(:diary_entry_subscription, :diary_entry => diary_entry, :user => commenter2)
56     create(:diary_entry_subscription, :diary_entry => diary_entry, :user => commenter3)
57
58     assert_equal diary_entry.visible_subscribers.sort, [commenter1, commenter3].sort
59   end
60
61   private
62
63   def diary_entry_valid(attrs, valid: true)
64     entry = build(:diary_entry, attrs)
65     assert_equal valid, entry.valid?, "Expected #{attrs.inspect} to be #{valid}"
66   end
67 end