diff --git a/examples/react-instantsearch-hooks/src/components/Autocomplete.tsx b/examples/react-instantsearch-hooks/src/components/Autocomplete.tsx index d742cbdfd..662e91574 100644 --- a/examples/react-instantsearch-hooks/src/components/Autocomplete.tsx +++ b/examples/react-instantsearch-hooks/src/components/Autocomplete.tsx @@ -1,10 +1,9 @@ import type { SearchClient } from 'algoliasearch/lite'; import type { BaseItem } from '@algolia/autocomplete-core'; -import type { AutocompleteOptions } from '@algolia/autocomplete-js'; +import type { AutocompleteOptions, Render } from '@algolia/autocomplete-js'; import { createElement, - ReactElement, Fragment, useEffect, useMemo, @@ -228,13 +227,7 @@ export function Autocomplete({ }); } }, - renderer: { - createElement, - Fragment, - }, - render({ children }, root) { - render(children as ReactElement, root); - }, + renderer: { createElement, Fragment, render: render as Render }, }); return () => autocompleteInstance.destroy(); diff --git a/examples/react-instantsearch/src/Autocomplete.js b/examples/react-instantsearch/src/Autocomplete.js index 8389aea2b..4f87de11d 100644 --- a/examples/react-instantsearch/src/Autocomplete.js +++ b/examples/react-instantsearch/src/Autocomplete.js @@ -14,10 +14,7 @@ export function Autocomplete(props) { const search = autocomplete({ container: containerRef.current, - renderer: { createElement, Fragment }, - render({ children }, root) { - render(children, root); - }, + renderer: { createElement, Fragment, render }, ...props, }); diff --git a/examples/vue-instantsearch/src/Autocomplete.vue b/examples/vue-instantsearch/src/Autocomplete.vue index e42159593..6491a6b8f 100644 --- a/examples/vue-instantsearch/src/Autocomplete.vue +++ b/examples/vue-instantsearch/src/Autocomplete.vue @@ -244,9 +244,7 @@ export default { renderer: { createElement, Fragment, - }, - render({ children }, root) { - render(children, root); + render, }, }); }, diff --git a/examples/vue/src/App.vue b/examples/vue/src/App.vue index 74ddc3d37..ed10e0ede 100644 --- a/examples/vue/src/App.vue +++ b/examples/vue/src/App.vue @@ -53,9 +53,7 @@ export default { renderer: { createElement, Fragment, - }, - render({ children }, root) { - render(children, root); + render, }, }); }); diff --git a/packages/autocomplete-js/src/__tests__/renderer.test.ts b/packages/autocomplete-js/src/__tests__/renderer.test.ts index 105e8f22f..a0306602d 100644 --- a/packages/autocomplete-js/src/__tests__/renderer.test.ts +++ b/packages/autocomplete-js/src/__tests__/renderer.test.ts @@ -1,4 +1,5 @@ import { warnCache } from '@algolia/autocomplete-shared'; +import { fireEvent, waitFor } from '@testing-library/dom'; import { createElement as preactCreateElement, Fragment as PreactFragment, @@ -17,6 +18,8 @@ describe('renderer', () => { }); test('defaults to the Preact implementation', () => { + expect.assertions(3); + const container = document.createElement('div'); const panelContainer = document.createElement('div'); @@ -47,19 +50,14 @@ describe('renderer', () => { expect(Fragment).toBe(PreactFragment); expect(render).toBe(preactRender); - render(createElement(Fragment, null, 'testSource'), root); - }, - renderNoResults({ createElement, Fragment, render }, root) { - expect(createElement).toBe(preactCreateElement); - expect(Fragment).toBe(PreactFragment); - expect(render).toBe(preactRender); - render(createElement(Fragment, null, 'testSource'), root); }, }); }); test('accepts a custom renderer', () => { + expect.assertions(6); + const container = document.createElement('div'); const panelContainer = document.createElement('div'); const CustomFragment = (props: any) => props.children; @@ -106,26 +104,6 @@ describe('renderer', () => { expect.any(Object) ); }, - renderNoResults( - { children, createElement, Fragment, render, html }, - root - ) { - expect(createElement).toBe(mockCreateElement); - expect(Fragment).toBe(CustomFragment); - expect(render).toBe(mockRender); - expect(mockCreateElement).toHaveBeenCalled(); - - mockCreateElement.mockClear(); - - render(html`