@@ -46,9 +46,11 @@ afterEach(async () => {
4646} ) ;
4747
4848describe ( 'dispatchSubcommand' , ( ) => {
49- it ( 'returns false for unknown subcommand' , async ( ) => {
49+ it ( 'throws for unknown subcommand' , async ( ) => {
5050 const { dispatchSubcommand } = await import ( './cli.js' ) ;
51- expect ( await dispatchSubcommand ( [ 'node' , 'cli.js' , 'unknown' ] ) ) . toBe ( false ) ;
51+ await expect ( dispatchSubcommand ( [ 'node' , 'cli.js' , 'unknown' ] ) ) . rejects . toThrow (
52+ 'Unknown subcommand: "unknown"' ,
53+ ) ;
5254 } ) ;
5355
5456 it ( 'returns true and runs add-app-extension for matching subcommand' , async ( ) => {
@@ -109,6 +111,13 @@ describe('parseFlags', () => {
109111 expect ( parseFlags ( [ 'node' , 'cli.js' , '--app-extensions' , 'none' ] ) ) . toMatchObject ( { appExtensions : [ ] } ) ;
110112 } ) ;
111113
114+ it ( 'throws when --app-extensions combines none with extension types' , async ( ) => {
115+ const { parseFlags } = await import ( './cli.js' ) ;
116+ expect ( ( ) => parseFlags ( [ 'node' , 'cli.js' , '--app-extensions' , 'none,custom-panel' ] ) ) . toThrow (
117+ '"none" cannot be combined with other extension types.' ,
118+ ) ;
119+ } ) ;
120+
112121 it ( 'parses --app-extensions custom-panel' , async ( ) => {
113122 const { parseFlags } = await import ( './cli.js' ) ;
114123 expect ( parseFlags ( [ 'node' , 'cli.js' , '--app-extensions' , 'custom-panel' ] ) ) . toMatchObject ( {
@@ -140,7 +149,16 @@ describe('parseFlags', () => {
140149 it ( 'parses all three flags together' , async ( ) => {
141150 const { parseFlags } = await import ( './cli.js' ) ;
142151 expect (
143- parseFlags ( [ 'node' , 'cli.js' , '--project-name' , 'my-app' , '--database' , 'sqlite' , '--app-extensions' , 'none' ] ) ,
152+ parseFlags ( [
153+ 'node' ,
154+ 'cli.js' ,
155+ '--project-name' ,
156+ 'my-app' ,
157+ '--database' ,
158+ 'sqlite' ,
159+ '--app-extensions' ,
160+ 'none' ,
161+ ] ) ,
144162 ) . toEqual ( { nameOrPath : 'my-app' , database : 'sqlite' , appExtensions : [ ] } ) ;
145163 } ) ;
146164} ) ;
0 commit comments