11import {
2+ convertIPv4BinaryToString ,
23 convertIPv4ToBinary ,
34 convertIPv6BinaryToString ,
45 convertIPv6ToBinary ,
@@ -13,12 +14,14 @@ describe('expandIPv6', () => {
1314 expect ( expandIPv6 ( '2001:2::' ) ) . toBe ( '2001:0002:0000:0000:0000:0000:0000:0000' )
1415 expect ( expandIPv6 ( '2001:2::' ) ) . toBe ( '2001:0002:0000:0000:0000:0000:0000:0000' )
1516 expect ( expandIPv6 ( '2001:0:0:db8::1' ) ) . toBe ( '2001:0000:0000:0db8:0000:0000:0000:0001' )
17+ expect ( expandIPv6 ( '::ffff:127.0.0.1' ) ) . toBe ( '0000:0000:0000:0000:0000:ffff:7f00:0001' )
1618 } )
1719} )
1820describe ( 'distinctRemoteAddr' , ( ) => {
1921 it ( 'Should result be valid' , ( ) => {
2022 expect ( distinctRemoteAddr ( '1::1' ) ) . toBe ( 'IPv6' )
2123 expect ( distinctRemoteAddr ( '::1' ) ) . toBe ( 'IPv6' )
24+ expect ( distinctRemoteAddr ( '::ffff:127.0.0.1' ) ) . toBe ( 'IPv6' )
2225
2326 expect ( distinctRemoteAddr ( '192.168.2.0' ) ) . toBe ( 'IPv4' )
2427 expect ( distinctRemoteAddr ( '192.168.2.0' ) ) . toBe ( 'IPv4' )
@@ -35,13 +38,27 @@ describe('convertIPv4ToBinary', () => {
3538 expect ( convertIPv4ToBinary ( '0.0.1.0' ) ) . toBe ( 1n << 8n )
3639 } )
3740} )
41+
42+ describe ( 'convertIPv4ToString' , ( ) => {
43+ // add tons of test cases here
44+ test . each `
45+ input | expected
46+ ${ '0.0.0.0' } | ${ '0.0.0.0' }
47+ ${ '0.0.0.1' } | ${ '0.0.0.1' }
48+ ${ '0.0.1.0' } | ${ '0.0.1.0' }
49+ ` ( 'convertIPv4ToString($input) === $expected' , ( { input, expected } ) => {
50+ expect ( convertIPv4BinaryToString ( convertIPv4ToBinary ( input ) ) ) . toBe ( expected )
51+ } )
52+ } )
53+
3854describe ( 'convertIPv6ToBinary' , ( ) => {
3955 it ( 'Should result is valid' , ( ) => {
4056 expect ( convertIPv6ToBinary ( '::0' ) ) . toBe ( 0n )
4157 expect ( convertIPv6ToBinary ( '::1' ) ) . toBe ( 1n )
4258
4359 expect ( convertIPv6ToBinary ( '::f' ) ) . toBe ( 15n )
4460 expect ( convertIPv6ToBinary ( '1234:::5678' ) ) . toBe ( 24196103360772296748952112894165669496n )
61+ expect ( convertIPv6ToBinary ( '::ffff:127.0.0.1' ) ) . toBe ( 281472812449793n )
4562 } )
4663} )
4764
@@ -55,6 +72,7 @@ describe('convertIPv6ToString', () => {
5572 ${ '2001:2::' } | ${ '2001:2::' }
5673 ${ '2001::db8:0:0:0:0:1' } | ${ '2001:0:db8::1' }
5774 ${ '1234:5678:9abc:def0:1234:5678:9abc:def0' } | ${ '1234:5678:9abc:def0:1234:5678:9abc:def0' }
75+ ${ '::ffff:127.0.0.1' } | ${ '::ffff:127.0.0.1' }
5876 ` ( 'convertIPv6ToString($input) === $expected' , ( { input, expected } ) => {
5977 expect ( convertIPv6BinaryToString ( convertIPv6ToBinary ( input ) ) ) . toBe ( expected )
6078 } )
0 commit comments