]> git.openstreetmap.org Git - rails.git/blob - test/models/diary_entry_test.rb
Merge pull request #5932 from tomhughes/frozen-strings
[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 setup
7     # Create the default language for diary entries
8     create(:language, :code => "en")
9   end
10
11   def test_diary_entry_validations
12     diary_entry_valid({})
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)
28   end
29
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)
36     end
37   end
38
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)
44   end
45
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
52   end
53
54   private
55
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}"
59   end
60 end