]> git.openstreetmap.org Git - rails.git/blobdiff - test/factories/traces.rb
use a controller method to handle cancan denials
[rails.git] / test / factories / traces.rb
index 3f409b3675789144da8e291b24da4a00d3915d60..efc1180cdbe7afc2c3a5c5b63f7edda94c1caec8 100644 (file)
@@ -1,10 +1,9 @@
-FactoryGirl.define do
+FactoryBot.define do
   factory :trace do
     sequence(:name) { |n| "Trace #{n}.gpx" }
     sequence(:description) { |n| "This is trace #{n}" }
 
-    # Fixme requires User Factory
-    user_id 1
+    user
 
     timestamp Time.now
     inserted true
@@ -12,5 +11,20 @@ FactoryGirl.define do
     trait :deleted do
       visible false
     end
+
+    transient do
+      fixture nil
+    end
+
+    after(:create) do |trace, evaluator|
+      if evaluator.fixture
+        File.symlink(Rails.root.join("test", "gpx", "fixtures", "#{evaluator.fixture}.gpx"),
+                     Rails.root.join("test", "gpx", "traces", "#{trace.id}.gpx"))
+        File.symlink(Rails.root.join("test", "gpx", "fixtures", "#{evaluator.fixture}.gif"),
+                     Rails.root.join("test", "gpx", "images", "#{trace.id}.gif"))
+        File.symlink(Rails.root.join("test", "gpx", "fixtures", "#{evaluator.fixture}_icon.gif"),
+                     Rails.root.join("test", "gpx", "images", "#{trace.id}_icon.gif"))
+      end
+    end
   end
 end