parsec-node
Version:
https://parseclabs.readthedocs.io/en/latest/
42 lines (34 loc) • 1.29 kB
JavaScript
const { Tx } = require('parsec-lib');
const checkValidatorLogout = require('./checkValidatorLogout');
const ADDR_1 = '0x4436373705394267350db2c06613990d34621d69';
const ADDR_2 = '0x8ab21c65041778dfc7ec7995f9cdef3d5221a5ad';
const TENDER_KEY_1 = '0x7640D69D9EDB21592CBDF4CC49956EA53E59656FC2D8BBD1AE3F427BF67D47FA'.toLowerCase();
describe('checkValidatorLogout', () => {
test('successful validatorLogout tx', () => {
const state = {
slots: [
{
id: 0,
tenderKey: TENDER_KEY_1,
signerAddr: ADDR_1,
eventsCount: 1,
},
],
};
const logout = Tx.validatorLogout(0, TENDER_KEY_1, 2, 10, ADDR_2);
checkValidatorLogout(state, logout);
expect(state.slots[0]).toBeDefined();
expect(state.slots[0].eventsCount).toBe(2);
expect(state.slots[0].tenderKey).toBe(TENDER_KEY_1);
expect(state.slots[0].activationEpoch).toBe(10);
expect(state.slots[0].signerAddr).toBe(ADDR_1);
expect(state.slots[0].newSigner).toBe(ADDR_2);
});
test('validatorLogout tx for empty slot', () => {
const state = { slots: [] };
const logout = Tx.validatorLogout(0, TENDER_KEY_1, 0, 10, ADDR_1);
expect(() => {
checkValidatorLogout(state, logout);
}).toThrow('Slot 0 is empty');
});
});