js-libp2p-secio/test/browser.js

59 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-11-08 17:22:15 +00:00
/* eslint-env mocha */
'use strict'
const expect = require('chai').expect
const multiaddr = require('multiaddr')
const pull = require('pull-stream')
const pullGoodbye = require('pull-goodbye')
const WS = require('libp2p-websockets')
const PeerId = require('peer-id')
2016-11-10 17:47:40 +01:00
const parallel = require('async/parallel')
2016-11-08 17:22:15 +00:00
const peerBrowserJSON = require('./peer-browser.json')
2016-11-10 17:47:40 +01:00
const secio = require('../src')
2016-11-08 17:22:15 +00:00
describe('secio browser <-> nodejs', () => {
const ma = multiaddr('/ip4/127.0.0.1/tcp/9090/ws')
let conn
let encryptedConn
before((done) => {
2016-11-10 17:47:40 +01:00
parallel([
(cb) => PeerId.createFromJSON(peerBrowserJSON, cb),
(cb) => {
const ws = new WS()
conn = ws.dial(ma, cb)
}
], (err, res) => {
if (err) {
return done(err)
}
encryptedConn = secio.encrypt(res[0], res[0]._privKey, conn)
done()
2016-11-08 17:22:15 +00:00
})
})
it('echo', (done) => {
const message = 'Hello World!'
const s = pullGoodbye({
source: pull.values([message]),
sink: pull.collect((err, results) => {
expect(err).to.not.exist
expect(results).to.be.eql([message])
done()
})
2016-11-10 17:47:40 +01:00
}, 'GoodBye')
pull(
s,
encryptedConn,
// Need to convert to a string as goodbye only understands strings
2016-11-08 17:22:15 +00:00
2016-11-10 17:47:40 +01:00
pull.map((msg) => msg.toString()),
s
)
2016-11-08 17:22:15 +00:00
})
})