require 'spec_helper' def mods_display_collection(mods_record) ModsDisplay::Collection.new( mods_record, ModsDisplay::Configuration::Base.new, double('controller') ) end describe ModsDisplay::Collection do let(:collection) do Stanford::Mods::Record.new.from_str( ' The Collection ', false ).related_item end let(:non_collection) do Stanford::Mods::Record.new.from_str( 'Not a Collection', false ).related_item end let(:display_label) do Stanford::Mods::Record.new.from_str( ' Not a Collection ', false ).related_item end let(:multiple_related_items) do Stanford::Mods::Record.new.from_str( ' Not a Collection The Collection ', false ).related_item end describe 'label' do it 'should default to Collection' do expect(mods_display_collection(collection).fields.first.label).to eq('Collection:') end it 'should get the displayLabel if available' do expect(mods_display_collection(display_label).label).to eq('Special Collection:') end it 'should get the proper titles of all items when there is a displayLabel present' do expect(mods_display_collection(multiple_related_items).fields.first.label).to eq 'Collection:' end end describe 'fields' do it 'should get a collection title if there is an appropriate typeOfResource field with the collection attribute' do fields = mods_display_collection(collection).fields expect(fields.length).to eq(1) expect(fields.first.values).to eq(['The Collection']) end it 'should be blank if the there is not an appropriate typeOfResource field with the collection attribute' do expect(mods_display_collection(non_collection).fields).to eq([]) end end end