@@ -117,6 +117,62 @@ describe('OnPreRouting', () => {
117117 expect ( urlAfterForwarding ) . toBe ( '/redirectUrl' ) ;
118118 } ) ;
119119
120+ it ( 'provides original request url' , async ( ) => {
121+ const { registerOnPreRouting, server : innerServer , createRouter } = await server . setup (
122+ setupDeps
123+ ) ;
124+ const router = createRouter ( '/' ) ;
125+
126+ router . get ( { path : '/login' , validate : false } , ( context , req , res ) => {
127+ return res . ok ( { body : { rewrittenUrl : req . rewrittenUrl ?. path } } ) ;
128+ } ) ;
129+
130+ registerOnPreRouting ( ( req , res , t ) => t . rewriteUrl ( '/login' ) ) ;
131+
132+ await server . start ( ) ;
133+
134+ await supertest ( innerServer . listener )
135+ . get ( '/initial?name=foo' )
136+ . expect ( 200 , { rewrittenUrl : '/initial?name=foo' } ) ;
137+ } ) ;
138+
139+ it ( 'provides original request url if rewritten several times' , async ( ) => {
140+ const { registerOnPreRouting, server : innerServer , createRouter } = await server . setup (
141+ setupDeps
142+ ) ;
143+ const router = createRouter ( '/' ) ;
144+
145+ router . get ( { path : '/reroute-2' , validate : false } , ( context , req , res ) => {
146+ return res . ok ( { body : { rewrittenUrl : req . rewrittenUrl ?. path } } ) ;
147+ } ) ;
148+
149+ registerOnPreRouting ( ( req , res , t ) => t . rewriteUrl ( '/reroute-1' ) ) ;
150+ registerOnPreRouting ( ( req , res , t ) => t . rewriteUrl ( '/reroute-2' ) ) ;
151+
152+ await server . start ( ) ;
153+
154+ await supertest ( innerServer . listener )
155+ . get ( '/initial?name=foo' )
156+ . expect ( 200 , { rewrittenUrl : '/initial?name=foo' } ) ;
157+ } ) ;
158+
159+ it ( 'does not provide request url if interceptor does not rewrite url' , async ( ) => {
160+ const { registerOnPreRouting, server : innerServer , createRouter } = await server . setup (
161+ setupDeps
162+ ) ;
163+ const router = createRouter ( '/' ) ;
164+
165+ router . get ( { path : '/login' , validate : false } , ( context , req , res ) => {
166+ return res . ok ( { body : { rewrittenUrl : req . rewrittenUrl ?. path } } ) ;
167+ } ) ;
168+
169+ registerOnPreRouting ( ( req , res , t ) => t . next ( ) ) ;
170+
171+ await server . start ( ) ;
172+
173+ await supertest ( innerServer . listener ) . get ( '/login' ) . expect ( 200 , { } ) ;
174+ } ) ;
175+
120176 it ( 'supports redirection from the interceptor' , async ( ) => {
121177 const { registerOnPreRouting, server : innerServer , createRouter } = await server . setup (
122178 setupDeps
0 commit comments