Sha256: 64046bc5b1de5c6fbd7c4a04f782c9d093743b10e1984ea4fb9a75f14c99e1f3

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

require 'spec_helper'

describe 'Generating sql based on our DSL' do

  it 'should select two fields' do
    class OrdersSimple < Datatable::Base
      set_model Order 

      column :order_number
      column :memo
    end

    orders = Order.arel_table
    OrdersSimple.to_sql.should == Order.select(orders[:order_number]).select(orders[:memo]).to_sql
    OrdersSimple.relation.should == Order.select(orders[:order_number]).select(orders[:memo])
  end

  it 'should handle a simple join' do
    class OrdersSimple < Datatable::Base
      set_model Order 

      column :memo

      join :customer
    end

    orders = Order.arel_table
    OrdersSimple.to_sql.should == Order.select(orders[:memo]).joins(:customer).to_sql
    OrdersSimple.relation.should == Order.select(orders[:memo]).joins(:customer)
  end


  it 'should handle a join with an inner column' do
    class OrdersSimple < Datatable::Base
      set_model Order 

      column :memo

      join :customer do
        column :first_name
      end

    end

    orders = Order.arel_table
    customers = Arel::Table.new(:customers)
    OrdersSimple.to_sql.should == Order.select(orders[:memo]).joins(:customer).select(customers[:first_name]).to_sql
    OrdersSimple.relation.should == Order.select(orders[:memo]).joins(:customer).select(customers[:first_name])
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
datatable-0.2pre6 example_app/spec/datatables/active_record_dsl_spec.rb
datatable-0.2pre5 example_app/spec/datatables/active_record_dsl_spec.rb
datatable-0.2pre4 example_app/spec/datatables/active_record_dsl_spec.rb
datatable-0.2pre3 example_app/spec/datatables/active_record_dsl_spec.rb
datatable-0.2pre2 example_app/spec/datatables/active_record_dsl_spec.rb
datatable-0.2pre1 example_app/spec/datatables/active_record_dsl_spec.rb