diff --git a/packages/metascraper-logo-favicon/src/index.js b/packages/metascraper-logo-favicon/src/index.js index 7080eca46..4ec24630f 100644 --- a/packages/metascraper-logo-favicon/src/index.js +++ b/packages/metascraper-logo-favicon/src/index.js @@ -56,11 +56,13 @@ const getDomNodeSizes = (domNodes, attr, url) => .reduce((acc, domNode) => { const relativeUrl = domNode.attribs[attr] if (!relativeUrl) return acc + const normalizedUrl = normalizeUrl(url, relativeUrl) + if (!normalizedUrl) return acc return [ ...acc, { ...domNode.attribs, - url: normalizeUrl(url, relativeUrl), + url: normalizedUrl, size: getSize(url, domNode.attribs.sizes) } ] diff --git a/packages/metascraper-logo-favicon/test/index.js b/packages/metascraper-logo-favicon/test/index.js index 38de23dc9..c71a8da90 100644 --- a/packages/metascraper-logo-favicon/test/index.js +++ b/packages/metascraper-logo-favicon/test/index.js @@ -80,10 +80,7 @@ test('get the biggest icon possible', async t => { '' ]) const metadata = await metascraper({ url, html }) - t.is( - metadata.logo, - 'https://cdn.microlink.io/logo/favicon-196x196.png' - ) + t.is(metadata.logo, 'https://cdn.microlink.io/logo/favicon-196x196.png') }) test('detect `rel="fluid-icon"`', async t => { @@ -139,7 +136,10 @@ test('detect `rel="apple-touch-icon-precomposed"`', async t => { '' ]) const metadata = await metascraper({ url, html }) - t.is(metadata.logo, 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png') + t.is( + metadata.logo, + 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png' + ) }) test('detect `rel="apple-touch-icon"`', async t => { @@ -149,7 +149,10 @@ test('detect `rel="apple-touch-icon"`', async t => { '' ]) const metadata = await metascraper({ url, html }) - t.is(metadata.logo, 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png') + t.is( + metadata.logo, + 'https://cdn.microlink.io/logo/apple-touch-icon-144x144.png' + ) }) test('detect `rel="shortcut icon"`', async t => { @@ -159,10 +162,7 @@ test('detect `rel="shortcut icon"`', async t => { '' ]) const metadata = await metascraper({ url, html }) - t.is( - metadata.logo, - 'https://cdn.microlink.io/logo/favicon.ico' - ) + t.is(metadata.logo, 'https://cdn.microlink.io/logo/favicon.ico') }) test('detect `rel="mask icon"`', async t => { @@ -236,10 +236,18 @@ test('resolve logo using from google associated with the domain', async t => { t.true(metadata.logo.includes('gstatic')) }) -test('avoid data URI when data length is 0', async t => { +test('avoid empty data URI', async t => { const url = 'https://www.adobe.com/' const html = '' const metascraper = createMetascraper() const metadata = await metascraper({ url, html }) t.is(metadata.logo, 'https://www.adobe.com/favicon.ico') }) + +test('avoid wrong data URI', async t => { + const url = 'https://www.adobe.com/' + const html = '' + const metascraper = createMetascraper() + const metadata = await metascraper({ url, html }) + t.is(metadata.logo, 'https://www.adobe.com/favicon.ico') +}) diff --git a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md index 28704d3f2..dbc5510cd 100644 --- a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md +++ b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.md @@ -15,7 +15,7 @@ Generated by [AVA](https://avajs.dev). description: '[...] it’s natural to think that San Francisco’s new Nasdaq Entrepreneurial Center,…', image: 'https://s.hdnux.com/photos/45/53/13/9876166/6/rawImage.jpg', lang: 'en', - logo: 'https://www.sfchronicle.com/sites/premiumsfgate/apple-touch-icon-152x152.png', + logo: 'https://www.sfchronicle.com/sites/premiumsfgate/apple-touch-icon-196x196.png', publisher: 'SFGATE', title: 'Nasdaq center in SF offers free classes for entrepreneurs', url: 'https://www.sfchronicle.com/business/article/Nasdaq-center-in-SF-offers-free-classes-for-7338290.php', diff --git a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap index 3b16a5bbe..f48942308 100644 Binary files a/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap and b/packages/metascraper/test/integration/san-francisco-chronicle/snapshots/index.js.snap differ