1- import { expectAssignable , expectType } from 'tsd' ;
1+ import { expectAssignable , expectError , expectType } from 'tsd' ;
22import { PackageJson } from 'type-fest' ;
3- import meow , { Result } from './index.js' ;
3+ import meow , { Result , AnyFlag } from './index.js' ;
44
55const importMeta = import . meta;
66
@@ -24,6 +24,15 @@ expectAssignable<{flags: {foo: string | undefined}}>(
2424expectAssignable < { flags : { foo : boolean | undefined } } > (
2525 meow ( { importMeta, flags : { foo : { type : 'boolean' } } } )
2626) ;
27+ expectAssignable < { flags : { foo : number [ ] | undefined } } > (
28+ meow ( { importMeta, flags : { foo : { type : 'number' , isMultiple : true } } } )
29+ ) ;
30+ expectAssignable < { flags : { foo : string [ ] | undefined } } > (
31+ meow ( { importMeta, flags : { foo : { type : 'string' , isMultiple : true } } } )
32+ ) ;
33+ expectAssignable < { flags : { foo : boolean [ ] | undefined } } > (
34+ meow ( { importMeta, flags : { foo : { type : 'boolean' , isMultiple : true } } } )
35+ ) ;
2736expectType < Result < never > > ( meow ( { importMeta, description : 'foo' } ) ) ;
2837expectType < Result < never > > ( meow ( { importMeta, description : false } ) ) ;
2938expectType < Result < never > > ( meow ( { importMeta, help : 'foo' } ) ) ;
@@ -79,3 +88,19 @@ const options = {
7988} as const ;
8089
8190meow ( '' , options ) ;
91+
92+ expectAssignable < AnyFlag > ( { type : 'string' , default : 'cat' } ) ;
93+ expectAssignable < AnyFlag > ( { type : 'number' , default : 42 } ) ;
94+ expectAssignable < AnyFlag > ( { type : 'boolean' , default : true } ) ;
95+
96+ expectAssignable < AnyFlag > ( { type : 'string' , default : undefined } ) ;
97+ expectAssignable < AnyFlag > ( { type : 'number' , default : undefined } ) ;
98+ expectAssignable < AnyFlag > ( { type : 'boolean' , default : undefined } ) ;
99+
100+ expectAssignable < AnyFlag > ( { type : 'string' , isMultiple : true , default : [ 'cat' ] } ) ;
101+ expectAssignable < AnyFlag > ( { type : 'number' , isMultiple : true , default : [ 42 ] } ) ;
102+ expectAssignable < AnyFlag > ( { type : 'boolean' , isMultiple : true , default : [ false ] } ) ;
103+
104+ expectError < AnyFlag > ( { type : 'string' , isMultiple : true , default : 'cat' } ) ;
105+ expectError < AnyFlag > ( { type : 'number' , isMultiple : true , default : 42 } ) ;
106+ expectError < AnyFlag > ( { type : 'boolean' , isMultiple : true , default : false } ) ;
0 commit comments