Skip to content

Instantly share code, notes, and snippets.

@citrus
Created July 29, 2020 18:13
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 citrus/22f59f18aa44e6da6d417a721a40f945 to your computer and use it in GitHub Desktop.
Save citrus/22f59f18aa44e6da6d417a721a40f945 to your computer and use it in GitHub Desktop.
Transaction rollback failing
TransactionTest
test:Transaction should properly save record. PASS (0.07s)
Validation failed: Url can't be blank
test:Transaction should rollback record. FAIL (0.03s)
Expected: false
Actual: true
minitest (5.14.1) lib/minitest/assertions.rb:183:in `assert'
minitest (5.14.1) lib/minitest/assertions.rb:218:in `assert_equal'
test/test_helper.rb:129:in `assert_equal'
test/transaction_test.rb:25:in `block in <class:TransactionTest>'
test/transaction_test.rb:23:in `instance_exec'
test/transaction_test.rb:23:in `block in create_test_from_should_hash'
minitest (5.14.1) lib/minitest/test.rb:98:in `block (3 levels) in run'
minitest (5.14.1) lib/minitest/test.rb:195:in `capture_exceptions'
minitest (5.14.1) lib/minitest/test.rb:95:in `block (2 levels) in run'
minitest (5.14.1) lib/minitest.rb:272:in `time_it'
minitest (5.14.1) lib/minitest/test.rb:94:in `block in run'
minitest (5.14.1) lib/minitest.rb:367:in `on_signal'
minitest (5.14.1) lib/minitest/test.rb:211:in `with_info_handler'
minitest (5.14.1) lib/minitest/test.rb:93:in `run'
minitest-reporters (1.4.2) lib/minitest/reporters.rb:48:in `run_with_hooks'
minitest (5.14.1) lib/minitest.rb:1029:in `run_one_method'
minitest (5.14.1) lib/minitest.rb:341:in `run_one_method'
minitest (5.14.1) lib/minitest.rb:328:in `block (2 levels) in run'
minitest (5.14.1) lib/minitest.rb:327:in `each'
minitest (5.14.1) lib/minitest.rb:327:in `block in run'
minitest (5.14.1) lib/minitest.rb:367:in `on_signal'
minitest (5.14.1) lib/minitest.rb:354:in `with_info_handler'
minitest (5.14.1) lib/minitest.rb:326:in `run'
railties (5.2.4) lib/rails/test_unit/line_filtering.rb:10:in `run'
minitest (5.14.1) lib/minitest.rb:164:in `block in __run'
minitest (5.14.1) lib/minitest.rb:164:in `map'
minitest (5.14.1) lib/minitest.rb:164:in `__run'
minitest (5.14.1) lib/minitest.rb:141:in `run'
minitest (5.14.1) lib/minitest.rb:68:in `block in autorun'
Finished in 0.10796s
2 tests, 2 assertions, 1 failures, 0 errors, 0 skips
require 'test_helper'
class TransactionTest < ActiveSupport::TestCase
should "properly save record" do
@record = Redirect.new(url: 'http://google.com')
ActiveRecord::Base.transaction do
@record.save!
rescue ActiveRecord::RecordInvalid
raise ActiveRecord::Rollback
end
assert_equal true, @record.persisted?
end
should "rollback record" do
@record = Redirect.new(url: 'http://google.com')
ActiveRecord::Base.transaction do
@record.save! # persist record
@record.url = nil
@record.save! # save again
rescue ActiveRecord::RecordInvalid => e
puts e.message
raise ActiveRecord::Rollback
end
assert_equal false, @record.persisted?
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment