File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed
Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -172,11 +172,19 @@ function incrementArticleLookup(
172172
173173 // logs the source of the request, if it's for hovercards it'll have the header X-Request-Source.
174174 // see src/links/components/LinkPreviewPopover.tsx
175- const source =
176- req . get ( 'X-Request-Source' ) ||
177- ( req . get ( 'Referer' )
178- ? `external-${ new URL ( req . get ( 'Referer' ) || '' ) . hostname || 'unknown' } `
179- : 'external' )
175+ let source = req . get ( 'X-Request-Source' )
176+ if ( ! source ) {
177+ const referer = req . get ( 'Referer' )
178+ if ( referer ) {
179+ try {
180+ source = `external-${ new URL ( referer ) . hostname || 'unknown' } `
181+ } catch {
182+ source = 'external'
183+ }
184+ } else {
185+ source = 'external'
186+ }
187+ }
180188
181189 const tags = [
182190 // According to https://docs.datadoghq.com/getting_started/tagging/#define-tags
Original file line number Diff line number Diff line change @@ -66,4 +66,13 @@ describe('article body api', () => {
6666 const { error } = JSON . parse ( res . body )
6767 expect ( error ) . toContain ( "isn't yet available in markdown" )
6868 } )
69+
70+ test ( 'invalid Referer header does not crash' , async ( ) => {
71+ const res = await get ( makeURL ( '/en/get-started/start-your-journey/hello-world' ) , {
72+ headers : {
73+ Referer : 'invalid-url' ,
74+ } ,
75+ } )
76+ expect ( res . statusCode ) . toBe ( 200 )
77+ } )
6978} )
You can’t perform that action at this time.
0 commit comments