spaces in Form Submit Query Parameters are not decoded properly
Prerequisites
- [X] I have written a descriptive issue title
- [X] I have searched existing issues to ensure the bug has not already been reported
Fastify version
4.25.2
Plugin version
3.5.0
Node.js version
20
Operating system
macOS
Operating system version (i.e. 20.04, 11.3, 10)
Description
When a form-submit with action 'GET' sends a query the query will be encoded as URLSearchParams, meaning spaces = + (not %20)
so adjusting this test will fail:
Link to code that reproduces the bug
test('GET with encoded query values', async (t) => {
t.plan(2)
const app = fastify()
app.get('/test', async (request, reply) => {
reply.send(request.query)
})
const proxy = awsLambdaFastify(app)
const ret = await proxy({
requestContext: { elb: { targetGroupArn: 'xxx' } },
httpMethod: 'GET',
path: '/test',
queryStringParameters: {
'q%24': 'foo+%3Fbar'
}
})
t.equal(ret.statusCode, 200)
t.equal(ret.body, '{"q$":"foo ?bar"}')
})
Expected Behavior
The query parameters should be parsed using 'querystring' to mimic the behaviour of the 'normal' fastify runtime
Can you check how the original aws lambda event looks like and then open a new PR by creating a dedicated test for this and providing the appropriate fix?
looks the same, I've checked (this is how I've noticed)
a + will not be transformed to a space.
Is this still relevant? Have you prepared a PR to address this?
sorry no - I've switched to hono for this use-case