Sha256: ccd35f68b60a240574b871df93402baf2c854006841d2776e11230f87565e756

Contents?: true

Size: 1.34 KB

Versions: 15

Compression:

Stored size: 1.34 KB

Contents

require 'spec_helper'

module CloudSesame
	module Query
		module DSL
			describe FieldAccessors do

				# Setup Test Class
				class Product
					include CloudSesame
					define_cloudsearch {
						field :name
						field :tags
					}
				end

				subject(:cloudsearch) { Product.cloudsearch.builder }

				context 'when field is registered' do
					it 'should create a literal node' do
						expect(AST::Literal).to receive(:new).with(:name, "my name", {})
						subject.name "my name"
					end
					it 'should belong to the dsl context' do
						expect{ subject.name "name" }.to change{ subject.request.filter_query.root.children.size }.by(1)
					end
					it 'should return the dsl scope if called from the root' do
						expect(subject.tags "men").to eq subject
					end
					it 'should return the field array if called from inside a block' do
						array = nil
						subject.and { array = tags("men") }
						expect(array).to be_kind_of(AST::FieldArray)
						expect(array).to include(AST::Literal)
					end
					it 'shoudl set the field array#field' do
						array = nil
						subject.and { array = tags("men") }
						expect(array.field).to eq :tags
					end
				end

				context 'when field is not registered' do
					it 'should raise an error' do
						expect{ subject.description("description") }.to raise_error NoMethodError
					end
				end

			end
		end
	end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
CloudSesame-0.6.8 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.7 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.6 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.5 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.4 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.3 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.2 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.1 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.6.0 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.5.5 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.5.4 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.5.3 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.5.2 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.5.1 spec/cloud_sesame/query/dsl/field_accessors_spec.rb
CloudSesame-0.5.0 spec/cloud_sesame/query/dsl/field_accessors_spec.rb