UNPKG

socket.me

Version:

Fast Strong-typed WebSockets

109 lines (74 loc) 2.54 kB
const assert = require('node:assert/strict'); // const test = require('node:test'); //---]> const messagePacker = require('./../src/shared/messagePacker'); //-------------------------------------------------- const { pack, unpack } = messagePacker; //-------------------------------------------------- function test(type, callback) { // shim : node.18 console.log(type); callback(); } //-------------------------------------------------- test('1. pack > unpack', () => { const a = unpack(pack('test')); const e = ['test', undefined, undefined]; assert.deepStrictEqual(a, e); }); test('2. pack > unpack', () => { const a = unpack(pack('2.test', null, [1, 2, 3, 'bin тест ё 120'])); const e = ['2.test', undefined, [1, 2, 3, 'bin тест ё 120']]; assert.deepStrictEqual(a, e); }); test('3. pack > unpack', () => { const a = unpack(pack('test.3', 0, [1, 2, 3, 'bin тест ё 120'])); const e = ['test.3', 0, [1, 2, 3, 'bin тест ё 120']]; assert.deepStrictEqual(a, e); }); test('4. pack > unpack', () => { const a = unpack(pack('4.test', 0)); const e = ['4.test', 0, undefined]; assert.deepStrictEqual(a, e); }); test('5. pack > unpack', () => { const a = unpack(pack('te5st', 10)); const e = ['te5st', 10, undefined]; assert.deepStrictEqual(a, e); }); test('6. pack > unpack', () => { const a = unpack(pack('test.ё', 0, str2ab('bin тест ё 120'))); const e = ['test.ё', 0, str2ab('bin тест ё 120')]; assert.deepStrictEqual(a, e); }); test('7. unpack', () => { const a = unpack(undefined); const e = null; assert.strictEqual(a, e); }); test('8. unpack', () => { const a = unpack(new ArrayBuffer(0)); const e = null; assert.strictEqual(a, e); }); test('9. unpack', () => { const a = unpack(new ArrayBuffer(20)); const e = null; assert.strictEqual(a, e); }); test('10. unpack', () => { const buf = new ArrayBuffer(20); const bufView = new Uint8Array(buf); bufView[0] = 2; // json const a = unpack(buf); assert.strictEqual(a instanceof Error, true); }); //-------------------------------------------------- function str2ab(str) { const len = str.length; const buf = new ArrayBuffer(len * 2); const bufView = new Uint16Array(buf); for(let i = 0; i < len; i++) { bufView[i] = str.charCodeAt(i); } return buf; }