| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | 
							- 'use strict'
 
- const assert = require('chai').assert
 
- const proxyquire = require('proxyquire')
 
- const spooks = require('spooks')
 
- const Promise = require('bluebird')
 
- const modulePath = '../../src/unpipe'
 
- suite('unpipe:', () => {
 
-   test('require does not throw', () => {
 
-     assert.doesNotThrow(() => {
 
-       require(modulePath)
 
-     })
 
-   })
 
-   test('require returns function', () => {
 
-     assert.isFunction(require(modulePath))
 
-   })
 
-   suite('require:', () => {
 
-     let log, results, unpipe
 
-     setup(() => {
 
-       log = {}
 
-       results = {
 
-         parse: [ Promise.resolve() ]
 
-       }
 
-       unpipe = proxyquire(modulePath, {
 
-         './parse': spooks.fn({
 
-           name: 'parse',
 
-           log: log,
 
-           results: results.parse
 
-         })
 
-       })
 
-     })
 
-     test('unpipe expects two arguments', () => {
 
-       assert.lengthOf(unpipe, 2)
 
-     })
 
-     test('unpipe does not throw', () => {
 
-       assert.doesNotThrow(() => {
 
-         unpipe(() => {})
 
-       })
 
-     })
 
-     test('unpipe throws if callback is not provided', () => {
 
-       assert.throws(() => {
 
-         unpipe()
 
-       })
 
-     })
 
-     test('parse was not called', () => {
 
-       assert.strictEqual(log.counts.parse, 0)
 
-     })
 
-     suite('unpipe success:', () => {
 
-       let result, error, options
 
-       setup(done => {
 
-         results.parse[0] = Promise.resolve('foo')
 
-         options = { foo: 'bar', ndjson: true }
 
-         unpipe((err, res) => {
 
-           error = err
 
-           result = res
 
-           done()
 
-         }, options)
 
-       })
 
-       test('parse was called once', () => {
 
-         assert.strictEqual(log.counts.parse, 1)
 
-       })
 
-       test('parse was called correctly', () => {
 
-         assert.isUndefined(log.these.parse[0])
 
-         assert.lengthOf(log.args.parse[0], 2)
 
-         assert.isObject(log.args.parse[0][0])
 
-         assert.isTrue(log.args.parse[0][0].readable)
 
-         assert.isTrue(log.args.parse[0][0].writable)
 
-         assert.isFunction(log.args.parse[0][0].pipe)
 
-         assert.isFunction(log.args.parse[0][0].read)
 
-         assert.isFunction(log.args.parse[0][0]._read)
 
-         assert.isFunction(log.args.parse[0][0].write)
 
-         assert.isFunction(log.args.parse[0][0]._write)
 
-         assert.notStrictEqual(log.args.parse[0][1], options)
 
-         assert.deepEqual(log.args.parse[0][1], { foo: 'bar', ndjson: false })
 
-       })
 
-       test('parse result was returned', () => {
 
-         assert.strictEqual(result, 'foo')
 
-       })
 
-       test('did not fail', () => {
 
-         assert.isNull(error)
 
-       })
 
-     })
 
-     suite('unpipe error:', () => {
 
-       let result, error, options
 
-       setup(done => {
 
-         results.parse[0] = Promise.reject('bar')
 
-         options = {}
 
-         unpipe((err, res) => {
 
-           error = err
 
-           result = res
 
-           done()
 
-         }, options)
 
-       })
 
-       test('parse was called once', () => {
 
-         assert.strictEqual(log.counts.parse, 1)
 
-       })
 
-       test('parse result was not returned', () => {
 
-         assert.isUndefined(result)
 
-       })
 
-       test('failed', () => {
 
-         assert.strictEqual(error, 'bar')
 
-       })
 
-     })
 
-   })
 
- })
 
 
  |