X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/b78bb9f6313f3139ac83784df52bf39a5619d3e7..c6ef508874a1a75db692214dfc7712e46796f461:/test/factories/node.rb?ds=inline

diff --git a/test/factories/node.rb b/test/factories/node.rb
index 697a5c1ae..bfb8b16fe 100644
--- a/test/factories/node.rb
+++ b/test/factories/node.rb
@@ -1,13 +1,31 @@
-FactoryGirl.define do
+FactoryBot.define do
   factory :node do
-    latitude 1 * GeoRecord::SCALE
-    longitude 1 * GeoRecord::SCALE
+    latitude { 1 * GeoRecord::SCALE }
+    longitude { 1 * GeoRecord::SCALE }
 
-    # FIXME: needs changeset factory
-    changeset_id 1
+    changeset
 
-    visible true
-    timestamp Time.now
-    version 1
+    visible { true }
+    timestamp { Time.now.utc }
+    version { 1 }
+
+    trait :deleted do
+      visible { false }
+    end
+
+    trait :with_history do
+      after(:create) do |node, _evaluator|
+        (1..node.version).each do |n|
+          create(:old_node, :node_id => node.id, :version => n, :latitude => node.latitude, :longitude => node.longitude, :changeset => node.changeset)
+        end
+
+        # For deleted nodes, make sure the most recent old_node is also deleted.
+        if node.visible == false
+          latest = node.old_nodes.find_by(:version => node.version)
+          latest.visible = false
+          latest.save
+        end
+      end
+    end
   end
 end