spec/frontend/search/lunr_search_spec.js (29 lines of code) (raw):

/** * @jest-environment jsdom */ import { shallowMount } from '@vue/test-utils'; import SearchPage from '../../../content/frontend/search/components/lunr_results.vue'; import { setVersionMetatag } from '../default/components/helpers/versions_helper'; describe('content/frontend/search/components/lunr_results.vue', () => { const mockVersion = '16.2'; beforeEach(() => { setVersionMetatag(mockVersion); }); it('Page title includes the site version', () => { const wrapper = shallowMount(SearchPage); const version = wrapper.find('[data-testid="version-header"]').text(); expect(version).toContain(mockVersion); }); it('Search form renders', () => { const wrapper = shallowMount(SearchPage); expect(wrapper.findComponent(SearchPage).isVisible()).toBe(true); }); it('Index fetch failure shows an error', async () => { const wrapper = shallowMount(SearchPage); const fetch = jest.fn(() => { throw new Error('error'); }); try { await fetch('/assets/javascripts/lunr-index.json'); } catch (e) { expect(wrapper.find('[data-testid="lunr-error"]').isVisible()).toBe(true); } }); });