setExporters
This commit is contained in:
+44
-9
@@ -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))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user