24 lines
774 B
JavaScript
24 lines
774 B
JavaScript
'use strict'
|
|
|
|
const test = require('tape-promise').default(require('tape'))
|
|
const { Readable } = require('stream')
|
|
const streamToPromise = require('stream-to-promise')
|
|
const Encoder = require('./encoder')
|
|
|
|
test('encoder', (t) => {
|
|
t.test('empty input gives empty result', async (t) => {
|
|
const result = await streamToPromise(Readable.from([]).pipe(new Encoder()))
|
|
t.equal(result.toString(), '\\\\x')
|
|
})
|
|
|
|
t.test('input cuts at chunk boundary multiple ways', async (t) => {
|
|
const input = [0x12, 0x34, 0x56]
|
|
|
|
for (let i = 1; i < input.length; i++) {
|
|
const result = await streamToPromise(Readable.from([input.slice(0, i), input.slice(i)].map(Buffer.from)).pipe(new Encoder()))
|
|
t.equal(result.toString(), '\\\\x123456')
|
|
}
|
|
t.end()
|
|
})
|
|
})
|