File tree 3 files changed +25
-0
lines changed
cypress/integration/middleware
3 files changed +25
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { NextRequest } from 'next/server'
1
2
describe ( 'Enhanced middleware' , ( ) => {
2
3
it ( 'adds request headers' , ( ) => {
3
4
cy . request ( '/api/hello' ) . then ( ( response ) => {
@@ -25,4 +26,15 @@ describe('Enhanced middleware', () => {
25
26
. that . includes ( 'This was static but has been transformed in' )
26
27
} )
27
28
} )
29
+
30
+ it ( 'adds geo data' , ( ) => {
31
+ cy . request ( '/api/geo-test' ) . then ( ( response ) => {
32
+ expect ( response . body ) . to . have . nested . property ( 'headers.x-geo-country' )
33
+ expect ( response . body ) . to . have . nested . property ( 'headers.x-geo-region' )
34
+ expect ( response . body ) . to . have . nested . property ( 'headers.x-geo-city' )
35
+ expect ( response . body ) . to . have . nested . property ( 'headers.x-geo-longitude' )
36
+ expect ( response . body ) . to . have . nested . property ( 'headers.x-geo-latitude' )
37
+ expect ( response . body ) . to . have . nested . property ( 'headers.x-geo-timezone' )
38
+ } )
39
+ } )
28
40
} )
Original file line number Diff line number Diff line change @@ -29,6 +29,16 @@ export async function middleware(req: NextRequest) {
29
29
return request . next ( )
30
30
}
31
31
32
+ if ( pathname . startsWith ( '/api/geo' ) ) {
33
+ req . headers . set ( 'x-geo-country' , req . geo . country )
34
+ req . headers . set ( 'x-geo-region' , req . geo . region )
35
+ req . headers . set ( 'x-geo-city' , req . geo . city )
36
+ req . headers . set ( 'x-geo-longitude' , req . geo . longitude )
37
+ req . headers . set ( 'x-geo-latitude' , req . geo . latitude )
38
+
39
+ return request . next ( )
40
+ }
41
+
32
42
if ( pathname . startsWith ( '/headers' ) ) {
33
43
// Add a header to the rewritten request
34
44
req . headers . set ( 'x-hello' , 'world' )
Original file line number Diff line number Diff line change
1
+ export default function handler ( req , res ) {
2
+ res . status ( 200 ) . json ( { name : 'geo-test' , headers : req . headers } )
3
+ }
You can’t perform that action at this time.
0 commit comments