@@ -11,6 +11,7 @@ import {
1111 getQuery ,
1212 getRequestURL ,
1313 readFormData ,
14+ getRequestIP ,
1415} from "../src" ;
1516
1617describe ( "" , ( ) => {
@@ -144,6 +145,48 @@ describe("", () => {
144145 }
145146 } ) ;
146147
148+ describe ( "getRequestIP" , ( ) => {
149+ it ( "x-forwarded-for" , async ( ) => {
150+ app . use (
151+ "/" ,
152+ eventHandler ( ( event ) => {
153+ return getRequestIP ( event , {
154+ xForwardedFor : true ,
155+ } ) ;
156+ } ) ,
157+ ) ;
158+ const req = request . get ( "/" ) ;
159+ req . set ( "x-forwarded-for" , "127.0.0.1" ) ;
160+ expect ( ( await req ) . text ) . toBe ( "127.0.0.1" ) ;
161+ } ) ;
162+ it ( "ports" , async ( ) => {
163+ app . use (
164+ "/" ,
165+ eventHandler ( ( event ) => {
166+ return getRequestIP ( event , {
167+ xForwardedFor : true ,
168+ } ) ;
169+ } ) ,
170+ ) ;
171+ const req = request . get ( "/" ) ;
172+ req . set ( "x-forwarded-for" , "127.0.0.1:1234" ) ;
173+ expect ( ( await req ) . text ) . toBe ( "127.0.0.1:1234" ) ;
174+ } ) ;
175+ it ( "ipv6" , async ( ) => {
176+ app . use (
177+ "/" ,
178+ eventHandler ( ( event ) => {
179+ return getRequestIP ( event , {
180+ xForwardedFor : true ,
181+ } ) ;
182+ } ) ,
183+ ) ;
184+ const req = request . get ( "/" ) ;
185+ req . set ( "x-forwarded-for" , "2001:0db8:85a3:0000:0000:8a2e:0370:7334" ) ;
186+ expect ( ( await req ) . text ) . toBe ( "2001:0db8:85a3:0000:0000:8a2e:0370:7334" ) ;
187+ } ) ;
188+ } ) ;
189+
147190 describe ( "assertMethod" , ( ) => {
148191 it ( "only allow head and post" , async ( ) => {
149192 app . use (
0 commit comments