spec/predicate_splitter_spec.rb in philtre-0.1.0 vs spec/predicate_splitter_spec.rb in philtre-0.1.1

- old
+ new

@@ -1,9 +1,8 @@ -require 'rspec' -require 'faker' - +require_relative 'spec_helper.rb' require_relative '../lib/philtre/predicate_splitter.rb' +require_relative '../lib/philtre/predicates.rb' # for blank? Sequel.extension :blank describe Philtre::PredicateSplitter do @@ -26,10 +25,11 @@ end end describe 'unsuccessful' do let(:splitter){ Philtre::PredicateSplitter.new 'birth_year', 'fifteeen' } + it 'returns false' do splitter.split_key( :like ).should be_falsey end it 'keeps key as symbol' do @@ -42,12 +42,32 @@ splitter.op.should be_nil end end describe 'custom predicate' do - let(:splitter){ Philtre::PredicateSplitter.new( 'custom_predicate', 'fifteeen' ) } - it 'accepts the whole thing' do + it 'accepts the whole thing, undeterred by _' do + splitter = Philtre::PredicateSplitter.new 'custom_predicate', 'fifteeen' (splitter === :custom_predicate).should === 0 + end + end + + describe "'ware the false matches, laddie" do + Philtre::Predicates::DefaultPredicates.instance_methods.each do |suffix| + word = Faker::Lorem.words(rand(1..3)) * '_' + + let(:suffix){suffix} + let(:word){word} + + it "#{word}#{suffix} unsplit" do + splitter = Philtre::PredicateSplitter.new "#{word}#{suffix}", 'blabla' + splitter.split_key(suffix).should be_falsey + end + + it "#{word}_#{suffix} split" do + splitter = Philtre::PredicateSplitter.new "#{word}_#{suffix}", 'unbla' + splitter.split_key suffix + splitter.field.should == word.to_sym + end end end end end