1
0
Fork 0
js-utils/test/utils/TestBuffer.ts

44 lines
1.2 KiB
TypeScript
Raw Normal View History

import { expect } from 'chai';
import { array, uint8Array } from 'fast-check';
import { over } from 'mocha-foam';
2022-10-08 19:10:17 +00:00
import { concat, encode } from '../../src/Buffer.js';
import { sum } from '../../src/Math.js';
describe('buffer utils', async () => {
describe('concat', async () => {
it('should append chunk buffers', async () => {
expect(concat([
Buffer.from('hello'),
Buffer.from('world'),
])).to.deep.equal(Buffer.from('helloworld'));
});
over('many chunk buffers', array(uint8Array().map((it) => Buffer.from(it.buffer))), (it) => {
it('should be the sum of the chunk lengths', (chunks) => {
const result = concat(chunks);
const total = chunks.map((c) => c.length).reduce(sum, 0);
expect(result.length).to.equal(total);
});
});
});
describe('encode', async () => {
it('should encode chunk buffers', async () => {
expect(encode([
Buffer.from('hello world'),
], 'utf-8')).to.equal('hello world');
});
it('should encode no buffers', async () => {
expect(encode([], 'utf-8')).to.equal('');
});
it('should encode empty buffers', async () => {
expect(encode([
new Buffer(0),
], 'utf-8')).to.equal('');
});
});
});