

var CS = require('../')

var pull = require('pull-stream')

require('tape')('test close', function (t) {

  t.plan(10)

  var i = 10
  var cs = CS(null, pull.infinite().pipe(pull.through(null, function () {
    console.log('CLOSE')
    t.end()
  })))
  .on('data', function (data) {
    t.ok(data)
    if(!--i) cs.destroy()
  })

})

require('tape')('test end', function (t) {

  t.plan(10)

  var i = 10
  var cs = CS(null, pull.infinite().pipe(pull.through(null, function () {
    console.log('ENDED')
    t.end()
  })))
  .on('data', function (data) {
    t.ok(data)
    if(!--i) cs.end()
  })

})

@@ -329,16 +329,17 @@
 %7D)%0A%0A%7D)%0A%0A
+%0A
 require(
@@ -585,20 +585,377 @@
 ) cs.end()%0A  %7D)%0A%0A%7D)%0A
+%0Arequire('tape')('test end async', function (t) %7B%0A%0A  t.plan(10)%0A%0A  var source = pull(pull.infinite(), pull.take(10))%0A  var cs = CS(pull.asyncMap(function (val, cb) %7B%0A    setTimeout(function () %7B%0A      cb(null, val)%0A    %7D, 10)%0A  %7D), source)%0A%0A  cs.on('data', function (data) %7B%0A    t.ok(data)%0A  %7D)%0A%0A  cs.on('end', function () %7B%0A    t.end()%0A  %7D)%0A%0A  cs.end()%0A%7D)%0A

add failing test for async end