-
-
Save cupakromer/79d3f4255ec63ed51cad to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Reasons for needing: