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

This commit is contained in:
Claire 2023-10-16 15:24:14 +02:00 committed by GitHub
parent 23f8e93c64
commit 299aa71c8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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