Skip to content

Commit f03d6f3

Browse files
committed
tests
1 parent 0bff767 commit f03d6f3

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

packages/utils/source/validator-set-pack.test.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,29 @@ describe("validatorSet", async ({ assert, it }) => {
1010
it("should unpack it", () => {
1111
assert.equal(validatorSetUnpack(3n, 4), [true, true, false, false]);
1212
});
13+
14+
it("should pack and unpack", () => {
15+
const validatorSet = [true, true, false, false];
16+
const packed = validatorSetPack(validatorSet);
17+
const unpacked = validatorSetUnpack(packed, validatorSet.length);
18+
19+
assert.equal(unpacked, validatorSet);
20+
});
21+
22+
it("should reject invalid packed validator set", () => {
23+
const validatorSet = [true, true, true, true];
24+
const packed = validatorSetPack(validatorSet);
25+
26+
assert.throws(() => validatorSetUnpack(0n, 0), "`numberOfValidators` must be a non-negative integer");
27+
assert.throws(() => validatorSetUnpack(0n, -10), "`numberOfValidators` must be a non-negative integer");
28+
assert.throws(() => validatorSetUnpack(0n, 1.1), "`numberOfValidators` must be a non-negative integer");
29+
assert.throws(() => validatorSetUnpack(0n, -0.1), "`numberOfValidators` must be a non-negative integer");
30+
assert.throws(() => validatorSetUnpack(0n, 0.2), "`numberOfValidators` must be a non-negative integer");
31+
assert.throws(
32+
() => validatorSetUnpack(0n, "4" as unknown as number),
33+
"`numberOfValidators` must be a non-negative integer",
34+
);
35+
assert.throws(() => validatorSetUnpack(packed, 3), "`packed` contains set bits beyond `numberOfValidators`");
36+
assert.throws(() => validatorSetUnpack(-1n, 3), "`packed` must be non-negative");
37+
});
1338
});

0 commit comments

Comments
 (0)