Skip to content

Commit fea3e21

Browse files
authored
Merge pull request #64 from imagekit-developer/dev
stop sending undefined values in upload API
2 parents 026dcc7 + 1fad2a0 commit fea3e21

File tree

4 files changed

+52
-5
lines changed

4 files changed

+52
-5
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "imagekit-javascript",
3-
"version": "1.5.3",
3+
"version": "1.5.4",
44
"description": "Javascript SDK for using ImageKit.io in the browser",
55
"main": "dist/imagekit.cjs.js",
66
"module": "dist/imagekit.esm.js",

src/upload/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ export const upload = (
4444
} else if (key === "customMetadata" && typeof uploadOptions.customMetadata === "object" &&
4545
!Array.isArray(uploadOptions.customMetadata) && uploadOptions.customMetadata !== null) {
4646
formData.append('customMetadata', JSON.stringify(uploadOptions.customMetadata));
47-
}
48-
else {
47+
} else if(uploadOptions[key] !== undefined) {
4948
formData.append(key, String(uploadOptions[key]));
5049
}
5150
}

test/upload.js

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ describe("File upload", function () {
492492
expect(arg.get('expire')).to.be.equal("123");
493493
expect(arg.get('signature')).to.be.equal("test_signature");
494494
expect(arg.get('publicKey')).to.be.equal('test_public_key');
495-
expect(arg.get('tags')).to.be.equal('undefined');
495+
expect(arg.get('tags')).to.be.equal(undefined);
496496
expect(arg.get('isPrivateFile')).to.be.equal(undefined);
497497
expect(arg.get('useUniqueFileName')).to.be.equal(undefined);
498498
expect(arg.get('customCoordinates')).to.be.equal(undefined);
@@ -1130,4 +1130,52 @@ describe("File upload", function () {
11301130
expect(callbackResult.$ResponseMetadata.headers).to.be.deep.equal(dummyResonseHeaders);
11311131
expect(callbackResult.$ResponseMetadata.statusCode).to.be.deep.equal(200);
11321132
});
1133+
1134+
it('Undefined fields should not be sent', async function () {
1135+
const fileOptions = {
1136+
fileName: "test_file_name",
1137+
file: "test_file",
1138+
tags: undefined,
1139+
folder: undefined,
1140+
isPrivateFile: undefined,
1141+
customCoordinates: undefined,
1142+
responseFields: undefined,
1143+
extensions: undefined,
1144+
webhookUrl: undefined,
1145+
overwriteFile: undefined,
1146+
overwriteAITags: undefined,
1147+
overwriteTags: undefined,
1148+
overwriteCustomMetadata: undefined,
1149+
customMetadata: undefined
1150+
};
1151+
1152+
var callback = sinon.spy();
1153+
1154+
imagekit.upload(fileOptions, callback);
1155+
1156+
expect(server.requests.length).to.be.equal(2);
1157+
successSignature();
1158+
await sleep();
1159+
successUploadResponse();
1160+
await sleep();
1161+
1162+
var arg = server.requests[0].requestBody;
1163+
expect(arg.get('file')).to.be.equal("test_file");
1164+
expect(arg.get('fileName')).to.be.equal("test_file_name");
1165+
expect(arg.get('extensions')).to.be.equal(undefined);
1166+
expect(arg.get('tags')).to.be.equal(undefined);
1167+
expect(arg.get('folder')).to.be.equal(undefined);
1168+
expect(arg.get('isPrivateFile')).to.be.equal(undefined);
1169+
expect(arg.get('customCoordinates')).to.be.equal(undefined);
1170+
expect(arg.get('responseFields')).to.be.equal(undefined);
1171+
expect(arg.get('extensions')).to.be.equal(undefined);
1172+
expect(arg.get('webhookUrl')).to.be.equal(undefined);
1173+
expect(arg.get('overwriteFile')).to.be.equal(undefined);
1174+
expect(arg.get('overwriteAITags')).to.be.equal(undefined);
1175+
expect(arg.get('overwriteTags')).to.be.equal(undefined);
1176+
expect(arg.get('overwriteCustomMetadata')).to.be.equal(undefined);
1177+
expect(arg.get('customMetadata')).to.be.equal(undefined);
1178+
expect(callback.calledOnce).to.be.true;
1179+
sinon.assert.calledWith(callback, null, uploadSuccessResponseObj);
1180+
});
11331181
});

0 commit comments

Comments
 (0)