This is a first pass at what the API for Chaos could look like. Suggestions welcome!
<Chaos
level={5}
message="a custom error message"
shallow
depth={3}
statelessOnly
statefulOnly
monkeys
disasters={[
"network",
"language",
"time",
"location",
"machine"
]}
>
<SomeComponent />
<AnotherComponent />
</Chaos>
level
This is a number (1-10) that allows you to set the likelihood of chaos occurring.
message
This is a custom error message you can pass in that will be displayed as the message when an error is triggered.
shallow & depth (Children & Nested Components)
Ideally, one should be able to wrap a single component, a component with children, or a component with grandchildren (possibly even their entire application), with Chaos.
It could have a depth prop that allows you to explicitly set the number of grandchildren to apply chaos to. It could also recursively apply chaos to all grandchildren unless you pass in a shallow prop, in which case chaos would only be applied to the immediate children.
statelessOnly & statefulOnly
These props would allow you to only apply potential chaos to stateless components or stateful components.
monkeys
This will be a special surprise. 🐒
disasters
This will allow you to specify the types of chaos that could occur. I think there will be a lot of new types in the future, but off the top of my head I thought about those listed. I think there's also potential for React-specific types of chaos, such as causing random re-renders and such, but only insofar that it mimics chaos that could actually occur in the real world.
This is a first pass at what the API for
Chaoscould look like. Suggestions welcome!levelThis is a number (1-10) that allows you to set the likelihood of chaos occurring.
messageThis is a custom error message you can pass in that will be displayed as the message when an error is triggered.
shallow&depth(Children & Nested Components)Ideally, one should be able to wrap a single component, a component with children, or a component with grandchildren (possibly even their entire application), with
Chaos.It could have a
depthprop that allows you to explicitly set the number of grandchildren to apply chaos to. It could also recursively apply chaos to all grandchildren unless you pass in ashallowprop, in which case chaos would only be applied to the immediate children.statelessOnly&statefulOnlyThese props would allow you to only apply potential chaos to stateless components or stateful components.
monkeysThis will be a special surprise. 🐒
disastersThis will allow you to specify the types of chaos that could occur. I think there will be a lot of new types in the future, but off the top of my head I thought about those listed. I think there's also potential for React-specific types of chaos, such as causing random re-renders and such, but only insofar that it mimics chaos that could actually occur in the real world.