Skip to content

Instantly share code, notes, and snippets.

@maclover7
Created January 30, 2016 15:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maclover7/97bf765426debab99f17 to your computer and use it in GitHub Desktop.
Save maclover7/97bf765426debab99f17 to your computer and use it in GitHub Desktop.
require 'active_record'
require 'minitest/autorun'
require 'logger'
# This connection will do for database-independent bug reports.
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Schema.define do
create_table :posts do |t|
t.string :name
t.integer :some_counter
end
end
class Post < ActiveRecord::Base
after_commit :do_something, on: :create
def do_something
logger.debug 'do_something'
increment!(:some_counter)
end
end
class BugTest < Minitest::Test
def test_after_commit_with_on_create
post = Post.create!
assert_equal 1, post.some_counter
end
def test_after_commit_with_on_create_not_triggered_on_update
post = Post.create!
assert_equal 1, post.some_counter
post.name = 'Bob'
post.save
post.reload
assert_equal 1, post.some_counter
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment