Skip to content

Instantly share code, notes, and snippets.

@brunoarueira
Last active July 12, 2023 18:43
Show Gist options
  • Save brunoarueira/a0c9aeebf2726dfed9f3b615d133c09b to your computer and use it in GitHub Desktop.
Save brunoarueira/a0c9aeebf2726dfed9f3b615d133c09b to your computer and use it in GitHub Desktop.
# 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