@@ -151,4 +151,81 @@ describe('peer-info', () => {
151
151
152
152
expect ( pi . multiaddrs . length ) . to . equal ( 4 )
153
153
} )
154
+
155
+ it ( 'get distinct multiaddr same transport multiple different ports' , ( ) => {
156
+ const mh1 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
157
+ const mh2 = Multiaddr ( '/ip4/127.0.0.1/tcp/5002' )
158
+ const mh3 = Multiaddr ( '/ip4/127.0.0.1/tcp/5003' )
159
+ const mh4 = Multiaddr ( '/ip4/127.0.0.1/tcp/5004' )
160
+
161
+ pi . multiaddr . add ( mh1 )
162
+ pi . multiaddr . add ( mh2 )
163
+ pi . multiaddr . add ( mh3 )
164
+ pi . multiaddr . add ( mh4 )
165
+
166
+ var distinctMultiaddr = pi . distinctMultiaddr ( )
167
+ expect ( distinctMultiaddr . length ) . to . equal ( 4 )
168
+ } )
169
+
170
+ it ( 'get distinct multiaddr same transport different port' , ( ) => {
171
+ const mh1 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
172
+ const mh2 = Multiaddr ( '/ip4/127.0.0.1/tcp/5002' )
173
+
174
+ pi . multiaddr . add ( mh1 )
175
+ pi . multiaddr . add ( mh2 )
176
+
177
+ var distinctMultiaddr = pi . distinctMultiaddr ( )
178
+ expect ( distinctMultiaddr . length ) . to . equal ( 2 )
179
+ } )
180
+
181
+ it ( 'get distinct multiaddr same transport same port' , ( ) => {
182
+ const mh1 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
183
+ const mh2 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
184
+
185
+ pi . multiaddr . add ( mh1 )
186
+ pi . multiaddr . add ( mh2 )
187
+
188
+ var distinctMultiaddr = pi . distinctMultiaddr ( )
189
+ expect ( distinctMultiaddr . length ) . to . equal ( 1 )
190
+ } )
191
+
192
+ it ( 'get distinct multiaddr different transport same port' , ( ) => {
193
+ const mh1 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
194
+ const mh2 = Multiaddr ( '/ip4/127.0.0.1/udp/5001' )
195
+
196
+ pi . multiaddr . add ( mh1 )
197
+ pi . multiaddr . add ( mh2 )
198
+
199
+ var distinctMultiaddr = pi . distinctMultiaddr ( )
200
+ expect ( distinctMultiaddr . length ) . to . equal ( 2 )
201
+ } )
202
+
203
+ it ( 'get distinct multiaddr different family same port same transport' , ( ) => {
204
+ const mh1 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
205
+ const mh2 = Multiaddr ( '/ip6/::/tcp/5001' )
206
+
207
+ pi . multiaddr . add ( mh1 )
208
+ pi . multiaddr . add ( mh2 )
209
+
210
+ var distinctMultiaddr = pi . distinctMultiaddr ( )
211
+ expect ( distinctMultiaddr . length ) . to . equal ( 1 )
212
+ } )
213
+
214
+ it ( 'get distinct multiaddr different family same port multiple transports' , ( ) => {
215
+ const mh1 = Multiaddr ( '/ip4/127.0.0.1/tcp/5001' )
216
+ const mh2 = Multiaddr ( '/ip6/::/tcp/5001' )
217
+ const mh3 = Multiaddr ( '/ip6/::/udp/5002' )
218
+ const mh4 = Multiaddr ( '/ip4/127.0.0.1/udp/5002' )
219
+
220
+ pi . multiaddr . add ( mh1 )
221
+ pi . multiaddr . add ( mh2 )
222
+ pi . multiaddr . add ( mh3 )
223
+ pi . multiaddr . add ( mh4 )
224
+
225
+ var distinctMultiaddr = pi . distinctMultiaddr ( )
226
+ expect ( distinctMultiaddr . length ) . to . equal ( 2 )
227
+
228
+ expect ( distinctMultiaddr [ 0 ] . toOptions ( ) . family ) . to . equal ( 'ipv4' )
229
+ expect ( distinctMultiaddr [ 1 ] . toOptions ( ) . family ) . to . equal ( 'ipv6' )
230
+ } )
154
231
} )
0 commit comments