js-libp2p-interfaces/src/dial-test.js

75 lines
1.5 KiB
JavaScript
Raw Normal View History

2016-09-02 13:31:28 +02:00
/* eslint-env mocha */
'use strict'
const expect = require('chai').expect
const pull = require('pull-stream')
const goodbye = require('pull-goodbye')
module.exports = (common) => {
describe('dial', () => {
let addrs
let transport
let listener
before((done) => {
common.setup((err, _transport, _addrs) => {
if (err) return done(err)
transport = _transport
addrs = _addrs
done()
})
})
after((done) => {
common.teardown(done)
})
beforeEach((done) => {
listener = transport.createListener((conn) => {
pull(
conn,
pull.map((x) => {
if (x.toString() !== 'GOODBYE') {
return new Buffer(x.toString() + '!')
}
return x
}),
conn
)
})
listener.listen(addrs[0], done)
})
afterEach((done) => {
listener.close(done)
})
it('simple', (done) => {
const s = goodbye({
source: pull.values([new Buffer('hey')]),
sink: pull.collect((err, values) => {
expect(err).to.not.exist
expect(
values
).to.be.eql(
[new Buffer('hey!')]
)
done()
})
})
pull(s, transport.dial(addrs[0]), s)
})
it('to non existent listener', (done) => {
pull(
transport.dial(addrs[1]),
pull.onEnd((err) => {
expect(err).to.exist
done()
})
)
})
})
}