@sentry/wizard 3.42.1 → 4.0.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 (338) hide show
  1. package/.node-cache/node-v22.14.0-darwin-arm64 +0 -0
  2. package/.node-cache/node-v22.14.0-darwin-x64 +0 -0
  3. package/.node-cache/node-v22.14.0-linux-arm64 +0 -0
  4. package/.node-cache/node-v22.14.0-linux-x64 +0 -0
  5. package/.node-cache/node-v22.14.0-win-x64.exe +0 -0
  6. package/CHANGELOG.md +26 -0
  7. package/COPYING +3575 -0
  8. package/bin.ts +85 -80
  9. package/dist/bin.js +44 -35
  10. package/dist/bin.js.map +1 -1
  11. package/dist/e2e-tests/jest.config.js +1 -1
  12. package/dist/e2e-tests/jest.config.js.map +1 -1
  13. package/dist/e2e-tests/tests/flutter.test.js +62 -147
  14. package/dist/e2e-tests/tests/flutter.test.js.map +1 -1
  15. package/dist/e2e-tests/tests/nextjs.test.js +77 -175
  16. package/dist/e2e-tests/tests/nextjs.test.js.map +1 -1
  17. package/dist/e2e-tests/tests/nuxt-3.test.js +61 -162
  18. package/dist/e2e-tests/tests/nuxt-3.test.js.map +1 -1
  19. package/dist/e2e-tests/tests/nuxt-4.test.js +62 -163
  20. package/dist/e2e-tests/tests/nuxt-4.test.js.map +1 -1
  21. package/dist/e2e-tests/tests/remix.test.js +147 -189
  22. package/dist/e2e-tests/tests/remix.test.js.map +1 -1
  23. package/dist/e2e-tests/tests/sveltekit.test.js +133 -187
  24. package/dist/e2e-tests/tests/sveltekit.test.js.map +1 -1
  25. package/dist/e2e-tests/utils/index.d.ts +1 -1
  26. package/dist/e2e-tests/utils/index.js +113 -195
  27. package/dist/e2e-tests/utils/index.js.map +1 -1
  28. package/dist/lib/Constants.js +5 -5
  29. package/dist/lib/Constants.js.map +1 -1
  30. package/dist/lib/Helper/BottomBar.d.ts +1 -1
  31. package/dist/lib/Helper/BottomBar.js +14 -15
  32. package/dist/lib/Helper/BottomBar.js.map +1 -1
  33. package/dist/lib/Helper/Env.js +5 -2
  34. package/dist/lib/Helper/Env.js.map +1 -1
  35. package/dist/lib/Helper/File.js +14 -27
  36. package/dist/lib/Helper/File.js.map +1 -1
  37. package/dist/lib/Helper/Git.js +24 -59
  38. package/dist/lib/Helper/Git.js.map +1 -1
  39. package/dist/lib/Helper/Logging.js +2 -2
  40. package/dist/lib/Helper/Logging.js.map +1 -1
  41. package/dist/lib/Helper/MergeConfig.js +4 -4
  42. package/dist/lib/Helper/MergeConfig.js.map +1 -1
  43. package/dist/lib/Helper/Package.d.ts +4 -1
  44. package/dist/lib/Helper/Package.js +12 -38
  45. package/dist/lib/Helper/Package.js.map +1 -1
  46. package/dist/lib/Helper/SentryCli.js +77 -149
  47. package/dist/lib/Helper/SentryCli.js.map +1 -1
  48. package/dist/lib/Helper/Wizard.js +29 -124
  49. package/dist/lib/Helper/Wizard.js.map +1 -1
  50. package/dist/lib/Helper/__tests__/File.js +4 -4
  51. package/dist/lib/Helper/__tests__/File.js.map +1 -1
  52. package/dist/lib/Helper/__tests__/MergeConfig.js +24 -24
  53. package/dist/lib/Helper/__tests__/MergeConfig.js.map +1 -1
  54. package/dist/lib/Helper/__tests__/SentryCli.js +33 -23
  55. package/dist/lib/Helper/__tests__/SentryCli.js.map +1 -1
  56. package/dist/lib/Setup.js +23 -85
  57. package/dist/lib/Setup.js.map +1 -1
  58. package/dist/lib/Steps/BaseStep.js +8 -8
  59. package/dist/lib/Steps/BaseStep.js.map +1 -1
  60. package/dist/lib/Steps/ChooseIntegration.js +80 -125
  61. package/dist/lib/Steps/ChooseIntegration.js.map +1 -1
  62. package/dist/lib/Steps/ConfigureProject.js +6 -66
  63. package/dist/lib/Steps/ConfigureProject.js.map +1 -1
  64. package/dist/lib/Steps/Initial.js +16 -104
  65. package/dist/lib/Steps/Initial.js.map +1 -1
  66. package/dist/lib/Steps/Integrations/BaseIntegration.js +24 -118
  67. package/dist/lib/Steps/Integrations/BaseIntegration.js.map +1 -1
  68. package/dist/lib/Steps/Integrations/Cordova.js +95 -183
  69. package/dist/lib/Steps/Integrations/Cordova.js.map +1 -1
  70. package/dist/lib/Steps/Integrations/Electron.js +87 -145
  71. package/dist/lib/Steps/Integrations/Electron.js.map +1 -1
  72. package/dist/lib/Steps/Integrations/MobileProject.js +40 -148
  73. package/dist/lib/Steps/Integrations/MobileProject.js.map +1 -1
  74. package/dist/lib/Steps/OpenSentry.js +63 -126
  75. package/dist/lib/Steps/OpenSentry.js.map +1 -1
  76. package/dist/lib/Steps/PromptForParameters.js +110 -206
  77. package/dist/lib/Steps/PromptForParameters.js.map +1 -1
  78. package/dist/lib/Steps/Result.js +19 -79
  79. package/dist/lib/Steps/Result.js.map +1 -1
  80. package/dist/lib/Steps/SentryProjectSelector.js +57 -148
  81. package/dist/lib/Steps/SentryProjectSelector.js.map +1 -1
  82. package/dist/lib/Steps/ShouldConfigure.js +6 -66
  83. package/dist/lib/Steps/ShouldConfigure.js.map +1 -1
  84. package/dist/lib/Steps/WaitForSentry.js +43 -120
  85. package/dist/lib/Steps/WaitForSentry.js.map +1 -1
  86. package/dist/lib/Steps/Welcome.js +17 -76
  87. package/dist/lib/Steps/Welcome.js.map +1 -1
  88. package/dist/lib/__tests__/Env.js +3 -3
  89. package/dist/lib/__tests__/Env.js.map +1 -1
  90. package/dist/src/android/android-wizard.js +100 -176
  91. package/dist/src/android/android-wizard.js.map +1 -1
  92. package/dist/src/android/code-tools.js +24 -33
  93. package/dist/src/android/code-tools.js.map +1 -1
  94. package/dist/src/android/gradle.js +106 -165
  95. package/dist/src/android/gradle.js.map +1 -1
  96. package/dist/src/android/manifest.js +26 -27
  97. package/dist/src/android/manifest.js.map +1 -1
  98. package/dist/src/android/templates.js +76 -23
  99. package/dist/src/android/templates.js.map +1 -1
  100. package/dist/src/apple/apple-wizard.js +129 -225
  101. package/dist/src/apple/apple-wizard.js.map +1 -1
  102. package/dist/src/apple/cocoapod.js +47 -109
  103. package/dist/src/apple/cocoapod.js.map +1 -1
  104. package/dist/src/apple/code-tools.js +32 -35
  105. package/dist/src/apple/code-tools.js.map +1 -1
  106. package/dist/src/apple/fastlane.js +51 -97
  107. package/dist/src/apple/fastlane.js.map +1 -1
  108. package/dist/src/apple/templates.js +41 -5
  109. package/dist/src/apple/templates.js.map +1 -1
  110. package/dist/src/apple/xcode-manager.d.ts +2 -2
  111. package/dist/src/apple/xcode-manager.js +93 -108
  112. package/dist/src/apple/xcode-manager.js.map +1 -1
  113. package/dist/src/flutter/code-tools.js +79 -127
  114. package/dist/src/flutter/code-tools.js.map +1 -1
  115. package/dist/src/flutter/flutter-wizard.js +75 -136
  116. package/dist/src/flutter/flutter-wizard.js.map +1 -1
  117. package/dist/src/flutter/templates.js +48 -12
  118. package/dist/src/flutter/templates.js.map +1 -1
  119. package/dist/src/nextjs/nextjs-wizard.js +527 -805
  120. package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
  121. package/dist/src/nextjs/templates.js +380 -40
  122. package/dist/src/nextjs/templates.js.map +1 -1
  123. package/dist/src/nextjs/utils.js +5 -5
  124. package/dist/src/nextjs/utils.js.map +1 -1
  125. package/dist/src/nuxt/nuxt-wizard.js +91 -188
  126. package/dist/src/nuxt/nuxt-wizard.js.map +1 -1
  127. package/dist/src/nuxt/sdk-example.js +68 -137
  128. package/dist/src/nuxt/sdk-example.js.map +1 -1
  129. package/dist/src/nuxt/sdk-setup.d.ts +4 -4
  130. package/dist/src/nuxt/sdk-setup.js +180 -336
  131. package/dist/src/nuxt/sdk-setup.js.map +1 -1
  132. package/dist/src/nuxt/templates.js +195 -18
  133. package/dist/src/nuxt/templates.js.map +1 -1
  134. package/dist/src/nuxt/utils.js +29 -76
  135. package/dist/src/nuxt/utils.js.map +1 -1
  136. package/dist/src/react-native/expo-env-file.js +41 -94
  137. package/dist/src/react-native/expo-env-file.js.map +1 -1
  138. package/dist/src/react-native/expo-metro.d.ts +1 -1
  139. package/dist/src/react-native/expo-metro.js +75 -130
  140. package/dist/src/react-native/expo-metro.js.map +1 -1
  141. package/dist/src/react-native/expo.js +61 -114
  142. package/dist/src/react-native/expo.js.map +1 -1
  143. package/dist/src/react-native/git.js +23 -56
  144. package/dist/src/react-native/git.js.map +1 -1
  145. package/dist/src/react-native/glob.js +3 -3
  146. package/dist/src/react-native/glob.js.map +1 -1
  147. package/dist/src/react-native/gradle.js +4 -4
  148. package/dist/src/react-native/gradle.js.map +1 -1
  149. package/dist/src/react-native/javascript.js +51 -95
  150. package/dist/src/react-native/javascript.js.map +1 -1
  151. package/dist/src/react-native/metro.js +176 -296
  152. package/dist/src/react-native/metro.js.map +1 -1
  153. package/dist/src/react-native/react-native-wizard.js +267 -418
  154. package/dist/src/react-native/react-native-wizard.js.map +1 -1
  155. package/dist/src/react-native/uninstall.js +37 -80
  156. package/dist/src/react-native/uninstall.js.map +1 -1
  157. package/dist/src/react-native/xcode.js +57 -55
  158. package/dist/src/react-native/xcode.js.map +1 -1
  159. package/dist/src/remix/codemods/express-server.js +27 -82
  160. package/dist/src/remix/codemods/express-server.js.map +1 -1
  161. package/dist/src/remix/codemods/handle-error.js +28 -31
  162. package/dist/src/remix/codemods/handle-error.js.map +1 -1
  163. package/dist/src/remix/codemods/root-common.js +11 -11
  164. package/dist/src/remix/codemods/root-common.js.map +1 -1
  165. package/dist/src/remix/codemods/root-v1.js +17 -67
  166. package/dist/src/remix/codemods/root-v1.js.map +1 -1
  167. package/dist/src/remix/codemods/root-v2.js +89 -140
  168. package/dist/src/remix/codemods/root-v2.js.map +1 -1
  169. package/dist/src/remix/remix-wizard.js +181 -343
  170. package/dist/src/remix/remix-wizard.js.map +1 -1
  171. package/dist/src/remix/sdk-example.js +84 -66
  172. package/dist/src/remix/sdk-example.js.map +1 -1
  173. package/dist/src/remix/sdk-setup.js +161 -293
  174. package/dist/src/remix/sdk-setup.js.map +1 -1
  175. package/dist/src/remix/templates.js +10 -2
  176. package/dist/src/remix/templates.js.map +1 -1
  177. package/dist/src/remix/utils.js +13 -14
  178. package/dist/src/remix/utils.js.map +1 -1
  179. package/dist/src/run.js +106 -178
  180. package/dist/src/run.js.map +1 -1
  181. package/dist/src/sourcemaps/sourcemaps-wizard.js +248 -372
  182. package/dist/src/sourcemaps/sourcemaps-wizard.js.map +1 -1
  183. package/dist/src/sourcemaps/tools/angular.js +32 -66
  184. package/dist/src/sourcemaps/tools/angular.js.map +1 -1
  185. package/dist/src/sourcemaps/tools/create-react-app.js +14 -59
  186. package/dist/src/sourcemaps/tools/create-react-app.js.map +1 -1
  187. package/dist/src/sourcemaps/tools/esbuild.js +34 -77
  188. package/dist/src/sourcemaps/tools/esbuild.js.map +1 -1
  189. package/dist/src/sourcemaps/tools/nextjs.d.ts +2 -2
  190. package/dist/src/sourcemaps/tools/nextjs.js +75 -102
  191. package/dist/src/sourcemaps/tools/nextjs.js.map +1 -1
  192. package/dist/src/sourcemaps/tools/remix.js +53 -93
  193. package/dist/src/sourcemaps/tools/remix.js.map +1 -1
  194. package/dist/src/sourcemaps/tools/rollup.js +35 -76
  195. package/dist/src/sourcemaps/tools/rollup.js.map +1 -1
  196. package/dist/src/sourcemaps/tools/sentry-cli.js +157 -289
  197. package/dist/src/sourcemaps/tools/sentry-cli.js.map +1 -1
  198. package/dist/src/sourcemaps/tools/tsc.js +68 -134
  199. package/dist/src/sourcemaps/tools/tsc.js.map +1 -1
  200. package/dist/src/sourcemaps/tools/vite.js +111 -196
  201. package/dist/src/sourcemaps/tools/vite.js.map +1 -1
  202. package/dist/src/sourcemaps/tools/webpack.d.ts +1 -1
  203. package/dist/src/sourcemaps/tools/webpack.js +158 -260
  204. package/dist/src/sourcemaps/tools/webpack.js.map +1 -1
  205. package/dist/src/sourcemaps/utils/detect-tool.js +9 -54
  206. package/dist/src/sourcemaps/utils/detect-tool.js.map +1 -1
  207. package/dist/src/sourcemaps/utils/other-wizards.js +77 -144
  208. package/dist/src/sourcemaps/utils/other-wizards.js.map +1 -1
  209. package/dist/src/sourcemaps/utils/sdk-version.js +112 -191
  210. package/dist/src/sourcemaps/utils/sdk-version.js.map +1 -1
  211. package/dist/src/sveltekit/sdk-example.js +20 -70
  212. package/dist/src/sveltekit/sdk-example.js.map +1 -1
  213. package/dist/src/sveltekit/sdk-setup.js +250 -411
  214. package/dist/src/sveltekit/sdk-setup.js.map +1 -1
  215. package/dist/src/sveltekit/sveltekit-wizard.js +107 -191
  216. package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
  217. package/dist/src/sveltekit/templates.js +147 -13
  218. package/dist/src/sveltekit/templates.js.map +1 -1
  219. package/dist/src/sveltekit/utils.js +3 -3
  220. package/dist/src/sveltekit/utils.js.map +1 -1
  221. package/dist/src/telemetry.d.ts +2 -2
  222. package/dist/src/telemetry.js +58 -108
  223. package/dist/src/telemetry.js.map +1 -1
  224. package/dist/src/utils/ast-utils.js +39 -54
  225. package/dist/src/utils/ast-utils.js.map +1 -1
  226. package/dist/src/utils/bash.js +28 -75
  227. package/dist/src/utils/bash.js.map +1 -1
  228. package/dist/src/utils/clack-utils.d.ts +3 -7
  229. package/dist/src/utils/clack-utils.js +688 -1083
  230. package/dist/src/utils/clack-utils.js.map +1 -1
  231. package/dist/src/utils/debug.js +6 -10
  232. package/dist/src/utils/debug.js.map +1 -1
  233. package/dist/src/utils/package-json.js +5 -6
  234. package/dist/src/utils/package-json.js.map +1 -1
  235. package/dist/src/utils/package-manager.js +65 -139
  236. package/dist/src/utils/package-manager.js.map +1 -1
  237. package/dist/src/utils/release-registry.js +12 -59
  238. package/dist/src/utils/release-registry.js.map +1 -1
  239. package/dist/src/utils/semver.js +3 -4
  240. package/dist/src/utils/semver.js.map +1 -1
  241. package/dist/src/utils/sentrycli-utils.js +4 -4
  242. package/dist/src/utils/sentrycli-utils.js.map +1 -1
  243. package/dist/src/utils/url.js +5 -6
  244. package/dist/src/utils/url.js.map +1 -1
  245. package/dist/test/android/code-tools.test.js +18 -18
  246. package/dist/test/android/code-tools.test.js.map +1 -1
  247. package/dist/test/apple/cocoapod.test.js +154 -299
  248. package/dist/test/apple/cocoapod.test.js.map +1 -1
  249. package/dist/test/apple/code-tools.test.js +375 -263
  250. package/dist/test/apple/code-tools.test.js.map +1 -1
  251. package/dist/test/apple/fastfile.test.js +319 -271
  252. package/dist/test/apple/fastfile.test.js.map +1 -1
  253. package/dist/test/apple/templates.test.js +114 -30
  254. package/dist/test/apple/templates.test.js.map +1 -1
  255. package/dist/test/apple/xcode-manager.test.js +230 -234
  256. package/dist/test/apple/xcode-manager.test.js.map +1 -1
  257. package/dist/test/flutter/code-tools.test.js +119 -48
  258. package/dist/test/flutter/code-tools.test.js.map +1 -1
  259. package/dist/test/flutter/templates.test.js +63 -20
  260. package/dist/test/flutter/templates.test.js.map +1 -1
  261. package/dist/test/nextjs/templates.test.js +332 -43
  262. package/dist/test/nextjs/templates.test.js.map +1 -1
  263. package/dist/test/nuxt/templates.test.js +161 -33
  264. package/dist/test/nuxt/templates.test.js.map +1 -1
  265. package/dist/test/react-native/expo-metro.test.js +61 -15
  266. package/dist/test/react-native/expo-metro.test.js.map +1 -1
  267. package/dist/test/react-native/expo.test.js +37 -17
  268. package/dist/test/react-native/expo.test.js.map +1 -1
  269. package/dist/test/react-native/gradle.test.js +260 -28
  270. package/dist/test/react-native/gradle.test.js.map +1 -1
  271. package/dist/test/react-native/javascript.test.js +85 -19
  272. package/dist/test/react-native/javascript.test.js.map +1 -1
  273. package/dist/test/react-native/metro.test.js +261 -187
  274. package/dist/test/react-native/metro.test.js.map +1 -1
  275. package/dist/test/react-native/xcode.test.js +243 -62
  276. package/dist/test/react-native/xcode.test.js.map +1 -1
  277. package/dist/test/remix/client-entry.test.js +81 -21
  278. package/dist/test/remix/client-entry.test.js.map +1 -1
  279. package/dist/test/remix/server-instrumentation.test.js +21 -8
  280. package/dist/test/remix/server-instrumentation.test.js.map +1 -1
  281. package/dist/test/sourcemaps/tools/sentry-cli.test.js +20 -72
  282. package/dist/test/sourcemaps/tools/sentry-cli.test.js.map +1 -1
  283. package/dist/test/sourcemaps/tools/tsc.test.js +142 -68
  284. package/dist/test/sourcemaps/tools/tsc.test.js.map +1 -1
  285. package/dist/test/sourcemaps/tools/vite.test.js +106 -75
  286. package/dist/test/sourcemaps/tools/vite.test.js.map +1 -1
  287. package/dist/test/sourcemaps/tools/webpack.test.js +226 -102
  288. package/dist/test/sourcemaps/tools/webpack.test.js.map +1 -1
  289. package/dist/test/sveltekit/templates.test.js +117 -18
  290. package/dist/test/sveltekit/templates.test.js.map +1 -1
  291. package/dist/test/utils/ast-utils.test.js +99 -58
  292. package/dist/test/utils/ast-utils.test.js.map +1 -1
  293. package/dist/test/utils/clack-utils.test.js +142 -247
  294. package/dist/test/utils/clack-utils.test.js.map +1 -1
  295. package/e2e-tests/package.json +1 -1
  296. package/e2e-tests/tests/flutter.test.ts +20 -20
  297. package/e2e-tests/tests/nextjs.test.ts +2 -2
  298. package/e2e-tests/tests/nuxt-3.test.ts +4 -4
  299. package/e2e-tests/tests/nuxt-4.test.ts +3 -3
  300. package/e2e-tests/tests/remix.test.ts +3 -3
  301. package/e2e-tests/tests/sveltekit.test.ts +3 -3
  302. package/e2e-tests/utils/index.ts +33 -15
  303. package/lib/Helper/BottomBar.ts +1 -1
  304. package/lib/Helper/Env.ts +1 -1
  305. package/lib/Helper/Package.ts +12 -10
  306. package/lib/Helper/SentryCli.ts +18 -27
  307. package/lib/Helper/Wizard.ts +1 -2
  308. package/lib/Setup.ts +4 -5
  309. package/lib/Steps/ChooseIntegration.ts +40 -8
  310. package/lib/Steps/Initial.ts +17 -26
  311. package/lib/Steps/Integrations/BaseIntegration.ts +2 -8
  312. package/lib/Steps/Integrations/Cordova.ts +9 -15
  313. package/lib/Steps/Integrations/Electron.ts +23 -20
  314. package/lib/Steps/Integrations/MobileProject.ts +18 -15
  315. package/lib/Steps/OpenSentry.ts +12 -7
  316. package/lib/Steps/PromptForParameters.ts +12 -19
  317. package/lib/Steps/SentryProjectSelector.ts +30 -29
  318. package/lib/Steps/WaitForSentry.ts +29 -23
  319. package/package.json +12 -8
  320. package/src/apple/xcode-manager.ts +10 -10
  321. package/src/nextjs/templates.ts +2 -3
  322. package/src/nuxt/sdk-setup.ts +21 -18
  323. package/src/react-native/expo-metro.ts +2 -2
  324. package/src/react-native/react-native-wizard.ts +1 -2
  325. package/src/react-native/uninstall.ts +1 -2
  326. package/src/react-native/xcode.ts +1 -1
  327. package/src/run.ts +12 -5
  328. package/src/sourcemaps/tools/nextjs.ts +2 -2
  329. package/src/sourcemaps/tools/webpack.ts +3 -3
  330. package/src/telemetry.ts +27 -7
  331. package/src/utils/clack-utils.ts +50 -47
  332. package/test/apple/cocoapod.test.ts +4 -0
  333. package/test/apple/fastfile.test.ts +12 -7
  334. package/test/apple/xcode-manager.test.ts +13 -11
  335. package/test/utils/clack-utils.test.ts +40 -50
  336. package/types/read-env.d.ts +3 -0
  337. package/types/xcode.d.ts +1 -0
  338. package/dist/package.json +0 -128
@@ -22,209 +22,221 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
25
  Object.defineProperty(exports, "__esModule", { value: true });
62
- var fs = __importStar(require("fs"));
63
- var os = __importStar(require("os"));
64
- var path = __importStar(require("path"));
65
- var fastlane_1 = require("../../src/apple/fastlane");
26
+ const fs = __importStar(require("node:fs"));
27
+ const os = __importStar(require("node:os"));
28
+ const path = __importStar(require("node:path"));
29
+ const fastlane_1 = require("../../src/apple/fastlane");
66
30
  // @ts-ignore - clack is ESM and TS complains about that. It works though
67
- var clack = __importStar(require("@clack/prompts"));
68
- describe('fastlane', function () {
69
- beforeEach(function () {
31
+ const clack = __importStar(require("@clack/prompts"));
32
+ jest.mock('@clack/prompts', () => ({
33
+ __esModule: true,
34
+ ...jest.requireActual('@clack/prompts'),
35
+ }));
36
+ describe('fastlane', () => {
37
+ beforeEach(() => {
70
38
  jest.spyOn(clack.log, 'warn').mockImplementation();
71
39
  jest.spyOn(clack, 'select').mockResolvedValue(undefined);
72
40
  });
73
- describe('#fastFile', function () {
74
- describe('file exists', function () {
75
- it('should return path', function () {
41
+ describe('#fastFile', () => {
42
+ describe('file exists', () => {
43
+ it('should return path', () => {
76
44
  // -- Arrange --
77
- var _a = createFastlaneDir(), fastlaneDir = _a.fastlaneDir, projectPath = _a.projectPath;
78
- var fastfile = createFastfile(fastlaneDir, 'lane :test do');
45
+ const { fastlaneDir, projectPath } = createFastlaneDir();
46
+ const fastfile = createFastfile(fastlaneDir, 'lane :test do');
79
47
  // -- Act --
80
- var result = (0, fastlane_1.fastFile)(projectPath);
48
+ const result = (0, fastlane_1.fastFile)(projectPath);
81
49
  // -- Assert --
82
50
  expect(result).toBe(fastfile);
83
51
  });
84
52
  });
85
- describe('file does not exist', function () {
86
- it('should return null', function () {
53
+ describe('file does not exist', () => {
54
+ it('should return null', () => {
87
55
  // -- Arrange --
88
- var projectPath = createFastlaneDir().projectPath;
56
+ const { projectPath } = createFastlaneDir();
89
57
  // do not create Fastfile
90
58
  // -- Act --
91
- var result = (0, fastlane_1.fastFile)(projectPath);
59
+ const result = (0, fastlane_1.fastFile)(projectPath);
92
60
  // -- Assert --
93
61
  expect(result).toBeNull();
94
62
  });
95
63
  });
96
64
  });
97
- describe('#findIOSPlatform', function () {
98
- describe('platform block detection', function () {
99
- var variations = [
65
+ describe('#findIOSPlatform', () => {
66
+ describe('platform block detection', () => {
67
+ const variations = [
100
68
  {
101
69
  name: 'no platform',
102
- content: "lane :test do\nend",
70
+ content: `lane :test do
71
+ end`,
103
72
  expected: { index: 0, length: 17 },
104
73
  },
105
74
  {
106
75
  name: 'platform is ios',
107
- content: "platform: ios\nlane :test do\nend",
76
+ content: `platform: ios
77
+ lane :test do
78
+ end`,
108
79
  expected: { index: 0, length: 31 },
109
80
  },
110
81
  {
111
82
  name: 'platform is ios and other platform',
112
- content: "platform: ios\nend\nplatform: android\n lane :test do\n end",
83
+ content: `platform: ios
84
+ end
85
+ platform: android
86
+ lane :test do
87
+ end`,
113
88
  expected: { index: 0, length: 57 },
114
89
  },
115
90
  {
116
91
  name: 'platform is ios and other platform',
117
- content: "\n\t\tplatform: ios\n\t\tend\n\t\tplatform: android\n\t\t\tlane :test do\n\t\t\tend",
92
+ content: `
93
+ \t\tplatform: ios
94
+ \t\tend
95
+ \t\tplatform: android
96
+ \t\t\tlane :test do
97
+ \t\t\tend`,
118
98
  expected: { index: 0, length: 66 },
119
99
  },
120
100
  ];
121
- var _loop_1 = function (variation) {
122
- describe("".concat(variation.name), function () {
123
- it('should return null', function () {
101
+ for (const variation of variations) {
102
+ describe(`${variation.name}`, () => {
103
+ it('should return null', () => {
124
104
  // -- Act --
125
- var result = fastlane_1.exportForTesting.findIOSPlatform(variation.content);
105
+ const result = fastlane_1.exportForTesting.findIOSPlatform(variation.content);
126
106
  // -- Assert --
127
107
  expect(result).toEqual(variation.expected);
128
108
  });
129
109
  });
130
- };
131
- for (var _i = 0, variations_1 = variations; _i < variations_1.length; _i++) {
132
- var variation = variations_1[_i];
133
- _loop_1(variation);
134
110
  }
135
111
  });
136
- describe('platform block not found', function () {
137
- it('should return full content', function () {
112
+ describe('platform block not found', () => {
113
+ it('should return full content', () => {
138
114
  // -- Arrange --
139
- var content = "\n lane :test do\n puts 'Hello, world!'\n end";
115
+ const content = `
116
+ lane :test do
117
+ puts 'Hello, world!'
118
+ end`;
140
119
  // -- Act --
141
- var result = fastlane_1.exportForTesting.findIOSPlatform(content);
120
+ const result = fastlane_1.exportForTesting.findIOSPlatform(content);
142
121
  // -- Assert --
143
122
  expect(result).toEqual({ index: 0, length: 65 });
144
123
  });
145
124
  });
146
- describe('invalid platform block', function () {
147
- it('should return null', function () {
125
+ describe('invalid platform block', () => {
126
+ it('should return null', () => {
148
127
  // -- Arrange --
149
128
  // platform block is not opened with `do`
150
- var content = "\nplatform :ios\n\n lane :test do\n puts 'Hello, world!'\n end\nend\n";
129
+ const content = `
130
+ platform :ios\n
131
+ lane :test do
132
+ puts 'Hello, world!'
133
+ end
134
+ end
135
+ `;
151
136
  // -- Act --
152
- var result = fastlane_1.exportForTesting.findIOSPlatform(content);
137
+ const result = fastlane_1.exportForTesting.findIOSPlatform(content);
153
138
  // -- Assert --
154
139
  expect(result).toBeNull();
155
140
  });
156
141
  });
157
- describe('platform block is not closed', function () {
158
- it('should return null', function () {
142
+ describe('platform block is not closed', () => {
143
+ it('should return null', () => {
159
144
  // -- Arrange --
160
- var content = "\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n end\n";
145
+ const content = `
146
+ platform :ios do
147
+ lane :test do
148
+ puts 'Hello, world!'
149
+ end
150
+ `;
161
151
  // -- Act --
162
- var result = fastlane_1.exportForTesting.findIOSPlatform(content);
152
+ const result = fastlane_1.exportForTesting.findIOSPlatform(content);
163
153
  // -- Assert --
164
154
  expect(result).toBeNull();
165
155
  });
166
156
  });
167
- describe('multiple platforms detected', function () {
168
- it('should return block with ios platform', function () {
157
+ describe('multiple platforms detected', () => {
158
+ it('should return block with ios platform', () => {
169
159
  // -- Arrange --
170
- var content = "\nfastlane_version '2.53.1'\n\nbefore_all do\n ensure_git_branch\n ensure_git_status_clean\n git_pull\nend\n\nplatform :ios do\n # iOS Lanes\nend\n\nplatform :android do\n # Android Lanes\nend\n";
160
+ const content = `
161
+ fastlane_version '2.53.1'
162
+
163
+ before_all do
164
+ ensure_git_branch
165
+ ensure_git_status_clean
166
+ git_pull
167
+ end
168
+
169
+ platform :ios do
170
+ # iOS Lanes
171
+ end
172
+
173
+ platform :android do
174
+ # Android Lanes
175
+ end
176
+ `;
171
177
  // -- Act --
172
- var result = fastlane_1.exportForTesting.findIOSPlatform(content);
178
+ const result = fastlane_1.exportForTesting.findIOSPlatform(content);
173
179
  // -- Assert --
174
180
  expect(result).toEqual({ index: 121, length: 15 });
175
181
  });
176
182
  });
177
183
  });
178
- describe('#findLanes', function () {
179
- describe('lanes detection', function () {
180
- describe('valid cases', function () {
181
- var variations = [
184
+ describe('#findLanes', () => {
185
+ describe('lanes detection', () => {
186
+ describe('valid cases', () => {
187
+ const variations = [
182
188
  {
183
189
  name: 'single lane',
184
- content: "\n lane :test do\n puts 'Hello, world!'\n end\n",
190
+ content: `
191
+ lane :test do
192
+ puts 'Hello, world!'
193
+ end
194
+ `,
185
195
  expected: [{ index: 17, length: 25, name: 'test' }],
186
196
  },
187
197
  {
188
198
  name: 'multiple lanes',
189
- content: "\n lane :test do\n puts 'Hello, world!'\n end\n lane :test2 do\n puts 'Hello, world!'\n end",
199
+ content: `
200
+ lane :test do
201
+ puts 'Hello, world!'
202
+ end
203
+ lane :test2 do
204
+ puts 'Hello, world!'
205
+ end`,
190
206
  expected: [
191
207
  { index: 17, length: 25, name: 'test' },
192
208
  { index: 65, length: 25, name: 'test2' },
193
209
  ],
194
210
  },
195
211
  ];
196
- var _loop_2 = function (variation) {
197
- describe("".concat(variation.name), function () {
198
- it('should return lanes', function () {
212
+ for (const variation of variations) {
213
+ describe(`${variation.name}`, () => {
214
+ it('should return lanes', () => {
199
215
  // -- Act --
200
- var result = fastlane_1.exportForTesting.findLanes(variation.content);
216
+ const result = fastlane_1.exportForTesting.findLanes(variation.content);
201
217
  // -- Assert --
202
218
  expect(result).toEqual(variation.expected);
203
219
  });
204
220
  });
205
- };
206
- for (var _i = 0, variations_2 = variations; _i < variations_2.length; _i++) {
207
- var variation = variations_2[_i];
208
- _loop_2(variation);
209
221
  }
210
222
  });
211
- describe('invalid cases', function () {
212
- describe('lane is not indented', function () {
213
- it('should return null', function () {
223
+ describe('invalid cases', () => {
224
+ describe('lane is not indented', () => {
225
+ it('should return null', () => {
214
226
  // -- Arrange --
215
- var content = "lane :test do\nend";
227
+ const content = `lane :test do\nend`;
216
228
  // -- Act --
217
- var result = fastlane_1.exportForTesting.findLanes(content);
229
+ const result = fastlane_1.exportForTesting.findLanes(content);
218
230
  // -- Assert --
219
231
  expect(result).toBeNull();
220
232
  });
221
233
  });
222
- describe('lane is not closed', function () {
223
- it('should return null', function () {
234
+ describe('lane is not closed', () => {
235
+ it('should return null', () => {
224
236
  // -- Arrange --
225
- var content = " lane :test do\n";
237
+ const content = ` lane :test do\n`;
226
238
  // -- Act --
227
- var result = fastlane_1.exportForTesting.findLanes(content);
239
+ const result = fastlane_1.exportForTesting.findLanes(content);
228
240
  // -- Assert --
229
241
  expect(result).toBeNull();
230
242
  });
@@ -232,199 +244,235 @@ describe('fastlane', function () {
232
244
  });
233
245
  });
234
246
  });
235
- describe('#addSentryToLane', function () {
236
- describe('sentry_cli is not present', function () {
237
- it('should return original content', function () {
247
+ describe('#addSentryToLane', () => {
248
+ describe('sentry_cli is not present', () => {
249
+ it('should return original content', () => {
238
250
  // -- Arrange --
239
- var content = "\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n end\nend\n";
240
- var lane = { index: 34, length: 25, name: 'test' };
251
+ const content = `
252
+ platform :ios do
253
+ lane :test do
254
+ puts 'Hello, world!'
255
+ end
256
+ end
257
+ `;
258
+ const lane = { index: 34, length: 25, name: 'test' };
241
259
  // -- Act --
242
- var result = fastlane_1.exportForTesting.addSentryToLane(content, lane, 'test-org', 'test-project');
260
+ const result = fastlane_1.exportForTesting.addSentryToLane(content, lane, 'test-org', 'test-project');
243
261
  // -- Assert --
244
- expect(result).toBe("\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n\n sentry_cli(\n org_slug: 'test-org',\n project_slug: 'test-project',\n include_sources: true\n )\n end\nend\n");
262
+ expect(result).toBe(`
263
+ platform :ios do
264
+ lane :test do
265
+ puts 'Hello, world!'
266
+
267
+ sentry_cli(
268
+ org_slug: 'test-org',
269
+ project_slug: 'test-project',
270
+ include_sources: true
271
+ )
272
+ end
273
+ end
274
+ `);
245
275
  });
246
276
  });
247
- describe('sentry_cli is present', function () {
248
- it('should return updated content', function () {
277
+ describe('sentry_cli is present', () => {
278
+ it('should return updated content', () => {
249
279
  // -- Arrange --
250
- var content = "\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n\n sentry_cli(org_slug: 'test-org', project_slug: 'test-project')\n end\nend\n";
251
- var lane = { index: 34, length: 92, name: 'test' };
280
+ const content = `
281
+ platform :ios do
282
+ lane :test do
283
+ puts 'Hello, world!'
284
+
285
+ sentry_cli(org_slug: 'test-org', project_slug: 'test-project')
286
+ end
287
+ end
288
+ `;
289
+ const lane = { index: 34, length: 92, name: 'test' };
252
290
  // -- Act --
253
- var result = fastlane_1.exportForTesting.addSentryToLane(content, lane, 'test-org', 'test-project');
291
+ const result = fastlane_1.exportForTesting.addSentryToLane(content, lane, 'test-org', 'test-project');
254
292
  // -- Assert --
255
- expect(result).toBe("\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n\n sentry_cli(\n org_slug: 'test-org',\n project_slug: 'test-project',\n include_sources: true\n )\n end\nend\n");
293
+ expect(result).toBe(`
294
+ platform :ios do
295
+ lane :test do
296
+ puts 'Hello, world!'
297
+
298
+ sentry_cli(
299
+ org_slug: 'test-org',
300
+ project_slug: 'test-project',
301
+ include_sources: true
302
+ )
303
+ end
304
+ end
305
+ `);
256
306
  });
257
307
  });
258
308
  });
259
- describe('#addSentryToFastlane', function () {
260
- var org = 'test-org';
261
- var project = 'test-project';
262
- describe('Fastfile not found', function () {
263
- it('should return false', function () { return __awaiter(void 0, void 0, void 0, function () {
264
- var projectPath, fastfilePath, result;
265
- return __generator(this, function (_a) {
266
- switch (_a.label) {
267
- case 0:
268
- projectPath = createFastlaneDir().projectPath;
269
- fastfilePath = path.join(projectPath, 'Fastfile');
270
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
271
- case 1:
272
- result = _a.sent();
273
- // -- Assert --
274
- expect(result).toBe(false);
275
- expect(fs.existsSync(fastfilePath)).toBe(false);
276
- return [2 /*return*/];
277
- }
278
- });
279
- }); });
309
+ describe('#addSentryToFastlane', () => {
310
+ const org = 'test-org';
311
+ const project = 'test-project';
312
+ describe('Fastfile not found', () => {
313
+ it('should return false', async () => {
314
+ // -- Arrange --
315
+ const { projectPath } = createFastlaneDir();
316
+ const fastfilePath = path.join(projectPath, 'Fastfile');
317
+ // do not create Fastfile
318
+ // -- Act --
319
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
320
+ // -- Assert --
321
+ expect(result).toBe(false);
322
+ expect(fs.existsSync(fastfilePath)).toBe(false);
323
+ });
280
324
  });
281
- describe('platform not found', function () {
282
- it('should return false', function () { return __awaiter(void 0, void 0, void 0, function () {
283
- var _a, fastlaneDir, projectPath, fastfilePath, originalContent, result;
284
- return __generator(this, function (_b) {
285
- switch (_b.label) {
286
- case 0:
287
- _a = createFastlaneDir(), fastlaneDir = _a.fastlaneDir, projectPath = _a.projectPath;
288
- fastfilePath = createFastfile(fastlaneDir, "\nplatform :ios\n lane :test do\n puts 'Hello, world!'\n end\nend\n");
289
- originalContent = fs.readFileSync(fastfilePath, 'utf8');
290
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
291
- case 1:
292
- result = _b.sent();
293
- // -- Assert --
294
- expect(result).toBe(false);
295
- expect(fs.readFileSync(fastfilePath, 'utf8')).toBe(originalContent);
296
- return [2 /*return*/];
297
- }
298
- });
299
- }); });
325
+ describe('platform not found', () => {
326
+ it('should return false', async () => {
327
+ // -- Arrange --
328
+ const { fastlaneDir, projectPath } = createFastlaneDir();
329
+ const fastfilePath = createFastfile(fastlaneDir, `
330
+ platform :ios
331
+ lane :test do
332
+ puts 'Hello, world!'
333
+ end
334
+ end
335
+ `);
336
+ const originalContent = fs.readFileSync(fastfilePath, 'utf8');
337
+ // -- Act --
338
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
339
+ // -- Assert --
340
+ expect(result).toBe(false);
341
+ expect(fs.readFileSync(fastfilePath, 'utf8')).toBe(originalContent);
342
+ });
300
343
  });
301
- describe('no lanes', function () {
302
- it('should return false', function () { return __awaiter(void 0, void 0, void 0, function () {
303
- var _a, fastlaneDir, projectPath, result;
304
- return __generator(this, function (_b) {
305
- switch (_b.label) {
306
- case 0:
307
- _a = createFastlaneDir(), fastlaneDir = _a.fastlaneDir, projectPath = _a.projectPath;
308
- createFastfile(fastlaneDir, "platform :ios");
309
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
310
- case 1:
311
- result = _b.sent();
312
- // -- Assert --
313
- expect(result).toBe(false);
314
- return [2 /*return*/];
315
- }
316
- });
317
- }); });
318
- it('should warn user', function () { return __awaiter(void 0, void 0, void 0, function () {
319
- var _a, fastlaneDir, projectPath, result;
320
- return __generator(this, function (_b) {
321
- switch (_b.label) {
322
- case 0:
323
- _a = createFastlaneDir(), fastlaneDir = _a.fastlaneDir, projectPath = _a.projectPath;
324
- createFastfile(fastlaneDir, "platform :ios");
325
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
326
- case 1:
327
- result = _b.sent();
328
- // -- Assert --
329
- expect(result).toBe(false);
330
- expect(clack.log.warn).toHaveBeenCalledWith('No suitable lanes in your Fastfile.');
331
- return [2 /*return*/];
332
- }
333
- });
334
- }); });
344
+ describe('no lanes', () => {
345
+ it('should return false', async () => {
346
+ // -- Arrange --
347
+ const { fastlaneDir, projectPath } = createFastlaneDir();
348
+ createFastfile(fastlaneDir, `platform :ios`);
349
+ // -- Act --
350
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
351
+ // -- Assert --
352
+ expect(result).toBe(false);
353
+ });
354
+ it('should warn user', async () => {
355
+ // -- Arrange --
356
+ const { fastlaneDir, projectPath } = createFastlaneDir();
357
+ createFastfile(fastlaneDir, `platform :ios`);
358
+ // -- Act --
359
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
360
+ // -- Assert --
361
+ expect(result).toBe(false);
362
+ expect(clack.log.warn).toHaveBeenCalledWith('No suitable lanes in your Fastfile.');
363
+ });
335
364
  });
336
- describe('single lane', function () {
337
- it('should return true', function () { return __awaiter(void 0, void 0, void 0, function () {
338
- var _a, fastlaneDir, projectPath, fastfilePath, result;
339
- return __generator(this, function (_b) {
340
- switch (_b.label) {
341
- case 0:
342
- _a = createFastlaneDir(), fastlaneDir = _a.fastlaneDir, projectPath = _a.projectPath;
343
- fastfilePath = createFastfile(fastlaneDir, "\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n end \nend\n");
344
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
345
- case 1:
346
- result = _b.sent();
347
- // -- Assert --
348
- expect(result).toBe(true);
349
- expect(fs.readFileSync(fastfilePath, 'utf8')).toBe("\nplatform :ios do\n lane :test do\n puts 'Hello, world!'\n\n sentry_cli(\n org_slug: 'test-org',\n project_slug: 'test-project',\n include_sources: true\n )\n end \nend\n");
350
- return [2 /*return*/];
351
- }
352
- });
353
- }); });
365
+ describe('single lane', () => {
366
+ it('should return true', async () => {
367
+ // -- Arrange --
368
+ const { fastlaneDir, projectPath } = createFastlaneDir();
369
+ const fastfilePath = createFastfile(fastlaneDir, `
370
+ platform :ios do
371
+ lane :test do
372
+ puts 'Hello, world!'
373
+ end
374
+ end
375
+ `);
376
+ // -- Act --
377
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
378
+ // -- Assert --
379
+ expect(result).toBe(true);
380
+ expect(fs.readFileSync(fastfilePath, 'utf8')).toBe(`
381
+ platform :ios do
382
+ lane :test do
383
+ puts 'Hello, world!'
384
+
385
+ sentry_cli(
386
+ org_slug: 'test-org',
387
+ project_slug: 'test-project',
388
+ include_sources: true
389
+ )
390
+ end
391
+ end
392
+ `);
393
+ });
354
394
  });
355
- describe('multiple lanes', function () {
356
- var fastfilePath;
357
- var projectPath;
358
- var originalContent;
359
- beforeEach(function () {
360
- var createdFastlaneDir = createFastlaneDir();
395
+ describe('multiple lanes', () => {
396
+ let fastfilePath;
397
+ let projectPath;
398
+ let originalContent;
399
+ beforeEach(() => {
400
+ const createdFastlaneDir = createFastlaneDir();
361
401
  projectPath = createdFastlaneDir.projectPath;
362
- fastfilePath = createFastfile(createdFastlaneDir.fastlaneDir, "platform :ios do\n lane :test do\n puts 'Hello, world!'\n end \n\n lane :beta do\n puts 'Beta lane'\n end\nend\n");
402
+ fastfilePath = createFastfile(createdFastlaneDir.fastlaneDir, `platform :ios do
403
+ lane :test do
404
+ puts 'Hello, world!'
405
+ end
406
+
407
+ lane :beta do
408
+ puts 'Beta lane'
409
+ end
410
+ end
411
+ `);
363
412
  });
364
- describe('no lane selected', function () {
365
- it('should not modify Fastfile', function () { return __awaiter(void 0, void 0, void 0, function () {
366
- var result;
367
- return __generator(this, function (_a) {
368
- switch (_a.label) {
369
- case 0:
370
- // -- Arrange --
371
- originalContent = fs.readFileSync(fastfilePath, 'utf8');
372
- jest.spyOn(clack, 'select').mockResolvedValue(undefined);
373
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
374
- case 1:
375
- result = _a.sent();
376
- // -- Assert --
377
- expect(result).toBe(false);
378
- expect(fs.readFileSync(fastfilePath, 'utf8')).toBe(originalContent);
379
- return [2 /*return*/];
380
- }
381
- });
382
- }); });
413
+ describe('no lane selected', () => {
414
+ it('should not modify Fastfile', async () => {
415
+ // -- Arrange --
416
+ originalContent = fs.readFileSync(fastfilePath, 'utf8');
417
+ jest.spyOn(clack, 'select').mockResolvedValue(undefined);
418
+ // -- Act --
419
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
420
+ // -- Assert --
421
+ expect(result).toBe(false);
422
+ expect(fs.readFileSync(fastfilePath, 'utf8')).toBe(originalContent);
423
+ });
383
424
  });
384
- describe('lane selected', function () {
385
- it('should modify only selected lane', function () { return __awaiter(void 0, void 0, void 0, function () {
386
- var result;
387
- return __generator(this, function (_a) {
388
- switch (_a.label) {
389
- case 0:
390
- // -- Arrange --
391
- jest.spyOn(clack, 'select').mockResolvedValue({
392
- value: 'beta',
393
- index: 1,
394
- });
395
- return [4 /*yield*/, (0, fastlane_1.addSentryToFastlane)(projectPath, org, project)];
396
- case 1:
397
- result = _a.sent();
398
- // -- Assert --
399
- expect(result).toBe(true);
400
- expect(fs.readFileSync(fastfilePath, 'utf8')).toBe("platform :ios do\n lane :test do\n puts 'Hello, world!'\n end \n\n lane :beta do\n puts 'Beta lane'\n\n sentry_cli(\n org_slug: 'test-org',\n project_slug: 'test-project',\n include_sources: true\n )\n end\nend\n");
401
- expect(clack.select).toHaveBeenCalledWith({
402
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
403
- maxItems: expect.any(Number),
404
- message: 'Select lane to add Sentry to:',
405
- options: [
406
- { value: { value: 'test', index: 0 }, label: 'test' },
407
- { value: { value: 'beta', index: 1 }, label: 'beta' },
408
- ],
409
- });
410
- return [2 /*return*/];
411
- }
425
+ describe('lane selected', () => {
426
+ it('should modify only selected lane', async () => {
427
+ // -- Arrange --
428
+ jest.spyOn(clack, 'select').mockResolvedValue({
429
+ value: 'beta',
430
+ index: 1,
412
431
  });
413
- }); });
432
+ // -- Act --
433
+ const result = await (0, fastlane_1.addSentryToFastlane)(projectPath, org, project);
434
+ // -- Assert --
435
+ expect(result).toBe(true);
436
+ expect(fs.readFileSync(fastfilePath, 'utf8')).toBe(`platform :ios do
437
+ lane :test do
438
+ puts 'Hello, world!'
439
+ end
440
+
441
+ lane :beta do
442
+ puts 'Beta lane'
443
+
444
+ sentry_cli(
445
+ org_slug: 'test-org',
446
+ project_slug: 'test-project',
447
+ include_sources: true
448
+ )
449
+ end
450
+ end
451
+ `);
452
+ expect(clack.select).toHaveBeenCalledWith({
453
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
454
+ maxItems: expect.any(Number),
455
+ message: 'Select lane to add Sentry to:',
456
+ options: [
457
+ { value: { value: 'test', index: 0 }, label: 'test' },
458
+ { value: { value: 'beta', index: 1 }, label: 'beta' },
459
+ ],
460
+ });
461
+ });
414
462
  });
415
463
  });
416
464
  });
417
465
  });
418
466
  function createFastlaneDir() {
419
- var projectPath = fs.mkdtempSync(path.join(os.tmpdir(), 'test-project'));
420
- var fastlaneDir = path.join(projectPath, 'fastlane');
467
+ const projectPath = fs.mkdtempSync(path.join(os.tmpdir(), 'test-project'));
468
+ const fastlaneDir = path.join(projectPath, 'fastlane');
421
469
  fs.mkdirSync(fastlaneDir, {
422
470
  recursive: true,
423
471
  });
424
- return { fastlaneDir: fastlaneDir, projectPath: projectPath };
472
+ return { fastlaneDir, projectPath };
425
473
  }
426
474
  function createFastfile(fastlaneDir, content) {
427
- var fastfile = path.join(fastlaneDir, 'Fastfile');
475
+ const fastfile = path.join(fastlaneDir, 'Fastfile');
428
476
  fs.writeFileSync(fastfile, content);
429
477
  return fastfile;
430
478
  }