|
1 |
| -import {expectType} from 'tsd'; |
| 1 | +import {expectAssignable, expectType} from 'tsd'; |
2 | 2 | import {PackageJson} from 'type-fest';
|
3 | 3 | import meow = require('.');
|
4 | 4 | import {Result} from '.';
|
5 | 5 |
|
6 |
| -expectType<Result>(meow('Help text')); |
7 |
| -expectType<Result>(meow('Help text', {hardRejection: false})); |
8 |
| -expectType<Result>( |
9 |
| - meow({ |
10 |
| - flags: { |
11 |
| - unicorn: { |
12 |
| - type: 'boolean', |
13 |
| - alias: 'u' |
14 |
| - }, |
15 |
| - fooBar: { |
16 |
| - type: 'string', |
17 |
| - default: 'foo' |
18 |
| - } |
19 |
| - } |
20 |
| - }) |
| 6 | +expectType<Result<never>>(meow('Help text')); |
| 7 | +expectType<Result<never>>(meow('Help text', {hardRejection: false})); |
| 8 | +expectAssignable<{flags: {foo: number}}>( |
| 9 | + meow({flags: {foo: {type: 'number'}}}) |
21 | 10 | );
|
22 |
| -expectType<Result>(meow({description: 'foo'})); |
23 |
| -expectType<Result>(meow({description: false})); |
24 |
| -expectType<Result>(meow({help: 'foo'})); |
25 |
| -expectType<Result>(meow({help: false})); |
26 |
| -expectType<Result>(meow({version: 'foo'})); |
27 |
| -expectType<Result>(meow({version: false})); |
28 |
| -expectType<Result>(meow({autoHelp: false})); |
29 |
| -expectType<Result>(meow({autoVersion: false})); |
30 |
| -expectType<Result>(meow({pkg: {foo: 'bar'}})); |
31 |
| -expectType<Result>(meow({argv: ['foo', 'bar']})); |
32 |
| -expectType<Result>(meow({inferType: true})); |
33 |
| -expectType<Result>(meow({booleanDefault: true})); |
34 |
| -expectType<Result>(meow({booleanDefault: null})); |
35 |
| -expectType<Result>(meow({booleanDefault: undefined})); |
36 |
| -expectType<Result>(meow({hardRejection: false})); |
| 11 | +expectAssignable<{flags: {foo: string}}>( |
| 12 | + meow({flags: {foo: {type: 'string'}}}) |
| 13 | +); |
| 14 | +expectAssignable<{flags: {foo: boolean}}>( |
| 15 | + meow({flags: {foo: {type: 'boolean'}}}) |
| 16 | +); |
| 17 | +expectType<Result<never>>(meow({description: 'foo'})); |
| 18 | +expectType<Result<never>>(meow({description: false})); |
| 19 | +expectType<Result<never>>(meow({help: 'foo'})); |
| 20 | +expectType<Result<never>>(meow({help: false})); |
| 21 | +expectType<Result<never>>(meow({version: 'foo'})); |
| 22 | +expectType<Result<never>>(meow({version: false})); |
| 23 | +expectType<Result<never>>(meow({autoHelp: false})); |
| 24 | +expectType<Result<never>>(meow({autoVersion: false})); |
| 25 | +expectType<Result<never>>(meow({pkg: {foo: 'bar'}})); |
| 26 | +expectType<Result<never>>(meow({argv: ['foo', 'bar']})); |
| 27 | +expectType<Result<never>>(meow({inferType: true})); |
| 28 | +expectType<Result<never>>(meow({booleanDefault: true})); |
| 29 | +expectType<Result<never>>(meow({booleanDefault: null})); |
| 30 | +expectType<Result<never>>(meow({booleanDefault: undefined})); |
| 31 | +expectType<Result<never>>(meow({hardRejection: false})); |
37 | 32 |
|
38 |
| -const result = meow('Help text'); |
| 33 | +const result = meow('Help text', { |
| 34 | + flags: { |
| 35 | + foo: {type: 'boolean', alias: 'f'}, |
| 36 | + 'foo-bar': {type: 'number'} |
| 37 | + }} |
| 38 | +); |
39 | 39 |
|
40 | 40 | expectType<string[]>(result.input);
|
41 |
| -expectType<{[name: string]: unknown}>(result.flags); |
42 |
| -expectType<{[name: string]: unknown}>(result.unnormalizedFlags); |
43 | 41 | expectType<PackageJson>(result.pkg);
|
44 | 42 | expectType<string>(result.help);
|
45 | 43 |
|
| 44 | +expectType<boolean>(result.flags.foo); |
| 45 | +expectType<boolean>(result.unnormalizedFlags.foo); |
| 46 | +expectType<unknown>(result.unnormalizedFlags.f); |
| 47 | +expectType<number>(result.unnormalizedFlags['foo-bar']); |
| 48 | +expectType<unknown>(result.flags.fooBar); |
| 49 | + |
46 | 50 | result.showHelp();
|
47 | 51 | result.showHelp(1);
|
48 | 52 | result.showVersion();
|
0 commit comments