diff --git a/tests/__utils__/mocks.ts b/tests/__utils__/mocks.ts
index 00f5efaca..b3f7271d4 100644
--- a/tests/__utils__/mocks.ts
+++ b/tests/__utils__/mocks.ts
@@ -63,4 +63,19 @@ export function mockAnswersHooks({
mockedUtils && mockAnswersUtils(mockedUtils);
mockedState && mockAnswersState(mockedState);
mockedActions && mockSearchActions(mockedActions);
-}
\ No newline at end of file
+}
+
+const originalConsoleError = console.error.bind(console.error);
+
+export function ignoreLinkClickErrors() {
+ jest.spyOn(global.console, 'error')
+ .mockImplementation((msg, ...params) => {
+ /**
+ * Suppress errors about 'navigation' not being defined in jsdom when
+ * clicking on links.
+ */
+ if (!msg.toString().match(/Error: Not implemented: navigation/)) {
+ originalConsoleError(msg, ...params);
+ }
+ });
+};
diff --git a/tests/components/DirectAnswer.test.tsx b/tests/components/DirectAnswer.test.tsx
index 0d40e95aa..dc35ff9d5 100644
--- a/tests/components/DirectAnswer.test.tsx
+++ b/tests/components/DirectAnswer.test.tsx
@@ -2,7 +2,7 @@ import { render, screen } from '@testing-library/react';
import { DirectAnswerState } from '@yext/search-headless-react';
import { useAnalytics } from '../../src/hooks/useAnalytics';
import { DirectAnswer } from '../../src/components/DirectAnswer';
-import { RecursivePartial, mockAnswersState } from '../__utils__/mocks';
+import { RecursivePartial, ignoreLinkClickErrors, mockAnswersState } from '../__utils__/mocks';
import { fieldValueDAState, featuredSnippetDAState } from '../__fixtures__/data/directanswers';
import userEvent from '@testing-library/user-event';
import React from 'react';
@@ -35,6 +35,7 @@ describe('Featured snippet direct answer analytics', () => {
async function runAnalyticsTestSuite() {
it('reports link click analytics', async () => {
render();
+ ignoreLinkClickErrors();
const link = screen.getByRole('link');
await userEvent.click(link);
expect(useAnalytics()?.report).toHaveBeenCalledTimes(1);
diff --git a/tests/components/FeaturedSnippetDirectAnswer.test.tsx b/tests/components/FeaturedSnippetDirectAnswer.test.tsx
index b7240f239..bee24acf4 100644
--- a/tests/components/FeaturedSnippetDirectAnswer.test.tsx
+++ b/tests/components/FeaturedSnippetDirectAnswer.test.tsx
@@ -4,6 +4,7 @@ import { FeaturedSnippetDirectAnswer } from '../../src/components/FeaturedSnippe
import { featuredSnippetDAState } from '../__fixtures__/data/directanswers';
import userEvent from '@testing-library/user-event';
import React from 'react';
+import { ignoreLinkClickErrors } from '../__utils__/mocks';
const featuredSnippetDAResult = featuredSnippetDAState.result as FeaturedSnippetDirectAnswerType;
@@ -39,6 +40,7 @@ describe('FeaturedSnippet direct answer', () => {
result={featuredSnippetDAResult}
readMoreClickHandler={readMoreClickHandler}
/>);
+ ignoreLinkClickErrors();
await userEvent.click(screen.getByRole('link', { name: '[relatedResult.name]' }));
expect(readMoreClickHandler).toHaveBeenCalledTimes(1);
});
diff --git a/tests/components/FieldValueDirectAnswer.test.tsx b/tests/components/FieldValueDirectAnswer.test.tsx
index 940689a74..b7327c399 100644
--- a/tests/components/FieldValueDirectAnswer.test.tsx
+++ b/tests/components/FieldValueDirectAnswer.test.tsx
@@ -10,17 +10,18 @@ import userEvent from '@testing-library/user-event';
import { fieldValueDAState } from '../__fixtures__/data/directanswers';
import { UnknownFieldTypeDisplayComponent } from '../../src/components/DirectAnswer';
import React from 'react';
+import { ignoreLinkClickErrors } from '../__utils__/mocks';
const fieldValueDAResult = fieldValueDAState.result as FieldValueDirectAnswerType;
describe('FieldValue direct answer', () => {
-
it('executes viewDetailsClickHandler when click on "View Details" link', async () => {
const viewDetailsClickHandler = jest.fn();
render(
);
+ ignoreLinkClickErrors();
const viewDetailsLink = screen.getByRole('link', { name: 'View Details' });
await userEvent.click(viewDetailsLink);