Files
trezor-suite/packages/protocol/tests/protocol-thp/utils.test.ts

40 lines
1.6 KiB
TypeScript

import {
addAckBit,
addSequenceBit,
clearControlBit,
getControlBit,
} from '../../src/protocol-thp/utils';
describe('controlBit', () => {
it('ackBit', () => {
expect(addAckBit(0x20, 0).readUint8()).toEqual(0x20);
expect(addAckBit(0x20, 1).readUint8()).toEqual(0x28);
expect(addAckBit(0x04, 1).readUint8()).toEqual(0x0c);
expect(addAckBit(0x14, 1).readUint8()).toEqual(0x1c); // with sequenceBit
expect(getControlBit(0x20).ackBit).toEqual(0);
expect(getControlBit(0x28).ackBit).toEqual(1);
expect(getControlBit(0x0c).ackBit).toEqual(1);
expect(getControlBit(0x1c).ackBit).toEqual(1); // with sequenceBit
expect(clearControlBit(0x20)).toEqual(0x20);
expect(clearControlBit(0x28)).toEqual(0x20);
expect(clearControlBit(0x1c)).toEqual(0x04); // with sequenceBit
});
it('sequenceBit', () => {
expect(addSequenceBit(0x03, 0).readUint8()).toEqual(0x03);
expect(addSequenceBit(0x03, 1).readUint8()).toEqual(0x13);
expect(addSequenceBit(0x0c, 1).readUint8()).toEqual(0x1c); // with ackBit
expect(getControlBit(0x03).sequenceBit).toEqual(0);
expect(getControlBit(0x13).sequenceBit).toEqual(1);
expect(getControlBit(0x0c).sequenceBit).toEqual(0); // with ackBit
expect(getControlBit(0x1c).sequenceBit).toEqual(1); // with ackBit and sequenceBit
expect(clearControlBit(0x03)).toEqual(0x03);
expect(clearControlBit(0x13)).toEqual(0x03);
expect(clearControlBit(0x1c)).toEqual(0x04); // with ackBit
});
});