mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
fix(search-autocomplete): address PR #542 review issues
- Fix race condition: AbortController cancels in-flight autocomplete requests on each keystroke; stale responses no longer overwrite fresh ones - Remove acTrigger state hack; onFocus calls fetchSuggestions directly - Cap autocomplete input at 200 chars server-side (400 on violation) - Filter Nominatim suggestions with empty osm_id segments - Revert getPlaceDetails OSM branch from unconditional parallel fetch to conditional serial: Nominatim called only when Overpass lacks coords/address - Wire places.loadingDetails i18n key to Loader2 spinner via aria-label/role - Add tests: MAPS-017, MAPS-040c, MAPS-093, FE-MAPS-004
This commit is contained in:
@@ -954,4 +954,21 @@ describe('mapsApi', () => {
|
||||
|
||||
await expect(mapsApi.autocomplete('test')).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('FE-MAPS-004: mapsApi.autocomplete rejects when AbortSignal is aborted', async () => {
|
||||
const controller = new AbortController();
|
||||
|
||||
server.use(
|
||||
http.post('/api/maps/autocomplete', async () => {
|
||||
// Never resolves — request will be aborted
|
||||
await new Promise(() => {});
|
||||
return HttpResponse.json({ suggestions: [] });
|
||||
})
|
||||
);
|
||||
|
||||
const promise = mapsApi.autocomplete('Paris', undefined, undefined, controller.signal);
|
||||
controller.abort();
|
||||
|
||||
await expect(promise).rejects.toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user