diff --git a/packages/autocomplete-js/src/__tests__/autocomplete.test.ts b/packages/autocomplete-js/src/__tests__/autocomplete.test.ts index b39ea8ea5..06384d82a 100644 --- a/packages/autocomplete-js/src/__tests__/autocomplete.test.ts +++ b/packages/autocomplete-js/src/__tests__/autocomplete.test.ts @@ -278,7 +278,7 @@ describe('autocomplete-js', () => { }); }); - test("doesn't render noResults template on no query when openOnFocus is false", async () => { + test("doesn't render noResults template on empty query when openOnFocus is false", async () => { const container = document.createElement('div'); const panelContainer = document.createElement('div'); @@ -309,7 +309,7 @@ describe('autocomplete-js', () => { const input = container.querySelector('.aa-Input'); - fireEvent.input(input, { target: { value: '' } }); + fireEvent.focus(input); await waitFor(() => { expect( @@ -318,7 +318,47 @@ describe('autocomplete-js', () => { }); }); - test('render noResults template on query when openOnFocus is false', async () => { + test('renders noResults template on empty query when openOnFocus is true', async () => { + const container = document.createElement('div'); + const panelContainer = document.createElement('div'); + + document.body.appendChild(panelContainer); + autocomplete<{ label: string }>({ + container, + panelContainer, + openOnFocus: true, + getSources() { + return [ + { + sourceId: 'testSource', + getItems() { + return []; + }, + templates: { + item({ item }) { + return item.label; + }, + noResults() { + return 'No results template'; + }, + }, + }, + ]; + }, + }); + + const input = container.querySelector('.aa-Input'); + + fireEvent.focus(input); + + await waitFor(() => { + expect( + panelContainer.querySelector('.aa-Panel') + ).toHaveTextContent('No results template'); + }); + }); + + test('renders noResults template on query when openOnFocus is false', async () => { const container = document.createElement('div'); const panelContainer = document.createElement('div'); diff --git a/packages/autocomplete-js/src/render.tsx b/packages/autocomplete-js/src/render.tsx index 4801d17d8..0e21cea1c 100644 --- a/packages/autocomplete-js/src/render.tsx +++ b/packages/autocomplete-js/src/render.tsx @@ -109,7 +109,7 @@ export function renderPanel( )} - {items.length === 0 && source.templates.noResults && state.query ? ( + {source.templates.noResults && items.length === 0 ? (
{source.templates.noResults({ components,