Files
bennc/tests/messages/basic.test.ts
Jack Hadrill 22999c34f9
All checks were successful
CI / build (push) Successful in 17s
CI / publish (push) Successful in 14s
style: remove unnecessary whitespace in packet.ts and basic.test.ts
2025-09-06 19:07:27 +01:00

43 lines
1.3 KiB
TypeScript

import { MessageTypes } from "../../src/common";
import { packers, unpackers } from "../../src/mapping";
const KEY = new Uint8Array([
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
]);
test("Create a basic message (0x0001) packet.", () => {
// Given
const encoder = new TextEncoder();
const message = encoder.encode("Hello, World!");
// When
const packedPacket = packers[MessageTypes.Basic](message, KEY);
// Then
// We can't check the contents of the data as it's encrypted with a random nonce.
// Check the message type and length.
expect(packedPacket.slice(0, 4)).toMatchObject(
new Uint8Array([0x00, 0x01, 0x00, 0x2d]),
);
// Check the total length is as expected.
expect(packedPacket.length).toBe(49);
});
test("Parse a basic message (0x0001).", () => {
// Given
const encoder = new TextEncoder();
const originalMessage = encoder.encode("Test message");
// First encrypt the message to get valid encrypted data
const encryptedData = packers[MessageTypes.Basic](originalMessage, KEY);
// Extract just the data portion (skip the 4-byte header)
const dataOnly = encryptedData.slice(4);
// When
const unpackedMessage = unpackers[MessageTypes.Basic](dataOnly, KEY);
// Then
expect(unpackedMessage).toEqual(originalMessage);
});