You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using a base path, the / route doesn't seem to run middleware properly.
I wrote a failing test case using CORS as an example to illustrate:
it('Middleware runs for root path when basepathed',asyncfunction(){consttestApi=require('../index')({base: 'base-path'})testApi.use((req,res,next)=>{res.cors()next()})testApi.use((err,req,res,next)=>{res.cors()next()})testApi.get('/',async()=>{return{status: 'ok'}})let_event=Object.assign({},event,{path: '/base-path/'})// even got a trailing slash and everything :(letresult=awaittestApi.run(_event,{})expect(result.multiValueHeaders).to.have.property('access-control-allow-origin')})
The route itself runs and returns { status: 'ok' } but the CORS headers are missing. If the registered route is changed it works as expected:
// ...testApi.get('/potato',async()=>{return{status: 'ok'}})let_event=Object.assign({},event,{path: '/base-path/potato'})// ... this works.
Interestingly, the error middleware runs fine regardless of the route. If you remove the route / and change the event path to something like '/base-path' you'll get a 404 (or 405, don't recall) but the CORS headers will be there
The text was updated successfully, but these errors were encountered:
Can confirm this is still occurring as of January 2024 / 1.0.3. A fix would be fantastic. Explicitly targeting / in addition to the global call works, e.g.:
When using a base path, the
/
route doesn't seem to run middleware properly.I wrote a failing test case using CORS as an example to illustrate:
The route itself runs and returns
{ status: 'ok' }
but the CORS headers are missing. If the registered route is changed it works as expected:Interestingly, the error middleware runs fine regardless of the route. If you remove the route
/
and change the event path to something like'/base-path'
you'll get a 404 (or 405, don't recall) but the CORS headers will be thereThe text was updated successfully, but these errors were encountered: