-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathtest.js
More file actions
50 lines (41 loc) · 1.52 KB
/
test.js
File metadata and controls
50 lines (41 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var assert = require('assert');
describe('pullscripts', function () {
var request = require('request');
var parse = require('./parse');
var html = '<html>' +
'<head>' +
'<script src="http://firstUrl.com"></script>' +
'<script src="//secondUrl.com"></script>' +
'<script src="./ignoredLocalUrl"></script>' +
'</head>' +
'</html>';
var urls = [ 'http://firstUrl.com', 'http://secondUrl.com' ];
it('downloads eligible script files', function (done) {
request.get = function (url, callback) {
callback(null, { statusCode: 200 }, url);
};
parse(html, {}, function (content) {
assert.equal(content, urls.join('\n'));
done();
});
});
it('logs error', function (done) {
request.get = function (url, callback) {
callback(null, { statusCode: 404 }, url);
};
var expectedErrors = urls.slice();
var logger = {
error: function () {
assert.equal(arguments[0], 'Failed to download');
assert.equal(arguments[1], expectedErrors.shift());
assert.equal(arguments[2], 404);
if (expectedErrors.length === 0) {
done();
}
}
};
parse(html, logger, function (content) {
assert(false, 'Shouldn\'t hit callback due to download errors');
});
});
});