@@ -5,9 +5,10 @@ describe('Default facet distribution', () => {
5
5
beforeAll ( async ( ) => {
6
6
const deleteTask = await meilisearchClient . deleteIndex ( 'movies' )
7
7
await meilisearchClient . waitForTask ( deleteTask . taskUid )
8
- await meilisearchClient
9
- . index ( 'movies' )
10
- . updateFilterableAttributes ( [ 'genres' ] )
8
+ await meilisearchClient . index ( 'movies' ) . updateSettings ( {
9
+ filterableAttributes : [ 'genres' , 'release_date' ] ,
10
+ sortableAttributes : [ 'release_date' ] ,
11
+ } )
11
12
const documentsTask = await meilisearchClient
12
13
. index ( 'movies' )
13
14
. addDocuments ( dataset )
@@ -100,6 +101,133 @@ describe('Default facet distribution', () => {
100
101
} )
101
102
} )
102
103
104
+ test ( 'creation of facet distribution when using indexes with sort-by' , async ( ) => {
105
+ const searchClient = instantMeiliSearch ( HOST , API_KEY )
106
+ const releaseDateDistribution = {
107
+ release_date : {
108
+ '1065744000' : 1 ,
109
+ '233366400' : 1 ,
110
+ '593395200' : 1 ,
111
+ '750643200' : 1 ,
112
+ '818467200' : 1 ,
113
+ '819676800' : 1 ,
114
+ } ,
115
+ }
116
+ const response = await searchClient . search ( [
117
+ {
118
+ indexName : 'movies' ,
119
+ params : {
120
+ facets : [ 'release_date' ] ,
121
+ query : '' ,
122
+ } ,
123
+ } ,
124
+ {
125
+ indexName : 'movies:release_date:asc' ,
126
+ params : {
127
+ facets : [ 'release_date' ] ,
128
+ query : '' ,
129
+ } ,
130
+ } ,
131
+ {
132
+ indexName : 'movies:release_date:desc' ,
133
+ params : {
134
+ facets : [ 'release_date' ] ,
135
+ query : '' ,
136
+ } ,
137
+ } ,
138
+ ] )
139
+
140
+ expect ( response . results [ 0 ] . facets ) . toEqual ( releaseDateDistribution )
141
+ expect ( response . results [ 1 ] . facets ) . toEqual ( releaseDateDistribution )
142
+ expect ( response . results [ 2 ] . facets ) . toEqual ( releaseDateDistribution )
143
+ } )
144
+
145
+ test ( 'creation of facet distribution when using indexes with sort-by and keepZeroFacets' , async ( ) => {
146
+ const searchClient = instantMeiliSearch ( HOST , API_KEY , {
147
+ keepZeroFacets : true ,
148
+ } )
149
+ const releaseDateDistribution = {
150
+ release_date : {
151
+ '1065744000' : 1 ,
152
+ '233366400' : 1 ,
153
+ '593395200' : 1 ,
154
+ '750643200' : 1 ,
155
+ '818467200' : 1 ,
156
+ '819676800' : 1 ,
157
+ } ,
158
+ }
159
+ const response = await searchClient . search ( [
160
+ {
161
+ indexName : 'movies' ,
162
+ params : {
163
+ facets : [ 'release_date' ] ,
164
+ query : '' ,
165
+ } ,
166
+ } ,
167
+ {
168
+ indexName : 'movies:release_date:asc' ,
169
+ params : {
170
+ facets : [ 'release_date' ] ,
171
+ query : '' ,
172
+ } ,
173
+ } ,
174
+ {
175
+ indexName : 'movies:release_date:desc' ,
176
+ params : {
177
+ facets : [ 'release_date' ] ,
178
+ query : '' ,
179
+ } ,
180
+ } ,
181
+ ] )
182
+
183
+ expect ( response . results [ 0 ] . facets ) . toEqual ( releaseDateDistribution )
184
+ expect ( response . results [ 1 ] . facets ) . toEqual ( releaseDateDistribution )
185
+ expect ( response . results [ 2 ] . facets ) . toEqual ( releaseDateDistribution )
186
+ } )
187
+
188
+ test ( 'creation of facet distribution when using indexes with sort-by and no placeholdersearch' , async ( ) => {
189
+ const searchClient = instantMeiliSearch ( HOST , API_KEY , {
190
+ placeholderSearch : false ,
191
+ } )
192
+ const releaseDateDistribution = {
193
+ release_date : {
194
+ '1065744000' : 1 ,
195
+ '233366400' : 1 ,
196
+ '593395200' : 1 ,
197
+ '750643200' : 1 ,
198
+ '818467200' : 1 ,
199
+ '819676800' : 1 ,
200
+ } ,
201
+ }
202
+ const response = await searchClient . search ( [
203
+ {
204
+ indexName : 'movies' ,
205
+ params : {
206
+ facets : [ 'release_date' ] ,
207
+ query : '' ,
208
+ } ,
209
+ } ,
210
+ {
211
+ indexName : 'movies:release_date:asc' ,
212
+ params : {
213
+ facets : [ 'release_date' ] ,
214
+ query : '' ,
215
+ } ,
216
+ } ,
217
+ {
218
+ indexName : 'movies:release_date:desc' ,
219
+ params : {
220
+ facets : [ 'release_date' ] ,
221
+ query : '' ,
222
+ } ,
223
+ } ,
224
+ ] )
225
+
226
+ expect ( response . results [ 0 ] . facets ) . toEqual ( releaseDateDistribution )
227
+ expect ( response . results [ 1 ] . facets ) . toEqual ( releaseDateDistribution )
228
+ expect ( response . results [ 2 ] . facets ) . toEqual ( releaseDateDistribution )
229
+ } )
230
+
103
231
// With facets
104
232
// without keepZeroFacets
105
233
// with placeholderSearch
0 commit comments