Sha256: 1cbc934c3a1231c63361ae903224fd8efacf1c48fb5f8c6016cd46ac1830f9e2

Contents?: true

Size: 1.35 KB

Versions: 5

Compression:

Stored size: 1.35 KB

Contents

require 'spec_helper'

describe ActiveAdmin::OrderClause do
  subject { described_class.new clause }

  let(:application) { ActiveAdmin::Application.new }
  let(:namespace)   { ActiveAdmin::Namespace.new application, :admin }
  let(:config)      { ActiveAdmin::Resource.new namespace, Post }

  describe 'id_asc (existing column)' do
    let(:clause) { 'id_asc' }

    it { should be_valid }
    its(:field) { should == 'id' }
    its(:order) { should == 'asc' }

    specify '#to_sql prepends table name' do
      expect(subject.to_sql(config)).to eq '"posts"."id" asc'
    end
  end

  describe 'virtual_column_asc' do
    let(:clause) { 'virtual_column_asc' }

    it { should be_valid }
    its(:field) { should == 'virtual_column' }
    its(:order) { should == 'asc' }

    specify '#to_sql' do
      expect(subject.to_sql(config)).to eq '"virtual_column" asc'
    end
  end

  describe "hstore_col->'field'_desc" do
    let(:clause) { "hstore_col->'field'_desc" }

    it { should be_valid }
    its(:field) { should == "hstore_col->'field'" }
    its(:order) { should == 'desc' }

    it 'converts to sql' do
      expect(subject.to_sql(config)).to eq %Q("hstore_col"->'field' desc)
    end
  end

  describe '_asc' do
    let(:clause) { '_asc' }

    it { should_not be_valid }
  end

  describe 'nil' do
    let(:clause) { nil }

    it { should_not be_valid }
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
active_administration-0.0.3 spec/unit/order_clause_spec.rb
activeadministration-0.0.2 spec/unit/order_clause_spec.rb
active_administration-0.0.2 spec/unit/order_clause_spec.rb
activeadministration-0.0.1 spec/unit/order_clause_spec.rb
active_administration-0.0.1 spec/unit/order_clause_spec.rb