Merge remote-tracking branch 'openstreetmap/pull/1279'
authorTom Hughes <tom@compton.nu>
Thu, 8 Sep 2016 18:26:07 +0000 (19:26 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 8 Sep 2016 18:26:07 +0000 (19:26 +0100)
Gemfile
Gemfile.lock
test/factories/diary_comments.rb [new file with mode: 0644]
test/factories/diary_entries.rb [new file with mode: 0644]
test/models/diary_comment_test.rb
test/models/diary_entry_test.rb
test/test_helper.rb

diff --git a/Gemfile b/Gemfile
index 07bb60c68858f7763df60f128b8a12e15829d237..27f457d03dce79b02c0a9e4a3cbf51b00439e749 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -109,5 +109,6 @@ group :development, :test do
   gem "jshint"
   gem "konacha"
   gem "poltergeist"
+  gem "factory_girl_rails"
   gem "coveralls", :require => false
 end
index d8c141f69c3bb08168887cc2d0b87b6c2e34097e..5a9456b35b34183b587e5567abda772e757a588b 100644 (file)
@@ -83,6 +83,11 @@ GEM
     erubis (2.7.0)
     execjs (2.7.0)
     exifr (1.2.4)
+    factory_girl (4.7.0)
+      activesupport (>= 3.0.0)
+    factory_girl_rails (4.7.0)
+      factory_girl (~> 4.7.0)
+      railties (>= 3.0.0)
     faraday (0.9.2)
       multipart-post (>= 1.2, < 3)
     fspath (2.1.1)
@@ -316,6 +321,7 @@ DEPENDENCIES
   dalli
   deadlock_retry (>= 1.2.0)
   dynamic_form
+  factory_girl_rails
   faraday
   htmlentities
   http_accept_language (~> 2.0.0)
diff --git a/test/factories/diary_comments.rb b/test/factories/diary_comments.rb
new file mode 100644 (file)
index 0000000..810bd2f
--- /dev/null
@@ -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 (file)
index 0000000..d00a97d
--- /dev/null
@@ -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
index a32c153f9a7eac6784e33100a7468836affbe8bb..908c79bfa6cc85c79e58eb37d8342a533d493024 100644 (file)
@@ -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
+  def test_diary_comment_exists
+    comment = create(:diary_comment)
+    assert_includes DiaryComment.all, comment
   end
 end
index 58e6513a642042069a4940a2686d3b82adac8634..5586b74d2e7b5d0c939e8ce50ae50199689daa9f 100644 (file)
@@ -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,27 +18,33 @@ 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)
+    assert_equal(0, diary.comments.count)
+    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.assign_attributes(attrs)
+    entry = build(:diary_entry, attrs)
     assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
   end
 end
index 0baf922704d24af5c7f3ecf7a32ef443868a479e..419ea18063bd5873197a3c1388fc31932a5f0256 100644 (file)
@@ -8,6 +8,8 @@ load "composite_primary_keys/fixtures.rb"
 
 module ActiveSupport
   class TestCase
+    include FactoryGirl::Syntax::Methods
+
     # Load standard fixtures needed to test API methods
     def self.api_fixtures
       # print "setting up the api_fixtures"