@@ -133,7 +133,15 @@ func TestCreateCommand(t *testing.T) {
133133 Return (
134134 iostreams.SelectPromptResponse {
135135 Prompt : true ,
136- Index : 0 , // Select Node.js template
136+ Index : 0 , // Select Node.js
137+ },
138+ nil ,
139+ )
140+ cm .IO .On ("SelectPrompt" , mock .Anything , "Select an adapter:" , mock .Anything , mock .Anything ).
141+ Return (
142+ iostreams.SelectPromptResponse {
143+ Prompt : true ,
144+ Index : 0 , // Select Claude Agent SDK
137145 },
138146 nil ,
139147 )
@@ -146,9 +154,11 @@ func TestCreateCommand(t *testing.T) {
146154 ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
147155 template , err := create .ResolveTemplateURL ("slack-samples/bolt-js-starter-agent" )
148156 require .NoError (t , err )
157+ template .SetSubdir ("claude-agent-sdk" )
149158 expected := create.CreateArgs {
150159 AppName : "my-agent" ,
151160 Template : template ,
161+ Subdir : "claude-agent-sdk" ,
152162 }
153163 createClientMock .AssertCalled (t , "Create" , mock .Anything , mock .Anything , expected )
154164 // Verify that category prompt was NOT called
@@ -172,7 +182,15 @@ func TestCreateCommand(t *testing.T) {
172182 Return (
173183 iostreams.SelectPromptResponse {
174184 Prompt : true ,
175- Index : 1 , // Select Python template
185+ Index : 1 , // Select Python
186+ },
187+ nil ,
188+ )
189+ cm .IO .On ("SelectPrompt" , mock .Anything , "Select an adapter:" , mock .Anything , mock .Anything ).
190+ Return (
191+ iostreams.SelectPromptResponse {
192+ Prompt : true ,
193+ Index : 0 , // Select Claude Agent SDK
176194 },
177195 nil ,
178196 )
@@ -183,9 +201,11 @@ func TestCreateCommand(t *testing.T) {
183201 ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
184202 template , err := create .ResolveTemplateURL ("slack-samples/bolt-python-starter-agent" )
185203 require .NoError (t , err )
204+ template .SetSubdir ("claude-agent-sdk" )
186205 expected := create.CreateArgs {
187206 AppName : "my-agent-app" ,
188207 Template : template ,
208+ Subdir : "claude-agent-sdk" ,
189209 }
190210 createClientMock .AssertCalled (t , "Create" , mock .Anything , mock .Anything , expected )
191211 // Verify that category prompt was NOT called
@@ -202,7 +222,9 @@ func TestCreateCommand(t *testing.T) {
202222 cm .IO .On ("SelectPrompt" , mock .Anything , "Select a template:" , mock .Anything , mock .Anything ).
203223 Return (iostreams.SelectPromptResponse {Prompt : true , Index : 0 }, nil )
204224 cm .IO .On ("SelectPrompt" , mock .Anything , "Select a framework:" , mock .Anything , mock .Anything ).
205- Return (iostreams.SelectPromptResponse {Prompt : true , Index : 2 }, nil )
225+ Return (iostreams.SelectPromptResponse {Prompt : true , Index : 1 }, nil ) // Select Bolt for Python
226+ cm .IO .On ("SelectPrompt" , mock .Anything , "Select an adapter:" , mock .Anything , mock .Anything ).
227+ Return (iostreams.SelectPromptResponse {Prompt : true , Index : 2 }, nil ) // Select Pydantic AI
206228 createClientMock = new (CreateClientMock )
207229 createClientMock .On ("Create" , mock .Anything , mock .Anything , mock .Anything ).Return ("" , nil )
208230 CreateFunc = createClientMock .Create
@@ -312,16 +334,26 @@ func TestCreateCommand(t *testing.T) {
312334 },
313335 nil ,
314336 )
337+ cm .IO .On ("SelectPrompt" , mock .Anything , "Select an adapter:" , mock .Anything , mock .Anything ).
338+ Return (
339+ iostreams.SelectPromptResponse {
340+ Prompt : true ,
341+ Index : 0 , // Select Claude Agent SDK
342+ },
343+ nil ,
344+ )
315345 createClientMock = new (CreateClientMock )
316346 createClientMock .On ("Create" , mock .Anything , mock .Anything , mock .Anything ).Return ("" , nil )
317347 CreateFunc = createClientMock .Create
318348 },
319349 ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
320350 template , err := create .ResolveTemplateURL ("slack-samples/bolt-js-starter-agent" )
321351 require .NoError (t , err )
352+ template .SetSubdir ("claude-agent-sdk" )
322353 expected := create.CreateArgs {
323354 AppName : "my-custom-name" , // --name flag overrides
324355 Template : template ,
356+ Subdir : "claude-agent-sdk" ,
325357 }
326358 createClientMock .AssertCalled (t , "Create" , mock .Anything , mock .Anything , expected )
327359 // Verify that category prompt was NOT called (shortcut was triggered)
@@ -383,16 +415,26 @@ func TestCreateCommand(t *testing.T) {
383415 },
384416 nil ,
385417 )
418+ cm .IO .On ("SelectPrompt" , mock .Anything , "Select an adapter:" , mock .Anything , mock .Anything ).
419+ Return (
420+ iostreams.SelectPromptResponse {
421+ Prompt : true ,
422+ Index : 0 , // Select Claude Agent SDK
423+ },
424+ nil ,
425+ )
386426 createClientMock = new (CreateClientMock )
387427 createClientMock .On ("Create" , mock .Anything , mock .Anything , mock .Anything ).Return ("" , nil )
388428 CreateFunc = createClientMock .Create
389429 },
390430 ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
391431 template , err := create .ResolveTemplateURL ("slack-samples/bolt-js-starter-agent" )
392432 require .NoError (t , err )
433+ template .SetSubdir ("claude-agent-sdk" )
393434 expected := create.CreateArgs {
394435 AppName : "my-name" , // --name flag overrides "my-project" positional arg
395436 Template : template ,
437+ Subdir : "claude-agent-sdk" ,
396438 }
397439 createClientMock .AssertCalled (t , "Create" , mock .Anything , mock .Anything , expected )
398440 // Verify that category prompt was NOT called (agent shortcut was triggered)
@@ -601,12 +643,17 @@ func TestCreateCommand(t *testing.T) {
601643 "slack-samples/bolt-js-starter-template" ,
602644 "slack-samples/bolt-python-starter-template" ,
603645 "Support agent" ,
646+ "slack-samples/bolt-js-support-agent --subdir claude-agent-sdk" ,
647+ "slack-samples/bolt-js-support-agent --subdir openai-agents-sdk" ,
604648 "slack-samples/bolt-python-support-agent --subdir claude-agent-sdk" ,
605649 "slack-samples/bolt-python-support-agent --subdir openai-agents-sdk" ,
606650 "slack-samples/bolt-python-support-agent --subdir pydantic-ai" ,
607651 "Starter agent" ,
608- "slack-samples/bolt-js-starter-agent" ,
609- "slack-samples/bolt-python-starter-agent" ,
652+ "slack-samples/bolt-js-starter-agent --subdir claude-agent-sdk" ,
653+ "slack-samples/bolt-js-starter-agent --subdir openai-agents-sdk" ,
654+ "slack-samples/bolt-python-starter-agent --subdir claude-agent-sdk" ,
655+ "slack-samples/bolt-python-starter-agent --subdir openai-agents-sdk" ,
656+ "slack-samples/bolt-python-starter-agent --subdir pydantic-ai" ,
610657 "Automation apps" ,
611658 "slack-samples/bolt-js-custom-function-template" ,
612659 "slack-samples/bolt-python-custom-function-template" ,
@@ -624,12 +671,17 @@ func TestCreateCommand(t *testing.T) {
624671 },
625672 ExpectedOutputs : []string {
626673 "Support agent" ,
674+ "slack-samples/bolt-js-support-agent --subdir claude-agent-sdk" ,
675+ "slack-samples/bolt-js-support-agent --subdir openai-agents-sdk" ,
627676 "slack-samples/bolt-python-support-agent --subdir claude-agent-sdk" ,
628677 "slack-samples/bolt-python-support-agent --subdir openai-agents-sdk" ,
629678 "slack-samples/bolt-python-support-agent --subdir pydantic-ai" ,
630679 "Starter agent" ,
631- "slack-samples/bolt-js-starter-agent" ,
632- "slack-samples/bolt-python-starter-agent" ,
680+ "slack-samples/bolt-js-starter-agent --subdir claude-agent-sdk" ,
681+ "slack-samples/bolt-js-starter-agent --subdir openai-agents-sdk" ,
682+ "slack-samples/bolt-python-starter-agent --subdir claude-agent-sdk" ,
683+ "slack-samples/bolt-python-starter-agent --subdir openai-agents-sdk" ,
684+ "slack-samples/bolt-python-starter-agent --subdir pydantic-ai" ,
633685 },
634686 ExpectedAsserts : func (t * testing.T , ctx context.Context , cm * shared.ClientsMock ) {
635687 createClientMock .AssertNotCalled (t , "Create" , mock .Anything , mock .Anything , mock .Anything )
0 commit comments