Skip to content

Commit

Permalink
Merge pull request imagekit-developer#64 from imagekit-developer/dev
Browse files Browse the repository at this point in the history
stop sending undefined values in upload API
  • Loading branch information
imagekitio committed Sep 29, 2022
2 parents 026dcc7 + 1fad2a0 commit fea3e21
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 5 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "imagekit-javascript",
"version": "1.5.3",
"version": "1.5.4",
"description": "Javascript SDK for using ImageKit.io in the browser",
"main": "dist/imagekit.cjs.js",
"module": "dist/imagekit.esm.js",
Expand Down
3 changes: 1 addition & 2 deletions src/upload/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ export const upload = (
} else if (key === "customMetadata" && typeof uploadOptions.customMetadata === "object" &&
!Array.isArray(uploadOptions.customMetadata) && uploadOptions.customMetadata !== null) {
formData.append('customMetadata', JSON.stringify(uploadOptions.customMetadata));
}
else {
} else if(uploadOptions[key] !== undefined) {
formData.append(key, String(uploadOptions[key]));
}
}
Expand Down
50 changes: 49 additions & 1 deletion test/upload.js
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ describe("File upload", function () {
expect(arg.get('expire')).to.be.equal("123");
expect(arg.get('signature')).to.be.equal("test_signature");
expect(arg.get('publicKey')).to.be.equal('test_public_key');
expect(arg.get('tags')).to.be.equal('undefined');
expect(arg.get('tags')).to.be.equal(undefined);
expect(arg.get('isPrivateFile')).to.be.equal(undefined);
expect(arg.get('useUniqueFileName')).to.be.equal(undefined);
expect(arg.get('customCoordinates')).to.be.equal(undefined);
Expand Down Expand Up @@ -1130,4 +1130,52 @@ describe("File upload", function () {
expect(callbackResult.$ResponseMetadata.headers).to.be.deep.equal(dummyResonseHeaders);
expect(callbackResult.$ResponseMetadata.statusCode).to.be.deep.equal(200);
});

it('Undefined fields should not be sent', async function () {
const fileOptions = {
fileName: "test_file_name",
file: "test_file",
tags: undefined,
folder: undefined,
isPrivateFile: undefined,
customCoordinates: undefined,
responseFields: undefined,
extensions: undefined,
webhookUrl: undefined,
overwriteFile: undefined,
overwriteAITags: undefined,
overwriteTags: undefined,
overwriteCustomMetadata: undefined,
customMetadata: undefined
};

var callback = sinon.spy();

imagekit.upload(fileOptions, callback);

expect(server.requests.length).to.be.equal(2);
successSignature();
await sleep();
successUploadResponse();
await sleep();

var arg = server.requests[0].requestBody;
expect(arg.get('file')).to.be.equal("test_file");
expect(arg.get('fileName')).to.be.equal("test_file_name");
expect(arg.get('extensions')).to.be.equal(undefined);
expect(arg.get('tags')).to.be.equal(undefined);
expect(arg.get('folder')).to.be.equal(undefined);
expect(arg.get('isPrivateFile')).to.be.equal(undefined);
expect(arg.get('customCoordinates')).to.be.equal(undefined);
expect(arg.get('responseFields')).to.be.equal(undefined);
expect(arg.get('extensions')).to.be.equal(undefined);
expect(arg.get('webhookUrl')).to.be.equal(undefined);
expect(arg.get('overwriteFile')).to.be.equal(undefined);
expect(arg.get('overwriteAITags')).to.be.equal(undefined);
expect(arg.get('overwriteTags')).to.be.equal(undefined);
expect(arg.get('overwriteCustomMetadata')).to.be.equal(undefined);
expect(arg.get('customMetadata')).to.be.equal(undefined);
expect(callback.calledOnce).to.be.true;
sinon.assert.calledWith(callback, null, uploadSuccessResponseObj);
});
});

0 comments on commit fea3e21

Please sign in to comment.