diff --git a/packages/core-components/src/components/CopyTextButton/CopyTextButton.test.tsx b/packages/core-components/src/components/CopyTextButton/CopyTextButton.test.tsx index 89c20afd35..92dcb9163e 100644 --- a/packages/core-components/src/components/CopyTextButton/CopyTextButton.test.tsx +++ b/packages/core-components/src/components/CopyTextButton/CopyTextButton.test.tsx @@ -19,7 +19,7 @@ import { act, fireEvent } from '@testing-library/react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; import { CopyTextButton } from './CopyTextButton'; import { errorApiRef } from '@backstage/core-plugin-api'; -import useCopyToClipboard from 'react-use/esm/useCopyToClipboard'; +import { default as useCopyToClipboardUnmocked } from 'react-use/esm/useCopyToClipboard'; jest.mock('popper.js', () => { const PopperJS = jest.requireActual('popper.js'); @@ -32,14 +32,10 @@ jest.mock('popper.js', () => { }; }); -jest.mock('react-use/lib/useCopyToClipboard', () => { - const original = jest.requireActual('react-use/lib/useCopyToClipboard'); - - return { - __esModule: true, - default: jest.fn().mockImplementation(original.default), - }; -}); +const useCopyToClipboard = jest.mocked(useCopyToClipboardUnmocked); +jest.mock('react-use/esm/useCopyToClipboard', () => + jest.fn().mockImplementation(() => [{ noUserInteraction: false }, jest.fn()]), +); const props = { text: 'mockText', @@ -68,9 +64,9 @@ describe('', () => { it('displays tooltip and copy the text on click', async () => { jest.useFakeTimers(); - const spy = useCopyToClipboard as jest.Mock; + const spy = useCopyToClipboard; const copy = jest.fn(); - spy.mockReturnValue([{}, copy]); + spy.mockReturnValue([{ noUserInteraction: false }, copy]); const rendered = await renderInTestApp( @@ -88,10 +84,10 @@ describe('', () => { }); it('reports copy errors', async () => { - const spy = useCopyToClipboard as jest.Mock; + const spy = useCopyToClipboard; const error = new Error('just an error'); - spy.mockReturnValue([{ error }, jest.fn()]); + spy.mockReturnValue([{ noUserInteraction: false, error }, jest.fn()]); await renderInTestApp(