@datadog/datadog-ci 2.47.0 → 3.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 (408) hide show
  1. package/README.md +9 -2
  2. package/dist/__tests__/cli.test.d.ts +1 -0
  3. package/dist/__tests__/cli.test.js +92 -0
  4. package/dist/__tests__/cli.test.js.map +1 -0
  5. package/dist/cli.js +1 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/cloud-run/__tests__/fixtures.d.ts +2 -0
  8. package/dist/commands/cloud-run/__tests__/fixtures.js +12 -0
  9. package/dist/commands/cloud-run/__tests__/fixtures.js.map +1 -0
  10. package/dist/commands/cloud-run/__tests__/flare.test.d.ts +1 -0
  11. package/dist/commands/cloud-run/__tests__/flare.test.js +557 -0
  12. package/dist/commands/cloud-run/__tests__/flare.test.js.map +1 -0
  13. package/dist/commands/coverage/__tests__/upload.test.d.ts +1 -0
  14. package/dist/commands/coverage/__tests__/upload.test.js +323 -0
  15. package/dist/commands/coverage/__tests__/upload.test.js.map +1 -0
  16. package/dist/commands/coverage/__tests__/utils.test.d.ts +1 -0
  17. package/dist/commands/coverage/__tests__/utils.test.js +57 -0
  18. package/dist/commands/coverage/__tests__/utils.test.js.map +1 -0
  19. package/dist/commands/coverage/api.d.ts +9 -0
  20. package/dist/commands/coverage/api.js +52 -0
  21. package/dist/commands/coverage/api.js.map +1 -0
  22. package/dist/commands/coverage/cli.d.ts +1 -0
  23. package/dist/commands/coverage/cli.js +5 -0
  24. package/dist/commands/coverage/cli.js.map +1 -0
  25. package/dist/commands/coverage/interfaces.d.ts +13 -0
  26. package/dist/commands/coverage/interfaces.js +3 -0
  27. package/dist/commands/coverage/interfaces.js.map +1 -0
  28. package/dist/commands/coverage/renderer.d.ts +12 -0
  29. package/dist/commands/coverage/renderer.js +83 -0
  30. package/dist/commands/coverage/renderer.js.map +1 -0
  31. package/dist/commands/coverage/upload.d.ts +27 -0
  32. package/dist/commands/coverage/upload.js +329 -0
  33. package/dist/commands/coverage/upload.js.map +1 -0
  34. package/dist/commands/coverage/utils.d.ts +3 -0
  35. package/dist/commands/coverage/utils.js +83 -0
  36. package/dist/commands/coverage/utils.js.map +1 -0
  37. package/dist/commands/deployment/__tests__/correlate.test.d.ts +1 -0
  38. package/dist/commands/deployment/__tests__/correlate.test.js +106 -0
  39. package/dist/commands/deployment/__tests__/correlate.test.js.map +1 -0
  40. package/dist/commands/deployment/__tests__/mark.test.d.ts +1 -0
  41. package/dist/commands/deployment/__tests__/mark.test.js +97 -0
  42. package/dist/commands/deployment/__tests__/mark.test.js.map +1 -0
  43. package/dist/commands/dora/__tests__/deployment.test.d.ts +1 -0
  44. package/dist/commands/dora/__tests__/deployment.test.js +201 -0
  45. package/dist/commands/dora/__tests__/deployment.test.js.map +1 -0
  46. package/dist/commands/dsyms/__tests__/upload.test.d.ts +1 -0
  47. package/dist/commands/dsyms/__tests__/upload.test.js +346 -0
  48. package/dist/commands/dsyms/__tests__/upload.test.js.map +1 -0
  49. package/dist/commands/dsyms/__tests__/utils.test.d.ts +1 -0
  50. package/dist/commands/dsyms/__tests__/utils.test.js +100 -0
  51. package/dist/commands/dsyms/__tests__/utils.test.js.map +1 -0
  52. package/dist/commands/dsyms/upload.js +3 -3
  53. package/dist/commands/dsyms/upload.js.map +1 -1
  54. package/dist/commands/dsyms/utils.js +7 -6
  55. package/dist/commands/dsyms/utils.js.map +1 -1
  56. package/dist/commands/elf-symbols/__tests__/elf.test.d.ts +1 -0
  57. package/dist/commands/elf-symbols/__tests__/elf.test.js +819 -0
  58. package/dist/commands/elf-symbols/__tests__/elf.test.js.map +1 -0
  59. package/dist/commands/elf-symbols/__tests__/upload.test.d.ts +1 -0
  60. package/dist/commands/elf-symbols/__tests__/upload.test.js +224 -0
  61. package/dist/commands/elf-symbols/__tests__/upload.test.js.map +1 -0
  62. package/dist/commands/elf-symbols/elf.d.ts +1 -0
  63. package/dist/commands/elf-symbols/upload.js +2 -3
  64. package/dist/commands/elf-symbols/upload.js.map +1 -1
  65. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +1 -0
  66. package/dist/commands/flutter-symbols/__tests__/upload.test.js +617 -0
  67. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +1 -0
  68. package/dist/commands/flutter-symbols/upload.js +2 -2
  69. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  70. package/dist/commands/gate/__tests__/evaluate.test.d.ts +1 -0
  71. package/dist/commands/gate/__tests__/evaluate.test.js +398 -0
  72. package/dist/commands/gate/__tests__/evaluate.test.js.map +1 -0
  73. package/dist/commands/gate/__tests__/scope.test.d.ts +1 -0
  74. package/dist/commands/gate/__tests__/scope.test.js +29 -0
  75. package/dist/commands/gate/__tests__/scope.test.js.map +1 -0
  76. package/dist/commands/git-metadata/__tests__/git.test.d.ts +1 -0
  77. package/dist/commands/git-metadata/__tests__/git.test.js +132 -0
  78. package/dist/commands/git-metadata/__tests__/git.test.js.map +1 -0
  79. package/dist/commands/git-metadata/__tests__/gitdb.test.d.ts +1 -0
  80. package/dist/commands/git-metadata/__tests__/gitdb.test.js +1386 -0
  81. package/dist/commands/git-metadata/__tests__/gitdb.test.js.map +1 -0
  82. package/dist/commands/git-metadata/__tests__/library.test.d.ts +1 -0
  83. package/dist/commands/git-metadata/__tests__/library.test.js +118 -0
  84. package/dist/commands/git-metadata/__tests__/library.test.js.map +1 -0
  85. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +1 -0
  86. package/dist/commands/git-metadata/__tests__/upload.test.js +52 -0
  87. package/dist/commands/git-metadata/__tests__/upload.test.js.map +1 -0
  88. package/dist/commands/git-metadata/upload.d.ts +0 -1
  89. package/dist/commands/git-metadata/upload.js +0 -6
  90. package/dist/commands/git-metadata/upload.js.map +1 -1
  91. package/dist/commands/junit/__tests__/upload.test.d.ts +1 -0
  92. package/dist/commands/junit/__tests__/upload.test.js +446 -0
  93. package/dist/commands/junit/__tests__/upload.test.js.map +1 -0
  94. package/dist/commands/junit/renderer.d.ts +0 -1
  95. package/dist/commands/junit/renderer.js +1 -5
  96. package/dist/commands/junit/renderer.js.map +1 -1
  97. package/dist/commands/junit/upload.d.ts +0 -2
  98. package/dist/commands/junit/upload.js +8 -21
  99. package/dist/commands/junit/upload.js.map +1 -1
  100. package/dist/commands/lambda/__tests__/fixtures.d.ts +51 -0
  101. package/dist/commands/lambda/__tests__/fixtures.js +146 -0
  102. package/dist/commands/lambda/__tests__/fixtures.js.map +1 -0
  103. package/dist/commands/lambda/__tests__/flare.test.d.ts +1 -0
  104. package/dist/commands/lambda/__tests__/flare.test.js +730 -0
  105. package/dist/commands/lambda/__tests__/flare.test.js.map +1 -0
  106. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +1 -0
  107. package/dist/commands/lambda/__tests__/functions/commons.test.js +791 -0
  108. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +1 -0
  109. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +1 -0
  110. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +386 -0
  111. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +1 -0
  112. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +1 -0
  113. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +721 -0
  114. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +1 -0
  115. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +1 -0
  116. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +513 -0
  117. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +1 -0
  118. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +1 -0
  119. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +33 -0
  120. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +1 -0
  121. package/dist/commands/lambda/__tests__/instrument.test.d.ts +1 -0
  122. package/dist/commands/lambda/__tests__/instrument.test.js +1537 -0
  123. package/dist/commands/lambda/__tests__/instrument.test.js.map +1 -0
  124. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +1 -0
  125. package/dist/commands/lambda/__tests__/loggroup.test.js +340 -0
  126. package/dist/commands/lambda/__tests__/loggroup.test.js.map +1 -0
  127. package/dist/commands/lambda/__tests__/prompt.test.d.ts +1 -0
  128. package/dist/commands/lambda/__tests__/prompt.test.js +206 -0
  129. package/dist/commands/lambda/__tests__/prompt.test.js.map +1 -0
  130. package/dist/commands/lambda/__tests__/tags.test.d.ts +1 -0
  131. package/dist/commands/lambda/__tests__/tags.test.js +305 -0
  132. package/dist/commands/lambda/__tests__/tags.test.js.map +1 -0
  133. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +1 -0
  134. package/dist/commands/lambda/__tests__/uninstrument.test.js +722 -0
  135. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +1 -0
  136. package/dist/commands/lambda/constants.d.ts +2 -0
  137. package/dist/commands/lambda/constants.js +4 -0
  138. package/dist/commands/lambda/constants.js.map +1 -1
  139. package/dist/commands/lambda/functions/commons.d.ts +1 -1
  140. package/dist/commands/measure/__tests__/measure.test.d.ts +1 -0
  141. package/dist/commands/measure/__tests__/measure.test.js +102 -0
  142. package/dist/commands/measure/__tests__/measure.test.js.map +1 -0
  143. package/dist/commands/measure/measure.d.ts +0 -1
  144. package/dist/commands/measure/measure.js +2 -9
  145. package/dist/commands/measure/measure.js.map +1 -1
  146. package/dist/commands/react-native/__tests__/codepush.test.d.ts +1 -0
  147. package/dist/commands/react-native/__tests__/codepush.test.js +161 -0
  148. package/dist/commands/react-native/__tests__/codepush.test.js.map +1 -0
  149. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +1 -0
  150. package/dist/commands/react-native/__tests__/interfaces.test.js +33 -0
  151. package/dist/commands/react-native/__tests__/interfaces.test.js.map +1 -0
  152. package/dist/commands/react-native/__tests__/upload.test.d.ts +1 -0
  153. package/dist/commands/react-native/__tests__/upload.test.js +238 -0
  154. package/dist/commands/react-native/__tests__/upload.test.js.map +1 -0
  155. package/dist/commands/react-native/__tests__/utils.test.d.ts +1 -0
  156. package/dist/commands/react-native/__tests__/utils.test.js +27 -0
  157. package/dist/commands/react-native/__tests__/utils.test.js.map +1 -0
  158. package/dist/commands/react-native/__tests__/xcode.test.d.ts +1 -0
  159. package/dist/commands/react-native/__tests__/xcode.test.js +465 -0
  160. package/dist/commands/react-native/__tests__/xcode.test.js.map +1 -0
  161. package/dist/commands/sarif/__tests__/upload.test.d.ts +1 -0
  162. package/dist/commands/sarif/__tests__/upload.test.js +218 -0
  163. package/dist/commands/sarif/__tests__/upload.test.js.map +1 -0
  164. package/dist/commands/sarif/__tests__/validation.test.d.ts +1 -0
  165. package/dist/commands/sarif/__tests__/validation.test.js +19 -0
  166. package/dist/commands/sarif/__tests__/validation.test.js.map +1 -0
  167. package/dist/commands/sarif/api.js +1 -1
  168. package/dist/commands/sarif/api.js.map +1 -1
  169. package/dist/commands/sarif/interfaces.d.ts +0 -1
  170. package/dist/commands/sarif/renderer.d.ts +2 -2
  171. package/dist/commands/sarif/renderer.js +5 -5
  172. package/dist/commands/sarif/renderer.js.map +1 -1
  173. package/dist/commands/sarif/upload.d.ts +1 -1
  174. package/dist/commands/sarif/upload.js +15 -10
  175. package/dist/commands/sarif/upload.js.map +1 -1
  176. package/dist/commands/sbom/__tests__/payload.test.d.ts +1 -0
  177. package/dist/commands/sbom/__tests__/payload.test.js +306 -0
  178. package/dist/commands/sbom/__tests__/payload.test.js.map +1 -0
  179. package/dist/commands/sbom/__tests__/validation.test.d.ts +1 -0
  180. package/dist/commands/sbom/__tests__/validation.test.js +141 -0
  181. package/dist/commands/sbom/__tests__/validation.test.js.map +1 -0
  182. package/dist/commands/sbom/json-schema/spdx/spdx.schema.json +428 -198
  183. package/dist/commands/sbom/language.js +5 -1
  184. package/dist/commands/sbom/language.js.map +1 -1
  185. package/dist/commands/sbom/renderer.d.ts +2 -2
  186. package/dist/commands/sbom/renderer.js +7 -1
  187. package/dist/commands/sbom/renderer.js.map +1 -1
  188. package/dist/commands/sbom/upload.d.ts +1 -1
  189. package/dist/commands/sbom/upload.js +11 -4
  190. package/dist/commands/sbom/upload.js.map +1 -1
  191. package/dist/commands/sbom/validation.d.ts +5 -0
  192. package/dist/commands/sbom/validation.js +23 -10
  193. package/dist/commands/sbom/validation.js.map +1 -1
  194. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +1 -0
  195. package/dist/commands/sourcemaps/__tests__/upload.test.js +270 -0
  196. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +1 -0
  197. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +1 -0
  198. package/dist/commands/sourcemaps/__tests__/utils.test.js +31 -0
  199. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +1 -0
  200. package/dist/commands/sourcemaps/upload.d.ts +1 -0
  201. package/dist/commands/sourcemaps/upload.js +6 -2
  202. package/dist/commands/sourcemaps/upload.js.map +1 -1
  203. package/dist/commands/stepfunctions/__tests__/awsCommands.test.d.ts +1 -0
  204. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js +210 -0
  205. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js.map +1 -0
  206. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.d.ts +6 -0
  207. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js +45 -0
  208. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js.map +1 -0
  209. package/dist/commands/stepfunctions/__tests__/fixtures/cli.d.ts +5 -0
  210. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js +19 -0
  211. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js.map +1 -0
  212. package/dist/commands/stepfunctions/__tests__/helpers.test.d.ts +1 -0
  213. package/dist/commands/stepfunctions/__tests__/helpers.test.js +501 -0
  214. package/dist/commands/stepfunctions/__tests__/helpers.test.js.map +1 -0
  215. package/dist/commands/stepfunctions/__tests__/instrument.test.d.ts +1 -0
  216. package/dist/commands/stepfunctions/__tests__/instrument.test.js +431 -0
  217. package/dist/commands/stepfunctions/__tests__/instrument.test.js.map +1 -0
  218. package/dist/commands/stepfunctions/__tests__/uninstrument.test.d.ts +1 -0
  219. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js +166 -0
  220. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js.map +1 -0
  221. package/dist/commands/synthetics/__tests__/api.test.d.ts +1 -0
  222. package/dist/commands/synthetics/__tests__/api.test.js +416 -0
  223. package/dist/commands/synthetics/__tests__/api.test.js.map +1 -0
  224. package/dist/commands/synthetics/__tests__/batch.test.d.ts +1 -0
  225. package/dist/commands/synthetics/__tests__/batch.test.js +906 -0
  226. package/dist/commands/synthetics/__tests__/batch.test.js.map +1 -0
  227. package/dist/commands/synthetics/__tests__/cli.test.d.ts +1 -0
  228. package/dist/commands/synthetics/__tests__/cli.test.js +1371 -0
  229. package/dist/commands/synthetics/__tests__/cli.test.js.map +1 -0
  230. package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.d.ts +1 -0
  231. package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.js +112 -0
  232. package/dist/commands/synthetics/__tests__/deploy-tests-lib.test.js.map +1 -0
  233. package/dist/commands/synthetics/__tests__/fixtures.d.ts +123 -0
  234. package/dist/commands/synthetics/__tests__/fixtures.js +493 -0
  235. package/dist/commands/synthetics/__tests__/fixtures.js.map +1 -0
  236. package/dist/commands/synthetics/__tests__/import-tests-lib.test.d.ts +1 -0
  237. package/dist/commands/synthetics/__tests__/import-tests-lib.test.js +186 -0
  238. package/dist/commands/synthetics/__tests__/import-tests-lib.test.js.map +1 -0
  239. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +1 -0
  240. package/dist/commands/synthetics/__tests__/mobile.test.js +376 -0
  241. package/dist/commands/synthetics/__tests__/mobile.test.js.map +1 -0
  242. package/dist/commands/synthetics/__tests__/multilocator.test.d.ts +1 -0
  243. package/dist/commands/synthetics/__tests__/multilocator.test.js +132 -0
  244. package/dist/commands/synthetics/__tests__/multilocator.test.js.map +1 -0
  245. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +1 -0
  246. package/dist/commands/synthetics/__tests__/reporters/default.test.js +410 -0
  247. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +1 -0
  248. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +1 -0
  249. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +354 -0
  250. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +1 -0
  251. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.d.ts +1 -0
  252. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js +232 -0
  253. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js.map +1 -0
  254. package/dist/commands/synthetics/__tests__/run-tests-lib.test.d.ts +1 -0
  255. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js +698 -0
  256. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js.map +1 -0
  257. package/dist/commands/synthetics/__tests__/test.test.d.ts +1 -0
  258. package/dist/commands/synthetics/__tests__/test.test.js +269 -0
  259. package/dist/commands/synthetics/__tests__/test.test.js.map +1 -0
  260. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +1 -0
  261. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +21 -0
  262. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +1 -0
  263. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +1 -0
  264. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +80 -0
  265. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +1 -0
  266. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +1 -0
  267. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +109 -0
  268. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +1 -0
  269. package/dist/commands/synthetics/__tests__/utils/internal.test.d.ts +1 -0
  270. package/dist/commands/synthetics/__tests__/utils/internal.test.js +161 -0
  271. package/dist/commands/synthetics/__tests__/utils/internal.test.js.map +1 -0
  272. package/dist/commands/synthetics/__tests__/utils/public.test.d.ts +1 -0
  273. package/dist/commands/synthetics/__tests__/utils/public.test.js +575 -0
  274. package/dist/commands/synthetics/__tests__/utils/public.test.js.map +1 -0
  275. package/dist/commands/synthetics/api.d.ts +4 -2
  276. package/dist/commands/synthetics/api.js +20 -1
  277. package/dist/commands/synthetics/api.js.map +1 -1
  278. package/dist/commands/synthetics/batch.d.ts +4 -2
  279. package/dist/commands/synthetics/batch.js +65 -7
  280. package/dist/commands/synthetics/batch.js.map +1 -1
  281. package/dist/commands/synthetics/cli.js +3 -1
  282. package/dist/commands/synthetics/cli.js.map +1 -1
  283. package/dist/commands/synthetics/deploy-tests-command.d.ts +22 -0
  284. package/dist/commands/synthetics/deploy-tests-command.js +150 -0
  285. package/dist/commands/synthetics/deploy-tests-command.js.map +1 -0
  286. package/dist/commands/synthetics/deploy-tests-lib.d.ts +2 -0
  287. package/dist/commands/synthetics/deploy-tests-lib.js +72 -0
  288. package/dist/commands/synthetics/deploy-tests-lib.js.map +1 -0
  289. package/dist/commands/synthetics/errors.d.ts +1 -1
  290. package/dist/commands/synthetics/errors.js +1 -0
  291. package/dist/commands/synthetics/errors.js.map +1 -1
  292. package/dist/commands/synthetics/import-tests-command.d.ts +22 -0
  293. package/dist/commands/synthetics/import-tests-command.js +142 -0
  294. package/dist/commands/synthetics/import-tests-command.js.map +1 -0
  295. package/dist/commands/synthetics/import-tests-lib.d.ts +2 -0
  296. package/dist/commands/synthetics/import-tests-lib.js +71 -0
  297. package/dist/commands/synthetics/import-tests-lib.js.map +1 -0
  298. package/dist/commands/synthetics/interfaces.d.ts +74 -28
  299. package/dist/commands/synthetics/interfaces.js.map +1 -1
  300. package/dist/commands/synthetics/local-test-definition.d.ts +2 -0
  301. package/dist/commands/synthetics/local-test-definition.js +16 -0
  302. package/dist/commands/synthetics/local-test-definition.js.map +1 -0
  303. package/dist/commands/synthetics/mobile.js +2 -2
  304. package/dist/commands/synthetics/mobile.js.map +1 -1
  305. package/dist/commands/synthetics/multilocator.d.ts +3 -0
  306. package/dist/commands/synthetics/multilocator.js +98 -0
  307. package/dist/commands/synthetics/multilocator.js.map +1 -0
  308. package/dist/commands/synthetics/reporters/junit.d.ts +1 -2
  309. package/dist/commands/synthetics/reporters/junit.js +5 -6
  310. package/dist/commands/synthetics/reporters/junit.js.map +1 -1
  311. package/dist/commands/synthetics/run-tests-command.d.ts +0 -9
  312. package/dist/commands/synthetics/run-tests-command.js +22 -64
  313. package/dist/commands/synthetics/run-tests-command.js.map +1 -1
  314. package/dist/commands/synthetics/run-tests-lib.js +15 -12
  315. package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
  316. package/dist/commands/synthetics/test.d.ts +10 -19
  317. package/dist/commands/synthetics/test.js +93 -13
  318. package/dist/commands/synthetics/test.js.map +1 -1
  319. package/dist/commands/synthetics/tunnel/tunnel.js +2 -2
  320. package/dist/commands/synthetics/tunnel/tunnel.js.map +1 -1
  321. package/dist/commands/synthetics/utils/internal.d.ts +3 -1
  322. package/dist/commands/synthetics/utils/internal.js +18 -8
  323. package/dist/commands/synthetics/utils/internal.js.map +1 -1
  324. package/dist/commands/synthetics/utils/public.d.ts +5 -26
  325. package/dist/commands/synthetics/utils/public.js +13 -248
  326. package/dist/commands/synthetics/utils/public.js.map +1 -1
  327. package/dist/commands/tag/__tests__/tag.test.d.ts +1 -0
  328. package/dist/commands/tag/__tests__/tag.test.js +85 -0
  329. package/dist/commands/tag/__tests__/tag.test.js.map +1 -0
  330. package/dist/commands/trace/__tests__/trace.test.d.ts +1 -0
  331. package/dist/commands/trace/__tests__/trace.test.js +145 -0
  332. package/dist/commands/trace/__tests__/trace.test.js.map +1 -0
  333. package/dist/commands/unity-symbols/__tests__/upload.test.d.ts +1 -0
  334. package/dist/commands/unity-symbols/__tests__/upload.test.js +369 -0
  335. package/dist/commands/unity-symbols/__tests__/upload.test.js.map +1 -0
  336. package/dist/commands/unity-symbols/upload.js +2 -2
  337. package/dist/commands/unity-symbols/upload.js.map +1 -1
  338. package/dist/helpers/__tests__/app.test.d.ts +1 -0
  339. package/dist/helpers/__tests__/app.test.js +31 -0
  340. package/dist/helpers/__tests__/app.test.js.map +1 -0
  341. package/dist/helpers/__tests__/ci.test.d.ts +1 -0
  342. package/dist/helpers/__tests__/ci.test.js +295 -0
  343. package/dist/helpers/__tests__/ci.test.js.map +1 -0
  344. package/dist/helpers/__tests__/env.test.d.ts +1 -0
  345. package/dist/helpers/__tests__/env.test.js +74 -0
  346. package/dist/helpers/__tests__/env.test.js.map +1 -0
  347. package/dist/helpers/__tests__/fips.test.d.ts +1 -0
  348. package/dist/helpers/__tests__/fips.test.js +30 -0
  349. package/dist/helpers/__tests__/fips.test.js.map +1 -0
  350. package/dist/helpers/__tests__/fixtures.d.ts +41 -0
  351. package/dist/helpers/__tests__/fixtures.js +80 -0
  352. package/dist/helpers/__tests__/fixtures.js.map +1 -0
  353. package/dist/helpers/__tests__/flare.test.d.ts +1 -0
  354. package/dist/helpers/__tests__/flare.test.js +226 -0
  355. package/dist/helpers/__tests__/flare.test.js.map +1 -0
  356. package/dist/helpers/__tests__/fs.test.d.ts +1 -0
  357. package/dist/helpers/__tests__/fs.test.js +189 -0
  358. package/dist/helpers/__tests__/fs.test.js.map +1 -0
  359. package/dist/helpers/__tests__/id.test.d.ts +1 -0
  360. package/dist/helpers/__tests__/id.test.js +24 -0
  361. package/dist/helpers/__tests__/id.test.js.map +1 -0
  362. package/dist/helpers/__tests__/plist.test.d.ts +1 -0
  363. package/dist/helpers/__tests__/plist.test.js +43 -0
  364. package/dist/helpers/__tests__/plist.test.js.map +1 -0
  365. package/dist/helpers/__tests__/prompt.test.d.ts +1 -0
  366. package/dist/helpers/__tests__/prompt.test.js +71 -0
  367. package/dist/helpers/__tests__/prompt.test.js.map +1 -0
  368. package/dist/helpers/__tests__/retry.test.d.ts +1 -0
  369. package/dist/helpers/__tests__/retry.test.js +99 -0
  370. package/dist/helpers/__tests__/retry.test.js.map +1 -0
  371. package/dist/helpers/__tests__/tags.test.d.ts +1 -0
  372. package/dist/helpers/__tests__/tags.test.js +303 -0
  373. package/dist/helpers/__tests__/tags.test.js.map +1 -0
  374. package/dist/helpers/__tests__/upload.test.d.ts +1 -0
  375. package/dist/helpers/__tests__/upload.test.js +231 -0
  376. package/dist/helpers/__tests__/upload.test.js.map +1 -0
  377. package/dist/helpers/__tests__/user-provided-git.test.d.ts +1 -0
  378. package/dist/helpers/__tests__/user-provided-git.test.js +119 -0
  379. package/dist/helpers/__tests__/user-provided-git.test.js.map +1 -0
  380. package/dist/helpers/__tests__/utils.test.d.ts +1 -0
  381. package/dist/helpers/__tests__/utils.test.js +429 -0
  382. package/dist/helpers/__tests__/utils.test.js.map +1 -0
  383. package/dist/helpers/__tests__/validation.test.d.ts +1 -0
  384. package/dist/helpers/__tests__/validation.test.js +25 -0
  385. package/dist/helpers/__tests__/validation.test.js.map +1 -0
  386. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +1 -0
  387. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +103 -0
  388. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +1 -0
  389. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +1 -0
  390. package/dist/helpers/git/__tests__/format-git-span-data.test.js +121 -0
  391. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +1 -0
  392. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +1 -0
  393. package/dist/helpers/git/__tests__/get-git-data.test.js +72 -0
  394. package/dist/helpers/git/__tests__/get-git-data.test.js.map +1 -0
  395. package/dist/helpers/id.js.map +1 -0
  396. package/dist/helpers/tags.d.ts +1 -4
  397. package/dist/helpers/tags.js +2 -6
  398. package/dist/helpers/tags.js.map +1 -1
  399. package/dist/helpers/utils.d.ts +0 -4
  400. package/dist/helpers/utils.js +1 -21
  401. package/dist/helpers/utils.js.map +1 -1
  402. package/package.json +16 -17
  403. package/dist/commands/junit/id.js.map +0 -1
  404. package/dist/commands/synthetics/compatibility.d.ts +0 -7
  405. package/dist/commands/synthetics/compatibility.js +0 -83
  406. package/dist/commands/synthetics/compatibility.js.map +0 -1
  407. /package/dist/{commands/junit → helpers}/id.d.ts +0 -0
  408. /package/dist/{commands/junit → helpers}/id.js +0 -0
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const fs_1 = __importDefault(require("fs"));
16
+ const promises_1 = __importDefault(require("fs/promises"));
17
+ const fixtures_1 = require("../../../../helpers/__tests__/fixtures");
18
+ const interfaces_1 = require("../../interfaces");
19
+ const junit_1 = require("../../reporters/junit");
20
+ const fixtures_2 = require("../fixtures");
21
+ const globalTestMock = (0, fixtures_2.getApiTest)('123-456-789');
22
+ const globalStepMock = (0, fixtures_2.getStep)();
23
+ const globalResultMock = (0, fixtures_2.getBrowserResult)('1', globalTestMock);
24
+ const globalSummaryMock = (0, fixtures_2.getSummary)();
25
+ describe('Junit reporter', () => {
26
+ const writeMock = jest.fn();
27
+ const commandMock = {
28
+ context: { stdout: { write: writeMock } },
29
+ jUnitReport: 'junit',
30
+ runName: 'Custom run name',
31
+ };
32
+ let reporter;
33
+ describe('constructor', () => {
34
+ beforeEach(() => {
35
+ reporter = new junit_1.JUnitReporter(commandMock);
36
+ });
37
+ it("should append '.xml' to destination if isn't there", () => {
38
+ expect(reporter['destination']).toBe('junit.xml');
39
+ });
40
+ it('should give a default run name', () => {
41
+ expect(new junit_1.JUnitReporter(Object.assign(Object.assign({}, commandMock), { runName: undefined }))['json'].testsuites.$.name).toBe('Undefined run');
42
+ });
43
+ });
44
+ describe('runEnd', () => {
45
+ beforeEach(() => {
46
+ reporter = new junit_1.JUnitReporter(commandMock);
47
+ jest.spyOn(fs_1.default, 'writeFileSync');
48
+ jest.spyOn(reporter['builder'], 'buildObject');
49
+ });
50
+ it('should build the xml', () => __awaiter(void 0, void 0, void 0, function* () {
51
+ reporter.runEnd(globalSummaryMock, '');
52
+ expect(reporter['builder'].buildObject).toHaveBeenCalledWith(reporter['json']);
53
+ expect(fs_1.default.writeFileSync).toHaveBeenCalledWith('junit.xml', expect.any(String), 'utf8');
54
+ expect(writeMock).toHaveBeenCalledTimes(1);
55
+ // Cleaning
56
+ yield promises_1.default.unlink(reporter['destination']);
57
+ }));
58
+ it('should gracefully fail', () => __awaiter(void 0, void 0, void 0, function* () {
59
+ jest.spyOn(reporter['builder'], 'buildObject').mockImplementation(() => {
60
+ throw new Error('Fail');
61
+ });
62
+ reporter.runEnd(globalSummaryMock, '');
63
+ expect(fs_1.default.writeFileSync).not.toHaveBeenCalled();
64
+ expect(writeMock).toHaveBeenCalledTimes(1);
65
+ }));
66
+ it('should create the file', () => __awaiter(void 0, void 0, void 0, function* () {
67
+ reporter['destination'] = 'junit/report.xml';
68
+ reporter.runEnd(globalSummaryMock, '');
69
+ const stat = yield promises_1.default.stat(reporter['destination']);
70
+ expect(stat).toBeDefined();
71
+ // Cleaning
72
+ yield promises_1.default.unlink(reporter['destination']);
73
+ yield promises_1.default.rmdir('junit');
74
+ }));
75
+ it('should not throw on existing directory', () => __awaiter(void 0, void 0, void 0, function* () {
76
+ yield promises_1.default.mkdir('junit');
77
+ reporter['destination'] = 'junit/report.xml';
78
+ reporter.runEnd(globalSummaryMock, '');
79
+ // Cleaning
80
+ yield promises_1.default.unlink(reporter['destination']);
81
+ yield promises_1.default.rmdir('junit');
82
+ }));
83
+ it('testsuites contains summary properties', () => __awaiter(void 0, void 0, void 0, function* () {
84
+ jest.spyOn(fs_1.default, 'writeFileSync').mockImplementation(() => { });
85
+ reporter.runEnd(Object.assign(Object.assign({}, globalSummaryMock), { criticalErrors: 1, failed: 2, failedNonBlocking: 3, passed: 4, skipped: 5, testsNotFound: new Set(['a', 'b', 'c']), timedOut: 6 }), fixtures_1.MOCK_BASE_URL);
86
+ expect(reporter['json'].testsuites.$).toStrictEqual({
87
+ batch_id: fixtures_2.BATCH_ID,
88
+ batch_url: `${fixtures_1.MOCK_BASE_URL}synthetics/explorer/ci?batchResultId=${fixtures_2.BATCH_ID}`,
89
+ name: 'Custom run name',
90
+ tests_critical_error: 1,
91
+ tests_failed: 2,
92
+ tests_failed_non_blocking: 3,
93
+ tests_not_found: 3,
94
+ tests_passed: 4,
95
+ tests_skipped: 5,
96
+ tests_timed_out: 6,
97
+ });
98
+ }));
99
+ });
100
+ describe('resultEnd', () => {
101
+ beforeEach(() => {
102
+ reporter = new junit_1.JUnitReporter(commandMock);
103
+ });
104
+ it('should give a default suite name', () => {
105
+ reporter.resultEnd(globalResultMock, '', '');
106
+ const testsuite = reporter['json'].testsuites.testsuite[0];
107
+ expect(testsuite.$.name).toBe('Undefined suite');
108
+ });
109
+ it('should use the same report for tests from same suite', () => {
110
+ const results = [
111
+ Object.assign(Object.assign({}, globalResultMock), { test: Object.assign(Object.assign({}, globalTestMock), { suite: 'same suite' }) }),
112
+ Object.assign(Object.assign({}, globalResultMock), { test: Object.assign(Object.assign({}, globalTestMock), { suite: 'same suite' }) }),
113
+ ];
114
+ results.forEach((result) => reporter.resultEnd(result, '', ''));
115
+ // We should have 1 unique report. Not 2 different ones.
116
+ expect(reporter['json'].testsuites.testsuite.length).toBe(1);
117
+ // And this unique report should include the 2 tests.
118
+ expect(reporter['json'].testsuites.testsuite[0].$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultSuiteStats)()), { tests: 2 }));
119
+ });
120
+ it('should add stats to the run', () => {
121
+ reporter.resultEnd(Object.assign(Object.assign({}, globalResultMock), { test: Object.assign(Object.assign({}, globalTestMock), { suite: 'suite 1' }) }), '', '');
122
+ reporter.testTrigger(Object.assign(Object.assign({}, globalTestMock), { suite: 'suite 2' }), '', interfaces_1.ExecutionRule.SKIPPED, {});
123
+ reporter.resultEnd(Object.assign(Object.assign({}, globalResultMock), { passed: false, result: (0, fixtures_2.getFailedMultiStepsServerResult)(), test: Object.assign(Object.assign({}, globalTestMock), { suite: 'suite 2' }) }), '', '');
124
+ reporter.resultEnd({
125
+ executionRule: interfaces_1.ExecutionRule.SKIPPED,
126
+ passed: true,
127
+ resultId: '123',
128
+ selectiveRerun: { decision: 'skip', reason: 'passed', linked_result_id: '123' },
129
+ test: Object.assign(Object.assign({}, globalTestMock), { suite: 'suite 2' }),
130
+ timedOut: false,
131
+ }, '', '');
132
+ const [suitePassed, suiteFailed] = reporter['json'].testsuites.testsuite;
133
+ expect(suitePassed.$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultSuiteStats)()), { tests: 1 }));
134
+ expect(suiteFailed.$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultSuiteStats)()), { errors: 0, failures: 1, skipped: 1, tests: 3 }));
135
+ });
136
+ it('should fall back to a test level failure', () => {
137
+ reporter.resultEnd(Object.assign(Object.assign({}, globalResultMock), { passed: false, result: (0, fixtures_2.getFailedMultiStepsTestLevelServerResult)(), test: Object.assign(Object.assign({}, globalTestMock), { suite: 'suite 1' }) }), '', '');
138
+ const [suiteFailed] = reporter['json'].testsuites.testsuite;
139
+ expect(suiteFailed.$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultSuiteStats)()), { errors: 0, failures: 1, tests: 1 }));
140
+ });
141
+ it('should report errors', () => {
142
+ const browserResult1 = Object.assign(Object.assign({}, globalResultMock), { result: Object.assign(Object.assign({}, (0, fixtures_2.getBrowserServerResult)()), { stepDetails: [
143
+ Object.assign(Object.assign({}, (0, fixtures_2.getStep)()), { allowFailure: true, browserErrors: [
144
+ {
145
+ description: 'error description',
146
+ name: 'error name',
147
+ type: 'error type',
148
+ },
149
+ {
150
+ description: 'error description',
151
+ name: 'error name',
152
+ type: 'error type',
153
+ },
154
+ ], error: 'error', warnings: [
155
+ {
156
+ message: 'warning message',
157
+ type: 'warning type',
158
+ },
159
+ ] }),
160
+ (0, fixtures_2.getStep)(),
161
+ ] }) });
162
+ const browserResult2 = Object.assign(Object.assign({}, globalResultMock), { result: (0, fixtures_2.getBrowserServerResult)() });
163
+ const browserResult3 = Object.assign(Object.assign({}, globalResultMock), { result: Object.assign(Object.assign({}, (0, fixtures_2.getBrowserServerResult)()), { failure: { code: 'TIMEOUT', message: 'The batch timed out before receiving the result.' } }), timedOut: true });
164
+ const apiResult = Object.assign(Object.assign({}, globalResultMock), { result: Object.assign(Object.assign({}, (0, fixtures_2.getMultiStepsServerResult)()), { steps: [
165
+ Object.assign(Object.assign({}, (0, fixtures_2.getMultiStep)()), { failure: {
166
+ code: '1',
167
+ message: 'message',
168
+ } }),
169
+ ] }) });
170
+ reporter.resultEnd(browserResult1, '', '');
171
+ reporter.resultEnd(browserResult2, '', '');
172
+ reporter.resultEnd(browserResult3, '', '');
173
+ reporter.resultEnd(apiResult, '', '');
174
+ const testsuite = reporter['json'].testsuites.testsuite[0];
175
+ const results = [
176
+ [1, 2, 0, 1],
177
+ [0, 0, 0, 0],
178
+ [0, 0, 1, 0],
179
+ [0, 0, 1, 0],
180
+ ];
181
+ const entries = Object.entries(testsuite.testcase);
182
+ for (const [i, testcase] of entries) {
183
+ const result = results[i];
184
+ expect(testcase.allowed_error.length).toBe(result[0]);
185
+ expect(testcase.browser_error.length).toBe(result[1]);
186
+ expect(testcase.failure.length).toBe(result[2]);
187
+ expect(testcase.warning.length).toBe(result[3]);
188
+ }
189
+ });
190
+ });
191
+ describe('getTestCase', () => {
192
+ beforeEach(() => {
193
+ reporter = new junit_1.JUnitReporter(commandMock);
194
+ });
195
+ it('should add stats to the test case - api test', () => {
196
+ const resultMock = Object.assign(Object.assign({}, globalResultMock), { result: (0, fixtures_2.getApiServerResult)({ passed: false }) });
197
+ const testCase = reporter['getTestCase'](resultMock, '', '');
198
+ expect(testCase.$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultTestCaseStats)()), { steps_count: 1, steps_errors: 1, steps_failures: 1 }));
199
+ });
200
+ it('should add stats to the test case - multistep test', () => {
201
+ const resultMock = Object.assign(Object.assign({}, globalResultMock), { result: (0, fixtures_2.getFailedMultiStepsServerResult)() });
202
+ const testCase = reporter['getTestCase'](resultMock, '', '');
203
+ expect(testCase.$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultTestCaseStats)()), { steps_allowfailures: 1, steps_count: 4, steps_errors: 2, steps_failures: 2, steps_skipped: 1 }));
204
+ });
205
+ it('should add stats to the test case - browser test', () => {
206
+ const resultMock = Object.assign(Object.assign({}, globalResultMock), {
207
+ result: Object.assign(Object.assign({}, globalResultMock.result), { stepDetails: [
208
+ globalStepMock,
209
+ Object.assign(Object.assign({}, globalStepMock), {
210
+ browserErrors: [{ type: 'error', name: 'Error', description: 'Description' }],
211
+ error: 'Error',
212
+ subTestStepDetails: [globalStepMock],
213
+ warnings: [{ type: 'warning', message: 'Warning' }],
214
+ }),
215
+ ] }),
216
+ });
217
+ const testCase = reporter['getTestCase'](resultMock, '', '');
218
+ expect(testCase.$).toMatchObject(Object.assign(Object.assign({}, (0, junit_1.getDefaultTestCaseStats)()), { steps_count: 3, steps_errors: 2, steps_failures: 1, steps_warnings: 1 }));
219
+ });
220
+ });
221
+ });
222
+ describe('GitLab test report compatibility', () => {
223
+ const writeMock = jest.fn();
224
+ const commandMock = {
225
+ context: { stdout: { write: writeMock } },
226
+ jUnitReport: 'junit',
227
+ runName: 'Custom run name',
228
+ };
229
+ let reporter;
230
+ beforeEach(() => {
231
+ reporter = new junit_1.JUnitReporter(commandMock);
232
+ });
233
+ test('all test case names are unique', () => {
234
+ const locations = ['aws:eu-central-1', 'aws:eu-central-2'];
235
+ const devices = {
236
+ chrome: { height: 1100, id: 'chrome.laptop_large', width: 1440 },
237
+ firefox: { height: 1100, id: 'firefox.laptop_large', width: 1440 },
238
+ };
239
+ const apiTest = (0, fixtures_2.getApiTest)('aaa-aaa-aaa', { locations });
240
+ const browserTest = (0, fixtures_2.getBrowserTest)('bbb-bbb-bbb', [devices.chrome.id, devices.firefox.id], { locations });
241
+ const getTestCase = (test, resultId, { location, device, timedOut, }) => reporter['getTestCase'](Object.assign(Object.assign(Object.assign({}, (test.type === 'browser' ? (0, fixtures_2.getBrowserResult)(resultId, test, { device }) : (0, fixtures_2.getApiResult)(resultId, test))), (location && { location })), (timedOut && { timedOut })), '', '');
242
+ const testCases = [
243
+ // API test, location 1
244
+ getTestCase(apiTest, '1', { location: locations[0] }),
245
+ // API test, location 2
246
+ getTestCase(apiTest, '2', { location: locations[1] }),
247
+ // API test, location 1 (timed out)
248
+ getTestCase(apiTest, '3', { location: locations[0], timedOut: true }),
249
+ // API test, location 2 (timed out)
250
+ getTestCase(apiTest, '4', { location: locations[1], timedOut: true }),
251
+ // Browser test, location 1, device 1
252
+ getTestCase(browserTest, '5', { location: locations[0], device: devices.chrome }),
253
+ // Browser test, location 1, device 2
254
+ getTestCase(browserTest, '6', { location: locations[0], device: devices.firefox }),
255
+ // Browser test, location 2, device 1
256
+ getTestCase(browserTest, '7', { location: locations[1], device: devices.chrome }),
257
+ // Browser test, location 2, device 2
258
+ getTestCase(browserTest, '8', { location: locations[1], device: devices.firefox }),
259
+ // Browser test, location 1, (timed out)
260
+ getTestCase(browserTest, '9', { location: locations[0], timedOut: true }),
261
+ // Browser test, location 1, (timed out)
262
+ getTestCase(browserTest, '10', { location: locations[0], timedOut: true }),
263
+ // Browser test, location 2, (timed out)
264
+ getTestCase(browserTest, '11', { location: locations[1], timedOut: true }),
265
+ // Browser test, location 2, (timed out)
266
+ getTestCase(browserTest, '12', { location: locations[1], timedOut: true }),
267
+ ];
268
+ const caseNames = testCases.map((testCase) => testCase.$.name);
269
+ const uniqueCaseNames = [...new Set(caseNames)];
270
+ expect(uniqueCaseNames.length).toEqual(caseNames.length);
271
+ expect(caseNames).toStrictEqual([
272
+ // API tests.
273
+ 'Test name - id: aaa-aaa-aaa - location: aws:eu-central-1',
274
+ 'Test name - id: aaa-aaa-aaa - location: aws:eu-central-2',
275
+ 'Test name - id: aaa-aaa-aaa - location: aws:eu-central-1 - result id: 3 (not yet received)',
276
+ 'Test name - id: aaa-aaa-aaa - location: aws:eu-central-2 - result id: 4 (not yet received)',
277
+ // Browser tests.
278
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-1 - device: chrome.laptop_large',
279
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-1 - device: firefox.laptop_large',
280
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-2 - device: chrome.laptop_large',
281
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-2 - device: firefox.laptop_large',
282
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-1 - result id: 9 (not yet received)',
283
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-1 - result id: 10 (not yet received)',
284
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-2 - result id: 11 (not yet received)',
285
+ 'Test name - id: bbb-bbb-bbb - location: aws:eu-central-2 - result id: 12 (not yet received)',
286
+ ]);
287
+ });
288
+ test('all columns are filled in the test report table', () => {
289
+ const baseResult = (0, fixtures_2.getFailedBrowserResult)();
290
+ const result = Object.assign(Object.assign({}, baseResult), { test: Object.assign(Object.assign({}, baseResult.test), { suite: 'tests.json' }) });
291
+ reporter['resultEnd'](result, '', '');
292
+ const testCase = reporter['json'].testsuites.testsuite[0].testcase[0];
293
+ const name = 'Test name - id: abc-def-ghi - location: Location name - device: chrome.laptop_large';
294
+ const failure = {
295
+ $: {
296
+ allowFailure: 'false',
297
+ step: 'Assert',
298
+ type: 'assertion',
299
+ },
300
+ _: 'Step timeout',
301
+ };
302
+ expect(testCase.$).toHaveProperty('classname', 'tests.json'); // Suite
303
+ expect(testCase.$).toHaveProperty('name', name); // Name
304
+ expect(testCase.$).toHaveProperty('file', 'tests.json'); // Filename
305
+ expect(testCase.failure).toStrictEqual([failure]); // Status
306
+ expect(testCase.$).toHaveProperty('time', 22); // Duration
307
+ });
308
+ test('the icon in the Status column is correct (blocking vs. non-blocking)', () => {
309
+ // Mimics how GitLab chooses the Status icon.
310
+ const getStatusIcon = (testCase) => {
311
+ if (testCase.failure.length > 0) {
312
+ return '❌';
313
+ }
314
+ if (testCase.error.length > 0) {
315
+ return '❗️';
316
+ }
317
+ if (testCase.skipped.length > 0) {
318
+ return '⏩';
319
+ }
320
+ return '✅';
321
+ };
322
+ reporter['testTrigger'](globalTestMock, '', interfaces_1.ExecutionRule.SKIPPED, {});
323
+ reporter['resultEnd'](Object.assign(Object.assign({}, (0, fixtures_2.getFailedBrowserResult)()), { executionRule: interfaces_1.ExecutionRule.BLOCKING }), '', '');
324
+ reporter['resultEnd'](Object.assign(Object.assign({}, (0, fixtures_2.getFailedBrowserResult)()), { executionRule: interfaces_1.ExecutionRule.NON_BLOCKING }), '', '');
325
+ reporter['resultEnd'](Object.assign(Object.assign({}, (0, fixtures_2.getBrowserResult)('', globalTestMock)), { executionRule: interfaces_1.ExecutionRule.BLOCKING }), '', '');
326
+ const [testCaseSkipped, testCaseBlocking, testCaseNonBlocking, testCasePassed] = reporter['json'].testsuites.testsuite[0].testcase;
327
+ expect(getStatusIcon(testCaseSkipped)).toBe('⏩');
328
+ expect(getStatusIcon(testCaseBlocking)).toBe('❌');
329
+ expect(getStatusIcon(testCaseNonBlocking)).toBe('❗️');
330
+ expect(getStatusIcon(testCasePassed)).toBe('✅');
331
+ });
332
+ test('api errors are nicely rendered', () => {
333
+ const errorMessage = JSON.stringify([
334
+ {
335
+ actual: 1234,
336
+ operator: 'lessThan',
337
+ target: 1000,
338
+ type: 'responseTime',
339
+ },
340
+ ]);
341
+ const failure = { code: 'INCORRECT_ASSERTION', message: errorMessage };
342
+ const baseResult = (0, fixtures_2.getApiResult)('1', globalTestMock);
343
+ const result = Object.assign(Object.assign({}, baseResult), { passed: false, result: Object.assign(Object.assign({}, baseResult.result), { failure }) });
344
+ reporter['resultEnd'](result, '', '');
345
+ const testCase = reporter['json'].testsuites.testsuite[0].testcase[0];
346
+ expect(testCase.failure).toStrictEqual([
347
+ {
348
+ $: { step: 'Test name', type: 'INCORRECT_ASSERTION' },
349
+ _: '- Assertion failed:\n ▶ responseTime should be less than 1000. Actual: 1234',
350
+ },
351
+ ]);
352
+ });
353
+ });
354
+ //# sourceMappingURL=junit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"junit.test.js","sourceRoot":"","sources":["../../../../../src/commands/synthetics/__tests__/reporters/junit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ jest.unmock('chalk');
13
+ const app_upload_1 = require("../../../reporters/mobile/app-upload");
14
+ /* eslint-disable jest/no-conditional-expect */
15
+ describe('AppUploadReporter', () => {
16
+ let initialCiEnv;
17
+ let simulatedTerminalOutput;
18
+ let writeMock;
19
+ let clearLine;
20
+ let ttyReporter;
21
+ beforeEach(() => {
22
+ jest.useFakeTimers();
23
+ initialCiEnv = process.env.CI;
24
+ simulatedTerminalOutput = '';
25
+ writeMock = jest.fn().mockImplementation((text) => {
26
+ // Ignore show/hide cursor ANSI codes.
27
+ if (text.match(/\u001b\[\?25(l|h)/)) {
28
+ return;
29
+ }
30
+ simulatedTerminalOutput += text;
31
+ });
32
+ clearLine = jest.fn().mockImplementation(() => {
33
+ const allLinesMinusLast = simulatedTerminalOutput.split('\n').slice(0, -1);
34
+ allLinesMinusLast.push('');
35
+ simulatedTerminalOutput = allLinesMinusLast.join('\n');
36
+ });
37
+ const ttyContext = {
38
+ stdout: {
39
+ isTTY: true,
40
+ write: writeMock,
41
+ clearLine,
42
+ cursorTo: jest.fn(),
43
+ moveCursor: jest.fn(),
44
+ },
45
+ stderr: {
46
+ write: writeMock,
47
+ },
48
+ };
49
+ ttyReporter = new app_upload_1.AppUploadReporter(ttyContext);
50
+ });
51
+ afterEach(() => {
52
+ jest.useRealTimers();
53
+ if (initialCiEnv !== undefined) {
54
+ process.env.CI = initialCiEnv;
55
+ }
56
+ else {
57
+ delete process.env.CI;
58
+ }
59
+ });
60
+ describe('start', () => {
61
+ test('outputs apps to upload', () => __awaiter(void 0, void 0, void 0, function* () {
62
+ const appsToUpload = [
63
+ {
64
+ versionName: '1.0.0',
65
+ appId: '123',
66
+ appPath: '/path/to/app',
67
+ },
68
+ {
69
+ versionName: '2.0.0',
70
+ appId: '456',
71
+ appPath: '/path/to/another/app',
72
+ },
73
+ ];
74
+ ttyReporter.start(appsToUpload);
75
+ const output = writeMock.mock.calls.map((c) => c[0]).join('\n');
76
+ expect(output).toMatchSnapshot();
77
+ writeMock.mockClear();
78
+ ttyReporter.start(appsToUpload, true);
79
+ const output2 = writeMock.mock.calls.map((c) => c[0]).join('\n');
80
+ expect(output2).toMatchSnapshot();
81
+ }));
82
+ });
83
+ describe('renderProgress', () => {
84
+ test.each([false, true])('Outputs progress (in CI: %s)', (inCI) => __awaiter(void 0, void 0, void 0, function* () {
85
+ if (inCI) {
86
+ process.env.CI = 'true';
87
+ }
88
+ else {
89
+ delete process.env.CI;
90
+ }
91
+ ttyReporter.renderProgress(2);
92
+ expect(clearLine).not.toHaveBeenCalled();
93
+ expect(simulatedTerminalOutput).toMatchSnapshot();
94
+ ttyReporter.renderProgress(1);
95
+ if (inCI) {
96
+ // In CI, there in no spinning, so `stopping` the spinner (which happens when rendering a 2nd time) does not clear a line.
97
+ expect(clearLine).not.toHaveBeenCalled();
98
+ }
99
+ else {
100
+ expect(clearLine).toHaveBeenCalled();
101
+ }
102
+ expect(simulatedTerminalOutput).toMatchSnapshot();
103
+ }));
104
+ });
105
+ describe('reportSuccess', () => {
106
+ test.each([false, true])('Outputs success message (in CI: %s)', (inCI) => __awaiter(void 0, void 0, void 0, function* () {
107
+ if (inCI) {
108
+ process.env.CI = 'true';
109
+ }
110
+ else {
111
+ delete process.env.CI;
112
+ }
113
+ ttyReporter.renderProgress(1);
114
+ ttyReporter.reportSuccess();
115
+ expect(simulatedTerminalOutput).toMatchSnapshot();
116
+ if (inCI) {
117
+ // In CI, there in no spinning, so `stopping` the spinner (which happens when rendering a 2nd time) does not clear a line.
118
+ expect(clearLine).not.toHaveBeenCalled();
119
+ }
120
+ else {
121
+ expect(clearLine).toHaveBeenCalled();
122
+ }
123
+ }));
124
+ });
125
+ describe('reportFailure', () => {
126
+ test.each([false, true])('Outputs failure message (in CI: %s)', (inCI) => __awaiter(void 0, void 0, void 0, function* () {
127
+ if (inCI) {
128
+ process.env.CI = 'true';
129
+ }
130
+ else {
131
+ delete process.env.CI;
132
+ }
133
+ ttyReporter.renderProgress(1);
134
+ ttyReporter.reportFailure({
135
+ versionName: '1.0.0',
136
+ appId: '123',
137
+ appPath: '/path/to/app',
138
+ });
139
+ expect(simulatedTerminalOutput).toMatchSnapshot();
140
+ if (inCI) {
141
+ // In CI, there in no spinning, so `stopping` the spinner (which happens when rendering a 2nd time) does not clear a line.
142
+ expect(clearLine).not.toHaveBeenCalled();
143
+ }
144
+ else {
145
+ expect(clearLine).toHaveBeenCalled();
146
+ }
147
+ }));
148
+ });
149
+ describe('endRendering', () => {
150
+ test.each([false, true])('Ends rendering (in CI: %s)', (inCI) => __awaiter(void 0, void 0, void 0, function* () {
151
+ if (inCI) {
152
+ process.env.CI = 'true';
153
+ }
154
+ else {
155
+ delete process.env.CI;
156
+ }
157
+ ttyReporter.renderProgress(1);
158
+ expect(ttyReporter['spinner']).toBeDefined();
159
+ ttyReporter.endRendering();
160
+ expect(ttyReporter['spinner']).toBeUndefined();
161
+ expect(simulatedTerminalOutput).toMatchSnapshot();
162
+ if (inCI) {
163
+ // In CI, there in no spinning, so `stopping` the spinner (which happens when rendering a 2nd time) does not clear a line.
164
+ expect(clearLine).not.toHaveBeenCalled();
165
+ }
166
+ else {
167
+ expect(clearLine).toHaveBeenCalled();
168
+ }
169
+ }));
170
+ });
171
+ describe('integrationTests', () => {
172
+ test.each([false, true])('Outputs a series of successful uploads correctly (in CI: %s)', (inCI) => __awaiter(void 0, void 0, void 0, function* () {
173
+ if (inCI) {
174
+ process.env.CI = 'true';
175
+ }
176
+ else {
177
+ delete process.env.CI;
178
+ }
179
+ ttyReporter.start([
180
+ {
181
+ versionName: '1.0.0',
182
+ appId: '123',
183
+ appPath: '/path/to/app',
184
+ },
185
+ {
186
+ versionName: '2.0.0',
187
+ appId: '456',
188
+ appPath: '/path/to/another/app',
189
+ },
190
+ ]);
191
+ expect(simulatedTerminalOutput).toMatchSnapshot();
192
+ ttyReporter.renderProgress(2);
193
+ expect(simulatedTerminalOutput).toMatchSnapshot();
194
+ ttyReporter.renderProgress(1);
195
+ expect(simulatedTerminalOutput).toMatchSnapshot();
196
+ ttyReporter.reportSuccess();
197
+ expect(simulatedTerminalOutput).toMatchSnapshot();
198
+ }));
199
+ });
200
+ test.each([false, true])('Outputs a failure durings uploads correctly (in CI: %s)', (inCI) => __awaiter(void 0, void 0, void 0, function* () {
201
+ if (inCI) {
202
+ process.env.CI = 'true';
203
+ }
204
+ else {
205
+ delete process.env.CI;
206
+ }
207
+ ttyReporter.start([
208
+ {
209
+ versionName: '1.0.0',
210
+ appId: '123',
211
+ appPath: '/path/to/app',
212
+ },
213
+ {
214
+ versionName: '2.0.0',
215
+ appId: '456',
216
+ appPath: '/path/to/another/app',
217
+ },
218
+ ]);
219
+ expect(simulatedTerminalOutput).toMatchSnapshot();
220
+ ttyReporter.renderProgress(2);
221
+ expect(simulatedTerminalOutput).toMatchSnapshot();
222
+ ttyReporter.renderProgress(1);
223
+ expect(simulatedTerminalOutput).toMatchSnapshot();
224
+ ttyReporter.reportFailure({
225
+ versionName: '2.0.0',
226
+ appId: '456',
227
+ appPath: '/path/to/another/app',
228
+ });
229
+ expect(simulatedTerminalOutput).toMatchSnapshot();
230
+ }));
231
+ });
232
+ //# sourceMappingURL=app-upload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-upload.test.js","sourceRoot":"","sources":["../../../../../../src/commands/synthetics/__tests__/reporters/mobile/app-upload.test.ts"],"names":[],"mappings":"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"}