Sha256: 53d3ee2ecdcb62f6169fe5fec62065e6388fe3287f36bc2bbf3620ffcf7541bc

Contents?: true

Size: 881 Bytes

Versions: 7

Compression:

Stored size: 881 Bytes

Contents

require "spec_helper"

describe "Simple::SQL.record" do
  USER_COUNT = 2

  def expects(expected_result, sql, *args)
    expect(Simple::SQL.record(sql, *args)).to eq(expected_result)
  end

  let!(:users) { 1.upto(USER_COUNT).map { create(:user) } }

  before do
    expect(User.count).to eq(2)
  end

  it "calls the database" do
    r = Simple::SQL.record("SELECT COUNT(*) AS count FROM users")
    expect(r).to eq({count: 2}) 
  end

  it "supports the into: option" do
    r = Simple::SQL.record("SELECT COUNT(*) AS count FROM users", into: OpenStruct)
    expect(r).to be_a(OpenStruct)
    expect(r).to eq(OpenStruct.new(count: 2))
  end

  it "supports the into: option even with parameters" do
    r = Simple::SQL.record("SELECT $1::integer AS count FROM users", 2, into: OpenStruct)
    expect(r).to be_a(OpenStruct)
    expect(r).to eq(OpenStruct.new(count: 2))
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
simple-sql-0.2.5 spec/simple/sql_record_spec.rb
simple-sql-0.2.4 spec/simple/sql_record_spec.rb
simple-sql-0.2.3 spec/simple/sql_record_spec.rb
simple-sql-0.2.2 spec/simple/sql_record_spec.rb
simple-sql-0.2.1 spec/simple/sql_record_spec.rb
simple-sql-0.2.0 spec/simple/sql_record_spec.rb
simple-sql-0.1.3 spec/simple/sql_record_spec.rb