UNPKG

node-osc

Version:

pyOSC inspired library for sending and receiving OSC messages

118 lines (89 loc) 3.11 kB
'use strict'; var node_events = require('node:events'); var tap = require('tap'); var nodeOsc = require('node-osc'); tap.test('server: socket error event is emitted', async (t) => { t.plan(1); const oscServer = new nodeOsc.Server(0, '127.0.0.1'); await node_events.once(oscServer, 'listening'); oscServer.on('error', (err) => { t.ok(err, 'error event should be emitted'); oscServer.close(); }); // Simulate a socket error oscServer._sock.emit('error', new Error('test socket error')); }); tap.test('server: error listener can be added before listening', async (t) => { t.plan(2); const oscServer = new nodeOsc.Server(0, '127.0.0.1'); await node_events.once(oscServer, 'listening'); oscServer.on('error', (err) => { t.ok(err, 'error event should be emitted'); t.equal(err.message, 'socket test error', 'error message should match'); }); t.teardown(() => { oscServer.close(); }); // Simulate a socket error oscServer._sock.emit('error', new Error('socket test error')); }); tap.test('client: socket error event is emitted', (t) => { t.plan(1); const client = new nodeOsc.Client('127.0.0.1', 9999); client.on('error', (err) => { t.ok(err, 'error event should be emitted'); client.close(); }); // Simulate a socket error client._sock.emit('error', new Error('test client error')); }); tap.test('client: error listener can be added at construction', (t) => { t.plan(2); const client = new nodeOsc.Client('127.0.0.1', 9999); client.on('error', (err) => { t.ok(err, 'error event should be emitted'); t.equal(err.message, 'client socket error', 'error message should match'); }); t.teardown(() => { client.close(); }); // Simulate a socket error client._sock.emit('error', new Error('client socket error')); }); tap.test('client: is an EventEmitter instance', (t) => { t.plan(1); const client = new nodeOsc.Client('127.0.0.1', 9999); t.ok(typeof client.on === 'function', 'client should have EventEmitter methods'); client.close(); }); tap.test('server: multiple error listeners can be attached', async (t) => { t.plan(2); const oscServer = new nodeOsc.Server(0, '127.0.0.1'); await node_events.once(oscServer, 'listening'); oscServer.on('error', (err) => { t.ok(err, 'first listener should receive error'); }); oscServer.on('error', (err) => { t.ok(err, 'second listener should receive error'); }); t.teardown(() => { oscServer.close(); }); // Simulate a socket error oscServer._sock.emit('error', new Error('multi listener test')); }); tap.test('client: multiple error listeners can be attached', (t) => { t.plan(2); const client = new nodeOsc.Client('127.0.0.1', 9999); client.on('error', (err) => { t.ok(err, 'first listener should receive error'); }); client.on('error', (err) => { t.ok(err, 'second listener should receive error'); }); t.teardown(() => { client.close(); }); // Simulate a socket error client._sock.emit('error', new Error('multi listener test')); });