Commit c8a86db 1 parent ce29902 commit c8a86db Copy full SHA for c8a86db
File tree 2 files changed +36
-2
lines changed
2 files changed +36
-2
lines changed Original file line number Diff line number Diff line change 3
3
const PeerId = require ( 'peer-id' )
4
4
const PeerInfo = require ( 'peer-info' )
5
5
const multiaddr = require ( 'multiaddr' )
6
+ const setImmediate = require ( 'async/setImmediate' )
6
7
7
8
module . exports = ( node ) => {
8
9
/*
@@ -16,12 +17,19 @@ module.exports = (node) => {
16
17
// Multiaddr instance or Multiaddr String
17
18
} else if ( multiaddr . isMultiaddr ( peer ) || typeof peer === 'string' ) {
18
19
if ( typeof peer === 'string' ) {
19
- peer = multiaddr ( peer )
20
+ try {
21
+ peer = multiaddr ( peer )
22
+ } catch ( err ) {
23
+ return setImmediate ( ( ) => callback ( err ) )
24
+ }
20
25
}
21
26
22
27
const peerIdB58Str = peer . getPeerId ( )
28
+
23
29
if ( ! peerIdB58Str ) {
24
- throw new Error ( `peer multiaddr instance or string must include peerId` )
30
+ return setImmediate ( ( ) => {
31
+ callback ( new Error ( 'peer multiaddr instance or string must include peerId' ) )
32
+ } )
25
33
}
26
34
27
35
try {
Original file line number Diff line number Diff line change
1
+ /* eslint-env mocha */
2
+ 'use strict'
3
+
4
+ const chai = require ( 'chai' )
5
+ chai . use ( require ( 'dirty-chai' ) )
6
+ const expect = chai . expect
7
+
8
+ const getPeerInfo = require ( '../src/get-peer-info' )
9
+
10
+ describe ( 'getPeerInfo' , ( ) => {
11
+ it ( 'should callback with error for invalid string multiaddr' , ( done ) => {
12
+ getPeerInfo ( null ) ( 'INVALID MULTIADDR' , ( err ) => {
13
+ expect ( err ) . to . exist ( )
14
+ expect ( err . message ) . to . contain ( 'must start with a "/"' )
15
+ done ( )
16
+ } )
17
+ } )
18
+
19
+ it ( 'should callback with error for invalid non-peer multiaddr' , ( done ) => {
20
+ getPeerInfo ( null ) ( '/ip4/8.8.8.8/tcp/1080' , ( err ) => {
21
+ expect ( err ) . to . exist ( )
22
+ expect ( err . message ) . to . equal ( 'peer multiaddr instance or string must include peerId' )
23
+ done ( )
24
+ } )
25
+ } )
26
+ } )
You can’t perform that action at this time.
0 commit comments