better test
This commit is contained in:
@@ -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,
|
||||
}
|
||||
@@ -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
@@ -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
@@ -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
@@ -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()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user