Skip to content

Commit b6983e6

Browse files
authored
Merge pull request #20 from imagekit-developer/test-cases-upload
Test cases upload
2 parents da2c717 + eaf79d2 commit b6983e6

File tree

23 files changed

+2013
-229
lines changed

23 files changed

+2013
-229
lines changed

.github/workflows/nodejs.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ jobs:
1717
uses: actions/setup-node@v1
1818
with:
1919
node-version: ${{ matrix.node-version }}
20-
- name: npm install, build, and test
20+
- name: Test and report coverage
2121
run: |
2222
npm i -g yarn
2323
yarn install
2424
yarn test
25+
yarn report-coverage
2526
env:
2627
CI: true

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
node_modules/*
2-
.vscode
2+
.vscode
3+
.nyc_output
4+
coverage.lcov
5+
coverage

.nycrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"check-coverage": true,
3+
"lines": 95
4+
}

README.md

Lines changed: 65 additions & 33 deletions
Large diffs are not rendered by default.

index.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ var ImageKit = function(opts) {
4747
}
4848
f.call(self, ...args)
4949
} else {
50-
if (typeof Promise !== 'function') {
51-
throw new Error('Promises should be defined as a global function.')
52-
}
5350
return new Promise((resolve, reject) => {
5451
const callback = function(err, ...results) {
5552
if (err) {
@@ -65,10 +62,6 @@ var ImageKit = function(opts) {
6562
}
6663
}
6764

68-
if(!transformationUtils.validParameters(this.options)) {
69-
throw new Error(errorMessages.INVALID_TRANSFORMATION_POSITION.message);
70-
}
71-
7265
/*
7366
URL Builder
7467
*/
@@ -137,8 +130,4 @@ var ImageKit = function(opts) {
137130
}
138131
};
139132

140-
function mandatoryParametersAvailable(options) {
141-
return options.publicKey && options.privateKey && options.urlEndpoint;
142-
}
143-
144133
module.exports = ImageKit;

libs/manage/cache.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,7 @@ module.exports.purgeCache = function(url, defaultOptions, callback) {
1616
}
1717
};
1818

19-
request(requestOptions, defaultOptions, function(err, response, body) {
20-
if(err) {
21-
respond(true, err, callback);
22-
return;
23-
}
24-
25-
respond(false, body, callback);
26-
});
19+
request(requestOptions, defaultOptions, callback);
2720
};
2821

2922
module.exports.getPurgeCacheStatus = function(requestId, defaultOptions, callback) {
@@ -38,12 +31,5 @@ module.exports.getPurgeCacheStatus = function(requestId, defaultOptions, callbac
3831
json : true
3932
};
4033

41-
request(requestOptions, defaultOptions, function(err, response, body) {
42-
if(err) {
43-
respond(true, err, callback);
44-
return;
45-
}
46-
47-
respond(false, body, callback);
48-
});
34+
request(requestOptions, defaultOptions, callback);
4935
};

libs/manage/file.js

Lines changed: 13 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,7 @@ module.exports.deleteFile = function(fileId, defaultOptions, callback) {
2222
json : true
2323
};
2424

25-
request(requestOptions, defaultOptions, function(err, response, body) {
26-
if(err) {
27-
respond(true, err, callback);
28-
return;
29-
}
30-
31-
respond(false, body, callback);
32-
});
25+
request(requestOptions, defaultOptions, callback);
3326
};
3427

3528
/*
@@ -46,14 +39,7 @@ module.exports.getMetadata = function(fileId, defaultOptions, callback) {
4639
json : true
4740
};
4841

49-
request(requestOptions, defaultOptions, function(err, response, body) {
50-
if(err) {
51-
respond(true, err, callback);
52-
return;
53-
}
54-
55-
respond(false, body, callback);
56-
});
42+
request(requestOptions, defaultOptions, callback);
5743
};
5844

5945
/*
@@ -71,14 +57,7 @@ module.exports.getDetails = function(fileId, defaultOptions, callback) {
7157
json : true
7258
};
7359

74-
request(requestOptions, defaultOptions, function(err, response, body) {
75-
if(err) {
76-
respond(true, err, callback);
77-
return;
78-
}
79-
80-
respond(false, body, callback);
81-
});
60+
request(requestOptions, defaultOptions, callback);
8261
};
8362

8463
/*
@@ -94,67 +73,37 @@ module.exports.updateDetails = function(fileId, updateData, defaultOptions, call
9473
respond(true, errorMessages.UPDATE_DATA_MISSING, callback);
9574
return;
9675
}
97-
var data = {};
98-
if(updateData.tags !== null
99-
&& !(updateData.tags && Array.isArray(updateData.tags))
100-
&& (typeof updateData.tags !== "undefined")
101-
) {
102-
respond(true, errorMessages.UPDATE_DATA_TAGS_INVALID, callback);
103-
return;
104-
} else {
105-
data.tags = updateData.tags;
106-
}
107-
108-
if(updateData.customCoordinates !== null
109-
&& !(updateData.customCoordinates && typeof updateData.customCoordinates === "string")
110-
&& (typeof updateData.customCoordinates !== "undefined")
111-
) {
112-
respond(true, errorMessages.UPDATE_DATA_COORDS_INVALID, callback);
113-
return;
114-
} else {
115-
data.customCoordinates = updateData.customCoordinates;
116-
}
117-
76+
var data = {
77+
tags: updateData.tags,
78+
customCoordinates: updateData.customCoordinates
79+
};
80+
11881
var requestOptions = {
11982
url : "https://api.imagekit.io/v1/files/" + fileId + "/details",
12083
method : "PATCH",
12184
json : data
12285
};
12386

124-
request(requestOptions, defaultOptions, function(err, response, body) {
125-
if(err) {
126-
respond(true, err, callback);
127-
return;
128-
}
129-
130-
respond(false, body, callback);
131-
});
87+
request(requestOptions, defaultOptions, callback);
13288
};
13389

13490
/*
13591
List files
13692
*/
13793
module.exports.listFiles = function(listOptions, defaultOptions, callback) {
138-
if(!_.isObject(listOptions)) {
94+
if(listOptions && !_.isObject(listOptions)) {
13995
respond(true, errorMessages.UPDATE_DATA_MISSING, callback);
14096
return;
14197
}
14298

14399
var requestOptions = {
144100
url : "https://api.imagekit.io/v1/files/",
145101
method : "GET",
146-
qs : listOptions,
102+
qs : listOptions || {},
147103
json : true
148104
};
149105

150-
request(requestOptions, defaultOptions, function(err, response, body) {
151-
if(err) {
152-
respond(true, err, callback);
153-
return;
154-
}
155-
156-
respond(false, body, callback);
157-
});
106+
request(requestOptions, defaultOptions, callback);
158107
};
159108

160109
/*
@@ -179,12 +128,5 @@ module.exports.bulkDeleteFiles = function(fileIdArray, defaultOptions, callback)
179128
json: data
180129
}
181130

182-
request(requestOptions, defaultOptions, function(err, response, body) {
183-
if(err) {
184-
respond(true, err, callback);
185-
return;
186-
}
187-
188-
respond(false, body, callback)
189-
});
131+
request(requestOptions, defaultOptions, callback);
190132
};

libs/upload/index.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ var request = require("../../utils/request");
99

1010
module.exports = function(uploadOptions, defaultOptions, callback) {
1111
if(!_.isObject(uploadOptions)) {
12-
respond(true, errorMessages.INVALID_UPLOAD_OPTIONS, callback);
12+
respond(true, errorMessages.MISSING_UPLOAD_DATA, callback);
1313
return;
1414
}
1515

@@ -50,12 +50,5 @@ module.exports = function(uploadOptions, defaultOptions, callback) {
5050
json : true
5151
};
5252

53-
request(requestOptions, defaultOptions, function(err, response, body) {
54-
if(err) {
55-
respond(true, err, callback);
56-
return;
57-
}
58-
59-
respond(false, body, callback);
60-
});
53+
request(requestOptions, defaultOptions, callback);
6154
};

libs/url/builder.js

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ module.exports.buildURL = function(opts) {
9797

9898
var intermediateURL = url.format(urlObject);
9999

100-
var urlSignature = getSignature({
100+
var urlSignature = module.exports.getSignature({
101101
privateKey : opts.privateKey,
102102
url : intermediateURL,
103103
urlEndpoint : opts.urlEndpoint,
@@ -131,8 +131,8 @@ function constructTransformationString(transformation) {
131131
parsedTransformStep.push(transformKey);
132132
} else {
133133
var value = transformation[i][key];
134-
if(transformKey === "oi") {
135-
value = removeLeadingSlash(value);
134+
if(transformKey === "oi" || transformKey === "di") {
135+
value = urlFormatter.removeTrailingSlash(urlFormatter.removeLeadingSlash(value));
136136
value = value.replace(/\//g,"@@");
137137
}
138138
parsedTransformStep.push([transformKey, value].join(transformationUtils.getTransformKeyValueDelimiter()));
@@ -145,13 +145,6 @@ function constructTransformationString(transformation) {
145145
return parsedTransforms.join(transformationUtils.getChainTransformDelimiter());
146146
}
147147

148-
function removeLeadingSlash(str) {
149-
if (typeof str == "string" && str[0] == "/") {
150-
str = str.slice(1);
151-
}
152-
return str;
153-
}
154-
155148
function getSignatureTimestamp(seconds) {
156149
if(!seconds) return DEFAULT_TIMESTAMP;
157150

@@ -162,7 +155,7 @@ function getSignatureTimestamp(seconds) {
162155
return currentTimestamp + sec;
163156
}
164157

165-
function getSignature(opts) {
158+
module.exports.getSignature = function(opts) {
166159
if(!opts.privateKey || !opts.url || !opts.urlEndpoint) return "";
167160
var stringToSign = opts.url.replace(urlFormatter.addTrailingSlash(opts.urlEndpoint), "") + opts.expiryTimestamp;
168161
return crypto.createHmac('sha1', opts.privateKey).update(stringToSign).digest('hex');

libs/url/index.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,6 @@ var transformationUtils = require('../../utils/transformation');
1515

1616
module.exports = function(urlOpts, defaultOptions) {
1717
var opts = _.extend({}, defaultOptions, urlOpts);
18-
19-
if(!validOptions(opts)) {
20-
return "";
21-
}
2218

2319
return builder.buildURL(opts);
2420
};
25-
26-
function validOptions(opts) {
27-
if(!opts.urlEndpoint) return false;
28-
29-
return true;
30-
}

0 commit comments

Comments
 (0)