Can't run jest tests on my react native application [React Native + TypeScript]

Viewed 325

I'm trying to run tests on this project for the first time, but i having some problems with the modules, thats the error i'm having:

FAIL  src/components/text/index.test.tsx
  ● Test suite failed to run

    Cannot find module 'react' from 'src/components/text/index.test.tsx'

    > 1 | import React from 'react'
        | ^
      2 | import { render } from '@testing-library/react-native'
      3 | import { ZzText } from './index'
      4 | 

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:307:11)
      at Object.<anonymous> (src/components/text/index.test.tsx:1:1)

Test Suites: 2 failed, 2 total
Tests:       0 total
Snapshots:   0 total
Time:        1.346 s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

And these are my jest config files:

package.json

"jest": {
    "moduleFileExtensions": [
      "js",
      "jsx",
      "ts",
      "tsx"
    ],
    "moduleDirectories": [
      "node_modules"
    ]
  },

babel.config.json

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "isolatedModules": true,
    "jsx": "react",
    "lib": ["es6"],
    "moduleResolution": "node",
    "noEmit": true,
    "strict": true,
    "target": "esnext",
    "declaration": true,
    "skipLibCheck": true
  },
  "exclude": [
    "node_modules",
    "babel.config.json",
    "metro.config.js",
    "jest.config.ts",
    "example"
  ],
  "include": ["src/**/*"]
}

jest.config.ts

import type { Config } from '@jest/types'

const config: Config.InitialOptions = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  transform: {
    '^.+\\.(ts|tsx|js|jsx)?$': 'babel-jest',
  },
  roots: ['<rootDir>/src'],
}

export default config

This the test i'm trying to run, i don't if i'm doing it right, i'm starting now with tests (it's a simple text component):

import React from 'react'
import { render } from '@testing-library/react-native'
import { ZzText } from './index'

describe('', () => {
  test('Should start with initial state', () => {
    const { getByTestId } = render(<ZzText testID='firstTest' />)
    const teste = getByTestId('firstTest')
    console.log(teste)
  })
})
0 Answers
Related