diff --git a/craco.config.ts b/craco.config.ts index 3b02490ae5..39678e6002 100644 --- a/craco.config.ts +++ b/craco.config.ts @@ -1,4 +1,4 @@ -import type { WebpackConfigOverride } from '@craco/types' +import type { WebpackConfigOverride, JestConfigOverride } from '@craco/types' import { DefinePlugin, ProvidePlugin } from 'webpack' import type { RuleSetRule } from 'webpack' @@ -46,6 +46,18 @@ module.exports = { return webpackConfig }, }, + + jest: { + configure: (jestConfig: JestConfigOverride['jestConfig']) => { + // https://kulshekhar.github.io/ts-jest/docs/getting-started/paths-mapping/ + jestConfig.moduleNameMapper = { + ...jestConfig.moduleNameMapper, + // Allow specific import from 'src' (used to import `useCommonStores`) + '^src$': '/src/index', + } + return jestConfig + }, + }, } /** diff --git a/src/pages/Howto/Category/CategoriesSelect.tsx b/src/pages/Howto/Category/CategoriesSelect.tsx index 4072887dd9..0c8585ef09 100644 --- a/src/pages/Howto/Category/CategoriesSelect.tsx +++ b/src/pages/Howto/Category/CategoriesSelect.tsx @@ -1,7 +1,7 @@ import { observer } from 'mobx-react' import { FieldContainer } from '../../../common/Form/FieldContainer' import { Select } from 'oa-components' -import { useCommonStores } from 'src' +import { useCommonStores } from 'src/index' import type { ICategory } from 'src/models/categories.model' export const CategoriesSelect = observer( diff --git a/src/pages/Research/research.routes.test.skip.tsx b/src/pages/Research/research.routes.test.tsx similarity index 86% rename from src/pages/Research/research.routes.test.skip.tsx rename to src/pages/Research/research.routes.test.tsx index f9d81631d5..fc1cb9cec5 100644 --- a/src/pages/Research/research.routes.test.skip.tsx +++ b/src/pages/Research/research.routes.test.tsx @@ -1,5 +1,8 @@ import '@testing-library/jest-dom' import ResearchRoutes from './research.routes' +import Theme from 'src/themes/styled.theme' + +import { ThemeProvider } from '@theme-ui/core' import { render, waitFor, cleanup } from '@testing-library/react' import { MemoryRouter } from 'react-router' import { Provider } from 'mobx-react' @@ -10,7 +13,19 @@ jest.mock('src/index', () => ({ // eslint-disable-next-line @typescript-eslint/naming-convention __esModule: true, useCommonStores() { - return { stores: { userStore: { fetchAllVerifiedUsers: jest.fn() } } } + return { + stores: { + userStore: { + fetchAllVerifiedUsers: jest.fn(), + }, + aggregationsStore: { + aggregations: {}, + }, + researchCategoriesStore: { + allResearchCategories: [], + }, + }, + } }, })) @@ -36,7 +51,6 @@ jest.mock('src/stores/Research/research.store', () => ({ // eslint-disable-next-line @typescript-eslint/naming-convention __esModule: true, useResearchStore() { - console.log('using research store') return mockResearchStore }, })) @@ -48,9 +62,11 @@ describe('research.routes', () => { it('renders the research listing', async () => { const wrapper = render( - - - + + + + + , ) await waitFor( @@ -65,10 +81,12 @@ describe('research.routes', () => { describe('/research/:slug', () => { it('renders an individual research article', async () => { const wrapper = render( - - - - + + + + + + , ) @@ -91,10 +109,12 @@ describe('research.routes', () => { describe('/research/create', () => { it('rejects a request without a user present', async () => { const wrapper = render( - - - - + + + + + + , ) @@ -111,7 +131,6 @@ describe('research.routes', () => { userStore={{ user: { name: 'Jaasper' }, }} - themeStore={{}} > @@ -132,14 +151,15 @@ describe('research.routes', () => { userStore={{ user: { name: 'Jaasper', userRoles: ['beta-tester'] }, }} - themeStore={{}} tagsStore={{ setTagsCategory: jest.fn(), }} > - - - + + + + + , ) @@ -157,7 +177,7 @@ describe('research.routes', () => { describe('/research/:slug/edit', () => { it('rejects a request without a user present', async () => { const wrapper = render( - + @@ -189,7 +209,6 @@ describe('research.routes', () => { userStore={{ user: { name: 'Jaasper', userRoles: ['beta-tester'] }, }} - themeStore={{}} tagsStore={{ setTagsCategory: jest.fn(), }} @@ -209,7 +228,7 @@ describe('research.routes', () => { describe('/research/:slug/new-update', () => { it('rejects a request without a user present', async () => { const wrapper = render( - + @@ -242,7 +261,6 @@ describe('research.routes', () => { userStore={{ user: { name: 'Jaasper', userRoles: ['beta-tester'] }, }} - themeStore={{}} tagsStore={{ setTagsCategory: jest.fn(), }} @@ -262,7 +280,7 @@ describe('research.routes', () => { describe('/research/:slug/edit-update', () => { it('rejects a request without a user present', async () => { const wrapper = render( - + { userStore={{ user: { name: 'Jaasper', userRoles: ['beta-tester'] }, }} - themeStore={{}} >