Sha256: 3d8766440f098edd1088d8552e7aacbab9d2fdb9cbd808da5abf73ebe3c4d722

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

require "spec_helper"

describe BazaModels::Query do
  include DatabaseHelper

  let!(:organization) { Organization.create!(id: 1, name: "Test organization") }
  let!(:person) { Person.create!(id: 1, user: user) }
  let!(:user) { User.create!(id: 1, organization: organization, email: "test@example.com") }
  let!(:another_user) { User.create!(id: 2, organization: nil, email: "another_user@example.com") }
  let!(:another_person) { Person.create!(id: 2, user: another_user) }

  it "eq" do
    expect(User.ransack(id_eq: 1).result.to_a).to eq [user]
  end

  it "cont" do
    expect(User.ransack(email_cont: "test").result.to_a).to eq [user]
  end

  it "s" do
    query = User.ransack(s: "email asc")

    expect(query.result.to_a).to eq [another_user, user]
    expect(query.result.to_sql).to eq "SELECT `users`.* FROM `users` ORDER BY `users`.`email` asc"
  end

  it "sorts by sub column" do
    query = Person.ransack(s: "user_email asc")

    expect(query.result.to_a).to eq [another_person, person]
    expect(query.result.to_sql).to include "`users`.`email` asc"
  end

  it "works with sub models" do
    query = User.ransack(organization_name_cont: "Test")
    expect(query.result.to_a).to eq [user]
  end

  it "works recursively with sub models" do
    query = Person.ransack(user_organization_name_cont: "Test")
    expect(query.result.to_a).to eq [person]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
baza_models-0.0.4 spec/baza_models/ransacker_spec.rb