File tree Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Expand file tree Collapse file tree 2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { AddressInfo } from "net" ;
2
+ import { getUrlAddress } from "./getUrlAddress" ;
3
+
4
+
5
+ describe ( "getUrlAddress" , ( ) => {
6
+ describe ( "when null is passed" , ( ) => {
7
+ it ( "returns null" , ( ) => {
8
+ const url = getUrlAddress ( null ) ;
9
+ expect ( url ) . toBeNull ( ) ;
10
+ } ) ;
11
+ } ) ;
12
+
13
+ describe ( "when string is passed" , ( ) => {
14
+ it ( "returns null" , ( ) => {
15
+ const url = getUrlAddress ( "foobar" ) ;
16
+ expect ( url ) . toBeNull ( ) ;
17
+ } ) ;
18
+ } ) ;
19
+
20
+ describe ( "when IPv4 is passed" , ( ) => {
21
+ it ( "returns correct url" , ( ) => {
22
+ const address : AddressInfo = {
23
+ address : "0.0.0.0" ,
24
+ family : "IPv4" ,
25
+ port : 8888 ,
26
+ }
27
+ const url = getUrlAddress ( address ) ;
28
+ expect ( url ) . toEqual ( `http://${ address . address } :${ address . port } ` ) ;
29
+ } ) ;
30
+ } ) ;
31
+
32
+ describe ( "when IPv6 is passed" , ( ) => {
33
+ it ( "returns correct url" , ( ) => {
34
+ const address : AddressInfo = {
35
+ address : "::" ,
36
+ family : "IPv6" ,
37
+ port : 8888 ,
38
+ }
39
+ const url = getUrlAddress ( address ) ;
40
+ expect ( url ) . toEqual ( `http://[${ address . address } ]:${ address . port } ` ) ;
41
+ } ) ;
42
+ } ) ;
43
+ } ) ;
Original file line number Diff line number Diff line change
1
+ import { AddressInfo } from "net" ;
2
+
3
+
4
+ export const getUrlAddress = ( address : string | AddressInfo | null ) => {
5
+ if ( ! address || typeof address === "string" ) return null ;
6
+
7
+ if ( [ "IPv4" , "IPv6" ] . indexOf ( address . family ) === - 1 ) throw new Error ( "Unknown address family" ) ;
8
+
9
+ return `http://${ address . family === "IPv4" ? address . address : `[${ address . address } ]` } :${ address . port } ` ;
10
+ }
You can’t perform that action at this time.
0 commit comments