Last active
July 12, 2023 18:43
-
-
Save brunoarueira/a0c9aeebf2726dfed9f3b615d133c09b 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
# frozen_string_literal: true | |
begin | |
require 'bundler/inline' | |
rescue LoadError => e | |
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' | |
raise e | |
end | |
gemfile(true) do | |
source 'https://rubygems.org' | |
git_source(:github) { |repo| "https://github.com/#{repo}.git" } | |
gem 'rails', github: 'rails/rails', branch: '6-1-stable' | |
gem 'sqlite3' | |
gem 'timeout', '0.4.0' | |
end | |
require 'active_record' | |
require 'minitest/autorun' | |
require 'logger' | |
require 'securerandom' | |
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') | |
ActiveRecord::Base.logger = Logger.new(STDOUT) | |
ActiveRecord::Schema.define do | |
create_table :users, force: true, id: :uuid do |t| | |
t.string :name | |
t.timestamps | |
end | |
end | |
class User < ActiveRecord::Base | |
validates :name, presence: true | |
end | |
class BugTest < Minitest::Test | |
def test_persisted_is_false_after_rollback | |
begin | |
ActiveRecord::Base.transaction do | |
@user = User.new(id: SecureRandom.uuid, name: 'test') | |
@user.save! | |
raise ActiveRecord::RecordInvalid | |
end | |
rescue ActiveRecord::RecordInvalid | |
assert !@user.persisted? | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment