Sha256: 27ce2f435ff0bdb1418eefac390c6590e6a26cd4222c6d05de960b58b9097ca8

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'

describe AjaxDatatablesRails::Datatable::SimpleOrder do

  let(:view) { double('view', params: sample_params) }
  let(:datatable) { ComplexDatatable.new(view).datatable }
  let(:options) { ActiveSupport::HashWithIndifferentAccess.new({'column' => '1', 'dir' => 'desc'}) }
  let(:simple_order) { AjaxDatatablesRails::Datatable::SimpleOrder.new(datatable, options) }

  describe 'option methods' do
    it 'sql query' do
      expect(simple_order.query('firstname')).to eq('firstname DESC')
    end
  end

  describe 'option methods with nulls last' do
    describe 'using global option' do
      before { AjaxDatatablesRails.config.nulls_last = true }
      after  { AjaxDatatablesRails.config.nulls_last = false }

      it 'sql query' do
        expect(simple_order.query('email')).to eq(
          'CASE WHEN email IS NULL THEN 1 ELSE 0 END, email DESC'
        )
      end
    end

    describe 'using column option' do
      let(:sorted_datatable) { DatatableOrderNullsLast.new(view).datatable }
      let(:nulls_last_order) { AjaxDatatablesRails::Datatable::SimpleOrder.new(sorted_datatable, options) }

      it 'sql query' do
        expect(nulls_last_order.query('email')).to eq(
          'CASE WHEN email IS NULL THEN 1 ELSE 0 END, email DESC'
        )
      end
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ajax-datatables-rails-0.4.3 spec/ajax-datatables-rails/datatable/simple_order_spec.rb
ajax-datatables-rails-0.4.2 spec/ajax-datatables-rails/datatable/simple_order_spec.rb
ajax-datatables-rails-0.4.1 spec/ajax-datatables-rails/datatable/simple_order_spec.rb