@@ -179,9 +179,9 @@ function getRequestOrigin(request?: Request): string | undefined {
179179
180180function withDevTrustedOrigins (
181181 trustedOrigins : TrustedOrigins ,
182- options : GetNitroOriginOptions & { hasExplicitSiteUrl : boolean } ,
182+ options : GetNitroOriginOptions ,
183183) : TrustedOrigins {
184- if ( ! options . isDev || ! options . hasExplicitSiteUrl )
184+ if ( ! options . isDev )
185185 return trustedOrigins
186186
187187 const devOrigins = getDevTrustedOrigins ( options )
@@ -307,7 +307,6 @@ describe('withDevTrustedOrigins', () => {
307307 const trustedOrigins = withDevTrustedOrigins ( undefined , {
308308 isDev : true ,
309309 isPrerender : false ,
310- hasExplicitSiteUrl : true ,
311310 env : {
312311 __NUXT_DEV__ : JSON . stringify ( { proxy : { url : 'http://127.0.0.1:4123' } } ) ,
313312 } ,
@@ -324,7 +323,6 @@ describe('withDevTrustedOrigins', () => {
324323 const trustedOrigins = withDevTrustedOrigins ( [ 'https://foo.workers.dev' , 'http://localhost:3001' ] , {
325324 isDev : true ,
326325 isPrerender : false ,
327- hasExplicitSiteUrl : true ,
328326 env : {
329327 NITRO_HOST : 'localhost' ,
330328 NITRO_PORT : '3001' ,
@@ -343,7 +341,6 @@ describe('withDevTrustedOrigins', () => {
343341 const trustedOrigins = withDevTrustedOrigins ( trustedOriginsFn , {
344342 isDev : true ,
345343 isPrerender : false ,
346- hasExplicitSiteUrl : true ,
347344 env : {
348345 NITRO_HOST : '192.168.1.50' ,
349346 NITRO_PORT : '3002' ,
@@ -363,7 +360,6 @@ describe('withDevTrustedOrigins', () => {
363360 const trustedOrigins = withDevTrustedOrigins ( undefined , {
364361 isDev : true ,
365362 isPrerender : false ,
366- hasExplicitSiteUrl : true ,
367363 env : {
368364 NITRO_HOST : '0.0.0.0' ,
369365 NITRO_PORT : '3000' ,
@@ -384,7 +380,6 @@ describe('withDevTrustedOrigins', () => {
384380 const trustedOrigins = withDevTrustedOrigins ( undefined , {
385381 isDev : false ,
386382 isPrerender : false ,
387- hasExplicitSiteUrl : true ,
388383 env : {
389384 NITRO_HOST : 'localhost' ,
390385 NITRO_PORT : '3000' ,
@@ -394,18 +389,42 @@ describe('withDevTrustedOrigins', () => {
394389 expect ( trustedOrigins ) . toBeUndefined ( )
395390 } )
396391
397- it ( 'does not augment when siteUrl is not explicit' , ( ) => {
398- const configuredTrustedOrigins = [ 'https://foo.workers.dev' ]
399- const trustedOrigins = withDevTrustedOrigins ( configuredTrustedOrigins , {
392+ it ( 'augments even when siteUrl is inferred' , async ( ) => {
393+ const trustedOrigins = withDevTrustedOrigins ( [ 'https://foo.workers.dev' ] , {
400394 isDev : true ,
401395 isPrerender : false ,
402- hasExplicitSiteUrl : false ,
403396 env : {
404397 NITRO_HOST : 'localhost' ,
405398 NITRO_PORT : '3000' ,
406399 } ,
407400 } )
408401
409- expect ( trustedOrigins ) . toBe ( configuredTrustedOrigins )
402+ expect ( typeof trustedOrigins ) . toBe ( 'function' )
403+ if ( typeof trustedOrigins !== 'function' )
404+ throw new Error ( 'trustedOrigins should be a function' )
405+
406+ const resolvedOrigins = await trustedOrigins ( )
407+ expect ( resolvedOrigins ) . toEqual ( [ 'https://foo.workers.dev' , 'http://localhost:3000' ] )
408+ } )
409+
410+ it ( 'adds loopback request origins regardless of alias order' , async ( ) => {
411+ const trustedOrigins = withDevTrustedOrigins ( undefined , {
412+ isDev : true ,
413+ isPrerender : false ,
414+ env : {
415+ NITRO_HOST : 'localhost' ,
416+ NITRO_PORT : '3000' ,
417+ } ,
418+ } )
419+
420+ expect ( typeof trustedOrigins ) . toBe ( 'function' )
421+ if ( typeof trustedOrigins !== 'function' )
422+ throw new Error ( 'trustedOrigins should be a function' )
423+
424+ const localhostRequestOrigins = await trustedOrigins ( new Request ( 'http://localhost:3000/api/auth/sign-in' ) )
425+ const loopbackRequestOrigins = await trustedOrigins ( new Request ( 'http://127.0.0.1:3000/api/auth/sign-in' ) )
426+
427+ expect ( localhostRequestOrigins ) . toEqual ( [ 'http://localhost:3000' ] )
428+ expect ( loopbackRequestOrigins ) . toEqual ( [ 'http://localhost:3000' , 'http://127.0.0.1:3000' ] )
410429 } )
411430} )
0 commit comments