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.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)
})
+2 -2
View File
@@ -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
+15 -8
View File
@@ -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()
})