2.2.0 • Published 8 years ago

react-rosie v2.2.0

Weekly downloads
7
License
MIT
Repository
github
Last release
8 years ago

React-Rosie

React-Rosie takes the power of RosieJs and adds some specific upgrades for React. The upgrades allow you to quickly generate Factories from your component's PropTypes.

// factories/user.js
import { dateString, dateStringGenerator } from 'utils/PropTypes';
import Factory from 'react-rosie';

export default new Factory()
  .validator(dateString, dateStringGenerator)
  .props({
    date: dateString.isRequired,
    username: React.PropTypes.string.isRequired,
    displayName: React.PropTypes.string
   });

validator and props are both new methods added onto Rosie's Factory class.

Supported Generators

  • Any
  • Array
  • Bool
  • Func
  • Node
  • Number
  • Object
  • String

  • ArrayOf

  • InstanceOf
  • ObjectOf
  • OneOf
  • OneOfType
  • Shape

API

Factory.setUpReact( React )

React-Rosie needs your React instance so it can decode and apply generators for each of Reacts standard PropTypes. This function needs to be called before part of your code uses React PropTypes. We recommend that you do this first thing in your test setup.

instance.validator( validatorFn, generator_function )

The validatorFn should be the same function that is passed in as your components custom PropType validator.

note: you must register your custom validator before passing it to the props method.

instance.props( PropTypesDictionary, options )

React-Rosie will match up React's standard PropTypes with a generator and automatically setup your factory.

If the prop isRequired then that property will be set as an attribute that will always be included in the factory unless overridden.

If the prop is not required then it'll be an optional property. Optional properties will be undefined unless explicitly included by passing the option of _PROPNAME: true.

Options

Options use a nested format that can be as deep or as shallow as you'd like. Options can be used to control things like likely-hood of array length.

array
  • weight - key of length, value of decimal percentage of likely-hood

    EXAMPLE: { 0: .3, 1: .4, 2: .1, 3: .1, 4: .1 }

func
  • stub - function you'd like to have ran
number
  • min - Min (inclusive) of the random value range
  • max - Max (exclusive) of the random value range
string
  • stringLength - length of string
arrayOf
  • weight - key of length, value of decimal percentage of likely-hood

    EXAMPLE: { 0: .3, 1: .4, 2: .1, 3: .1, 4: .1 }

instanceOf
  • args - Arguments passed to the constructor
objectOf
  • keys - <Array > Keys of the object
  • opts - Options of the type
shape
      • another full Options object for the nested shape

Example

import User from './factories/user';

// with displayName
const user1 = User.build({}, { _displayName: true });

// without displayName
const user2 = User.build();
2.2.0

8 years ago

2.1.0

8 years ago

2.0.0

8 years ago

1.0.0

8 years ago

0.7.2

8 years ago

0.7.1

8 years ago

0.7.0

8 years ago