From ef1732e5b98993d8ae05e79bea2964b2e5d811fa Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 22 Oct 2024 13:52:54 +0200 Subject: [PATCH] Fix client tests --- packages/tests/src/client/embed-html.ts | 8 +++--- packages/tests/src/client/index-html.ts | 10 ++++--- packages/tests/src/client/og-twitter-tags.ts | 18 ++++++------- server/core/lib/html/shared/playlist-html.ts | 2 +- server/core/lib/html/shared/tags-html.ts | 28 ++++++++++++-------- 5 files changed, 38 insertions(+), 28 deletions(-) diff --git a/packages/tests/src/client/embed-html.ts b/packages/tests/src/client/embed-html.ts index c1aaf58a0..590fe2bea 100644 --- a/packages/tests/src/client/embed-html.ts +++ b/packages/tests/src/client/embed-html.ts @@ -24,7 +24,7 @@ describe('Test embed HTML generation', function () { let playlistName: string let playlistDescription: string - let instanceConfig: { shortDescription: string } + let instanceConfig: { name: string, shortDescription: string } before(async function () { this.timeout(120000); @@ -59,7 +59,7 @@ describe('Test embed HTML generation', function () { it('Should have the correct embed html instance tags', async function () { const res = await makeHTMLRequest(servers[0].url, '/videos/embed/toto') - checkIndexTags(res.text, `PeerTube`, instanceConfig.shortDescription, '', config) + checkIndexTags(res.text, instanceConfig.name, instanceConfig.shortDescription, '', config) expect(res.text).to.not.contain(`"name":`) }) @@ -68,7 +68,7 @@ describe('Test embed HTML generation', function () { const config = await servers[0].config.getConfig() const res = await makeHTMLRequest(servers[0].url, servers[0].store.video.embedPath) - checkIndexTags(res.text, `${videoName} - PeerTube`, videoDescriptionPlainText, '', config) + checkIndexTags(res.text, `${videoName} - ${instanceConfig.name}`, videoDescriptionPlainText, '', config) expect(res.text).to.contain(`"name":"${videoName}",`) }) @@ -77,7 +77,7 @@ describe('Test embed HTML generation', function () { const config = await servers[0].config.getConfig() const res = await makeHTMLRequest(servers[0].url, '/video-playlists/embed/' + playlistIds[0]) - checkIndexTags(res.text, `${playlistName} - PeerTube`, playlistDescription, '', config) + checkIndexTags(res.text, `${playlistName} - ${instanceConfig.name}`, playlistDescription, '', config) expect(res.text).to.contain(`"name":"${playlistName}",`) }) }) diff --git a/packages/tests/src/client/index-html.ts b/packages/tests/src/client/index-html.ts index 30198ad57..f7eda2753 100644 --- a/packages/tests/src/client/index-html.ts +++ b/packages/tests/src/client/index-html.ts @@ -20,7 +20,10 @@ describe('Test index HTML generation', function () { let privatePlaylistId: string let unlistedPlaylistId: string - let instanceDescription: string + let instanceConfig: { + name: string + shortDescription: string + } before(async function () { this.timeout(120000); @@ -35,7 +38,8 @@ describe('Test index HTML generation', function () { passwordProtectedVideoId, unlistedVideoId, privatePlaylistId, - unlistedPlaylistId + unlistedPlaylistId, + instanceConfig } = await prepareClientTests()) }) @@ -45,7 +49,7 @@ describe('Test index HTML generation', function () { const config = await servers[0].config.getConfig() const res = await makeHTMLRequest(servers[0].url, '/videos/trending') - checkIndexTags(res.text, 'PeerTube', instanceDescription, '', config) + checkIndexTags(res.text, instanceConfig.name, instanceConfig.shortDescription, '', config) }) it('Should update the customized configuration and have the correct index html tags', async function () { diff --git a/packages/tests/src/client/og-twitter-tags.ts b/packages/tests/src/client/og-twitter-tags.ts index 05b1ad9da..f0fc8943f 100644 --- a/packages/tests/src/client/og-twitter-tags.ts +++ b/packages/tests/src/client/og-twitter-tags.ts @@ -59,7 +59,7 @@ describe('Test Open Graph and Twitter cards HTML tags', function () { expect(text).to.contain(``) expect(text).to.contain('') expect(text).to.contain(``) expect(text).to.contain('') expect(text).to.contain(``) - expect(text).to.not.contain(``) expect(text).to.contain('') expect(text).to.contain(``) - expect(text).to.contain(``) expect(text).to.contain('') expect(text).to.contain(``) - expect(text).to.contain(``) expect(text).to.contain('') expect(text).to.contain(``) - expect(text).to.contain(`') expect(text).to.contain('') - expect(text).to.not.contain(`') expect(text).to.contain('') - expect(text).to.contain(`') expect(text).to.contain('') - expect(text).to.contain(`') expect(text).to.contain('') - expect(text).to.contain(`` } @@ -145,11 +145,14 @@ export class TagsHtml { const metaTags = { 'og:type': tags.ogType, 'og:site_name': tags.escapedSiteName, - 'og:title': tags.escapedTitle, - 'og:image': tags.image.url + 'og:title': tags.escapedTitle } - if (tags.image.width && tags.image.height) { + if (tags.image?.url) { + metaTags['og:image:url'] = tags.image.url + } + + if (tags.image?.width && tags.image?.height) { metaTags['og:image:width'] = tags.image.width metaTags['og:image:height'] = tags.image.height } @@ -183,11 +186,14 @@ export class TagsHtml { 'twitter:card': tags.twitterCard, 'twitter:site': CONFIG.SERVICES.TWITTER.USERNAME, 'twitter:title': tags.escapedTitle, - 'twitter:description': tags.escapedTruncatedDescription, - 'twitter:image': tags.image.url + 'twitter:description': tags.escapedTruncatedDescription } - if (tags.image.width && tags.image.height) { + if (tags.image?.url) { + metaTags['twitter:image:url'] = tags.image.url + } + + if (tags.image?.width && tags.image?.height) { metaTags['twitter:image:width'] = tags.image.width metaTags['twitter:image:height'] = tags.image.height } @@ -219,7 +225,7 @@ export class TagsHtml { '@type': 'Person', 'name': tags.escapedTitle, 'description': tags.escapedTruncatedDescription, - 'image': tags.image.url + 'image': tags.image?.url } } @@ -231,13 +237,13 @@ export class TagsHtml { '@type': tags.schemaType, 'name': tags.escapedTitle, 'description': tags.escapedTruncatedDescription, - 'image': tags.image.url, + 'image': tags.image?.url, 'url': tags.url } if (tags.list) { schema['numberOfItems'] = tags.list.numberOfItems - schema['thumbnailUrl'] = tags.image.url + schema['thumbnailUrl'] = tags.image?.url } if (tags.embed) { @@ -246,7 +252,7 @@ export class TagsHtml { if (tags.embed.duration) schema['duration'] = tags.embed.duration - schema['thumbnailUrl'] = tags.image.url + schema['thumbnailUrl'] = tags.image?.url } return Hooks.wrapObject(schema, 'filter:html.client.json-ld.result', context)