Skip to content

Commit 1fc9f88

Browse files
committed
fix: code review
1 parent 86e947d commit 1fc9f88

File tree

8 files changed

+107
-46
lines changed

8 files changed

+107
-46
lines changed

package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
},
1111
"scripts": {
1212
"lint": "aegir lint",
13-
"test": "cross-env IPFS_REUSEPORT=false aegir test -t node -f test/node.js",
14-
"test:node": "cross-env IPFS_REUSEPORT=false aegir test -t node -f test/node.js",
15-
"test:browser": "cross-env IPFS_REUSEPORT=false aegir test -t browser --no-cors -f test/browser.js"
13+
"test": "aegir test -t node -f test/node.js",
14+
"test:node": "aegir test -t node -f test/node.js",
15+
"test:browser": "aegir test -t browser --no-cors -f test/browser.js"
1616
},
1717
"repository": {
1818
"type": "git",
@@ -27,7 +27,7 @@
2727
},
2828
"homepage": "https://github.com/libp2p/interop#readme",
2929
"devDependencies": {
30-
"aegir": "^17.0.1",
30+
"aegir": "^18.1.0",
3131
"chai": "^4.2.0",
3232
"chai-checkmark": "^1.0.1",
3333
"cross-env": "^5.2.0",

src/daemon.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@
33
const assert = require('assert')
44
const execa = require('execa')
55
const fs = require('fs')
6-
const os = require('os')
76
const path = require('path')
87
const rimraf = require('rimraf')
98

109
const Client = require('libp2p-daemon-client')
11-
const { getSockPath } = require('./utils')
12-
13-
const isWindows = os.platform() === 'win32'
10+
const { getSockPath, isWindows } = require('./utils')
1411

1512
// process path
1613
const processPath = process.cwd()
@@ -48,6 +45,7 @@ class Daemon {
4845

4946
/**
5047
* Get binary path according to implementation and OS
48+
* @private
5149
* @param {String} type daemon implementation type ("go" or "js")
5250
* @returns {String}
5351
*/
@@ -89,6 +87,7 @@ class Daemon {
8987

9088
/**
9189
* Starts the specifiec daemon and wait for its start.
90+
* @private
9291
* @returns {Promise}
9392
*/
9493
_startDaemon () {
@@ -117,6 +116,7 @@ class Daemon {
117116

118117
/**
119118
* Cleans the unix socket.
119+
* @private
120120
* @returns {Promise}
121121
*/
122122
_cleanUnixSocket () {

src/utils.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
const os = require('os')
44
const path = require('path')
5-
const isWindows = Boolean(os.type().match(/windows/gi))
5+
const isWindows = os.platform() === 'win32'
6+
7+
exports.isWindows = isWindows
68

79
exports.getSockPath = (sockPath) => isWindows
810
? path.join('\\\\?\\pipe', sockPath)

test/connect/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Connect
22

3-
In this set of tests, we intend to guarantee that nodes implemented in a specific language are able to connect with nodes implemented in a different language.
3+
In this set of tests, we intend to guarantee that nodes implemented in a specific language are able to connect with other nodes, regardless of their implementation language.

test/connect/go2go.js

+23-9
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,43 @@ describe('connect', () => {
1919
goDaemon1 = new Daemon('go')
2020
goDaemon2 = new Daemon('go', '/tmp/p2pd-go2.sock')
2121

22-
await goDaemon1.start()
23-
await goDaemon2.start()
22+
await Promise.all([
23+
goDaemon1.start(),
24+
goDaemon2.start()
25+
])
2426
})
2527

2628
// Stop daemons
2729
after(async function () {
28-
await goDaemon1.stop()
29-
await goDaemon2.stop()
30+
await Promise.all([
31+
goDaemon1.stop(),
32+
goDaemon2.stop()
33+
])
3034
})
3135

3236
it('go peer to go peer', async function () {
3337
this.timeout(10 * 1000)
3438

3539
const identify1 = await goDaemon1.client.identify()
40+
const identify2 = await goDaemon2.client.identify()
3641

37-
const knownPeersBeforeConnect = await goDaemon2.client.listPeers()
38-
expect(knownPeersBeforeConnect).to.have.lengthOf(0)
42+
// verify connected peers
43+
const knownPeersBeforeConnect1 = await goDaemon1.client.listPeers()
44+
expect(knownPeersBeforeConnect1).to.have.lengthOf(0)
45+
46+
const knownPeersBeforeConnect2 = await goDaemon2.client.listPeers()
47+
expect(knownPeersBeforeConnect2).to.have.lengthOf(0)
3948

4049
// connect peers
4150
await goDaemon2.client.connect(identify1.peerId, identify1.addrs)
4251

43-
const knownPeersAfterConnect = await goDaemon2.client.listPeers()
44-
expect(knownPeersAfterConnect).to.have.lengthOf(1)
45-
expect(knownPeersAfterConnect[0].toB58String()).to.equal(identify1.peerId.toB58String())
52+
// verify connected peers
53+
const knownPeersAfterConnect1 = await goDaemon1.client.listPeers()
54+
expect(knownPeersAfterConnect1).to.have.lengthOf(1)
55+
expect(knownPeersAfterConnect1[0].toB58String()).to.equal(identify2.peerId.toB58String())
56+
57+
const knownPeersAfterConnect2 = await goDaemon2.client.listPeers()
58+
expect(knownPeersAfterConnect2).to.have.lengthOf(1)
59+
expect(knownPeersAfterConnect2[0].toB58String()).to.equal(identify1.peerId.toB58String())
4660
})
4761
})

test/connect/go2js.js

+23-9
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,43 @@ describe('connect', () => {
1919
goDaemon = new Daemon('go')
2020
jsDaemon = new Daemon('js')
2121

22-
await goDaemon.start()
23-
await jsDaemon.start()
22+
await Promise.all([
23+
goDaemon.start(),
24+
jsDaemon.start()
25+
])
2426
})
2527

2628
// Stop daemons
2729
after(async function () {
28-
await goDaemon.stop()
29-
await jsDaemon.stop()
30+
await Promise.all([
31+
goDaemon.stop(),
32+
jsDaemon.stop()
33+
])
3034
})
3135

3236
it('go peer to js peer', async function () {
3337
this.timeout(10 * 1000)
3438

3539
const identifyJs = await jsDaemon.client.identify()
40+
const identifyGo = await goDaemon.client.identify()
3641

37-
const knownPeersBeforeConnect = await goDaemon.client.listPeers()
38-
expect(knownPeersBeforeConnect).to.have.lengthOf(0)
42+
// verify connected peers
43+
const knownPeersBeforeConnectJs = await jsDaemon.client.listPeers()
44+
expect(knownPeersBeforeConnectJs).to.have.lengthOf(0)
45+
46+
const knownPeersBeforeConnectGo = await goDaemon.client.listPeers()
47+
expect(knownPeersBeforeConnectGo).to.have.lengthOf(0)
3948

4049
// connect peers
4150
await goDaemon.client.connect(identifyJs.peerId, identifyJs.addrs)
4251

43-
const knownPeersAfterConnect = await goDaemon.client.listPeers()
44-
expect(knownPeersAfterConnect).to.have.lengthOf(1)
45-
expect(knownPeersAfterConnect[0].toB58String()).to.equal(identifyJs.peerId.toB58String())
52+
// verify connected peers
53+
const knownPeersAfterConnectGo = await goDaemon.client.listPeers()
54+
expect(knownPeersAfterConnectGo).to.have.lengthOf(1)
55+
expect(knownPeersAfterConnectGo[0].toB58String()).to.equal(identifyJs.peerId.toB58String())
56+
57+
const knownPeersAfterConnectJs = await jsDaemon.client.listPeers()
58+
expect(knownPeersAfterConnectJs).to.have.lengthOf(1)
59+
expect(knownPeersAfterConnectJs[0].toB58String()).to.equal(identifyGo.peerId.toB58String())
4660
})
4761
})

test/connect/js2go.js

+23-9
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,43 @@ describe('connect', () => {
1919
jsDaemon = new Daemon('js')
2020
goDaemon = new Daemon('go')
2121

22-
await jsDaemon.start()
23-
await goDaemon.start()
22+
await Promise.all([
23+
jsDaemon.start(),
24+
goDaemon.start()
25+
])
2426
})
2527

2628
// Stop daemons
2729
after(async function () {
28-
await jsDaemon.stop()
29-
await goDaemon.stop()
30+
await Promise.all([
31+
jsDaemon.stop(),
32+
goDaemon.stop()
33+
])
3034
})
3135

3236
it('js peer to go peer', async function () {
3337
this.timeout(10 * 1000)
3438

39+
const identifyJs = await jsDaemon.client.identify()
3540
const identifyGo = await goDaemon.client.identify()
3641

37-
const knownPeersBeforeConnect = await jsDaemon.client.listPeers()
38-
expect(knownPeersBeforeConnect).to.have.lengthOf(0)
42+
// verify connected peers
43+
const knownPeersBeforeConnectJs = await jsDaemon.client.listPeers()
44+
expect(knownPeersBeforeConnectJs).to.have.lengthOf(0)
45+
46+
const knownPeersBeforeConnectGo = await goDaemon.client.listPeers()
47+
expect(knownPeersBeforeConnectGo).to.have.lengthOf(0)
3948

4049
// connect peers
4150
await jsDaemon.client.connect(identifyGo.peerId, identifyGo.addrs)
4251

43-
const knownPeersAfterConnect = await jsDaemon.client.listPeers()
44-
expect(knownPeersAfterConnect).to.have.lengthOf(1)
45-
expect(knownPeersAfterConnect[0].toB58String()).to.equal(identifyGo.peerId.toB58String())
52+
// verify connected peers
53+
const knownPeersAfterConnectJs = await jsDaemon.client.listPeers()
54+
expect(knownPeersAfterConnectJs).to.have.lengthOf(1)
55+
expect(knownPeersAfterConnectJs[0].toB58String()).to.equal(identifyGo.peerId.toB58String())
56+
57+
const knownPeersAfterConnectGo = await goDaemon.client.listPeers()
58+
expect(knownPeersAfterConnectGo).to.have.lengthOf(1)
59+
expect(knownPeersAfterConnectGo[0].toB58String()).to.equal(identifyJs.peerId.toB58String())
4660
})
4761
})

test/connect/js2js.js

+26-9
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,46 @@ describe('connect', () => {
1919
jsDaemon1 = new Daemon('js')
2020
jsDaemon2 = new Daemon('js', '/tmp/p2pd-js2.sock')
2121

22-
await jsDaemon1.start()
23-
await jsDaemon2.start()
22+
await Promise.all([
23+
jsDaemon1.start(),
24+
jsDaemon2.start()
25+
])
2426
})
2527

2628
// Stop daemons
2729
after(async function () {
28-
await jsDaemon1.stop()
29-
await jsDaemon2.stop()
30+
await Promise.all([
31+
jsDaemon1.stop(),
32+
jsDaemon2.stop()
33+
])
3034
})
3135

3236
it('js peer to js peer', async function () {
3337
this.timeout(10 * 1000)
3438

3539
const identify1 = await jsDaemon1.client.identify()
40+
const identify2 = await jsDaemon2.client.identify()
3641

37-
const knownPeersBeforeConnect = await jsDaemon2.client.listPeers()
38-
expect(knownPeersBeforeConnect).to.have.lengthOf(0)
42+
// verify connected peers
43+
const knownPeersBeforeConnect1 = await jsDaemon1.client.listPeers()
44+
expect(knownPeersBeforeConnect1).to.have.lengthOf(0)
45+
46+
const knownPeersBeforeConnect2 = await jsDaemon2.client.listPeers()
47+
expect(knownPeersBeforeConnect2).to.have.lengthOf(0)
3948

4049
// connect peers
4150
await jsDaemon2.client.connect(identify1.peerId, identify1.addrs)
4251

43-
const knownPeersAfterConnect = await jsDaemon2.client.listPeers()
44-
expect(knownPeersAfterConnect).to.have.lengthOf(1)
45-
expect(knownPeersAfterConnect[0].toB58String()).to.equal(identify1.peerId.toB58String())
52+
// jsDaemon1 will take some time to get the peers
53+
await new Promise(resolve => setTimeout(resolve, 1000))
54+
55+
// verify connected peers
56+
const knownPeersAfterConnect1 = await jsDaemon1.client.listPeers()
57+
expect(knownPeersAfterConnect1).to.have.lengthOf(1)
58+
expect(knownPeersAfterConnect1[0].toB58String()).to.equal(identify2.peerId.toB58String())
59+
60+
const knownPeersAfterConnect2 = await jsDaemon2.client.listPeers()
61+
expect(knownPeersAfterConnect2).to.have.lengthOf(1)
62+
expect(knownPeersAfterConnect2[0].toB58String()).to.equal(identify1.peerId.toB58String())
4663
})
4764
})

0 commit comments

Comments
 (0)