UNPKG

1.51 kBJavaScriptView Raw
1/* eslint-env mocha */
2/* eslint max-nested-callbacks: ["error", 5] */
3'use strict'
4
5const chai = require('chai')
6chai.use(require('dirty-chai'))
7const expect = chai.expect
8
9const IPFS = require('ipfs')
10const clone = require('lodash.clonedeep')
11
12const Room = require('../')
13const createRepo = require('./utils/create-repo-node')
14
15const topic = 'pubsub-same-node-test-' + Date.now() + '-' + Math.random()
16
17const ipfsOptions = {
18 EXPERIMENTAL: {
19 pubsub: true
20 },
21 config: {
22 Addresses: {
23 Swarm: [
24 '/dns4/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-websocket-star'
25 ]
26 }
27 }
28}
29
30describe('same node', function () {
31 this.timeout(30000)
32 let repo
33 let node
34 let rooms = []
35
36 before((done) => {
37 repo = createRepo()
38 const options = Object.assign({}, clone(ipfsOptions), {
39 repo: repo
40 })
41 node = new IPFS(options)
42 node.once('ready', () => {
43 done()
44 })
45 })
46
47 before(() => {
48 for (let i = 0; i < 2; i++) {
49 rooms.push(Room(node, topic))
50 }
51 })
52
53 after(() => rooms.forEach((room) => room.leave()))
54
55 after((done) => node.stop(done))
56
57 after((done) => repo.teardown(done))
58
59 it('mirrors broadcast', (done) => {
60 rooms[0].once('message', (message) => {
61 expect(message.data.toString()).to.equal('message 1')
62 rooms[0].once('message', (message) => {
63 expect(message.data.toString()).to.equal('message 2')
64 done()
65 })
66 })
67 rooms[1].broadcast('message 1')
68 rooms[1].broadcast('message 2')
69 })
70})