npm install --save-dev valimock @faker-js/faker
yarn add -D valimock @faker-js/faker
Import and optionally configure a new instance of the Valimock
class, then pass along your valibot
schema to mock()
, that's it!
import { parse, array, union, string, url, number, maxValue } from "valibot";
import { Valimock } from "valimock";
describe(`example test`, () => {
it(`should generate valid mock data`, () => {
const schema = array(union([string([url()]), number([maxValue(20)])]));
const result = new Valimock().mock(schema);
expect(parse(schema, result)).toStrictEqual(result);
});
});
Note
For async schemas, you will need to use parseAsync()
. Be aware that async schemas generate a Promise
and may need to be await
'ed depending on usage.
Please see the __tests__
folder for more usage examples of different schema types.
Warning
At present, not all of valibot
's API is fully covered by valimock
, however, any unimplemented schema type can be handled by a user-supplied map via the customMocks
configuration option. The schema's type
proerty is used as the property key for this map.
Implemented | Incomplete | Not Implemented | Unsupported | |
---|---|---|---|---|
Symbol | β | β | β | β |
Any | Array | Bigint | Blob | Boolean | Date | Enum |
---|---|---|---|---|---|---|
β | β | β | β | β | β | β |
Instance | Intersect | Literal | Map | NaN | Never | NonNullable |
β | β | β | β | β | β | β |
NonNullish | NonOptional | Null | Nullable | Nullish | Number | Object |
β | β | β | β | β | β | β |
Optional | Picklist | Record | Recursive | Set | Special | String |
β | β | β | β | β | β | β |
Symbol | Tuple | Undefined | Union | Unknown | Variant | Void |
β | β | β | β | β | β | β |
String | Number | Bigint | Boolean | Date | Array | Tuple | Union | Map | Set | Object | Blob | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
bytes | β | β | β | β | β | β | β | β | β | β | β | β |
cuid2 | β | β | β | β | β | β | β | β | β | β | β | β |
custom | β | β | β | β | β | β | β | β | β | β | β | β |
customAsync | β | β | β | β | β | β | β | β | β | β | β | β |
β | β | β | β | β | β | β | β | β | β | β | β | |
emoji | β | β | β | β | β | β | β | β | β | β | β | β |
endsWith | β | β | β | β | β | β | β | β | β | β | β | β |
excludes | β | β | β | β | β | β | β | β | β | β | β | β |
finite | β | β | β | β | β | β | β | β | β | β | β | β |
imei | β | β | β | β | β | β | β | β | β | β | β | β |
includes | β | β | β | β | β | β | β | β | β | β | β | β |
integer | β | β | β | β | β | β | β | β | β | β | β | β |
ip | β | β | β | β | β | β | β | β | β | β | β | β |
ipv4 | β | β | β | β | β | β | β | β | β | β | β | β |
ipv6 | β | β | β | β | β | β | β | β | β | β | β | β |
isoDate | β | β | β | β | β | β | β | β | β | β | β | β |
isoDateTime | β | β | β | β | β | β | β | β | β | β | β | β |
isoTime | β | β | β | β | β | β | β | β | β | β | β | β |
isoTimeSecond | β | β | β | β | β | β | β | β | β | β | β | β |
isoTimestamp | β | β | β | β | β | β | β | β | β | β | β | β |
isoWeek | β | β | β | β | β | β | β | β | β | β | β | β |
length | β | β | β | β | β | β | β | β | β | β | β | β |
mexBytes | β | β | β | β | β | β | β | β | β | β | β | β |
maxLength | β | β | β | β | β | β | β | β | β | β | β | β |
maxSize | β | β | β | β | β | β | β | β | β | β | β | β |
maxValue | β | β | β | β | β | β | β | β | β | β | β | β |
mimeType | β | β | β | β | β | β | β | β | β | β | β | β |
minBytes | β | β | β | β | β | β | β | β | β | β | β | β |
minLength | β | β | β | β | β | β | β | β | β | β | β | β |
minSize | β | β | β | β | β | β | β | β | β | β | β | β |
minValue | β | β | β | β | β | β | β | β | β | β | β | β |
multipleOf | β | β | β | β | β | β | β | β | β | β | β | β |
notBytes | β | β | β | β | β | β | β | β | β | β | β | β |
notLength | β | β | β | β | β | β | β | β | β | β | β | β |
notSize | β | β | β | β | β | β | β | β | β | β | β | β |
notValue | β | β | β | β | β | β | β | β | β | β | β | β |
regex | β | β | β | β | β | β | β | β | β | β | β | β |
safeInteger | β | β | β | β | β | β | β | β | β | β | β | β |
size | β | β | β | β | β | β | β | β | β | β | β | β |
startsWith | β | β | β | β | β | β | β | β | β | β | β | β |
ulid | β | β | β | β | β | β | β | β | β | β | β | β |
url | β | β | β | β | β | β | β | β | β | β | β | β |
uuid | β | β | β | β | β | β | β | β | β | β | β | β |
value | β | β | β | β | β | β | β | β | β | β | β | β |
Valimock's implementation is based on @anatine/zod-mock
Released under the MIT license.