spec/lib/spotlight/dor/indexer_spec.rb in spotlight-dor-resources-0.2.3 vs spec/lib/spotlight/dor/indexer_spec.rb in spotlight-dor-resources-0.3.0
- old
+ new
@@ -149,40 +149,102 @@
'Stanford Computer Science Department'
end
end
end
- describe '#add_genre' do
- before do
- allow(r).to receive(:mods).and_return(mods)
- subject.send(:add_genre, sdb, solr_doc)
- end
-
- context 'with a record without a genre' do
+ context 'StanfordMods concern' do
+ describe '#add_author_no_collector' do
+ before do
+ allow(r).to receive(:mods).and_return(mods)
+ subject.send(:add_author_no_collector, sdb, solr_doc)
+ end
+ let(:name) { 'Macro Hamster' }
let(:mods) do
Nokogiri::XML <<-EOF
<mods xmlns="#{Mods::MODS_NS}">
+ <name type="personal">
+ <namePart>#{name}</namePart>
+ <role>
+ <roleTerm type="code" authority="marcrelator">cre</roleTerm>
+ </role>
+ </name>
+ <name type="personal">
+ <namePart>Ignored</namePart>
+ <role>
+ <roleTerm type="code" authority="marcrelator">col</roleTerm>
+ </role>
+ </name>
</mods>
EOF
end
-
- it 'is blank' do
- expect(solr_doc['genre_ssim']).to be_blank
+ it 'populates author_no_collector_ssim field in solr doc' do
+ expect(solr_doc['author_no_collector_ssim']).to eq [name]
end
+ it 'calls non_collector_person_authors on Stanford::Mods::Record object' do
+ expect(sdb.smods_rec).to receive(:non_collector_person_authors)
+ subject.send(:add_author_no_collector, sdb, solr_doc)
+ end
end
- context 'with a record with a genre' do
+ describe '#add_collector' do
+ before do
+ allow(r).to receive(:mods).and_return(mods)
+ subject.send(:add_collector, sdb, solr_doc)
+ end
+ let(:name) { 'Macro Hamster' }
let(:mods) do
- # e.g. from https://purl.stanford.edu/vw282gv1740
Nokogiri::XML <<-EOF
<mods xmlns="#{Mods::MODS_NS}">
- <genre authority="aat" valueURI="http://vocab.getty.edu/aat/300028579">manuscripts for publication</genre>
+ <name type="personal">
+ <namePart>#{name}</namePart>
+ <role>
+ <roleTerm type="code" authority="marcrelator">col</roleTerm>
+ </role>
+ </name>
</mods>
EOF
end
+ it 'populates collector_ssim field in solr doc' do
+ expect(solr_doc['collector_ssim']).to eq [name]
+ end
+ it 'calls collectors_w_dates on Stanford::Mods::Record object' do
+ expect(sdb.smods_rec).to receive(:collectors_w_dates)
+ subject.send(:add_collector, sdb, solr_doc)
+ end
+ end
- it 'extracts the genre' do
- expect(solr_doc['genre_ssim']).to contain_exactly 'manuscripts for publication'
+ describe '#add_genre' do
+ before do
+ allow(r).to receive(:mods).and_return(mods)
+ subject.send(:add_genre, sdb, solr_doc)
+ end
+
+ context 'with a record without a genre' do
+ let(:mods) do
+ Nokogiri::XML <<-EOF
+ <mods xmlns="#{Mods::MODS_NS}">
+ </mods>
+ EOF
+ end
+
+ it 'is blank' do
+ expect(solr_doc['genre_ssim']).to be_blank
+ end
+ end
+
+ context 'with a record with a genre' do
+ let(:mods) do
+ # e.g. from https://purl.stanford.edu/vw282gv1740
+ Nokogiri::XML <<-EOF
+ <mods xmlns="#{Mods::MODS_NS}">
+ <genre authority="aat" valueURI="http://vocab.getty.edu/aat/300028579">manuscripts for publication</genre>
+ </mods>
+ EOF
+ end
+
+ it 'extracts the genre' do
+ expect(solr_doc['genre_ssim']).to contain_exactly 'manuscripts for publication'
+ end
end
end
end
describe '#add_series' do