Sha256: 9059c23cfc46d0c666769852ca07284864c9200f33b25daa339253755f041720

Contents?: true

Size: 844 Bytes

Versions: 29

Compression:

Stored size: 844 Bytes

Contents

require "spec_helper"

describe "Simple::SQL::Connection::Scope#count" do
  let!(:users)      { 1.upto(USER_COUNT).map { create(:user) } }
  let(:min_user_id) { SQL.ask "SELECT min(id) FROM users" }
  let(:scope)       { SQL.scope("SELECT * FROM users") }

  describe "exact count" do
    it "counts" do
      expect(scope.count).to eq(USER_COUNT)
    end

    it "evaluates conditions" do
      expect(scope.where("id < $1", min_user_id).count).to eq(0)
      expect(scope.where("id <= $1", min_user_id).count).to eq(1)
    end
  end

  describe "fast count" do
    it "counts" do
      expect(scope.count_estimate).to eq(USER_COUNT)
    end

    it "evaluates conditions" do
      expect(scope.where("id < $1", min_user_id).count_estimate).to eq(0)
      expect(scope.where("id <= $1", min_user_id).count_estimate).to eq(1)
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
simple-sql-0.5.37 spec/simple/sql/count_spec.rb
simple-sql-0.5.36 spec/simple/sql/count_spec.rb
simple-sql-0.5.35 spec/simple/sql/count_spec.rb
simple-sql-0.5.34 spec/simple/sql/count_spec.rb
simple-sql-0.5.33 spec/simple/sql/count_spec.rb
simple-sql-0.5.32 spec/simple/sql/count_spec.rb
simple-sql-0.5.31 spec/simple/sql/count_spec.rb
simple-sql-0.5.30 spec/simple/sql/count_spec.rb
simple-sql-0.5.29 spec/simple/sql/count_spec.rb
simple-sql-0.5.28 spec/simple/sql/count_spec.rb
simple-sql-0.5.27 spec/simple/sql/count_spec.rb
simple-sql-0.5.26 spec/simple/sql/count_spec.rb
simple-sql-0.5.25 spec/simple/sql/count_spec.rb
simple-sql-0.5.24 spec/simple/sql/count_spec.rb
simple-sql-0.5.23 spec/simple/sql/count_spec.rb
simple-sql-0.5.22 spec/simple/sql/count_spec.rb
simple-sql-0.5.21 spec/simple/sql/count_spec.rb
simple-sql-0.5.20 spec/simple/sql/count_spec.rb
simple-sql-0.5.19 spec/simple/sql/count_spec.rb
simple-sql-0.5.18 spec/simple/sql/count_spec.rb