Skip to content

Commit

Permalink
nominatim: test htmTemplate
Browse files Browse the repository at this point in the history
See #357.
  • Loading branch information
simon04 committed Dec 26, 2024
1 parent d697fa0 commit e92025d
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
55 changes: 55 additions & 0 deletions spec/__snapshots__/nominatim.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,61 @@ exports[`L.Control.Geocoder.Nominatim > geocodes Innsbruck 1`] = `
]
`;

exports[`L.Control.Geocoder.Nominatim > geocodes Innsbruck using a custom htmlTemplate 1`] = `
[
[
[
{
"bbox": {
"_northEast": {
"lat": 47.2808566,
"lng": 11.418183,
},
"_southWest": {
"lat": 47.2583715,
"lng": 11.3811871,
},
},
"center": {
"lat": 47.26951525,
"lng": 11.3971372042211,
},
"html": "Innsbruck, Tyrol, Austria <a href="https://www.openstreetmap.org/relation/8182617">relation/8182617</a>",
"icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png",
"name": "Innsbruck, Tyrol, Austria",
"properties": {
"address": {
"city": "Innsbruck",
"city_district": "Innsbruck",
"country": "Austria",
"country_code": "at",
"county": "Innsbruck",
"state": "Tyrol",
},
"boundingbox": [
"47.2583715",
"47.2808566",
"11.3811871",
"11.418183",
],
"class": "boundary",
"display_name": "Innsbruck, Tyrol, Austria",
"icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png",
"importance": 0.763909048330467,
"lat": "47.26951525",
"licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
"lon": "11.3971372042211",
"osm_id": 8182617,
"osm_type": "relation",
"place_id": 199282228,
"type": "administrative",
},
},
],
],
]
`;

exports[`L.Control.Geocoder.Nominatim > reverse geocodes 47.3/11.3 1`] = `
[
[
Expand Down
42 changes: 42 additions & 0 deletions spec/nominatim.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,48 @@ describe('L.Control.Geocoder.Nominatim', () => {
expect([[result]]).toMatchSnapshot();
});

it('geocodes Innsbruck using a custom htmlTemplate', async () => {
const geocoder2 = new Nominatim({
htmlTemplate(result) {
const osm = [result.osm_type, result.osm_id].join('/');
return `${result.display_name} <a href="https://www.openstreetmap.org/${osm}">${osm}</a>`;
}
});
const result = await mockFetchRequest(
'https://nominatim.openstreetmap.org/search?q=innsbruck&limit=5&format=json&addressdetails=1',
[
{
place_id: 199282228,
licence: 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
osm_type: 'relation',
osm_id: 8182617,
boundingbox: ['47.2583715', '47.2808566', '11.3811871', '11.418183'],
lat: '47.26951525',
lon: '11.3971372042211',
display_name: 'Innsbruck, Tyrol, Austria',
class: 'boundary',
type: 'administrative',
importance: 0.763909048330467,
icon: 'https://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png',
address: {
city_district: 'Innsbruck',
city: 'Innsbruck',
county: 'Innsbruck',
state: 'Tyrol',
country: 'Austria',
country_code: 'at'
}
}
] satisfies NominatimResponse,
() => geocoder2.geocode('innsbruck')
);
const feature = result[0];
expect(feature.html).toBe(
'Innsbruck, Tyrol, Austria <a href="https://www.openstreetmap.org/relation/8182617">relation/8182617</a>'
);
expect([[result]]).toMatchSnapshot();
});

it('reverse geocodes 47.3/11.3', async () => {
const result = await mockFetchRequest(
'https://nominatim.openstreetmap.org/reverse?lat=47.3&lon=11.3&zoom=9&addressdetails=1&format=json',
Expand Down

0 comments on commit e92025d

Please sign in to comment.