0.1.3 • Published 2 months ago

valimock v0.1.3

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

🃏 Valimock

npm version CI status

Generate mock data for Valibot schemas using Faker


📦 Installation

npm install --save-dev valimock @faker-js/faker
yarn add -D valimock @faker-js/faker

🔧 Usage

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.

API Coverage

!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.

ImplementedIncompleteNot ImplementedUnsupported
Symbol

Schemas

AnyArrayBigintBlobBooleanDateEnum
InstanceIntersectLiteralMapNaNNeverNonNullable
NonNullishNonOptionalNullNullableNullishNumberObject
OptionalPicklistRecordRecursiveSetSpecialString
SymbolTupleUndefinedUnionUnknownVariantVoid

Validations

StringNumberBigintBooleanDateArrayTupleUnionMapSetObjectBlob
bytes
cuid2
custom
customAsync
email
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

📣 Acknowledgements

Valimock's implementation is based on @anatine/zod-mock

🥂 License

Released under the MIT license.

0.1.3

2 months ago

0.1.2

4 months ago

0.1.1

6 months ago

0.1.0

6 months ago

0.0.1

7 months ago

0.0.0

7 months ago