From 0e3186142bf4492da8ac2487fe61c9075bab7b4b Mon Sep 17 00:00:00 2001 From: Justin Coyne Date: Tue, 21 Nov 2023 13:03:06 -0600 Subject: [PATCH] Move test about deserialization into PurlXmlLoader spec --- spec/factories/purls.rb | 14 +++++ spec/lib/embed/viewer/was_seed_spec.rb | 64 +++-------------------- spec/models/embed/purl_xml_loader_spec.rb | 10 ++++ 3 files changed, 31 insertions(+), 57 deletions(-) create mode 100644 spec/factories/purls.rb diff --git a/spec/factories/purls.rb b/spec/factories/purls.rb new file mode 100644 index 000000000..ff0278823 --- /dev/null +++ b/spec/factories/purls.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :purl, class: 'Embed::Purl' do + druid { 'abc123' } + + trait :was_seed do + type { 'was-seed' } + archived_site_url { 'https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/' } + external_url { 'https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/' } + contents { [build(:resource, :image)] } + end + end +end diff --git a/spec/lib/embed/viewer/was_seed_spec.rb b/spec/lib/embed/viewer/was_seed_spec.rb index 9cc141180..0eb904d16 100644 --- a/spec/lib/embed/viewer/was_seed_spec.rb +++ b/spec/lib/embed/viewer/was_seed_spec.rb @@ -7,11 +7,14 @@ include WasTimeMapFixtures let(:request) { Embed::Request.new(url: 'http://purl.stanford.edu/abc123') } let(:was_seed_viewer) { described_class.new(request) } - let(:purl) { "#{Settings.purl_url}/abc123" } + let(:purl) { build(:purl, :was_seed) } + + before do + allow(Embed::Purl).to receive(:find).and_return(purl) + end describe 'initialize' do it 'is an Embed::Viewer::WasSeed' do - expect(request).to receive(:purl_object).and_return(nil) expect(was_seed_viewer).to be_an described_class end end @@ -24,8 +27,6 @@ describe '#archived_site_url' do it 'parses a mods archived site' do - stub_purl_xml_response_with_fixture(was_seed_purl) - expect(was_seed_viewer.archived_site_url).to eq 'https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/' end end @@ -34,54 +35,11 @@ subject { was_seed_viewer.archived_timemap_url } context 'with a valid url' do - before do - stub_purl_xml_response_with_fixture(was_seed_purl) - end - it { is_expected.to eq 'https://swap.stanford.edu/timemap/http://naca.central.cranfield.ac.uk/' } end context 'with invalid url' do - let(:invalid) do - <<~XML - - - ARCHIVEIT-2361-naca.central.cranfield.ac.uk/ - druid:gb089bd2251 - DOR - http://naca.central.cranfield.ac.uk/ - item - 9b83e130-2b21-11e5-a344-0050569b52d5 - Remediated By : 4.21.2 - - - - - - - - - - - - - - - - - https://swap.stanford.edu/http://naca.central.cranfield.ac.uk/ - - - - https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/ - - - XML - end - - before do - stub_purl_xml_response_with_fixture(invalid) - end + let(:purl) { build(:purl, :was_seed, archived_site_url: 'https://swap.stanford.edu/http://naca.central.cranfield.ac.uk/') } it { is_expected.to be_nil } end @@ -89,37 +47,29 @@ describe '#shelved_thumb' do it 'parses a mods archived site' do - stub_purl_xml_response_with_fixture(was_seed_purl) - expect(was_seed_viewer.shelved_thumb).to eq 'https://stacks.stanford.edu/image/iiif/abc123%2Fthumbnail/full/200,/0/default.jpg' + expect(was_seed_viewer.shelved_thumb).to eq 'https://stacks.stanford.edu/image/iiif/abc123%2Fimage_001/full/200,/0/default.jpg' end end describe 'format_memento_datetime' do it 'returns a formated memento datetime' do - stub_purl_request(request) expect(was_seed_viewer.format_memento_datetime('20121129060351')).to eq('29 November 2012') end end describe 'default_height' do it 'defaults to 353' do - stub_purl_request(request) - expect(was_seed_viewer.send(:default_height)).to eq 420 end it 'is smaller when the title is hidden' do expect(request).to receive(:hide_title?).and_return(true) - stub_purl_request(request) - expect(was_seed_viewer.send(:default_height)).to eq 340 end end describe '.external_url' do it 'builds the external url based on wayback url as extracted from prul' do - stub_purl_xml_response_with_fixture(was_seed_purl) - expect(was_seed_viewer.external_url).to eq('https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/') end end diff --git a/spec/models/embed/purl_xml_loader_spec.rb b/spec/models/embed/purl_xml_loader_spec.rb index 7fb7f75d3..fddb54f4a 100644 --- a/spec/models/embed/purl_xml_loader_spec.rb +++ b/spec/models/embed/purl_xml_loader_spec.rb @@ -21,5 +21,15 @@ it { is_expected.to include({ embargoed: true, embargo_release_date: '2053-12-21', public: false }) } end + + context 'with a was seed' do + let(:xml) { was_seed_purl } + + it 'finds the data' do + expect(data).to include({ archived_site_url: 'https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/', + external_url: 'https://swap.stanford.edu/*/http://naca.central.cranfield.ac.uk/', + type: 'webarchive-seed', collections: ['mk656nf8485'] }) + end + end end end