Sha256: e88a1dc4345ae783514edbbcef0cf939157a310ef3384716b3827fb0bbc310d5
Contents?: true
Size: 1.22 KB
Versions: 10
Compression:
Stored size: 1.22 KB
Contents
require "elasticity/search" RSpec.describe Elasticity::Document do mappings = { properties: { name: { type: "string" }, items: { type: "nested", properties: { name: { type: "string" }, }, } } } let :klass do Class.new(described_class) do configure do |c| c.index_base_name = "class_names" c.document_type = "class_name" c.mapping = mappings end attr_accessor :name, :items def to_document { name: name, items: items } end end end let :strategy do double(:strategy) end before :each do allow(Elasticity::Strategies::SingleIndex).to receive(:new).and_return(strategy) end it "requires subclasses to define to_document method" do expect { Class.new(described_class).new.to_document }.to raise_error(NotImplementedError) end context "instance" do subject { klass.new _id: 1, name: "Foo", items: [{ name: "Item1" }] } it "stores the document in the strategy" do expect(strategy).to receive(:index_document).with("class_name", 1, { name: "Foo", items: [{ name: "Item1" }] }).and_return("_id" => "1", "created" => true) subject.update end end end
Version data entries
10 entries across 10 versions & 1 rubygems