@@ -138,7 +138,6 @@ describe("A <Link> click", () => {
138
138
< div >
139
139
< h1 > Home</ h1 >
140
140
< Link
141
- reloadDocument
142
141
to = "https://remix.run"
143
142
onClick = { ( e ) => {
144
143
handlerCalled = true ;
@@ -171,6 +170,78 @@ describe("A <Link> click", () => {
171
170
} ) ;
172
171
} ) ;
173
172
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
+
174
245
describe ( "when reloadDocument is specified" , ( ) => {
175
246
it ( "does not prevent default" , ( ) => {
176
247
function Home ( ) {
0 commit comments