test(client-s3): add path encoding test #4574
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
Followup to #4523
Description
The S3 client uses a configuration option,
signingEscapePath
, set to false by default, to tell the signer not to encode the URL path. The serializer will encode these paths, so if the signer did as well, the paths would be encoded multiple times. S3 is the only client that uses this config option, and there were no tests that verified paths are encoded.Testing
To verify it fails properly:
request.path = decodeURIComponent(request.path);
to signature-v4/prepareRequest.ts, to make the path unencoded before it reaches the request handler..skip
to signature-v4/SignatureV4.spec.ts, just so the signature-v4 tests don't fail, since we're trying to run client-s3 tests.yarn build
in signature-v4yarn test:ci
from SDK rootAdditional context
yarn test:ci
will only run this test when a dependency of client-s3 has been changed, and built.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.