mirror of
https://github.com/jwetzell/ddp-js.git
synced 2026-07-26 09:58:41 +00:00
84 lines
2.0 KiB
JavaScript
84 lines
2.0 KiB
JavaScript
const { deepEqual, throws } = require('assert');
|
|
const { describe, it } = require('node:test');
|
|
const ddp = require('@jwetzell/ddp');
|
|
|
|
const goodTests = [
|
|
{
|
|
description: 'simple DDP packet',
|
|
expected: new Uint8Array([0x40, 0x0f, 0x92, 0x01, 0x45, 0x67, 0x89, 0x10, 0x10, 0x11]),
|
|
packet: {
|
|
header: {
|
|
flags: {
|
|
version: 1,
|
|
timecode: false,
|
|
storage: false,
|
|
reply: false,
|
|
query: false,
|
|
push: false,
|
|
},
|
|
sequenceNumber: 15,
|
|
dataType: {
|
|
standard: false,
|
|
type: 2,
|
|
bitsPerPixel: 4,
|
|
},
|
|
sourceOrDestinationID: 1,
|
|
dataOffset: 1164413200,
|
|
dataLength: 4113,
|
|
},
|
|
data: new Uint8Array([]),
|
|
},
|
|
},
|
|
{
|
|
description: 'DDP packet with timecode',
|
|
expected: new Uint8Array([0x50, 0x0f, 0x92, 0x01, 0x45, 0x67, 0x89, 0x10, 0x10, 0x11, 0x10, 0x11, 0x11, 0x10]),
|
|
packet: {
|
|
header: {
|
|
flags: {
|
|
version: 1,
|
|
timecode: true,
|
|
storage: false,
|
|
reply: false,
|
|
query: false,
|
|
push: false,
|
|
},
|
|
sequenceNumber: 15,
|
|
dataType: {
|
|
standard: false,
|
|
type: 2,
|
|
bitsPerPixel: 4,
|
|
},
|
|
sourceOrDestinationID: 1,
|
|
dataOffset: 1164413200,
|
|
dataLength: 4113,
|
|
timecode: {
|
|
seconds: 4113,
|
|
fractionalSeconds: 4368,
|
|
},
|
|
},
|
|
data: new Uint8Array([]),
|
|
},
|
|
},
|
|
];
|
|
|
|
const badTests = [];
|
|
|
|
describe('DDP Message Encoding Pass', () => {
|
|
goodTests.forEach((messageTest) => {
|
|
it(messageTest.description, () => {
|
|
const encoded = ddp.encode(messageTest.packet);
|
|
deepEqual(encoded, messageTest.expected);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('DDP Message Encoding Throws', () => {
|
|
badTests.forEach((messageTest) => {
|
|
it(messageTest.description, () => {
|
|
throws(() => {
|
|
ddp.encode(messageTest.message);
|
|
}, messageTest.throwsMessage);
|
|
});
|
|
});
|
|
});
|