From 989448e37d1ef5839ca8cd123ca09029988ea1e7 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Thu, 14 Mar 2024 10:06:06 +0100 Subject: [PATCH 1/2] fix(logo-favicon): ensure url exists --- .../metascraper-logo-favicon/src/index.js | 4 ++- .../metascraper-logo-favicon/test/index.js | 30 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) 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') +}) From 126487aa8fedce03c315884f9c71f79872fbc032 Mon Sep 17 00:00:00 2001 From: Kiko Beats Date: Thu, 14 Mar 2024 10:11:39 +0100 Subject: [PATCH 2/2] test: update snapshot --- .../snapshots/index.js.md | 2 +- .../snapshots/index.js.snap | Bin 601 -> 600 bytes 2 files changed, 1 insertion(+), 1 deletion(-) 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 3b16a5bbebd522733deca65f9c791e581e5ef8ee..f48942308fa1463ab07e570ed200c2a5dc357300 100644 GIT binary patch delta 186 zcmV;r07d`V1lR;JK~_N^Q*L2!b7*gLAa*kf0|15#thEO$0&uJV^iwoN$kN;8B>9TI zhEEAG1^prH!hEqZr~!V%Xwe-;fl+lH_f0X)rOR;hfvw5->64S=x(=)LtkCdQ#&{(g zm5NTrRHrFgM^lSP<6Jn0j;7jD{7Y+Bd$w8Fyt0%3jX5oxROlQR)-RoW&48^LFsayN o%+?Ipk^#GAz*245VHgg2!%ko_Qy=T2Ot4z)-*?Y?0F46x08bQHWdHyG delta 187 zcmV;s07U=T1la^KK~_N^Q*L2!b7*gLAa*kf0|1|2B3J?_mv!XU;tNT`kh_!*N9Q%d z8-5E**JL5t86vSVr~!Zd-lE&@1xD3*+&9HEmoCH22eu~Tr%z6f>pHB~vqHmL8RL~~ zR4O_dQ=O)09ZfAFjdS4~I+|)r@h`1i?b&8w^U6;CH|Df(QlWEPSif}gH3PP0z@%c6 pF