/
noodleTestTest.js
101 lines (81 loc) · 2.65 KB
/
noodleTestTest.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
var test = require('./noodleTest')();
var EventEmitter = require('events').EventEmitter;
test.onFailureExitNonZero();
test.context("NoodleTest dogfood test", function() {
this.it("should call the first context callback", function(done) {
var t = require('./noodleTest')({quiet: true});
t.context("test context", function() {
done();
this.it("test test", function(done2){
done2();
});
});
});
this.it("should call the first test callback", function(done) {
var t = require('./noodleTest')({quiet: true});
t.context("test context", function() {
this.it("test test", function(done2){
done();
done2();
});
});
});
this.it("should call the second context callback after the first", function(done) {
var myThis = this;
var firstCalled = false;
var t = require('./noodleTest')({quiet: true});
t.context("test context", function() {
firstCalled = true;
this.it("test1", function(done2){
done2();
});
});
t.context("test context", function() {
myThis.assert(firstCalled);
done();
this.it("test1", function(done2){
done2();
});
});
});
this.it("should keep Assertion in test's failed array if an assertion fails", function(done) {
var myThis = this;
var ee = new EventEmitter();
var t = require('./noodleTest')({quiet: true});
ee.on('setupDone', function(test){
myThis.assert(test.failures.length > 0);
myThis.assert(test.passes.length == 0);
done();
});
t.context("test context", function() {
this.it("test1", function(done2){
this.assert(false);
done2();
ee.emit('setupDone', this);
});
});
});
this.it("should emit assertionFailed event when an assertion fails", function(done) {
var myThis = this;
var seenAssertionFailedEvent = false;
var finish = function() {
myThis.assert(seenAssertionFailedEvent);
done();
};
var t = require('./noodleTest')({quiet: true});
var timer = setTimeout(function(){
finish();
}, 200);
t.on('assertionFailed', function() {
seenAssertionFailedEvent = true;
clearTimeout(timer);
finish();
});
t.context("test context", function() {
this.it("test1", function(done2){
this.assert(false);
done2();
});
});
});
});