31 lines
809 B
Ruby
31 lines
809 B
Ruby
FactoryBot.define do
|
|
factory :node do
|
|
latitude { 1 * GeoRecord::SCALE }
|
|
longitude { 1 * GeoRecord::SCALE }
|
|
|
|
changeset
|
|
|
|
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
|