@@ -3,7 +3,7 @@ import * as module from 'node:module';
33import { describe , expect , it } from 'vitest' ;
44import { z } from 'zod' ;
55
6- import { $$ BooleanLike , $ $NumberLike, isZodType } from '../zod.js' ;
6+ import { $BooleanLike , $NumberLike , isZodType } from '../zod.js' ;
77
88const require = module . createRequire ( import . meta. url ) ;
99
@@ -35,38 +35,39 @@ describe('isZodType', () => {
3535
3636describe ( '$BooleanLike' , ( ) => {
3737 it ( 'should parse "true" correctly' , ( ) => {
38- expect ( $$ BooleanLike ( ) . safeParse ( 'true' ) . data ) . toBe ( true ) ;
38+ expect ( $BooleanLike . safeParse ( 'true' ) . data ) . toBe ( true ) ;
3939 } ) ;
4040 it ( 'should parse "false" correctly' , ( ) => {
41- expect ( $$ BooleanLike ( ) . safeParse ( 'false' ) . data ) . toBe ( false ) ;
41+ expect ( $BooleanLike . safeParse ( 'false' ) . data ) . toBe ( false ) ;
4242 } ) ;
4343 it ( 'should parse booleans correctly' , ( ) => {
44- expect ( $$ BooleanLike ( ) . safeParse ( true ) . data ) . toBe ( true ) ;
45- expect ( $$ BooleanLike ( ) . safeParse ( false ) . data ) . toBe ( false ) ;
44+ expect ( $BooleanLike . safeParse ( true ) . data ) . toBe ( true ) ;
45+ expect ( $BooleanLike . safeParse ( false ) . data ) . toBe ( false ) ;
4646 } ) ;
4747 it ( 'should fail to parse undefined' , ( ) => {
48- expect ( $$ BooleanLike ( ) . safeParse ( undefined ) . success ) . toBe ( false ) ;
48+ expect ( $BooleanLike . safeParse ( undefined ) . success ) . toBe ( false ) ;
4949 } ) ;
5050 it ( 'should fail to parse an empty string' , ( ) => {
51- expect ( $$ BooleanLike ( ) . safeParse ( '' ) . success ) . toBe ( false ) ;
51+ expect ( $BooleanLike . safeParse ( '' ) . success ) . toBe ( false ) ;
5252 } ) ;
5353 it ( 'should parse undefined, if set to optional' , ( ) => {
54- const result = $$ BooleanLike ( ) . optional ( ) . safeParse ( undefined ) ;
54+ const result = $BooleanLike . optional ( ) . safeParse ( undefined ) ;
5555 expect ( result . success ) . toBe ( true ) ;
5656 expect ( result . data ) . toBe ( undefined ) ;
5757 } ) ;
5858} ) ;
5959
6060describe ( '$NumberLike' , ( ) => {
6161 it ( 'should parse a number' , ( ) => {
62- expect ( $$ NumberLike ( ) . safeParse ( 1 ) . data ) . toBe ( 1 ) ;
62+ expect ( $NumberLike . safeParse ( 1 ) . data ) . toBe ( 1 ) ;
6363 } ) ;
6464 it ( 'should fail to parse non-numbers' , ( ) => {
65- expect ( $$ NumberLike ( ) . safeParse ( NaN ) . success ) . toBe ( false ) ;
66- expect ( $$ NumberLike ( ) . safeParse ( '' ) . success ) . toBe ( false ) ;
65+ expect ( $NumberLike . safeParse ( NaN ) . success ) . toBe ( false ) ;
66+ expect ( $NumberLike . safeParse ( '' ) . success ) . toBe ( false ) ;
6767 } ) ;
68- it ( 'should allow restricting the number' , ( ) => {
69- expect ( $$NumberLike ( ( base ) => base . int ( ) ) . safeParse ( '1.1' ) . success ) . toBe ( false ) ;
70- expect ( $$NumberLike ( ( base ) => base . int ( ) ) . safeParse ( '1' ) . data ) . toBe ( 1 ) ;
68+ it ( 'should allow restricting the number through a pipe' , ( ) => {
69+ const $IntLike = $NumberLike . pipe ( z . number ( ) . int ( ) ) ;
70+ expect ( $IntLike . safeParse ( '1.1' ) . success ) . toBe ( false ) ;
71+ expect ( $IntLike . safeParse ( '1' ) . data ) . toBe ( 1 ) ;
7172 } ) ;
7273} ) ;
0 commit comments