Sha256: fd71ca9299d9d17992ac4af203bd8da274ad31df6f9273df4f49ff3bea60ca5c

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

RSpec.describe Item, type: :model do

  it_behaves_like "a DDR model"
  it_behaves_like "it has an association", :belongs_to, :parent, :is_member_of_collection, "Collection"
  it_behaves_like "it has an association", :has_many, :children, :is_part_of, "Component"
  it_behaves_like "a non-collection model"
  it_behaves_like "a potentially publishable object"
  it_behaves_like "an object that cannot be streamable"

  describe "indexing text" do
    let(:children) { FactoryGirl.build_list(:component, 5) }

    let(:text1) { fixture_file_upload('extractedText1.txt', 'text/plain') }
    let(:text2) { fixture_file_upload('extractedText2.txt', 'text/plain') }
    let(:text3) { fixture_file_upload('extractedText3.txt', 'text/plain') }

    before {
      children[0].extractedText.content = text1
      children[0].save!
      children[1].extractedText.content = text2
      children[1].save!
      children[2].extractedText.content = text3
      children[2].save!
      children[3].save!
      children[4].save!
      subject.children = children
      subject.save!
    }

    it "indexes the combined text of its children" do
      expect(subject.index_fields[Ddr::Index::Fields::ALL_TEXT]).to contain_exactly(File.read(text1.path), File.read(text2.path), File.read(text3.path))
    end
  end

  describe "content" do
    its(:can_have_content?) { is_expected.to be false }
    it { is_expected.to_not have_content }
  end

  describe "children" do
    its(:can_have_children?) { is_expected.to be true }
    it { is_expected.to_not have_children }
    specify {
      subject.children << Component.new
      expect(subject).to have_children
    }
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddr-models-2.8.0 spec/models/item_spec.rb
ddr-models-2.8.0.rc1 spec/models/item_spec.rb