auto-test-react-component
v0.0.11
Published
build basic auto test for react components
Readme
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 function | variants values | |:-----------|:------------| | PropsType.string | ["","string",undefined]| | PropsType.string.isRequired | ["","string"]| | PropsType.number | [-10,0,10,undefined]| | PropsType.number.isRequired | [-10,0,10]| | PropsType.bool| [false,true,undefined]| | PropsType.bool.isRequired| [false,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]).isRequired| [values] | PropsType.oneOfType([propTypes])| [map to all variants value for all propTypes and undefined] | PropsType.oneOfType([propTypes]).isRequired| [map to all variants value for all propTypes] | PropsType.shape([propTypes])| [map to all variants value for all propTypes properties and undefined] | PropsType.shape([propTypes]).isRequired| [map to all variants value for all propTypes properties] | PropsType.arrayOf(type)| [[type],undefined] | PropsType.arrayOf(type).isRequired| [[type]] | PropsType.element(type)| [[<div/>],undefined] | PropsType.element(type).isRequired| [[<div/>],]
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} />);
});
});
}
});
});
});