File tree Expand file tree Collapse file tree 2 files changed +59
-6
lines changed
src/adapter/search-response-adapter Expand file tree Collapse file tree 2 files changed +59
-6
lines changed Original file line number Diff line number Diff line change
1
+ import { adaptGeoResponse } from '../geo-reponse-adapter'
2
+
3
+ describe ( 'Geopoint adapter' , ( ) => {
4
+ test ( '_geoloc field should be created in hit object with _geo fields' , ( ) => {
5
+ const hits = [
6
+ {
7
+ id : 2 ,
8
+ _geo : {
9
+ lat : 1 ,
10
+ lng : 2 ,
11
+ } ,
12
+ _formatted : {
13
+ _geo : {
14
+ lat : 1 ,
15
+ lng : 2 ,
16
+ } ,
17
+ } ,
18
+ } ,
19
+ ]
20
+
21
+ const adaptedHits = adaptGeoResponse ( hits )
22
+
23
+ expect ( adaptedHits [ 0 ] . _geoloc ) . toEqual ( hits [ 0 ] . _geo )
24
+ expect ( adaptedHits [ 0 ] . _geo ) . toEqual ( hits [ 0 ] . _geo )
25
+ expect ( adaptedHits [ 0 ] . _formatted . _geoloc ) . toEqual ( hits [ 0 ] . _formatted . _geo )
26
+ expect ( adaptedHits [ 0 ] . _formatted . _geo ) . toEqual ( hits [ 0 ] . _formatted . _geo )
27
+ expect ( adaptedHits [ 0 ] . objectID ) . toBeDefined ( )
28
+ expect ( adaptedHits [ 0 ] . _formatted . objectID ) . toEqual ( adaptedHits [ 0 ] . objectID )
29
+ } )
30
+
31
+ test ( '_geoloc field should not be created in hit object without _geo fields' , ( ) => {
32
+ const hits = [
33
+ {
34
+ id : 2 ,
35
+ } ,
36
+ {
37
+ id : 1 ,
38
+ _formatted : { } ,
39
+ } ,
40
+ ]
41
+
42
+ const adaptedHits = adaptGeoResponse ( hits )
43
+
44
+ expect ( adaptedHits [ 0 ] . _geoloc ) . toBeUndefined ( )
45
+ expect ( adaptedHits [ 0 ] . _geo ) . toBeUndefined ( )
46
+ expect ( adaptedHits [ 0 ] . _formatted ) . toBeUndefined ( )
47
+ expect ( adaptedHits [ 1 ] . _geoloc ) . toBeUndefined ( )
48
+ expect ( adaptedHits [ 1 ] . _geo ) . toBeUndefined ( )
49
+ expect ( adaptedHits [ 1 ] . _formatted . _geoloc ) . toBeUndefined ( )
50
+ expect ( adaptedHits [ 1 ] . _formatted . _geo ) . toBeUndefined ( )
51
+ } )
52
+ } )
Original file line number Diff line number Diff line change 4
4
*/
5
5
export function adaptGeoResponse ( hits : any [ ] ) : Array < Record < string , any > > {
6
6
for ( let i = 0 ; i < hits . length ; i ++ ) {
7
+ const objectID = `${ i + Math . random ( ) * 1000000 } `
7
8
if ( hits [ i ] . _geo ) {
8
- hits [ i ] . _geoloc = {
9
- lat : hits [ i ] . _geo . lat ,
10
- lng : hits [ i ] . _geo . lng ,
11
- }
9
+ hits [ i ] . _geoloc = hits [ i ] . _geo
10
+ hits [ i ] . objectID = objectID
11
+ }
12
12
13
- hits [ i ] . objectID = `${ i + Math . random ( ) * 1000000 } `
14
- delete hits [ i ] . _geo
13
+ if ( hits [ i ] . _formatted ?. _geo ) {
14
+ hits [ i ] . _formatted . _geoloc = hits [ i ] . _formatted . _geo
15
+ hits [ i ] . _formatted . objectID = objectID
15
16
}
16
17
}
17
18
return hits
You can’t perform that action at this time.
0 commit comments