Skip to content

grosser/test_after_commit

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Make after_commit callbacks fire in tests for Rails 3+ with transactional_fixtures = true.

Deprecation this is no longer needed on rails 5.0+ rails/rails#18458

Install

gem install test_after_commit

# Gemfile (never include in :development !)
gem 'test_after_commit', :group => :test

Usage

Test that the methods get called or the side-effect of the methods, something like:

class Car < ActiveRecord::Base
  after_commit :foo, :on => :update

  def foo
    $foo = 1
  end
end

...

it "sets $foo on commit" do
  $foo.should == nil
  car.save!
  $foo.should == 1
end

Temporary disable after commit hooks

In your test_helper, you can specify the default

TestAfterCommit.enabled = true

Then use blocks in your tests to change the behavior:

TestAfterCommit.with_commits(true) do
  my_tests
end

TestAfterCommit.with_commits(false) do
  my_tests
end

TIPS

Author

Inspired by https://gist.github.com/1305285

Contributors

Michael Grosser
michael@grosser.it
License: MIT
Build Status

About

Make after_commit callbacks fire in tests for Rails 3+ with transactional_fixtures = true.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages