56 lines
1.9 KiB
TypeScript
56 lines
1.9 KiB
TypeScript
import { Assert } from './assert'
|
|
import { TypeBox, Valibot, Zod, Compile } from '@sinclair/typemap'
|
|
|
|
describe('Compile', () => {
|
|
// ----------------------------------------------------------------
|
|
// Validator
|
|
// ----------------------------------------------------------------
|
|
it('Should compile Syntax', () => {
|
|
const C = Compile('123')
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile Syntax (Parameterized)', () => {
|
|
const C = Compile({ T: TypeBox('123') }, 'T')
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile TypeBox', () => {
|
|
const C = Compile(TypeBox('123'))
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile TypeBox (Parameterized)', () => {
|
|
const C = Compile({ T: TypeBox('123') }, 'T')
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile Valibot', () => {
|
|
const C = Compile(Valibot('123'))
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile Valibot (Parameterized)', () => {
|
|
const C = Compile({ T: Valibot('123') }, 'T')
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile Zod', () => {
|
|
const C = Compile(Zod('123'))
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
it('Should compile Zod (Parameterized)', () => {
|
|
const C = Compile({ T: Zod('123') }, 'T')
|
|
Assert.IsTrue(C.Check(123))
|
|
})
|
|
// ----------------------------------------------------------------
|
|
// Standard Schema
|
|
// ----------------------------------------------------------------
|
|
it('Should validate via Standard Schema interface (Success)', () => {
|
|
const C = Compile('string')
|
|
const R = C['~standard'].validate('hello')
|
|
// @ts-ignore
|
|
Assert.IsEqual(R.value, 'hello') // Reference spec interface is broken here, It's not for me to fix.
|
|
})
|
|
it('Should validate via Standard Schema interface (Failure)', () => {
|
|
const C = Compile('string')
|
|
const R = C['~standard'].validate(12345)
|
|
Assert.IsTrue('issues' in R)
|
|
Assert.IsTrue(R.issues!.length > 0)
|
|
})
|
|
})
|