|
| 1 | +/* eslint-env mocha */ |
| 2 | +import { expect } from 'aegir/chai' |
| 3 | +import { MultiaddrFilter, multiaddr, MultiaddrInput } from '../../src/index.js' |
| 4 | + |
| 5 | +describe('MultiaddrFilter', () => { |
| 6 | + const cases: Array<[MultiaddrInput, MultiaddrInput, boolean]> = [ |
| 7 | + ['/ip4/192.168.10.10/ipcidr/24', '/ip4/192.168.10.2/tcp/60', true], |
| 8 | + [multiaddr('/ip4/192.168.10.10/ipcidr/24'), '/ip4/192.168.10.2/tcp/60', true], |
| 9 | + [multiaddr('/ip4/192.168.10.10/ipcidr/24').bytes, '/ip4/192.168.10.2/tcp/60', true], |
| 10 | + ['/ip4/192.168.10.10/ipcidr/24', '/ip4/192.168.10.2/udp/60', true], |
| 11 | + ['/ip4/192.168.10.10/ipcidr/24', multiaddr('/ip4/192.168.11.2/tcp/60'), false], |
| 12 | + ['/ip4/192.168.10.10/ipcidr/24', null, false], |
| 13 | + ['/ip4/192.168.10.10/ipcidr/24', multiaddr('/ip4/192.168.11.2/udp/60').bytes, false], |
| 14 | + ['/ip4/192.168.10.10/ipcidr/24', '/ip4/192.168.11.2/udp/60', false], |
| 15 | + ['/ip4/192.168.10.10/ipcidr/24', '/ip6/2001:db8:3333:4444:5555:6666:7777:8888/tcp/60', false], |
| 16 | + ['/ip6/2001:db8:3333:4444:5555:6666:7777:8888/ipcidr/60', '/ip6/2001:0db8:3333:4440:0000:0000:0000:0000/tcp/60', true], |
| 17 | + ['/ip6/2001:db8:3333:4444:5555:6666:7777:8888/ipcidr/60', '/ip6/2001:0db8:3333:4450:0000:0000:0000:0000/tcp/60', false] |
| 18 | + ] |
| 19 | + |
| 20 | + cases.forEach(([cidr, ip, result]) => { |
| 21 | + it(`multiaddr filter cidr=${cidr} ip=${ip} result=${String(result)}`, function () { |
| 22 | + expect(new MultiaddrFilter(cidr).contains(ip)).to.be.equal(result) |
| 23 | + }) |
| 24 | + }) |
| 25 | +}) |
0 commit comments