@@ -66,16 +66,17 @@ describe('rpc - handlers - AddProvider', () => {
66
66
} ) )
67
67
} )
68
68
69
- it ( 'ignore providers not from the originator ' , ( done ) => {
69
+ it ( 'ignore providers that do not match the sender ' , ( done ) => {
70
70
const cid = values [ 0 ] . cid
71
71
72
72
const msg = new Message ( Message . TYPES . ADD_PROVIDER , cid . buffer , 0 )
73
- const sender = peers [ 0 ]
74
- sender . multiaddrs . add ( '/ip4/127.0.0.1/tcp/1234' )
75
- const other = peers [ 1 ]
73
+ const sender = _ . cloneDeep ( peers [ 0 ] )
74
+ const provider = _ . cloneDeep ( peers [ 0 ] )
75
+ provider . multiaddrs . add ( '/ip4/127.0.0.1/tcp/1234' )
76
+ const other = _ . cloneDeep ( peers [ 1 ] )
76
77
other . multiaddrs . add ( '/ip4/127.0.0.1/tcp/2345' )
77
78
msg . providerPeers = [
78
- sender ,
79
+ provider ,
79
80
other
80
81
]
81
82
@@ -84,30 +85,32 @@ describe('rpc - handlers - AddProvider', () => {
84
85
( cb ) => dht . providers . getProviders ( cid , cb ) ,
85
86
( provs , cb ) => {
86
87
expect ( provs ) . to . have . length ( 1 )
87
- expect ( provs [ 0 ] . id ) . to . eql ( sender . id . id )
88
- const bookEntry = dht . peerBook . get ( sender . id )
88
+ expect ( provs [ 0 ] . id ) . to . eql ( provider . id . id )
89
+ const bookEntry = dht . peerBook . get ( provider . id )
90
+ // Favour peerInfo from payload over peerInfo from sender
89
91
expect ( bookEntry . multiaddrs . toArray ( ) ) . to . eql (
90
- sender . multiaddrs . toArray ( )
92
+ provider . multiaddrs . toArray ( )
91
93
)
92
94
cb ( )
93
95
}
94
96
] , done )
95
97
} )
96
98
97
- it ( 'ignore providers with no multiaddrs' , ( done ) => {
99
+ it ( 'fall back to sender if providers have no multiaddrs' , ( done ) => {
98
100
const cid = values [ 0 ] . cid
99
101
const msg = new Message ( Message . TYPES . ADD_PROVIDER , cid . buffer , 0 )
100
102
const sender = _ . cloneDeep ( peers [ 0 ] )
101
- sender . multiaddrs . clear ( )
102
- msg . providerPeers = [ sender ]
103
+ const provider = _ . cloneDeep ( peers [ 0 ] )
104
+ provider . multiaddrs . clear ( )
105
+ msg . providerPeers = [ provider ]
103
106
104
107
waterfall ( [
105
108
( cb ) => handler ( dht ) ( sender , msg , cb ) ,
106
109
( cb ) => dht . providers . getProviders ( cid , cb ) ,
107
110
( provs , cb ) => {
111
+ expect ( dht . peerBook . has ( provider . id ) ) . to . equal ( false )
108
112
expect ( provs ) . to . have . length ( 1 )
109
- expect ( provs [ 0 ] . id ) . to . eql ( sender . id . id )
110
- expect ( dht . peerBook . has ( sender . id ) ) . to . equal ( false )
113
+ expect ( provs [ 0 ] . id ) . to . eql ( provider . id . id )
111
114
cb ( )
112
115
}
113
116
] , done )
0 commit comments