1 # frozen_string_literal: true
5 class DiaryEntryTest < ActiveSupport::TestCase
7 # Create the default language for diary entries
8 create(:language, :code => "en")
11 def test_diary_entry_validations
13 diary_entry_valid({ :title => "" }, :valid => false)
14 diary_entry_valid({ :title => "a" * 255 })
15 diary_entry_valid({ :title => "a" * 256 }, :valid => false)
16 diary_entry_valid({ :body => "" }, :valid => false)
17 diary_entry_valid({ :body => "x" }, :valid => true)
18 diary_entry_valid({ :body => "x" * 262144 }, :valid => true)
19 diary_entry_valid({ :body => "x" * 262145 }, :valid => false)
20 diary_entry_valid({ :latitude => 90 })
21 diary_entry_valid({ :latitude => 90.00001 }, :valid => false)
22 diary_entry_valid({ :latitude => -90 })
23 diary_entry_valid({ :latitude => -90.00001 }, :valid => false)
24 diary_entry_valid({ :longitude => 180 })
25 diary_entry_valid({ :longitude => 180.00001 }, :valid => false)
26 diary_entry_valid({ :longitude => -180 })
27 diary_entry_valid({ :longitude => -180.00001 }, :valid => false)
30 def test_diary_entry_visible
31 visible = create(:diary_entry)
32 hidden = create(:diary_entry, :visible => false)
33 assert_includes DiaryEntry.visible, visible
34 assert_raise ActiveRecord::RecordNotFound do
35 DiaryEntry.visible.find(hidden.id)
39 def test_diary_entry_comments
40 diary = create(:diary_entry)
41 assert_equal(0, diary.comments.count)
42 create(:diary_comment, :diary_entry => diary)
43 assert_equal(1, diary.comments.count)
46 def test_diary_entry_visible_comments
47 diary = create(:diary_entry)
48 create(:diary_comment, :diary_entry => diary)
49 create(:diary_comment, :diary_entry => diary, :visible => false)
50 assert_equal 1, diary.visible_comments.count
51 assert_equal 2, diary.comments.count
56 def diary_entry_valid(attrs, valid: true)
57 entry = build(:diary_entry, attrs)
58 assert_equal valid, entry.valid?, "Expected #{attrs.inspect} to be #{valid}"