Sha256: 68b4664c52fa688bd44c1b5f7d854c7486607ffe7c2269315506287cf0f999f1

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

require "spec_helper"

describe Parelation::Criteria::Order do

  let(:klass) { Parelation::Criteria::Order }

  it "should match" do
    expect(klass.match?("order")).to eq(true)
  end

  it "should not match" do
    expect(klass.match?("query")).to eq(false)
  end

  it "should add acending order criteria to the chain" do
    criteria = klass.new(Ticket.all, "order", "created_at:asc").call
    ar_query = Ticket.order(created_at: :asc)

    expect(criteria.to_sql).to eq(ar_query.to_sql)
  end

  it "should add descending order criteria to the chain" do
    criteria = klass.new(Ticket.all, "order", "created_at:desc").call
    ar_query = Ticket.order(created_at: :desc)

    expect(criteria.to_sql).to eq(ar_query.to_sql)
  end

  it "should combine multiple asc and desc order criteria" do
    orders = %w[created_at:desc name:asc updated_at:desc message:asc]
    criteria = klass.new(Ticket.all, "order", orders).call
    ar_query = Ticket.order(created_at: :desc, name: :asc, updated_at: :desc, message: :asc)

    expect(criteria.to_sql).to eq(ar_query.to_sql)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
parelation-1.0.0 spec/lib/criteria/order_spec.rb
parelation-0.2.0 spec/lib/criteria/order_spec.rb
parelation-0.1.0 spec/lib/criteria/order_spec.rb
parelation-0.0.1 spec/lib/criteria/order_spec.rb