From 26aa50deec466a58480f4ae09b5215112113e6b1 Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 21 Sep 2019 16:45:51 +0200 Subject: [PATCH] better test --- Index.ts | 13 ------------- index.ts | 7 ------- src/Backend.ts | 20 ++++++++++---------- src/Types.ts | 4 ++-- test/Test.ts | 23 +++++++++++++++-------- 5 files changed, 27 insertions(+), 40 deletions(-) delete mode 100644 Index.ts delete mode 100644 index.ts diff --git a/Index.ts b/Index.ts deleted file mode 100644 index 18f91f1..0000000 --- a/Index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import * as Back from './src/Backend'; -import * as Front from './src/Frontend'; -import * as Types from './src/Types'; -import * as Utils from './src/Utils'; -import * as Interfaces from './src/Interfaces'; - -export { - Back as Backend, - Front as Frontend, - Types, - Utils, - Interfaces, -} \ No newline at end of file diff --git a/index.ts b/index.ts deleted file mode 100644 index d47b585..0000000 --- a/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as Back from './src/backend/RPCSocketServer'; -import * as Front from './src/frontend/RPCSocket'; - -export { - Back as Backend, - Front as Frontend -} \ No newline at end of file diff --git a/src/Backend.ts b/src/Backend.ts index 3687a16..8ae1852 100644 --- a/src/Backend.ts +++ b/src/Backend.ts @@ -27,20 +27,20 @@ export class RPCServer< if(!conf.visibility) this.visibility = "127.0.0.1" - if(!conf.errorHandler) this.errorHandler = - (socket:I.Socket) => (error:any) => { + this.errorHandler = (socket:I.Socket) => (error:any) => { + if(conf.errorHandler) conf.errorHandler(socket, error) socket.destroy(); console.error("Caught websocket error", String(error)) } - if(!conf.closeHandler) this.closeHandler = - (socket:I.Socket) => () => { - console.log("Socket on port "+socket.port+" closing") + this.closeHandler = (socket:I.Socket) => { + if(!conf.closeHandler) console.log("Socket on port "+socket.port+" closing") + else conf.closeHandler(socket) } - if(!conf.connectionHandler) this.connectionHandler = - (socket:I.Socket) => { - console.log("New websocket connection on port "+socket.port) + this.connectionHandler = (socket:I.Socket) => { + if(!conf.connectionHandler) console.log("New websocket connection on port "+socket.port) + else conf.connectionHandler(socket) } let badRPC @@ -60,8 +60,8 @@ export class RPCServer< try{ this.io.attach(this.ws) this.io.on('socket', (socket:I.Socket) => { - socket.on('error', this.errorHandler(socket)) - socket.on('close', this.closeHandler(socket)) + socket.on('error', (err) => this.errorHandler(socket, err)) + socket.on('close', ()=> this.closeHandler(socket)) this.connectionHandler(socket) this.initRPCs(socket) }) diff --git a/src/Types.ts b/src/Types.ts index 2603b34..c9b40ba 100644 --- a/src/Types.ts +++ b/src/Types.ts @@ -6,8 +6,8 @@ export type Arg = string export type Name = Arg export type Owner = Name export type ConnectionHandler = (socket:I.Socket) => void -export type ErrorHandler = (socket:I.Socket) => (error:any) => void -export type CloseHandler = (socket:I.Socket) => () => void +export type ErrorHandler = (socket:I.Socket, error:any) => void +export type CloseHandler = (socket:I.Socket) => void export type SocketConf = { connectionHandler?: ConnectionHandler errorHandler?: ErrorHandler diff --git a/test/Test.ts b/test/Test.ts index 091fee5..ef17313 100644 --- a/test/Test.ts +++ b/test/Test.ts @@ -21,7 +21,7 @@ function makeServer(){ return { result: "Success", uuid: uuidv4(), - topic: "" + topic: "test" } } },{ @@ -31,25 +31,32 @@ function makeServer(){ return { result: "Success", uuid: uuidv4(), - topic: "" + topic: "test" } }, onClose: (res, rpc) => { - console.log("Specific close handler for", rpc.name, res) + console.log("onClose", rpc.name === 'subscribe' && res?"OK":"") subcallback = null }, - onCallback: (...args:any) => { console.log.apply(console, args) } + onCallback: (...args:any) => { + console.log("onCallback", args[0] === "test" && args[1] === "callback"?"OK":"") + } }, function add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)}, function triggerCallback(...messages:any[]):number {return subcallback.apply({}, messages)}, ] - }]) + }],{ + connectionHandler: (socket) => { console.log("connectionHandler OK") }, + closeHandler: (socket) => { console.log("closeHandler OK") }, + errorHandler: (socket, err) => { console.error("errorHandler OK SO YOU SHOULDN'T SEE THIS"); throw err } + }) } -let server: RPCServer<{ topic: string}> describe('RPCServer', () => { - before(async(done) => { + let server: RPCServer<{ topic: string}> + + before((done) => { server = makeServer() done() }) @@ -84,7 +91,7 @@ describe('RPCSocket', () => { return await client.connect() }) - after(async() => { + after(() => { client.destroy() server.destroy() })