1.3.1 • Published 11 months ago

yup-hypothesis v1.3.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

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(),
  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
1.3.1

11 months ago

1.2.0

12 months ago

1.1.0

1 year ago

1.0.0

1 year ago

1.3.0

12 months ago

1.2.1

12 months ago

0.8.1

2 years ago

0.8.0

2 years ago

0.7.2

3 years ago

0.7.1

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago

0.5.4

3 years ago

0.5.3

3 years ago

0.5.0

3 years ago

0.5.2

3 years ago

0.5.1

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago