mirror of
https://github.com/S2-/gitlit
synced 2025-08-04 05:10:05 +02:00
initial commit
This commit is contained in:
314
app/node_modules/through2/test.js
generated
vendored
Normal file
314
app/node_modules/through2/test.js
generated
vendored
Normal file
@@ -0,0 +1,314 @@
|
||||
const test = require('tape')
|
||||
, through2 = require('./')
|
||||
, crypto = require('crypto')
|
||||
, bl = require('bl')
|
||||
, spigot = require('stream-spigot')
|
||||
|
||||
test('plain through', function (t) {
|
||||
var th2 = through2(function (chunk, enc, callback) {
|
||||
if (!this._i)
|
||||
this._i = 97 // 'a'
|
||||
else
|
||||
this._i++
|
||||
var b = new Buffer(chunk.length)
|
||||
for (var i = 0; i < chunk.length; i++)
|
||||
b[i] = this._i
|
||||
this.push(b)
|
||||
callback()
|
||||
})
|
||||
|
||||
th2.pipe(bl(function (err, b) {
|
||||
var s = b.toString('ascii')
|
||||
t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string')
|
||||
t.end()
|
||||
}))
|
||||
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.write(crypto.randomBytes(5))
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('pipeable through', function (t) {
|
||||
var th2 = through2(function (chunk, enc, callback) {
|
||||
if (!this._i)
|
||||
this._i = 97 // 'a'
|
||||
else
|
||||
this._i++
|
||||
var b = new Buffer(chunk.length)
|
||||
for (var i = 0; i < chunk.length; i++)
|
||||
b[i] = this._i
|
||||
this.push(b)
|
||||
callback()
|
||||
})
|
||||
|
||||
th2.pipe(bl(function (err, b) {
|
||||
var s = b.toString('ascii')
|
||||
// bl() acts like a proper streams2 stream and passes as much as it's
|
||||
// asked for, so we really only get one write with such a small amount
|
||||
// of data
|
||||
t.equal(s, 'aaaaaaaaaaaaaaaaaaaaaaaaa', 'got transformed string')
|
||||
t.end()
|
||||
}))
|
||||
|
||||
var bufs = bl()
|
||||
bufs.append(crypto.randomBytes(10))
|
||||
bufs.append(crypto.randomBytes(5))
|
||||
bufs.append(crypto.randomBytes(10))
|
||||
bufs.pipe(th2)
|
||||
})
|
||||
|
||||
test('object through', function (t) {
|
||||
t.plan(3)
|
||||
|
||||
var th2 = through2({ objectMode: true}, function (chunk, enc, callback) {
|
||||
this.push({ out: chunk.in + 1 })
|
||||
callback()
|
||||
})
|
||||
|
||||
var e = 0
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object')
|
||||
e++
|
||||
})
|
||||
|
||||
th2.write({ in: 101 })
|
||||
th2.write({ in: 202 })
|
||||
th2.write({ in: -100 })
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('flushing through', function (t) {
|
||||
var th2 = through2(function (chunk, enc, callback) {
|
||||
if (!this._i)
|
||||
this._i = 97 // 'a'
|
||||
else
|
||||
this._i++
|
||||
var b = new Buffer(chunk.length)
|
||||
for (var i = 0; i < chunk.length; i++)
|
||||
b[i] = this._i
|
||||
this.push(b)
|
||||
callback()
|
||||
}, function (callback) {
|
||||
this.push(new Buffer([ 101, 110, 100 ]))
|
||||
callback()
|
||||
})
|
||||
|
||||
th2.pipe(bl(function (err, b) {
|
||||
var s = b.toString('ascii')
|
||||
t.equal(s, 'aaaaaaaaaabbbbbccccccccccend', 'got transformed string')
|
||||
t.end()
|
||||
}))
|
||||
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.write(crypto.randomBytes(5))
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('plain through ctor', function (t) {
|
||||
var Th2 = through2.ctor(function (chunk, enc, callback) {
|
||||
if (!this._i)
|
||||
this._i = 97 // 'a'
|
||||
else
|
||||
this._i++
|
||||
var b = new Buffer(chunk.length)
|
||||
for (var i = 0; i < chunk.length; i++)
|
||||
b[i] = this._i
|
||||
this.push(b)
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = new Th2()
|
||||
|
||||
th2.pipe(bl(function (err, b) {
|
||||
var s = b.toString('ascii')
|
||||
t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string')
|
||||
t.end()
|
||||
}))
|
||||
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.write(crypto.randomBytes(5))
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('reuse through ctor', function (t) {
|
||||
t.plan(4)
|
||||
|
||||
var Th2 = through2.ctor(function (chunk, enc, callback) {
|
||||
if (!this._i) {
|
||||
t.ok(1, 'did not contain previous instance data (this._i)')
|
||||
this._i = 97 // 'a'
|
||||
} else
|
||||
this._i++
|
||||
var b = new Buffer(chunk.length)
|
||||
for (var i = 0; i < chunk.length; i++)
|
||||
b[i] = this._i
|
||||
this.push(b)
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = Th2()
|
||||
|
||||
th2.pipe(bl(function (err, b) {
|
||||
var s = b.toString('ascii')
|
||||
t.equal('aaaaaaaaaabbbbbcccccccccc', s, 'got transformed string')
|
||||
|
||||
var newInstance = Th2()
|
||||
newInstance.pipe(bl(function (err, b) {
|
||||
var s = b.toString('ascii')
|
||||
t.equal('aaaaaaabbbbccccccc', s, 'got transformed string')
|
||||
}))
|
||||
|
||||
newInstance.write(crypto.randomBytes(7))
|
||||
newInstance.write(crypto.randomBytes(4))
|
||||
newInstance.write(crypto.randomBytes(7))
|
||||
newInstance.end()
|
||||
}))
|
||||
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.write(crypto.randomBytes(5))
|
||||
th2.write(crypto.randomBytes(10))
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('object through ctor', function (t) {
|
||||
t.plan(3)
|
||||
|
||||
var Th2 = through2.ctor({ objectMode: true}, function (chunk, enc, callback) {
|
||||
this.push({ out: chunk.in + 1 })
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = new Th2()
|
||||
|
||||
var e = 0
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object')
|
||||
e++
|
||||
})
|
||||
|
||||
th2.write({ in: 101 })
|
||||
th2.write({ in: 202 })
|
||||
th2.write({ in: -100 })
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('pipeable object through ctor', function (t) {
|
||||
t.plan(4)
|
||||
|
||||
var Th2 = through2.ctor({ objectMode: true}, function (record, enc, callback) {
|
||||
if (record.temp != null && record.unit == 'F') {
|
||||
record.temp = ( ( record.temp - 32 ) * 5 ) / 9
|
||||
record.unit = 'C'
|
||||
}
|
||||
this.push(record)
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = Th2()
|
||||
|
||||
var expect = [-19, -40, 100, 22]
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { temp: expect.shift(), unit: 'C' }, 'got transformed object')
|
||||
})
|
||||
|
||||
spigot({objectMode: true}, [
|
||||
{temp: -2.2, unit: 'F'},
|
||||
{temp: -40, unit: 'F'},
|
||||
{temp: 212, unit: 'F'},
|
||||
{temp: 22, unit: 'C'}
|
||||
]).pipe(th2)
|
||||
})
|
||||
|
||||
test('object through ctor override', function (t) {
|
||||
t.plan(3)
|
||||
|
||||
var Th2 = through2.ctor(function (chunk, enc, callback) {
|
||||
this.push({ out: chunk.in + 1 })
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = Th2({objectMode: true})
|
||||
|
||||
var e = 0
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object')
|
||||
e++
|
||||
})
|
||||
|
||||
th2.write({ in: 101 })
|
||||
th2.write({ in: 202 })
|
||||
th2.write({ in: -100 })
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('object settings available in transform', function (t) {
|
||||
t.plan(6)
|
||||
|
||||
var Th2 = through2.ctor({objectMode: true, peek: true}, function (chunk, enc, callback) {
|
||||
t.ok(this.options.peek, "reading options from inside _transform")
|
||||
this.push({ out: chunk.in + 1 })
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = Th2()
|
||||
|
||||
var e = 0
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object')
|
||||
e++
|
||||
})
|
||||
|
||||
th2.write({ in: 101 })
|
||||
th2.write({ in: 202 })
|
||||
th2.write({ in: -100 })
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('object settings available in transform override', function (t) {
|
||||
t.plan(6)
|
||||
|
||||
var Th2 = through2.ctor(function (chunk, enc, callback) {
|
||||
t.ok(this.options.peek, "reading options from inside _transform")
|
||||
this.push({ out: chunk.in + 1 })
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = Th2({objectMode: true, peek: true})
|
||||
|
||||
var e = 0
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object')
|
||||
e++
|
||||
})
|
||||
|
||||
th2.write({ in: 101 })
|
||||
th2.write({ in: 202 })
|
||||
th2.write({ in: -100 })
|
||||
th2.end()
|
||||
})
|
||||
|
||||
test('object override extends options', function (t) {
|
||||
t.plan(6)
|
||||
|
||||
var Th2 = through2.ctor({objectMode: true}, function (chunk, enc, callback) {
|
||||
t.ok(this.options.peek, "reading options from inside _transform")
|
||||
this.push({ out: chunk.in + 1 })
|
||||
callback()
|
||||
})
|
||||
|
||||
var th2 = Th2({peek: true})
|
||||
|
||||
var e = 0
|
||||
th2.on('data', function (o) {
|
||||
t.deepEqual(o, { out: e === 0 ? 102 : e == 1 ? 203 : -99 }, 'got transformed object')
|
||||
e++
|
||||
})
|
||||
|
||||
th2.write({ in: 101 })
|
||||
th2.write({ in: 202 })
|
||||
th2.write({ in: -100 })
|
||||
th2.end()
|
||||
})
|
Reference in New Issue
Block a user