Skip to content

Commit

Permalink
add real test agains active record
Browse files Browse the repository at this point in the history
  • Loading branch information
dubadub committed Jun 2, 2019
1 parent 4b70e7a commit 7d3609e
Show file tree
Hide file tree
Showing 12 changed files with 233 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@
# rspec failure tracking
.rspec_status
*.gemfile.lock
.DS_Store
77 changes: 77 additions & 0 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -1,28 +1,105 @@
appraise "activerecord-6.0rc1" do
gem "activerecord", "~>6.0.0.rc1", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "pg", "~> 1.1.4"
gem "sqlite3", "~> 1.4.0"
end
end

appraise "activerecord-5.2" do
gem "activerecord", "~>5.2", require: "active_record"

gemfile.platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

gemfile.platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end
end

appraise "activerecord-5.1" do
gem "activerecord", "~>5.1", require: "active_record"

gemfile.platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

gemfile.platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end
end

appraise "activerecord-5.0" do
gem "activerecord", "~>5.0", require: "active_record"

gemfile.platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

gemfile.platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end
end

appraise "activerecord-4.2" do
gem "activerecord", "~>4.2", require: "active_record"

gemfile.platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

gemfile.platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end
end

appraise "activerecord-4.1" do
gem "activerecord", "~>4.1", require: "active_record"

gemfile.platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

gemfile.platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end
end

appraise "activerecord-4.0" do
gem "activerecord", "~>4.0", require: "active_record"

gemfile.platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

gemfile.platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end
end

11 changes: 11 additions & 0 deletions gemfiles/activerecord_4.0.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>4.0", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end

gemspec path: "../"
11 changes: 11 additions & 0 deletions gemfiles/activerecord_4.1.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>4.1", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end

gemspec path: "../"
11 changes: 11 additions & 0 deletions gemfiles/activerecord_4.2.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>4.2", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end

gemspec path: "../"
11 changes: 11 additions & 0 deletions gemfiles/activerecord_5.0.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>5.0", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end

gemspec path: "../"
11 changes: 11 additions & 0 deletions gemfiles/activerecord_5.1.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>5.1", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end

gemspec path: "../"
11 changes: 11 additions & 0 deletions gemfiles/activerecord_5.2.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>5.2", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "sqlite3", "~> 1.3.0"
gem "pg", "~> 0.21"
end

gemspec path: "../"
11 changes: 11 additions & 0 deletions gemfiles/activerecord_6.0rc1.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ source "https://rubygems.org"

gem "activerecord", "~>6.0.0.rc1", require: "active_record"

platforms :jruby do
gem "activerecord-jdbcsqlite3-adapter"
gem "jdbc-sqlite3"
gem "jdbc-postgres"
end

platforms :ruby, :mswin, :mingw do
gem "pg", "~> 1.1.4"
gem "sqlite3", "~> 1.4.0"
end

gemspec path: "../"
33 changes: 33 additions & 0 deletions spec/active_record_intergration_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
RSpec.describe "Integration with ActiveRecord" do
before :each do
define_db_schema do
create_table(:parents) do |t|
t.string :status
t.timestamps null: false
end

create_table(:children) do |t|
t.integer :parent_id
t.timestamps null: false
end
end

class Parent < ActiveRecord::Base
has_many :children, -> { order(id: :desc) }
end

class Child < ActiveRecord::Base
belongs_to :parent
end
end

it "filters parents" do
class MyFilter < ActionFilter::Base
field :status
end

filter = MyFilter.new(status: "pending")

expect(Parent.all.merge(filter).to_sql).to eq("SELECT \"parents\".* FROM \"parents\" WHERE \"parents\".\"status\" = 'pending'")
end
end
6 changes: 6 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

Bundler.require

# Add support to load paths
$LOAD_PATH.unshift File.expand_path("support", __dir__)
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }

RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure
config.example_status_persistence_file_path = ".rspec_status"
Expand All @@ -16,4 +20,6 @@
config.expect_with :rspec do |c|
c.syntax = :expect
end

config.include SQLHelpers
end
39 changes: 39 additions & 0 deletions spec/support/sql_helpers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
module SQLHelpers

def connect_db
# ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.logger = nil

if ENV["DB"] == "sqlite"
connect_sqlite
elsif ENV["DB"] == "postgres"
connect_postgres
else
raise StandardError, "database not supported, provide it in ENV['DB']. Supported versions are: 'sqlite' and 'postgres'."
end
end

def define_db_schema(&block)
connect_db
ActiveRecord::Migration.verbose = false
ActiveRecord::Schema.define(&block)
end

private

def connect_sqlite
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
end

def connect_postgres
ActiveRecord::Base.establish_connection(adapter: "postgresql", host: "localhost",
database: "postgres", schema_search_path: "public")

ActiveRecord::Base.connection.drop_database("action_filter_postgresql_spec")
ActiveRecord::Base.connection.create_database("action_filter_postgresql_spec",
encoding: "utf-8", adapter: "postgresql")

ActiveRecord::Base.establish_connection(adapter: "postgresql", host: "localhost",
database: "action_filter_postgresql_spec")
end
end

0 comments on commit 7d3609e

Please sign in to comment.