sxy-test-runner 2.3.15 → 2.3.17

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 (330) hide show
  1. package/AGENTS.md +2 -1
  2. package/dist/cli/help.js.map +1 -1
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/init.js.map +1 -1
  5. package/dist/cli/lib/addBasePath.js.map +1 -1
  6. package/dist/cli/lib/addExports.js.map +1 -1
  7. package/dist/cli/lib/applyConfigDefaults.js.map +1 -1
  8. package/dist/cli/lib/buildDependencyTree.js.map +1 -1
  9. package/dist/cli/lib/buildDependencyTrees.js.map +1 -1
  10. package/dist/cli/lib/consoleCapture.d.ts +3 -0
  11. package/dist/cli/lib/consoleCapture.js +36 -0
  12. package/dist/cli/lib/consoleCapture.js.map +1 -0
  13. package/dist/cli/lib/defaultConfig.js.map +1 -1
  14. package/dist/cli/lib/doUserSetup.js.map +1 -1
  15. package/dist/cli/lib/doUserTeardown.js.map +1 -1
  16. package/dist/cli/lib/filter.js.map +1 -1
  17. package/dist/cli/lib/findTestFiles.js.map +1 -1
  18. package/dist/cli/lib/findingTestsMessage.js.map +1 -1
  19. package/dist/cli/lib/foundTestsMessage.d.ts +2 -0
  20. package/dist/cli/lib/foundTestsMessage.js +4 -0
  21. package/dist/cli/lib/foundTestsMessage.js.map +1 -0
  22. package/dist/cli/lib/functions.js.map +1 -1
  23. package/dist/cli/lib/getAllowedFlags.js.map +1 -1
  24. package/dist/cli/lib/globArgCombine.js.map +1 -1
  25. package/dist/cli/lib/handleUserInput.js.map +1 -1
  26. package/dist/cli/lib/injectProperties.js.map +1 -1
  27. package/dist/cli/lib/isTest.js.map +1 -1
  28. package/dist/cli/lib/listenToUser.js +6 -1
  29. package/dist/cli/lib/listenToUser.js.map +1 -1
  30. package/dist/cli/lib/loadConfig.js.map +1 -1
  31. package/dist/cli/lib/loadTestFile.js +16 -26
  32. package/dist/cli/lib/loadTestFile.js.map +1 -1
  33. package/dist/cli/lib/makeWatchRunState.js.map +1 -1
  34. package/dist/cli/lib/parseCommandLineArguments.js.map +1 -1
  35. package/dist/cli/lib/parseDescribe.js.map +1 -1
  36. package/dist/cli/lib/reRunManager.js.map +1 -1
  37. package/dist/cli/lib/reservedExportKeys.js.map +1 -1
  38. package/dist/cli/lib/runDescribe.js +12 -22
  39. package/dist/cli/lib/runDescribe.js.map +1 -1
  40. package/dist/cli/lib/runDescribeRun.js.map +1 -1
  41. package/dist/cli/lib/runIt.js +39 -49
  42. package/dist/cli/lib/runIt.js.map +1 -1
  43. package/dist/cli/lib/runTasks.js.map +1 -1
  44. package/dist/cli/lib/runTest.js.map +1 -1
  45. package/dist/cli/lib/runTests.js.map +1 -1
  46. package/dist/cli/lib/setEnv.js.map +1 -1
  47. package/dist/cli/lib/showTestLoadingError.js.map +1 -1
  48. package/dist/cli/lib/showTestResult.js +6 -6
  49. package/dist/cli/lib/showTestResult.js.map +1 -1
  50. package/dist/cli/lib/showTtyHelp.js.map +1 -1
  51. package/dist/cli/lib/shutdown.d.ts +9 -0
  52. package/dist/cli/lib/shutdown.js +59 -0
  53. package/dist/cli/lib/shutdown.js.map +1 -0
  54. package/dist/cli/lib/timeProfier.js.map +1 -1
  55. package/dist/cli/lib/validateConfig.js.map +1 -1
  56. package/dist/cli/lib/watchFilesAndRunTests.js.map +1 -1
  57. package/dist/cli/lib/watchFilesAndRunTestsChokidar.js.map +1 -1
  58. package/dist/cli/lib/watchFilesAndRunTestsNodeWatch.js.map +1 -1
  59. package/dist/cli/lib/watchFilesChokidar.js.map +1 -1
  60. package/dist/cli/lib/watchFilesNodeWatch.js.map +1 -1
  61. package/dist/cli/once.js +16 -13
  62. package/dist/cli/once.js.map +1 -1
  63. package/dist/cli/watch.js +12 -4
  64. package/dist/cli/watch.js.map +1 -1
  65. package/dist/config.js.map +1 -1
  66. package/dist/describe.js.map +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/indexNumberToLetters.js.map +1 -1
  69. package/dist/output.js.map +1 -1
  70. package/dist/packages/chalk.js.map +1 -1
  71. package/dist/packages/esmReload.js.map +1 -1
  72. package/dist/packages/figures.js.map +1 -1
  73. package/dist/packages/loadConfig.js.map +1 -1
  74. package/dist/packages/mergeStructuredConfig.js.map +1 -1
  75. package/dist/packages/slash.js.map +1 -1
  76. package/dist/packages/timeProfiler.js.map +1 -1
  77. package/dist/types.js.map +1 -1
  78. package/package.json +6 -1
  79. package/dist/cli/help.d.ts.map +0 -1
  80. package/dist/cli/help.unitTest.d.ts +0 -2
  81. package/dist/cli/help.unitTest.d.ts.map +0 -1
  82. package/dist/cli/help.unitTest.js +0 -29
  83. package/dist/cli/help.unitTest.js.map +0 -1
  84. package/dist/cli/index.d.ts.map +0 -1
  85. package/dist/cli/init.d.ts.map +0 -1
  86. package/dist/cli/lib/addBasePath.d.ts.map +0 -1
  87. package/dist/cli/lib/addBasePath.unitTest.d.ts +0 -2
  88. package/dist/cli/lib/addBasePath.unitTest.d.ts.map +0 -1
  89. package/dist/cli/lib/addBasePath.unitTest.js +0 -55
  90. package/dist/cli/lib/addBasePath.unitTest.js.map +0 -1
  91. package/dist/cli/lib/addExports.d.ts.map +0 -1
  92. package/dist/cli/lib/addExports.unitTest.d.ts +0 -2
  93. package/dist/cli/lib/addExports.unitTest.d.ts.map +0 -1
  94. package/dist/cli/lib/addExports.unitTest.js +0 -17
  95. package/dist/cli/lib/addExports.unitTest.js.map +0 -1
  96. package/dist/cli/lib/applyConfigDefaults.d.ts.map +0 -1
  97. package/dist/cli/lib/applyConfigDefaults.unitTest.d.ts +0 -2
  98. package/dist/cli/lib/applyConfigDefaults.unitTest.d.ts.map +0 -1
  99. package/dist/cli/lib/applyConfigDefaults.unitTest.js +0 -32
  100. package/dist/cli/lib/applyConfigDefaults.unitTest.js.map +0 -1
  101. package/dist/cli/lib/buildDependencyTree.d.ts.map +0 -1
  102. package/dist/cli/lib/buildDependencyTree.unitTest.d.ts +0 -2
  103. package/dist/cli/lib/buildDependencyTree.unitTest.d.ts.map +0 -1
  104. package/dist/cli/lib/buildDependencyTree.unitTest.js +0 -19
  105. package/dist/cli/lib/buildDependencyTree.unitTest.js.map +0 -1
  106. package/dist/cli/lib/buildDependencyTrees.d.ts.map +0 -1
  107. package/dist/cli/lib/buildDependencyTrees.unitTest.d.ts +0 -2
  108. package/dist/cli/lib/buildDependencyTrees.unitTest.d.ts.map +0 -1
  109. package/dist/cli/lib/buildDependencyTrees.unitTest.js +0 -23
  110. package/dist/cli/lib/buildDependencyTrees.unitTest.js.map +0 -1
  111. package/dist/cli/lib/defaultConfig.d.ts.map +0 -1
  112. package/dist/cli/lib/defaultConfig.unitTest.d.ts +0 -2
  113. package/dist/cli/lib/defaultConfig.unitTest.d.ts.map +0 -1
  114. package/dist/cli/lib/defaultConfig.unitTest.js +0 -7
  115. package/dist/cli/lib/defaultConfig.unitTest.js.map +0 -1
  116. package/dist/cli/lib/doUserSetup.d.ts.map +0 -1
  117. package/dist/cli/lib/doUserSetup.unitTest.d.ts +0 -7
  118. package/dist/cli/lib/doUserSetup.unitTest.d.ts.map +0 -1
  119. package/dist/cli/lib/doUserSetup.unitTest.js +0 -46
  120. package/dist/cli/lib/doUserSetup.unitTest.js.map +0 -1
  121. package/dist/cli/lib/doUserTeardown.d.ts.map +0 -1
  122. package/dist/cli/lib/doUserTeardown.unitTest.d.ts +0 -7
  123. package/dist/cli/lib/doUserTeardown.unitTest.d.ts.map +0 -1
  124. package/dist/cli/lib/doUserTeardown.unitTest.js +0 -46
  125. package/dist/cli/lib/doUserTeardown.unitTest.js.map +0 -1
  126. package/dist/cli/lib/filter.d.ts.map +0 -1
  127. package/dist/cli/lib/findTestFiles.d.ts.map +0 -1
  128. package/dist/cli/lib/findTestFiles.unitTest.d.ts +0 -2
  129. package/dist/cli/lib/findTestFiles.unitTest.d.ts.map +0 -1
  130. package/dist/cli/lib/findTestFiles.unitTest.js +0 -32
  131. package/dist/cli/lib/findTestFiles.unitTest.js.map +0 -1
  132. package/dist/cli/lib/findingTestsMessage.d.ts.map +0 -1
  133. package/dist/cli/lib/findingTestsMessage.unitTest.d.ts +0 -2
  134. package/dist/cli/lib/findingTestsMessage.unitTest.d.ts.map +0 -1
  135. package/dist/cli/lib/findingTestsMessage.unitTest.js +0 -33
  136. package/dist/cli/lib/findingTestsMessage.unitTest.js.map +0 -1
  137. package/dist/cli/lib/functions.d.ts.map +0 -1
  138. package/dist/cli/lib/functions.unitTest.d.ts +0 -2
  139. package/dist/cli/lib/functions.unitTest.d.ts.map +0 -1
  140. package/dist/cli/lib/functions.unitTest.js +0 -35
  141. package/dist/cli/lib/functions.unitTest.js.map +0 -1
  142. package/dist/cli/lib/getAllowedFlags.d.ts.map +0 -1
  143. package/dist/cli/lib/getAllowedFlags.unitTest.d.ts +0 -2
  144. package/dist/cli/lib/getAllowedFlags.unitTest.d.ts.map +0 -1
  145. package/dist/cli/lib/getAllowedFlags.unitTest.js +0 -23
  146. package/dist/cli/lib/getAllowedFlags.unitTest.js.map +0 -1
  147. package/dist/cli/lib/globArgCombine.d.ts.map +0 -1
  148. package/dist/cli/lib/globArgCombine.unitTest.d.ts +0 -2
  149. package/dist/cli/lib/globArgCombine.unitTest.d.ts.map +0 -1
  150. package/dist/cli/lib/globArgCombine.unitTest.js +0 -19
  151. package/dist/cli/lib/globArgCombine.unitTest.js.map +0 -1
  152. package/dist/cli/lib/handleUserInput.d.ts.map +0 -1
  153. package/dist/cli/lib/handleUserInput.unitTest.d.ts +0 -2
  154. package/dist/cli/lib/handleUserInput.unitTest.d.ts.map +0 -1
  155. package/dist/cli/lib/handleUserInput.unitTest.js +0 -99
  156. package/dist/cli/lib/handleUserInput.unitTest.js.map +0 -1
  157. package/dist/cli/lib/injectProperties.d.ts.map +0 -1
  158. package/dist/cli/lib/injectProperties.unitTest.d.ts +0 -2
  159. package/dist/cli/lib/injectProperties.unitTest.d.ts.map +0 -1
  160. package/dist/cli/lib/injectProperties.unitTest.js +0 -19
  161. package/dist/cli/lib/injectProperties.unitTest.js.map +0 -1
  162. package/dist/cli/lib/isTest.d.ts.map +0 -1
  163. package/dist/cli/lib/listenToUser.d.ts.map +0 -1
  164. package/dist/cli/lib/listenToUser.unitTest.d.ts +0 -2
  165. package/dist/cli/lib/listenToUser.unitTest.d.ts.map +0 -1
  166. package/dist/cli/lib/listenToUser.unitTest.js +0 -52
  167. package/dist/cli/lib/listenToUser.unitTest.js.map +0 -1
  168. package/dist/cli/lib/loadConfig.d.ts.map +0 -1
  169. package/dist/cli/lib/loadConfig.unitTest.d.ts +0 -2
  170. package/dist/cli/lib/loadConfig.unitTest.d.ts.map +0 -1
  171. package/dist/cli/lib/loadConfig.unitTest.js +0 -16
  172. package/dist/cli/lib/loadConfig.unitTest.js.map +0 -1
  173. package/dist/cli/lib/loadTestFile.d.ts.map +0 -1
  174. package/dist/cli/lib/loadTestFile.unitTest.d.ts +0 -2
  175. package/dist/cli/lib/loadTestFile.unitTest.d.ts.map +0 -1
  176. package/dist/cli/lib/loadTestFile.unitTest.js +0 -26
  177. package/dist/cli/lib/loadTestFile.unitTest.js.map +0 -1
  178. package/dist/cli/lib/makeWatchRunState.d.ts.map +0 -1
  179. package/dist/cli/lib/parseCommandLineArguments.d.ts.map +0 -1
  180. package/dist/cli/lib/parseCommandLineArguments.unitTest.d.ts +0 -2
  181. package/dist/cli/lib/parseCommandLineArguments.unitTest.d.ts.map +0 -1
  182. package/dist/cli/lib/parseCommandLineArguments.unitTest.js +0 -23
  183. package/dist/cli/lib/parseCommandLineArguments.unitTest.js.map +0 -1
  184. package/dist/cli/lib/parseDescribe.d.ts.map +0 -1
  185. package/dist/cli/lib/parseDescribe.unitTest.d.ts +0 -2
  186. package/dist/cli/lib/parseDescribe.unitTest.d.ts.map +0 -1
  187. package/dist/cli/lib/parseDescribe.unitTest.js +0 -23
  188. package/dist/cli/lib/parseDescribe.unitTest.js.map +0 -1
  189. package/dist/cli/lib/reRunManager.d.ts.map +0 -1
  190. package/dist/cli/lib/reRunManager.unitTest.d.ts +0 -2
  191. package/dist/cli/lib/reRunManager.unitTest.d.ts.map +0 -1
  192. package/dist/cli/lib/reRunManager.unitTest.js +0 -74
  193. package/dist/cli/lib/reRunManager.unitTest.js.map +0 -1
  194. package/dist/cli/lib/reservedExportKeys.d.ts.map +0 -1
  195. package/dist/cli/lib/reservedExportKeys.unitTest.d.ts +0 -2
  196. package/dist/cli/lib/reservedExportKeys.unitTest.d.ts.map +0 -1
  197. package/dist/cli/lib/reservedExportKeys.unitTest.js +0 -7
  198. package/dist/cli/lib/reservedExportKeys.unitTest.js.map +0 -1
  199. package/dist/cli/lib/runDescribe.d.ts.map +0 -1
  200. package/dist/cli/lib/runDescribe.unitTest.d.ts +0 -2
  201. package/dist/cli/lib/runDescribe.unitTest.d.ts.map +0 -1
  202. package/dist/cli/lib/runDescribe.unitTest.js +0 -25
  203. package/dist/cli/lib/runDescribe.unitTest.js.map +0 -1
  204. package/dist/cli/lib/runDescribeRun.d.ts.map +0 -1
  205. package/dist/cli/lib/runDescribeRun.unitTest.d.ts +0 -2
  206. package/dist/cli/lib/runDescribeRun.unitTest.d.ts.map +0 -1
  207. package/dist/cli/lib/runDescribeRun.unitTest.js +0 -48
  208. package/dist/cli/lib/runDescribeRun.unitTest.js.map +0 -1
  209. package/dist/cli/lib/runIt.d.ts.map +0 -1
  210. package/dist/cli/lib/runIt.unitTest.d.ts +0 -2
  211. package/dist/cli/lib/runIt.unitTest.d.ts.map +0 -1
  212. package/dist/cli/lib/runIt.unitTest.js +0 -77
  213. package/dist/cli/lib/runIt.unitTest.js.map +0 -1
  214. package/dist/cli/lib/runTasks.d.ts.map +0 -1
  215. package/dist/cli/lib/runTasks.unitTest.d.ts +0 -5
  216. package/dist/cli/lib/runTasks.unitTest.d.ts.map +0 -1
  217. package/dist/cli/lib/runTasks.unitTest.js +0 -36
  218. package/dist/cli/lib/runTasks.unitTest.js.map +0 -1
  219. package/dist/cli/lib/runTest.d.ts.map +0 -1
  220. package/dist/cli/lib/runTest.unitTest.d.ts +0 -20
  221. package/dist/cli/lib/runTest.unitTest.d.ts.map +0 -1
  222. package/dist/cli/lib/runTest.unitTest.js +0 -290
  223. package/dist/cli/lib/runTest.unitTest.js.map +0 -1
  224. package/dist/cli/lib/runTests.d.ts.map +0 -1
  225. package/dist/cli/lib/runTests.unitTest.d.ts +0 -6
  226. package/dist/cli/lib/runTests.unitTest.d.ts.map +0 -1
  227. package/dist/cli/lib/runTests.unitTest.js +0 -129
  228. package/dist/cli/lib/runTests.unitTest.js.map +0 -1
  229. package/dist/cli/lib/setEnv.d.ts.map +0 -1
  230. package/dist/cli/lib/showTestLoadingError.d.ts.map +0 -1
  231. package/dist/cli/lib/showTestLoadingError.unitTest.d.ts +0 -2
  232. package/dist/cli/lib/showTestLoadingError.unitTest.d.ts.map +0 -1
  233. package/dist/cli/lib/showTestLoadingError.unitTest.js +0 -18
  234. package/dist/cli/lib/showTestLoadingError.unitTest.js.map +0 -1
  235. package/dist/cli/lib/showTestResult.d.ts.map +0 -1
  236. package/dist/cli/lib/showTestResult.unitTest.d.ts +0 -2
  237. package/dist/cli/lib/showTestResult.unitTest.d.ts.map +0 -1
  238. package/dist/cli/lib/showTestResult.unitTest.js +0 -324
  239. package/dist/cli/lib/showTestResult.unitTest.js.map +0 -1
  240. package/dist/cli/lib/showTtyHelp.d.ts.map +0 -1
  241. package/dist/cli/lib/showTtyHelp.unitTest.d.ts +0 -2
  242. package/dist/cli/lib/showTtyHelp.unitTest.d.ts.map +0 -1
  243. package/dist/cli/lib/showTtyHelp.unitTest.js +0 -27
  244. package/dist/cli/lib/showTtyHelp.unitTest.js.map +0 -1
  245. package/dist/cli/lib/testHelpers/makeCustomOut.d.ts +0 -7
  246. package/dist/cli/lib/testHelpers/makeCustomOut.d.ts.map +0 -1
  247. package/dist/cli/lib/testHelpers/makeCustomOut.js +0 -10
  248. package/dist/cli/lib/testHelpers/makeCustomOut.js.map +0 -1
  249. package/dist/cli/lib/timeProfier.d.ts.map +0 -1
  250. package/dist/cli/lib/validateConfig.d.ts.map +0 -1
  251. package/dist/cli/lib/validateConfig.unitTest.d.ts +0 -2
  252. package/dist/cli/lib/validateConfig.unitTest.d.ts.map +0 -1
  253. package/dist/cli/lib/validateConfig.unitTest.js +0 -34
  254. package/dist/cli/lib/validateConfig.unitTest.js.map +0 -1
  255. package/dist/cli/lib/watchFilesAndRunTests.d.ts.map +0 -1
  256. package/dist/cli/lib/watchFilesAndRunTests.unitTest.d.ts +0 -2
  257. package/dist/cli/lib/watchFilesAndRunTests.unitTest.d.ts.map +0 -1
  258. package/dist/cli/lib/watchFilesAndRunTests.unitTest.js +0 -127
  259. package/dist/cli/lib/watchFilesAndRunTests.unitTest.js.map +0 -1
  260. package/dist/cli/lib/watchFilesAndRunTestsChokidar.d.ts.map +0 -1
  261. package/dist/cli/lib/watchFilesAndRunTestsChokidar.unitTest.d.ts +0 -2
  262. package/dist/cli/lib/watchFilesAndRunTestsChokidar.unitTest.d.ts.map +0 -1
  263. package/dist/cli/lib/watchFilesAndRunTestsChokidar.unitTest.js +0 -126
  264. package/dist/cli/lib/watchFilesAndRunTestsChokidar.unitTest.js.map +0 -1
  265. package/dist/cli/lib/watchFilesAndRunTestsNodeWatch.d.ts.map +0 -1
  266. package/dist/cli/lib/watchFilesAndRunTestsNodeWatch.unitTest.d.ts +0 -2
  267. package/dist/cli/lib/watchFilesAndRunTestsNodeWatch.unitTest.d.ts.map +0 -1
  268. package/dist/cli/lib/watchFilesAndRunTestsNodeWatch.unitTest.js +0 -128
  269. package/dist/cli/lib/watchFilesAndRunTestsNodeWatch.unitTest.js.map +0 -1
  270. package/dist/cli/lib/watchFilesChokidar.d.ts.map +0 -1
  271. package/dist/cli/lib/watchFilesChokidar.unitTest.d.ts +0 -2
  272. package/dist/cli/lib/watchFilesChokidar.unitTest.d.ts.map +0 -1
  273. package/dist/cli/lib/watchFilesChokidar.unitTest.js +0 -125
  274. package/dist/cli/lib/watchFilesChokidar.unitTest.js.map +0 -1
  275. package/dist/cli/lib/watchFilesNodeWatch.d.ts.map +0 -1
  276. package/dist/cli/lib/watchFilesNodeWatch.unitTest.d.ts +0 -2
  277. package/dist/cli/lib/watchFilesNodeWatch.unitTest.d.ts.map +0 -1
  278. package/dist/cli/lib/watchFilesNodeWatch.unitTest.js +0 -88
  279. package/dist/cli/lib/watchFilesNodeWatch.unitTest.js.map +0 -1
  280. package/dist/cli/once-seq-a.unitTest.d.ts +0 -2
  281. package/dist/cli/once-seq-a.unitTest.d.ts.map +0 -1
  282. package/dist/cli/once-seq-a.unitTest.js +0 -134
  283. package/dist/cli/once-seq-a.unitTest.js.map +0 -1
  284. package/dist/cli/once-seq-d.unitTest.d.ts +0 -2
  285. package/dist/cli/once-seq-d.unitTest.d.ts.map +0 -1
  286. package/dist/cli/once-seq-d.unitTest.js +0 -134
  287. package/dist/cli/once-seq-d.unitTest.js.map +0 -1
  288. package/dist/cli/once-seq-f.unitTest.d.ts +0 -2
  289. package/dist/cli/once-seq-f.unitTest.d.ts.map +0 -1
  290. package/dist/cli/once-seq-f.unitTest.js +0 -134
  291. package/dist/cli/once-seq-f.unitTest.js.map +0 -1
  292. package/dist/cli/once-seq-t.unitTest.d.ts +0 -2
  293. package/dist/cli/once-seq-t.unitTest.d.ts.map +0 -1
  294. package/dist/cli/once-seq-t.unitTest.js +0 -134
  295. package/dist/cli/once-seq-t.unitTest.js.map +0 -1
  296. package/dist/cli/once.d.ts.map +0 -1
  297. package/dist/cli/once.unitTest.d.ts +0 -2
  298. package/dist/cli/once.unitTest.d.ts.map +0 -1
  299. package/dist/cli/once.unitTest.js +0 -138
  300. package/dist/cli/once.unitTest.js.map +0 -1
  301. package/dist/cli/watch.d.ts.map +0 -1
  302. package/dist/cli/watch.unitTest.d.ts +0 -6
  303. package/dist/cli/watch.unitTest.d.ts.map +0 -1
  304. package/dist/cli/watch.unitTest.js +0 -107
  305. package/dist/cli/watch.unitTest.js.map +0 -1
  306. package/dist/config.d.ts.map +0 -1
  307. package/dist/describe.d.ts.map +0 -1
  308. package/dist/describe.unitTest.d.ts +0 -2
  309. package/dist/describe.unitTest.d.ts.map +0 -1
  310. package/dist/describe.unitTest.js +0 -22
  311. package/dist/describe.unitTest.js.map +0 -1
  312. package/dist/index.d.ts.map +0 -1
  313. package/dist/indexNumberToLetters.d.ts.map +0 -1
  314. package/dist/output.d.ts.map +0 -1
  315. package/dist/packages/chalk.d.ts.map +0 -1
  316. package/dist/packages/esmReload.d.ts.map +0 -1
  317. package/dist/packages/esmReload.unitTest.d.ts +0 -2
  318. package/dist/packages/esmReload.unitTest.d.ts.map +0 -1
  319. package/dist/packages/esmReload.unitTest.js +0 -50
  320. package/dist/packages/esmReload.unitTest.js.map +0 -1
  321. package/dist/packages/figures.d.ts.map +0 -1
  322. package/dist/packages/loadConfig.d.ts.map +0 -1
  323. package/dist/packages/mergeStructuredConfig.d.ts.map +0 -1
  324. package/dist/packages/slash.d.ts.map +0 -1
  325. package/dist/packages/timeProfiler.d.ts.map +0 -1
  326. package/dist/testing/makeTestReRunManager.d.ts +0 -4
  327. package/dist/testing/makeTestReRunManager.d.ts.map +0 -1
  328. package/dist/testing/makeTestReRunManager.js +0 -6
  329. package/dist/testing/makeTestReRunManager.js.map +0 -1
  330. package/dist/types.d.ts.map +0 -1
package/AGENTS.md CHANGED
@@ -19,7 +19,8 @@ For introductory human-facing usage, also see `readme.md`.
19
19
  4. Import only `describe` from `sxy-test-runner`. Obtain `it`, `test`, and local hooks from
20
20
  the `describe` callback.
21
21
  5. Run `npx sxy-test-runner once` for finite agent or CI work.
22
- 6. Treat exit code `3` as test failure and exit code `4` as no tests found.
22
+ 6. Exit codes: `0` all tests passed, `3` test failure, `4` no test files matched the `tests`
23
+ pattern, `5` test files ran but `--filter-it`/`--filter-describe` matched nothing.
23
24
 
24
25
  Do not run a test file directly with `node`. `describe()` requires runner-owned global
25
26
  state and deliberately throws if the framework has not initialized it.
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,MAAM,UAAU,IAAI;IAChB,MAAM,WAAW,GAAG,eAAe;SAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,eAAe,CAAC;SACnC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,iBAAiB,GAAG,eAAe;SACpC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;SACtE,IAAI,CAAC,MAAM,CAAC,CAAA;IAEjB,GAAG,CAAC;QACA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;QAC7B,EAAE;QACF,QAAQ;QACR,KAAK,OAAO,oBAAoB;QAChC,KAAK,OAAO,iBAAiB;QAC7B,KAAK,OAAO,OAAO;QACnB,KAAK,OAAO,OAAO;QACnB,EAAE;QACF,WAAW;QACX,iEAAiE;QACjE,2CAA2C;QAC3C,+CAA+C;QAC/C,yBAAyB;QACzB,EAAE;QACF,UAAU;QACV,8DAA8D;QAC9D,iEAAiE;QACjE,0EAA0E;QAC1E,mEAAmE;QACnE,yDAAyD;QACzD,EAAE;QACF,iBAAiB;QACjB,sDAAsD;QACtD,0CAA0C;QAC1C,8CAA8C;QAC9C,qEAAqE;QACrE,EAAE;QACF,WAAW;QACX,KAAK,OAAO,EAAE;QACd,KAAK,OAAO,OAAO;QACnB,KAAK,OAAO,4CAA4C;QACxD,KAAK,OAAO,8BAA8B;QAC1C,KAAK,OAAO,sCAAsC;QAClD,EAAE;QACF,kBAAkB,WAAW,OAAO,iBAAiB,GAAG;QACxD,6BAA6B,OAAO,KAAK,WAAW,GAAG;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAElC,MAAM,UAAU,IAAI;IAChB,MAAM,WAAW,GAAG,eAAe;SAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,eAAe,CAAC;SACnC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,iBAAiB,GAAG,eAAe;SACpC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;SACtE,IAAI,CAAC,MAAM,CAAC,CAAA;IAEjB,GAAG,CAAC;QACA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;QAC7B,EAAE;QACF,QAAQ;QACR,KAAK,OAAO,oBAAoB;QAChC,KAAK,OAAO,iBAAiB;QAC7B,KAAK,OAAO,OAAO;QACnB,KAAK,OAAO,OAAO;QACnB,EAAE;QACF,WAAW;QACX,iEAAiE;QACjE,2CAA2C;QAC3C,+CAA+C;QAC/C,yBAAyB;QACzB,EAAE;QACF,UAAU;QACV,8DAA8D;QAC9D,iEAAiE;QACjE,0EAA0E;QAC1E,mEAAmE;QACnE,yDAAyD;QACzD,EAAE;QACF,iBAAiB;QACjB,sDAAsD;QACtD,0CAA0C;QAC1C,8CAA8C;QAC9C,qEAAqE;QACrE,EAAE;QACF,WAAW;QACX,KAAK,OAAO,EAAE;QACd,KAAK,OAAO,OAAO;QACnB,KAAK,OAAO,4CAA4C;QACxD,KAAK,OAAO,8BAA8B;QAC1C,KAAK,OAAO,sCAAsC;QAClD,EAAE;QACF,kBAAkB,WAAW,OAAO,iBAAiB,GAAG;QACxD,6BAA6B,OAAO,KAAK,WAAW,GAAG;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACjB,CAAC","sourcesContent":["import chalk from '../packages/chalk.js'\nimport { packageName, cliName, configFileNames, configLocations } from '../config.js'\nimport { out } from '../output.js'\n\nexport function help(): void {\n const configNames = configFileNames\n .map(name => `${name}.{js,cjs,mjs}`)\n .join(' or ')\n const configDirectories = configLocations\n .map(location => location === '' ? 'the project root' : `${location}/`)\n .join(' or ')\n\n out([\n chalk.brightblue(packageName),\n '',\n 'Usage:',\n ` ${cliName} [watch] [options]`,\n ` ${cliName} once [options]`,\n ` ${cliName} init`,\n ` ${cliName} help`,\n '',\n 'Commands:',\n ' watch Run tests and watch for related file changes (default)',\n ' once Run the test suite once and exit',\n ' init Create an initial configuration file',\n ' help Show this help',\n '',\n 'Options:',\n ' -c, --config <file> Use a specific configuration file',\n ' -t, --test-files <glob> Override the configured test pattern',\n ' -f, --filter <glob> Further constrain the configured test pattern',\n ' -d, --filter-describe <substring> Run matching describe blocks',\n ' -i, --filter-it <substring> Run matching tests',\n '',\n 'Watch controls:',\n ' r/l + Enter Re-run the last set of tests',\n ' a + Enter Re-run all tests',\n ' f + Enter Re-run failing tests',\n ' Set watch.ttyActionsOnKeypress to true to run these without Enter',\n '',\n 'Examples:',\n ` ${cliName}`,\n ` ${cliName} once`,\n ` ${cliName} watch --test-files \"**/*.focused.test.js\"`,\n ` ${cliName} once --filter \"**/users/**\"`,\n ` ${cliName} once --config config/sxyt.config.js`,\n '',\n `Configuration: ${configNames} in ${configDirectories}.`,\n `Executable aliases: sxyt, ${cliName}, ${packageName}.`\n ].join('\\n'))\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,QAAQ,OAAO,EAAE,CAAC,CAAC,qEAAqE;QACpF,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACP,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,MAAK;QACT,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACpD,MAAK;QACT;YACI,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;AACL,CAAC;KAAM,CAAC;IACJ,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,IAAc;IACpD,MAAM,CAAC,2BAA2B,GAAG,IAAI,CAAA;IACzC,0GAA0G;IAC1G,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,OAAO,KAAK,CAAC,CAAA;IAC9C,yGAAyG;IACzG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,QAAQ,OAAO,EAAE,CAAC,CAAC,qEAAqE;QACpF,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACP,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,MAAK;QACT,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACpD,MAAK;QACT;YACI,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;AACL,CAAC;KAAM,CAAC;IACJ,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,IAAc;IACpD,MAAM,CAAC,2BAA2B,GAAG,IAAI,CAAA;IACzC,0GAA0G;IAC1G,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,OAAO,KAAK,CAAC,CAAA;IAC9C,yGAAyG;IACzG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC","sourcesContent":["#!/usr/bin/env node\n\nconst args = process.argv.slice(2)\n\nif (args.length > 0) {\n const command = args[0]\n switch (command) { // eslint-disable-line @typescript-eslint/switch-exhaustiveness-check\n case 'init':\n case 'once':\n case 'watch':\n case 'help':\n await doCommand(command, args.slice(1))\n break\n case '--init':\n case '--once':\n case '--watch':\n case '--help':\n await doCommand(command.substring(2), args.slice(1))\n break\n default:\n await doCommand('watch', args)\n }\n} else {\n await doCommand('watch', args)\n}\n\nasync function doCommand(command: string, args: string[]): Promise<void> {\n global.__sxyt_commandLineArguments = args\n // command-named dynamic import - no static type can express \"a module matching an unknown command string\"\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const module = await import(`./${command}.js`)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n await module[command]()\n process.exit(0)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,UAAU,IAAI;IAChB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEhC,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAA;YACP,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,GAAG,KAAK,CAAC,CAAA;YAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,CAAA;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,CAAA;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAED,SAAS,mBAAmB,CAAC,GAAW;QACpC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAA,IAAI,WAAW,yCAAyC,GAAG,EAAE;cACvE,kEAAkE,OAAO,SAAS,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAA,IAAI,WAAW,2CAA2C;cACpE,gEAAgE;cAChE,iFAAiF,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IAC1E,mEAAmE;IACnE,MAAM,WAAW,GAAsB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEjE,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC;QACpD,aAAa;QACb,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACxE,SAAS;QACT,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;IAE7E,MAAM,aAAa,GACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwFE,CAAA;IAEE,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;IAEjD,GAAG,CAAC,KAAK,CAAC,WAAW,CAAA,IAAI,WAAW,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAC9F,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,UAAU,IAAI;IAChB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEhC,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAA;YACP,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,GAAG,KAAK,CAAC,CAAA;YAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,CAAA;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,CAAC,CAAA;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAED,SAAS,mBAAmB,CAAC,GAAW;QACpC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAA,IAAI,WAAW,yCAAyC,GAAG,EAAE;cACvE,kEAAkE,OAAO,SAAS,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAA,IAAI,WAAW,2CAA2C;cACpE,gEAAgE;cAChE,iFAAiF,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IAC1E,mEAAmE;IACnE,MAAM,WAAW,GAAsB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEjE,MAAM,gBAAgB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC;QACpD,aAAa;QACb,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACxE,SAAS;QACT,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;IAE7E,MAAM,aAAa,GACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwFE,CAAA;IAEE,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;IAEjD,GAAG,CAAC,KAAK,CAAC,WAAW,CAAA,IAAI,WAAW,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAC9F,CAAC","sourcesContent":["import { join } from 'path'\nimport chalk from '../packages/chalk.js'\nimport { packageName, cliName, configFileNames, configLocations } from '../config.js'\nimport { out } from '../output.js'\nimport fs from 'fs'\n\nexport function init(): void {\n const projectDir = process.cwd()\n\n for (const configLocation of configLocations) {\n for (const configFileName of configFileNames) {\n let loc\n loc = join(projectDir, configLocation, configFileName + '.js')\n if (fs.existsSync(loc)) {\n configAlreadyExists(loc)\n }\n loc = join(projectDir, configLocation, configFileName + '.cjs')\n if (fs.existsSync(loc)) {\n configAlreadyExists(loc)\n }\n loc = join(projectDir, configLocation, configFileName + '.mjs')\n if (fs.existsSync(loc)) {\n configAlreadyExists(loc)\n }\n }\n }\n\n function configAlreadyExists(loc: string): void {\n out(chalk.orange`[${packageName}] A matching config already exists at ${loc}`\n + `\\nPlease remove this config before generating a new one with \\`${cliName} init\\``)\n }\n\n const projectPackageJsonLocation = join(projectDir, 'package.json')\n if (!fs.existsSync(projectPackageJsonLocation)) {\n out(chalk.orange`[${packageName}] No package.json exists in this location`\n + '\\nPlease initialise the package with `yarn init` on `npm init`'\n + ' before running this command, and run this command from the project root folder')\n }\n\n const packageJsonRaw = fs.readFileSync(projectPackageJsonLocation, 'utf8')\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const packageJson: { type?: string } = JSON.parse(packageJsonRaw)\n\n const targetConfigName = (packageJson.type === 'module')\n // ES6 module\n ? join(projectDir, configLocations[0] ?? '', configFileNames[0] + '.js')\n // common\n : join(projectDir, configLocations[0] ?? '', configFileNames[0] + '.mjs')\n\n const defaultConfig =\n`\n// @ts-check\n\n/** @satisfies {import('sxy-test-runner').Config} */\nexport default {\n\n // base folder for tests match and ignore patterns\n testsBase: '.',\n\n // glob pattern or array of glob patterns of test files\n tests: [\n '**/*.sxyt.{js,mjs,jsx}',\n '**/*.test.{js,mjs,jsx}',\n '**/*.spec.{js,mjs,jsx}',\n '**/tests?/*.{js,mjs,jsx}',\n '**/__tests?__/*.{js,mjs,jsx}'\n ],\n\n // glob pattern or array of patterns of test files to ignore\n testsIgnore: ['**/node_modules/**/*'],\n\n // whether to show the full error trace when an error occurs in a test file\n showErrorTrace: false,\n\n // tasks to run on startup\n // accepts a function, file location (relative to project base), or array of functions and or files\n setup: undefined,\n\n // tasks to run before each test file is run\n beforeEachFile: undefined,\n\n // tasks to run after each test file is run\n afterEachFile: undefined,\n\n // tasks to run before each describe block is processed\n // if the function returns an object with named properties, or the file exports named exports,\n // these will be passed to the callback function in argument 0, and can be access by destructruing e.g.\n // describe('thing', ({exportA, exportB}) => { it('should', ...) })\n beforeEachDescribe: undefined,\n\n // tasks to run after each describe block\n afterEachDescribe: undefined,\n\n // tasks to run before each it/test block\n // function returns and file exports will be passed to the it/test block as with describe above, e.g.\n // it('should', ({exportA, exportB}) => { assert('something') })\n beforeEachTest: undefined,\n\n // tasks to run after each it/test block\n afterEachTest: undefined,\n\n // how to execute the different parts of test files\n execution: {\n\n // run test files in 'parallel' or 'sequential'ly\n files: 'sequential',\n\n // run describe blocks within a test file in 'parallel' or 'sequential'ly\n describes: 'sequential',\n\n // run it/test blocks within a describe blocks in 'parallel' or 'sequential'ly\n tests: 'sequential'\n\n },\n\n // watch mode configurations\n watch: {\n\n //// the base directory to watch files in\n watchFilesBase: '.',\n\n //// glob filter or array of glob filters of files to watch\n watchFiles: '**/*.js',\n\n //// glob filter or array of globl filters of files to ignore\n watchFilesIgnore: '**/node_modules/**/*',\n\n // run all tests when starting the watcher\n runAllOnStartup: true,\n\n // re run all previously failed tests on each test run, until they pass\n reRunFailingTests: true,\n\n // run watch mode keyboard commands immediately, without waiting for Enter\n ttyActionsOnKeypress: false,\n\n },\n\n}`\n\n fs.writeFileSync(targetConfigName, defaultConfig)\n\n out(chalk.mediumgreen`[${packageName}] Created config at ` + chalk.blue(targetConfigName))\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addBasePath.js","sourceRoot":"","sources":["../../../src/cli/lib/addBasePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,KAAkB;IACpE,OAAO,WAAW,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;QAC5B,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"addBasePath.js","sourceRoot":"","sources":["../../../src/cli/lib/addBasePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,KAAkB;IACpE,OAAO,WAAW,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;QAC5B,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { timeProfile } from './timeProfier.js'\n\nimport type { GlobPattern } from '../../types.js'\n\nexport function addBasePath(base: string | undefined, items: GlobPattern): GlobPattern {\n return timeProfile('add base to globs', () => {\n if (base !== undefined && base !== '.' && base !== '') {\n return Array.isArray(items)\n ? items.map(item => `${base}/${item}`)\n : `${base}/${items}`\n }\n return items\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"addExports.js","sourceRoot":"","sources":["../../../src/cli/lib/addExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,aAA0B,EAAE,KAAc,EAAE,IAAa;IACtG,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,kBAAkB,KAAK,wBAAwB,GAAG,6BAA6B,CAAA;YAC/F,GAAG,CAAC,OAAO,CAAC,CAAA;YACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"addExports.js","sourceRoot":"","sources":["../../../src/cli/lib/addExports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,UAAU,UAAU,CAAC,OAAoB,EAAE,aAA0B,EAAE,KAAc,EAAE,IAAa;IACtG,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,kBAAkB,KAAK,wBAAwB,GAAG,6BAA6B,CAAA;YAC/F,GAAG,CAAC,OAAO,CAAC,CAAA;YACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;AACL,CAAC","sourcesContent":["import { out } from '../../output.js'\nimport type { TaskExports } from '../../types.js'\n\nexport function addExports(exports: TaskExports, newProperties: TaskExports, event?: string, from?: string): void {\n for (const key in newProperties) {\n if (key in exports) {\n const message = `Error loading '${event}' task exports, key '${key}' has already been exported`\n out(message)\n throw new Error(message)\n } else {\n exports[key] = newProperties[key]\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"applyConfigDefaults.js","sourceRoot":"","sources":["../../../src/cli/lib/applyConfigDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,UAAU,mBAAmB,CAAC,UAA8B;IAC9D,MAAM,eAAe,GAAG;QACpB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACZ,CAAA;IAED,OAAO,qBAAqB,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AAC5E,CAAC"}
1
+ {"version":3,"file":"applyConfigDefaults.js","sourceRoot":"","sources":["../../../src/cli/lib/applyConfigDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,UAAU,mBAAmB,CAAC,UAA8B;IAC9D,MAAM,eAAe,GAAG;QACpB,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACZ,CAAA;IAED,OAAO,qBAAqB,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AAC5E,CAAC","sourcesContent":["import { mergeStructuredConfig } from '../../packages/mergeStructuredConfig.js'\n\nimport type { FinalConfig, UserConfig, UserConfigInternal } from '../../types.js'\n\nimport { defaultConfig } from './defaultConfig.js'\n\nexport function applyConfigDefaults(userConfig: UserConfigInternal): FinalConfig {\n const configStructure = {\n execution: {},\n watch: {}\n }\n\n return mergeStructuredConfig(configStructure, defaultConfig, userConfig)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildDependencyTree.js","sourceRoot":"","sources":["../../../src/cli/lib/buildDependencyTree.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAI3C,MAAM,UAAU,mBAAmB,CAAC,MAAmB,EAAE,QAAgB;IACrE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE1B,MAAM,oBAAoB,GAAG;QACzB,QAAQ;QACR,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;QACtC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAChE,CAAA;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,EAAE,GAAG,cAAc,CAAC,oBAAoB,CAAwB,CAAA;IAEtE,wCAAwC;IACxC,sDAAsD;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,SAAS,GAAG,EAAE;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA,CAAC,0BAA0B;IAEjE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAElC,OAAO,SAAS,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"buildDependencyTree.js","sourceRoot":"","sources":["../../../src/cli/lib/buildDependencyTree.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAI3C,MAAM,UAAU,mBAAmB,CAAC,MAAmB,EAAE,QAAgB;IACrE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE1B,MAAM,oBAAoB,GAAG;QACzB,QAAQ;QACR,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;QACtC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAChE,CAAA;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,EAAE,GAAG,cAAc,CAAC,oBAAoB,CAAwB,CAAA;IAEtE,wCAAwC;IACxC,sDAAsD;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,SAAS,GAAG,EAAE;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA,CAAC,0BAA0B;IAEjE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAElC,OAAO,SAAS,CAAA;AACpB,CAAC","sourcesContent":["import dependencyTree from 'dependency-tree'\nimport { debug } from '../../output.js'\nimport slash from '../../packages/slash.js'\n\nimport type { FinalConfig } from '../../types.js'\n\nexport function buildDependencyTree(config: FinalConfig, filename: string): string[] {\n filename = slash(filename)\n\n const dependencyTreeConfig = {\n filename,\n isListForm: true,\n directory: config.watch.watchFilesBase,\n filter: (path: string) => path.indexOf('node_modules') === -1\n }\n\n // isListForm:true makes dependency-tree return a flat string[] at runtime,\n // which its shipped types don't model (they only type the tree-object form).\n const dt = dependencyTree(dependencyTreeConfig) as unknown as string[]\n\n // process the results into final format\n // (forward slashes and convert full path to rel path)\n const cwd = process.cwd()\n const processed = dt\n .map(file => slash(file).slice(cwd.length + 1))\n .filter(file => file !== filename) // remove the current file\n\n debug('found dep tree', processed)\n\n return processed\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildDependencyTrees.js","sourceRoot":"","sources":["../../../src/cli/lib/buildDependencyTrees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAI9D,MAAM,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;AAElE,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,SAAsB;IAC5E,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACnD,MAAM,eAAe,GAAoB,EAAE,CAAA;QAE3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC5D,eAAe,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAA;YAC1C,KAAK,CAAC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtD,CAAC;QAED,OAAO,eAAe,CAAA;IAC1B,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"buildDependencyTrees.js","sourceRoot":"","sources":["../../../src/cli/lib/buildDependencyTrees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAI9D,MAAM,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;AAElE,MAAM,UAAU,oBAAoB,CAAC,MAAmB,EAAE,SAAsB;IAC5E,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACnD,MAAM,eAAe,GAAoB,EAAE,CAAA;QAE3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC5D,eAAe,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAA;YAC1C,KAAK,CAAC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtD,CAAC;QAED,OAAO,eAAe,CAAA;IAC1B,CAAC,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { createTimeProfiler } from '../../packages/timeProfiler.js'\nimport { showTimeProfiling } from '../../config.js'\nimport { debug } from '../../output.js'\n\nimport { buildDependencyTree } from './buildDependencyTree.js'\n\nimport type { FinalConfig, DependencyTrees } from '../../types.js'\n\nconst { timeProfileAsync } = createTimeProfiler(showTimeProfiling)\n\nexport function buildDependencyTrees(config: FinalConfig, testFiles: Set<string>): Promise<DependencyTrees> {\n return timeProfileAsync('build dependency trees', () => {\n const dependencyTrees: DependencyTrees = {}\n\n for (const testFile of testFiles) {\n const dependencyTree = buildDependencyTree(config, testFile)\n dependencyTrees[testFile] = dependencyTree\n debug('final dep tree', dependencyTrees[testFile])\n }\n\n return dependencyTrees\n })\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare function installConsoleCapture(): void;
2
+ export declare function captureLogs<T>(logs: unknown[][], body: () => Promise<T>): Promise<T>;
3
+ //# sourceMappingURL=consoleCapture.d.ts.map
@@ -0,0 +1,36 @@
1
+ /* eslint-disable no-console */
2
+ // Capturing user console.log by swapping the global and restoring it afterwards only works
3
+ // while nothing runs concurrently - two overlapping tests each save whatever they happen to
4
+ // find and restore it out of order, which strands console.log on a dead buffer.
5
+ //
6
+ // Instead we install one console.log, once, and never reassign it. It asks AsyncLocalStorage
7
+ // which test it is currently inside and appends to that test's buffer. Node propagates the
8
+ // store across awaits, so concurrent tests each see their own, and there is no shared slot
9
+ // for them to fight over.
10
+ import { AsyncLocalStorage } from 'node:async_hooks';
11
+ const logStore = new AsyncLocalStorage();
12
+ let dispatcher;
13
+ // Safe to call repeatedly. Re-installs if something else has replaced console.log since
14
+ // (the unit tests stub it per test case), taking the current console.log as the fallback
15
+ // for output made outside any test.
16
+ export function installConsoleCapture() {
17
+ if (dispatcher !== undefined && console.log === dispatcher)
18
+ return;
19
+ const fallback = console.log;
20
+ dispatcher = (...texts) => {
21
+ const logs = logStore.getStore();
22
+ if (logs)
23
+ logs.push(texts);
24
+ else
25
+ fallback(...texts);
26
+ };
27
+ console.log = dispatcher;
28
+ }
29
+ // Runs body with logs as the active buffer - console.log made anywhere inside, including
30
+ // after awaits, lands in it. Installs the capture on first use, so callers that reach the
31
+ // run* functions directly rather than through the once/watch entry points still capture.
32
+ export function captureLogs(logs, body) {
33
+ installConsoleCapture();
34
+ return logStore.run(logs, body);
35
+ }
36
+ //# sourceMappingURL=consoleCapture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consoleCapture.js","sourceRoot":"","sources":["../../../src/cli/lib/consoleCapture.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,2FAA2F;AAC3F,4FAA4F;AAC5F,gFAAgF;AAChF,EAAE;AACF,6FAA6F;AAC7F,2FAA2F;AAC3F,2FAA2F;AAC3F,0BAA0B;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAe,CAAA;AAErD,IAAI,UAA0C,CAAA;AAE9C,wFAAwF;AACxF,yFAAyF;AACzF,oCAAoC;AACpC,MAAM,UAAU,qBAAqB;IACjC,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,UAAU;QAAE,OAAM;IAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAA;IAC5B,UAAU,GAAG,CAAC,GAAG,KAAgB,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;YACrB,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,GAAG,UAAU,CAAA;AAC5B,CAAC;AAED,yFAAyF;AACzF,0FAA0F;AAC1F,yFAAyF;AACzF,MAAM,UAAU,WAAW,CAAI,IAAiB,EAAE,IAAsB;IACpE,qBAAqB,EAAE,CAAA;IACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC","sourcesContent":["/* eslint-disable no-console */\n\n// Capturing user console.log by swapping the global and restoring it afterwards only works\n// while nothing runs concurrently - two overlapping tests each save whatever they happen to\n// find and restore it out of order, which strands console.log on a dead buffer.\n//\n// Instead we install one console.log, once, and never reassign it. It asks AsyncLocalStorage\n// which test it is currently inside and appends to that test's buffer. Node propagates the\n// store across awaits, so concurrent tests each see their own, and there is no shared slot\n// for them to fight over.\n\nimport { AsyncLocalStorage } from 'node:async_hooks'\n\nconst logStore = new AsyncLocalStorage<unknown[][]>()\n\nlet dispatcher: typeof console.log | undefined\n\n// Safe to call repeatedly. Re-installs if something else has replaced console.log since\n// (the unit tests stub it per test case), taking the current console.log as the fallback\n// for output made outside any test.\nexport function installConsoleCapture(): void {\n if (dispatcher !== undefined && console.log === dispatcher) return\n\n const fallback = console.log\n dispatcher = (...texts: unknown[]) => {\n const logs = logStore.getStore()\n if (logs) logs.push(texts)\n else fallback(...texts)\n }\n console.log = dispatcher\n}\n\n// Runs body with logs as the active buffer - console.log made anywhere inside, including\n// after awaits, lands in it. Installs the capture on first use, so callers that reach the\n// run* functions directly rather than through the once/watch entry points still capture.\nexport function captureLogs<T>(logs: unknown[][], body: () => Promise<T>): Promise<T> {\n installConsoleCapture()\n return logStore.run(logs, body)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../../src/cli/lib/defaultConfig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAgB;IACtC,SAAS,EAAE,GAAG;IACd,KAAK,EAAE;QACH,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B;QAC1B,8BAA8B;KACjC;IACD,WAAW,EAAE,CAAC,sBAAsB,CAAC;IACrC,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE;QACP,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,YAAY;KACtB;IACD,KAAK,EAAE;QACH,cAAc,EAAE,GAAG;QACnB,UAAU,EAAE,SAAS;QACrB,gBAAgB,EAAE,sBAAsB;QACxC,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,IAAI;QACvB,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAA"}
1
+ {"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../../src/cli/lib/defaultConfig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAgB;IACtC,SAAS,EAAE,GAAG;IACd,KAAK,EAAE;QACH,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B;QAC1B,8BAA8B;KACjC;IACD,WAAW,EAAE,CAAC,sBAAsB,CAAC;IACrC,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE;QACP,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,YAAY;KACtB;IACD,KAAK,EAAE;QACH,cAAc,EAAE,GAAG;QACnB,UAAU,EAAE,SAAS;QACrB,gBAAgB,EAAE,sBAAsB;QACxC,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,IAAI;QACvB,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAA","sourcesContent":["import type { FinalConfig } from '../../types.js'\n\nexport const defaultConfig: FinalConfig = {\n testsBase: '.',\n tests: [\n '**/*.sxyt.{js,mjs,jsx}',\n '**/*.test.{js,mjs,jsx}',\n '**/*.spec.{js,mjs,jsx}',\n '**/tests?/*.{js,mjs,jsx}',\n '**/__tests?__/*.{js,mjs,jsx}'\n ],\n testsIgnore: ['**/node_modules/**/*'],\n showErrorTrace: false,\n compact: false,\n execution: {\n files: 'sequential',\n describes: 'sequential',\n tests: 'sequential'\n },\n watch: {\n watchFilesBase: '.',\n watchFiles: '**/*.js',\n watchFilesIgnore: '**/node_modules/**/*',\n runAllOnStartup: true,\n reRunFailingTests: true,\n ttyActionsOnKeypress: false\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"doUserSetup.js","sourceRoot":"","sources":["../../../src/cli/lib/doUserSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmB;IACjD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAM;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,QAAQ,OAAO,SAAS,EAAE,CAAC;YACvB,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,SAAS,EAAE,CAAA;gBACjB,MAAK;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;gBACxD,MAAK;YACT,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,GAAG,CAAC,mGAAmG,CAAC,CAAA;gBACxG,GAAG,CAAC,YAAY,OAAO,SAAS,GAAG,CAAC,CAAA;YACxC,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"doUserSetup.js","sourceRoot":"","sources":["../../../src/cli/lib/doUserSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmB;IACjD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,OAAM;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,QAAQ,OAAO,SAAS,EAAE,CAAC;YACvB,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,SAAS,EAAE,CAAA;gBACjB,MAAK;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;gBACxD,MAAK;YACT,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,GAAG,CAAC,mGAAmG,CAAC,CAAA;gBACxG,GAAG,CAAC,YAAY,OAAO,SAAS,GAAG,CAAC,CAAA;YACxC,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC","sourcesContent":["import { join } from 'path'\nimport { out } from '../../output.js'\nimport type { FinalConfig } from '../../types.js'\n\nexport async function doUserSetup(config: FinalConfig): Promise<void> {\n if (config.setup === undefined) return\n\n const setupTasks = Array.isArray(config.setup) ? config.setup : [config.setup]\n for (const setupTask of setupTasks) {\n switch (typeof setupTask) {\n case 'function': {\n await setupTask()\n break\n }\n case 'string': {\n await import(`file://${join(process.cwd(), setupTask)}`)\n break\n }\n default: {\n out('Error: setup entry has an invalid type, expected \\'function\\' or \\'string\\' of an file to import.')\n out(`Received ${typeof setupTask}.`)\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"doUserTeardown.js","sourceRoot":"","sources":["../../../src/cli/lib/doUserTeardown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB;IACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAM;IAEzC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1F,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACvC,QAAQ,OAAO,YAAY,EAAE,CAAC;YAC1B,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,YAAY,EAAE,CAAA;gBACpB,MAAK;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;gBAC3D,MAAK;YACT,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,GAAG,CACC,gFAAgF;sBAC9E,wBAAwB,CAC7B,CAAA;gBACD,GAAG,CAAC,YAAY,OAAO,YAAY,GAAG,CAAC,CAAA;YAC3C,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"doUserTeardown.js","sourceRoot":"","sources":["../../../src/cli/lib/doUserTeardown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB;IACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAM;IAEzC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1F,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACvC,QAAQ,OAAO,YAAY,EAAE,CAAC;YAC1B,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,YAAY,EAAE,CAAA;gBACpB,MAAK;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;gBAC3D,MAAK;YACT,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,GAAG,CACC,gFAAgF;sBAC9E,wBAAwB,CAC7B,CAAA;gBACD,GAAG,CAAC,YAAY,OAAO,YAAY,GAAG,CAAC,CAAA;YAC3C,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC","sourcesContent":["import { join } from 'path'\nimport { out } from '../../output.js'\nimport type { FinalConfig } from '../../types.js'\n\nexport async function doUserTeardown(config: FinalConfig): Promise<void> {\n if (config.teardown === undefined) return\n\n const teardownTasks = Array.isArray(config.teardown) ? config.teardown : [config.teardown]\n for (const teardownTask of teardownTasks) {\n switch (typeof teardownTask) {\n case 'function': {\n await teardownTask()\n break\n }\n case 'string': {\n await import(`file://${join(process.cwd(), teardownTask)}`)\n break\n }\n default: {\n out(\n 'Error: teardown entry has an invalid type, expected \\'function\\' or \\'string\\''\n + ' of an file to import.'\n )\n out(`Received ${typeof teardownTask}.`)\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/cli/lib/filter.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,UAAU,MAAM,CAClB,SAAiB,EACjB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACrD,OAAO,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/cli/lib/filter.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,UAAU,MAAM,CAClB,SAAiB,EACjB,UAAkB,EAClB,QAAgB;IAEhB,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACrD,OAAO,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;AAC1D,CAAC","sourcesContent":["\nimport minimatch from 'minimatch'\n\nimport { addBasePath } from './addBasePath.js'\nimport { globArgCombine } from './globArgCombine.js'\n\nexport function filter(\n testsBase: string,\n testFilter: string,\n testFile: string,\n): boolean {\n const filterGlob = addBasePath(testsBase, testFilter)\n return minimatch(testFile, globArgCombine(filterGlob))\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"findTestFiles.js","sourceRoot":"","sources":["../../../src/cli/lib/findTestFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAmB;IACnD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9D,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IAG1E,mFAAmF;IACnF,kFAAkF;IAClF,qFAAqF;IACrF,MAAM,KAAK,GAAG,IAAI,GAAW,CAAA;IAC7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;KACnF,CAAC,EAAE,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YAChE,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnF,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvB,CAAC;IAEL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"findTestFiles.js","sourceRoot":"","sources":["../../../src/cli/lib/findTestFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAmB;IACnD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9D,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IAG1E,mFAAmF;IACnF,kFAAkF;IAClF,qFAAqF;IACrF,MAAM,KAAK,GAAG,IAAI,GAAW,CAAA;IAC7B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;KACnF,CAAC,EAAE,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YAChE,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnF,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvB,CAAC;IAEL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC","sourcesContent":["import { glob } from 'fs/promises'\nimport slash from '../../packages/slash.js'\nimport type { FinalConfig } from '../../types.js'\n\nimport { addBasePath } from './addBasePath.js'\nimport { filter } from './filter.js'\n\nexport async function findTestFiles(config: FinalConfig): Promise<Set<string>> {\n const testsGlobs = addBasePath(config.testsBase, config.tests)\n const testsIgnoreGlobs = addBasePath(config.testsBase, config.testsIgnore)\n\n \n // Node's built-in glob replaces the globby/tinyglobby dependency (no import cost).\n // It yields OS-native separators, so slash() restores the forward-slash paths the\n // rest of the runner relies on (watch-mode minimatch filters, dependency-tree keys).\n const files = new Set<string>\n for await (const file of glob(testsGlobs, {\n exclude: Array.isArray(testsIgnoreGlobs) ? testsIgnoreGlobs : [testsIgnoreGlobs]\n })) {\n const testFile = slash(file)\n if (config.testsFilter !== undefined && config.testsFilter !== '') {\n if (filter(config.testsBase, config.testsFilter, testFile)) files.add(testFile)\n } else {\n files.add(testFile)\n }\n \n }\n\n return files\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"findingTestsMessage.js","sourceRoot":"","sources":["../../../src/cli/lib/findingTestsMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,yGAAyG;AACzG,8CAA8C;AAC9C,QAAQ;AAER,qCAAqC;AACrC,4CAA4C;AAC5C,6DAA6D;AAC7D,kFAAkF;AAClF,YAAY;AACZ,oGAAoG;AAGpG,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACnD,MAAM,YAAY,GAAG,kBAAkB,CAAA;IACvC,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE;QAAE,UAAU,IAAI,iBAAiB,MAAM,CAAC,SAAS,GAAG,CAAA;IAC/E,UAAU,IAAI,UAAU,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAA;IACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,UAAU,IAAI,kBAAkB,MAAM,CAAC,WAAW,GAAG,CAAA;IACzD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,UAAU,IAAI,eAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAA;IAC/B,CAAC;IACD,OAAO,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"findingTestsMessage.js","sourceRoot":"","sources":["../../../src/cli/lib/findingTestsMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,yGAAyG;AACzG,8CAA8C;AAC9C,QAAQ;AAER,qCAAqC;AACrC,4CAA4C;AAC5C,6DAA6D;AAC7D,kFAAkF;AAClF,YAAY;AACZ,oGAAoG;AAGpG,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACnD,MAAM,YAAY,GAAG,kBAAkB,CAAA;IACvC,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE;QAAE,UAAU,IAAI,iBAAiB,MAAM,CAAC,SAAS,GAAG,CAAA;IAC/E,UAAU,IAAI,UAAU,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAA;IACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,UAAU,IAAI,kBAAkB,MAAM,CAAC,WAAW,GAAG,CAAA;IACzD,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,UAAU,IAAI,eAAe,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAA;IAC/B,CAAC;IACD,OAAO,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC","sourcesContent":["\r\nimport chalk from '../../packages/chalk.js'\r\nimport { FinalConfig } from '../../types.js'\r\nimport { notEmpty } from './functions.js'\r\n\r\n\r\n// console.log('Looking for tests using pattern: ' + testFilesPattern) // eslint-disable-line no-console\r\n// userConfig.tests = testFilesPattern\r\n// }\r\n\r\n// if ('filter' in clArguments) {\r\n// const filter = clArguments.filter\r\n// if (typeof filter !== 'string' || filter === '') {\r\n// throw new Error('No pattern specified for --filter or -f argument')\r\n// }\r\n// console.log('Filtering tests using pattern: ' + filter) // eslint-disable-line no-console\r\n\r\n\r\nexport function findingTestsMessage(config: FinalConfig): string {\r\n const messageStart = 'finding tests...'\r\n let messageEnd = ''\r\n if (config.testsBase !== '') messageEnd += `\\nlooking in '${config.testsBase}'`\r\n messageEnd += `\\nfor '${Array.isArray(config.tests)\r\n ? config.tests.join(',')\r\n : config.tests}'`\r\n if (notEmpty(config.testsFilter)) {\r\n messageEnd += `\\nfiltered by '${config.testsFilter}'`\r\n }\r\n if (notEmpty(config.testsIgnore)) {\r\n messageEnd += `\\nignoring '${Array.isArray(config.testsIgnore)\r\n ? config.testsIgnore.join(',')\r\n : config.testsIgnore}'`\r\n }\r\n return messageStart + chalk.grey(messageEnd)\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function foundTestsMessage(testFileCount: number): string;
2
+ //# sourceMappingURL=foundTestsMessage.d.ts.map
@@ -0,0 +1,4 @@
1
+ export function foundTestsMessage(testFileCount) {
2
+ return `found ${testFileCount} test file${testFileCount === 1 ? '' : 's'}`;
3
+ }
4
+ //# sourceMappingURL=foundTestsMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundTestsMessage.js","sourceRoot":"","sources":["../../../src/cli/lib/foundTestsMessage.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,iBAAiB,CAAC,aAAqB;IACnD,OAAO,SAAS,aAAa,aAAa,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;AAC9E,CAAC","sourcesContent":["\nexport function foundTestsMessage(testFileCount: number): string {\n return `found ${testFileCount} test file${testFileCount === 1 ? '' : 's'}`\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/cli/lib/functions.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC5B,OAAO,CACH,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oEAAoE;KACjF,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/cli/lib/functions.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC5B,OAAO,CACH,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oEAAoE;KACjF,CAAA;AACL,CAAC","sourcesContent":["\r\nexport function notEmpty<T>(v: T): v is T & NonNullable<unknown> {\r\n return (\r\n (typeof v === 'object')\r\n ? v !== null && Object.keys(v).length > 0\r\n : !!v // eslint-disable-line @typescript-eslint/strict-boolean-expressions\r\n )\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getAllowedFlags.js","sourceRoot":"","sources":["../../../src/cli/lib/getAllowedFlags.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,gBAAkC;IAC9D,MAAM,YAAY,GAAiB,EAAE,CAAA;IACrC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,OAAO,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QACxC,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"getAllowedFlags.js","sourceRoot":"","sources":["../../../src/cli/lib/getAllowedFlags.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,gBAAkC;IAC9D,MAAM,YAAY,GAAiB,EAAE,CAAA;IACrC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,OAAO,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QACxC,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAA;AACvB,CAAC","sourcesContent":["import type { AllowedArguments, AllowedFlags } from '../../types.js'\n\nexport function getAllowedFlags(allowedArguments: AllowedArguments): AllowedFlags {\n const allowedFlags: AllowedFlags = {}\n for (const option in allowedArguments) {\n const argument = allowedArguments[option]\n if (typeof argument?.flag === 'string') {\n allowedFlags[argument.flag] = option\n }\n }\n return allowedFlags\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"globArgCombine.js","sourceRoot":"","sources":["../../../src/cli/lib/globArgCombine.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,QAAqB;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;QAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"globArgCombine.js","sourceRoot":"","sources":["../../../src/cli/lib/globArgCombine.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,QAAqB;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;QAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7B,CAAC","sourcesContent":["import type { GlobPattern } from '../../types.js'\n\nexport function globArgCombine(patterns: GlobPattern): string {\n if (!Array.isArray(patterns)) return patterns\n return (patterns.length > 1)\n ? '{' + patterns.join(',') + '}'\n : (patterns[0] ?? '')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleUserInput.js","sourceRoot":"","sources":["../../../src/cli/lib/handleUserInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAIrC,MAAM,UAAU,eAAe,CAC3B,KAAa,EACb,YAA0B,EAC1B,kBAAqC;IAErC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE1C,iCAAiC;IAEjC,mEAAmE;IACnE,wDAAwD;IAExD,IAAI,IAAa,CAAA;IACjB,IAAI,SAAsB,CAAA;IAC1B,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACrC,IAAI,GAAG,MAAM,CAAA;QACb,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAA;IAChD,CAAC;SAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACzB,IAAI,GAAG,KAAK,CAAA;QACZ,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAA;IAC/C,CAAC;SAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACzB,IAAI,GAAG,QAAQ,CAAA;QACf,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAA;IAClD,CAAC;SAAM,CAAC;QACJ,OAAM;IACV,CAAC;IAED,2BAA2B;IAC3B,qCAAqC;IAErC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,+BAA+B,CAAC,CAAA;QACpC,OAAM;IACV,CAAC;IACD,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,yCAAyC;AAEnH,CAAC"}
1
+ {"version":3,"file":"handleUserInput.js","sourceRoot":"","sources":["../../../src/cli/lib/handleUserInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAIrC,MAAM,UAAU,eAAe,CAC3B,KAAa,EACb,YAA0B,EAC1B,kBAAqC;IAErC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE1C,iCAAiC;IAEjC,mEAAmE;IACnE,wDAAwD;IAExD,IAAI,IAAa,CAAA;IACjB,IAAI,SAAsB,CAAA;IAC1B,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACrC,IAAI,GAAG,MAAM,CAAA;QACb,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAA;IAChD,CAAC;SAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACzB,IAAI,GAAG,KAAK,CAAA;QACZ,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAA;IAC/C,CAAC;SAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACzB,IAAI,GAAG,QAAQ,CAAA;QACf,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAA;IAClD,CAAC;SAAM,CAAC;QACJ,OAAM;IACV,CAAC;IAED,2BAA2B;IAC3B,qCAAqC;IAErC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,+BAA+B,CAAC,CAAA;QACpC,OAAM;IACV,CAAC;IACD,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,yCAAyC;AAEnH,CAAC","sourcesContent":["import { out } from '../../output.js'\r\nimport { RerunTestsFactory } from './listenToUser.js'\r\nimport { ReRunManager, RunType } from './reRunManager.js'\r\n\r\nexport function handleUserInput(\r\n input: string,\r\n reRunManager: ReRunManager,\r\n rerunTestsCallback: RerunTestsFactory\r\n): void {\r\n const command = input.trim().toLowerCase()\r\n\r\n //console.log('command', command)\r\n\r\n //console.log('watchRunState.activeRuns', watchRunState.activeRuns)\r\n // if (rerunManager.watchRunState.activeRuns > 0) return\r\n\r\n let type: RunType\r\n let testFiles: Set<string>\r\n if (command === 'r' || command === 'l') {\r\n type = 'last'\r\n testFiles = reRunManager.state.lastTestFiles\r\n } else if (command === 'a') {\r\n type = 'all'\r\n testFiles = reRunManager.state.allTestFiles\r\n } else if (command === 'f') {\r\n type = 'failed'\r\n testFiles = reRunManager.state.failedTestFiles\r\n } else {\r\n return\r\n }\r\n\r\n //console.log('type', type)\r\n //console.log('testFiles', testFiles)\r\n\r\n if (testFiles.size === 0) {\r\n out('No suitable test files to run')\r\n return\r\n }\r\n reRunManager.requestRun(type, rerunTestsCallback(new Set(testFiles))) /// CHECK is it appropriate to copy here?\r\n \r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"injectProperties.js","sourceRoot":"","sources":["../../../src/cli/lib/injectProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,MAAM,UAAU,gBAAgB,CAC5B,WAAoB,EAAE,gBAA6B,EAAE,IAAY,EAAE,SAAiB;IAEpF,MAAM,GAAG,GAAG,SAAS,IAAI,OAAO,CAAA;IAEhC,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,eAAe,GAAG,oDAAoD,IAAI,IAAI,CAAC,CAAA;QACvF,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"injectProperties.js","sourceRoot":"","sources":["../../../src/cli/lib/injectProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAG5D,MAAM,UAAU,gBAAgB,CAC5B,WAAoB,EAAE,gBAA6B,EAAE,IAAY,EAAE,SAAiB;IAEpF,MAAM,GAAG,GAAG,SAAS,IAAI,OAAO,CAAA;IAEhC,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,eAAe,GAAG,oDAAoD,IAAI,IAAI,CAAC,CAAA;QACvF,CAAC;IACL,CAAC;AACL,CAAC","sourcesContent":["import { out as mainOut } from '../../output.js'\nimport { reservedExportKeys } from './reservedExportKeys.js'\nimport type { OutFn, TaskExports } from '../../types.js'\n\nexport function injectProperties(\n basePackage: unknown, injectProperties: TaskExports, from: string, customOut?: OutFn\n): void {\n const out = customOut ?? mainOut\n\n for (const key in injectProperties) {\n if (reservedExportKeys.includes(key)) {\n out(`Error: key '${key}' is reserved. Please do not use this key. From '${from}'.`)\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"isTest.js","sourceRoot":"","sources":["../../../src/cli/lib/isTest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"isTest.js","sourceRoot":"","sources":["../../../src/cli/lib/isTest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAA","sourcesContent":["\r\n\r\nexport const isTest = (process.env.NODE_ENV === 'test')\r\n"]}
@@ -37,7 +37,12 @@ rerunManager, rerunTestsCallback, ttyActionsOnKeypress = false, initialTestRun,
37
37
  //console.log('keypress', keypressInput)
38
38
  if (key.ctrl === true && key.name === 'c') {
39
39
  restoreRawMode();
40
- process.kill(process.pid, 'SIGINT');
40
+ // process.kill(process.pid, 'SIGINT') terminates unconditionally on Windows
41
+ // rather than raising the event, which skips the shutdown handlers and so
42
+ // skips the user's teardown. Emitting reaches them on every platform.
43
+ // Nothing listening means nobody will exit for us, so do it here.
44
+ if (!process.emit('SIGINT', 'SIGINT'))
45
+ process.exit(130);
41
46
  return;
42
47
  }
43
48
  handleUserInput(keypressInput, rerunManager, rerunTestsCallback);
@@ -1 +1 @@
1
- {"version":3,"file":"listenToUser.js","sourceRoot":"","sources":["../../../src/cli/lib/listenToUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAY,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAKrC,MAAM,CAAC,KAAK,UAAU,YAAY;AAC9B,4BAA4B;AAC5B,4BAA4B;AAC5B,YAA0B,EAC1B,kBAAqC,EACrC,oBAAoB,GAAG,KAAK,EAC5B,cAA8C,EAC9C,QAA2B,OAAO,CAAC,KAAK;IAGxC,gDAAgD;IAChD,+BAA+B;IAE/B,wFAAwF;IAExF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,2CAA2C,CAAC,CAAA;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QAEvB,qCAAqC;QAErC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAA;QAC1B,MAAM,cAAc,GAAG,GAAS,EAAE;YAC9B,+BAA+B;YAC/B,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAM;YAClC,IAAI,CAAC;gBACD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACL,qEAAqE;YACzE,CAAC;QACL,CAAC,CAAA;QAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QACnC,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAEjE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,aAAqB,EAAE,GAAQ,EAAE,EAAE;YACrD,wCAAwC;YACxC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxC,cAAc,EAAE,CAAA;gBAChB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBACnC,OAAM;YACV,CAAC;YAED,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,wCAAwC;QAExC,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAE5C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACzB,kCAAkC;YAClC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACN,CAAC;IAED,iDAAiD;IACjD,MAAM,cAAc,CAAA;IACpB,WAAW,EAAE,CAAA;IAEb,OAAM;AACV,CAAC"}
1
+ {"version":3,"file":"listenToUser.js","sourceRoot":"","sources":["../../../src/cli/lib/listenToUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAY,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAKrC,MAAM,CAAC,KAAK,UAAU,YAAY;AAC9B,4BAA4B;AAC5B,4BAA4B;AAC5B,YAA0B,EAC1B,kBAAqC,EACrC,oBAAoB,GAAG,KAAK,EAC5B,cAA8C,EAC9C,QAA2B,OAAO,CAAC,KAAK;IAGxC,gDAAgD;IAChD,+BAA+B;IAE/B,wFAAwF;IAExF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,2CAA2C,CAAC,CAAA;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QAEvB,qCAAqC;QAErC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAEzB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAA;QAC1B,MAAM,cAAc,GAAG,GAAS,EAAE;YAC9B,+BAA+B;YAC/B,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;gBAAE,OAAM;YAClC,IAAI,CAAC;gBACD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACL,qEAAqE;YACzE,CAAC;QACL,CAAC,CAAA;QAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QACnC,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAEjE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,aAAqB,EAAE,GAAQ,EAAE,EAAE;YACrD,wCAAwC;YACxC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxC,cAAc,EAAE,CAAA;gBAChB,4EAA4E;gBAC5E,0EAA0E;gBAC1E,sEAAsE;gBACtE,kEAAkE;gBAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACxD,OAAM;YACV,CAAC;YAED,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,wCAAwC;QAExC,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAE5C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACzB,kCAAkC;YAClC,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACN,CAAC;IAED,iDAAiD;IACjD,MAAM,cAAc,CAAA;IACpB,WAAW,EAAE,CAAA;IAEb,OAAM;AACV,CAAC","sourcesContent":["\nimport { createInterface, emitKeypressEvents, type Key } from 'node:readline'\nimport { showTtyHelp } from './showTtyHelp.js'\nimport { handleUserInput } from './handleUserInput.js'\nimport { ReRunManager } from './reRunManager.js'\nimport { RunTestsPromise } from './runTests.js'\nimport { out } from '../../output.js'\n\nexport type RerunTestsFactory = (testFiles: Set<string>) => () => RunTestsPromise\n\n\nexport async function listenToUser(\n //allTestFiles: Set<string>,\n //failingTests: Set<string>,\n rerunManager: ReRunManager,\n rerunTestsCallback: RerunTestsFactory,\n ttyActionsOnKeypress = false,\n initialTestRun: Promise<boolean | null> | null,\n input: NodeJS.ReadStream = process.stdin\n): Promise<void> {\n \n //console.log('initia test run', initialTestRun)\n //console.log('listen to user')\n\n //setInterval(() => console.log('active runs: ', rerunManager.state.activeRuns), 10_000)\n\n if (!input.isTTY) {\n out('No TTY available, not receiving cli input')\n return Promise.resolve()\n }\n\n if (ttyActionsOnKeypress) {\n \n //console.log('ttyActionsOnKeypress')\n\n emitKeypressEvents(input)\n\n const wasRaw = input.isRaw\n const restoreRawMode = (): void => {\n //console.log('restoreRawMode')\n if (input.isRaw === wasRaw) return\n try {\n input.setRawMode(wasRaw)\n } catch {\n // The terminal stream may already be closed during process shutdown.\n }\n }\n\n input.setRawMode(true)\n input.resume()\n input.once('close', restoreRawMode)\n if (input === process.stdin) process.once('exit', restoreRawMode)\n\n input.on('keypress', (keypressInput: string, key: Key) => {\n //console.log('keypress', keypressInput)\n if (key.ctrl === true && key.name === 'c') {\n restoreRawMode()\n // process.kill(process.pid, 'SIGINT') terminates unconditionally on Windows\n // rather than raising the event, which skips the shutdown handlers and so\n // skips the user's teardown. Emitting reaches them on every platform.\n // Nothing listening means nobody will exit for us, so do it here.\n if (!process.emit('SIGINT', 'SIGINT')) process.exit(130)\n return\n }\n\n handleUserInput(keypressInput, rerunManager, rerunTestsCallback)\n })\n } else {\n //console.log('no ttyActionsOnKeypress')\n\n const userInput = createInterface({ input })\n\n userInput.on('line', input => {\n //console.log('line input', input)\n handleUserInput(input, rerunManager, rerunTestsCallback)\n })\n }\n\n //console.log('initialTestRun 2', initialTestRun)\n await initialTestRun\n showTtyHelp()\n\n return\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../../src/cli/lib/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxF,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,cAAuB;IACpD,MAAM,YAAY,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC;QAC/C,CAAC,CAAC,MAAM,kBAAkB,CAAa,cAAc,CAAC;QACtD,CAAC,CAAC,MAAM,aAAa,CAAa,eAAe,EAAE,eAAe,CAAC,CAAA;IAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,WAAW,oBAAoB;cAC9C,qBAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;cAC/E,+CAA+C;cAC/C,kBAAkB,OAAO,wBAAwB,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,YAAY,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../../src/cli/lib/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxF,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,cAAuB;IACpD,MAAM,YAAY,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC;QAC/C,CAAC,CAAC,MAAM,kBAAkB,CAAa,cAAc,CAAC;QACtD,CAAC,CAAC,MAAM,aAAa,CAAa,eAAe,EAAE,eAAe,CAAC,CAAA;IAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,WAAW,oBAAoB;cAC9C,qBAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;cAC/E,+CAA+C;cAC/C,kBAAkB,OAAO,wBAAwB,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,YAAY,CAAA;AACvB,CAAC","sourcesContent":["import { loadConfig as sxyLoadConfig, loadConfigExact as sxyLoadConfigExact } from '../../packages/loadConfig.js'\nimport { packageName, cliName, configFileNames, configLocations } from '../../config.js'\nimport chalk from '../../packages/chalk.js'\nimport { out } from '../../output.js'\nimport type { UserConfig, UserConfigInternal } from '../../types.js'\n\nexport async function loadConfig(customLocation?: string): Promise<UserConfigInternal> {\n const configOrNull = (customLocation !== undefined)\n ? await sxyLoadConfigExact<UserConfig>(customLocation)\n : await sxyLoadConfig<UserConfig>(configFileNames, configLocations)\n\n if (!configOrNull) {\n out(chalk.orange(`[${packageName}] No config found.`\n + `\\nPlease create a ${configFileNames.map(x => `${x}.js/cjs/mjs`).join(' or ')}`\n + ' file in your project root or /config folder.'\n + `\\nOr run \\`npx ${cliName} init\\` to create one.`))\n process.exit(0)\n }\n\n return configOrNull\n}\n"]}
@@ -4,6 +4,7 @@ import { createTimeProfiler } from '../../packages/timeProfiler.js';
4
4
  import '../../packages/esmReload.js'; // registers the test module reload hook
5
5
  import { showTimeProfiling } from '../../config.js';
6
6
  import { debug } from '../../output.js';
7
+ import { captureLogs } from './consoleCapture.js';
7
8
  const { timeProfileAsync } = createTimeProfiler(showTimeProfiling);
8
9
  let loading = null;
9
10
  let importIteration = 1;
@@ -25,36 +26,25 @@ export async function loadTestFile(config, testFile, refresh = 'refresh') {
25
26
  };
26
27
  const testFileFullUrl = 'file://' + join(projectDir, testFile);
27
28
  const test = { file: testFile };
28
- const capturingConsoleLog = config.execution.files === 'sequential';
29
29
  //// capture console.log output
30
- let previousConsoleLog;
31
30
  const logs = [];
32
- if (capturingConsoleLog) {
33
- previousConsoleLog = console.log; // eslint-disable-line no-console
34
- console.log = (...texts) => { logs.push(texts); }; // eslint-disable-line no-console
35
- }
36
- ////
37
- try {
38
- if (refresh === 'refresh') {
39
- await importFresh(testFileFullUrl);
40
- }
41
- else {
42
- await import(testFileFullUrl);
31
+ await captureLogs(logs, async () => {
32
+ try {
33
+ if (refresh === 'refresh') {
34
+ await importFresh(testFileFullUrl);
35
+ }
36
+ else {
37
+ await import(testFileFullUrl);
38
+ }
39
+ test.describes = global.__sxy_test_runner__?.describes ?? [];
40
+ test.error = false;
43
41
  }
44
- test.describes = global.__sxy_test_runner__?.describes ?? [];
45
- test.error = false;
46
- }
47
- catch (e) {
48
- test.error = `Error loading file\n${String(e)}`;
49
- }
50
- finally {
51
- test.logs = logs;
52
- //// restore previous console.log function
53
- if (capturingConsoleLog && previousConsoleLog) {
54
- console.log = previousConsoleLog; // eslint-disable-line no-console
42
+ catch (e) {
43
+ test.error = `Error loading file\n${String(e)}`;
55
44
  }
56
- ////
57
- }
45
+ });
46
+ test.logs = logs;
47
+ ////
58
48
  return test;
59
49
  });
60
50
  loading = loadPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"loadTestFile.js","sourceRoot":"","sources":["../../../src/cli/lib/loadTestFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadTestFile.js","sourceRoot":"","sources":["../../../src/cli/lib/loadTestFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,6BAA6B,CAAA,CAAC,wCAAwC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,MAAM,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;AAElE,IAAI,OAAO,GAA6B,IAAI,CAAA;AAE5C,IAAI,eAAe,GAAG,CAAC,CAAA;AACvB,SAAS,WAAW,CAAC,MAAc;IAC/B,OAAO,MAAM,CAAC,MAAM,GAAG,kBAAkB,eAAe,EAAE,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAmB,EACnB,QAAgB,EAChB,UAAgC,SAAS;IAEzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAA,mEAAmE,CAAC,CAAA;QACtF,MAAM,OAAO,CAAA;QACb,KAAK,CAAC,KAAK,CAAC,MAAM,CAAA,iDAAiD,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QAEhC,qCAAqC;QACrC,MAAM,CAAC,mBAAmB,GAAG;YACzB,SAAS,EAAE,EAAE;YACb,eAAe,EAAE,CAAC;SACrB,CAAA;QAED,MAAM,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE9D,MAAM,IAAI,GAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAEzC,+BAA+B;QAC/B,MAAM,IAAI,GAAgB,EAAE,CAAA;QAC5B,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,WAAW,CAAC,eAAe,CAAC,CAAA;gBACtC,CAAC;qBAAM,CAAC;oBACJ,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;gBACjC,CAAC;gBACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,SAAS,IAAI,EAAE,CAAA;gBAC5D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,GAAG,uBAAuB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YACnD,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI;QAEJ,OAAO,IAAI,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,WAAW,CAAA;IAErB,OAAO,MAAM,WAAW,CAAA;AAC5B,CAAC","sourcesContent":["import { join } from 'path'\nimport chalk from '../../packages/chalk.js'\nimport { createTimeProfiler } from '../../packages/timeProfiler.js'\nimport '../../packages/esmReload.js' // registers the test module reload hook\n\nimport { showTimeProfiling } from '../../config.js'\nimport { debug } from '../../output.js'\nimport { captureLogs } from './consoleCapture.js'\nimport type { FinalConfig, TestFile } from '../../types.js'\n\nconst { timeProfileAsync } = createTimeProfiler(showTimeProfiling)\n\nlet loading: Promise<TestFile> | null = null\n\nlet importIteration = 1\nfunction importFresh(target: string): Promise<unknown> {\n return import(target + `?sxyt-instance=${importIteration++}`)\n}\n\nexport async function loadTestFile(\n config: FinalConfig,\n testFile: string,\n refresh: 'refresh' | 'cached' = 'refresh'\n): Promise<TestFile> {\n if (loading !== null) {\n debug(chalk.yellow`loadTestFile - another file is loading - waiting for it to finish`)\n await loading\n debug(chalk.yellow`previous file complete - will now load the file`)\n }\n\n const loadPromise = timeProfileAsync(`load test ${testFile}`, async () => {\n const projectDir = process.cwd()\n\n // eslint-disable-next-line camelcase\n global.__sxy_test_runner__ = {\n describes: [],\n describeCounter: 1\n }\n\n const testFileFullUrl = 'file://' + join(projectDir, testFile)\n\n const test: TestFile = { file: testFile }\n\n //// capture console.log output\n const logs: unknown[][] = []\n await captureLogs(logs, async () => {\n try {\n if (refresh === 'refresh') {\n await importFresh(testFileFullUrl)\n } else {\n await import(testFileFullUrl)\n }\n test.describes = global.__sxy_test_runner__?.describes ?? []\n test.error = false\n } catch (e) {\n test.error = `Error loading file\\n${String(e)}`\n }\n })\n test.logs = logs\n ////\n\n return test\n })\n\n loading = loadPromise\n\n return await loadPromise\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"makeWatchRunState.js","sourceRoot":"","sources":["../../../src/cli/lib/makeWatchRunState.ts"],"names":[],"mappings":"AAcA,gBAAgB;AAEhB,MAAM,UAAU,mBAAmB,CAAC,YAAuB,EAAE;IACzD,MAAM,CAAC,GAAG;QACN,YAAY,EAAE,IAAI,GAAW;QAC7B,aAAa,EAAE,IAAI,GAAW;QAC9B,eAAe,EAAE,IAAI,GAAW;QAChC,aAAa,EAAE,IAAI,GAAW;QAC9B,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;KACnB,CAAA;IAED,IAAI,SAAS,CAAC,YAAY;QAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAA;IACnE,IAAI,SAAS,CAAC,eAAe;QAAE,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;IAC5E,IAAI,SAAS,CAAC,aAAa;QAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAA;IAEtE,OAAO,CAAC,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"makeWatchRunState.js","sourceRoot":"","sources":["../../../src/cli/lib/makeWatchRunState.ts"],"names":[],"mappings":"AAcA,gBAAgB;AAEhB,MAAM,UAAU,mBAAmB,CAAC,YAAuB,EAAE;IACzD,MAAM,CAAC,GAAG;QACN,YAAY,EAAE,IAAI,GAAW;QAC7B,aAAa,EAAE,IAAI,GAAW;QAC9B,eAAe,EAAE,IAAI,GAAW;QAChC,aAAa,EAAE,IAAI,GAAW;QAC9B,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;KACnB,CAAA;IAED,IAAI,SAAS,CAAC,YAAY;QAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAA;IACnE,IAAI,SAAS,CAAC,eAAe;QAAE,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;IAC5E,IAAI,SAAS,CAAC,aAAa;QAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAA;IAEtE,OAAO,CAAC,CAAA;AACZ,CAAC","sourcesContent":["\r\n\r\nexport type Overrides = Partial<Pick<ReRunManageState, 'allTestFiles' | 'failedTestFiles' | 'lastTestFiles'>>\r\n\r\nexport type ReRunManageState = {\r\n allTestFiles: Set<string>\r\n lastTestFiles: Set<string>\r\n failedTestFiles: Set<string>\r\n untestedFiles: Set<string>\r\n activeRuns: number // N/A\r\n currentRun: Promise<boolean | null> | null // N/A - manager\r\n}\r\n\r\n\r\n// lastTestFiles\r\n\r\nexport function makeRunManagerState(overrides: Overrides = {}): ReRunManageState {\r\n const s = {\r\n allTestFiles: new Set<string>,\r\n lastTestFiles: new Set<string>,\r\n failedTestFiles: new Set<string>,\r\n untestedFiles: new Set<string>,\r\n activeRuns: 0,\r\n currentRun: null,\r\n }\r\n\r\n if (overrides.allTestFiles) s.allTestFiles = overrides.allTestFiles\r\n if (overrides.failedTestFiles) s.failedTestFiles = overrides.failedTestFiles\r\n if (overrides.lastTestFiles) s.lastTestFiles = overrides.lastTestFiles\r\n\r\n return s\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"parseCommandLineArguments.js","sourceRoot":"","sources":["../../../src/cli/lib/parseCommandLineArguments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseCommandLineArguments.js","sourceRoot":"","sources":["../../../src/cli/lib/parseCommandLineArguments.ts"],"names":[],"mappings":"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","sourcesContent":["// watch:\n// once:\n// // --config configLocation\n\n\nimport { reduce as objectReduce } from 'sxy-lib/objects.js'\nimport { packageName } from '../../config.js'\nimport { log } from '../../output.js'\nimport type { AllowedArguments, ParsedArguments } from '../../types.js'\n\nimport { getAllowedFlags } from './getAllowedFlags.js'\nimport chalk from '../../packages/chalk.js'\n\nexport function parseCommandLineArguments(allowedArguments: AllowedArguments): ParsedArguments {\n const allowedFlags = getAllowedFlags(allowedArguments)\n\n const returnArgs: ParsedArguments = {}\n\n for (let position = 0; position < __sxyt_commandLineArguments.length; position++) {\n const arg = __sxyt_commandLineArguments[position]\n if (arg === undefined) continue\n if (arg.slice(0, 2) === '--') {\n const longFlag = arg.slice(2)\n const allowedArgument = allowedArguments[longFlag]\n if (allowedArgument) {\n if (allowedArgument.hasValue) {\n const value = __sxyt_commandLineArguments[++position]\n if (value !== undefined) returnArgs[longFlag] = value\n } else {\n returnArgs[longFlag] = true\n }\n } else {\n log(chalk.mediumred(`[${packageName}] Unknown option --${longFlag}`))\n if (\n longFlag.length === 1\n && objectReduce(\n allowedArguments,\n (prev: boolean, _key: string, value: {\n flag?: string\n hasValue: boolean\n }) => {\n if (value.flag === longFlag) return true\n return prev\n },\n false\n )\n ) {\n log(chalk.mediumred(`I think you meant -${longFlag}`))\n }\n }\n } else if (arg.slice(0, 1) === '-') {\n const shortFlag = arg.slice(1)\n const longFlag = allowedFlags[shortFlag]\n if (longFlag !== undefined) {\n if (longFlag in returnArgs) {\n log(chalk.orange(\n `[${packageName}] Option --${longFlag} already set, being overwritten by -${shortFlag}`\n ))\n }\n\n const allowedArgument = allowedArguments[longFlag]\n if (allowedArgument?.hasValue === true) {\n const value = __sxyt_commandLineArguments[++position]\n if (value !== undefined) returnArgs[longFlag] = value\n } else {\n returnArgs[longFlag] = true\n }\n } else {\n log(chalk.mediumred(`[${packageName}] Unknown flag -${shortFlag}`))\n if (shortFlag.length > 1 && shortFlag in allowedArguments) {\n log(chalk.mediumred(`I think you meant --${shortFlag}`))\n }\n }\n }\n }\n\n return returnArgs\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"parseDescribe.js","sourceRoot":"","sources":["../../../src/cli/lib/parseDescribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseDescribe.js","sourceRoot":"","sources":["../../../src/cli/lib/parseDescribe.ts"],"names":[],"mappings":"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","sourcesContent":["import { timeProfileAsync } from './timeProfier.js'\nimport { runTasks } from './runTasks.js'\nimport { addExports } from './addExports.js'\n\nimport type { FinalConfig, Describe, DescribeParcel, It, ParsedDescribe, TaskExports } from '../../types.js'\n\nexport function parseDescribe(\n config: FinalConfig,\n describe: Describe,\n itFilter?: string\n): Promise<ParsedDescribe> {\n return timeProfileAsync(`parse its from describe ${describe.thing}`, async () => {\n let itCounter = 1\n const its: It[] = []\n\n // create functions to pass back\n\n // afterDescribe\n let afterDescribeFunc: (() => void | Promise<void>) | undefined\n function afterDescribe(func: () => void | Promise<void>): void {\n if (typeof func !== 'function') {\n throw new Error('afterDescribe() error, argument passed to afterDescribe() must be a function,'\n + ` received ${typeof func}`)\n }\n afterDescribeFunc = func\n }\n\n // beforeEachTest\n let beforeEachTestFunc: (() => TaskExports | void | Promise<TaskExports | void>) | undefined\n function beforeEachTest(func: () => TaskExports | void | Promise<TaskExports | void>): void {\n if (typeof func !== 'function') {\n throw new Error('afterDescribe() error, argument passed to afterDescribe() must be a function,'\n + ` received ${typeof func}`)\n }\n beforeEachTestFunc = func\n }\n\n // afterEachTest\n let afterEachTestFunc: (() => void | Promise<void>) | undefined\n function afterEachTest(func: () => void | Promise<void>): void {\n if (typeof func !== 'function') {\n throw new Error('afterDescribe() error, argument passed to afterDescribe() must be a function,'\n + ` received ${typeof func}`)\n }\n afterEachTestFunc = func\n }\n\n // it\n function it(should: string, test: It['test']): void {\n const thisItCounter = itCounter++\n if (itFilter !== undefined && !should.toLowerCase().includes(itFilter.toLowerCase())) return\n its.push({\n counter: thisItCounter,\n should,\n test\n })\n }\n\n const beforeDescribeExports: TaskExports = {}\n await configBeforeEachDescribe(config, beforeDescribeExports)\n\n const describeParcel: DescribeParcel = { it, test: it, afterDescribe, beforeEachTest, afterEachTest }\n addExports(describeParcel, beforeDescribeExports)\n\n let error: unknown\n try {\n await describe.tests(describeParcel)\n } catch (e) {\n error = e\n }\n\n return {\n its,\n beforeDescribeExports,\n afterDescribeFunc,\n beforeEachTestFunc,\n afterEachTestFunc,\n error\n }\n })\n}\n\nasync function configBeforeEachDescribe(config: FinalConfig, exports: TaskExports): Promise<void> {\n if (config.beforeEachDescribe !== undefined) {\n const theExports = await runTasks(config.beforeEachDescribe, undefined)\n if (theExports) addExports(exports, theExports)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reRunManager.js","sourceRoot":"","sources":["../../../src/cli/lib/reRunManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reRunManager.js","sourceRoot":"","sources":["../../../src/cli/lib/reRunManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from 'util'\r\nimport { debug, log, out } from '../../output.js'\r\nimport { ReRunManageState } from './makeWatchRunState.js'\r\nimport type { RunTestsPromise } from './runTests.js'\r\nimport chalk from '../../packages/chalk.js'\r\n\r\nexport type RunType = 'auto' | 'all' | 'last' | 'failed'\r\n\r\ntype RunReqest = {\r\n type: RunType\r\n //tests: string[] | Set<string>\r\n callback: () => RunTestsPromise\r\n}\r\n\r\n//export type ReRunManager = ReturnType<typeof makeReRunManager>\r\n\r\nexport type ReRunManager = {\r\n state: ReRunManageState\r\n requestRun: (type: RunType, callback: () => RunTestsPromise) => void\r\n __test: {\r\n waiting: boolean\r\n queue: RunReqest[]\r\n }\r\n}\r\n\r\n\r\nexport function makeReRunManager(\r\n currentRun: RunTestsPromise | null,\r\n state: ReRunManageState,\r\n //callback: () => RunTestsPromise\r\n): ReRunManager {\r\n let queue: RunReqest[] = []\r\n let waiting = false\r\n\r\n const __test = {\r\n waiting,\r\n queue\r\n }\r\n\r\n async function processQueue() {\r\n \r\n debug('processing queue')\r\n\r\n if (waiting) return // do nothing if another processQueue is already waiting\r\n __test.waiting = waiting = true // mark that we are waiting\r\n await currentRun // wait for current run\r\n __test.waiting = waiting = false\r\n\r\n debug('done waitinng')\r\n\r\n // see if there is a request waiting\r\n debug('the queue', inspect(queue))\r\n const runReqest = queue.shift()\r\n debug('runReqest', runReqest)\r\n if (runReqest === undefined) return\r\n\r\n switch (runReqest.type) {\r\n case 'all': {\r\n out(chalk.brightblue`re-running all tests...`)\r\n break\r\n }\r\n case 'last': {\r\n out(chalk.brightblue`re-running last tests...`)\r\n break\r\n }\r\n case 'failed': {\r\n out(chalk.brightblue`re-running failed tests...`)\r\n break\r\n }\r\n case 'auto': {\r\n out(chalk.brightblue`running tests due to file changes`)\r\n break\r\n }\r\n default: throw new Error('Unrecognised run type')\r\n }\r\n\r\n // run it and save it\r\n debug('calling', runReqest.callback.toString())\r\n currentRun = runReqest.callback()\r\n state.currentRun = currentRun\r\n // wait for the run then trigger another processQueue\r\n await currentRun\r\n // if one has already been started by a run request\r\n // then this won't start a new one. This is used to\r\n // clear a queue if it has built it\r\n processQueue().catch(err => log(`processQueue threw an error: ${err}`))\r\n }\r\n\r\n return {\r\n state,\r\n requestRun(type: RunType, callback: () => RunTestsPromise) {\r\n\r\n // if it's type auto, we only want to keep one, but\r\n // we want it to include all relevant tests when it runs\r\n\r\n // if it's a human triggered type, we'll replace other\r\n // human requests, but leave the auto, so the user\r\n // can see update to changed code that would be hidden\r\n // otherwise\r\n \r\n if (type === 'auto') {\r\n __test.queue = queue = queue.filter(x => x.type !== 'auto')\r\n queue.push({\r\n type,\r\n //tests,\r\n callback\r\n })\r\n } else {\r\n __test.queue = queue = queue.filter(x => x.type === 'auto')\r\n __test.queue = queue = [{\r\n type,\r\n //tests,\r\n callback\r\n }]\r\n }\r\n debug('added to queue', inspect(queue))\r\n // see if we can run it\r\n return processQueue() //.catch(err => log(`processQueue threw an error: ${err}`))\r\n },\r\n __test\r\n }\r\n}\r\n\r\n\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reservedExportKeys.js","sourceRoot":"","sources":["../../../src/cli/lib/reservedExportKeys.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,UAAU;IACV,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,WAAW;IACX,WAAW;IACX,UAAU;CACb,CAAA"}
1
+ {"version":3,"file":"reservedExportKeys.js","sourceRoot":"","sources":["../../../src/cli/lib/reservedExportKeys.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,UAAU;IACV,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,WAAW;IACX,WAAW;IACX,UAAU;CACb,CAAA","sourcesContent":["export const reservedExportKeys = [\n 'describe',\n 'test',\n 'it',\n 'before',\n 'after',\n 'beforeEach',\n 'afterEach',\n 'beforeAll',\n 'afterAll'\n]\n"]}
@@ -1,6 +1,7 @@
1
1
  import { timeProfileAsync } from './timeProfier.js';
2
2
  import { parseDescribe } from './parseDescribe.js';
3
3
  import { runDescribeRun } from './runDescribeRun.js';
4
+ import { captureLogs } from './consoleCapture.js';
4
5
  function createDescribeErrorResult(describe, error) {
5
6
  return {
6
7
  counter: describe.counter,
@@ -17,32 +18,21 @@ function createDescribeErrorResult(describe, error) {
17
18
  }
18
19
  export function runDescribe(config, describe, itFilter) {
19
20
  return timeProfileAsync(`run describe ${describe.thing}`, async () => {
20
- // swapping the global console.log is only safe when nothing else can run concurrently,
21
- // so every enclosing level has to be sequential too, not just this one
22
- const capturingConsoleLog = config.execution.files === 'sequential'
23
- && config.execution.describes === 'sequential';
24
- let previousConsoleLog;
25
21
  const logs = [];
26
- if (capturingConsoleLog) {
27
- previousConsoleLog = console.log; // eslint-disable-line no-console
28
- console.log = (...texts) => { logs.push(texts); }; // eslint-disable-line no-console
29
- }
30
- let describeResult;
31
22
  const startTime = new Date().getTime();
32
- try {
33
- const parsedDescribe = await parseDescribe(config, describe, itFilter);
34
- describeResult = parsedDescribe.error !== undefined
35
- ? createDescribeErrorResult(describe, parsedDescribe.error)
36
- : await runDescribeRun(config, describe, parsedDescribe);
37
- }
38
- catch (e) {
39
- describeResult = createDescribeErrorResult(describe, e);
40
- }
23
+ const describeResult = await captureLogs(logs, async () => {
24
+ try {
25
+ const parsedDescribe = await parseDescribe(config, describe, itFilter);
26
+ return parsedDescribe.error !== undefined
27
+ ? createDescribeErrorResult(describe, parsedDescribe.error)
28
+ : await runDescribeRun(config, describe, parsedDescribe);
29
+ }
30
+ catch (e) {
31
+ return createDescribeErrorResult(describe, e);
32
+ }
33
+ });
41
34
  describeResult.time = new Date().getTime() - startTime;
42
35
  describeResult.logs = logs;
43
- if (capturingConsoleLog && previousConsoleLog) {
44
- console.log = previousConsoleLog; // eslint-disable-line no-console
45
- }
46
36
  return describeResult;
47
37
  });
48
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runDescribe.js","sourceRoot":"","sources":["../../../src/cli/lib/runDescribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIpD,SAAS,yBAAyB,CAAC,QAAkB,EAAE,KAAc;IACjE,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,EAAE,6BAA6B;QACtC,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE;YACd,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACZ;QACD,KAAK;KACR,CAAA;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACvB,MAAmB,EACnB,QAAkB,EAClB,QAAiB;IAEjB,OAAO,gBAAgB,CAAC,gBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACjE,uFAAuF;QACvF,uEAAuE;QACvE,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,YAAY;eAC5D,MAAM,CAAC,SAAS,CAAC,SAAS,KAAK,YAAY,CAAA;QAElD,IAAI,kBAAkD,CAAA;QACtD,MAAM,IAAI,GAAgB,EAAE,CAAA;QAC5B,IAAI,mBAAmB,EAAE,CAAC;YACtB,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAA,CAAC,iCAAiC;YAClE,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,KAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,iCAAiC;QACjG,CAAC;QAED,IAAI,cAA8B,CAAA;QAElC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;QAEtC,IAAI,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACtE,cAAc,GAAG,cAAc,CAAC,KAAK,KAAK,SAAS;gBAC/C,CAAC,CAAC,yBAAyB,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;gBAC3D,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,cAAc,GAAG,yBAAyB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC3D,CAAC;QAED,cAAc,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAA;QAEtD,cAAc,CAAC,IAAI,GAAG,IAAI,CAAA;QAC1B,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAA,CAAC,iCAAiC;QACtE,CAAC;QAED,OAAO,cAAc,CAAA;IACzB,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"runDescribe.js","sourceRoot":"","sources":["../../../src/cli/lib/runDescribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAIjD,SAAS,yBAAyB,CAAC,QAAkB,EAAE,KAAc;IACjE,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,EAAE,6BAA6B;QACtC,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE;YACd,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACZ;QACD,KAAK;KACR,CAAA;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACvB,MAAmB,EACnB,QAAkB,EAClB,QAAiB;IAEjB,OAAO,gBAAgB,CAAC,gBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,IAAI,GAAgB,EAAE,CAAA;QAE5B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;QAEtC,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,CAAC;gBACD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBACtE,OAAO,cAAc,CAAC,KAAK,KAAK,SAAS;oBACrC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;oBAC3D,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,yBAAyB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACjD,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,cAAc,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAA;QACtD,cAAc,CAAC,IAAI,GAAG,IAAI,CAAA;QAE1B,OAAO,cAAc,CAAA;IACzB,CAAC,CAAC,CAAA;AACN,CAAC","sourcesContent":["import { timeProfileAsync } from './timeProfier.js'\nimport { parseDescribe } from './parseDescribe.js'\nimport { runDescribeRun } from './runDescribeRun.js'\nimport { captureLogs } from './consoleCapture.js'\n\nimport type { FinalConfig, Describe, DescribeResult } from '../../types.js'\n\nfunction createDescribeErrorResult(describe: Describe, error: unknown): DescribeResult {\n return {\n counter: describe.counter,\n thing: describe.thing,\n success: false,\n time: 0, // overwritten by runDescribe\n itResults: [],\n itResultsSummary: {\n total: 0,\n passes: 0\n },\n error\n }\n}\n\nexport function runDescribe(\n config: FinalConfig,\n describe: Describe,\n itFilter?: string\n): Promise<DescribeResult> {\n return timeProfileAsync(`run describe ${describe.thing}`, async () => {\n const logs: unknown[][] = []\n\n const startTime = new Date().getTime()\n\n const describeResult = await captureLogs(logs, async () => {\n try {\n const parsedDescribe = await parseDescribe(config, describe, itFilter)\n return parsedDescribe.error !== undefined\n ? createDescribeErrorResult(describe, parsedDescribe.error)\n : await runDescribeRun(config, describe, parsedDescribe)\n } catch (e) {\n return createDescribeErrorResult(describe, e)\n }\n })\n\n describeResult.time = new Date().getTime() - startTime\n describeResult.logs = logs\n\n return describeResult\n })\n}\n"]}