diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index 6929fc1b0f..bd78aef7a9 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -101,9 +101,7 @@ class LinkDetailsExtractor end def json - @json ||= root_array(Oj.load(@data)) - .map { |node| JSON::LD::API.compact(node, 'https://schema.org') } - .find { |node| SUPPORTED_TYPES.include?(node['type']) } || {} + @json ||= root_array(Oj.load(@data)).compact.find { |obj| SUPPORTED_TYPES.include?(obj['@type']) } || {} end end diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index 7ceb6f511d..b1e5cedced 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -79,16 +79,6 @@ RSpec.describe LinkDetailsExtractor do }, }.to_json end - let(:html) { <<~HTML } - - - - - - - HTML shared_examples 'structured data' do it 'extracts the expected values from structured data' do @@ -234,27 +224,21 @@ RSpec.describe LinkDetailsExtractor do }, }.to_json end + let(:html) { <<~HTML } + + + + + + + HTML it 'joins author names' do expect(subject.author_name).to eq 'Author 1, Author 2' end end - - context 'with named graph' do - let(:ld_json) do - { - '@context' => 'https://schema.org', - '@graph' => [ - '@type' => 'NewsArticle', - 'headline' => "What's in a name", - ], - }.to_json - end - - it 'descends into @graph node' do - expect(subject.title).to eq "What's in a name" - end - end end context 'when Open Graph protocol data is present' do