-
Notifications
You must be signed in to change notification settings - Fork 483
/
apiStub.js
68 lines (61 loc) · 1.55 KB
/
apiStub.js
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
/*jshint node:true*/
"use strict";
var
stub = {
logbook: function (log) {
this.logs.push(log);
},
readLogs: function () {
return this.logs.slice();
},
getFullPath: function (path) {
return path;
},
getFiles: function (dir) {
var
filesobj = this.fakedFs[dir],
fileix,
out = [];
for (fileix in filesobj) {
if ( filesobj.hasOwnProperty(fileix) && /\.css$/.test(fileix) ) {
out.push(dir + "/" + fileix);
}
}
return out;
},
readFile: function (path) {
var
spath = path.split("/"),
spathLen = spath.length,
i,
out = this.fakedFs;
for (i = 0; i < spathLen; i += 1) {
out = out[spath[i]];
}
return out;
},
isDirectory: function (checkit) {
var
result = this.fakedFs[checkit];
return typeof result === "object";
},
print: function (msg) {
this.logbook(msg);
},
quit: function (signal) {
this.logbook(signal);
}
};
module.exports = function (setup) {
var
api,
setix;
api = Object.create(stub);
for (setix in setup) {
if (setup.hasOwnProperty(setix)) {
api[setix] = setup[setix];
}
}
api.logs = [];
return api;
};