setExporters

This commit is contained in:
2020-03-05 15:28:02 +01:00
parent ef5a83f1d4
commit 0057625800
3 changed files with 62 additions and 12 deletions
+44 -9
View File
@@ -541,38 +541,73 @@ type myExporterIfc = {
describe("Class binding", ()=>{
let exporter1 : MyExporter
let serv : RPCServer
let sock: RPCSocket & myExporterIfc
class MyExporter implements RPCExporter<myExporterIfc>{
name = "MyExporter" as "MyExporter";
exportRPCs = () => [
this.myRPC
]
myRPC = async () => "Hello World"
myRPC = async () => {
serv.setExporters([new MyOtherExporter])
return "Hello World"
}
}
class MyOtherExporter implements RPCExporter<myExporterIfc>{
name = "MyExporter" as "MyExporter";
exportRPCs = () => [
this.myRPC
]
myRPC = async () => "Hello Borld"
}
let serv: RPCServer,
sock: RPCSocket & myExporterIfc,
exporter: MyExporter
before(done => {
exporter1 = new MyExporter()
serv = new RPCServer(21004, [exporter1])
done()
})
beforeEach((done)=>{
before((done)=>{
exporter = new MyExporter()
serv = new RPCServer(21004, [exporter])
const s = new RPCSocket(21004, 'localhost')
s.connect<myExporterIfc>().then(conn => {
sock = conn
done()
})
})
after(() => {
afterEach(done => {
sock.destroy()
done()
})
after(() => {
serv.destroy()
})
it("binds correctly", (done)=>{
sock['MyExporter'].myRPC().then(() => {
sock['MyExporter'].myRPC().then((res) => {
done(new Error(res))
}).catch(e => {
//job will time out because of setExporters
done()
})
})
it("changes exporters", (done) => {
sock['MyExporter'].myRPC().then((res) => {
if(res === "Hello Borld")
done()
else
done(new Error(res))
})
})
})