Skip to content

Instantly share code, notes, and snippets.

@coreyhaines
Last active April 12, 2022 07:24
Star You must be signed in to star a gist
Save coreyhaines/2068977 to your computer and use it in GitHub Desktop.
Active Record Spec Helper - Loading just active record
--colour
-I app
require 'active_record'
connection_info = YAML.load_file("config/database.yml")["test"]
ActiveRecord::Base.establish_connection(connection_info)
RSpec.configure do |config|
config.around do |example|
ActiveRecord::Base.transaction do
example.run
raise ActiveRecord::Rollback
end
end
end
class Coderetreat < ActiveRecord::Base
def self.running_today
where(scheduled_on: Date.today)
end
end
require 'active_record_spec_helper'
require 'models/coderetreat'
describe Coderetreat do
describe ".running_today" do
it "returns a coderetreat scheduled for today" do
coderetreat = Coderetreat.create! city: "Chicago", scheduled_on: Date.today
Coderetreat.running_today.all.should =~ [coderetreat]
end
it "does not return a coderetreat not scheduled for today" do
coderetreat = Coderetreat.create! city: "Chicago", scheduled_on: Date.today.advance(:days => -1)
Coderetreat.running_today.should be_empty
end
end
end
#Some databases get upset if you try to start a new transaction while a transaction is already in play, so running the whole spec suite chokes when rspec is trying to start a transaction. You need to update your spec_helper to rely on active_record_spec_helper to do this for you.
#Replace this line
config.use_transactional_fixtures = true
#With this
require 'active_record_spec_helper'
#TADA
@christianrolle
Copy link

Did anyone came up with a solution to the question of georgemillo? I also struggle with the idea of loading all dependent models, which is undesireable to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment