go-ssb-room/muxrpc/test/nodejs/testscripts/modern_client.js

55 lines
1.6 KiB
JavaScript

const pull = require('pull-stream')
module.exports = {
secretStackPlugins: [
'ssb-conn',
'ssb-room-client',
],
before: (t, sbot, ready) => {
ready()
},
after: (t, sbot, rpc, exit) => {
sbot.on("rpc:connect", (remote, isClient) => {
console.warn("tunneld connection to simple client!")
// check the tunnel connection works
remote.testing.working((err, ok) => {
t.error(err, 'testing.working didnt error')
t.true(ok, 'testing.working is true')
// leave after 5 seconds
setTimeout(() => {
rpc.tunnel.leave().then((ret) => {
console.warn('left')
console.warn(ret)
console.warn('room left... exiting in 10s')
setTimeout(exit, 10000)
}).catch((err) => {
console.warn('left failed')
throw err
})
}, 5000)
})
}) // on rpc:connect
// announce ourselves to the room/tunnel
rpc.tunnel.announce().then((ret) => {
console.warn('announced!')
console.warn(ret)
}).catch((err) => {
console.warn('announce failed')
throw err
})
// log all new endpoints
pull(
rpc.tunnel.endpoints(),
pull.drain(el => {
console.warn("from roomsrv:",el)
})
)
}
}