From 40dc68b4d0699681cd8df3a282bd6ba81fba4d97 Mon Sep 17 00:00:00 2001 From: jordit Date: Fri, 18 Oct 2024 10:38:54 +0100 Subject: [PATCH 1/4] Update so and ur navs to add US election topic --- src/app/lib/config/services/somali.ts | 4 ++++ src/app/lib/config/services/urdu.ts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/app/lib/config/services/somali.ts b/src/app/lib/config/services/somali.ts index 737a8f72b15..0f4a0fc96a7 100644 --- a/src/app/lib/config/services/somali.ts +++ b/src/app/lib/config/services/somali.ts @@ -330,6 +330,10 @@ export const service: DefaultServiceConfig = { title: 'War', url: '/somali', }, + { + title: 'Doorashada Mareykanka 2024', + url: '/somali/topics/cv2g4v31x97t', + }, { title: 'Ganacsi', url: '/somali/topics/c2dwqd32v4yt', diff --git a/src/app/lib/config/services/urdu.ts b/src/app/lib/config/services/urdu.ts index 3c95b8359ed..bdef4c36343 100644 --- a/src/app/lib/config/services/urdu.ts +++ b/src/app/lib/config/services/urdu.ts @@ -409,6 +409,10 @@ export const service: DefaultServiceConfig = { title: 'صفحۂ اول', url: '/urdu', }, + { + title: 'امریکی صدارتی انتخاب 2024', + url: '/urdu/topics/c0w3wed04e3t', + }, { title: 'پاکستان', url: '/urdu/topics/cjgn7n9zzq7t', From 846de44f0f151861ca5edda95579afad79a41d98 Mon Sep 17 00:00:00 2001 From: jordit Date: Fri, 18 Oct 2024 11:55:31 +0100 Subject: [PATCH 2/4] Update snapshots --- .../urdu/__snapshots__/amp.test.js.snap | 19 +++++++++++++------ .../urdu/__snapshots__/canonical.test.js.snap | 19 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/integration/pages/featureIdxPage/urdu/__snapshots__/amp.test.js.snap b/src/integration/pages/featureIdxPage/urdu/__snapshots__/amp.test.js.snap index 70edf33513f..946b6db8009 100644 --- a/src/integration/pages/featureIdxPage/urdu/__snapshots__/amp.test.js.snap +++ b/src/integration/pages/featureIdxPage/urdu/__snapshots__/amp.test.js.snap @@ -215,48 +215,55 @@ exports[`AMP Feature Index page Header Navigation link should match text and url `; exports[`AMP Feature Index page Header Navigation link should match text and url 2`] = ` +{ + "text": "امریکی صدارتی انتخاب 2024", + "url": "/urdu/topics/c0w3wed04e3t", +} +`; + +exports[`AMP Feature Index page Header Navigation link should match text and url 3`] = ` { "text": "پاکستان", "url": "/urdu/topics/cjgn7n9zzq7t", } `; -exports[`AMP Feature Index page Header Navigation link should match text and url 3`] = ` +exports[`AMP Feature Index page Header Navigation link should match text and url 4`] = ` { "text": "آس پاس", "url": "/urdu/topics/cl8l9mveql2t", } `; -exports[`AMP Feature Index page Header Navigation link should match text and url 4`] = ` +exports[`AMP Feature Index page Header Navigation link should match text and url 5`] = ` { "text": "ورلڈ", "url": "/urdu/topics/cw57v2pmll9t", } `; -exports[`AMP Feature Index page Header Navigation link should match text and url 5`] = ` +exports[`AMP Feature Index page Header Navigation link should match text and url 6`] = ` { "text": "کھیل", "url": "/urdu/topics/c340q0p2585t", } `; -exports[`AMP Feature Index page Header Navigation link should match text and url 6`] = ` +exports[`AMP Feature Index page Header Navigation link should match text and url 7`] = ` { "text": "فن فنکار", "url": "/urdu/topics/ckdxnx900n5t", } `; -exports[`AMP Feature Index page Header Navigation link should match text and url 7`] = ` +exports[`AMP Feature Index page Header Navigation link should match text and url 8`] = ` { "text": "سائنس", "url": "/urdu/topics/c40379e2ymxt", } `; -exports[`AMP Feature Index page Header Navigation link should match text and url 8`] = ` +exports[`AMP Feature Index page Header Navigation link should match text and url 9`] = ` { "text": "ویڈیو", "url": "/urdu/topics/c1e0mzr3r2yt", diff --git a/src/integration/pages/featureIdxPage/urdu/__snapshots__/canonical.test.js.snap b/src/integration/pages/featureIdxPage/urdu/__snapshots__/canonical.test.js.snap index 6dd88cdbca5..9081bbfdc57 100644 --- a/src/integration/pages/featureIdxPage/urdu/__snapshots__/canonical.test.js.snap +++ b/src/integration/pages/featureIdxPage/urdu/__snapshots__/canonical.test.js.snap @@ -74,48 +74,55 @@ exports[`Canonical Feature Index page Header Navigation link should match text a `; exports[`Canonical Feature Index page Header Navigation link should match text and url 2`] = ` +{ + "text": "امریکی صدارتی انتخاب 2024", + "url": "/urdu/topics/c0w3wed04e3t", +} +`; + +exports[`Canonical Feature Index page Header Navigation link should match text and url 3`] = ` { "text": "پاکستان", "url": "/urdu/topics/cjgn7n9zzq7t", } `; -exports[`Canonical Feature Index page Header Navigation link should match text and url 3`] = ` +exports[`Canonical Feature Index page Header Navigation link should match text and url 4`] = ` { "text": "آس پاس", "url": "/urdu/topics/cl8l9mveql2t", } `; -exports[`Canonical Feature Index page Header Navigation link should match text and url 4`] = ` +exports[`Canonical Feature Index page Header Navigation link should match text and url 5`] = ` { "text": "ورلڈ", "url": "/urdu/topics/cw57v2pmll9t", } `; -exports[`Canonical Feature Index page Header Navigation link should match text and url 5`] = ` +exports[`Canonical Feature Index page Header Navigation link should match text and url 6`] = ` { "text": "کھیل", "url": "/urdu/topics/c340q0p2585t", } `; -exports[`Canonical Feature Index page Header Navigation link should match text and url 6`] = ` +exports[`Canonical Feature Index page Header Navigation link should match text and url 7`] = ` { "text": "فن فنکار", "url": "/urdu/topics/ckdxnx900n5t", } `; -exports[`Canonical Feature Index page Header Navigation link should match text and url 7`] = ` +exports[`Canonical Feature Index page Header Navigation link should match text and url 8`] = ` { "text": "سائنس", "url": "/urdu/topics/c40379e2ymxt", } `; -exports[`Canonical Feature Index page Header Navigation link should match text and url 8`] = ` +exports[`Canonical Feature Index page Header Navigation link should match text and url 9`] = ` { "text": "ویڈیو", "url": "/urdu/topics/c1e0mzr3r2yt", From f2c63b50fbd5252763e479d7ec662f3efaf5b18c Mon Sep 17 00:00:00 2001 From: Aaron Moore Date: Fri, 18 Oct 2024 12:22:45 +0100 Subject: [PATCH 3/4] Nextjs snapshot updates --- .../__snapshots__/canonical.test.ts.snap | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ws-nextjs-app/integration/pages/send/somaliFileUpload/__snapshots__/canonical.test.ts.snap b/ws-nextjs-app/integration/pages/send/somaliFileUpload/__snapshots__/canonical.test.ts.snap index 2291cd72111..6a7b7016887 100644 --- a/ws-nextjs-app/integration/pages/send/somaliFileUpload/__snapshots__/canonical.test.ts.snap +++ b/ws-nextjs-app/integration/pages/send/somaliFileUpload/__snapshots__/canonical.test.ts.snap @@ -72,27 +72,34 @@ exports[`Canonical Send Header Navigation link should match text and url 1`] = ` `; exports[`Canonical Send Header Navigation link should match text and url 2`] = ` +{ + "text": "Doorashada Mareykanka 2024", + "url": "/somali/topics/cv2g4v31x97t", +} +`; + +exports[`Canonical Send Header Navigation link should match text and url 3`] = ` { "text": "Ganacsi", "url": "/somali/topics/c2dwqd32v4yt", } `; -exports[`Canonical Send Header Navigation link should match text and url 3`] = ` +exports[`Canonical Send Header Navigation link should match text and url 4`] = ` { "text": "Cayaaraha", "url": "/somali/topics/cpzd4zj1pn2t", } `; -exports[`Canonical Send Header Navigation link should match text and url 4`] = ` +exports[`Canonical Send Header Navigation link should match text and url 5`] = ` { "text": "Muuqaal", "url": "/somali/topics/c7pl4k5r9xxt", } `; -exports[`Canonical Send Header Navigation link should match text and url 5`] = ` +exports[`Canonical Send Header Navigation link should match text and url 6`] = ` { "text": "Barnaamijyada Idaacadda", "url": "/somali/topics/cn6rqlrkm0pt", From 68c5b92792323cfb5ac893ccc72cba33958cec33 Mon Sep 17 00:00:00 2001 From: Aaron Moore Date: Fri, 18 Oct 2024 15:02:22 +0100 Subject: [PATCH 4/4] Lite anchor transform only WS services (#12059) * Lite anchor transform only WS services * Update transformAnchorTags.ts * Update index.test.ts --- .../litePageTransforms/index.test.ts | 28 +++++++++++++++---- .../litePageTransforms/transformAnchorTags.ts | 18 ++++++++++-- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/server/Document/Renderers/litePageTransforms/index.test.ts b/src/server/Document/Renderers/litePageTransforms/index.test.ts index 9de7c4f5cc9..b97cc83fc3e 100644 --- a/src/server/Document/Renderers/litePageTransforms/index.test.ts +++ b/src/server/Document/Renderers/litePageTransforms/index.test.ts @@ -5,6 +5,8 @@ describe('litePageTransforms', () => { it('should append .lite suffix to valid hrefs', () => { const html = ` News + News + News News News `; @@ -13,13 +15,15 @@ describe('litePageTransforms', () => { expect(modifiedHtml).toEqual(` News + News + News News News `); }); it('should not append .lite suffix to invalid hrefs', () => { - const html = ` + const originalHtml = ` News News News @@ -27,17 +31,29 @@ describe('litePageTransforms', () => { News `; - const modifiedHtml = litePageTransforms(html); + const modifiedHtml = litePageTransforms(originalHtml); + + expect(modifiedHtml).toEqual(originalHtml); + }); - expect(modifiedHtml).toEqual(html); + it('should not append .lite suffix to an invalid "service"', () => { + const originalHtml = ` + Future + Food + Weather + `; + + const modifiedHtml = litePageTransforms(originalHtml); + + expect(modifiedHtml).toEqual(originalHtml); }); it('should not append .lite suffix when no anchor tags are present', () => { - const html = '

I am a paragraph

'; + const originalHtml = '

I am a paragraph

'; - const modifiedHtml = litePageTransforms(html); + const modifiedHtml = litePageTransforms(originalHtml); - expect(modifiedHtml).toEqual(html); + expect(modifiedHtml).toEqual(originalHtml); }); }); }); diff --git a/src/server/Document/Renderers/litePageTransforms/transformAnchorTags.ts b/src/server/Document/Renderers/litePageTransforms/transformAnchorTags.ts index 4a67a87635f..f168a818d07 100644 --- a/src/server/Document/Renderers/litePageTransforms/transformAnchorTags.ts +++ b/src/server/Document/Renderers/litePageTransforms/transformAnchorTags.ts @@ -1,3 +1,8 @@ +import { Services } from '#app/models/types/global'; +import services from '#lib/config/services/loadableConfig'; + +const SERVICES = Object.keys(services) as Services[]; + const VALID_DOMAINS = [ '/', 'localhost', @@ -15,9 +20,18 @@ const isValidHref = (href: string) => { const extension = url?.pathname?.split('.')?.pop() || ''; const startsWithHash = href?.startsWith('#'); + const hasReservedRouteExtension = + RESERVED_ROUTE_EXTENSIONS.includes(extension); + + const isValidDomain = VALID_DOMAINS.includes(url.hostname); + const isWsService = SERVICES.includes( + url?.pathname?.split('/')?.[1] as Services, + ); + return ( - VALID_DOMAINS.includes(url.hostname) && - !RESERVED_ROUTE_EXTENSIONS.includes(extension) && + isValidDomain && + isWsService && + !hasReservedRouteExtension && !startsWithHash ); };