attach errorhandler to failed calls and failed connects

This commit is contained in:
2020-02-25 17:38:48 +01:00
parent b97d88b9e1
commit bc7593bda5
6 changed files with 75 additions and 20 deletions
+44 -6
View File
@@ -551,14 +551,17 @@ describe("Class binding", ()=>{
}
let serv: RPCServer,
sock: RPCSocket,
sock: RPCSocket & myExporterIfc,
exporter: MyExporter
before((done)=>{
exporter = new MyExporter()
serv = new RPCServer(21004, [exporter])
sock = new RPCSocket(21004, 'localhost')
sock.connect<myExporterIfc>().then(_ => done())
const s = new RPCSocket(21004, 'localhost')
s.connect<myExporterIfc>().then(conn => {
sock = conn
done()
})
})
after(() => {
sock.destroy()
@@ -574,13 +577,11 @@ describe("Class binding", ()=>{
describe("attaching handlers before connecting", ()=>{
it("fires error if server is unreachable", (done)=>{
const sock = new RPCSocket(21004, 'localhost')
let errorHandleCount = 0
sock.on('error', (socket) => {
sock.on('error', (err) => {
//attached listener fires first
if(errorHandleCount != 0){
console.log("Error handler didn't fire first");
@@ -601,4 +602,41 @@ describe("attaching handlers before connecting", ()=>{
}
})
})
it("fires error if call is unknown", (done)=>{
const serv = new RPCServer(21004)
const sock = new RPCSocket(21004, 'localhost')
sock.on('error', (err) => {
sock.destroy()
serv.destroy()
done()
})
sock.connect().then(_ => {
sock.call("unknownRPC123", "AAAAA").catch(e => {
console.log("unexpected call catch clause");
done(e)
})
}).catch(e => {
console.log("unexpected connect catch clause");
done(e)
})
})
it("demands catch on method invocation if call is unknown", (done)=>{
const serv = new RPCServer(21004)
const sock = new RPCSocket(21004, 'localhost')
sock.connect().then(_ => {
sock.call("unknownRPC123", "AAAAA").catch(e => {
sock.destroy()
serv.destroy()
done()
})
}).catch(e => {
console.log("unexpected connect catch clause");
done(e)
})
})
})