// http://tddbin.com/#?kata=es6/language/generator/send-function // 56: Generator - Send function to a generator // To do: make all tests pass, leave the assert lines unchanged! describe('pass a function to a generator', () => { it('the generator can receive a function as a value', function() { const fn = function() {}; function* generatorFunction(fn) { yield; assert.equal(yield null, fn); // remember, don't touch this line } const iterator = generatorFunction(fn); iterator.next(); iterator.next(); }); it('pass a function to the iterator, which calls it', function() { const fn = value => value; function* generatorFunction(fn) { yield fn(1) yield fn(2); } const iterator = generatorFunction(fn); const iteratedOver = [iterator.next().value, iterator.next().value]; assert.deepEqual([1, 2], iteratedOver); }); it('nesting yielded function calls', function() { const fn = function () {}; function* generatorFunction(fn) { yield 1, fn(yield 2, fn(yield 3, fn())); } const iterator = generatorFunction(fn); const iteratedOver = [iterator.next().value, iterator.next().value, iterator.next().value]; assert.deepEqual([1, 2, 3], iteratedOver); }); });