From 6a786f11feb2486cfe6f135ba76b268856f71813 Mon Sep 17 00:00:00 2001 From: Omar Abdelkader Date: Mon, 19 Jun 2023 03:10:34 -0700 Subject: [PATCH] fix(types): union SearchForFacetValuesResponse type for multipleQueries (#1460) * fix(types): union SearchForFacetValuesResponse type for multipleQueries * fix(tests): account for new type in multiple-operations test --- .../integration/multiple-operations.test.ts | 12 +++++++++++- .../src/types/MultipleQueriesResponse.ts | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/client-search/src/__tests__/integration/multiple-operations.test.ts b/packages/client-search/src/__tests__/integration/multiple-operations.test.ts index 7d8804384..d79ca8a24 100644 --- a/packages/client-search/src/__tests__/integration/multiple-operations.test.ts +++ b/packages/client-search/src/__tests__/integration/multiple-operations.test.ts @@ -1,6 +1,12 @@ import { BatchActionEnum, StrategyEnum } from '../..'; import { TestSuite } from '../../../../client-common/src/__tests__/TestSuite'; -import { MultipleBatchRequest } from '../../types'; +import { MultipleBatchRequest, MultipleQueriesResponse, SearchResponse } from '../../types'; + +function expectSearchResponse( + results: MultipleQueriesResponse['results'][number] +): asserts results is SearchResponse { + expect(results).toHaveProperty('hits'); +} const testSuite = new TestSuite('multiple_operations'); @@ -62,7 +68,9 @@ test(testSuite.testName, async () => { { strategy: StrategyEnum.None } ); + expectSearchResponse(multipleQueriesResponse1.results[0]); expect(multipleQueriesResponse1.results[0].hits).toHaveLength(2); + expectSearchResponse(multipleQueriesResponse1.results[1]); expect(multipleQueriesResponse1.results[1].hits).toHaveLength(2); const multipleQueriesResponse2 = await client.search( @@ -73,7 +81,9 @@ test(testSuite.testName, async () => { { strategy: StrategyEnum.StopIfEnoughMatches } ); + expectSearchResponse(multipleQueriesResponse2.results[0]); expect(multipleQueriesResponse2.results[0].hits).toHaveLength(2); + expectSearchResponse(multipleQueriesResponse2.results[1]); expect(multipleQueriesResponse2.results[1].hits).toHaveLength(0); const searchForFacetValuesResponse = await client.searchForFacetValues([ diff --git a/packages/client-search/src/types/MultipleQueriesResponse.ts b/packages/client-search/src/types/MultipleQueriesResponse.ts index 8b57f44e6..9e8156245 100644 --- a/packages/client-search/src/types/MultipleQueriesResponse.ts +++ b/packages/client-search/src/types/MultipleQueriesResponse.ts @@ -1,8 +1,8 @@ -import { SearchResponse } from '.'; +import { SearchForFacetValuesResponse, SearchResponse } from '.'; export type MultipleQueriesResponse = { /** * The list of results. */ - results: Array>; + results: Array | SearchForFacetValuesResponse>; };