Giter Site home page Giter Site logo

react-testing-basic's Introduction

React Testing Basic

Dependencies to be installed:

yarn add enzyme @types/enzyme react-test-renderer \
enzyme-adapter-react-16 @types/enzyme-adapter-react-16 jest \
@types/jest ts-jest enzyme-to-json --dev

Configure Jest

Add the following jest.config.js file to the root of your project:

module.exports = {
  roots: ['<rootDir>/src'],
  testMatch: [
    '**/__tests__/**/*.+(ts|tsx|js)',
    '**/?(*.)+(spec|test).+(ts|tsx|js)'
  ],
  transform: {
    '^.+\\.(ts|tsx)$': 'ts-jest'
  },
  // Setup Enzyme
  snapshotSerializers: ['enzyme-to-json/serializer'],
  setupFilesAfterEnv: ['<rootDir>/src/setupEnzyme.ts'],
  moduleNameMapper: {
    '\\css|less|sass|scss$': 'identity-obj-proxy'
  }
}

Enzyme configuration

Create src/setupEnzyme.ts file.

 import { configure } from 'enzyme';
 import EnzymeAdapter from 'enzyme-adapter-react-16';
 configure({ adapter: new EnzymeAdapter() });
Usage

create a same file with *.test.js in component directory like: NavigationItems.test.js

import React from 'react';
import { shallow } from 'enzyme';


// Import Components
import NavigationItems from './NavigationItems';
import NavigationItem from './NavigationItem/NavigationItem';

const clickFn: any = jest.fn();

// Start writing test
describe('First Test', () => {
  
  it('should render two <NavigationItem /> element if not authenicated', () => {
     const component = shallow(<DarkToggler isDark={false} onClick={clickFn} />)
     component.find('input#checkbox').simulate('click')
     expect(component).toMatchSnapshot()
  })
  
});

react-testing-basic's People

Contributors

lifeeric avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.