@sanity/cli 6.0.0-alpha.4 → 6.0.0-alpha.6

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 (608) hide show
  1. package/dist/actions/dataset/create.d.ts +49 -0
  2. package/dist/actions/dataset/create.js +48 -0
  3. package/dist/actions/dataset/create.js.map +1 -0
  4. package/dist/actions/dataset/determineDatasetAclMode.d.ts +37 -0
  5. package/dist/actions/dataset/determineDatasetAclMode.js +36 -0
  6. package/dist/actions/dataset/determineDatasetAclMode.js.map +1 -0
  7. package/dist/actions/debug/gatherDebugInfo.js +15 -21
  8. package/dist/actions/debug/gatherDebugInfo.js.map +1 -1
  9. package/dist/actions/debug/types.d.ts +0 -2
  10. package/dist/actions/debug/types.js.map +1 -1
  11. package/dist/actions/deploy/deployApp.js +13 -0
  12. package/dist/actions/deploy/deployApp.js.map +1 -1
  13. package/dist/actions/dev/startStudioDevServer.js +3 -8
  14. package/dist/actions/dev/startStudioDevServer.js.map +1 -1
  15. package/dist/actions/dev/types.d.ts +1 -3
  16. package/dist/actions/dev/types.js.map +1 -1
  17. package/dist/actions/documents/validate.d.ts +0 -2
  18. package/dist/actions/documents/validate.js +21 -1
  19. package/dist/actions/documents/validate.js.map +1 -1
  20. package/dist/actions/exec/execScript.js +1 -1
  21. package/dist/actions/exec/execScript.js.map +1 -1
  22. package/dist/actions/graphql/getGraphQLAPIs.js +1 -1
  23. package/dist/actions/graphql/getGraphQLAPIs.js.map +1 -1
  24. package/dist/actions/init/remoteTemplate.js +1 -1
  25. package/dist/actions/init/remoteTemplate.js.map +1 -1
  26. package/dist/actions/manifest/extractAppManifest.d.ts +20 -0
  27. package/dist/actions/manifest/extractAppManifest.js +51 -0
  28. package/dist/actions/manifest/extractAppManifest.js.map +1 -0
  29. package/dist/actions/manifest/extractManifest.js +2 -5
  30. package/dist/actions/manifest/extractManifest.js.map +1 -1
  31. package/dist/actions/manifest/types.d.ts +6 -1
  32. package/dist/actions/manifest/types.js.map +1 -1
  33. package/dist/actions/media/importAspects.js +2 -1
  34. package/dist/actions/media/importAspects.js.map +1 -1
  35. package/dist/actions/schema/deleteSchemaAction.d.ts +13 -5
  36. package/dist/actions/schema/deleteSchemaAction.js +12 -17
  37. package/dist/actions/schema/deleteSchemaAction.js.map +1 -1
  38. package/dist/actions/schema/deploySchemas.d.ts +15 -0
  39. package/dist/actions/schema/deploySchemas.js +98 -0
  40. package/dist/actions/schema/deploySchemas.js.map +1 -0
  41. package/dist/actions/schema/listSchemas.d.ts +12 -0
  42. package/dist/actions/schema/listSchemas.js +119 -0
  43. package/dist/actions/schema/listSchemas.js.map +1 -0
  44. package/dist/actions/schema/schemaStoreTypes.d.ts +0 -11
  45. package/dist/actions/schema/schemaStoreTypes.js.map +1 -1
  46. package/dist/actions/schema/utils/debug.d.ts +2 -0
  47. package/dist/actions/schema/utils/debug.js +5 -0
  48. package/dist/actions/schema/utils/debug.js.map +1 -0
  49. package/dist/actions/schema/utils/manifestExtractor.d.ts +3 -8
  50. package/dist/actions/schema/utils/manifestExtractor.js +12 -17
  51. package/dist/actions/schema/utils/manifestExtractor.js.map +1 -1
  52. package/dist/actions/schema/utils/manifestReader.d.ts +2 -9
  53. package/dist/actions/schema/utils/manifestReader.js +6 -12
  54. package/dist/actions/schema/utils/manifestReader.js.map +1 -1
  55. package/dist/actions/schema/utils/schemaStoreOutStrings.d.ts +0 -1
  56. package/dist/actions/schema/utils/schemaStoreOutStrings.js +1 -1
  57. package/dist/actions/schema/utils/schemaStoreOutStrings.js.map +1 -1
  58. package/dist/actions/schema/utils/schemaStoreValidation.d.ts +10 -62
  59. package/dist/actions/schema/utils/schemaStoreValidation.js +38 -125
  60. package/dist/actions/schema/utils/schemaStoreValidation.js.map +1 -1
  61. package/dist/actions/schema/utils/uniqByProjectIdDataset.d.ts +14 -0
  62. package/dist/actions/schema/utils/uniqByProjectIdDataset.js +9 -0
  63. package/dist/actions/schema/utils/uniqByProjectIdDataset.js.map +1 -0
  64. package/dist/actions/users/getMembersForProject.d.ts +1 -3
  65. package/dist/actions/users/getMembersForProject.js +6 -17
  66. package/dist/actions/users/getMembersForProject.js.map +1 -1
  67. package/dist/actions/users/types.d.ts +0 -11
  68. package/dist/actions/users/types.js.map +1 -1
  69. package/dist/commands/backup/disable.js +5 -11
  70. package/dist/commands/backup/disable.js.map +1 -1
  71. package/dist/commands/backup/enable.js +5 -11
  72. package/dist/commands/backup/enable.js.map +1 -1
  73. package/dist/commands/backup/list.js +7 -8
  74. package/dist/commands/backup/list.js.map +1 -1
  75. package/dist/commands/cors/add.js +5 -13
  76. package/dist/commands/cors/add.js.map +1 -1
  77. package/dist/commands/cors/delete.js +7 -15
  78. package/dist/commands/cors/delete.js.map +1 -1
  79. package/dist/commands/cors/list.js +2 -10
  80. package/dist/commands/cors/list.js.map +1 -1
  81. package/dist/commands/dataset/create.d.ts +0 -2
  82. package/dist/commands/dataset/create.js +8 -54
  83. package/dist/commands/dataset/create.js.map +1 -1
  84. package/dist/commands/dataset/export.js +4 -4
  85. package/dist/commands/dataset/export.js.map +1 -1
  86. package/dist/commands/debug.js +5 -9
  87. package/dist/commands/debug.js.map +1 -1
  88. package/dist/commands/dev.js +0 -1
  89. package/dist/commands/dev.js.map +1 -1
  90. package/dist/commands/documents/create.d.ts +1 -0
  91. package/dist/commands/documents/create.js +10 -9
  92. package/dist/commands/documents/create.js.map +1 -1
  93. package/dist/commands/documents/delete.js +2 -3
  94. package/dist/commands/documents/delete.js.map +1 -1
  95. package/dist/commands/documents/get.js +2 -3
  96. package/dist/commands/documents/get.js.map +1 -1
  97. package/dist/commands/documents/query.js +2 -3
  98. package/dist/commands/documents/query.js.map +1 -1
  99. package/dist/commands/documents/validate.js +0 -20
  100. package/dist/commands/documents/validate.js.map +1 -1
  101. package/dist/commands/graphql/list.js +2 -2
  102. package/dist/commands/graphql/list.js.map +1 -1
  103. package/dist/commands/graphql/undeploy.js +4 -9
  104. package/dist/commands/graphql/undeploy.js.map +1 -1
  105. package/dist/commands/hook/create.js +2 -6
  106. package/dist/commands/hook/create.js.map +1 -1
  107. package/dist/commands/hook/delete.js +5 -17
  108. package/dist/commands/hook/delete.js.map +1 -1
  109. package/dist/commands/hook/list.js +2 -8
  110. package/dist/commands/hook/list.js.map +1 -1
  111. package/dist/commands/init.d.ts +6 -1
  112. package/dist/commands/init.js +358 -20
  113. package/dist/commands/init.js.map +1 -1
  114. package/dist/commands/manifest/extract.js +7 -8
  115. package/dist/commands/manifest/extract.js.map +1 -1
  116. package/dist/commands/media/export.js +2 -2
  117. package/dist/commands/media/export.js.map +1 -1
  118. package/dist/commands/media/import.js +2 -2
  119. package/dist/commands/media/import.js.map +1 -1
  120. package/dist/commands/projects/list.js +2 -6
  121. package/dist/commands/projects/list.js.map +1 -1
  122. package/dist/commands/schema/delete.d.ts +1 -1
  123. package/dist/commands/schema/delete.js +20 -23
  124. package/dist/commands/schema/delete.js.map +1 -1
  125. package/dist/commands/schema/deploy.d.ts +16 -0
  126. package/dist/commands/schema/deploy.js +98 -0
  127. package/dist/commands/schema/deploy.js.map +1 -0
  128. package/dist/commands/schema/list.d.ts +15 -0
  129. package/dist/commands/schema/list.js +104 -0
  130. package/dist/commands/schema/list.js.map +1 -0
  131. package/dist/commands/tokens/add.js +3 -5
  132. package/dist/commands/tokens/add.js.map +1 -1
  133. package/dist/commands/users/invite.js +6 -17
  134. package/dist/commands/users/invite.js.map +1 -1
  135. package/dist/commands/users/list.js +4 -7
  136. package/dist/commands/users/list.js.map +1 -1
  137. package/dist/config/createCliConfig.d.ts +13 -4
  138. package/dist/prompts/init/promptForTypescript.d.ts +2 -0
  139. package/dist/prompts/init/promptForTypescript.js +15 -0
  140. package/dist/prompts/init/promptForTypescript.js.map +1 -0
  141. package/dist/prompts/promptForDatasetAclMode.d.ts +9 -0
  142. package/dist/prompts/promptForDatasetAclMode.js +27 -0
  143. package/dist/prompts/promptForDatasetAclMode.js.map +1 -0
  144. package/dist/prompts/promptForDatasetName.d.ts +1 -1
  145. package/dist/prompts/promptForDatasetName.js +4 -1
  146. package/dist/prompts/promptForDatasetName.js.map +1 -1
  147. package/dist/services/backup.d.ts +8 -0
  148. package/dist/services/backup.js +19 -0
  149. package/dist/services/backup.js.map +1 -1
  150. package/dist/services/cors.d.ts +23 -0
  151. package/dist/services/cors.js +38 -0
  152. package/dist/services/cors.js.map +1 -0
  153. package/dist/services/graphql.d.ts +7 -0
  154. package/dist/services/graphql.js +11 -0
  155. package/dist/services/graphql.js.map +1 -1
  156. package/dist/services/hooks.d.ts +2 -0
  157. package/dist/services/hooks.js +19 -0
  158. package/dist/services/hooks.js.map +1 -1
  159. package/dist/services/organizations.d.ts +4 -2
  160. package/dist/services/organizations.js +3 -2
  161. package/dist/services/organizations.js.map +1 -1
  162. package/dist/services/projects.d.ts +11 -0
  163. package/dist/services/projects.js +41 -0
  164. package/dist/services/projects.js.map +1 -1
  165. package/dist/services/schemas.d.ts +4 -0
  166. package/dist/services/schemas.js +40 -0
  167. package/dist/services/schemas.js.map +1 -0
  168. package/dist/services/user.d.ts +13 -0
  169. package/dist/services/user.js +27 -3
  170. package/dist/services/user.js.map +1 -1
  171. package/dist/services/userApplications.d.ts +3 -1
  172. package/dist/services/userApplications.js +5 -1
  173. package/dist/services/userApplications.js.map +1 -1
  174. package/dist/util/errorMessages.d.ts +1 -0
  175. package/dist/util/errorMessages.js +1 -0
  176. package/dist/util/errorMessages.js.map +1 -1
  177. package/dist/util/getCliVersion.js +1 -1
  178. package/dist/util/getCliVersion.js.map +1 -1
  179. package/dist/util/readPackageJson.d.ts +1 -15
  180. package/dist/util/readPackageJson.js +1 -1
  181. package/dist/util/readPackageJson.js.map +1 -1
  182. package/dist/util/uniqBy.d.ts +1 -0
  183. package/dist/util/uniqBy.js +14 -0
  184. package/dist/util/uniqBy.js.map +1 -0
  185. package/oclif.manifest.json +284 -139
  186. package/package.json +36 -33
  187. package/templates/app-quickstart/src/App.css +20 -0
  188. package/templates/app-quickstart/src/App.tsx +25 -0
  189. package/templates/app-quickstart/src/ExampleComponent.css +90 -0
  190. package/templates/app-quickstart/src/ExampleComponent.tsx +37 -0
  191. package/templates/app-sanity-ui/src/App.tsx +34 -0
  192. package/templates/app-sanity-ui/src/ExampleComponent.tsx +34 -0
  193. package/templates/app-sanity-ui/src/SanityUI.tsx +23 -0
  194. package/templates/blog/README.md +11 -0
  195. package/templates/blog/schemaTypes/author.js +50 -0
  196. package/templates/blog/schemaTypes/blockContent.js +67 -0
  197. package/templates/blog/schemaTypes/category.js +19 -0
  198. package/templates/blog/schemaTypes/index.js +6 -0
  199. package/templates/blog/schemaTypes/post.js +65 -0
  200. package/templates/blog/static/.gitkeep +1 -0
  201. package/templates/clean/README.md +9 -0
  202. package/templates/clean/schemaTypes/index.js +1 -0
  203. package/templates/clean/static/.gitkeep +1 -0
  204. package/templates/ecommerce/README.md +11 -0
  205. package/templates/ecommerce/plugins/.gitkeep +1 -0
  206. package/templates/ecommerce/plugins/barcode-input/BarcodeInput.js +62 -0
  207. package/templates/ecommerce/plugins/barcode-input/index.js +9 -0
  208. package/templates/ecommerce/plugins/barcode-input/schemaType.js +60 -0
  209. package/templates/ecommerce/schemaTypes/blockContent.js +67 -0
  210. package/templates/ecommerce/schemaTypes/category.js +39 -0
  211. package/templates/ecommerce/schemaTypes/index.js +23 -0
  212. package/templates/ecommerce/schemaTypes/locale/localeBlockContent.js +19 -0
  213. package/templates/ecommerce/schemaTypes/locale/localeString.js +19 -0
  214. package/templates/ecommerce/schemaTypes/locale/localeText.js +19 -0
  215. package/templates/ecommerce/schemaTypes/locale/supportedLanguages.js +5 -0
  216. package/templates/ecommerce/schemaTypes/product.js +83 -0
  217. package/templates/ecommerce/schemaTypes/productVariant.js +52 -0
  218. package/templates/ecommerce/schemaTypes/vendor.js +39 -0
  219. package/templates/ecommerce/static/.gitkeep +1 -0
  220. package/templates/get-started/README.md +9 -0
  221. package/templates/get-started/plugins/.gitkeep +1 -0
  222. package/templates/get-started/plugins/sanity-plugin-tutorial/CustomDefaultLayout.tsx +16 -0
  223. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +104 -0
  224. package/templates/get-started/plugins/sanity-plugin-tutorial/index.ts +11 -0
  225. package/templates/get-started/schemaTypes/index.ts +1 -0
  226. package/templates/get-started/static/.gitkeep +1 -0
  227. package/templates/moviedb/README.md +10 -0
  228. package/templates/moviedb/schemaTypes/blockContent.js +67 -0
  229. package/templates/moviedb/schemaTypes/castMember.js +37 -0
  230. package/templates/moviedb/schemaTypes/crewMember.js +52 -0
  231. package/templates/moviedb/schemaTypes/index.js +22 -0
  232. package/templates/moviedb/schemaTypes/movie.js +85 -0
  233. package/templates/moviedb/schemaTypes/person.js +37 -0
  234. package/templates/moviedb/schemaTypes/plotSummaries.js +20 -0
  235. package/templates/moviedb/schemaTypes/plotSummary.js +24 -0
  236. package/templates/moviedb/schemaTypes/screening.js +81 -0
  237. package/templates/moviedb/static/.gitkeep +1 -0
  238. package/templates/quickstart/README.md +9 -0
  239. package/templates/quickstart/schemaTypes/index.js +1 -0
  240. package/templates/quickstart/static/.gitkeep +1 -0
  241. package/templates/shared/gitignore.txt +29 -0
  242. package/templates/shared/tsconfig.json +17 -0
  243. package/templates/shopify/README.md +85 -0
  244. package/templates/shopify/components/hotspots/ProductTooltip.tsx +38 -0
  245. package/templates/shopify/components/icons/Shopify.tsx +20 -0
  246. package/templates/shopify/components/inputs/CollectionHidden.tsx +23 -0
  247. package/templates/shopify/components/inputs/PlaceholderString.tsx +20 -0
  248. package/templates/shopify/components/inputs/ProductHidden.tsx +64 -0
  249. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +24 -0
  250. package/templates/shopify/components/inputs/ProxyString.tsx +32 -0
  251. package/templates/shopify/components/media/ColorTheme.tsx +38 -0
  252. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +82 -0
  253. package/templates/shopify/components/studio/Navbar.tsx +29 -0
  254. package/templates/shopify/constants.ts +61 -0
  255. package/templates/shopify/docs/features.md +158 -0
  256. package/templates/shopify/plugins/customDocumentActions/index.ts +55 -0
  257. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +144 -0
  258. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +39 -0
  259. package/templates/shopify/plugins/customDocumentActions/types.ts +14 -0
  260. package/templates/shopify/schemaTypes/documents/collection.tsx +142 -0
  261. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +44 -0
  262. package/templates/shopify/schemaTypes/documents/page.ts +70 -0
  263. package/templates/shopify/schemaTypes/documents/product.tsx +132 -0
  264. package/templates/shopify/schemaTypes/documents/productVariant.tsx +67 -0
  265. package/templates/shopify/schemaTypes/index.ts +108 -0
  266. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +27 -0
  267. package/templates/shopify/schemaTypes/objects/collection/collectionLinksType.ts +16 -0
  268. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorObjectType.tsx +48 -0
  269. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionColorType.tsx +50 -0
  270. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeObjectType.ts +40 -0
  271. package/templates/shopify/schemaTypes/objects/customProductOption/customProductOptionSizeType.ts +49 -0
  272. package/templates/shopify/schemaTypes/objects/global/footerType.ts +22 -0
  273. package/templates/shopify/schemaTypes/objects/global/menuLinksType.ts +21 -0
  274. package/templates/shopify/schemaTypes/objects/global/menuType.ts +17 -0
  275. package/templates/shopify/schemaTypes/objects/global/notFoundPageType.ts +37 -0
  276. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +48 -0
  277. package/templates/shopify/schemaTypes/objects/hotspot/productHotspotsType.tsx +17 -0
  278. package/templates/shopify/schemaTypes/objects/hotspot/spotType.tsx +60 -0
  279. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +34 -0
  280. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +37 -0
  281. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +33 -0
  282. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +60 -0
  283. package/templates/shopify/schemaTypes/objects/module/accordionGroupType.ts +33 -0
  284. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +28 -0
  285. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +85 -0
  286. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +38 -0
  287. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +47 -0
  288. package/templates/shopify/schemaTypes/objects/module/gridItemType.ts +41 -0
  289. package/templates/shopify/schemaTypes/objects/module/gridType.ts +28 -0
  290. package/templates/shopify/schemaTypes/objects/module/heroType.tsx +40 -0
  291. package/templates/shopify/schemaTypes/objects/module/imageCallToActionType.tsx +19 -0
  292. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +80 -0
  293. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +51 -0
  294. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +35 -0
  295. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +50 -0
  296. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +42 -0
  297. package/templates/shopify/schemaTypes/objects/seoType.ts +31 -0
  298. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +37 -0
  299. package/templates/shopify/schemaTypes/objects/shopify/inventoryType.ts +25 -0
  300. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +31 -0
  301. package/templates/shopify/schemaTypes/objects/shopify/placeholderStringType.ts +11 -0
  302. package/templates/shopify/schemaTypes/objects/shopify/priceRangeType.ts +20 -0
  303. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +142 -0
  304. package/templates/shopify/schemaTypes/objects/shopify/proxyStringType.ts +12 -0
  305. package/templates/shopify/schemaTypes/objects/shopify/shopType.ts +15 -0
  306. package/templates/shopify/schemaTypes/objects/shopify/shopifyCollectionType.ts +84 -0
  307. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductType.ts +131 -0
  308. package/templates/shopify/schemaTypes/objects/shopify/shopifyProductVariantType.ts +121 -0
  309. package/templates/shopify/schemaTypes/portableText/portableTextSimpleType.tsx +45 -0
  310. package/templates/shopify/schemaTypes/portableText/portableTextType.tsx +52 -0
  311. package/templates/shopify/schemaTypes/singletons/homeType.ts +49 -0
  312. package/templates/shopify/schemaTypes/singletons/settingsType.ts +96 -0
  313. package/templates/shopify/static/.gitkeep +1 -0
  314. package/templates/shopify/structure/collectionStructure.ts +9 -0
  315. package/templates/shopify/structure/colorThemeStructure.ts +9 -0
  316. package/templates/shopify/structure/homeStructure.ts +9 -0
  317. package/templates/shopify/structure/index.ts +57 -0
  318. package/templates/shopify/structure/pageStructure.ts +11 -0
  319. package/templates/shopify/structure/productStructure.ts +51 -0
  320. package/templates/shopify/structure/settingStructure.ts +9 -0
  321. package/templates/shopify/utils/blocksToText.ts +20 -0
  322. package/templates/shopify/utils/defineStructure.ts +11 -0
  323. package/templates/shopify/utils/getPriceRange.ts +24 -0
  324. package/templates/shopify/utils/shopifyUrls.ts +22 -0
  325. package/templates/shopify/utils/validateSlug.ts +18 -0
  326. package/templates/shopify-online-storefront/README.md +54 -0
  327. package/templates/shopify-online-storefront/components/icons/Shopify.tsx +22 -0
  328. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +23 -0
  329. package/templates/shopify-online-storefront/components/inputs/PlaceholderString.tsx +25 -0
  330. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +66 -0
  331. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +25 -0
  332. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +38 -0
  333. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +83 -0
  334. package/templates/shopify-online-storefront/constants.ts +18 -0
  335. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/index.ts +45 -0
  336. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +144 -0
  337. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +39 -0
  338. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/types.ts +14 -0
  339. package/templates/shopify-online-storefront/schemaTypes/blocks/blockContent.ts +32 -0
  340. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +83 -0
  341. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +102 -0
  342. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +82 -0
  343. package/templates/shopify-online-storefront/schemaTypes/index.ts +43 -0
  344. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +31 -0
  345. package/templates/shopify-online-storefront/schemaTypes/objects/accordionGroup.ts +35 -0
  346. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +40 -0
  347. package/templates/shopify-online-storefront/schemaTypes/objects/inventory.ts +30 -0
  348. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +30 -0
  349. package/templates/shopify-online-storefront/schemaTypes/objects/priceRange.ts +22 -0
  350. package/templates/shopify-online-storefront/schemaTypes/objects/proxyString.ts +11 -0
  351. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollection.ts +109 -0
  352. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +45 -0
  353. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProduct.ts +165 -0
  354. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyProductVariant.ts +151 -0
  355. package/templates/shopify-online-storefront/structure/collectionStructure.ts +9 -0
  356. package/templates/shopify-online-storefront/structure/index.ts +37 -0
  357. package/templates/shopify-online-storefront/structure/productStructure.ts +35 -0
  358. package/templates/shopify-online-storefront/utils/defineStructure.ts +11 -0
  359. package/templates/shopify-online-storefront/utils/getPriceRange.ts +24 -0
  360. package/templates/shopify-online-storefront/utils/shopifyUrls.ts +22 -0
  361. package/dist/actions/build/__tests__/buildApp.test.js +0 -367
  362. package/dist/actions/build/__tests__/buildApp.test.js.map +0 -1
  363. package/dist/actions/build/__tests__/buildStudio.test.js +0 -561
  364. package/dist/actions/build/__tests__/buildStudio.test.js.map +0 -1
  365. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js +0 -233
  366. package/dist/actions/build/__tests__/checkRequiredDependencies.test.js.map +0 -1
  367. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js +0 -414
  368. package/dist/actions/build/__tests__/checkStudioDependencyVersions.test.js.map +0 -1
  369. package/dist/actions/build/__tests__/determineBasePath.test.js +0 -24
  370. package/dist/actions/build/__tests__/determineBasePath.test.js.map +0 -1
  371. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js +0 -109
  372. package/dist/actions/build/__tests__/getAutoUpdatesImportMap.test.js.map +0 -1
  373. package/dist/actions/build/__tests__/getViteConfig.test.js +0 -493
  374. package/dist/actions/build/__tests__/getViteConfig.test.js.map +0 -1
  375. package/dist/actions/build/__tests__/renderDocument.test.js +0 -278
  376. package/dist/actions/build/__tests__/renderDocument.test.js.map +0 -1
  377. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js +0 -153
  378. package/dist/actions/build/__tests__/shouldAutoUpdate.test.js.map +0 -1
  379. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js +0 -657
  380. package/dist/actions/build/renderDocumentWorker/__tests__/renderDocumentWorker.test.js.map +0 -1
  381. package/dist/actions/cors/constants.d.ts +0 -1
  382. package/dist/actions/cors/constants.js +0 -3
  383. package/dist/actions/cors/constants.js.map +0 -1
  384. package/dist/actions/cors/types.d.ts +0 -9
  385. package/dist/actions/cors/types.js +0 -3
  386. package/dist/actions/cors/types.js.map +0 -1
  387. package/dist/actions/dataset/__tests__/validateDatasetName.test.js +0 -182
  388. package/dist/actions/dataset/__tests__/validateDatasetName.test.js.map +0 -1
  389. package/dist/actions/deploy/__tests__/checkDir.test.js +0 -120
  390. package/dist/actions/deploy/__tests__/checkDir.test.js.map +0 -1
  391. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js +0 -16
  392. package/dist/actions/docs/__tests__/normalizeDocsPath.test.js.map +0 -1
  393. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js +0 -124
  394. package/dist/actions/documents/validation/reporters/prettyReporter/__tests__/formatDocumentValidation.test.js.map +0 -1
  395. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js +0 -274
  396. package/dist/actions/graphql/__tests__/getGraphQLAPIs.test.js.map +0 -1
  397. package/dist/actions/media/__tests__/importMedia.test.js +0 -182
  398. package/dist/actions/media/__tests__/importMedia.test.js.map +0 -1
  399. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js +0 -294
  400. package/dist/actions/schema/__tests__/deleteSchemaAction.test.js.map +0 -1
  401. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js +0 -174
  402. package/dist/actions/schema/__tests__/formatSchemaValidation.test.js.map +0 -1
  403. package/dist/actions/schema/__tests__/validateAction.test.js +0 -281
  404. package/dist/actions/schema/__tests__/validateAction.test.js.map +0 -1
  405. package/dist/actions/schema/schemaStoreConstants.d.ts +0 -1
  406. package/dist/actions/schema/schemaStoreConstants.js +0 -4
  407. package/dist/actions/schema/schemaStoreConstants.js.map +0 -1
  408. package/dist/actions/schema/utils/schemaActionHelpers.d.ts +0 -1
  409. package/dist/actions/schema/utils/schemaActionHelpers.js +0 -5
  410. package/dist/actions/schema/utils/schemaActionHelpers.js.map +0 -1
  411. package/dist/actions/schema/utils/schemaApiClient.d.ts +0 -6
  412. package/dist/actions/schema/utils/schemaApiClient.js +0 -17
  413. package/dist/actions/schema/utils/schemaApiClient.js.map +0 -1
  414. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js +0 -27
  415. package/dist/actions/telemetry/__tests__/fetchTelemetryConsent.test.js.map +0 -1
  416. package/dist/actions/users/__tests__/validateEmail.test.js +0 -16
  417. package/dist/actions/users/__tests__/validateEmail.test.js.map +0 -1
  418. package/dist/actions/users/apiVersion.d.ts +0 -6
  419. package/dist/actions/users/apiVersion.js +0 -7
  420. package/dist/actions/users/apiVersion.js.map +0 -1
  421. package/dist/commands/__tests__/blueprints.test.js +0 -54
  422. package/dist/commands/__tests__/blueprints.test.js.map +0 -1
  423. package/dist/commands/__tests__/build.test.js +0 -132
  424. package/dist/commands/__tests__/build.test.js.map +0 -1
  425. package/dist/commands/__tests__/codemod.test.js +0 -271
  426. package/dist/commands/__tests__/codemod.test.js.map +0 -1
  427. package/dist/commands/__tests__/debug.test.js +0 -697
  428. package/dist/commands/__tests__/debug.test.js.map +0 -1
  429. package/dist/commands/__tests__/deploy.test.js +0 -1913
  430. package/dist/commands/__tests__/deploy.test.js.map +0 -1
  431. package/dist/commands/__tests__/dev.test.js +0 -410
  432. package/dist/commands/__tests__/dev.test.js.map +0 -1
  433. package/dist/commands/__tests__/exec.test.js +0 -207
  434. package/dist/commands/__tests__/exec.test.js.map +0 -1
  435. package/dist/commands/__tests__/init/init.authentication.test.js +0 -60
  436. package/dist/commands/__tests__/init/init.authentication.test.js.map +0 -1
  437. package/dist/commands/__tests__/init/init.create-new-project.test.js +0 -196
  438. package/dist/commands/__tests__/init/init.create-new-project.test.js.map +0 -1
  439. package/dist/commands/__tests__/init/init.plan.test.js +0 -220
  440. package/dist/commands/__tests__/init/init.plan.test.js.map +0 -1
  441. package/dist/commands/__tests__/init/init.setup.test.js +0 -279
  442. package/dist/commands/__tests__/init/init.setup.test.js.map +0 -1
  443. package/dist/commands/__tests__/install.test.js +0 -258
  444. package/dist/commands/__tests__/install.test.js.map +0 -1
  445. package/dist/commands/__tests__/learn.test.js +0 -29
  446. package/dist/commands/__tests__/learn.test.js.map +0 -1
  447. package/dist/commands/__tests__/logout.test.js +0 -88
  448. package/dist/commands/__tests__/logout.test.js.map +0 -1
  449. package/dist/commands/__tests__/manage.test.js +0 -105
  450. package/dist/commands/__tests__/manage.test.js.map +0 -1
  451. package/dist/commands/__tests__/migration.test.js +0 -119
  452. package/dist/commands/__tests__/migration.test.js.map +0 -1
  453. package/dist/commands/__tests__/preview.test.js +0 -261
  454. package/dist/commands/__tests__/preview.test.js.map +0 -1
  455. package/dist/commands/__tests__/start.test.js +0 -253
  456. package/dist/commands/__tests__/start.test.js.map +0 -1
  457. package/dist/commands/__tests__/undeploy.test.js +0 -382
  458. package/dist/commands/__tests__/undeploy.test.js.map +0 -1
  459. package/dist/commands/__tests__/versions.test.js +0 -134
  460. package/dist/commands/__tests__/versions.test.js.map +0 -1
  461. package/dist/commands/backup/__tests__/disable.test.js +0 -207
  462. package/dist/commands/backup/__tests__/disable.test.js.map +0 -1
  463. package/dist/commands/backup/__tests__/download.test.js +0 -679
  464. package/dist/commands/backup/__tests__/download.test.js.map +0 -1
  465. package/dist/commands/backup/__tests__/enable.test.js +0 -317
  466. package/dist/commands/backup/__tests__/enable.test.js.map +0 -1
  467. package/dist/commands/backup/__tests__/list.test.js +0 -321
  468. package/dist/commands/backup/__tests__/list.test.js.map +0 -1
  469. package/dist/commands/cors/__tests__/add.test.js +0 -346
  470. package/dist/commands/cors/__tests__/add.test.js.map +0 -1
  471. package/dist/commands/cors/__tests__/delete.test.js +0 -293
  472. package/dist/commands/cors/__tests__/delete.test.js.map +0 -1
  473. package/dist/commands/cors/__tests__/list.test.js +0 -218
  474. package/dist/commands/cors/__tests__/list.test.js.map +0 -1
  475. package/dist/commands/dataset/__tests__/copy.test.js +0 -520
  476. package/dist/commands/dataset/__tests__/copy.test.js.map +0 -1
  477. package/dist/commands/dataset/__tests__/create.test.js +0 -312
  478. package/dist/commands/dataset/__tests__/create.test.js.map +0 -1
  479. package/dist/commands/dataset/__tests__/delete.test.js +0 -224
  480. package/dist/commands/dataset/__tests__/delete.test.js.map +0 -1
  481. package/dist/commands/dataset/__tests__/export.test.js +0 -561
  482. package/dist/commands/dataset/__tests__/export.test.js.map +0 -1
  483. package/dist/commands/dataset/__tests__/import.test.js +0 -53
  484. package/dist/commands/dataset/__tests__/import.test.js.map +0 -1
  485. package/dist/commands/dataset/__tests__/list.test.js +0 -174
  486. package/dist/commands/dataset/__tests__/list.test.js.map +0 -1
  487. package/dist/commands/dataset/alias/__tests__/create.test.js +0 -299
  488. package/dist/commands/dataset/alias/__tests__/create.test.js.map +0 -1
  489. package/dist/commands/dataset/alias/__tests__/delete.test.js +0 -236
  490. package/dist/commands/dataset/alias/__tests__/delete.test.js.map +0 -1
  491. package/dist/commands/dataset/alias/__tests__/link.test.js +0 -336
  492. package/dist/commands/dataset/alias/__tests__/link.test.js.map +0 -1
  493. package/dist/commands/dataset/alias/__tests__/unlink.test.js +0 -298
  494. package/dist/commands/dataset/alias/__tests__/unlink.test.js.map +0 -1
  495. package/dist/commands/dataset/visibility/__tests__/get.test.js +0 -147
  496. package/dist/commands/dataset/visibility/__tests__/get.test.js.map +0 -1
  497. package/dist/commands/dataset/visibility/__tests__/set.test.js +0 -245
  498. package/dist/commands/dataset/visibility/__tests__/set.test.js.map +0 -1
  499. package/dist/commands/docs/__tests__/browse.test.js +0 -29
  500. package/dist/commands/docs/__tests__/browse.test.js.map +0 -1
  501. package/dist/commands/docs/__tests__/read.test.js +0 -78
  502. package/dist/commands/docs/__tests__/read.test.js.map +0 -1
  503. package/dist/commands/docs/__tests__/search.test.js +0 -254
  504. package/dist/commands/docs/__tests__/search.test.js.map +0 -1
  505. package/dist/commands/documents/__tests__/create.test.js +0 -967
  506. package/dist/commands/documents/__tests__/create.test.js.map +0 -1
  507. package/dist/commands/documents/__tests__/delete.test.js +0 -268
  508. package/dist/commands/documents/__tests__/delete.test.js.map +0 -1
  509. package/dist/commands/documents/__tests__/get.test.js +0 -209
  510. package/dist/commands/documents/__tests__/get.test.js.map +0 -1
  511. package/dist/commands/documents/__tests__/query.test.js +0 -405
  512. package/dist/commands/documents/__tests__/query.test.js.map +0 -1
  513. package/dist/commands/documents/__tests__/validate.test.js +0 -226
  514. package/dist/commands/documents/__tests__/validate.test.js.map +0 -1
  515. package/dist/commands/graphql/__tests__/list.test.js +0 -228
  516. package/dist/commands/graphql/__tests__/list.test.js.map +0 -1
  517. package/dist/commands/graphql/__tests__/undeploy.test.js +0 -384
  518. package/dist/commands/graphql/__tests__/undeploy.test.js.map +0 -1
  519. package/dist/commands/hook/__tests__/attempt.test.js +0 -260
  520. package/dist/commands/hook/__tests__/attempt.test.js.map +0 -1
  521. package/dist/commands/hook/__tests__/create.test.js +0 -121
  522. package/dist/commands/hook/__tests__/create.test.js.map +0 -1
  523. package/dist/commands/hook/__tests__/delete.test.js +0 -220
  524. package/dist/commands/hook/__tests__/delete.test.js.map +0 -1
  525. package/dist/commands/hook/__tests__/list.test.js +0 -138
  526. package/dist/commands/hook/__tests__/list.test.js.map +0 -1
  527. package/dist/commands/hook/__tests__/logs.test.js +0 -770
  528. package/dist/commands/hook/__tests__/logs.test.js.map +0 -1
  529. package/dist/commands/manifest/__tests__/extract.test.js +0 -123
  530. package/dist/commands/manifest/__tests__/extract.test.js.map +0 -1
  531. package/dist/commands/mcp/__tests__/configure.test.js +0 -397
  532. package/dist/commands/mcp/__tests__/configure.test.js.map +0 -1
  533. package/dist/commands/media/__tests__/create-aspect.test.js +0 -160
  534. package/dist/commands/media/__tests__/create-aspect.test.js.map +0 -1
  535. package/dist/commands/media/__tests__/delete-aspect.test.js +0 -333
  536. package/dist/commands/media/__tests__/delete-aspect.test.js.map +0 -1
  537. package/dist/commands/media/__tests__/deploy-aspect.test.js +0 -632
  538. package/dist/commands/media/__tests__/deploy-aspect.test.js.map +0 -1
  539. package/dist/commands/media/__tests__/export.test.js +0 -398
  540. package/dist/commands/media/__tests__/export.test.js.map +0 -1
  541. package/dist/commands/media/__tests__/import.test.js +0 -281
  542. package/dist/commands/media/__tests__/import.test.js.map +0 -1
  543. package/dist/commands/openapi/__tests__/get.test.js +0 -149
  544. package/dist/commands/openapi/__tests__/get.test.js.map +0 -1
  545. package/dist/commands/openapi/__tests__/list.test.js +0 -113
  546. package/dist/commands/openapi/__tests__/list.test.js.map +0 -1
  547. package/dist/commands/projects/__tests__/list.test.js +0 -153
  548. package/dist/commands/projects/__tests__/list.test.js.map +0 -1
  549. package/dist/commands/schema/__tests__/delete.test.js +0 -209
  550. package/dist/commands/schema/__tests__/delete.test.js.map +0 -1
  551. package/dist/commands/schema/__tests__/extract.test.js +0 -113
  552. package/dist/commands/schema/__tests__/extract.test.js.map +0 -1
  553. package/dist/commands/schema/__tests__/validate.test.js +0 -104
  554. package/dist/commands/schema/__tests__/validate.test.js.map +0 -1
  555. package/dist/commands/telemetry/__tests__/disable.test.js +0 -145
  556. package/dist/commands/telemetry/__tests__/disable.test.js.map +0 -1
  557. package/dist/commands/telemetry/__tests__/enable.test.js +0 -131
  558. package/dist/commands/telemetry/__tests__/enable.test.js.map +0 -1
  559. package/dist/commands/telemetry/__tests__/status.test.js +0 -153
  560. package/dist/commands/telemetry/__tests__/status.test.js.map +0 -1
  561. package/dist/commands/tokens/__tests__/add.test.js +0 -420
  562. package/dist/commands/tokens/__tests__/add.test.js.map +0 -1
  563. package/dist/commands/tokens/__tests__/delete.test.js +0 -375
  564. package/dist/commands/tokens/__tests__/delete.test.js.map +0 -1
  565. package/dist/commands/tokens/__tests__/list.test.js +0 -368
  566. package/dist/commands/tokens/__tests__/list.test.js.map +0 -1
  567. package/dist/commands/users/__tests__/invite.test.js +0 -341
  568. package/dist/commands/users/__tests__/invite.test.js.map +0 -1
  569. package/dist/commands/users/__tests__/list.test.js +0 -401
  570. package/dist/commands/users/__tests__/list.test.js.map +0 -1
  571. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js +0 -77
  572. package/dist/hooks/prerun/__tests__/setupTelemetry.test.js.map +0 -1
  573. package/dist/services/__tests__/datasetAliases.test.js +0 -131
  574. package/dist/services/__tests__/datasetAliases.test.js.map +0 -1
  575. package/dist/services/__tests__/datasets.test.js +0 -436
  576. package/dist/services/__tests__/datasets.test.js.map +0 -1
  577. package/dist/services/__tests__/graphql.test.js +0 -43
  578. package/dist/services/__tests__/graphql.test.js.map +0 -1
  579. package/dist/services/__tests__/mediaLibraries.test.js +0 -88
  580. package/dist/services/__tests__/mediaLibraries.test.js.map +0 -1
  581. package/dist/services/__tests__/projects.test.js +0 -41
  582. package/dist/services/__tests__/projects.test.js.map +0 -1
  583. package/dist/services/__tests__/userApplications.test.js +0 -113
  584. package/dist/services/__tests__/userApplications.test.js.map +0 -1
  585. package/dist/util/__tests__/appId.test.js +0 -31
  586. package/dist/util/__tests__/appId.test.js.map +0 -1
  587. package/dist/util/__tests__/cliClient.test.js +0 -184
  588. package/dist/util/__tests__/cliClient.test.js.map +0 -1
  589. package/dist/util/__tests__/compareDependencyVersions.test.js +0 -426
  590. package/dist/util/__tests__/compareDependencyVersions.test.js.map +0 -1
  591. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js +0 -74
  592. package/dist/util/__tests__/extractDocumentsFromNdjsonOrTarball.test.js.map +0 -1
  593. package/dist/util/__tests__/findNdjsonEntry.test.js +0 -54
  594. package/dist/util/__tests__/findNdjsonEntry.test.js.map +0 -1
  595. package/dist/util/__tests__/getCliVersion.test.js +0 -28
  596. package/dist/util/__tests__/getCliVersion.test.js.map +0 -1
  597. package/dist/util/__tests__/getLocalPackageVersion.test.js +0 -84
  598. package/dist/util/__tests__/getLocalPackageVersion.test.js.map +0 -1
  599. package/dist/util/__tests__/getWorkspace.test.js +0 -37
  600. package/dist/util/__tests__/getWorkspace.test.js.map +0 -1
  601. package/dist/util/__tests__/readPackageJson.test.js +0 -69
  602. package/dist/util/__tests__/readPackageJson.test.js.map +0 -1
  603. package/dist/util/__tests__/warnAboutMissingAppId.test.js +0 -28
  604. package/dist/util/__tests__/warnAboutMissingAppId.test.js.map +0 -1
  605. package/dist/util/packageManager/__tests__/installPackages.test.js +0 -388
  606. package/dist/util/packageManager/__tests__/installPackages.test.js.map +0 -1
  607. package/dist/util/validation/ __tests__/validateDocuments.test.js +0 -274
  608. package/dist/util/validation/ __tests__/validateDocuments.test.js.map +0 -1
@@ -1,312 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { input, select } from '@sanity/cli-core/ux';
3
- import { testCommand } from '@sanity/cli-test';
4
- import { afterEach, describe, expect, test, vi } from 'vitest';
5
- import { getCliConfig } from '../../../../../cli-core/src/config/cli/getCliConfig.js';
6
- import { getProjectCliClient } from '../../../../../cli-core/src/services/apiClient.js';
7
- import { CreateDatasetCommand } from '../create.js';
8
- vi.mock('../../../../../cli-core/src/config/findProjectRoot.js', ()=>({
9
- findProjectRoot: vi.fn().mockResolvedValue({
10
- directory: '/test/path',
11
- root: '/test/path',
12
- type: 'studio'
13
- })
14
- }));
15
- vi.mock('../../../../../cli-core/src/config/cli/getCliConfig.js', ()=>({
16
- getCliConfig: vi.fn().mockResolvedValue({
17
- api: {
18
- projectId: 'test-project'
19
- }
20
- })
21
- }));
22
- vi.mock('../../../../../cli-core/src/services/getCliToken.js', ()=>({
23
- getCliToken: vi.fn().mockResolvedValue('test-token')
24
- }));
25
- vi.mock('../../../../../cli-core/src/services/apiClient.js', ()=>({
26
- getProjectCliClient: vi.fn()
27
- }));
28
- vi.mock('@sanity/cli-core/ux', async ()=>{
29
- const actual = await vi.importActual('@sanity/cli-core/ux');
30
- return {
31
- ...actual,
32
- input: vi.fn(),
33
- select: vi.fn()
34
- };
35
- });
36
- const mockGetProjectCliClient = vi.mocked(getProjectCliClient);
37
- const mockGetCliConfig = vi.mocked(getCliConfig);
38
- const mockInput = vi.mocked(input);
39
- const mockSelect = vi.mocked(select);
40
- const createMockClient = (overrides = {})=>{
41
- const defaultDatasets = {
42
- create: vi.fn().mockResolvedValue(undefined),
43
- list: vi.fn().mockResolvedValue([])
44
- };
45
- const datasetsOverrides = overrides.datasets;
46
- return {
47
- datasets: datasetsOverrides ? {
48
- ...defaultDatasets,
49
- ...datasetsOverrides
50
- } : defaultDatasets,
51
- request: vi.fn().mockResolvedValue([]),
52
- ...overrides
53
- };
54
- };
55
- describe('#dataset:create', ()=>{
56
- afterEach(()=>{
57
- vi.clearAllMocks();
58
- });
59
- test('--help works', async ()=>{
60
- const { stdout } = await runCommand([
61
- 'dataset create',
62
- '--help'
63
- ]);
64
- expect(stdout).toMatchInlineSnapshot(`
65
- "Create a new dataset within your project
66
-
67
- USAGE
68
- $ sanity dataset create [NAME] [--visibility custom|private|public]
69
-
70
- ARGUMENTS
71
- [NAME] Name of the dataset to create
72
-
73
- FLAGS
74
- --visibility=<option> Set visibility for this dataset (custom/private/public)
75
- <options: custom|private|public>
76
-
77
- DESCRIPTION
78
- Create a new dataset within your project
79
-
80
- EXAMPLES
81
- Interactively create a dataset
82
-
83
- $ sanity dataset create
84
-
85
- Create a dataset named "my-dataset"
86
-
87
- $ sanity dataset create my-dataset
88
-
89
- Create a private dataset named "my-dataset"
90
-
91
- $ sanity dataset create my-dataset --visibility private
92
-
93
- "
94
- `);
95
- });
96
- test('creates dataset with provided name', async ()=>{
97
- const mockClient = createMockClient();
98
- mockGetProjectCliClient.mockResolvedValue(mockClient);
99
- const { stdout } = await testCommand(CreateDatasetCommand, [
100
- 'my-dataset'
101
- ]);
102
- expect(mockClient.datasets.create).toHaveBeenCalledWith('my-dataset', {
103
- aclMode: 'public'
104
- });
105
- expect(stdout).toContain('Dataset created successfully');
106
- });
107
- test('prompts for dataset name when not provided', async ()=>{
108
- const mockClient = createMockClient();
109
- mockGetProjectCliClient.mockResolvedValue(mockClient);
110
- mockInput.mockResolvedValue('test-dataset');
111
- const { stdout } = await testCommand(CreateDatasetCommand, []);
112
- expect(mockInput).toHaveBeenCalledWith({
113
- message: 'Dataset name:',
114
- validate: expect.any(Function)
115
- });
116
- expect(mockClient.datasets.create).toHaveBeenCalledWith('test-dataset', {
117
- aclMode: 'public'
118
- });
119
- expect(stdout).toContain('Dataset created successfully');
120
- });
121
- test('errors when dataset name is invalid', async ()=>{
122
- const { error } = await testCommand(CreateDatasetCommand, [
123
- 'Invalid-Dataset-Name'
124
- ]);
125
- expect(error?.message).toContain('must be all lowercase');
126
- expect(error?.oclif?.exit).toBe(1);
127
- });
128
- test('errors when dataset already exists', async ()=>{
129
- const mockClient = createMockClient({
130
- datasets: {
131
- create: vi.fn(),
132
- list: vi.fn().mockResolvedValue([
133
- {
134
- aclMode: 'public',
135
- addonFor: null,
136
- createdAt: '2023-01-01T00:00:00Z',
137
- createdByUserId: 'user1',
138
- datasetProfile: 'default',
139
- features: [],
140
- name: 'production',
141
- tags: []
142
- }
143
- ])
144
- }
145
- });
146
- mockGetProjectCliClient.mockResolvedValue(mockClient);
147
- const { error } = await testCommand(CreateDatasetCommand, [
148
- 'production'
149
- ]);
150
- expect(error?.message).toContain('Dataset "production" already exists');
151
- expect(error?.oclif?.exit).toBe(1);
152
- });
153
- test('errors with invalid visibility flag', async ()=>{
154
- const { error } = await testCommand(CreateDatasetCommand, [
155
- 'my-dataset',
156
- '--visibility',
157
- 'invalid'
158
- ]);
159
- expect(error?.message).toContain('Expected --visibility=invalid to be one of: custom, private, public');
160
- expect(error?.oclif?.exit).toBe(2);
161
- });
162
- test('handles dataset creation errors', async ()=>{
163
- const mockClient = createMockClient({
164
- datasets: {
165
- create: vi.fn().mockRejectedValue(new Error('API Error')),
166
- list: vi.fn().mockResolvedValue([])
167
- }
168
- });
169
- mockGetProjectCliClient.mockResolvedValue(mockClient);
170
- const { error } = await testCommand(CreateDatasetCommand, [
171
- 'my-dataset'
172
- ]);
173
- expect(error?.message).toContain('Dataset creation failed: API Error');
174
- expect(error?.oclif?.exit).toBe(1);
175
- });
176
- test('handles fetch project data errors', async ()=>{
177
- const mockClient = createMockClient({
178
- datasets: {
179
- create: vi.fn(),
180
- list: vi.fn().mockRejectedValue(new Error('Network error'))
181
- }
182
- });
183
- mockGetProjectCliClient.mockResolvedValue(mockClient);
184
- const { error } = await testCommand(CreateDatasetCommand, [
185
- 'my-dataset-fail'
186
- ]);
187
- expect(error?.message).toContain('Failed to fetch project data: Network error');
188
- expect(error?.oclif?.exit).toBe(1);
189
- });
190
- test('prompts for dataset visibility when private datasets available and no flag provided', async ()=>{
191
- const mockClient = createMockClient({
192
- request: vi.fn().mockResolvedValue([
193
- 'privateDataset'
194
- ])
195
- });
196
- mockGetProjectCliClient.mockResolvedValue(mockClient);
197
- mockSelect.mockResolvedValue('private');
198
- const { stderr, stdout } = await testCommand(CreateDatasetCommand, [
199
- 'my-dataset'
200
- ]);
201
- expect(mockSelect).toHaveBeenCalledWith({
202
- choices: [
203
- {
204
- name: 'Public (world readable)',
205
- value: 'public'
206
- },
207
- {
208
- name: 'Private (Authenticated user or token needed)',
209
- value: 'private'
210
- }
211
- ],
212
- message: 'Dataset visibility'
213
- });
214
- expect(mockClient.datasets.create).toHaveBeenCalledWith('my-dataset', {
215
- aclMode: 'private'
216
- });
217
- expect(stdout).toContain('Dataset created successfully');
218
- expect(stderr).toContain('Please note that while documents are private');
219
- });
220
- describe('visibility flag handling', ()=>{
221
- test.each([
222
- {
223
- expectedAclMode: 'public',
224
- expectWarning: false,
225
- hasPrivateFeature: true,
226
- testName: 'creates public dataset when privateDataset feature available',
227
- visibility: 'public'
228
- },
229
- {
230
- expectedAclMode: 'private',
231
- expectWarning: false,
232
- hasPrivateFeature: true,
233
- testName: 'creates private dataset when privateDataset feature available',
234
- visibility: 'private'
235
- },
236
- {
237
- expectedAclMode: 'custom',
238
- expectWarning: false,
239
- hasPrivateFeature: true,
240
- testName: 'creates custom dataset when privateDataset feature available',
241
- visibility: 'custom'
242
- },
243
- {
244
- expectedAclMode: 'public',
245
- expectWarning: false,
246
- hasPrivateFeature: false,
247
- testName: 'creates public dataset when privateDataset feature not available',
248
- visibility: 'public'
249
- },
250
- {
251
- expectedAclMode: 'public',
252
- expectWarning: true,
253
- hasPrivateFeature: false,
254
- testName: 'creates public dataset with warning when private requested but not available',
255
- visibility: 'private'
256
- },
257
- {
258
- expectedAclMode: 'custom',
259
- expectWarning: false,
260
- hasPrivateFeature: false,
261
- testName: 'creates custom dataset when privateDataset feature not available',
262
- visibility: 'custom'
263
- }
264
- ])('$testName', async ({ expectedAclMode, expectWarning, hasPrivateFeature, visibility })=>{
265
- const mockClient = createMockClient({
266
- request: vi.fn().mockResolvedValue(hasPrivateFeature ? [
267
- 'privateDataset'
268
- ] : [])
269
- });
270
- mockGetProjectCliClient.mockResolvedValue(mockClient);
271
- const { stderr, stdout } = await testCommand(CreateDatasetCommand, [
272
- 'my-dataset',
273
- '--visibility',
274
- visibility
275
- ]);
276
- expect(mockClient.datasets.create).toHaveBeenCalledWith('my-dataset', {
277
- aclMode: expectedAclMode
278
- });
279
- expect(stdout).toContain('Dataset created successfully');
280
- if (expectWarning) {
281
- expect(stderr).toContain('Private datasets are not available for this project');
282
- }
283
- });
284
- });
285
- test('handles client request failure independently from listDatasets', async ()=>{
286
- const mockClient = createMockClient({
287
- datasets: {
288
- create: vi.fn(),
289
- list: vi.fn().mockResolvedValue([])
290
- },
291
- request: vi.fn().mockRejectedValue(new Error('Features API error'))
292
- });
293
- mockGetProjectCliClient.mockResolvedValue(mockClient);
294
- const { error } = await testCommand(CreateDatasetCommand, [
295
- 'my-dataset'
296
- ]);
297
- expect(error?.message).toContain('Failed to fetch project data: Features API error');
298
- expect(error?.oclif?.exit).toBe(1);
299
- });
300
- test('errors when no project ID is found', async ()=>{
301
- mockGetCliConfig.mockResolvedValueOnce({
302
- api: undefined
303
- });
304
- const { error } = await testCommand(CreateDatasetCommand, [
305
- 'my-dataset'
306
- ]);
307
- expect(error?.message).toContain('sanity.cli.ts does not contain a project identifier');
308
- expect(error?.oclif?.exit).toBe(1);
309
- });
310
- });
311
-
312
- //# sourceMappingURL=create.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/dataset/__tests__/create.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {input, select} from '@sanity/cli-core/ux'\nimport {testCommand} from '@sanity/cli-test'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {getCliConfig} from '../../../../../cli-core/src/config/cli/getCliConfig.js'\nimport {getProjectCliClient} from '../../../../../cli-core/src/services/apiClient.js'\nimport {CreateDatasetCommand} from '../create.js'\n\nvi.mock('../../../../../cli-core/src/config/findProjectRoot.js', () => ({\n findProjectRoot: vi.fn().mockResolvedValue({\n directory: '/test/path',\n root: '/test/path',\n type: 'studio',\n }),\n}))\n\nvi.mock('../../../../../cli-core/src/config/cli/getCliConfig.js', () => ({\n getCliConfig: vi.fn().mockResolvedValue({\n api: {\n projectId: 'test-project',\n },\n }),\n}))\n\nvi.mock('../../../../../cli-core/src/services/getCliToken.js', () => ({\n getCliToken: vi.fn().mockResolvedValue('test-token'),\n}))\n\nvi.mock('../../../../../cli-core/src/services/apiClient.js', () => ({\n getProjectCliClient: vi.fn(),\n}))\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const actual = await vi.importActual<typeof import('@sanity/cli-core/ux')>('@sanity/cli-core/ux')\n return {\n ...actual,\n input: vi.fn(),\n select: vi.fn(),\n }\n})\n\nconst mockGetProjectCliClient = vi.mocked(getProjectCliClient)\nconst mockGetCliConfig = vi.mocked(getCliConfig)\nconst mockInput = vi.mocked(input)\nconst mockSelect = vi.mocked(select)\n\nconst createMockClient = (overrides: Record<string, unknown> = {}) => {\n const defaultDatasets = {\n create: vi.fn().mockResolvedValue(undefined),\n list: vi.fn().mockResolvedValue([]),\n }\n\n const datasetsOverrides = overrides.datasets as Record<string, unknown> | undefined\n\n return {\n datasets: datasetsOverrides ? {...defaultDatasets, ...datasetsOverrides} : defaultDatasets,\n request: vi.fn().mockResolvedValue([]),\n ...overrides,\n }\n}\n\ndescribe('#dataset:create', () => {\n afterEach(() => {\n vi.clearAllMocks()\n })\n\n test('--help works', async () => {\n const {stdout} = await runCommand(['dataset create', '--help'])\n\n expect(stdout).toMatchInlineSnapshot(`\n \"Create a new dataset within your project\n\n USAGE\n $ sanity dataset create [NAME] [--visibility custom|private|public]\n\n ARGUMENTS\n [NAME] Name of the dataset to create\n\n FLAGS\n --visibility=<option> Set visibility for this dataset (custom/private/public)\n <options: custom|private|public>\n\n DESCRIPTION\n Create a new dataset within your project\n\n EXAMPLES\n Interactively create a dataset\n\n $ sanity dataset create\n\n Create a dataset named \"my-dataset\"\n\n $ sanity dataset create my-dataset\n\n Create a private dataset named \"my-dataset\"\n\n $ sanity dataset create my-dataset --visibility private\n\n \"\n `)\n })\n\n test('creates dataset with provided name', async () => {\n const mockClient = createMockClient()\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n\n const {stdout} = await testCommand(CreateDatasetCommand, ['my-dataset'])\n\n expect(mockClient.datasets.create).toHaveBeenCalledWith('my-dataset', {\n aclMode: 'public',\n })\n expect(stdout).toContain('Dataset created successfully')\n })\n\n test('prompts for dataset name when not provided', async () => {\n const mockClient = createMockClient()\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n mockInput.mockResolvedValue('test-dataset')\n\n const {stdout} = await testCommand(CreateDatasetCommand, [])\n\n expect(mockInput).toHaveBeenCalledWith({\n message: 'Dataset name:',\n validate: expect.any(Function),\n })\n expect(mockClient.datasets.create).toHaveBeenCalledWith('test-dataset', {\n aclMode: 'public',\n })\n expect(stdout).toContain('Dataset created successfully')\n })\n\n test('errors when dataset name is invalid', async () => {\n const {error} = await testCommand(CreateDatasetCommand, ['Invalid-Dataset-Name'])\n\n expect(error?.message).toContain('must be all lowercase')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('errors when dataset already exists', async () => {\n const mockClient = createMockClient({\n datasets: {\n create: vi.fn(),\n list: vi.fn().mockResolvedValue([\n {\n aclMode: 'public',\n addonFor: null,\n createdAt: '2023-01-01T00:00:00Z',\n createdByUserId: 'user1',\n datasetProfile: 'default',\n features: [],\n name: 'production',\n tags: [],\n },\n ]),\n },\n })\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n\n const {error} = await testCommand(CreateDatasetCommand, ['production'])\n\n expect(error?.message).toContain('Dataset \"production\" already exists')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('errors with invalid visibility flag', async () => {\n const {error} = await testCommand(CreateDatasetCommand, [\n 'my-dataset',\n '--visibility',\n 'invalid',\n ])\n\n expect(error?.message).toContain(\n 'Expected --visibility=invalid to be one of: custom, private, public',\n )\n expect(error?.oclif?.exit).toBe(2)\n })\n\n test('handles dataset creation errors', async () => {\n const mockClient = createMockClient({\n datasets: {\n create: vi.fn().mockRejectedValue(new Error('API Error')),\n list: vi.fn().mockResolvedValue([]),\n },\n })\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n\n const {error} = await testCommand(CreateDatasetCommand, ['my-dataset'])\n\n expect(error?.message).toContain('Dataset creation failed: API Error')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles fetch project data errors', async () => {\n const mockClient = createMockClient({\n datasets: {\n create: vi.fn(),\n list: vi.fn().mockRejectedValue(new Error('Network error')),\n },\n })\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n\n const {error} = await testCommand(CreateDatasetCommand, ['my-dataset-fail'])\n\n expect(error?.message).toContain('Failed to fetch project data: Network error')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('prompts for dataset visibility when private datasets available and no flag provided', async () => {\n const mockClient = createMockClient({\n request: vi.fn().mockResolvedValue(['privateDataset']),\n })\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n mockSelect.mockResolvedValue('private')\n\n const {stderr, stdout} = await testCommand(CreateDatasetCommand, ['my-dataset'])\n\n expect(mockSelect).toHaveBeenCalledWith({\n choices: [\n {\n name: 'Public (world readable)',\n value: 'public',\n },\n {\n name: 'Private (Authenticated user or token needed)',\n value: 'private',\n },\n ],\n message: 'Dataset visibility',\n })\n expect(mockClient.datasets.create).toHaveBeenCalledWith('my-dataset', {\n aclMode: 'private',\n })\n expect(stdout).toContain('Dataset created successfully')\n expect(stderr).toContain('Please note that while documents are private')\n })\n\n describe('visibility flag handling', () => {\n test.each([\n {\n expectedAclMode: 'public',\n expectWarning: false,\n hasPrivateFeature: true,\n testName: 'creates public dataset when privateDataset feature available',\n visibility: 'public',\n },\n {\n expectedAclMode: 'private',\n expectWarning: false,\n hasPrivateFeature: true,\n testName: 'creates private dataset when privateDataset feature available',\n visibility: 'private',\n },\n {\n expectedAclMode: 'custom',\n expectWarning: false,\n hasPrivateFeature: true,\n testName: 'creates custom dataset when privateDataset feature available',\n visibility: 'custom',\n },\n {\n expectedAclMode: 'public',\n expectWarning: false,\n hasPrivateFeature: false,\n testName: 'creates public dataset when privateDataset feature not available',\n visibility: 'public',\n },\n {\n expectedAclMode: 'public',\n expectWarning: true,\n hasPrivateFeature: false,\n testName: 'creates public dataset with warning when private requested but not available',\n visibility: 'private',\n },\n {\n expectedAclMode: 'custom',\n expectWarning: false,\n hasPrivateFeature: false,\n testName: 'creates custom dataset when privateDataset feature not available',\n visibility: 'custom',\n },\n ])('$testName', async ({expectedAclMode, expectWarning, hasPrivateFeature, visibility}) => {\n const mockClient = createMockClient({\n request: vi.fn().mockResolvedValue(hasPrivateFeature ? ['privateDataset'] : []),\n })\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n\n const {stderr, stdout} = await testCommand(CreateDatasetCommand, [\n 'my-dataset',\n '--visibility',\n visibility,\n ])\n\n expect(mockClient.datasets.create).toHaveBeenCalledWith('my-dataset', {\n aclMode: expectedAclMode,\n })\n expect(stdout).toContain('Dataset created successfully')\n\n if (expectWarning) {\n expect(stderr).toContain('Private datasets are not available for this project')\n }\n })\n })\n\n test('handles client request failure independently from listDatasets', async () => {\n const mockClient = createMockClient({\n datasets: {\n create: vi.fn(),\n list: vi.fn().mockResolvedValue([]),\n },\n request: vi.fn().mockRejectedValue(new Error('Features API error')), // This fails\n })\n mockGetProjectCliClient.mockResolvedValue(mockClient as never)\n\n const {error} = await testCommand(CreateDatasetCommand, ['my-dataset'])\n\n expect(error?.message).toContain('Failed to fetch project data: Features API error')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('errors when no project ID is found', async () => {\n mockGetCliConfig.mockResolvedValueOnce({\n api: undefined,\n } as never)\n\n const {error} = await testCommand(CreateDatasetCommand, ['my-dataset'])\n\n expect(error?.message).toContain('sanity.cli.ts does not contain a project identifier')\n expect(error?.oclif?.exit).toBe(1)\n })\n})\n"],"names":["runCommand","input","select","testCommand","afterEach","describe","expect","test","vi","getCliConfig","getProjectCliClient","CreateDatasetCommand","mock","findProjectRoot","fn","mockResolvedValue","directory","root","type","api","projectId","getCliToken","actual","importActual","mockGetProjectCliClient","mocked","mockGetCliConfig","mockInput","mockSelect","createMockClient","overrides","defaultDatasets","create","undefined","list","datasetsOverrides","datasets","request","clearAllMocks","stdout","toMatchInlineSnapshot","mockClient","toHaveBeenCalledWith","aclMode","toContain","message","validate","any","Function","error","oclif","exit","toBe","addonFor","createdAt","createdByUserId","datasetProfile","features","name","tags","mockRejectedValue","Error","stderr","choices","value","each","expectedAclMode","expectWarning","hasPrivateFeature","testName","visibility","mockResolvedValueOnce"],"mappings":"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"}
@@ -1,224 +0,0 @@
1
- import { runCommand } from '@oclif/test';
2
- import { getCliConfig, getProjectCliClient } from '@sanity/cli-core';
3
- import { input } from '@sanity/cli-core/ux';
4
- import { testCommand } from '@sanity/cli-test';
5
- import { afterEach, describe, expect, test, vi } from 'vitest';
6
- import { NO_PROJECT_ID } from '../../../util/errorMessages.js';
7
- import { DeleteDatasetCommand } from '../delete.js';
8
- vi.mock('../../../../../cli-core/src/config/findProjectRoot.js', ()=>({
9
- findProjectRoot: vi.fn().mockResolvedValue({
10
- directory: '/test/path',
11
- root: '/test/path',
12
- type: 'studio'
13
- })
14
- }));
15
- vi.mock('../../../../../cli-core/src/config/cli/getCliConfig.js', ()=>({
16
- getCliConfig: vi.fn().mockResolvedValue({
17
- api: {
18
- projectId: 'test-project'
19
- }
20
- })
21
- }));
22
- vi.mock('../../../../../cli-core/src/services/getCliToken.js', ()=>({
23
- getCliToken: vi.fn().mockResolvedValue('test-token')
24
- }));
25
- vi.mock('../../../../../cli-core/src/services/apiClient.js', async (importOriginal)=>{
26
- const actual = await importOriginal();
27
- return {
28
- ...actual,
29
- getProjectCliClient: vi.fn()
30
- };
31
- });
32
- vi.mock('@sanity/cli-core/ux', async ()=>{
33
- const actual = await vi.importActual('@sanity/cli-core/ux');
34
- return {
35
- ...actual,
36
- input: vi.fn()
37
- };
38
- });
39
- const TEST_DATASET_NAME = 'test-dataset';
40
- const TEST_PROJECT_NAME = 'Test Project';
41
- const TEST_PROJECT_ID = 'test-project';
42
- const mockGetProjectCliClient = vi.mocked(getProjectCliClient);
43
- const setupMockClient = ()=>{
44
- mockGetProjectCliClient.mockResolvedValue({
45
- datasets: {
46
- delete: vi.fn().mockResolvedValue(undefined)
47
- },
48
- projects: {
49
- getById: vi.fn().mockResolvedValue({
50
- displayName: TEST_PROJECT_NAME,
51
- id: TEST_PROJECT_ID
52
- })
53
- }
54
- });
55
- };
56
- describe('#dataset:delete', ()=>{
57
- afterEach(()=>{
58
- vi.clearAllMocks();
59
- });
60
- test('--help works', async ()=>{
61
- const { stdout } = await runCommand([
62
- 'dataset delete',
63
- '--help'
64
- ]);
65
- expect(stdout).toMatchInlineSnapshot(`
66
- "Delete a dataset within your project
67
-
68
- USAGE
69
- $ sanity dataset delete DATASETNAME [--force]
70
-
71
- ARGUMENTS
72
- DATASETNAME Dataset name to delete
73
-
74
- FLAGS
75
- --force Do not prompt for delete confirmation - forcefully delete
76
-
77
- DESCRIPTION
78
- Delete a dataset within your project
79
-
80
- EXAMPLES
81
- Delete a specific dataset
82
-
83
- $ sanity dataset delete my-dataset
84
-
85
- Delete a specific dataset without confirmation
86
-
87
- $ sanity dataset delete my-dataset --force
88
-
89
- "
90
- `);
91
- });
92
- test('deletes dataset with --force flag', async ()=>{
93
- setupMockClient();
94
- const { stderr, stdout } = await testCommand(DeleteDatasetCommand, [
95
- TEST_DATASET_NAME,
96
- '--force'
97
- ]);
98
- expect(stderr).toContain(`--force' used: skipping confirmation, deleting dataset`);
99
- expect(stdout).toBe('Dataset deleted successfully\n');
100
- });
101
- test('deletes dataset with confirmation prompt and validates input', async ()=>{
102
- vi.mocked(input).mockResolvedValue(TEST_DATASET_NAME);
103
- setupMockClient();
104
- const { stdout } = await testCommand(DeleteDatasetCommand, [
105
- TEST_DATASET_NAME
106
- ]);
107
- expect(stdout).toContain(`Deleting dataset "${TEST_DATASET_NAME}" from project "${TEST_PROJECT_NAME} (${TEST_PROJECT_ID})"`);
108
- expect(stdout).toContain('Dataset deleted successfully\n');
109
- expect(input).toHaveBeenCalledWith({
110
- message: 'Are you ABSOLUTELY sure you want to delete this dataset?\n Type the name of the dataset to confirm delete:',
111
- validate: expect.any(Function)
112
- });
113
- });
114
- test('throws error for empty dataset name', async ()=>{
115
- const { error: commandError } = await testCommand(DeleteDatasetCommand, [
116
- '',
117
- '--force'
118
- ]);
119
- expect(commandError?.message).toBe('Dataset name is missing');
120
- expect(commandError?.oclif?.exit).toBe(1);
121
- });
122
- test.each([
123
- {
124
- desc: 'no project ID is found',
125
- projectId: undefined
126
- },
127
- {
128
- desc: 'project ID is empty string',
129
- projectId: ''
130
- }
131
- ])('throws error when $desc', async ({ projectId })=>{
132
- vi.mocked(getCliConfig).mockResolvedValueOnce({
133
- api: {
134
- projectId
135
- }
136
- });
137
- const { error } = await testCommand(DeleteDatasetCommand, [
138
- TEST_DATASET_NAME,
139
- '--force'
140
- ]);
141
- expect(error?.message).toBe(NO_PROJECT_ID);
142
- expect(error?.oclif?.exit).toBe(1);
143
- });
144
- test.each([
145
- {
146
- desc: 'when deleting dataset',
147
- message: 'Internal Server Error',
148
- statusCode: 500
149
- },
150
- {
151
- desc: 'with 404 error when deleting dataset',
152
- message: 'Dataset not found',
153
- statusCode: 404
154
- },
155
- {
156
- desc: 'with 403 error when deleting dataset',
157
- message: 'Forbidden',
158
- statusCode: 403
159
- }
160
- ])('handles API error $desc', async ({ message, statusCode })=>{
161
- const deleteError = new Error(message);
162
- Object.assign(deleteError, {
163
- statusCode
164
- });
165
- mockGetProjectCliClient.mockResolvedValueOnce({
166
- datasets: {
167
- delete: vi.fn().mockRejectedValue(deleteError)
168
- }
169
- });
170
- const { error } = await testCommand(DeleteDatasetCommand, [
171
- TEST_DATASET_NAME,
172
- '--force'
173
- ]);
174
- expect(error?.message).toContain('Dataset deletion failed');
175
- expect(error?.message).toContain(message);
176
- expect(error?.oclif?.exit).toBe(1);
177
- });
178
- test('handles network errors when deleting dataset', async ()=>{
179
- mockGetProjectCliClient.mockResolvedValueOnce({
180
- datasets: {
181
- delete: vi.fn().mockRejectedValue(new Error('Network error'))
182
- }
183
- });
184
- const { error } = await testCommand(DeleteDatasetCommand, [
185
- TEST_DATASET_NAME,
186
- '--force'
187
- ]);
188
- expect(error?.message).toContain('Dataset deletion failed');
189
- expect(error?.message).toContain('Network error');
190
- expect(error?.oclif?.exit).toBe(1);
191
- });
192
- test('handles API client creation errors', async ()=>{
193
- mockGetProjectCliClient.mockRejectedValueOnce(new Error('Failed to create client'));
194
- const { error } = await testCommand(DeleteDatasetCommand, [
195
- TEST_DATASET_NAME,
196
- '--force'
197
- ]);
198
- expect(error?.message).toContain('Dataset deletion failed');
199
- expect(error?.message).toContain('Failed to create client');
200
- expect(error?.oclif?.exit).toBe(1);
201
- });
202
- test('handles user cancellation during confirmation', async ()=>{
203
- vi.mocked(input).mockRejectedValue(new Error('User cancelled'));
204
- const { error } = await testCommand(DeleteDatasetCommand, [
205
- TEST_DATASET_NAME
206
- ]);
207
- expect(error?.message).toBe('User cancelled');
208
- expect(error?.oclif?.exit).toBe(1);
209
- });
210
- test('handles project retrieval error', async ()=>{
211
- mockGetProjectCliClient.mockResolvedValueOnce({
212
- projects: {
213
- getById: vi.fn().mockRejectedValueOnce(new Error('Project Error'))
214
- }
215
- });
216
- const { error } = await testCommand(DeleteDatasetCommand, [
217
- TEST_DATASET_NAME
218
- ]);
219
- expect(error?.message).toContain('Project retrieval failed: Project Error');
220
- expect(error?.oclif?.exit).toBe(1);
221
- });
222
- });
223
-
224
- //# sourceMappingURL=delete.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/commands/dataset/__tests__/delete.test.ts"],"sourcesContent":["import {runCommand} from '@oclif/test'\nimport {getCliConfig, getProjectCliClient} from '@sanity/cli-core'\nimport {input} from '@sanity/cli-core/ux'\nimport {testCommand} from '@sanity/cli-test'\nimport {afterEach, describe, expect, test, vi} from 'vitest'\n\nimport {NO_PROJECT_ID} from '../../../util/errorMessages.js'\nimport {DeleteDatasetCommand} from '../delete.js'\n\nvi.mock('../../../../../cli-core/src/config/findProjectRoot.js', () => ({\n findProjectRoot: vi.fn().mockResolvedValue({\n directory: '/test/path',\n root: '/test/path',\n type: 'studio',\n }),\n}))\n\nvi.mock('../../../../../cli-core/src/config/cli/getCliConfig.js', () => ({\n getCliConfig: vi.fn().mockResolvedValue({\n api: {\n projectId: 'test-project',\n },\n }),\n}))\n\nvi.mock('../../../../../cli-core/src/services/getCliToken.js', () => ({\n getCliToken: vi.fn().mockResolvedValue('test-token'),\n}))\n\nvi.mock('../../../../../cli-core/src/services/apiClient.js', async (importOriginal) => {\n const actual =\n await importOriginal<typeof import('../../../../../cli-core/src/services/apiClient.js')>()\n return {\n ...actual,\n getProjectCliClient: vi.fn(),\n }\n})\n\nvi.mock('@sanity/cli-core/ux', async () => {\n const actual = await vi.importActual<typeof import('@sanity/cli-core/ux')>('@sanity/cli-core/ux')\n return {\n ...actual,\n input: vi.fn(),\n }\n})\n\nconst TEST_DATASET_NAME = 'test-dataset'\nconst TEST_PROJECT_NAME = 'Test Project'\nconst TEST_PROJECT_ID = 'test-project'\n\nconst mockGetProjectCliClient = vi.mocked(getProjectCliClient)\n\nconst setupMockClient = () => {\n mockGetProjectCliClient.mockResolvedValue({\n datasets: {\n delete: vi.fn().mockResolvedValue(undefined),\n },\n projects: {\n getById: vi.fn().mockResolvedValue({\n displayName: TEST_PROJECT_NAME,\n id: TEST_PROJECT_ID,\n }),\n },\n } as never)\n}\n\ndescribe('#dataset:delete', () => {\n afterEach(() => {\n vi.clearAllMocks()\n })\n\n test('--help works', async () => {\n const {stdout} = await runCommand(['dataset delete', '--help'])\n expect(stdout).toMatchInlineSnapshot(`\n \"Delete a dataset within your project\n\n USAGE\n $ sanity dataset delete DATASETNAME [--force]\n\n ARGUMENTS\n DATASETNAME Dataset name to delete\n\n FLAGS\n --force Do not prompt for delete confirmation - forcefully delete\n\n DESCRIPTION\n Delete a dataset within your project\n\n EXAMPLES\n Delete a specific dataset\n\n $ sanity dataset delete my-dataset\n\n Delete a specific dataset without confirmation\n\n $ sanity dataset delete my-dataset --force\n\n \"\n `)\n })\n\n test('deletes dataset with --force flag', async () => {\n setupMockClient()\n\n const {stderr, stdout} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME, '--force'])\n expect(stderr).toContain(`--force' used: skipping confirmation, deleting dataset`)\n expect(stdout).toBe('Dataset deleted successfully\\n')\n })\n\n test('deletes dataset with confirmation prompt and validates input', async () => {\n vi.mocked(input).mockResolvedValue(TEST_DATASET_NAME)\n setupMockClient()\n\n const {stdout} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME])\n\n expect(stdout).toContain(\n `Deleting dataset \"${TEST_DATASET_NAME}\" from project \"${TEST_PROJECT_NAME} (${TEST_PROJECT_ID})\"`,\n )\n expect(stdout).toContain('Dataset deleted successfully\\n')\n expect(input).toHaveBeenCalledWith({\n message:\n 'Are you ABSOLUTELY sure you want to delete this dataset?\\n Type the name of the dataset to confirm delete:',\n validate: expect.any(Function),\n })\n })\n\n test('throws error for empty dataset name', async () => {\n const {error: commandError} = await testCommand(DeleteDatasetCommand, ['', '--force'])\n expect(commandError?.message).toBe('Dataset name is missing')\n expect(commandError?.oclif?.exit).toBe(1)\n })\n\n test.each([\n {desc: 'no project ID is found', projectId: undefined},\n {desc: 'project ID is empty string', projectId: ''},\n ])('throws error when $desc', async ({projectId}) => {\n vi.mocked(getCliConfig).mockResolvedValueOnce({\n api: {projectId},\n })\n\n const {error} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME, '--force'])\n expect(error?.message).toBe(NO_PROJECT_ID)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test.each([\n {desc: 'when deleting dataset', message: 'Internal Server Error', statusCode: 500},\n {desc: 'with 404 error when deleting dataset', message: 'Dataset not found', statusCode: 404},\n {desc: 'with 403 error when deleting dataset', message: 'Forbidden', statusCode: 403},\n ])('handles API error $desc', async ({message, statusCode}) => {\n const deleteError = new Error(message)\n Object.assign(deleteError, {statusCode})\n\n mockGetProjectCliClient.mockResolvedValueOnce({\n datasets: {\n delete: vi.fn().mockRejectedValue(deleteError),\n },\n } as never)\n\n const {error} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME, '--force'])\n expect(error?.message).toContain('Dataset deletion failed')\n expect(error?.message).toContain(message)\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles network errors when deleting dataset', async () => {\n mockGetProjectCliClient.mockResolvedValueOnce({\n datasets: {\n delete: vi.fn().mockRejectedValue(new Error('Network error')),\n },\n } as never)\n\n const {error} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME, '--force'])\n expect(error?.message).toContain('Dataset deletion failed')\n expect(error?.message).toContain('Network error')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles API client creation errors', async () => {\n mockGetProjectCliClient.mockRejectedValueOnce(new Error('Failed to create client'))\n\n const {error} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME, '--force'])\n expect(error?.message).toContain('Dataset deletion failed')\n expect(error?.message).toContain('Failed to create client')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles user cancellation during confirmation', async () => {\n vi.mocked(input).mockRejectedValue(new Error('User cancelled'))\n\n const {error} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME])\n\n expect(error?.message).toBe('User cancelled')\n expect(error?.oclif?.exit).toBe(1)\n })\n\n test('handles project retrieval error', async () => {\n mockGetProjectCliClient.mockResolvedValueOnce({\n projects: {\n getById: vi.fn().mockRejectedValueOnce(new Error('Project Error')),\n },\n } as never)\n\n const {error} = await testCommand(DeleteDatasetCommand, [TEST_DATASET_NAME])\n\n expect(error?.message).toContain('Project retrieval failed: Project Error')\n expect(error?.oclif?.exit).toBe(1)\n })\n})\n"],"names":["runCommand","getCliConfig","getProjectCliClient","input","testCommand","afterEach","describe","expect","test","vi","NO_PROJECT_ID","DeleteDatasetCommand","mock","findProjectRoot","fn","mockResolvedValue","directory","root","type","api","projectId","getCliToken","importOriginal","actual","importActual","TEST_DATASET_NAME","TEST_PROJECT_NAME","TEST_PROJECT_ID","mockGetProjectCliClient","mocked","setupMockClient","datasets","delete","undefined","projects","getById","displayName","id","clearAllMocks","stdout","toMatchInlineSnapshot","stderr","toContain","toBe","toHaveBeenCalledWith","message","validate","any","Function","error","commandError","oclif","exit","each","desc","mockResolvedValueOnce","statusCode","deleteError","Error","Object","assign","mockRejectedValue","mockRejectedValueOnce"],"mappings":"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"}