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}"