Sha256: 479fe8eb928b2d34ac89ee29b1f943389dc23885734f9f353acaad8a27383e8d

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

require 'spec_helper'

if defined? ActiveRecord
  describe BootstrapPager::ActiveRecordRelationMethods do
    describe '#total_count' do
      before do
        @author = User.create! :name => 'author'
        @author2 = User.create! :name => 'author2'
        @author3 = User.create! :name => 'author3'
        @books = 2.times.map {|i| @author.books_authored.create!(:title => "title%03d" % i) }
        @books2 = 3.times.map {|i| @author2.books_authored.create!(:title => "title%03d" % i) }
        @books3 = 4.times.map {|i| @author3.books_authored.create!(:title => "subject%03d" % i) }
        @readers = 4.times.map { User.create! :name => 'reader' }
        @books.each {|book| book.readers << @readers }
      end

      context "when the scope includes an order which references a generated column" do
        it "should successfully count the results" do
          @author.readers.by_read_count.page(1).total_count.should == @readers.size
        end
      end
      context "when the scope use conditions on includes" do
        it "should keep includes and successfully count the results" do
          # Only @author and @author2 have books titled with the title00x partern
          User.includes(:books_authored).where("books.title LIKE 'title00%'").page(1).total_count.should == 2
        end
      end
      context "when total_count receives options" do
        it "should return a distinct total count" do
          User.page(1).total_count(:name, :distinct => true).should == 4
        end
      end
      context "when count receives options" do
        it "should return a distinct set by column" do
          User.page(1).count(:name, :distinct => true).should == 4
        end
      end
      context "when the scope returns an ActiveSupport::OrderedHash" do
        it "should not throw exception by passing options to count" do
          lambda {
            @author.readers.by_read_count.page(1).total_count(:name, :distinct => true)
          }.should_not raise_exception
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
bootstrap_pager-0.11.0 spec/models/active_record/active_record_relation_methods_spec.rb
bootstrap_pager-0.10.1 spec/models/active_record/active_record_relation_methods_spec.rb
bootstrap_pager-0.10.0 spec/models/active_record/active_record_relation_methods_spec.rb
bootstrap_pager-0.9.3 spec/models/active_record/active_record_relation_methods_spec.rb
bootstrap_pager-0.9.2 spec/models/active_record/active_record_relation_methods_spec.rb
bootstrap_pager-0.9.1 spec/models/active_record/active_record_relation_methods_spec.rb
bootstrap_pager-0.9.0 spec/models/active_record/active_record_relation_methods_spec.rb