UNPKG

1.83 kBJavaScriptView Raw
1
2const test = require('tape')
3const ipSet = require('../')
4
5test('ipSet.contains respects ipSet.add with only a start', t => {
6 const set = ipSet()
7 const ip = '127.0.0.1'
8
9 t.notOk(set.contains(ip))
10 set.add(ip)
11 t.ok(set.contains(ip))
12 t.end()
13})
14
15test('ipSet.contains respects ipSet.add with a start and an end', t => {
16 const set = ipSet()
17 const ips = ['192.168.1.0', '192.168.1.255']
18
19 set.add(ips[0], ips[1])
20 t.ok(set.contains(ips[0]))
21 t.ok(set.contains(ips[1]))
22 t.ok(set.contains('192.168.1.123'))
23 t.notOk(set.contains('192.168.2.0'))
24
25 t.end()
26})
27
28test('ipSet.contains respects ipSet.add with a cidr', t => {
29 const set = ipSet()
30 const cidrIp = '192.168.1.0/24'
31
32 set.add(cidrIp)
33 t.ok(set.contains('192.168.1.0'))
34 t.ok(set.contains('192.168.1.5'))
35 t.ok(set.contains('192.168.1.255'))
36 t.ok(set.contains('192.168.1.123'))
37 t.notOk(set.contains('192.168.2.0'))
38
39 t.end()
40})
41
42test('IPv6', t => {
43 const set = ipSet()
44 const ip = '0:0:0:0:0:ffff:7f00:1' // 127.0.0.1
45 const publicIP = '2607:f8b0:4004:811::200e' // google
46 const ipv4 = '127.0.0.1'
47
48 t.notOk(set.contains(ip))
49 set.add(ip)
50 t.ok(set.contains(ip))
51
52 t.notOk(set.contains(publicIP))
53 set.add(publicIP)
54 t.ok(set.contains(publicIP))
55
56 t.notOk(set.contains('127.0.0.1'))
57 set.add(ipv4)
58 t.ok(set.contains(ipv4))
59
60 t.end()
61})
62
63// Fails on checking it doesn't contain a value outside the range.
64test.skip('IPv6 range', t => {
65 const set = ipSet()
66 const start = '0:0:0:0:0:0:0:1'
67 const mid1 = '0:0:0:0:0:0:0:9'
68 const mid2 = '0:0:0:0:0:0:0:a'
69 const end = '0:0:0:0:0:0:0:f'
70 const outside = '0:0:0:0:0:0:1:0'
71
72 set.add(start, end)
73 t.ok(set.contains(start))
74 t.ok(set.contains(end))
75 t.ok(set.contains(mid1))
76 t.ok(set.contains(mid2))
77 t.ok(set.contains(mid2))
78 t.notOk(set.contains(outside))
79
80 t.end()
81})