js-libp2p-utils/test/address-sort.spec.js
2021-04-09 18:12:25 +03:00

54 lines
1.8 KiB
JavaScript

'use strict'
/* eslint-env mocha */
const { expect } = require('aegir/utils/chai')
const multiaddr = require('multiaddr')
const { publicAddressesFirst } = require('../src/address-sort')
describe('address-sort', () => {
it('should sort public addresses first', () => {
const addresses = [
{
multiaddr: new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'),
isCertified: false
},
{
multiaddr: new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'),
isCertified: false
},
{
multiaddr: new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'),
isCertified: false
}
]
const sortedAddresses = publicAddressesFirst(addresses)
expect(sortedAddresses[0].multiaddr.equals(new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'))).to.eql(true)
expect(sortedAddresses[1].multiaddr.equals(new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'))).to.eql(true)
expect(sortedAddresses[2].multiaddr.equals(new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'))).to.eql(true)
})
it('should sort public certified addresses first', () => {
const addresses = [
{
multiaddr: new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'),
isCertified: false
},
{
multiaddr: new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'),
isCertified: false
},
{
multiaddr: new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'),
isCertified: true
}
]
const sortedAddresses = publicAddressesFirst(addresses)
expect(sortedAddresses[0].multiaddr.equals(new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'))).to.eql(true)
expect(sortedAddresses[1].multiaddr.equals(new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'))).to.eql(true)
expect(sortedAddresses[2].multiaddr.equals(new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'))).to.eql(true)
})
})