libp2p-pubsub
Version:
53 lines • 2.32 kB
JavaScript
import { expect } from 'aegir/utils/chai.js';
import * as utils from '../src/utils.js';
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
describe('utils', () => {
it('randomSeqno', () => {
const first = utils.randomSeqno();
const second = utils.randomSeqno();
expect(first).to.have.length(8);
expect(second).to.have.length(8);
expect(first).to.not.eql(second);
});
it('msgId should not generate same ID for two different Uint8Arrays', () => {
const peerId = 'QmPNdSYk5Rfpo5euNqwtyizzmKXMNHdXeLjTQhcN4yfX22';
const msgId0 = utils.msgId(peerId, uint8ArrayFromString('15603533e990dfde', 'base16'));
const msgId1 = utils.msgId(peerId, uint8ArrayFromString('15603533e990dfe0', 'base16'));
expect(msgId0).to.not.deep.equal(msgId1);
});
it('anyMatch', () => {
[
{ a: [1, 2, 3], b: [4, 5, 6], result: false },
{ a: [1, 2], b: [1, 2], result: true },
{ a: [1, 2, 3], b: [4, 5, 1], result: true },
{ a: [5, 6, 1], b: [1, 2, 3], result: true },
{ a: [], b: [], result: false },
{ a: [1], b: [2], result: false }
].forEach((test) => {
expect(utils.anyMatch(new Set(test.a), new Set(test.b))).to.equal(test.result);
expect(utils.anyMatch(new Set(test.a), test.b)).to.equal(test.result);
});
});
it('ensureArray', () => {
expect(utils.ensureArray('hello')).to.be.eql(['hello']);
expect(utils.ensureArray([1, 2])).to.be.eql([1, 2]);
});
it('converts an OUT msg.from to binary', () => {
const binaryId = uint8ArrayFromString('1220e2187eb3e6c4fb3e7ff9ad4658610624a6315e0240fc6f37130eedb661e939cc', 'base16');
const stringId = 'QmdZEWgtaWAxBh93fELFT298La1rsZfhiC2pqwMVwy3jZM';
const m = [{
from: binaryId
}, {
from: stringId
}];
const expected = [
{ from: binaryId },
{ from: binaryId }
];
for (let i = 0; i < m.length; i++) {
// @ts-expect-error some Message fields are missing from m
expect(utils.normalizeOutRpcMessage(m[i])).to.deep.equal(expected[i]);
}
});
});
//# sourceMappingURL=utils.spec.js.map