From 3b3f328ae4427ba0d1e3700ceabf7d0870f78dbd Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Wed, 7 Sep 2016 16:26:27 +0100 Subject: [PATCH 1/1] Rework DiaryEntry and DiaryComment model tests to use factories. Since the database also contains fixtures from other tests, some counts are dropped and instead tested for inclusion in the results. --- test/factories/diary_comments.rb | 10 ++++++++++ test/factories/diary_entries.rb | 9 +++++++++ test/models/diary_comment_test.rb | 6 ++---- test/models/diary_entry_test.rb | 27 +++++++++++++-------------- 4 files changed, 34 insertions(+), 18 deletions(-) create mode 100644 test/factories/diary_comments.rb create mode 100644 test/factories/diary_entries.rb diff --git a/test/factories/diary_comments.rb b/test/factories/diary_comments.rb new file mode 100644 index 000000000..810bd2f7a --- /dev/null +++ b/test/factories/diary_comments.rb @@ -0,0 +1,10 @@ +FactoryGirl.define do + factory :diary_comment do + sequence(:body) { |n| "This is diary comment #{n}" } + + diary_entry + + # Fixme requires User Factory + user_id 1 + end +end diff --git a/test/factories/diary_entries.rb b/test/factories/diary_entries.rb new file mode 100644 index 000000000..d00a97dc5 --- /dev/null +++ b/test/factories/diary_entries.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do + factory :diary_entry do + sequence(:title) { |n| "Diary entry #{n}" } + sequence(:body) { |n| "This is diary entry #{n}" } + + # Fixme requires User Factory + user_id 1 + end +end diff --git a/test/models/diary_comment_test.rb b/test/models/diary_comment_test.rb index a32c153f9..13d035ce7 100644 --- a/test/models/diary_comment_test.rb +++ b/test/models/diary_comment_test.rb @@ -1,10 +1,8 @@ require "test_helper" class DiaryCommentTest < ActiveSupport::TestCase - api_fixtures - fixtures :diary_comments - def test_diary_comment_count - assert_equal 4, DiaryComment.count + comment = create(:diary_comment) + assert_includes DiaryComment.all, comment end end diff --git a/test/models/diary_entry_test.rb b/test/models/diary_entry_test.rb index 58e6513a6..ba70c5228 100644 --- a/test/models/diary_entry_test.rb +++ b/test/models/diary_entry_test.rb @@ -1,13 +1,6 @@ require "test_helper" class DiaryEntryTest < ActiveSupport::TestCase - api_fixtures - fixtures :diary_entries, :diary_comments, :languages - - def test_diary_entry_count - assert_equal 6, DiaryEntry.count - end - def test_diary_entry_validations diary_entry_valid({}) diary_entry_valid({ :title => "" }, false) @@ -25,26 +18,32 @@ class DiaryEntryTest < ActiveSupport::TestCase end def test_diary_entry_visible - assert_equal 5, DiaryEntry.visible.count + visible = create(:diary_entry) + hidden = create(:diary_entry, :visible => false) + assert_includes DiaryEntry.visible, visible assert_raise ActiveRecord::RecordNotFound do - DiaryEntry.visible.find(diary_entries(:deleted_entry).id) + DiaryEntry.visible.find(hidden.id) end end def test_diary_entry_comments - assert_equal 0, diary_entries(:normal_user_entry_1).comments.count - assert_equal 4, diary_entries(:normal_user_geo_entry).comments.count + diary = create(:diary_entry) + create(:diary_comment, :diary_entry => diary) + assert_equal(1, diary.comments.count) end def test_diary_entry_visible_comments - assert_equal 0, diary_entries(:normal_user_entry_1).visible_comments.count - assert_equal 1, diary_entries(:normal_user_geo_entry).visible_comments.count + diary = create(:diary_entry) + create(:diary_comment, :diary_entry => diary) + create(:diary_comment, :diary_entry => diary, :visible => false) + assert_equal 1, diary.visible_comments.count + assert_equal 2, diary.comments.count end private def diary_entry_valid(attrs, result = true) - entry = DiaryEntry.new(diary_entries(:normal_user_entry_1).attributes) + entry = DiaryEntry.new(attributes_for(:diary_entry)) entry.assign_attributes(attrs) assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}" end -- 2.43.2