-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathTester.gs
65 lines (58 loc) · 1.73 KB
/
Tester.gs
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
function Tester () {
var self = this;
var indent = 0;
var good ;
var flogger = function (mess) {
Logger.log (mess);
};
function spaces () {
return new Array(indent+1).slice().join ("-");
}
self.assure = function (valid) {
if (!valid) good = false;
if (!valid) {
self.logger (Array.prototype.slice.call(arguments,1));
}
return valid;
};
self.assureThrow = function (valid) {
if (!valid) good = false;
if (!valid) {
self.thrower (Array.prototype.slice.call(arguments,1));
}
return valid;
};
self.logger = function () {
var args = Array.prototype.slice.apply(arguments);
var mess = (args || []).map (function (d) {
if (typeof d === "object") return JSON.stringify(d);
return d.toString ? d.toString() : d;
}).join ("\n" + spaces());
flogger (spaces() + mess);
return self;
};
self.thrower = function () {
var args = Array.prototype.slice.apply(arguments);
var mess = (args || []).map (function (d) {
if (typeof d === "object") return JSON.stringify(d);
return d.toString ? d.toString() : d;
}).join ("\n" + spaces());
throw mess;
return self;
};
self.it = function (test , func) {
good = true;
self.logger ("starting test " + test);
var result = func();
self.logger ("ending test " + test + (good ? "-OK" :"-FAILED"));
return result;
};
self.describe = function (section , func ) {
self.logger ("starting section " + section) ;
indent += 2;
var result = func();
indent -=2;
self.logger ("ending section " + section) ;
return result;
};
}