better test

This commit is contained in:
2019-09-21 16:45:51 +02:00
parent 8dc8d286ea
commit 26aa50deec
5 changed files with 27 additions and 40 deletions
-13
View File
@@ -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,
}
-7
View File
@@ -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
}
+10 -10
View File
@@ -27,20 +27,20 @@ export class RPCServer<
if(!conf.visibility) this.visibility = "127.0.0.1" if(!conf.visibility) this.visibility = "127.0.0.1"
if(!conf.errorHandler) this.errorHandler = this.errorHandler = (socket:I.Socket) => (error:any) => {
(socket:I.Socket) => (error:any) => { if(conf.errorHandler) conf.errorHandler(socket, error)
socket.destroy(); socket.destroy();
console.error("Caught websocket error", String(error)) console.error("Caught websocket error", String(error))
} }
if(!conf.closeHandler) this.closeHandler = this.closeHandler = (socket:I.Socket) => {
(socket:I.Socket) => () => { if(!conf.closeHandler) console.log("Socket on port "+socket.port+" closing")
console.log("Socket on port "+socket.port+" closing") else conf.closeHandler(socket)
} }
if(!conf.connectionHandler) this.connectionHandler = this.connectionHandler = (socket:I.Socket) => {
(socket:I.Socket) => { if(!conf.connectionHandler) console.log("New websocket connection on port "+socket.port)
console.log("New websocket connection on port "+socket.port) else conf.connectionHandler(socket)
} }
let badRPC let badRPC
@@ -60,8 +60,8 @@ export class RPCServer<
try{ try{
this.io.attach(this.ws) this.io.attach(this.ws)
this.io.on('socket', (socket:I.Socket) => { this.io.on('socket', (socket:I.Socket) => {
socket.on('error', this.errorHandler(socket)) socket.on('error', (err) => this.errorHandler(socket, err))
socket.on('close', this.closeHandler(socket)) socket.on('close', ()=> this.closeHandler(socket))
this.connectionHandler(socket) this.connectionHandler(socket)
this.initRPCs(socket) this.initRPCs(socket)
}) })
+2 -2
View File
@@ -6,8 +6,8 @@ export type Arg = string
export type Name = Arg export type Name = Arg
export type Owner = Name export type Owner = Name
export type ConnectionHandler = (socket:I.Socket) => void export type ConnectionHandler = (socket:I.Socket) => void
export type ErrorHandler = (socket:I.Socket) => (error:any) => void export type ErrorHandler = (socket:I.Socket, error:any) => void
export type CloseHandler = (socket:I.Socket) => () => void export type CloseHandler = (socket:I.Socket) => void
export type SocketConf = { export type SocketConf = {
connectionHandler?: ConnectionHandler connectionHandler?: ConnectionHandler
errorHandler?: ErrorHandler errorHandler?: ErrorHandler
+15 -8
View File
@@ -21,7 +21,7 @@ function makeServer(){
return { return {
result: "Success", result: "Success",
uuid: uuidv4(), uuid: uuidv4(),
topic: "" topic: "test"
} }
} }
},{ },{
@@ -31,25 +31,32 @@ function makeServer(){
return { return {
result: "Success", result: "Success",
uuid: uuidv4(), uuid: uuidv4(),
topic: "" topic: "test"
} }
}, },
onClose: (res, rpc) => { onClose: (res, rpc) => {
console.log("Specific close handler for", rpc.name, res) console.log("onClose", rpc.name === 'subscribe' && res?"OK":"")
subcallback = null 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 add(...args:number[]):number {return args.reduce((a,b)=>a+b, 0)},
function triggerCallback(...messages:any[]):number {return subcallback.apply({}, messages)}, 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', () => { describe('RPCServer', () => {
before(async(done) => { let server: RPCServer<{ topic: string}>
before((done) => {
server = makeServer() server = makeServer()
done() done()
}) })
@@ -84,7 +91,7 @@ describe('RPCSocket', () => {
return await client.connect() return await client.connect()
}) })
after(async() => { after(() => {
client.destroy() client.destroy()
server.destroy() server.destroy()
}) })