UNPKG

1.73 kBJavaScriptView Raw
1var test = require('..').test;
2
3function MathService() {
4 this.add = function (a, b) { return a + b; };
5
6 this.brokenAdd = function () { return -1; };
7
8 this.addAsync = function (a, b, callback) {
9 setTimeout(function () { callback(a + b); }, 100);
10 };
11}
12
13test('synchronous math service', function (t) {
14 var sut = new MathService();
15
16 t.test('it can add', function (t) {
17 t.equal(sut.add(2, 3), 5, '2 + 3 = 5');
18 t.equal(sut.add(4, 5), 9, '4 + 5 = 9');
19 });
20
21 t.test('it has a broken add', function (t) {
22 t.equal(sut.brokenAdd(2, -3), -1, '2 + (-3) = -1');
23 t.equal(sut.brokenAdd(3, 4), 7, '3 + 4 = 7');
24 });
25
26 t.xtest('it has a skipped test', function (t) {
27 t.equal(sut.add(2, 3), 5, '2 + 3 = 5');
28 t.equal(sut.add(4, 5), 9, '4 + 5 = 9');
29 });
30});
31
32test('asynchronous math service', function (t) {
33 var sut = new MathService();
34
35 t.test('it can add simultaneously', function (t) {
36 sut.addAsync(2, 3, t.cb(function (result) {
37 t.equal(result, 5, '2 + 3 = 5');
38 }));
39
40 sut.addAsync(4, 5, t.cb(function (result) {
41 t.equal(result, 9, '4 + 5 = 9');
42 }))
43 });
44
45 t.test('it can add with multiple async calls', function (t) {
46 sut.addAsync(2, 3, t.cb(function (result) {
47 t.equal(result, 5, '2 + 3 = 5');
48
49 sut.addAsync(result, 5, t.cb(function (result) {
50 t.equal(result, 10, '2 + 3 + 5 = 10');
51
52 t.comment('This is a comment!');
53
54 sut.addAsync(result, 3, t.cb(function (result) {
55 t.equal(result, 13, '2 + 3 + 5 + 3 = 13');
56 }));
57
58 sut.addAsync(result, 9, t.cb(function (result) {
59 t.equal(result, 19, '2 + 3 + 5 + 9 = 19');
60 }));
61 }));
62 }));
63 });
64});
65
66test('An empty test', function () {});
\No newline at end of file