You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							85 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							85 lines
						
					
					
						
							1.6 KiB
						
					
					
				var tape = require('tape') | 
						|
var writer = require('./') | 
						|
 | 
						|
tape('is a write stream', function (t) { | 
						|
  var expected = ['hello', 'world', 'verden'] | 
						|
  var ws = writer.obj(write) | 
						|
 | 
						|
  ws.write('hello') | 
						|
  ws.write('world') | 
						|
  ws.write('verden') | 
						|
  ws.end(function () { | 
						|
    t.same(expected.length, 0) | 
						|
    t.end() | 
						|
  }) | 
						|
 | 
						|
  function write (data, enc, cb) { | 
						|
    t.same(data, expected.shift()) | 
						|
    cb() | 
						|
  } | 
						|
}) | 
						|
 | 
						|
tape('is flushable', function (t) { | 
						|
  var expected = ['hello', 'world', 'verden'] | 
						|
  var flushed = false | 
						|
 | 
						|
  var ws = writer.obj(write, flush) | 
						|
 | 
						|
  ws.write('hello') | 
						|
  ws.write('world') | 
						|
  ws.write('verden') | 
						|
  ws.end(function () { | 
						|
    t.same(expected.length, 0) | 
						|
    t.ok(flushed, 'was flushed') | 
						|
    t.end() | 
						|
  }) | 
						|
 | 
						|
  function write (data, enc, cb) { | 
						|
    t.same(data, expected.shift()) | 
						|
    cb() | 
						|
  } | 
						|
 | 
						|
  function flush (cb) { | 
						|
    flushed = true | 
						|
    process.nextTick(cb) | 
						|
  } | 
						|
}) | 
						|
 | 
						|
tape('can pass options', function (t) { | 
						|
  var expected = ['hello', 'world', 'verden'] | 
						|
  var flushed = false | 
						|
 | 
						|
  var ws = writer({objectMode: true}, write, flush) | 
						|
 | 
						|
  ws.write('hello') | 
						|
  ws.write('world') | 
						|
  ws.write('verden') | 
						|
  ws.end(function () { | 
						|
    t.same(expected.length, 0) | 
						|
    t.ok(flushed, 'was flushed') | 
						|
    t.end() | 
						|
  }) | 
						|
 | 
						|
  function write (data, enc, cb) { | 
						|
    t.same(data, expected.shift()) | 
						|
    cb() | 
						|
  } | 
						|
 | 
						|
  function flush (cb) { | 
						|
    flushed = true | 
						|
    process.nextTick(cb) | 
						|
  } | 
						|
}) | 
						|
 | 
						|
tape('emits error on destroy', function (t) { | 
						|
  var expected = new Error() | 
						|
 | 
						|
  var ws = writer({objectMode: true}, function () {}) | 
						|
 | 
						|
  ws.on('error', function (err) { | 
						|
    t.equal(err, expected) | 
						|
  }) | 
						|
  ws.on('close', t.end) | 
						|
 | 
						|
  ws.destroy(expected) | 
						|
})
 | 
						|
 |