forked from gyllstromk/karma-preprocessor-pullscripts
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtest.js
More file actions
73 lines (58 loc) · 1.94 KB
/
test.js
File metadata and controls
73 lines (58 loc) · 1.94 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
var assert = require('assert');
describe('pullscripts', function () {
var request = require('request');
var fs = require('fs');
var parse = require('./parse');
var html = '<html>' +
'<head>' +
'<script src="http://firstUrl.com"></script>' +
'<script src="//secondUrl.com"></script>' +
'<script src="./localFileIncluded.js"></script>' +
'</head>' +
'</html>';
var urls = [ 'http://firstUrl.com', 'http://secondUrl.com', 'dist/./localFileIncluded.js' ];
var config = { filePrefix: 'dist/' };
var logger = {
error: function () { },
debug: function() {}
};
it('downloads eligible script files', function (done) {
request.get = function (url, callback) {
callback(null, { statusCode: 200 }, url);
};
fs.readFile = function(url, callback) {
callback(null, url);
};
parse(config, html, logger, function (content) {
assert.equal(content, urls.join('\n'));
done();
});
});
it('logs error', function (done) {
request.get = function (url, callback) {
callback(null, { statusCode: 404 }, url);
};
fs.readFile = function(url, callback) {
callback('Fail', null);
};
var expectedErrors = urls.slice();
logger.error = function () {
var url = expectedErrors.shift();
if (url.match(/^http/)) {
assert.equal(arguments[0], 'Failed to download');
assert.equal(arguments[1], url);
assert.equal(arguments[2], 404);
} else {
assert.equal(arguments[0], 'Failed to read');
assert.equal(arguments[1], url);
assert.equal(arguments[2], 'Fail');
}
if (expectedErrors.length === 0) {
done();
}
}
parse(config, html, logger, function (content) {
assert(false, 'Shouldn\'t hit callback due to download errors');
});
});
});