@hubspot/cli 8.1.0-beta.0 → 8.1.0-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/api/migrate.js +8 -4
  2. package/bin/cli.js +12 -6
  3. package/commands/account/auth.js +7 -7
  4. package/commands/account/clean.js +7 -6
  5. package/commands/account/createOverride.js +10 -7
  6. package/commands/account/info.js +36 -17
  7. package/commands/account/link.d.ts +4 -0
  8. package/commands/account/link.js +89 -0
  9. package/commands/account/list.js +32 -76
  10. package/commands/account/remove.js +4 -3
  11. package/commands/account/removeOverride.js +11 -10
  12. package/commands/account/rename.js +5 -6
  13. package/commands/account/unlink.d.ts +4 -0
  14. package/commands/account/unlink.js +70 -0
  15. package/commands/account/use.js +75 -6
  16. package/commands/account.js +4 -0
  17. package/commands/api.d.ts +10 -0
  18. package/commands/api.js +164 -0
  19. package/commands/app/migrate.js +13 -13
  20. package/commands/app/secret/add.js +6 -7
  21. package/commands/app/secret/delete.js +9 -10
  22. package/commands/app/secret/list.js +6 -7
  23. package/commands/app/secret/update.js +8 -9
  24. package/commands/auth.js +19 -15
  25. package/commands/cms/app/create.js +9 -5
  26. package/commands/cms/convertFields.js +8 -8
  27. package/commands/cms/delete.js +2 -3
  28. package/commands/cms/fetch.js +7 -7
  29. package/commands/cms/function/create.js +9 -5
  30. package/commands/cms/function/deploy.js +2 -3
  31. package/commands/cms/function/list.js +11 -7
  32. package/commands/cms/function/logs.js +17 -22
  33. package/commands/cms/function/server.js +2 -3
  34. package/commands/cms/getReactModule.js +7 -8
  35. package/commands/cms/lighthouseScore.js +25 -24
  36. package/commands/cms/lint.js +4 -5
  37. package/commands/cms/list.js +5 -6
  38. package/commands/cms/module/create.js +9 -5
  39. package/commands/cms/module/marketplace-validate.js +7 -8
  40. package/commands/cms/mv.js +2 -3
  41. package/commands/cms/template/create.js +10 -6
  42. package/commands/cms/theme/create.js +5 -5
  43. package/commands/cms/theme/generate-selectors.js +5 -4
  44. package/commands/cms/theme/marketplace-validate.js +8 -9
  45. package/commands/cms/theme/preview.js +23 -70
  46. package/commands/cms/upload.js +15 -12
  47. package/commands/cms/watch.d.ts +0 -1
  48. package/commands/cms/watch.js +6 -12
  49. package/commands/cms/webpack/create.js +5 -5
  50. package/commands/completion.js +3 -5
  51. package/commands/config/migrate.js +6 -7
  52. package/commands/config/set.js +5 -6
  53. package/commands/customObject/create.js +4 -5
  54. package/commands/customObject/createSchema.js +4 -5
  55. package/commands/customObject/deleteSchema.js +4 -5
  56. package/commands/customObject/fetchAllSchemas.js +2 -3
  57. package/commands/customObject/fetchSchema.js +2 -3
  58. package/commands/customObject/listSchemas.js +2 -3
  59. package/commands/customObject/updateSchema.js +4 -5
  60. package/commands/doctor.js +8 -8
  61. package/commands/feedback.js +7 -5
  62. package/commands/filemanager/fetch.js +5 -6
  63. package/commands/filemanager/upload.js +5 -5
  64. package/commands/getStarted.js +17 -19
  65. package/commands/hubdb/clear.js +6 -3
  66. package/commands/hubdb/create.js +4 -5
  67. package/commands/hubdb/delete.js +9 -6
  68. package/commands/hubdb/fetch.js +6 -3
  69. package/commands/hubdb/list.js +16 -14
  70. package/commands/init.js +15 -14
  71. package/commands/mcp/setup.js +5 -14
  72. package/commands/mcp/start.js +2 -4
  73. package/commands/open.js +4 -5
  74. package/commands/project/add.js +13 -8
  75. package/commands/project/appInstallStatus.d.ts +4 -0
  76. package/commands/project/appInstallStatus.js +132 -0
  77. package/commands/project/create.js +28 -17
  78. package/commands/project/delete.d.ts +7 -0
  79. package/commands/project/delete.js +74 -0
  80. package/commands/project/deploy.js +39 -36
  81. package/commands/project/dev/deprecatedFlow.js +62 -17
  82. package/commands/project/dev/index.d.ts +3 -3
  83. package/commands/project/dev/index.js +59 -48
  84. package/commands/project/dev/unifiedFlow.js +70 -21
  85. package/commands/project/download.js +12 -9
  86. package/commands/project/info.d.ts +4 -0
  87. package/commands/project/info.js +67 -0
  88. package/commands/project/installDeps.js +9 -6
  89. package/commands/project/lint.js +31 -10
  90. package/commands/project/list.js +14 -14
  91. package/commands/project/listBuilds.js +8 -6
  92. package/commands/project/logs.js +5 -6
  93. package/commands/project/migrate.js +18 -18
  94. package/commands/project/open.js +5 -6
  95. package/commands/project/profile/add.js +12 -8
  96. package/commands/project/profile/delete.js +15 -11
  97. package/commands/project/updateDeps.js +9 -6
  98. package/commands/project/upload.js +33 -19
  99. package/commands/project/validate.js +12 -12
  100. package/commands/project/watch.js +32 -19
  101. package/commands/project.js +12 -3
  102. package/commands/sandbox/create.js +18 -45
  103. package/commands/sandbox/delete.js +13 -14
  104. package/commands/secret/addSecret.js +6 -7
  105. package/commands/secret/deleteSecret.js +5 -6
  106. package/commands/secret/listSecret.js +2 -3
  107. package/commands/secret/updateSecret.js +4 -5
  108. package/commands/testAccount/create.d.ts +1 -1
  109. package/commands/testAccount/create.js +25 -17
  110. package/commands/testAccount/createConfig.js +7 -8
  111. package/commands/testAccount/delete.js +27 -18
  112. package/commands/testAccount/importData.js +6 -7
  113. package/commands/upgrade.js +9 -10
  114. package/lang/en.d.ts +248 -14
  115. package/lang/en.js +265 -28
  116. package/lib/accountAuth.js +4 -0
  117. package/lib/app/migrate.js +18 -5
  118. package/lib/buildAccount.d.ts +1 -6
  119. package/lib/buildAccount.js +9 -42
  120. package/lib/commandSuggestion.js +1 -7
  121. package/lib/constants.d.ts +2 -4
  122. package/lib/constants.js +4 -4
  123. package/lib/doctor/Diagnosis.js +5 -5
  124. package/lib/doctor/Doctor.js +7 -7
  125. package/lib/errorHandlers/index.js +4 -3
  126. package/lib/errorHandlers/suppressError.js +4 -0
  127. package/lib/errors/PromptExitError.d.ts +6 -0
  128. package/lib/errors/PromptExitError.js +11 -0
  129. package/lib/generateSelectors.js +1 -2
  130. package/lib/getStartedV2Actions.d.ts +13 -0
  131. package/lib/getStartedV2Actions.js +56 -3
  132. package/lib/hasFeature.js +1 -2
  133. package/lib/link/accountTableUtils.d.ts +10 -0
  134. package/lib/link/accountTableUtils.js +39 -0
  135. package/lib/link/index.d.ts +18 -0
  136. package/lib/link/index.js +185 -0
  137. package/lib/link/linkUtils.d.ts +5 -0
  138. package/lib/link/linkUtils.js +49 -0
  139. package/lib/link/prompts.d.ts +7 -0
  140. package/lib/link/prompts.js +126 -0
  141. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  142. package/lib/link/renderLinkedAccountsTable.js +14 -0
  143. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  144. package/lib/link/warnIfLinkedDirectory.js +9 -0
  145. package/lib/mcp/setup.d.ts +1 -0
  146. package/lib/mcp/setup.js +77 -30
  147. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  148. package/lib/process.d.ts +1 -1
  149. package/lib/process.js +10 -3
  150. package/lib/projects/ProjectLogsManager.js +6 -3
  151. package/lib/projects/components.js +15 -4
  152. package/lib/projects/create/index.js +3 -6
  153. package/lib/projects/create/legacy.js +5 -10
  154. package/lib/projects/create/v2.js +5 -14
  155. package/lib/projects/delete.d.ts +13 -0
  156. package/lib/projects/delete.js +193 -0
  157. package/lib/projects/deploy.d.ts +1 -1
  158. package/lib/projects/deploy.js +2 -2
  159. package/lib/projects/ensureProjectExists.js +1 -2
  160. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  161. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  162. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  163. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  164. package/lib/projects/localDev/DevSessionManager.js +31 -19
  165. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  166. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  167. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  168. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  169. package/lib/projects/localDev/LocalDevState.js +3 -1
  170. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  171. package/lib/projects/localDev/helpers/account.js +21 -30
  172. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  173. package/lib/projects/localDev/helpers/process.js +4 -10
  174. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  175. package/lib/projects/localDev/helpers/project.js +31 -15
  176. package/lib/projects/pollProjectBuildAndDeploy.js +90 -85
  177. package/lib/projects/projectInfo.d.ts +5 -0
  178. package/lib/projects/projectInfo.js +82 -0
  179. package/lib/projects/projectProfiles.d.ts +1 -2
  180. package/lib/projects/projectProfiles.js +5 -17
  181. package/lib/projects/uieLinting.d.ts +17 -3
  182. package/lib/projects/uieLinting.js +93 -28
  183. package/lib/projects/upload.d.ts +1 -0
  184. package/lib/projects/upload.js +59 -49
  185. package/lib/projects/watch.d.ts +2 -1
  186. package/lib/projects/watch.js +32 -24
  187. package/lib/projects/workspaces.d.ts +52 -0
  188. package/lib/projects/workspaces.js +365 -0
  189. package/lib/prompts/createApiSamplePrompt.js +4 -0
  190. package/lib/prompts/downloadProjectPrompt.js +11 -10
  191. package/lib/prompts/installAppPrompt.js +3 -2
  192. package/lib/prompts/personalAccessKeyPrompt.js +3 -2
  193. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  194. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  195. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  196. package/lib/prompts/projectProfilePrompt.js +46 -0
  197. package/lib/prompts/projectsLogsPrompt.js +3 -0
  198. package/lib/prompts/promptUtils.js +4 -2
  199. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  200. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  201. package/lib/sandboxes.d.ts +1 -9
  202. package/lib/sandboxes.js +0 -21
  203. package/lib/serverlessLogs.js +50 -44
  204. package/lib/theme/cmsDevServerProcess.d.ts +14 -0
  205. package/lib/theme/cmsDevServerProcess.js +149 -0
  206. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  207. package/lib/theme/cmsDevServerRunner.js +90 -0
  208. package/lib/theme/migrate.d.ts +1 -1
  209. package/lib/theme/migrate.js +1 -5
  210. package/lib/ui/SpinniesManager.d.ts +1 -0
  211. package/lib/ui/SpinniesManager.js +22 -6
  212. package/lib/ui/accountTable.d.ts +8 -0
  213. package/lib/ui/accountTable.js +67 -0
  214. package/lib/ui/spinniesUtils.d.ts +0 -1
  215. package/lib/ui/spinniesUtils.js +6 -16
  216. package/lib/usageTracking.d.ts +3 -4
  217. package/lib/usageTracking.js +9 -6
  218. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  219. package/lib/yargs/makeYargsBuilder.js +33 -0
  220. package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
  221. package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
  222. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  223. package/lib/yargs/parseYargsOrExit.js +25 -0
  224. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  225. package/lib/yargs/strictEnforceBoolean.js +13 -0
  226. package/lib/yargsUtils.d.ts +3 -16
  227. package/lib/yargsUtils.js +3 -48
  228. package/mcp-server/Tool.d.ts +15 -0
  229. package/mcp-server/Tool.js +53 -0
  230. package/mcp-server/server.js +43 -3
  231. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  232. package/mcp-server/tools/cms/HsCreateFunctionTool.js +9 -7
  233. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  234. package/mcp-server/tools/cms/HsCreateModuleTool.js +9 -7
  235. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  236. package/mcp-server/tools/cms/HsCreateTemplateTool.js +9 -7
  237. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  238. package/mcp-server/tools/cms/HsFunctionLogsTool.js +9 -7
  239. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  240. package/mcp-server/tools/cms/HsListFunctionsTool.js +9 -7
  241. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  242. package/mcp-server/tools/cms/HsListTool.js +9 -7
  243. package/mcp-server/tools/index.d.ts +3 -2
  244. package/mcp-server/tools/index.js +24 -22
  245. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
  246. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
  247. package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
  248. package/mcp-server/tools/project/CreateProjectTool.js +16 -18
  249. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  250. package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
  251. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  252. package/mcp-server/tools/project/DeployProjectTool.js +6 -8
  253. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  254. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  255. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  256. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  257. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  258. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  259. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  260. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
  261. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  262. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  263. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
  264. package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
  265. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
  266. package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
  267. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  268. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  269. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
  270. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
  271. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  272. package/mcp-server/tools/project/UploadProjectTools.js +11 -9
  273. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  274. package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
  275. package/mcp-server/tools/project/constants.d.ts +13 -1
  276. package/mcp-server/tools/project/constants.js +13 -16
  277. package/mcp-server/types.d.ts +0 -7
  278. package/mcp-server/types.js +1 -13
  279. package/mcp-server/utils/command.d.ts +5 -0
  280. package/mcp-server/utils/command.js +24 -0
  281. package/mcp-server/utils/feedbackTracking.js +2 -17
  282. package/mcp-server/utils/logger.d.ts +10 -0
  283. package/mcp-server/utils/logger.js +29 -0
  284. package/mcp-server/utils/toolUsageTracking.js +0 -2
  285. package/package.json +15 -11
  286. package/types/Link.d.ts +32 -0
  287. package/types/Link.js +5 -0
  288. package/types/LocalDev.d.ts +5 -0
  289. package/types/PackageJson.d.ts +1 -0
  290. package/types/Projects.d.ts +19 -0
  291. package/types/Prompts.d.ts +1 -0
  292. package/types/Yargs.d.ts +19 -1
  293. package/ui/components/getStarted/GetStartedFlow.js +79 -2
  294. package/ui/components/getStarted/reducer.d.ts +20 -0
  295. package/ui/components/getStarted/reducer.js +36 -0
  296. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  297. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  298. package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
  299. package/ui/lib/constants.d.ts +1 -0
  300. package/ui/lib/constants.js +1 -0
  301. package/api/__tests__/migrate.test.d.ts +0 -1
  302. package/api/__tests__/migrate.test.js +0 -199
  303. package/commands/__tests__/account.test.d.ts +0 -1
  304. package/commands/__tests__/account.test.js +0 -69
  305. package/commands/__tests__/auth.test.d.ts +0 -1
  306. package/commands/__tests__/auth.test.js +0 -43
  307. package/commands/__tests__/cms.test.d.ts +0 -1
  308. package/commands/__tests__/cms.test.js +0 -87
  309. package/commands/__tests__/config.test.d.ts +0 -1
  310. package/commands/__tests__/config.test.js +0 -44
  311. package/commands/__tests__/customObject.test.d.ts +0 -1
  312. package/commands/__tests__/customObject.test.js +0 -68
  313. package/commands/__tests__/doctor.test.d.ts +0 -1
  314. package/commands/__tests__/doctor.test.js +0 -132
  315. package/commands/__tests__/feedback.test.d.ts +0 -1
  316. package/commands/__tests__/feedback.test.js +0 -24
  317. package/commands/__tests__/filemanager.test.d.ts +0 -1
  318. package/commands/__tests__/filemanager.test.js +0 -45
  319. package/commands/__tests__/getStarted.test.d.ts +0 -1
  320. package/commands/__tests__/getStarted.test.js +0 -173
  321. package/commands/__tests__/hubdb.test.d.ts +0 -1
  322. package/commands/__tests__/hubdb.test.js +0 -50
  323. package/commands/__tests__/init.test.d.ts +0 -1
  324. package/commands/__tests__/init.test.js +0 -42
  325. package/commands/__tests__/mcp.test.d.ts +0 -1
  326. package/commands/__tests__/mcp.test.js +0 -46
  327. package/commands/__tests__/open.test.d.ts +0 -1
  328. package/commands/__tests__/open.test.js +0 -58
  329. package/commands/__tests__/project.test.d.ts +0 -1
  330. package/commands/__tests__/project.test.js +0 -125
  331. package/commands/__tests__/sandbox.test.d.ts +0 -1
  332. package/commands/__tests__/sandbox.test.js +0 -44
  333. package/commands/__tests__/secret.test.d.ts +0 -1
  334. package/commands/__tests__/secret.test.js +0 -49
  335. package/commands/__tests__/testAccount.test.d.ts +0 -1
  336. package/commands/__tests__/testAccount.test.js +0 -57
  337. package/commands/__tests__/upgrade.test.d.ts +0 -1
  338. package/commands/__tests__/upgrade.test.js +0 -309
  339. package/commands/account/__tests__/auth.test.d.ts +0 -1
  340. package/commands/account/__tests__/auth.test.js +0 -206
  341. package/commands/account/__tests__/clean.test.d.ts +0 -1
  342. package/commands/account/__tests__/clean.test.js +0 -28
  343. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  344. package/commands/account/__tests__/createOverride.test.js +0 -32
  345. package/commands/account/__tests__/info.test.d.ts +0 -1
  346. package/commands/account/__tests__/info.test.js +0 -28
  347. package/commands/account/__tests__/list.test.d.ts +0 -1
  348. package/commands/account/__tests__/list.test.js +0 -153
  349. package/commands/account/__tests__/remove.test.d.ts +0 -1
  350. package/commands/account/__tests__/remove.test.js +0 -36
  351. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  352. package/commands/account/__tests__/removeOverride.js +0 -25
  353. package/commands/account/__tests__/rename.test.d.ts +0 -1
  354. package/commands/account/__tests__/rename.test.js +0 -82
  355. package/commands/account/__tests__/use.test.d.ts +0 -1
  356. package/commands/account/__tests__/use.test.js +0 -170
  357. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  358. package/commands/app/__tests__/migrate.test.js +0 -111
  359. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  360. package/commands/app/secret/__tests__/add.test.js +0 -140
  361. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  362. package/commands/app/secret/__tests__/delete.test.js +0 -28
  363. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  364. package/commands/app/secret/__tests__/list.test.js +0 -25
  365. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  366. package/commands/app/secret/__tests__/update.test.js +0 -28
  367. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  368. package/commands/cms/__tests__/delete.test.js +0 -39
  369. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  370. package/commands/cms/__tests__/fetch.test.js +0 -156
  371. package/commands/cms/__tests__/function.test.d.ts +0 -1
  372. package/commands/cms/__tests__/function.test.js +0 -50
  373. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  374. package/commands/cms/__tests__/lint.test.js +0 -33
  375. package/commands/cms/__tests__/list.test.d.ts +0 -1
  376. package/commands/cms/__tests__/list.test.js +0 -42
  377. package/commands/cms/__tests__/module.test.d.ts +0 -1
  378. package/commands/cms/__tests__/module.test.js +0 -45
  379. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  380. package/commands/cms/__tests__/mv.test.js +0 -46
  381. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  382. package/commands/cms/__tests__/theme.test.js +0 -54
  383. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  384. package/commands/cms/__tests__/upload.test.js +0 -308
  385. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  386. package/commands/cms/__tests__/watch.test.js +0 -212
  387. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  388. package/commands/cms/function/__tests__/logs.test.js +0 -70
  389. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  390. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  391. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  392. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  393. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  394. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  395. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  396. package/commands/customObject/__tests__/create.test.js +0 -40
  397. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  398. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  399. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  400. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  401. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  402. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  403. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  404. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  405. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  406. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  407. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  408. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  409. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  410. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  411. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  412. package/commands/filemanager/__tests__/upload.test.js +0 -191
  413. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  414. package/commands/hubdb/__tests__/clear.test.js +0 -28
  415. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  416. package/commands/hubdb/__tests__/create.test.js +0 -28
  417. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  418. package/commands/hubdb/__tests__/delete.test.js +0 -28
  419. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  420. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  421. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  422. package/commands/hubdb/__tests__/list.test.js +0 -88
  423. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  424. package/commands/mcp/__tests__/setup.test.js +0 -26
  425. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  426. package/commands/mcp/__tests__/start.test.js +0 -137
  427. package/commands/project/__tests__/add.test.d.ts +0 -1
  428. package/commands/project/__tests__/add.test.js +0 -107
  429. package/commands/project/__tests__/create.test.d.ts +0 -1
  430. package/commands/project/__tests__/create.test.js +0 -97
  431. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  432. package/commands/project/__tests__/deploy.test.js +0 -307
  433. package/commands/project/__tests__/dev.test.d.ts +0 -1
  434. package/commands/project/__tests__/dev.test.js +0 -273
  435. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  436. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  437. package/commands/project/__tests__/download.test.d.ts +0 -1
  438. package/commands/project/__tests__/download.test.js +0 -39
  439. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  440. package/commands/project/__tests__/installDeps.test.js +0 -140
  441. package/commands/project/__tests__/lint.test.d.ts +0 -1
  442. package/commands/project/__tests__/lint.test.js +0 -704
  443. package/commands/project/__tests__/list.test.d.ts +0 -1
  444. package/commands/project/__tests__/list.test.js +0 -31
  445. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  446. package/commands/project/__tests__/listBuilds.test.js +0 -38
  447. package/commands/project/__tests__/logs.test.d.ts +0 -1
  448. package/commands/project/__tests__/logs.test.js +0 -202
  449. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  450. package/commands/project/__tests__/migrate.test.js +0 -106
  451. package/commands/project/__tests__/open.test.d.ts +0 -1
  452. package/commands/project/__tests__/open.test.js +0 -39
  453. package/commands/project/__tests__/profile.test.d.ts +0 -1
  454. package/commands/project/__tests__/profile.test.js +0 -42
  455. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  456. package/commands/project/__tests__/updateDeps.test.js +0 -140
  457. package/commands/project/__tests__/upload.test.d.ts +0 -1
  458. package/commands/project/__tests__/upload.test.js +0 -234
  459. package/commands/project/__tests__/validate.test.d.ts +0 -1
  460. package/commands/project/__tests__/validate.test.js +0 -381
  461. package/commands/project/__tests__/watch.test.d.ts +0 -1
  462. package/commands/project/__tests__/watch.test.js +0 -35
  463. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  464. package/commands/sandbox/__tests__/create.test.js +0 -245
  465. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  466. package/commands/sandbox/__tests__/delete.test.js +0 -31
  467. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  468. package/commands/secret/__tests__/addSecret.test.js +0 -162
  469. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  470. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  471. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  472. package/commands/secret/__tests__/listSecret.test.js +0 -29
  473. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  474. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  475. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  476. package/commands/testAccount/__tests__/create.test.js +0 -106
  477. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  478. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  479. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  480. package/commands/testAccount/__tests__/delete.test.js +0 -29
  481. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  482. package/commands/testAccount/__tests__/importData.test.js +0 -92
  483. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  484. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  485. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  486. package/lib/__tests__/accountAuth.test.js +0 -258
  487. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  488. package/lib/__tests__/accountTypes.test.js +0 -98
  489. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  490. package/lib/__tests__/buildAccount.test.js +0 -262
  491. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  492. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  493. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  494. package/lib/__tests__/commandSuggestion.test.js +0 -119
  495. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  496. package/lib/__tests__/commonOpts.test.js +0 -80
  497. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  498. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  499. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  500. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  501. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  502. package/lib/__tests__/hasFeature.test.js +0 -167
  503. package/lib/__tests__/http.test.d.ts +0 -1
  504. package/lib/__tests__/http.test.js +0 -40
  505. package/lib/__tests__/importData.test.d.ts +0 -1
  506. package/lib/__tests__/importData.test.js +0 -98
  507. package/lib/__tests__/npmCli.test.d.ts +0 -1
  508. package/lib/__tests__/npmCli.test.js +0 -84
  509. package/lib/__tests__/oauth.test.d.ts +0 -1
  510. package/lib/__tests__/oauth.test.js +0 -109
  511. package/lib/__tests__/parsing.test.d.ts +0 -1
  512. package/lib/__tests__/parsing.test.js +0 -34
  513. package/lib/__tests__/polling.test.d.ts +0 -1
  514. package/lib/__tests__/polling.test.js +0 -76
  515. package/lib/__tests__/process.test.d.ts +0 -1
  516. package/lib/__tests__/process.test.js +0 -89
  517. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  518. package/lib/__tests__/sandboxSync.test.js +0 -147
  519. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  520. package/lib/__tests__/sandboxes.test.js +0 -156
  521. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  522. package/lib/__tests__/serverlessLogs.test.js +0 -148
  523. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  524. package/lib/__tests__/usageTracking.test.js +0 -197
  525. package/lib/__tests__/validation.test.d.ts +0 -1
  526. package/lib/__tests__/validation.test.js +0 -143
  527. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  528. package/lib/__tests__/yargsUtils.test.js +0 -124
  529. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  530. package/lib/app/__tests__/migrate.test.js +0 -638
  531. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  532. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  533. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  534. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  535. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  536. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  537. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  538. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  539. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  540. package/lib/mcp/__tests__/setup.test.js +0 -194
  541. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  542. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  543. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  544. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  545. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  546. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  547. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  548. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  549. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  550. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  551. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  552. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  553. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  554. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  555. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  556. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  557. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  558. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  559. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  560. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  561. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  562. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  563. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  564. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  565. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  566. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  567. package/lib/projects/__tests__/components.test.d.ts +0 -1
  568. package/lib/projects/__tests__/components.test.js +0 -426
  569. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  570. package/lib/projects/__tests__/deploy.test.js +0 -231
  571. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  572. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  573. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  574. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  575. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  576. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  577. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  578. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  579. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  580. package/lib/projects/__tests__/projects.test.js +0 -58
  581. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  582. package/lib/projects/__tests__/structure.test.js +0 -210
  583. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  584. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  585. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  586. package/lib/projects/__tests__/upload.test.js +0 -183
  587. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  588. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  589. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  590. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  591. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  592. package/lib/projects/create/__tests__/legacy.test.js +0 -90
  593. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  594. package/lib/projects/create/__tests__/v2.test.js +0 -257
  595. package/lib/projects/platformVersion.d.ts +0 -9
  596. package/lib/projects/platformVersion.js +0 -39
  597. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  598. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  599. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  600. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  601. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  602. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  603. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  604. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  605. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  606. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  607. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  608. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  609. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  610. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  611. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  612. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  613. package/lib/sandboxSync.d.ts +0 -4
  614. package/lib/sandboxSync.js +0 -102
  615. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  616. package/lib/theme/__tests__/migrate.test.js +0 -256
  617. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  618. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  619. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  620. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  621. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  622. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
  623. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  624. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
  625. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  626. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
  627. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  628. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
  629. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  630. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
  631. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  632. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
  633. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  634. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
  635. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  636. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
  637. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  638. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
  639. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  640. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
  641. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  642. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  643. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  644. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  645. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  646. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
  647. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  648. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  649. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  650. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  651. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  652. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  653. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  654. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  655. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  656. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  657. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  658. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
  659. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  660. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  661. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  662. package/mcp-server/utils/__tests__/command.test.js +0 -45
  663. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  664. package/mcp-server/utils/__tests__/content.test.js +0 -164
  665. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  666. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
  667. package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
  668. package/mcp-server/utils/__tests__/project.test.js +0 -140
  669. package/mcp-server/utils/project.d.ts +0 -5
  670. package/mcp-server/utils/project.js +0 -18
@@ -1,187 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { createModulePrompt } from '../createModulePrompt.js';
3
- import { promptUser } from '../promptUtils.js';
4
- vi.mock('../promptUtils.js');
5
- const mockPromptUser = vi.mocked(promptUser);
6
- describe('createModulePrompt', () => {
7
- beforeEach(() => {
8
- vi.resetAllMocks();
9
- });
10
- describe('when all parameters are provided', () => {
11
- it('should return provided values without prompting', async () => {
12
- const commandArgs = {
13
- moduleLabel: 'My Module',
14
- reactType: true,
15
- contentTypes: 'LANDING_PAGE,SITE_PAGE',
16
- global: false,
17
- availableForNewContent: true,
18
- };
19
- const result = await createModulePrompt(commandArgs);
20
- expect(mockPromptUser).not.toHaveBeenCalled();
21
- expect(result).toEqual({
22
- moduleLabel: 'My Module',
23
- reactType: true,
24
- contentTypes: ['LANDING_PAGE', 'SITE_PAGE'],
25
- global: false,
26
- availableForNewContent: true,
27
- });
28
- });
29
- it('should use default values when optional parameters not provided', async () => {
30
- const commandArgs = {
31
- moduleLabel: 'My Module',
32
- };
33
- mockPromptUser.mockResolvedValue({
34
- reactType: false,
35
- contentTypes: ['ANY'],
36
- global: false,
37
- availableForNewContent: true,
38
- });
39
- const result = await createModulePrompt(commandArgs);
40
- expect(mockPromptUser).toHaveBeenCalledWith([
41
- expect.objectContaining({ name: 'reactType' }),
42
- expect.objectContaining({ name: 'contentTypes' }),
43
- expect.objectContaining({ name: 'global' }),
44
- expect.objectContaining({ name: 'availableForNewContent' }),
45
- ]);
46
- expect(result).toEqual({
47
- moduleLabel: 'My Module',
48
- reactType: false,
49
- contentTypes: ['ANY'],
50
- global: false,
51
- availableForNewContent: true,
52
- });
53
- });
54
- it('should parse contentTypes string correctly', async () => {
55
- const commandArgs = {
56
- moduleLabel: 'Test Module',
57
- contentTypes: 'BLOG_POST, EMAIL, LANDING_PAGE',
58
- };
59
- mockPromptUser.mockResolvedValue({
60
- reactType: false,
61
- global: false,
62
- availableForNewContent: true,
63
- });
64
- const result = await createModulePrompt(commandArgs);
65
- expect(result.contentTypes).toEqual([
66
- 'BLOG_POST',
67
- 'EMAIL',
68
- 'LANDING_PAGE',
69
- ]);
70
- });
71
- });
72
- describe('when some parameters are missing', () => {
73
- it('should only prompt for missing parameters', async () => {
74
- const commandArgs = {
75
- moduleLabel: 'My Module',
76
- reactType: true,
77
- };
78
- mockPromptUser.mockResolvedValue({
79
- contentTypes: ['SITE_PAGE'],
80
- global: true,
81
- availableForNewContent: false,
82
- });
83
- const result = await createModulePrompt(commandArgs);
84
- expect(mockPromptUser).toHaveBeenCalledWith([
85
- expect.objectContaining({ name: 'contentTypes' }),
86
- expect.objectContaining({ name: 'global' }),
87
- expect.objectContaining({ name: 'availableForNewContent' }),
88
- ]);
89
- expect(result).toEqual({
90
- moduleLabel: 'My Module',
91
- reactType: true,
92
- contentTypes: ['SITE_PAGE'],
93
- global: true,
94
- availableForNewContent: false,
95
- });
96
- });
97
- });
98
- describe('when no parameters are provided', () => {
99
- it('should prompt for all parameters', async () => {
100
- mockPromptUser.mockResolvedValue({
101
- moduleLabel: 'Prompted Module',
102
- reactType: false,
103
- contentTypes: ['ANY'],
104
- global: false,
105
- availableForNewContent: true,
106
- });
107
- const result = await createModulePrompt();
108
- expect(mockPromptUser).toHaveBeenCalledWith([
109
- expect.objectContaining({ name: 'moduleLabel' }),
110
- expect.objectContaining({ name: 'reactType' }),
111
- expect.objectContaining({ name: 'contentTypes' }),
112
- expect.objectContaining({ name: 'global' }),
113
- expect.objectContaining({ name: 'availableForNewContent' }),
114
- ]);
115
- expect(result).toEqual({
116
- moduleLabel: 'Prompted Module',
117
- reactType: false,
118
- contentTypes: ['ANY'],
119
- global: false,
120
- availableForNewContent: true,
121
- });
122
- });
123
- });
124
- describe('parameter precedence', () => {
125
- it('should prioritize command args over prompted values', async () => {
126
- const commandArgs = {
127
- moduleLabel: 'Args Module',
128
- global: true,
129
- };
130
- mockPromptUser.mockResolvedValue({
131
- reactType: false,
132
- contentTypes: ['EMAIL'],
133
- availableForNewContent: false,
134
- });
135
- const result = await createModulePrompt(commandArgs);
136
- expect(result).toEqual({
137
- moduleLabel: 'Args Module', // from commandArgs
138
- reactType: false, // from prompt
139
- contentTypes: ['EMAIL'], // from prompt
140
- global: true, // from commandArgs
141
- availableForNewContent: false, // from prompt
142
- });
143
- });
144
- it('should handle boolean false values correctly', async () => {
145
- const commandArgs = {
146
- moduleLabel: 'Test Module',
147
- reactType: false,
148
- contentTypes: 'ANY',
149
- global: false,
150
- availableForNewContent: false,
151
- };
152
- const result = await createModulePrompt(commandArgs);
153
- expect(mockPromptUser).not.toHaveBeenCalled();
154
- expect(result).toEqual({
155
- moduleLabel: 'Test Module',
156
- reactType: false,
157
- contentTypes: ['ANY'],
158
- global: false,
159
- availableForNewContent: false,
160
- });
161
- });
162
- it('should handle mixed scenario with partial command args and prompting', async () => {
163
- const commandArgs = {
164
- moduleLabel: 'Partial Module',
165
- contentTypes: 'BLOG_POST,BLOG_LISTING',
166
- };
167
- mockPromptUser.mockResolvedValue({
168
- reactType: true,
169
- global: false,
170
- availableForNewContent: true,
171
- });
172
- const result = await createModulePrompt(commandArgs);
173
- expect(mockPromptUser).toHaveBeenCalledWith([
174
- expect.objectContaining({ name: 'reactType' }),
175
- expect.objectContaining({ name: 'global' }),
176
- expect.objectContaining({ name: 'availableForNewContent' }),
177
- ]);
178
- expect(result).toEqual({
179
- moduleLabel: 'Partial Module', // from commandArgs
180
- reactType: true, // from prompt
181
- contentTypes: ['BLOG_POST', 'BLOG_LISTING'], // from commandArgs (parsed)
182
- global: false, // from prompt
183
- availableForNewContent: true, // from prompt
184
- });
185
- });
186
- });
187
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,102 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { createTemplatePrompt } from '../createTemplatePrompt.js';
3
- import { promptUser } from '../promptUtils.js';
4
- vi.mock('../promptUtils.js');
5
- const mockPromptUser = vi.mocked(promptUser);
6
- describe('createTemplatePrompt', () => {
7
- beforeEach(() => {
8
- vi.resetAllMocks();
9
- });
10
- describe('when templateType is provided', () => {
11
- it('should return provided templateType without prompting', async () => {
12
- const commandArgs = {
13
- templateType: 'page-template',
14
- };
15
- const result = await createTemplatePrompt(commandArgs);
16
- expect(mockPromptUser).not.toHaveBeenCalled();
17
- expect(result).toEqual({
18
- templateType: 'page-template',
19
- });
20
- });
21
- it('should work with different template types', async () => {
22
- const testCases = [
23
- 'email-template',
24
- 'partial',
25
- 'global-partial',
26
- 'blog-listing-template',
27
- 'blog-post-template',
28
- 'search-template',
29
- 'section',
30
- ];
31
- for (const templateType of testCases) {
32
- const commandArgs = { templateType };
33
- const result = await createTemplatePrompt(commandArgs);
34
- expect(mockPromptUser).not.toHaveBeenCalled();
35
- expect(result).toEqual({ templateType });
36
- vi.resetAllMocks();
37
- }
38
- });
39
- });
40
- describe('when templateType is not provided', () => {
41
- it('should prompt for templateType', async () => {
42
- mockPromptUser.mockResolvedValue({
43
- templateType: 'page-template',
44
- });
45
- const result = await createTemplatePrompt();
46
- expect(mockPromptUser).toHaveBeenCalledWith([
47
- expect.objectContaining({
48
- name: 'templateType',
49
- type: 'list',
50
- choices: expect.any(Array),
51
- }),
52
- ]);
53
- expect(result).toEqual({
54
- templateType: 'page-template',
55
- });
56
- });
57
- it('should prompt when commandArgs is empty', async () => {
58
- mockPromptUser.mockResolvedValue({
59
- templateType: 'email-template',
60
- });
61
- const result = await createTemplatePrompt({});
62
- expect(mockPromptUser).toHaveBeenCalledWith([
63
- expect.objectContaining({ name: 'templateType' }),
64
- ]);
65
- expect(result).toEqual({
66
- templateType: 'email-template',
67
- });
68
- });
69
- it('should prompt when templateType is undefined', async () => {
70
- const commandArgs = {
71
- templateType: undefined,
72
- };
73
- mockPromptUser.mockResolvedValue({
74
- templateType: 'partial',
75
- });
76
- const result = await createTemplatePrompt(commandArgs);
77
- expect(mockPromptUser).toHaveBeenCalledWith([
78
- expect.objectContaining({ name: 'templateType' }),
79
- ]);
80
- expect(result).toEqual({
81
- templateType: 'partial',
82
- });
83
- });
84
- });
85
- describe('integration scenarios', () => {
86
- it('should handle mixed usage patterns', async () => {
87
- // First call with templateType provided
88
- let result = await createTemplatePrompt({
89
- templateType: 'blog-post-template',
90
- });
91
- expect(result.templateType).toBe('blog-post-template');
92
- expect(mockPromptUser).not.toHaveBeenCalled();
93
- // Second call without templateType
94
- mockPromptUser.mockResolvedValue({
95
- templateType: 'section',
96
- });
97
- result = await createTemplatePrompt();
98
- expect(result.templateType).toBe('section');
99
- expect(mockPromptUser).toHaveBeenCalledTimes(1);
100
- });
101
- });
102
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,31 +0,0 @@
1
- import { getConfigAccountIfExists } from '@hubspot/local-dev-lib/config';
2
- import { fetchProjects } from '@hubspot/local-dev-lib/api/projects';
3
- import { downloadProjectPrompt } from '../downloadProjectPrompt.js';
4
- vi.mock('../promptUtils', () => ({
5
- promptUser: vi.fn().mockResolvedValue({ project: 'test-project' }),
6
- }));
7
- vi.mock('@hubspot/local-dev-lib/api/projects', () => ({
8
- fetchProjects: vi.fn().mockResolvedValue({
9
- data: { results: [] },
10
- }),
11
- }));
12
- vi.mock('@hubspot/local-dev-lib/config', () => ({
13
- getConfigAccountIfExists: vi
14
- .fn()
15
- .mockImplementation(() => ({ accountId: 123456789 })),
16
- globalConfigFileExists: vi.fn().mockReturnValue(true),
17
- }));
18
- describe('lib/prompts/downloadProjectPrompt', () => {
19
- it('should honor the account passed as an option', async () => {
20
- const account = 'Prod';
21
- await downloadProjectPrompt({ account });
22
- expect(getConfigAccountIfExists).toHaveBeenCalledTimes(1);
23
- expect(getConfigAccountIfExists).toHaveBeenCalledWith(account);
24
- });
25
- it('should fetch the projects for the correct accountId', async () => {
26
- const account = 'Prod';
27
- await downloadProjectPrompt({ account });
28
- expect(fetchProjects).toHaveBeenCalledTimes(1);
29
- expect(fetchProjects).toHaveBeenCalledWith(123456789);
30
- });
31
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,143 +0,0 @@
1
- import { Separator } from '@inquirer/prompts';
2
- import { projectAddPromptV2 } from '../projectAddPrompt.js';
3
- import { promptUser } from '../promptUtils.js';
4
- vi.mock('../promptUtils');
5
- const mockedPromptUser = vi.mocked(promptUser);
6
- describe('lib/prompts/projectAddPrompt', () => {
7
- const mockComponentTemplate = {
8
- label: 'Test Module',
9
- path: 'test-module',
10
- type: 'module',
11
- supportedAuthTypes: ['oauth'],
12
- supportedDistributions: ['private'],
13
- };
14
- const mockComponentTemplateWithCliSelector = {
15
- label: 'Workflow Action Tool',
16
- path: 'workflow-action-tool',
17
- type: 'workflow-action',
18
- cliSelector: 'workflow-action-tool',
19
- supportedAuthTypes: ['oauth'],
20
- supportedDistributions: ['private'],
21
- };
22
- describe('projectAddPromptV2()', () => {
23
- beforeEach(() => {
24
- // Mock returns empty result, logic will use selectedComponents when selectedFeatures provided
25
- mockedPromptUser.mockResolvedValue({});
26
- });
27
- it('should select component based on cliSelector when provided', async () => {
28
- const templateChoice = {
29
- name: 'Workflow Action Tool',
30
- value: mockComponentTemplateWithCliSelector,
31
- };
32
- const components = [templateChoice];
33
- const selectedFeatures = ['workflow-action-tool'];
34
- const result = await projectAddPromptV2(components, selectedFeatures);
35
- expect(result.componentTemplate).toEqual([
36
- mockComponentTemplateWithCliSelector,
37
- ]);
38
- expect(mockedPromptUser).toHaveBeenCalledWith([
39
- expect.objectContaining({
40
- name: 'componentTemplate',
41
- when: false, // selectedFeatures provided, so skip prompt
42
- }),
43
- ]);
44
- });
45
- it('should select component based on type when cliSelector not provided', async () => {
46
- const templateChoice = {
47
- name: 'Test Module',
48
- value: mockComponentTemplate,
49
- };
50
- const components = [templateChoice];
51
- const selectedFeatures = ['module'];
52
- const result = await projectAddPromptV2(components, selectedFeatures);
53
- expect(result.componentTemplate).toEqual([mockComponentTemplate]);
54
- expect(mockedPromptUser).toHaveBeenCalledWith([
55
- expect.objectContaining({
56
- name: 'componentTemplate',
57
- when: false, // selectedFeatures provided and selectedComponents found
58
- }),
59
- ]);
60
- });
61
- it('should prefer cliSelector over type when both are available', async () => {
62
- const templateChoice = {
63
- name: 'Workflow Action Tool',
64
- value: mockComponentTemplateWithCliSelector,
65
- };
66
- const components = [templateChoice];
67
- const selectedFeatures = ['workflow-action-tool']; // matches cliSelector
68
- const result = await projectAddPromptV2(components, selectedFeatures);
69
- expect(result.componentTemplate).toEqual([
70
- mockComponentTemplateWithCliSelector,
71
- ]);
72
- });
73
- it('should not select component when neither cliSelector nor type matches', async () => {
74
- const templateChoice = {
75
- name: 'Test Module',
76
- value: mockComponentTemplate,
77
- };
78
- const components = [templateChoice];
79
- const selectedFeatures = ['non-matching-feature'];
80
- mockedPromptUser.mockResolvedValue({ componentTemplate: [] });
81
- const result = await projectAddPromptV2(components, selectedFeatures);
82
- expect(result.componentTemplate).toEqual([]);
83
- });
84
- it('should throw error when selected feature component is disabled', async () => {
85
- const disabledTemplateChoice = {
86
- name: 'Disabled Component',
87
- value: mockComponentTemplateWithCliSelector,
88
- disabled: 'Component is disabled for testing',
89
- };
90
- const components = [disabledTemplateChoice];
91
- const selectedFeatures = ['workflow-action-tool'];
92
- await expect(projectAddPromptV2(components, selectedFeatures)).rejects.toThrow(/Cannot.*feature.*workflow-action/);
93
- });
94
- it('should handle multiple components with mixed cliSelector availability', async () => {
95
- const choice1 = {
96
- name: 'Test Module',
97
- value: mockComponentTemplate,
98
- };
99
- const choice2 = {
100
- name: 'Workflow Action Tool',
101
- value: mockComponentTemplateWithCliSelector,
102
- };
103
- const components = [choice1, choice2];
104
- const selectedFeatures = ['module', 'workflow-action-tool'];
105
- const result = await projectAddPromptV2(components, selectedFeatures);
106
- expect(result.componentTemplate).toEqual([
107
- mockComponentTemplate,
108
- mockComponentTemplateWithCliSelector,
109
- ]);
110
- });
111
- it('should skip Separator instances when processing components', async () => {
112
- const separator = new Separator();
113
- const templateChoice = {
114
- name: 'Test Module',
115
- value: mockComponentTemplate,
116
- };
117
- const components = [separator, templateChoice];
118
- const selectedFeatures = ['module'];
119
- const result = await projectAddPromptV2(components, selectedFeatures);
120
- expect(result.componentTemplate).toEqual([mockComponentTemplate]);
121
- });
122
- it('should prompt user when no selectedFeatures provided', async () => {
123
- const templateChoice = {
124
- name: 'Test Module',
125
- value: mockComponentTemplate,
126
- };
127
- const components = [templateChoice];
128
- const selectedFeatures = undefined;
129
- mockedPromptUser.mockResolvedValue({
130
- componentTemplate: [mockComponentTemplate],
131
- });
132
- const result = await projectAddPromptV2(components, selectedFeatures);
133
- expect(mockedPromptUser).toHaveBeenCalledWith([
134
- expect.objectContaining({
135
- name: 'componentTemplate',
136
- type: 'checkbox',
137
- choices: components,
138
- }),
139
- ]);
140
- expect(result.componentTemplate).toEqual([mockComponentTemplate]);
141
- });
142
- });
143
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,37 +0,0 @@
1
- import { projectLogsPrompt } from '../projectsLogsPrompt.js';
2
- import { promptUser } from '../promptUtils.js';
3
- import chalk from 'chalk';
4
- vi.mock('../promptUtils');
5
- describe('lib/prompts/projectsLogsPrompt', () => {
6
- it('should return undefined functionName when functionChoices is undefined', async () => {
7
- const actual = await projectLogsPrompt({ functionChoices: undefined });
8
- expect(actual).toEqual({});
9
- expect(promptUser).not.toHaveBeenCalled();
10
- });
11
- it('should return the functionName without prompting when there is only one functionChoice', async () => {
12
- const functionChoice = 'this-is-the-only-function';
13
- const { functionName } = await projectLogsPrompt({
14
- functionChoices: [functionChoice],
15
- });
16
- expect(functionName).toEqual(functionChoice);
17
- expect(promptUser).not.toHaveBeenCalled();
18
- });
19
- it('should prompt the user if there is more than one choice', async () => {
20
- const functionChoices = ['choice 1', 'choice 2'];
21
- const projectName = 'my cool project';
22
- await projectLogsPrompt({
23
- functionChoices,
24
- projectName,
25
- });
26
- expect(promptUser).toHaveBeenCalledTimes(1);
27
- expect(promptUser).toHaveBeenLastCalledWith(expect.arrayContaining([
28
- expect.objectContaining({
29
- name: 'functionName',
30
- type: 'list',
31
- message: `[--function] Select function in ${chalk.bold(projectName)} project`,
32
- when: expect.any(Function),
33
- choices: functionChoices,
34
- }),
35
- ]));
36
- });
37
- });
@@ -1,160 +0,0 @@
1
- import { Separator } from '@inquirer/prompts';
2
- import { selectProjectTemplatePrompt } from '../selectProjectTemplatePrompt.js';
3
- import { promptUser } from '../promptUtils.js';
4
- vi.mock('../promptUtils');
5
- const mockedPromptUser = vi.mocked(promptUser);
6
- describe('lib/prompts/selectProjectTemplatePrompt', () => {
7
- const mockComponentTemplate = {
8
- label: 'Test Module',
9
- path: 'test-module',
10
- type: 'module',
11
- supportedAuthTypes: ['oauth'],
12
- supportedDistributions: ['private'],
13
- };
14
- const mockComponentTemplateWithCliSelector = {
15
- label: 'Workflow Action Tool',
16
- path: 'workflow-action-tool',
17
- type: 'workflow-action',
18
- cliSelector: 'workflow-action-tool',
19
- supportedAuthTypes: ['oauth'],
20
- supportedDistributions: ['private'],
21
- };
22
- beforeEach(() => {
23
- mockedPromptUser.mockResolvedValue({});
24
- });
25
- describe('selectProjectTemplatePrompt with component templates', () => {
26
- it('should select component based on cliSelector when provided', async () => {
27
- const templateChoice = {
28
- name: 'Workflow Action Tool',
29
- value: mockComponentTemplateWithCliSelector,
30
- };
31
- const componentTemplates = [templateChoice];
32
- const promptOptions = {
33
- features: ['workflow-action-tool'],
34
- };
35
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
36
- expect(result.componentTemplates).toEqual([
37
- mockComponentTemplateWithCliSelector,
38
- ]);
39
- expect(mockedPromptUser).toHaveBeenCalledWith([
40
- expect.objectContaining({ name: 'projectTemplate' }),
41
- expect.objectContaining({ name: 'componentTemplates' }),
42
- ]);
43
- });
44
- it('should select component based on type when cliSelector not provided', async () => {
45
- const templateChoice = {
46
- name: 'Test Module',
47
- value: mockComponentTemplate,
48
- };
49
- const componentTemplates = [templateChoice];
50
- const promptOptions = {
51
- features: ['module'],
52
- };
53
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
54
- expect(result.componentTemplates).toEqual([mockComponentTemplate]);
55
- });
56
- it('should prefer cliSelector over type when both are available', async () => {
57
- const templateChoice = {
58
- name: 'Workflow Action Tool',
59
- value: mockComponentTemplateWithCliSelector,
60
- };
61
- const componentTemplates = [templateChoice];
62
- const promptOptions = {
63
- features: ['workflow-action-tool'], // matches cliSelector, not type
64
- };
65
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
66
- expect(result.componentTemplates).toEqual([
67
- mockComponentTemplateWithCliSelector,
68
- ]);
69
- });
70
- it('should not select component when neither cliSelector nor type matches', async () => {
71
- const templateChoice = {
72
- name: 'Test Module',
73
- value: mockComponentTemplate,
74
- };
75
- const componentTemplates = [templateChoice];
76
- const promptOptions = {
77
- features: ['non-matching-feature'],
78
- };
79
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
80
- expect(result.componentTemplates).toEqual([]);
81
- });
82
- it('should throw error when selected feature component is disabled', async () => {
83
- const disabledTemplateChoice = {
84
- name: 'Disabled Component',
85
- value: mockComponentTemplateWithCliSelector,
86
- disabled: 'Component is disabled for testing',
87
- };
88
- const componentTemplates = [disabledTemplateChoice];
89
- const promptOptions = {
90
- features: ['workflow-action-tool'],
91
- };
92
- await expect(selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates)).rejects.toThrow(/Cannot create project with template.*workflow-action/);
93
- });
94
- it('should handle multiple components with mixed cliSelector availability', async () => {
95
- const choice1 = {
96
- name: 'Test Module',
97
- value: mockComponentTemplate,
98
- };
99
- const choice2 = {
100
- name: 'Workflow Action Tool',
101
- value: mockComponentTemplateWithCliSelector,
102
- };
103
- const componentTemplates = [choice1, choice2];
104
- const promptOptions = {
105
- features: ['module', 'workflow-action-tool'],
106
- };
107
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
108
- expect(result.componentTemplates).toEqual([
109
- mockComponentTemplate,
110
- mockComponentTemplateWithCliSelector,
111
- ]);
112
- });
113
- it('should skip Separator instances when processing components', async () => {
114
- const separator = new Separator();
115
- const templateChoice = {
116
- name: 'Test Module',
117
- value: mockComponentTemplate,
118
- };
119
- const componentTemplates = [separator, templateChoice];
120
- const promptOptions = {
121
- features: ['module'],
122
- };
123
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
124
- expect(result.componentTemplates).toEqual([mockComponentTemplate]);
125
- });
126
- it('should prompt user when no features provided', async () => {
127
- const templateChoice = {
128
- name: 'Test Module',
129
- value: mockComponentTemplate,
130
- };
131
- const componentTemplates = [templateChoice];
132
- const promptOptions = {};
133
- mockedPromptUser.mockResolvedValue({
134
- componentTemplates: [mockComponentTemplate],
135
- });
136
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
137
- expect(mockedPromptUser).toHaveBeenCalledWith([
138
- expect.objectContaining({ name: 'projectTemplate' }),
139
- expect.objectContaining({
140
- name: 'componentTemplates',
141
- type: 'checkbox',
142
- choices: componentTemplates,
143
- }),
144
- ]);
145
- expect(result.componentTemplates).toEqual([mockComponentTemplate]);
146
- });
147
- it('should handle empty componentTemplates selection', async () => {
148
- const templateChoice = {
149
- name: 'Test Module',
150
- value: mockComponentTemplate,
151
- };
152
- const componentTemplates = [templateChoice];
153
- const promptOptions = {
154
- features: ['non-matching-feature'],
155
- };
156
- const result = await selectProjectTemplatePrompt(promptOptions, undefined, componentTemplates);
157
- expect(result.componentTemplates).toEqual([]);
158
- });
159
- });
160
- });