bennc-js/tests/messages/packet.test.ts
Jack Hadrill e758de7ef4
Some checks failed
continuous-integration/drone/push Build is failing
Add all BENNC message types with unit tests
2022-02-06 20:38:52 +00:00

47 lines
1.1 KiB
TypeScript

import { packOutgoingPacket, unpackIncomingPacket } from '../../src/messages/packet'
test('Pack an outgoing packet.', () => {
// Given
const messageType = Buffer.from([0x12, 0x34])
const data = Buffer.from([0x12, 0x34, 0x56, 0x78])
// When
const packedPacket = packOutgoingPacket({
messageType: messageType,
data: data
})
// Then
const expectedResult = Buffer.from([
// Message type
0x12, 0x34,
// Data length
0x00, 0x04,
// Data
0x12, 0x34, 0x56, 0x78
])
expect(packedPacket).toMatchObject(expectedResult)
})
test('Unpack an incoming packet.', () => {
// Given
const incomingPacket = Buffer.from([
// Message type
0x12, 0x34,
// Sender ID
0xaa, 0xbb, 0xcc, 0xdd,
// Data length
0x00, 0x04,
// Data
0x12, 0x34, 0x56, 0x78
])
// When
const unpackedResult = unpackIncomingPacket(incomingPacket)
// Then
expect(unpackedResult.messageType).toBe(0x1234)
expect(unpackedResult.senderId).toBe(0xaabbccdd)
expect(unpackedResult.data).toMatchObject(Buffer.from([0x12, 0x34, 0x56, 0x78]))
})