Sha256: 9ee7ccd9a13e094a93b713dc46ba14eb2da69a64a7096cf88381c0870f5519bf

Contents?: true

Size: 1.13 KB

Versions: 3

Compression:

Stored size: 1.13 KB

Contents

require 'spec_helper'

require 'praxis/extensions/attribute_filtering'

describe Praxis::Extensions::AttributeFiltering::FilteringParams do

  context '.load' do
    subject { described_class.load(filters_string) }
    context 'parses for operator' do
      described_class::AVAILABLE_OPERATORS.each do |op|
        it "#{op}" do
          str = "thename#{op}thevalue"
          parsed = [{ name: :thename, op: op, value: 'thevalue'}]
          expect(described_class.load(str).parsed_array).to eq(parsed)
        end
      end
    end
    context 'with all operators at once' do
      let(:filters_string) { 'one=1&two!=2&three>=3&four<=4&five<5&six>6&seven!&eight!!'}
      it do
        expect(subject.parsed_array).to eq([
          { name: :one, op: '=', value: '1'},
          { name: :two, op: '!=', value: '2'},
          { name: :three, op: '>=', value: '3'},
          { name: :four, op: '<=', value: '4'},
          { name: :five, op: '<', value: '5'},
          { name: :six, op: '>', value: '6'},
          { name: :seven, op: '!', value: nil},
          { name: :eight, op: '!!', value: nil},          
        ])
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
praxis-2.0.pre.8 spec/praxis/extensions/attribute_filtering/filtering_params_spec.rb
praxis-2.0.pre.7 spec/praxis/extensions/attribute_filtering/filtering_params_spec.rb
praxis-2.0.pre.6 spec/praxis/extensions/attribute_filtering/filtering_params_spec.rb