@@ -138,7 +138,6 @@ describe("A <Link> click", () => {
138138 < div >
139139 < h1 > Home</ h1 >
140140 < Link
141- reloadDocument
142141 to = "https://remix.run"
143142 onClick = { ( e ) => {
144143 handlerCalled = true ;
@@ -171,6 +170,78 @@ describe("A <Link> click", () => {
171170 } ) ;
172171 } ) ;
173172
173+ describe ( "when a same-origin/different-basename absolute URL is specified" , ( ) => {
174+ it ( "does not prevent default" , ( ) => {
175+ function Home ( ) {
176+ return (
177+ < div >
178+ < h1 > Home</ h1 >
179+ < Link to = "http://localhost/not/base" > About</ Link >
180+ </ div >
181+ ) ;
182+ }
183+
184+ act ( ( ) => {
185+ ReactDOM . createRoot ( node ) . render (
186+ < MemoryRouter initialEntries = { [ "/base/home" ] } basename = "/base" >
187+ < Routes >
188+ < Route path = "home" element = { < Home /> } />
189+ </ Routes >
190+ </ MemoryRouter >
191+ ) ;
192+ } ) ;
193+
194+ let anchor = node . querySelector ( "a" ) ;
195+ expect ( anchor ) . not . toBeNull ( ) ;
196+
197+ let event : MouseEvent ;
198+ act ( ( ) => {
199+ event = click ( anchor ) ;
200+ } ) ;
201+
202+ expect ( event . defaultPrevented ) . toBe ( false ) ;
203+ } ) ;
204+
205+ it ( "calls provided listener" , ( ) => {
206+ let handlerCalled ;
207+ let defaultPrevented ;
208+
209+ function Home ( ) {
210+ return (
211+ < div >
212+ < h1 > Home</ h1 >
213+ < Link
214+ to = "http://localhost/not/base"
215+ onClick = { ( e ) => {
216+ handlerCalled = true ;
217+ defaultPrevented = e . defaultPrevented ;
218+ } }
219+ >
220+ About
221+ </ Link >
222+ </ div >
223+ ) ;
224+ }
225+
226+ act ( ( ) => {
227+ ReactDOM . createRoot ( node ) . render (
228+ < MemoryRouter initialEntries = { [ "/base/home" ] } basename = "/base" >
229+ < Routes >
230+ < Route path = "home" element = { < Home /> } />
231+ </ Routes >
232+ </ MemoryRouter >
233+ ) ;
234+ } ) ;
235+
236+ act ( ( ) => {
237+ click ( node . querySelector ( "a" ) ) ;
238+ } ) ;
239+
240+ expect ( handlerCalled ) . toBe ( true ) ;
241+ expect ( defaultPrevented ) . toBe ( false ) ;
242+ } ) ;
243+ } ) ;
244+
174245 describe ( "when reloadDocument is specified" , ( ) => {
175246 it ( "does not prevent default" , ( ) => {
176247 function Home ( ) {
0 commit comments