base64-async
Version:
Non-blocking chunked Base64 encoding
38 lines (30 loc) • 1.17 kB
JavaScript
import test from 'ava';
import b64 from '../';
import values from './fixtures/values';
test('b64.encode is a function', t => {
t.is(typeof b64.encode, 'function');
});
test('b64.encode returns a Promise', t => {
const returnValue = b64.encode(values.buffer);
t.true(returnValue instanceof Promise);
});
test('b64.encode encodes buffer to Base64', async t => {
const result = await b64.encode(values.buffer);
t.is(result, values.base64);
});
test('b64.encode encodes correctly in chunks', async t => {
const result = await b64.encode(values.buffer, { chunkSize: 3 });
t.is(result, values.base64);
});
test('b64.encode rounds chunks up to multiples of 3', async t => {
const result = await b64.encode(values.buffer, { chunkSize: 1 });
t.is(result, values.base64);
});
test('b64.encode rejects Promise if chunkSize is 0', async t => {
const error = await t.throws(b64.encode(values.buffer, { chunkSize: 0 }));
t.is(error.message, 'opts.chunkSize must be larger than 0');
});
test('b64.encode rejects Promise if input is not a buffer', async t => {
const error = await t.throws(b64.encode(values.string));
t.is(error.message, 'input must be a buffer');
});