@meilisearch/instant-meilisearch
Version:
The search client to use Meilisearch with InstantSearch.
79 lines (69 loc) • 2.09 kB
text/typescript
import { describe, test, expect } from 'vitest'
import { adaptGeoResponse } from '../geo-reponse-adapter.js'
describe('Geopoint adapter', () => {
test('_geoloc field should be created in hit object with _geo fields', () => {
const hits = [
{
id: 2,
_geo: {
lat: 1,
lng: 2,
},
_formatted: {
_geo: {
lat: 1,
lng: 2,
},
},
},
]
const adaptedHits = adaptGeoResponse(hits)
expect(adaptedHits[0]._geoloc).toEqual(hits[0]._geo)
expect(adaptedHits[0]._geo).toEqual(hits[0]._geo)
expect(adaptedHits[0]._formatted._geoloc).toEqual(hits[0]._formatted._geo)
expect(adaptedHits[0]._formatted._geo).toEqual(hits[0]._formatted._geo)
expect(adaptedHits[0].objectID).toBeDefined()
expect(adaptedHits[0]._formatted.objectID).toEqual(adaptedHits[0].objectID)
})
test('_geoloc field should not be created in hit object without _geo fields', () => {
const hits = [
{
id: 2,
},
{
id: 1,
_formatted: {},
},
]
const adaptedHits = adaptGeoResponse(hits)
expect(adaptedHits[0]._geoloc).toBeUndefined()
expect(adaptedHits[0]._geo).toBeUndefined()
expect(adaptedHits[0]._formatted).toBeUndefined()
expect(adaptedHits[1]._geoloc).toBeUndefined()
expect(adaptedHits[1]._geo).toBeUndefined()
expect(adaptedHits[1]._formatted._geoloc).toBeUndefined()
expect(adaptedHits[1]._formatted._geo).toBeUndefined()
})
test('hits with _geoloc field should not overwrite `objectID` property', () => {
const hits = [
{
objectID: '2',
id: 2,
_geo: {
lat: 1,
lng: 2,
},
_formatted: {
_geo: {
lat: 1,
lng: 2,
},
},
},
]
const adaptedHits = adaptGeoResponse(hits)
expect(adaptedHits[0]._geoloc).toEqual(hits[0]._geo)
expect(adaptedHits[0]._geo).toEqual(hits[0]._geo)
expect(adaptedHits[0].objectID).toEqual(hits[0].objectID)
})
})