yup-hypothesis

Create random data from a Yup schema.

Usage no npm install needed!

<script type="module">
  import yupHypothesis from 'https://cdn.skypack.dev/yup-hypothesis';
</script>

README

yup-hypothesis

CI Test Coverage Maintainability code style: prettier GitHub

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(),
});
const objExample = yh.example(TestObjectSchema);
console.log(objExample);

// -- Arrays --
const TestArraySchema = yup.array(TestObjectSchema);
const arrayExample = yh.example(TestArraySchema);
console.log(arrayExample);

// -- 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: yup.string().nullable(),
  otherwise: yup.string().oneOf(["a", "b"]),
});
const context = { t: true };
const exampleWithContext = yh.example(TestConditionalSchema, context);
console.log(exampleWithContext);

Test

npm test