diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts index 6ba83fdf77..3b235b9650 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts +++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts @@ -14,13 +14,6 @@ * limitations under the License. */ -jest.mock('@backstage/plugin-scaffolder-backend', () => ({ - ...jest.requireActual('@backstage/plugin-scaffolder-backend'), - fetchContents: jest.fn(), - executeShellCommand: jest.fn(), -})); -jest.mock('command-exists', () => jest.fn()); - import { getVoidLogger, UrlReader, @@ -34,18 +27,26 @@ import os from 'os'; import { PassThrough } from 'stream'; import { createFetchCookiecutterAction } from './cookiecutter'; import { join } from 'path'; -import { - fetchContents as fetchContentsMock, - executeShellCommand as executeShellCommandMock, -} from '@backstage/plugin-scaffolder-backend'; import type { ActionContext } from '@backstage/plugin-scaffolder-backend'; -import commandExistsMock from 'command-exists'; + +const executeShellCommand = jest.fn(); +const commandExists = jest.fn(); +const fetchContents = jest.fn(); + +jest.mock('@backstage/plugin-scaffolder-backend', () => ({ + ...jest.requireActual('@backstage/plugin-scaffolder-backend'), + fetchContents: (...args: any[]) => fetchContents(...args), + executeShellCommand: (...args: any[]) => executeShellCommand(...args), +})); + +jest.mock( + 'command-exists', + () => + (...args: any[]) => + commandExists(...args), +); describe('fetch:cookiecutter', () => { - const fetchContents = fetchContentsMock as jest.Mock; - const executeShellCommand = executeShellCommandMock as jest.Mock; - const commandExists = commandExistsMock as unknown as jest.Mock; - const integrations = ScmIntegrations.fromConfig( new ConfigReader({ integrations: { diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.test.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.test.ts index 7a3f3be722..433a1b7965 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.test.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/railsNewRunner.test.ts @@ -14,27 +14,27 @@ * limitations under the License. */ +const executeShellCommand = jest.fn(); +const commandExists = jest.fn(); + jest.mock('@backstage/plugin-scaffolder-backend', () => ({ - executeShellCommand: jest.fn(), + executeShellCommand: (...args: any[]) => executeShellCommand(...args), })); -jest.mock('command-exists', () => jest.fn()); +jest.mock( + 'command-exists', + () => + (...args: any[]) => + commandExists(...args), +); jest.mock('fs-extra'); import { ContainerRunner } from '@backstage/backend-common'; import fs from 'fs-extra'; - import path from 'path'; import { PassThrough } from 'stream'; - import { RailsNewRunner } from './railsNewRunner'; -import { executeShellCommand as executeShellCommandMock } from '@backstage/plugin-scaffolder-backend'; -import commandExistsMock from 'command-exists'; - describe('Rails Templater', () => { - const executeShellCommand = executeShellCommandMock as jest.Mock; - const commandExists = commandExistsMock as unknown as jest.Mock; - const containerRunner: jest.Mocked = { runContainer: jest.fn(), }; diff --git a/plugins/scaffolder-backend/src/service/router.test.ts b/plugins/scaffolder-backend/src/service/router.test.ts index 4079fd0114..49b3e358c7 100644 --- a/plugins/scaffolder-backend/src/service/router.test.ts +++ b/plugins/scaffolder-backend/src/service/router.test.ts @@ -43,10 +43,10 @@ import { StorageTaskBroker } from '../scaffolder/tasks/StorageTaskBroker'; const mockAccess = jest.fn(); -jest.doMock('fs-extra', () => ({ - access: mockAccess, +jest.mock('fs-extra', () => ({ + access: (...args: any[]) => mockAccess(...args), promises: { - access: mockAccess, + access: (...args: any[]) => mockAccess(...args), }, constants: { F_OK: 0, diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx index 4b169d9b7d..7db00f6590 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx @@ -13,16 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -jest.mock('./dom', () => ({ - ...jest.requireActual('./dom'), - useTechDocsReaderDom: jest.fn(), -})); - -jest.mock('../useReaderState', () => ({ - ...jest.requireActual('../useReaderState'), - useReaderState: jest.fn(), -})); - import React from 'react'; import { act, waitFor } from '@testing-library/react'; @@ -35,8 +25,18 @@ import { TechDocsReaderPageProvider, } from '@backstage/plugin-techdocs-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; -import { useTechDocsReaderDom } from './dom'; -import { useReaderState } from '../useReaderState'; + +const useTechDocsReaderDom = jest.fn(); +jest.mock('./dom', () => ({ + ...jest.requireActual('./dom'), + useTechDocsReaderDom: (...args: any[]) => useTechDocsReaderDom(...args), +})); +const useReaderState = jest.fn(); +jest.mock('../useReaderState', () => ({ + ...jest.requireActual('../useReaderState'), + useReaderState: (...args: any[]) => useReaderState(...args), +})); + import { TechDocsReaderPageContent } from './TechDocsReaderPageContent'; const mockEntityMetadata = { @@ -92,10 +92,8 @@ describe('', () => { it('should render techdocs page content', async () => { getEntityMetadata.mockResolvedValue(mockEntityMetadata); getTechDocsMetadata.mockResolvedValue(mockTechDocsMetadata); - (useTechDocsReaderDom as jest.Mock).mockReturnValue( - document.createElement('html'), - ); - (useReaderState as jest.Mock).mockReturnValue({ state: 'cached' }); + useTechDocsReaderDom.mockReturnValue(document.createElement('html')); + useReaderState.mockReturnValue({ state: 'cached' }); await act(async () => { const rendered = await renderInTestApp( @@ -114,10 +112,8 @@ describe('', () => { it('should not render techdocs content if entity metadata is missing', async () => { getEntityMetadata.mockResolvedValue(undefined); - (useTechDocsReaderDom as jest.Mock).mockReturnValue( - document.createElement('html'), - ); - (useReaderState as jest.Mock).mockReturnValue({ state: 'cached' }); + useTechDocsReaderDom.mockReturnValue(document.createElement('html')); + useReaderState.mockReturnValue({ state: 'cached' }); await act(async () => { const rendered = await renderInTestApp( @@ -140,10 +136,8 @@ describe('', () => { it('should render 404 if there is no dom and reader state is not found', async () => { getEntityMetadata.mockResolvedValue(mockEntityMetadata); getTechDocsMetadata.mockResolvedValue(mockTechDocsMetadata); - (useTechDocsReaderDom as jest.Mock).mockReturnValue(undefined); - (useReaderState as jest.Mock).mockReturnValue({ - state: 'CONTENT_NOT_FOUND', - }); + useTechDocsReaderDom.mockReturnValue(undefined); + useReaderState.mockReturnValue({ state: 'CONTENT_NOT_FOUND' }); await act(async () => { const rendered = await renderInTestApp(