diff --git a/jest.config.js b/jest.config.js index ceddbfc..e15f237 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,6 +2,9 @@ module.exports = { preset: 'ts-jest', testEnvironment: 'jest-environment-jsdom', setupFilesAfterEnv: ['/jest.setup.js'], + moduleNameMapper: { + '^@test-utils': '/test-utils', + }, transform: { '^.+\\.ts?$': 'ts-jest', }, diff --git a/src/Welcome/Welcome.test.tsx b/src/Welcome/Welcome.test.tsx index 2572fda..e51803a 100644 --- a/src/Welcome/Welcome.test.tsx +++ b/src/Welcome/Welcome.test.tsx @@ -1,4 +1,5 @@ -import { render, screen } from '@testing-library/react'; +import { screen } from '@testing-library/react'; +import { render } from '@test-utils'; import { Welcome } from './Welcome'; it('displays welcome text', () => { diff --git a/test-utils/index.ts b/test-utils/index.ts new file mode 100644 index 0000000..5392708 --- /dev/null +++ b/test-utils/index.ts @@ -0,0 +1 @@ +export { render } from './render'; diff --git a/test-utils/render.tsx b/test-utils/render.tsx new file mode 100644 index 0000000..dd40ed5 --- /dev/null +++ b/test-utils/render.tsx @@ -0,0 +1,11 @@ +import { render as testingLibraryRender } from '@testing-library/react'; +import { ThemeProvider } from '../src/ThemeProvider'; + +export function render(children: React.ReactNode) { + const { rerender, ...others } = testingLibraryRender({children}); + return { + rerender: (ui: React.ReactElement>) => + rerender({ui}), + ...others, + }; +} diff --git a/tsconfig.json b/tsconfig.json index 3d0a51a..75504a7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,8 +14,11 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "react-jsx", + "paths": { + "@test-utils": ["./test-utils"] + } }, - "include": ["src"], + "include": ["src", "test-utils"], "references": [{ "path": "./tsconfig.node.json" }] }