diff --git a/packages/create-cli/src/lib/setup/prompts.ts b/packages/create-cli/src/lib/setup/prompts.ts index 42895daf5..15f1efa33 100644 --- a/packages/create-cli/src/lib/setup/prompts.ts +++ b/packages/create-cli/src/lib/setup/prompts.ts @@ -98,6 +98,7 @@ async function runPrompt( return select({ message: descriptor.message, choices: [...descriptor.choices], + default: descriptor.default, }); case 'checkbox': return checkbox({ diff --git a/packages/create-cli/src/lib/setup/prompts.unit.test.ts b/packages/create-cli/src/lib/setup/prompts.unit.test.ts index 65966df4c..18e940f04 100644 --- a/packages/create-cli/src/lib/setup/prompts.unit.test.ts +++ b/packages/create-cli/src/lib/setup/prompts.unit.test.ts @@ -7,9 +7,11 @@ vi.mock('@inquirer/prompts', () => ({ select: vi.fn(), })); -const { input: mockInput, checkbox: mockCheckbox } = vi.mocked( - await import('@inquirer/prompts'), -); +const { + input: mockInput, + select: mockSelect, + checkbox: mockCheckbox, +} = vi.mocked(await import('@inquirer/prompts')); describe('promptPluginOptions', () => { const descriptors: PluginPromptDescriptor[] = [ @@ -47,6 +49,30 @@ describe('promptPluginOptions', () => { expect(mockInput).toHaveBeenCalledOnce(); }); + it('should pass default to select prompt', async () => { + mockSelect.mockResolvedValue('pnpm'); + + await promptPluginOptions( + [ + { + key: 'js-packages.packageManager', + message: 'Package manager', + type: 'select', + choices: [ + { name: 'npm', value: 'npm' }, + { name: 'pnpm', value: 'pnpm' }, + ], + default: 'pnpm', + }, + ], + {}, + ); + + expect(mockSelect).toHaveBeenCalledWith( + expect.objectContaining({ default: 'pnpm' }), + ); + }); + it('should return checkbox values as array', async () => { mockCheckbox.mockResolvedValue(['json', 'csv']);