Advertisement
Guest User

Untitled

a guest
Jul 7th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. # transaction/truncation strategies won't work when you have a
  2. # capybara feature and you must preserve what's already in the
  3. # database
  4. #
  5. # Usage:
  6. # include TrackedLet
  7. #
  8. # track(:foo) { User.create }
  9. # track!(:foo) { User.create }
  10. # specify { expect(track(User.create)).to be_persisted }
  11.  
  12. module TrackedLet
  13. module TrackHelper
  14. def track(key, &block)
  15. let(key) do
  16. instance_eval(&block).tap { |x| __test_records << x }
  17. end
  18. end
  19.  
  20. def track!(key, &block)
  21. let!(key) do
  22. instance_eval(&block).tap { |x| __test_records << x }
  23. end
  24. end
  25. end
  26.  
  27. def track(value)
  28. __test_records << value
  29. value
  30. end
  31.  
  32. def self.included(mod)
  33. mod.extend TrackHelper
  34. mod.instance_eval do
  35. let(:__test_records) { Array.new }
  36. after { __test_records.each(&:destroy) }
  37. end
  38. end
  39. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement