mirror of
https://github.com/jwetzell/free-d-js.git
synced 2026-07-26 10:28:44 +00:00
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
const { deepEqual, throws } = require('assert');
|
|
const { describe, it } = require('node:test');
|
|
const { encode } = require('@jwetzell/free-d');
|
|
|
|
const goodTests = [
|
|
{
|
|
description: 'simple position message',
|
|
message: {
|
|
type: 0xd1,
|
|
id: 1,
|
|
pan: 180,
|
|
tilt: 90,
|
|
roll: -180,
|
|
posX: 131069,
|
|
posY: 131070,
|
|
posZ: 131071,
|
|
zoom: 66051,
|
|
focus: 263430,
|
|
spare: 0,
|
|
},
|
|
expected: new Uint8Array([
|
|
0xd1, 0x01, 0x5a, 0x00, 0x00, 0x2d, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x7f, 0xff, 0x40, 0x7f, 0xff, 0x80, 0x7f, 0xff,
|
|
0xc0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00, 50,
|
|
]),
|
|
},
|
|
];
|
|
|
|
const badTests = [
|
|
{
|
|
description: 'unsupported message',
|
|
message: {
|
|
type: 0xff,
|
|
},
|
|
throwsMessage: { name: /^Error$/, message: /unsupported freeD message type/ },
|
|
},
|
|
];
|
|
|
|
describe('FreeD Message Encoding', () => {
|
|
goodTests.forEach((messageTest) => {
|
|
it(messageTest.description, () => {
|
|
const decoded = encode(messageTest.message);
|
|
deepEqual(decoded, messageTest.expected);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('FreeD Message Encoding Throws', () => {
|
|
badTests.forEach((messageTest) => {
|
|
it(messageTest.description, () => {
|
|
throws(() => {
|
|
encode(messageTest.message);
|
|
}, messageTest.throwsMessage);
|
|
});
|
|
});
|
|
});
|