Fix handling of inLanguage attribute in preview card processing (#27423)

This commit is contained in:
Claire 2023-10-16 15:24:14 +02:00
parent 8be33d4316
commit 13205b54fd
2 changed files with 12 additions and 1 deletions

View file

@ -36,7 +36,8 @@ class LinkDetailsExtractor
end end
def language def language
json['inLanguage'] lang = json['inLanguage']
lang.is_a?(Hash) ? (lang['alternateName'] || lang['name']) : lang
end end
def type def type

View file

@ -82,6 +82,10 @@ RSpec.describe LinkDetailsExtractor do
'name' => 'Pet News', 'name' => 'Pet News',
'url' => 'https://example.com', 'url' => 'https://example.com',
}, },
'inLanguage' => {
name: 'English',
alternateName: 'en',
},
}.to_json }.to_json
end end
@ -115,6 +119,12 @@ RSpec.describe LinkDetailsExtractor do
expect(subject.provider_name).to eq 'Pet News' expect(subject.provider_name).to eq 'Pet News'
end end
end end
describe '#language' do
it 'returns the language from structured data' do
expect(subject.language).to eq 'en'
end
end
end end
context 'when is wrapped in CDATA tags' do context 'when is wrapped in CDATA tags' do