Add a with_history trait for node factories, to automatically create corresponding...
authorAndy Allan <git@gravitystorm.co.uk>
Thu, 30 Mar 2017 08:31:22 +0000 (09:31 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Thu, 30 Mar 2017 08:31:22 +0000 (09:31 +0100)
test/factories/node.rb
test/models/redaction_test.rb

index 85eded4054ba42bebe350bae2186b413ed7224d0..8daadd35ad074258da98c6c2050cabf7ce2ed0bb 100644 (file)
@@ -8,5 +8,13 @@ FactoryGirl.define do
     visible true
     timestamp Time.now
     version 1
+
+    trait :with_history do
+      after(:create) do |node, _evaluator|
+        (1..node.version).each do |n|
+          create(:old_node, :node_id => node.id, :version => n)
+        end
+      end
+    end
   end
 end
index 7ea3e458d1138dc2d52dc66a591f383b0255dbf7..2e629867b6996e8ce960fdbd905fd3df68a06d9c 100644 (file)
@@ -12,8 +12,8 @@ class RedactionTest < ActiveSupport::TestCase
   end
 
   def test_cannot_redact_current_via_old
-    node = create(:node)
-    node_v1 = create(:old_node, :node_id => node.id)
+    node = create(:node, :with_history)
+    node_v1 = node.old_nodes.find_by(:version => 1)
     r = create(:redaction)
     assert_equal(false, node_v1.redacted?, "Expected node to not be redacted already.")
     assert_raise(OSM::APICannotRedactError) do
@@ -22,9 +22,9 @@ class RedactionTest < ActiveSupport::TestCase
   end
 
   def test_can_redact_old
-    node = create(:node, :version => 2)
-    node_v1 = create(:old_node, :node_id => node.id)
-    node_v2 = create(:old_node, :node_id => node.id, :version => 2)
+    node = create(:node, :with_history, :version => 2)
+    node_v1 = node.old_nodes.find_by(:version => 1)
+    node_v2 = node.old_nodes.find_by(:version => 2)
     r = create(:redaction)
 
     assert_equal(false, node_v1.redacted?, "Expected node to not be redacted already.")