From 4ef662e38bbf61a769e76bb9d816c5eb2961947f Mon Sep 17 00:00:00 2001 From: Charlotte Vermandel Date: Tue, 22 Mar 2022 18:31:27 +0100 Subject: [PATCH 1/3] Remove meilisearch client public accessibility --- src/client/instant-meilisearch-client.ts | 5 ++- src/types/types.ts | 4 +-- tests/assets/utils.ts | 13 +++++++- tests/base.tests.ts | 7 ---- .../configure.attributes-to-retrieve.tests.ts | 23 ++++++------- tests/facets-distribution.tests.ts | 24 ++++++-------- tests/filter.tests.ts | 29 ++++++++-------- tests/geosearch.tests.ts | 33 +++++++++---------- tests/highlight.tests.ts | 29 ++++++++-------- tests/pagination.tests.ts | 29 ++++++++-------- tests/snippets.tests.ts | 29 ++++++++-------- 11 files changed, 113 insertions(+), 112 deletions(-) delete mode 100644 tests/base.tests.ts diff --git a/src/client/instant-meilisearch-client.ts b/src/client/instant-meilisearch-client.ts index 263fe97c..2a4261e0 100644 --- a/src/client/instant-meilisearch-client.ts +++ b/src/client/instant-meilisearch-client.ts @@ -31,10 +31,9 @@ export function instantMeiliSearch( const searchResolver = SearchResolver(SearchCache()) // paginationTotalHits can be 0 as it is a valid number let defaultFacetDistribution: any = {} + const meilisearchClient = new MeiliSearch({ host: hostUrl, apiKey: apiKey }) return { - MeiliSearchClient: new MeiliSearch({ host: hostUrl, apiKey: apiKey }), - /** * @param {readonlyAlgoliaMultipleQueriesQuery[]} instantSearchRequests * @returns {Array} @@ -57,7 +56,7 @@ export function instantMeiliSearch( const searchResponse = await searchResolver.searchResponse( searchContext, adaptedSearchRequest, - this.MeiliSearchClient + meilisearchClient ) // Cache first facets distribution of the instantMeilisearch instance diff --git a/src/types/types.ts b/src/types/types.ts index 27bd54c1..a54d7a78 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -85,6 +85,4 @@ export type SearchContext = Omit< pagination: PaginationContext } -export type InstantMeiliSearchInstance = SearchClient & { - MeiliSearchClient: MeiliSearch -} +export type InstantMeiliSearchInstance = SearchClient diff --git a/tests/assets/utils.ts b/tests/assets/utils.ts index a1247ea9..5a476277 100644 --- a/tests/assets/utils.ts +++ b/tests/assets/utils.ts @@ -1,4 +1,5 @@ import { instantMeiliSearch } from '../../src' +import { MeiliSearch } from 'meilisearch' const dataset = [ { @@ -223,5 +224,15 @@ const wrongSearchClient = instantMeiliSearch( 'http://localhost:7777', 'masterKey' ) +const meilisearchClient = new MeiliSearch({ + host: 'http://localhost:7700', + apiKey: 'masterKey', +}) -export { searchClient, dataset, wrongSearchClient, geoDataset } +export { + searchClient, + dataset, + wrongSearchClient, + geoDataset, + meilisearchClient, +} diff --git a/tests/base.tests.ts b/tests/base.tests.ts deleted file mode 100644 index 967c56e7..00000000 --- a/tests/base.tests.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { instantMeiliSearch } from '../src/index' - -test('Should test if instantMeiliSearch Client is created correctly', () => { - const client = instantMeiliSearch('http://localhost:7700', 'masterKey') - expect(client.search).toBeDefined() - expect(client.MeiliSearchClient).toBeDefined() -}) diff --git a/tests/configure.attributes-to-retrieve.tests.ts b/tests/configure.attributes-to-retrieve.tests.ts index 2ea4e3e4..4b74732c 100644 --- a/tests/configure.attributes-to-retrieve.tests.ts +++ b/tests/configure.attributes-to-retrieve.tests.ts @@ -1,18 +1,19 @@ -import { searchClient, dataset, Movies } from './assets/utils' +import { + searchClient, + dataset, + Movies, + meilisearchClient, +} from './assets/utils' describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'movies' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) + const deleteTask = await meilisearchClient.deleteIndex('movies') + await meilisearchClient.waitForTask(deleteTask.uid) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'movies' - ).addDocuments(dataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const documentsTask = await meilisearchClient + .index('movies') + .addDocuments(dataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test attributesToRetrieve on no attributes', async () => { diff --git a/tests/facets-distribution.tests.ts b/tests/facets-distribution.tests.ts index 58f54641..68bbf1c7 100644 --- a/tests/facets-distribution.tests.ts +++ b/tests/facets-distribution.tests.ts @@ -1,20 +1,16 @@ -import { searchClient, dataset } from './assets/utils' +import { searchClient, dataset, meilisearchClient } from './assets/utils' describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'movies' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) - await searchClient.MeiliSearchClient.index( - 'movies' - ).updateFilterableAttributes(['genres']) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'movies' - ).addDocuments(dataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const deleteTask = await meilisearchClient.deleteIndex('movies') + await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient + .index('movies') + .updateFilterableAttributes(['genres']) + const documentsTask = await meilisearchClient + .index('movies') + .addDocuments(dataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test empty array on facetsDistribution', async () => { diff --git a/tests/filter.tests.ts b/tests/filter.tests.ts index 72a4306a..7c39ce8b 100644 --- a/tests/filter.tests.ts +++ b/tests/filter.tests.ts @@ -1,20 +1,21 @@ -import { searchClient, dataset, Movies } from './assets/utils' +import { + searchClient, + dataset, + Movies, + meilisearchClient, +} from './assets/utils' describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'movies' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) - await searchClient.MeiliSearchClient.index( - 'movies' - ).updateFilterableAttributes(['genres', 'title']) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'movies' - ).addDocuments(dataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const deleteTask = await meilisearchClient.deleteIndex('movies') + await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient + .index('movies') + .updateFilterableAttributes(['genres', 'title']) + const documentsTask = await meilisearchClient + .index('movies') + .addDocuments(dataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test one string facet on filter without a query', async () => { diff --git a/tests/geosearch.tests.ts b/tests/geosearch.tests.ts index 5955a657..25504d89 100644 --- a/tests/geosearch.tests.ts +++ b/tests/geosearch.tests.ts @@ -1,23 +1,22 @@ -import { searchClient, geoDataset, City } from './assets/utils' +import { + searchClient, + geoDataset, + City, + meilisearchClient, +} from './assets/utils' describe('Instant Meilisearch Browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'geotest' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) - await searchClient.MeiliSearchClient.index( - 'geotest' - ).updateFilterableAttributes(['_geo']) - await searchClient.MeiliSearchClient.index( - 'geotest' - ).updateSortableAttributes(['_geo']) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'geotest' - ).addDocuments(geoDataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const deleteTask = await meilisearchClient.deleteIndex('geotest') + await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient + .index('geotest') + .updateFilterableAttributes(['_geo']) + await meilisearchClient.index('geotest').updateSortableAttributes(['_geo']) + const documentsTask = await meilisearchClient + .index('geotest') + .addDocuments(geoDataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test aroundRadius and aroundLatLng in geo search', async () => { diff --git a/tests/highlight.tests.ts b/tests/highlight.tests.ts index 5c40fe52..de2886a1 100644 --- a/tests/highlight.tests.ts +++ b/tests/highlight.tests.ts @@ -1,20 +1,21 @@ -import { searchClient, dataset, Movies } from './assets/utils' +import { + searchClient, + dataset, + Movies, + meilisearchClient, +} from './assets/utils' describe('Highlight Browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'movies' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) - await searchClient.MeiliSearchClient.index( - 'movies' - ).updateFilterableAttributes(['genres']) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'movies' - ).addDocuments(dataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const deleteTask = await meilisearchClient.deleteIndex('movies') + await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient + .index('movies') + .updateFilterableAttributes(['genres']) + const documentsTask = await meilisearchClient + .index('movies') + .addDocuments(dataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test one attributesToHighlight on wrong attribute placeholder', async () => { diff --git a/tests/pagination.tests.ts b/tests/pagination.tests.ts index 8ff8742b..22a0adeb 100644 --- a/tests/pagination.tests.ts +++ b/tests/pagination.tests.ts @@ -1,21 +1,22 @@ import { instantMeiliSearch } from '../src' -import { searchClient, dataset, Movies } from './assets/utils' +import { + searchClient, + dataset, + Movies, + meilisearchClient, +} from './assets/utils' describe('Pagination browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'movies' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) - await searchClient.MeiliSearchClient.index( - 'movies' - ).updateFilterableAttributes(['genres']) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'movies' - ).addDocuments(dataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const deleteTask = await meilisearchClient.deleteIndex('movies') + await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient + .index('movies') + .updateFilterableAttributes(['genres']) + const documentsTask = await meilisearchClient + .index('movies') + .addDocuments(dataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test 1 hitsPerPage', async () => { diff --git a/tests/snippets.tests.ts b/tests/snippets.tests.ts index bb44ffa2..ce63d6fa 100644 --- a/tests/snippets.tests.ts +++ b/tests/snippets.tests.ts @@ -1,20 +1,21 @@ -import { searchClient, dataset, Movies } from './assets/utils' +import { + searchClient, + dataset, + Movies, + meilisearchClient, +} from './assets/utils' describe('Snippet Browser test', () => { beforeAll(async () => { - const deleteTask = await searchClient.MeiliSearchClient.deleteIndex( - 'movies' - ) - await searchClient.MeiliSearchClient.waitForTask(deleteTask.uid) - await searchClient.MeiliSearchClient.index( - 'movies' - ).updateFilterableAttributes(['genres']) - const documentsTask = await searchClient.MeiliSearchClient.index( - 'movies' - ).addDocuments(dataset) - await searchClient.MeiliSearchClient.index('movies').waitForTask( - documentsTask.uid - ) + const deleteTask = await meilisearchClient.deleteIndex('movies') + await meilisearchClient.waitForTask(deleteTask.uid) + await meilisearchClient + .index('movies') + .updateFilterableAttributes(['genres']) + const documentsTask = await meilisearchClient + .index('movies') + .addDocuments(dataset) + await meilisearchClient.index('movies').waitForTask(documentsTask.uid) }) test('Test one attributesToSnippet on placeholder', async () => { From 05975edae5c35de2f482899a53bed232feb87f29 Mon Sep 17 00:00:00 2001 From: Charlotte Vermandel Date: Tue, 22 Mar 2022 18:40:45 +0100 Subject: [PATCH 2/3] Fix build tests --- package.json | 2 +- tests/build.tests.js | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 8d1de8cc..c0259c95 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test:build": "yarn build && jest --runInBand --selectProjects build", "test:e2e": "yarn local:env:setup && concurrently --kill-others -s first \"yarn local:env:react\" \"cypress run --env playground=local \"", "test:e2e:watch": "yarn local:env:setup && concurrently --kill-others -s first \"yarn local:env:react\" \"cypress open --env playground=local\"", - "test:all": "yarn test:e2e:all && yarn test && test:build", + "test:all": "yarn test:e2e && yarn test && yarn test:build", "cy:open": "cypress open", "playground:vue": "yarn --cwd ./playgrounds/vue && yarn --cwd ./playgrounds/vue serve", "playground:react": "yarn --cwd ./playgrounds/react && yarn --cwd ./playgrounds/react start", diff --git a/tests/build.tests.js b/tests/build.tests.js index 656a125b..1f98f270 100644 --- a/tests/build.tests.js +++ b/tests/build.tests.js @@ -10,11 +10,11 @@ const CJSclient = CJSinstantMeiliSearch('http://localhost:7700', 'masterKey') const instantsearch = require('instantsearch.js') test('UMD client should correctly created', () => { - expect(UMDclient.MeiliSearchClient.config.apiKey).toBe('masterKey') + expect(UMDclient.search).not.toBeUndefined() }) test('CJS client should correctly created', () => { - expect(CJSclient.MeiliSearchClient.config.apiKey).toBe('masterKey') + expect(CJSclient.search).not.toBeUndefined() }) test('CJS instantsearch client should correctly created', () => { @@ -23,9 +23,7 @@ test('CJS instantsearch client should correctly created', () => { searchClient: CJSclient, }) expect(CJSInstantSearch.indexName).toBe('cjs_index') - expect(CJSInstantSearch.client.MeiliSearchClient.config.apiKey).toBe( - 'masterKey' - ) + expect(CJSInstantSearch.client.search).not.toBeUndefined() }) test('UMD instantsearch client should correctly created', () => { @@ -34,7 +32,5 @@ test('UMD instantsearch client should correctly created', () => { searchClient: UMDclient, }) expect(UMDInstantSearch.indexName).toBe('umd_index') - expect(UMDInstantSearch.client.MeiliSearchClient.config.apiKey).toBe( - 'masterKey' - ) + expect(UMDInstantSearch.client.search).not.toBeUndefined() }) From fd137f2f2030a54591b553565b6905a5b1722b06 Mon Sep 17 00:00:00 2001 From: Charlotte Vermandel Date: Wed, 23 Mar 2022 11:43:48 +0100 Subject: [PATCH 3/3] Checkout readme to be the same as parent branch --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index cae8ccb5..ddd54967 100644 --- a/README.md +++ b/README.md @@ -126,8 +126,6 @@ Example: `hitsPerPage` has a value of `6` by default and can [be customized](#-hitsperpage). - - ### Finite Pagination Finite pagination is used when you want to add a numbered pagination at the bottom of your hits (for example: `< << 1, 2, 3 > >>`).