@searchkit/sdk
Version:
Elasticsearch Universal SDK for Searchkit
60 lines (56 loc) • 1.57 kB
text/typescript
import nock from 'nock'
import SearchkitRequest from '../../src'
import { CompletionSuggester } from '../../src'
import CompletionsMock from '../__mock-data__/suggestors/Completion.json'
describe('Suggestions', () => {
it('Completion Suggestor', async () => {
const request = SearchkitRequest({
host: 'http://localhost:9200',
index: 'test',
suggestions: [
new CompletionSuggester({
index: 'mrp-products',
identifier: 'completion',
field: 'suggestions'
})
]
})
const scope = nock('http://localhost:9200')
.post('/mrp-products/_search')
.reply(200, (uri, body) => {
expect(body).toMatchInlineSnapshot(`
Object {
"_source": Array [],
"size": 0,
"suggest": Object {
"suggest": Object {
"completion": Object {
"field": "suggestions",
"fuzzy": Object {
"fuzziness": 1,
},
"size": 5,
"skip_duplicates": true,
},
"prefix": "swe",
},
},
}
`)
return CompletionsMock
})
const results = await request.executeSuggestions('swe')
expect(results).toMatchInlineSnapshot(`
Array [
Object {
"identifier": "completion",
"suggestions": Array [
"Sweatpants",
"Sweats",
"Swimwear",
],
},
]
`)
})
})