0.0.11 • Published 6 years ago

auto-test-react-component v0.0.11

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

Automatic creation of a cortege of props, based on propTypes, for the tested component

Documentation

Module "auto-test-react-component/dist/prop-types-mock" mock module for "prop-types"

mocked functionvariants values
PropsType.string"","string",undefined
PropsType.string.isRequired"","string"
PropsType.number-10,0,10,undefined
PropsType.number.isRequired-10,0,10
PropsType.boolfalse,true,undefined
PropsType.bool.isRequiredfalse,true
PropsType.func()=>{},undefined
PropsType.func.isRequired()=>{}
PropsType.array[[],undefined]
PropsType.array.isRequired[[]]
PropsType.object{},undefined
PropsType.object.isRequired{}
PropsType.oneOf(values)values,undefined
PropsType.oneOf(values).isRequiredvalues
PropsType.oneOfType(propTypes)map to all variants value for all propTypes and undefined
PropsType.oneOfType(propTypes).isRequiredmap to all variants value for all propTypes
PropsType.shape(propTypes)map to all variants value for all propTypes properties and undefined
PropsType.shape(propTypes).isRequiredmap to all variants value for all propTypes properties
PropsType.arrayOf(type)[type,undefined]
PropsType.arrayOf(type).isRequired[type]
PropsType.element(type)[\,undefined]
PropsType.element(type).isRequired[\,]

module "auto-test-react-component"

  • buildTestPropsCortege(JsxComponent): build all variants cortage props from React Component
  • buildTestSimplePropsCortege(JsxComponent): build short variants cortage props from React Component
  • findComponents(path): find components // Example: findComponents("test/*/.jsx");

config file .auto-test-react.js for rewrite options

config={
    defaultCortage:{
        string: ["","string"],
        number: [-10,0,10],
        bool: [false,true],
        func: [()=>{}],
        array: [[]],
        object: [{}],
        element: [<div/>]
    },
    shapeSimple: false // enable build cortege for shape in simpe mode
};

Example

Use "auto-test-react-component/dist/prop-types-mock" for mock "prop-types"

jest.mock("prop-types",()=>{
  return require("auto-test-react-component/dist/prop-types-mock");
});

build cortage props from React Component

import AutoTestTools from "auto-test-react-component";
let autoTestTools = new AutoTestTools();

jest.mock("prop-types",()=>{
  return require("auto-test-react-component/dist/prop-types-mock");
});

let props=autoTestTools.buildTestPropsCortege(JsxComponent);

test render component

import {shallow, mount} from "enzyme";
import AutoTestTools from "auto-test-react-component";
let autoTestTools = new AutoTestTools();

props.forEach(prop=>{
            describe(`props: ${JSON.stringify(prop)}`,()=>{
            it(`render ${JSON.stringify(prop)}`,()=>{
              let wrapper = shallow(<JsxComponent {...prop} />);
            });
          });

find and test render components

import AutoTestTools from "auto-test-react-component";
let autoTestTools = new AutoTestTools();

jest.mock("prop-types",()=>{
  return require("auto-test-react-component/dist/prop-types-mock");
});
let files=autoTestTools.findComponents("__test__/**/*.jsx");
    describe("AutoTestComponent", () => {
        files.forEach(file=>{
            let JsxComponent=require(file).default;
            let props=autoTestTools.buildTestPropsCortege(JsxComponent);
            describe(`test render ${file}`,()=>{
                {
                    props.forEach(prop=>{
                        it(`render ${JSON.stringify(prop)}`,()=>{
                            let wrapper = shallow(<JsxComponent {...prop} />);
                        });
                    });
                }
            });
        });
    });
0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago