Mysql2::Error: This connection is still waiting for a result, try again once you have the result
Getting this error when using Capybara and Rspec within specs that are :js => true?
In this case it was caused by using this code from the Capybara docs.
class ActiveRecord::Base
mattr_accessor :shared_connection
@@shared_connection = nil
def self.connection
@@shared_connection || retrieve_connection
end
end
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
The above code, I believe, disables the connection pool, which when reading about this error seems to be one of the primary issues. Here was the solution:
# Code is from spec_helper.rb inside of RSpec.configure block
# Need the database_cleaner gem
config.use_transactional_fixtures = false
config.use_instantiated_fixtures = false
config.before(:each) do
if example.metadata[:js]
DatabaseCleaner.strategy = :truncation
else
DatabaseCleaner.strategy = :transaction
end
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
- Pushed on 07/04/2012 by Christian
