1
- import { FieldsService , SearchFacade } from '@geonetwork-ui/feature/search'
1
+ import {
2
+ FieldsService ,
3
+ LocationBbox ,
4
+ SearchFacade ,
5
+ } from '@geonetwork-ui/feature/search'
2
6
import {
3
7
SortByEnum ,
4
8
SortByField ,
5
9
} from '@geonetwork-ui/common/domain/model/search'
6
10
import { BehaviorSubject , of } from 'rxjs'
7
11
import { RouterFacade } from '../state'
8
12
import { RouterSearchService } from './router-search.service'
13
+ import { RouterService } from '../router.service'
9
14
10
15
let state = { }
11
16
class SearchFacadeMock {
@@ -16,6 +21,7 @@ class SearchFacadeMock {
16
21
class RouterFacadeMock {
17
22
setSearch = jest . fn ( )
18
23
updateSearch = jest . fn ( )
24
+ go = jest . fn ( )
19
25
}
20
26
21
27
class FieldsServiceMock {
@@ -43,18 +49,29 @@ class FieldsServiceMock {
43
49
)
44
50
}
45
51
52
+ class RouterServiceMock {
53
+ getSearchRoute = jest . fn ( ) . mockReturnValue ( '/test/path' )
54
+ }
55
+
46
56
describe ( 'RouterSearchService' , ( ) => {
47
57
let service : RouterSearchService
48
58
let routerFacade : RouterFacade
49
59
let searchFacade : SearchFacade
50
60
let fieldsService : FieldsService
61
+ let routerService : RouterService
51
62
52
63
beforeEach ( ( ) => {
53
64
state = { OrgForResource : { mel : true } }
54
65
routerFacade = new RouterFacadeMock ( ) as any
55
66
searchFacade = new SearchFacadeMock ( ) as any
56
67
fieldsService = new FieldsServiceMock ( ) as any
57
- service = new RouterSearchService ( searchFacade , routerFacade , fieldsService )
68
+ routerService = new RouterServiceMock ( ) as any
69
+ service = new RouterSearchService (
70
+ searchFacade ,
71
+ routerFacade ,
72
+ fieldsService ,
73
+ routerService
74
+ )
58
75
} )
59
76
60
77
it ( 'should be created' , ( ) => {
@@ -118,4 +135,40 @@ describe('RouterSearchService', () => {
118
135
} )
119
136
} )
120
137
} )
138
+
139
+ describe ( '#setLocationFilter' , ( ) => {
140
+ beforeEach ( ( ) => {
141
+ const location : LocationBbox = {
142
+ label : 'New location' ,
143
+ bbox : [ 4 , 5 , 6 , 7 ] ,
144
+ }
145
+ service . setLocationFilter ( location )
146
+ } )
147
+ it ( 'dispatch setLocationFilter with merged mapped params' , ( ) => {
148
+ expect ( routerFacade . go ) . toHaveBeenCalledWith ( {
149
+ path : '/test/path' ,
150
+ query : {
151
+ location : 'New location' ,
152
+ bbox : '4,5,6,7' ,
153
+ } ,
154
+ queryParamsHandling : 'merge' ,
155
+ } )
156
+ } )
157
+ } )
158
+
159
+ describe ( '#clearLocationFilter' , ( ) => {
160
+ beforeEach ( ( ) => {
161
+ service . clearLocationFilter ( )
162
+ } )
163
+ it ( 'dispatch clearLocationFilter with merged mapped params' , ( ) => {
164
+ expect ( routerFacade . go ) . toHaveBeenCalledWith ( {
165
+ path : '/test/path' ,
166
+ query : {
167
+ location : undefined ,
168
+ bbox : undefined ,
169
+ } ,
170
+ queryParamsHandling : 'merge' ,
171
+ } )
172
+ } )
173
+ } )
121
174
} )
0 commit comments