forked from ybogdanov/node-sync
/
fiber.js
61 lines (51 loc) · 1.27 KB
/
fiber.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
require.paths.unshift(__dirname + '/../lib');
/**
* Tests for Sync function
*/
var Sync = require('sync'),
assert = require('assert');
var runTest = module.exports = function(callback)
{
var e;
try {
// Test returning value
Sync(function(){
return 'some value';
}, function(err, value){
assert.equal(value, 'some value');
})
// Test throws an exception
Sync(function(){
throw 'something went wrong';
}, function(err){
assert.equal(err, 'something went wrong');
})
// Test fiber passing
Sync(function(fiber){
assert.ok(fiber instanceof Fiber);
})
// Test without callback
assert.doesNotThrow(function(){
Sync(function(){
return 'test';
})
})
// Test backwards capability
Sync.Fiber(function(){
return 'some value';
}, function(err, value){
assert.equal(value, 'some value');
})
}
catch (e) {
console.error(e.stack);
}
if (callback) {
callback(e);
}
}
if (!module.parent) {
runTest(function(){
console.log('%s done', __filename);
});
}