Add features to errorhandler
This commit is contained in:
+87
-13
@@ -38,9 +38,9 @@ function makeServer(){
|
||||
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 }
|
||||
connectionHandler: (socket) => { },
|
||||
closeHandler: (socket) => { },
|
||||
errorHandler: (socket, err) => { throw err }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -193,12 +193,12 @@ describe('It should do unhook', () => {
|
||||
}
|
||||
},
|
||||
function checkCandy():string { cb(candy); return candy },
|
||||
function stealCandy():string { candy = "_OK"; cb(candy); cb = (...any) => console.log.apply(console,["Server:", ...any]); return candy }
|
||||
function stealCandy():string { candy = "_OK"; cb(candy); cb = () => {}; return candy }
|
||||
]
|
||||
}],{
|
||||
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 }
|
||||
connectionHandler: (socket) => { },
|
||||
closeHandler: (socket) => { },
|
||||
errorHandler: (socket, err) => { throw err }
|
||||
})
|
||||
client = new RPCSocket(21000, "localhost")
|
||||
return await client.connect()
|
||||
@@ -210,14 +210,12 @@ describe('It should do unhook', () => {
|
||||
})
|
||||
|
||||
it('Unhook+unsubscribe should stop callbacks', (done) => {
|
||||
client['test'].subscribe(c => console.log("Client: "+c)).then( async (res: SubscriptionResponse) => {
|
||||
client['test'].subscribe(c => {}).then( async (res: SubscriptionResponse) => {
|
||||
const r1 = await client['test'].checkCandy()
|
||||
const r3 = await client['test'].stealCandy()
|
||||
client.unhook(res.uuid)
|
||||
console.log("---- No client output below this line")
|
||||
const r2 = await client['test'].checkCandy()
|
||||
const r4 = await client['test'].checkCandy()
|
||||
console.log("---- More output below")
|
||||
|
||||
if(r1 === "OK" && r3 === "_OK" && r2 === "_OK" && r4 === "_OK")
|
||||
done()
|
||||
@@ -382,15 +380,14 @@ describe('Error handling', ()=>{
|
||||
})
|
||||
})
|
||||
|
||||
it("RPC throws server with handler", (done)=>{
|
||||
it("RPC throws on server with handler", (done)=>{
|
||||
let server = new RPCServer(21004, [ {
|
||||
name: 'createUser' as 'createUser',
|
||||
exportRPCs: () => [{
|
||||
name: 'createUser' as 'createUser',
|
||||
call: createUser
|
||||
}]}], {
|
||||
errorHandler: (socket, e) => {
|
||||
//console.log("EXPECTED SERVER EXCEPTION", String(e));
|
||||
errorHandler: (socket, e, rpcName, args) => {
|
||||
done()
|
||||
}
|
||||
})
|
||||
@@ -416,3 +413,80 @@ describe('Error handling', ()=>{
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe("Errorhandler functionality", ()=>{
|
||||
let createUser = async( user: {a:any,b:any}) => {
|
||||
throw new Error("BAD BAD BAD")
|
||||
}
|
||||
|
||||
it("correct values are passed to the handler", (done)=>{
|
||||
let server = new RPCServer(21004, [ {
|
||||
name: 'createUser' as 'createUser',
|
||||
exportRPCs: () => [{
|
||||
name: 'createUser' as 'createUser',
|
||||
call: createUser
|
||||
}]}], {
|
||||
errorHandler: (socket, e, rpcName, args) => {
|
||||
if(e.message === "BAD BAD BAD" && rpcName === "createUser" && args[0]['a'] === 'a' && args[0]['b'] === 'b')
|
||||
done()
|
||||
}
|
||||
})
|
||||
|
||||
let sock = new RPCSocket(21004, 'localhost')
|
||||
sock.connect().then((cli) => {
|
||||
cli["createUser"]["createUser"]({
|
||||
a:'a',
|
||||
b:'b'
|
||||
})
|
||||
.then(r => {
|
||||
if(r != null)
|
||||
done("UNEXPECTED RESULT " + r)
|
||||
})
|
||||
.catch((e) => {
|
||||
done("UNEXPECTED CLIENT ERROR " + e)
|
||||
done(e)
|
||||
})
|
||||
.finally(() => {
|
||||
sock.destroy()
|
||||
server.destroy()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
it("handler sees sesame", (done)=>{
|
||||
let sesame = "AAAAAAAAAAAAAAA"
|
||||
let server = new RPCServer(21004, [ {
|
||||
name: 'createUser' as 'createUser',
|
||||
exportRPCs: () => [{
|
||||
name: 'createUser' as 'createUser',
|
||||
call: createUser
|
||||
}]}], {
|
||||
sesame: sesame,
|
||||
errorHandler: (socket, e, rpcName, args) => {
|
||||
if(e.message === "BAD BAD BAD" && rpcName === "createUser" && args[0] === sesame && args[1]['a'] === 'a' && args[1]['b'] === 'b')
|
||||
done()
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
let sock = new RPCSocket(21004, 'localhost')
|
||||
sock.connect(sesame).then((cli) => {
|
||||
cli["createUser"]["createUser"]({
|
||||
a:'a',
|
||||
b:'b'
|
||||
})
|
||||
.then(r => {
|
||||
if(r != null)
|
||||
done("UNEXPECTED RESULT " + r)
|
||||
})
|
||||
.catch((e) => {
|
||||
done("UNEXPECTED CLIENT ERROR " + e)
|
||||
done(e)
|
||||
})
|
||||
.finally(() => {
|
||||
sock.destroy()
|
||||
server.destroy()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user