Chai assertions for byte arrays equality
npm install chai-bitesFork of chai-bytes published as ESM with relaxed input types.
[![Build status][workflow-image]][workflow-url]
[![Code coverage][coveralls-image]][coveralls-url]
[![Code style][code-style-image]][code-style-url]
[![License][license-image]][license-url]
[workflow-image]: https://github.com/slowli/chai-bytes/workflows/Node.js%20CI/badge.svg?branch=master
[workflow-url]: https://github.com/slowli/chai-bytes/actions
[coveralls-image]: https://img.shields.io/coveralls/slowli/chai-bytes.svg
[coveralls-url]: https://coveralls.io/github/slowli/chai-bytes
[code-style-image]: https://img.shields.io/badge/code%20style-semistandard-brightgreen.svg
[code-style-url]: https://github.com/Flet/semistandard
[license-image]: https://img.shields.io/github/license/slowli/chai-bytes.svg
[license-url]: https://opensource.org/licenses/Apache-2.0
chai-bytes extends [Chai][chai] with a equalBytes function,
which can be used to test equality of byte arrays (i.e., Uint8Array instances).
``javascript
const { expect, assert } = require('chai')
.use(require('chai-bytes'));
const buffer = new Uint8Array([ 1, 2, 3, 4, 5 ]);
expect(buffer).to.equalBytes('0102030405');
// assert style works, too`
assert.equalBytes(buffer, [1, 2, 3, 4, 5], 'error message');
An expected value passed to equalBytes can be:
- Hexadecimal string, e.g., 'c0ffee'[1, 2, 3]
- Array, e.g., length
- Array-like object (i.e., an object having the propertyUint8Array
and items accessible by integer properties).
This includes instances, among other things
If the passed value does not fall into any of these categories,
a TypeError is thrown.
chai-bytes uses combined code coverage from the tested browser environments
(Firefox and PhantomJS). This is because PhantomJS is a typical old environment
that may have problems with Uint8Array`s (e.g., it misses a substantial parts
of their methods).
chai-bytes is available under Apache-2.0 license.
[chai]: https://chaijs.com/