Skip to content

Instantly share code, notes, and snippets.

@takkanm
Created May 24, 2016 15:16
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 takkanm/6fed8be16222bd5eb4b6b7c4f1331621 to your computer and use it in GitHub Desktop.
Save takkanm/6fed8be16222bd5eb4b6b7c4f1331621 to your computer and use it in GitHub Desktop.
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'
gem 'rails', github: 'rails/rails'
gem 'sqlite3'
end
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, force: true do |t|
end
create_table :comments, force: true do |t|
t.integer :post_id
t.integer :state
end
end
class Post < ActiveRecord::Base
has_one :comment # has_many is work.
end
class Comment < ActiveRecord::Base
belongs_to :post
enum state: %i(hidden visible)
end
class BugTest < Minitest::Test
def test_association_stuff
post = Post.create!
post.create_comment(state: :hidden)
# DEBUG -- : (0.1ms) SELECT COUNT(*) FROM "posts" INNER JOIN "comments" ON "comments"."post_id" = "posts"."id" WHERE "comments"."state" = ? [["state", "hidden"]]
assert_equal 1, Post.joins(:comment).where(comments: {state: 'hidden'}).count
end
end
Fetching git://github.com/rails/rails.git
Fetching gem metadata from https://rubygems.org/
Fetching version metadata from https://rubygems.org/
Resolving dependencies...
Using rake 11.1.2
Using concurrent-ruby 1.0.2
Using i18n 0.7.0
Using minitest 5.9.0
Using thread_safe 0.3.5
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.0.0
Using json 1.8.3
Using nio4r 1.2.1
Using websocket-extensions 0.1.2
Using mime-types-data 3.2016.0521
Using arel 7.0.0
Using bundler 1.12.4
Using method_source 0.8.2
Using thor 0.19.1
Using sqlite3 1.3.11
Using tzinfo 1.2.2
Using nokogiri 1.6.7.2
Using rack 2.0.0.rc1
Using websocket-driver 0.6.4
Using mime-types 3.1
Using activesupport 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using loofah 2.0.3
Using rack-test 0.6.3
Using sprockets 3.6.0
Using mail 2.6.4
Using rails-dom-testing 2.0.0
Using globalid 0.3.6
Using activemodel 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using rails-html-sanitizer 1.0.3
Using activejob 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using activerecord 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using actionview 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using actionpack 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using actioncable 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using actionmailer 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using railties 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
Using sprockets-rails 3.0.4
Using rails 5.1.0.alpha from git://github.com/rails/rails.git (at master@61f6dc5)
-- create_table(:posts, {:force=>true})
D, [2016-05-25T00:15:35.387078 #57174] DEBUG -- : (0.2ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)
-> 0.0218s
-- create_table(:comments, {:force=>true})
D, [2016-05-25T00:15:35.387778 #57174] DEBUG -- : (0.1ms) CREATE TABLE "comments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "post_id" integer, "state" integer)
-> 0.0006s
D, [2016-05-25T00:15:35.391750 #57174] DEBUG -- : (0.1ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
D, [2016-05-25T00:15:35.402825 #57174] DEBUG -- : ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", :environment], ["LIMIT", 1]]
D, [2016-05-25T00:15:35.407952 #57174] DEBUG -- : (0.1ms) begin transaction
D, [2016-05-25T00:15:35.409583 #57174] DEBUG -- : SQL (0.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", 2016-05-24 15:15:35 UTC], ["updated_at", 2016-05-24 15:15:35 UTC]]
D, [2016-05-25T00:15:35.409904 #57174] DEBUG -- : (0.1ms) commit transaction
Run options: --seed 40115
# Running:
D, [2016-05-25T00:15:35.439051 #57174] DEBUG -- : (0.1ms) begin transaction
D, [2016-05-25T00:15:35.440775 #57174] DEBUG -- : SQL (0.2ms) INSERT INTO "posts" DEFAULT VALUES
D, [2016-05-25T00:15:35.441707 #57174] DEBUG -- : (0.1ms) commit transaction
D, [2016-05-25T00:15:35.456614 #57174] DEBUG -- : (0.1ms) begin transaction
D, [2016-05-25T00:15:35.457472 #57174] DEBUG -- : SQL (0.1ms) INSERT INTO "comments" ("post_id", "state") VALUES (?, ?) [["post_id", 1], ["state", 0]]
D, [2016-05-25T00:15:35.457675 #57174] DEBUG -- : (0.1ms) commit transaction
D, [2016-05-25T00:15:35.459695 #57174] DEBUG -- : Comment Load (0.1ms) SELECT "comments".* FROM "comments" WHERE "comments"."post_id" = ? LIMIT ? [["post_id", 1], ["LIMIT", 1]]
D, [2016-05-25T00:15:35.466045 #57174] DEBUG -- : (0.1ms) SELECT COUNT(*) FROM "posts" INNER JOIN "comments" ON "comments"."post_id" = "posts"."id" WHERE "comments"."state" = ? [["state", "hidden"]]
F
Finished in 0.035637s, 28.0607 runs/s, 28.0607 assertions/s.
1) Failure:
BugTest#test_association_stuff [template.rb:47]:
Expected: 1
Actual: 0
1 runs, 1 assertions, 1 failures, 0 errors, 0 skips
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment