Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # transaction/truncation strategies won't work when you have a
- # capybara feature and you must preserve what's already in the
- # database
- #
- # Usage:
- # include TrackedLet
- #
- # track(:foo) { User.create }
- # track!(:foo) { User.create }
- # specify { expect(track(User.create)).to be_persisted }
- module TrackedLet
- module TrackHelper
- def track(key, &block)
- let(key) do
- instance_eval(&block).tap { |x| __test_records << x }
- end
- end
- def track!(key, &block)
- let!(key) do
- instance_eval(&block).tap { |x| __test_records << x }
- end
- end
- end
- def track(value)
- __test_records << value
- value
- end
- def self.included(mod)
- mod.extend TrackHelper
- mod.instance_eval do
- let(:__test_records) { Array.new }
- after { __test_records.each(&:destroy) }
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement