UNPKG

1.05 kBJavaScriptView Raw
1
2var co = require('..');
3var assert = require('assert');
4
5function sleep(ms) {
6 return function(done){
7 setTimeout(done, ms);
8 }
9}
10
11function *work() {
12 yield sleep(50);
13 return 'yay';
14}
15
16describe('co(fn)', function(){
17 describe('with a generator function', function(){
18 it('should wrap with co()', function(done){
19 co(function *(){
20 var a = yield work;
21 var b = yield work;
22 var c = yield work;
23
24 assert('yay' == a);
25 assert('yay' == b);
26 assert('yay' == c);
27
28 var res = yield [work, work, work];
29 res.should.eql(['yay', 'yay', 'yay']);
30 })(done);
31 })
32
33 it('should pass arguments into generator', function(done) {
34 co(function *(a, b) {
35 assert('yay' == a);
36 assert('wahoo' == b);
37 })('yay', 'wahoo', done);
38 });
39
40 it('should pass arguments into generator with yields', function(done) {
41 co(function *(a, b) {
42 assert('yay' == a);
43 yield work
44 assert('wahoo' == b);
45 })('yay', 'wahoo', done);
46 });
47 })
48})