test/specs/generic/consensus/base/primitive/Commitment.spec.js
describe('Commitment', () => {
it('is serializable and unserializable', (done) => {
(async function () {
const commitment1 = (await CommitmentPair.generate()).commitment;
const commitment2 = Commitment.unserialize(commitment1.serialize());
expect(commitment1.equals(commitment2)).toEqual(true);
expect(commitment1.serialize().byteLength).toEqual(commitment1.serializedSize);
expect(commitment2.serialize().byteLength).toEqual(commitment2.serializedSize);
})().then(done, done.fail);
});
it('has an equals method', () => {
const commitment1 = new Commitment(BufferUtils.fromBase64('K38BsHxjOe06cgAW5000CjdQpNu6zQIzszvaeaHyij8='));
const commitment2 = new Commitment(BufferUtils.fromBase64('OIqozapbmyEr0AdAPDdo60rK+HL7/4jjH7l2moqOOwU='));
const commitment3 = new Commitment(BufferUtils.fromBase64('OIqozapbmyEr0AdAPDdo60rK+HL7/4jjH7l2moqOOwU='));
expect(commitment1.equals(1)).toEqual(false);
expect(commitment1.equals(null)).toEqual(false);
expect(commitment1.equals(commitment1)).toEqual(true);
expect(commitment1.equals(commitment2)).toEqual(false);
expect(commitment2.equals(commitment3)).toEqual(true);
});
it('can sum up commitments', (done) => {
(async function () {
const commitment1 = new Commitment(BufferUtils.fromBase64('K38BsHxjOe06cgAW5000CjdQpNu6zQIzszvaeaHyij8='));
const commitment2 = new Commitment(BufferUtils.fromBase64('OIqozapbmyEr0AdAPDdo60rK+HL7/4jjH7l2moqOOwU='));
const commitment3 = new Commitment(BufferUtils.fromBase64('hkdksHj6avXHBuTvE0fTmOP2LmFaDlv99HMnMEFgtxw='));
expect((await Commitment.sum([commitment1, commitment2])).equals(commitment3)).toEqual(true);
expect((await Commitment.sum([commitment2, commitment1])).equals(commitment3)).toEqual(true);
})().then(done, done.fail);
});
it('correctly aggregates commitments', (done) => {
(async function () {
for (const testCase of Dummy.partialSignatureTestVectors) {
const aggCommitment = Commitment._commitmentsAggregate(testCase.commitments);
expect(BufferUtils.equals(aggCommitment, testCase.aggCommitment)).toBe(true);
}
})().then(done, done.fail);
});
});