Projekt

Obecné

Profil

Stáhnout (1.56 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
var tape = require('tape')
2
var writer = require('./')
3
4
tape('is a write stream', function (t) {
5
  var expected = ['hello', 'world', 'verden']
6
  var ws = writer.obj(write)
7
8
  ws.write('hello')
9
  ws.write('world')
10
  ws.write('verden')
11
  ws.end(function () {
12
    t.same(expected.length, 0)
13
    t.end()
14
  })
15
16
  function write (data, enc, cb) {
17
    t.same(data, expected.shift())
18
    cb()
19
  }
20
})
21
22
tape('is flushable', function (t) {
23
  var expected = ['hello', 'world', 'verden']
24
  var flushed = false
25
26
  var ws = writer.obj(write, flush)
27
28
  ws.write('hello')
29
  ws.write('world')
30
  ws.write('verden')
31
  ws.end(function () {
32
    t.same(expected.length, 0)
33
    t.ok(flushed, 'was flushed')
34
    t.end()
35
  })
36
37
  function write (data, enc, cb) {
38
    t.same(data, expected.shift())
39
    cb()
40
  }
41
42
  function flush (cb) {
43
    flushed = true
44
    process.nextTick(cb)
45
  }
46
})
47
48
tape('can pass options', function (t) {
49
  var expected = ['hello', 'world', 'verden']
50
  var flushed = false
51
52
  var ws = writer({objectMode: true}, write, flush)
53
54
  ws.write('hello')
55
  ws.write('world')
56
  ws.write('verden')
57
  ws.end(function () {
58
    t.same(expected.length, 0)
59
    t.ok(flushed, 'was flushed')
60
    t.end()
61
  })
62
63
  function write (data, enc, cb) {
64
    t.same(data, expected.shift())
65
    cb()
66
  }
67
68
  function flush (cb) {
69
    flushed = true
70
    process.nextTick(cb)
71
  }
72
})
73
74
tape('emits error on destroy', function (t) {
75
  var expected = new Error()
76
77
  var ws = writer({objectMode: true}, function () {})
78
79
  ws.on('error', function (err) {
80
    t.equal(err, expected)
81
  })
82
  ws.on('close', t.end)
83
84
  ws.destroy(expected)
85
})