yup-hypothesis
v1.3.1
Published
Create random data from a Yup schema.
Downloads
15
Maintainers
Readme
yup-hypothesis
Create random data from a Yup schema. You can use the project's roadmap to see the current supported features.
Install
npm i yup-hypothesis --save-dev
Usage
Simple
import * as yup from "yup";
import yh from "yup-hypothesis";
/**
* const yup = require('yup');
* const yh = require('yup-hypothesis').default;
*/
// -- Objects --
const TestObjectSchema = yup.object({
bool: yup.boolean().required(),
ref: yup.ref("bool"),
});
const objExample = yh.example(TestObjectSchema);
console.log(objExample);
// -- Arrays --
const TestArraySchema = yup.array(TestObjectSchema);
const arrayExample = yh.example(TestArraySchema);
console.log(arrayExample);
// -- Tuple --
const TestTupleSchema = yup.tuple([yup.string().label("name").required()]);
const tupleExample = yh.example(TestTupleSchema);
console.log(tupleExample);
// -- mixed, string, number, boolean, date --
const TestSchema = yup.string().required();
const anyExample = yh.example(TestSchema);
console.log(anyExample);
WARNING If strict is not set to true in your yup schema you might not get the exact type returned from the
yh.example
function.e.g.
yh.example(yup.boolean())
will return a valid value for the schema, but can be one of the following types: boolean, number or string.
With context
const TestConditionalSchema = yup.string().when("$t", {
is: true,
then: (_schema) => yup.string().nullable(),
otherwise: (_schema) => yup.string().oneOf(["a", "b"]),
});
const context = { t: true };
const exampleWithContext = yh.example(TestConditionalSchema, context);
console.log(exampleWithContext);
Examples
To learn more about what yup-hypothesis can do you can visit the tests folder on the repository.
Test
npm test