-
-
Notifications
You must be signed in to change notification settings - Fork 810
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1191 from yahonda/run_bug_report_templates
Move bug report templates into ransack repository and run templates at CI
- Loading branch information
Showing
4 changed files
with
167 additions
and
2 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
78 changes: 78 additions & 0 deletions
78
bug_report_templates/test-ransack-scope-and-column-same-name.rb
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# test-ransack-scope-and-column-same-name.rb | ||
|
||
# This is a stand-alone test case. | ||
|
||
# Run it in your console with: `ruby test-ransack-scope-and-column-same-name.rb` | ||
|
||
# If you change the gem dependencies, run it with: | ||
# `rm gemfile* && ruby test-ransack-scope-and-column-same-name.rb` | ||
|
||
unless File.exist?('Gemfile') | ||
File.write('Gemfile', <<-GEMFILE) | ||
source 'https://rubygems.org' | ||
# Rails master | ||
gem 'rails', github: 'rails/rails', branch: '6-1-stable' | ||
# Rails last release | ||
# gem 'rails' | ||
gem 'sqlite3' | ||
gem 'ransack', github: 'activerecord-hackery/ransack' | ||
GEMFILE | ||
|
||
system 'bundle install' | ||
end | ||
|
||
require 'bundler' | ||
Bundler.setup(:default) | ||
|
||
require 'active_record' | ||
require 'minitest/autorun' | ||
require 'logger' | ||
require 'ransack' | ||
|
||
# This connection will do for database-independent bug reports. | ||
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') | ||
ActiveRecord::Base.logger = Logger.new(STDOUT) | ||
|
||
# Display versions. | ||
message = "Running test case with Ruby #{RUBY_VERSION}, Active Record #{ | ||
::ActiveRecord::VERSION::STRING}, Arel #{Arel::VERSION} and #{ | ||
::ActiveRecord::Base.connection.adapter_name}" | ||
line = '=' * message.length | ||
puts line, message, line | ||
|
||
ActiveRecord::Schema.define do | ||
create_table :users, force: true do |t| | ||
t.boolean :active, null: false, default: true | ||
end | ||
end | ||
|
||
class User < ActiveRecord::Base | ||
scope :activated, -> (boolean = true) { where(active: boolean) } | ||
|
||
private | ||
|
||
def self.ransackable_scopes(auth_object = nil) | ||
%i(activated) | ||
end | ||
end | ||
|
||
class BugTest < Minitest::Test | ||
def test_activated_scope_equals_true | ||
sql = User.ransack({ activated: true }).result.to_sql | ||
puts sql | ||
assert_equal( | ||
"SELECT \"users\".* FROM \"users\" WHERE \"users\".\"active\" = 1", sql | ||
) | ||
end | ||
|
||
def test_activated_scope_equals_false | ||
sql = User.ransack({ activated: false }).result.to_sql | ||
puts sql | ||
assert_equal( | ||
"SELECT \"users\".* FROM \"users\"", sql | ||
) | ||
end | ||
end |
71 changes: 71 additions & 0 deletions
71
bug_report_templates/test-ransacker-arel-present-predicate.rb
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
# test-ransacker-arel-present-predicate.rb | ||
|
||
# Run it in your console with: `ruby test-ransacker-arel-present-predicate.rb` | ||
|
||
# If you change the gem dependencies, run it with: | ||
# `rm gemfile* && ruby test-ransacker-arel-present-predicate.rb` | ||
|
||
unless File.exist?('Gemfile') | ||
File.write('Gemfile', <<-GEMFILE) | ||
source 'https://rubygems.org' | ||
# Rails master | ||
gem 'rails', github: 'rails/rails', branch: '6-1-stable' | ||
# Rails last release | ||
# gem 'rails' | ||
gem 'sqlite3' | ||
gem 'ransack', github: 'activerecord-hackery/ransack' | ||
GEMFILE | ||
|
||
system 'bundle install' | ||
end | ||
|
||
require 'bundler' | ||
Bundler.setup(:default) | ||
|
||
require 'active_record' | ||
require 'minitest/autorun' | ||
require 'logger' | ||
require 'ransack' | ||
|
||
# This connection will do for database-independent bug reports. | ||
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:') | ||
ActiveRecord::Base.logger = Logger.new(STDOUT) | ||
|
||
# Display versions. | ||
message = "Running test case with Ruby #{RUBY_VERSION}, Active Record #{ | ||
::ActiveRecord::VERSION::STRING}, Arel #{Arel::VERSION} and #{ | ||
::ActiveRecord::Base.connection.adapter_name}" | ||
line = '=' * message.length | ||
puts line, message, line | ||
|
||
ActiveRecord::Schema.define do | ||
create_table :projects, force: true do |t| | ||
t.string :name | ||
t.string :number | ||
end | ||
end | ||
|
||
class Project < ActiveRecord::Base | ||
ransacker :name do | ||
Arel.sql('projects.name') | ||
end | ||
|
||
ransacker :number do |parent| | ||
parent.table[:number] | ||
end | ||
end | ||
|
||
class BugTest < Minitest::Test | ||
def test_ransackers | ||
sql = Project.ransack({ number_present: 1 }).result.to_sql | ||
puts sql | ||
assert_equal "SELECT \"projects\".* FROM \"projects\" WHERE (\"projects\".\"number\" IS NOT NULL AND \"projects\".\"number\" != '')", sql | ||
|
||
sql = Project.ransack({ name_present: 1 }).result.to_sql | ||
puts sql | ||
assert_equal "SELECT \"projects\".* FROM \"projects\" WHERE (projects.name IS NOT NULL AND projects.name != '')", sql | ||
end | ||
end |