Sha256: 109aee59546f01a851e6e60c2d7e5ce50881ea59cf60da243cb6b0002398a62a
Contents?: true
Size: 869 Bytes
Versions: 11
Compression:
Stored size: 869 Bytes
Contents
require 'cases/helper' class PreloadTest < ActiveRecord::CountLoader::TestCase def setup tweets_count.times.map do |index| tweet = Tweet.create index.times { Favorite.create(tweet: tweet) } end end def teardown [Tweet, Favorite].each(&:delete_all) end def tweets_count 3 end def test_preload_does_not_execute_n_1_queries assert_queries(1 + tweets_count) { Tweet.all.map { |t| t.favorites.count } } assert_queries(1 + tweets_count) { Tweet.all.map(&:favorites_count) } assert_queries(2) { Tweet.preload(:favorites_count).map(&:favorites_count) } end def test_preloaded_count_loader_counts_properly expected = Tweet.all.map { |t| t.favorites.count } assert_equal(Tweet.all.map(&:favorites_count), expected) assert_equal(Tweet.preload(:favorites_count).map(&:favorites_count), expected) end end
Version data entries
11 entries across 11 versions & 2 rubygems