@fncts/test 0.0.38 → 0.0.40

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 (377) hide show
  1. package/_cjs/api.cjs +16 -4
  2. package/_cjs/api.cjs.map +1 -1
  3. package/_cjs/control/AbstractRunnableSpec.cjs +6 -3
  4. package/_cjs/control/AbstractRunnableSpec.cjs.map +1 -1
  5. package/_cjs/control/Annotations/api.cjs +3 -4
  6. package/_cjs/control/Annotations/api.cjs.map +1 -1
  7. package/_cjs/control/Annotations/definition.cjs +4 -6
  8. package/_cjs/control/Annotations/definition.cjs.map +1 -1
  9. package/_cjs/control/Annotations/live.cjs +7 -5
  10. package/_cjs/control/Annotations/live.cjs.map +1 -1
  11. package/_cjs/control/Annotations.cjs +8 -8
  12. package/_cjs/control/Annotations.cjs.map +1 -1
  13. package/_cjs/control/Assertion/api.cjs +35 -33
  14. package/_cjs/control/Assertion/api.cjs.map +1 -1
  15. package/_cjs/control/Assertion/definition.cjs +3 -3
  16. package/_cjs/control/Assertion/definition.cjs.map +1 -1
  17. package/_cjs/control/Assertion.cjs +8 -8
  18. package/_cjs/control/Assertion.cjs.map +1 -1
  19. package/_cjs/control/AssertionIO/api.cjs +2 -2
  20. package/_cjs/control/AssertionIO/api.cjs.map +1 -1
  21. package/_cjs/control/AssertionIO/definition.cjs +3 -4
  22. package/_cjs/control/AssertionIO/definition.cjs.map +1 -1
  23. package/_cjs/control/AssertionIO.cjs +8 -8
  24. package/_cjs/control/AssertionIO.cjs.map +1 -1
  25. package/_cjs/control/DefaultRunnableSpec.cjs +2 -2
  26. package/_cjs/control/DefaultRunnableSpec.cjs.map +1 -1
  27. package/_cjs/control/DefaultTestReporter/definition.cjs +1 -2
  28. package/_cjs/control/DefaultTestReporter/definition.cjs.map +1 -1
  29. package/_cjs/control/DefaultTestReporter/render.cjs +29 -23
  30. package/_cjs/control/DefaultTestReporter/render.cjs.map +1 -1
  31. package/_cjs/control/DefaultTestReporter.cjs +8 -8
  32. package/_cjs/control/DefaultTestReporter.cjs.map +1 -1
  33. package/_cjs/control/FreeBooleanAlgebraIO/api.cjs +2 -2
  34. package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs +1 -2
  35. package/_cjs/control/FreeBooleanAlgebraIO/definition.cjs.map +1 -1
  36. package/_cjs/control/FreeBooleanAlgebraIO.cjs +8 -8
  37. package/_cjs/control/FreeBooleanAlgebraIO.cjs.map +1 -1
  38. package/_cjs/control/Gen/api.cjs +63 -126
  39. package/_cjs/control/Gen/api.cjs.map +1 -1
  40. package/_cjs/control/Gen.cjs +8 -8
  41. package/_cjs/control/Gen.cjs.map +1 -1
  42. package/_cjs/control/Live/definition.cjs +3 -4
  43. package/_cjs/control/Live/definition.cjs.map +1 -1
  44. package/_cjs/control/Live.cjs.map +1 -1
  45. package/_cjs/control/Sample/api.cjs +20 -19
  46. package/_cjs/control/Sample/api.cjs.map +1 -1
  47. package/_cjs/control/Sample/definition.cjs.map +1 -1
  48. package/_cjs/control/Sample.cjs +8 -8
  49. package/_cjs/control/Sample.cjs.map +1 -1
  50. package/_cjs/control/Sized/api.cjs +3 -4
  51. package/_cjs/control/Sized/api.cjs.map +1 -1
  52. package/_cjs/control/Sized/definition.cjs +3 -4
  53. package/_cjs/control/Sized/definition.cjs.map +1 -1
  54. package/_cjs/control/Sized/live.cjs +2 -2
  55. package/_cjs/control/Sized/live.cjs.map +1 -1
  56. package/_cjs/control/Sized.cjs +8 -8
  57. package/_cjs/control/Sized.cjs.map +1 -1
  58. package/_cjs/control/Spec/api.cjs +18 -34
  59. package/_cjs/control/Spec/api.cjs.map +1 -1
  60. package/_cjs/control/Spec/definition.cjs +1 -2
  61. package/_cjs/control/Spec/definition.cjs.map +1 -1
  62. package/_cjs/control/Spec.cjs +8 -8
  63. package/_cjs/control/Spec.cjs.map +1 -1
  64. package/_cjs/control/SummaryBuilder.cjs +11 -6
  65. package/_cjs/control/SummaryBuilder.cjs.map +1 -1
  66. package/_cjs/control/Test.cjs +3 -4
  67. package/_cjs/control/Test.cjs.map +1 -1
  68. package/_cjs/control/TestAnnotationRenderer/api.cjs +9 -16
  69. package/_cjs/control/TestAnnotationRenderer/api.cjs.map +1 -1
  70. package/_cjs/control/TestAnnotationRenderer/definition.cjs +3 -6
  71. package/_cjs/control/TestAnnotationRenderer/definition.cjs.map +1 -1
  72. package/_cjs/control/TestAnnotationRenderer.cjs +8 -8
  73. package/_cjs/control/TestAnnotationRenderer.cjs.map +1 -1
  74. package/_cjs/control/TestAspect/api.cjs +8 -9
  75. package/_cjs/control/TestAspect/api.cjs.map +1 -1
  76. package/_cjs/control/TestAspect.cjs +8 -8
  77. package/_cjs/control/TestAspect.cjs.map +1 -1
  78. package/_cjs/control/TestClock/api.cjs +7 -8
  79. package/_cjs/control/TestClock/api.cjs.map +1 -1
  80. package/_cjs/control/TestClock/definition.cjs +36 -36
  81. package/_cjs/control/TestClock/definition.cjs.map +1 -1
  82. package/_cjs/control/TestClock.cjs +8 -8
  83. package/_cjs/control/TestClock.cjs.map +1 -1
  84. package/_cjs/control/TestConsole/api.cjs +7 -8
  85. package/_cjs/control/TestConsole/api.cjs.map +1 -1
  86. package/_cjs/control/TestConsole/definition.cjs +14 -15
  87. package/_cjs/control/TestConsole/definition.cjs.map +1 -1
  88. package/_cjs/control/TestConsole.cjs +8 -8
  89. package/_cjs/control/TestConsole.cjs.map +1 -1
  90. package/_cjs/control/TestEnvironment.cjs +4 -6
  91. package/_cjs/control/TestEnvironment.cjs.map +1 -1
  92. package/_cjs/control/TestLogger.cjs +4 -6
  93. package/_cjs/control/TestLogger.cjs.map +1 -1
  94. package/_cjs/control/TestRandom/api.cjs +5 -8
  95. package/_cjs/control/TestRandom/api.cjs.map +1 -1
  96. package/_cjs/control/TestRandom/definition.cjs +36 -40
  97. package/_cjs/control/TestRandom/definition.cjs.map +1 -1
  98. package/_cjs/control/TestRandom.cjs +8 -8
  99. package/_cjs/control/TestRandom.cjs.map +1 -1
  100. package/_cjs/control/TestRenderer/ConsoleRenderer.cjs +4 -5
  101. package/_cjs/control/TestRenderer/ConsoleRenderer.cjs.map +1 -1
  102. package/_cjs/data/AssertionData.cjs +5 -8
  103. package/_cjs/data/AssertionData.cjs.map +1 -1
  104. package/_cjs/data/AssertionResult.cjs +3 -4
  105. package/_cjs/data/AssertionResult.cjs.map +1 -1
  106. package/_cjs/data/AssertionValue/api.cjs +2 -2
  107. package/_cjs/data/AssertionValue/api.cjs.map +1 -1
  108. package/_cjs/data/AssertionValue/definition.cjs +3 -4
  109. package/_cjs/data/AssertionValue/definition.cjs.map +1 -1
  110. package/_cjs/data/AssertionValue.cjs +8 -8
  111. package/_cjs/data/AssertionValue.cjs.map +1 -1
  112. package/_cjs/data/ExecutedSpec/api.cjs +4 -6
  113. package/_cjs/data/ExecutedSpec/api.cjs.map +1 -1
  114. package/_cjs/data/ExecutedSpec/definition.cjs.map +1 -1
  115. package/_cjs/data/ExecutedSpec.cjs +8 -8
  116. package/_cjs/data/ExecutedSpec.cjs.map +1 -1
  117. package/_cjs/data/ExecutionResult.cjs +8 -14
  118. package/_cjs/data/ExecutionResult.cjs.map +1 -1
  119. package/_cjs/data/FailureDetails.cjs.map +1 -1
  120. package/_cjs/data/FreeBooleanAlgebra/api.cjs +17 -23
  121. package/_cjs/data/FreeBooleanAlgebra/api.cjs.map +1 -1
  122. package/_cjs/data/FreeBooleanAlgebra/definition.cjs +1 -2
  123. package/_cjs/data/FreeBooleanAlgebra/definition.cjs.map +1 -1
  124. package/_cjs/data/FreeBooleanAlgebra.cjs +8 -8
  125. package/_cjs/data/FreeBooleanAlgebra.cjs.map +1 -1
  126. package/_cjs/data/GenFailureDetails.cjs.map +1 -1
  127. package/_cjs/data/LogLine/Fragment.cjs +2 -2
  128. package/_cjs/data/LogLine/Fragment.cjs.map +1 -1
  129. package/_cjs/data/LogLine/Line.cjs +5 -8
  130. package/_cjs/data/LogLine/Line.cjs.map +1 -1
  131. package/_cjs/data/LogLine/Message.cjs +7 -12
  132. package/_cjs/data/LogLine/Message.cjs.map +1 -1
  133. package/_cjs/data/LogLine/Style.cjs +8 -16
  134. package/_cjs/data/LogLine/Style.cjs.map +1 -1
  135. package/_cjs/data/LogLine/api.cjs +3 -4
  136. package/_cjs/data/LogLine/api.cjs.map +1 -1
  137. package/_cjs/data/Render/definition.cjs +3 -6
  138. package/_cjs/data/Render/definition.cjs.map +1 -1
  139. package/_cjs/data/Render.cjs +8 -8
  140. package/_cjs/data/Render.cjs.map +1 -1
  141. package/_cjs/data/RenderParam/api.cjs.map +1 -1
  142. package/_cjs/data/RenderParam/definition.cjs +1 -2
  143. package/_cjs/data/RenderParam/definition.cjs.map +1 -1
  144. package/_cjs/data/RenderParam.cjs +8 -8
  145. package/_cjs/data/RenderParam.cjs.map +1 -1
  146. package/_cjs/data/Summary.cjs.map +1 -1
  147. package/_cjs/data/TestAnnotation/api.cjs +15 -27
  148. package/_cjs/data/TestAnnotation/api.cjs.map +1 -1
  149. package/_cjs/data/TestAnnotation/definition.cjs +4 -6
  150. package/_cjs/data/TestAnnotation/definition.cjs.map +1 -1
  151. package/_cjs/data/TestAnnotation.cjs +8 -8
  152. package/_cjs/data/TestAnnotation.cjs.map +1 -1
  153. package/_cjs/data/TestAnnotationMap.cjs +2 -2
  154. package/_cjs/data/TestAnnotationMap.cjs.map +1 -1
  155. package/_cjs/data/TestArgs.cjs.map +1 -1
  156. package/_cjs/data/TestConfig.cjs +7 -12
  157. package/_cjs/data/TestConfig.cjs.map +1 -1
  158. package/_cjs/data/TestFailure.cjs +3 -4
  159. package/_cjs/data/TestFailure.cjs.map +1 -1
  160. package/_cjs/data/TestSuccess.cjs +2 -4
  161. package/_cjs/data/TestSuccess.cjs.map +1 -1
  162. package/_cjs/demo.cjs +2 -2
  163. package/_cjs/demo.cjs.map +1 -1
  164. package/_cjs/util/math.cjs +7 -14
  165. package/_cjs/util/math.cjs.map +1 -1
  166. package/_cjs/vitest.cjs +37 -29
  167. package/_cjs/vitest.cjs.map +1 -1
  168. package/_mjs/api.mjs +14 -2
  169. package/_mjs/api.mjs.map +1 -1
  170. package/_mjs/control/AbstractRunnableSpec.mjs +4 -1
  171. package/_mjs/control/AbstractRunnableSpec.mjs.map +1 -1
  172. package/_mjs/control/Annotations/live.mjs +4 -1
  173. package/_mjs/control/Annotations/live.mjs.map +1 -1
  174. package/_mjs/control/Annotations.mjs +3 -2
  175. package/_mjs/control/Annotations.mjs.map +1 -1
  176. package/_mjs/control/Assertion/api.mjs +15 -3
  177. package/_mjs/control/Assertion/api.mjs.map +1 -1
  178. package/_mjs/control/Assertion/definition.mjs +1 -1
  179. package/_mjs/control/Assertion/definition.mjs.map +1 -1
  180. package/_mjs/control/Assertion.mjs +2 -1
  181. package/_mjs/control/Assertion.mjs.map +1 -1
  182. package/_mjs/control/AssertionIO/definition.mjs.map +1 -1
  183. package/_mjs/control/AssertionIO.mjs +2 -1
  184. package/_mjs/control/AssertionIO.mjs.map +1 -1
  185. package/_mjs/control/DefaultTestReporter/render.mjs +27 -21
  186. package/_mjs/control/DefaultTestReporter/render.mjs.map +1 -1
  187. package/_mjs/control/DefaultTestReporter.mjs +2 -1
  188. package/_mjs/control/DefaultTestReporter.mjs.map +1 -1
  189. package/_mjs/control/FreeBooleanAlgebraIO.mjs +2 -1
  190. package/_mjs/control/FreeBooleanAlgebraIO.mjs.map +1 -1
  191. package/_mjs/control/Gen/api.mjs +0 -2
  192. package/_mjs/control/Gen/api.mjs.map +1 -1
  193. package/_mjs/control/Gen.mjs +3 -2
  194. package/_mjs/control/Gen.mjs.map +1 -1
  195. package/_mjs/control/Live/definition.mjs +1 -2
  196. package/_mjs/control/Live/definition.mjs.map +1 -1
  197. package/_mjs/control/Live.mjs +1 -0
  198. package/_mjs/control/Live.mjs.map +1 -1
  199. package/_mjs/control/Sample/api.mjs +10 -1
  200. package/_mjs/control/Sample/api.mjs.map +1 -1
  201. package/_mjs/control/Sample/definition.mjs.map +1 -1
  202. package/_mjs/control/Sample.mjs +2 -1
  203. package/_mjs/control/Sample.mjs.map +1 -1
  204. package/_mjs/control/Sized/live.mjs.map +1 -1
  205. package/_mjs/control/Sized.mjs +3 -2
  206. package/_mjs/control/Sized.mjs.map +1 -1
  207. package/_mjs/control/Spec/api.mjs.map +1 -1
  208. package/_mjs/control/Spec/definition.mjs.map +1 -1
  209. package/_mjs/control/Spec.mjs +2 -1
  210. package/_mjs/control/Spec.mjs.map +1 -1
  211. package/_mjs/control/SummaryBuilder.mjs +8 -2
  212. package/_mjs/control/SummaryBuilder.mjs.map +1 -1
  213. package/_mjs/control/TestAnnotationRenderer/api.mjs.map +1 -1
  214. package/_mjs/control/TestAnnotationRenderer/definition.mjs +0 -2
  215. package/_mjs/control/TestAnnotationRenderer/definition.mjs.map +1 -1
  216. package/_mjs/control/TestAnnotationRenderer.mjs +2 -1
  217. package/_mjs/control/TestAnnotationRenderer.mjs.map +1 -1
  218. package/_mjs/control/TestAspect.mjs +2 -1
  219. package/_mjs/control/TestAspect.mjs.map +1 -1
  220. package/_mjs/control/TestClock/definition.mjs +31 -28
  221. package/_mjs/control/TestClock/definition.mjs.map +1 -1
  222. package/_mjs/control/TestClock.mjs +2 -1
  223. package/_mjs/control/TestClock.mjs.map +1 -1
  224. package/_mjs/control/TestConsole/definition.mjs +11 -11
  225. package/_mjs/control/TestConsole/definition.mjs.map +1 -1
  226. package/_mjs/control/TestConsole.mjs +2 -1
  227. package/_mjs/control/TestConsole.mjs.map +1 -1
  228. package/_mjs/control/TestLogger.mjs.map +1 -1
  229. package/_mjs/control/TestRandom/definition.mjs +33 -36
  230. package/_mjs/control/TestRandom/definition.mjs.map +1 -1
  231. package/_mjs/control/TestRandom.mjs +2 -1
  232. package/_mjs/control/TestRandom.mjs.map +1 -1
  233. package/_mjs/control/TestRenderer/ConsoleRenderer.mjs +1 -1
  234. package/_mjs/control/TestRenderer/ConsoleRenderer.mjs.map +1 -1
  235. package/_mjs/data/AssertionData.mjs.map +1 -1
  236. package/_mjs/data/AssertionValue.mjs +2 -1
  237. package/_mjs/data/AssertionValue.mjs.map +1 -1
  238. package/_mjs/data/ExecutedSpec/definition.mjs +0 -2
  239. package/_mjs/data/ExecutedSpec/definition.mjs.map +1 -1
  240. package/_mjs/data/ExecutedSpec.mjs +2 -1
  241. package/_mjs/data/ExecutedSpec.mjs.map +1 -1
  242. package/_mjs/data/ExecutionResult.mjs.map +1 -1
  243. package/_mjs/data/FailureDetails.mjs.map +1 -1
  244. package/_mjs/data/FreeBooleanAlgebra/api.mjs +6 -3
  245. package/_mjs/data/FreeBooleanAlgebra/api.mjs.map +1 -1
  246. package/_mjs/data/FreeBooleanAlgebra/definition.mjs +0 -4
  247. package/_mjs/data/FreeBooleanAlgebra/definition.mjs.map +1 -1
  248. package/_mjs/data/FreeBooleanAlgebra.mjs +2 -1
  249. package/_mjs/data/FreeBooleanAlgebra.mjs.map +1 -1
  250. package/_mjs/data/GenFailureDetails.mjs.map +1 -1
  251. package/_mjs/data/LogLine/Fragment.mjs.map +1 -1
  252. package/_mjs/data/LogLine/Line.mjs.map +1 -1
  253. package/_mjs/data/LogLine/Message.mjs.map +1 -1
  254. package/_mjs/data/Render/definition.mjs +0 -2
  255. package/_mjs/data/Render/definition.mjs.map +1 -1
  256. package/_mjs/data/Render.mjs +2 -1
  257. package/_mjs/data/Render.mjs.map +1 -1
  258. package/_mjs/data/RenderParam/api.mjs.map +1 -1
  259. package/_mjs/data/RenderParam/definition.mjs +0 -2
  260. package/_mjs/data/RenderParam/definition.mjs.map +1 -1
  261. package/_mjs/data/RenderParam.mjs +2 -1
  262. package/_mjs/data/RenderParam.mjs.map +1 -1
  263. package/_mjs/data/Summary.mjs.map +1 -1
  264. package/_mjs/data/TestAnnotation/api.mjs +1 -1
  265. package/_mjs/data/TestAnnotation/api.mjs.map +1 -1
  266. package/_mjs/data/TestAnnotation.mjs +2 -1
  267. package/_mjs/data/TestAnnotation.mjs.map +1 -1
  268. package/_mjs/data/TestAnnotationMap.mjs +1 -2
  269. package/_mjs/data/TestAnnotationMap.mjs.map +1 -1
  270. package/_mjs/data/TestArgs.mjs +1 -0
  271. package/_mjs/data/TestArgs.mjs.map +1 -1
  272. package/_mjs/data/TestConfig.mjs.map +1 -1
  273. package/_mjs/data/TestFailure.mjs +0 -2
  274. package/_mjs/data/TestFailure.mjs.map +1 -1
  275. package/_mjs/data/TestSuccess.mjs +0 -2
  276. package/_mjs/data/TestSuccess.mjs.map +1 -1
  277. package/_mjs/util/math.mjs +0 -2
  278. package/_mjs/util/math.mjs.map +1 -1
  279. package/_mjs/vitest.mjs +21 -11
  280. package/_mjs/vitest.mjs.map +1 -1
  281. package/_src/api.ts +16 -16
  282. package/_src/control/AbstractRunnableSpec.ts +4 -4
  283. package/_src/control/Annotations/live.ts +4 -4
  284. package/_src/control/Annotations.ts +3 -2
  285. package/_src/control/Assertion/api.ts +16 -8
  286. package/_src/control/Assertion/definition.ts +4 -1
  287. package/_src/control/Assertion.ts +2 -1
  288. package/_src/control/AssertionIO/definition.ts +4 -1
  289. package/_src/control/AssertionIO.ts +2 -1
  290. package/_src/control/DefaultTestReporter/render.ts +10 -11
  291. package/_src/control/DefaultTestReporter.ts +2 -1
  292. package/_src/control/FreeBooleanAlgebraIO.ts +2 -1
  293. package/_src/control/Gen/api.ts +4 -4
  294. package/_src/control/Gen.ts +3 -2
  295. package/_src/control/Live.ts +1 -0
  296. package/_src/control/Sample/api.ts +12 -12
  297. package/_src/control/Sample/definition.ts +4 -1
  298. package/_src/control/Sample.ts +2 -1
  299. package/_src/control/Sized.ts +3 -2
  300. package/_src/control/Spec/definition.ts +12 -3
  301. package/_src/control/Spec.ts +2 -1
  302. package/_src/control/SummaryBuilder.ts +8 -8
  303. package/_src/control/TestAnnotationRenderer.ts +2 -1
  304. package/_src/control/TestAspect.ts +2 -1
  305. package/_src/control/TestClock/definition.ts +13 -6
  306. package/_src/control/TestClock.ts +2 -1
  307. package/_src/control/TestConsole/definition.ts +5 -1
  308. package/_src/control/TestConsole.ts +2 -1
  309. package/_src/control/TestRandom/definition.ts +4 -1
  310. package/_src/control/TestRandom.ts +2 -1
  311. package/_src/control/TestRenderer/ConsoleRenderer.ts +1 -1
  312. package/_src/control.ts +21 -23
  313. package/_src/data/AssertionData.ts +4 -1
  314. package/_src/data/AssertionValue.ts +2 -1
  315. package/_src/data/ExecutedSpec/definition.ts +8 -2
  316. package/_src/data/ExecutedSpec.ts +2 -1
  317. package/_src/data/FailureDetails.ts +4 -1
  318. package/_src/data/FreeBooleanAlgebra/api.ts +5 -5
  319. package/_src/data/FreeBooleanAlgebra/definition.ts +8 -2
  320. package/_src/data/FreeBooleanAlgebra.ts +2 -1
  321. package/_src/data/GenFailureDetails.ts +5 -1
  322. package/_src/data/LogLine/Fragment.ts +4 -1
  323. package/_src/data/LogLine/Line.ts +4 -1
  324. package/_src/data/Render/definition.ts +9 -2
  325. package/_src/data/Render.ts +2 -1
  326. package/_src/data/RenderParam.ts +2 -1
  327. package/_src/data/Summary.ts +6 -1
  328. package/_src/data/TestAnnotation/api.ts +6 -6
  329. package/_src/data/TestAnnotation.ts +2 -1
  330. package/_src/data/TestArgs.ts +1 -0
  331. package/_src/data.ts +19 -18
  332. package/_src/index.ts +7 -6
  333. package/_src/util.ts +1 -0
  334. package/_src/vitest.ts +26 -15
  335. package/api.d.ts +5 -5
  336. package/control/AbstractRunnableSpec.d.ts +1 -1
  337. package/control/Annotations/definition.d.ts +1 -1
  338. package/control/Annotations.d.ts +2 -2
  339. package/control/Assertion/api.d.ts +2 -0
  340. package/control/Assertion.d.ts +1 -1
  341. package/control/AssertionIO.d.ts +1 -1
  342. package/control/DefaultTestReporter.d.ts +1 -1
  343. package/control/FreeBooleanAlgebraIO/api.d.ts +2 -2
  344. package/control/FreeBooleanAlgebraIO.d.ts +1 -1
  345. package/control/Gen/api.d.ts +13 -13
  346. package/control/Gen.d.ts +2 -2
  347. package/control/Live/definition.d.ts +2 -2
  348. package/control/Sample/api.d.ts +6 -6
  349. package/control/Sample.d.ts +1 -1
  350. package/control/Sized/api.d.ts +1 -1
  351. package/control/Sized/definition.d.ts +1 -1
  352. package/control/Sized.d.ts +2 -2
  353. package/control/Spec/api.d.ts +9 -9
  354. package/control/Spec.d.ts +1 -1
  355. package/control/TestAnnotationRenderer.d.ts +1 -1
  356. package/control/TestAspect.d.ts +1 -1
  357. package/control/TestClock/definition.d.ts +1 -1
  358. package/control/TestClock.d.ts +1 -1
  359. package/control/TestConsole/definition.d.ts +1 -1
  360. package/control/TestConsole.d.ts +1 -1
  361. package/control/TestLogger.d.ts +1 -1
  362. package/control/TestRandom/api.d.ts +1 -1
  363. package/control/TestRandom/definition.d.ts +1 -1
  364. package/control/TestRandom.d.ts +1 -1
  365. package/control.d.ts +20 -23
  366. package/data/AssertionValue.d.ts +1 -1
  367. package/data/ExecutedSpec.d.ts +1 -1
  368. package/data/FreeBooleanAlgebra.d.ts +1 -1
  369. package/data/Render.d.ts +1 -1
  370. package/data/RenderParam.d.ts +1 -1
  371. package/data/TestAnnotation/api.d.ts +6 -6
  372. package/data/TestAnnotation.d.ts +1 -1
  373. package/data/TestConfig.d.ts +1 -1
  374. package/data.d.ts +18 -18
  375. package/index.d.ts +5 -5
  376. package/package.json +4 -4
  377. package/vitest.d.ts +11 -5
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./TestAspect/*.ts }
2
- export * from "./TestAspect/api.js";
3
3
  export * from "./TestAspect/definition.js";
4
+ export * from "./TestAspect/api.js";
4
5
  // codegen:end
@@ -8,11 +8,18 @@ import { FiberStatusTag } from "@fncts/io/FiberStatus";
8
8
  import { TestAnnotation } from "@fncts/test/data/TestAnnotation";
9
9
 
10
10
  export class Data {
11
- constructor(readonly duration: number, readonly sleeps: List<readonly [number, Future<never, void>]>) {}
11
+ constructor(
12
+ readonly duration: number,
13
+ readonly sleeps: List<readonly [number, Future<never, void>]>,
14
+ ) {}
12
15
  }
13
16
 
14
17
  export class Sleep {
15
- constructor(readonly duration: number, readonly promise: Future<never, void>, readonly fiberId: FiberId) {}
18
+ constructor(
19
+ readonly duration: number,
20
+ readonly promise: Future<never, void>,
21
+ readonly fiberId: FiberId,
22
+ ) {}
16
23
  }
17
24
 
18
25
  interface Start {
@@ -98,13 +105,13 @@ export class TestClock extends Clock {
98
105
  get supervizedFibers(): UIO<HashSet<Fiber.Runtime<any, any>>> {
99
106
  return IO.fiberId.flatMap((fiberId) =>
100
107
  this.annotations.get(TestAnnotation.Fibers).flatMap((_) =>
101
- _.match(
102
- (_) => IO.succeed(HashSet.empty()),
103
- (fibers) =>
108
+ _.match({
109
+ Left: (_) => IO.succeed(HashSet.empty()),
110
+ Right: (fibers) =>
104
111
  IO.foreach(fibers, (ref) => ref.get)
105
112
  .map((_) => _.foldLeft(HashSet.empty<Fiber.Runtime<any, any>>(), (s0, s1) => s0.union(s1)))
106
113
  .map((set) => set.filter((f) => !Equatable.strictEquals(f.id, fiberId))),
107
- ),
114
+ }),
108
115
  ),
109
116
  );
110
117
  }
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./TestClock/*.ts }
2
- export * from "./TestClock/api.js";
3
3
  export * from "./TestClock/definition.js";
4
+ export * from "./TestClock/api.js";
4
5
  // codegen:end
@@ -15,7 +15,11 @@ export class ConsoleData extends CaseClass<{
15
15
  * @tsplus companion fncts.test.TestConsoleOps
16
16
  */
17
17
  export class TestConsole implements Console {
18
- constructor(readonly consoleState: Ref<ConsoleData>, readonly live: Live, readonly debugState: FiberRef<boolean>) {}
18
+ constructor(
19
+ readonly consoleState: Ref<ConsoleData>,
20
+ readonly live: Live,
21
+ readonly debugState: FiberRef<boolean>,
22
+ ) {}
19
23
  show(...input: ReadonlyArray<unknown>): UIO<void> {
20
24
  return this.consoleState.update((data) =>
21
25
  data.copy({
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./TestConsole/*.ts }
2
- export * from "./TestConsole/api.js";
3
3
  export * from "./TestConsole/definition.js";
4
+ export * from "./TestConsole/api.js";
4
5
  // codegen:end
@@ -12,7 +12,10 @@ export const TestRandomTag = Tag<TestRandom>("fncts.test.TestRandom");
12
12
  * @tsplus companion fncts.test.TestRandomOps
13
13
  */
14
14
  export class TestRandom implements Random {
15
- constructor(readonly randomState: Ref<Data>, readonly bufferState: Ref<Buffer>) {}
15
+ constructor(
16
+ readonly randomState: Ref<Data>,
17
+ readonly bufferState: Ref<Buffer>,
18
+ ) {}
16
19
  clearBooleans: UIO<void> = this.bufferState.update((buff) => buff.copy({ booleans: Vector.empty() }));
17
20
  clearBytes: UIO<void> = this.bufferState.update((buff) => buff.copy({ bytes: Vector.empty() }));
18
21
  clearChars: UIO<void> = this.bufferState.update((buff) => buff.copy({ chars: Vector.empty() }));
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./TestRandom/*.ts }
2
- export * from "./TestRandom/api.js";
3
3
  export * from "./TestRandom/definition.js";
4
+ export * from "./TestRandom/api.js";
4
5
  // codegen:end
@@ -50,7 +50,7 @@ export function renderSingle(result: ExecutionResult, testAnnotationRenderer: Te
50
50
  Other: () => new Message(Vector.from(result.lines)),
51
51
  });
52
52
  const renderedAnnotations = renderAnnotations(result.annotations, testAnnotationRenderer);
53
- return renderToStringLines(output + renderedAnnotations).join("");
53
+ return renderToStringLines(output + renderedAnnotations).join("\n");
54
54
  }
55
55
 
56
56
  function renderSuite(status: Status, offset: number, message: Message) {
package/_src/control.ts CHANGED
@@ -1,26 +1,24 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: type-barrel, include: ./control/*.ts }
2
- export type {} from "./control/AbstractRunnableSpec.js";
3
- export type {} from "./control/Annotations.js";
4
- export type {} from "./control/Assertion.js";
5
- export type {} from "./control/AssertionIO.js";
6
- export type {} from "./control/DefaultRunnableSpec.js";
7
- export type {} from "./control/DefaultTestReporter.js";
8
- export type {} from "./control/FreeBooleanAlgebraIO.js";
9
- export type {} from "./control/Gen.js";
10
- export type {} from "./control/Live.js";
11
- export type {} from "./control/RunnableSpec.js";
12
- export type {} from "./control/Sample.js";
13
- export type {} from "./control/Sized.js";
14
- export type {} from "./control/Spec.js";
15
- export type {} from "./control/SummaryBuilder.js";
16
- export type {} from "./control/Test.js";
17
- export type {} from "./control/TestAnnotationRenderer.js";
18
- export type {} from "./control/TestAspect.js";
19
- export type {} from "./control/TestClock.js";
20
- export type {} from "./control/TestConsole.js";
21
- export type {} from "./control/TestEnvironment.js";
22
- export type {} from "./control/TestExecutor.js";
23
- export type {} from "./control/TestLogger.js";
24
3
  export type {} from "./control/TestRandom.js";
25
- export type {} from "./control/TestRunner.js";
4
+ export type {} from "./control/TestLogger.js";
5
+ export type {} from "./control/TestEnvironment.js";
6
+ export type {} from "./control/TestConsole.js";
7
+ export type {} from "./control/TestClock.js";
8
+ export type {} from "./control/TestAspect.js";
9
+ export type {} from "./control/TestAnnotationRenderer.js";
10
+ export type {} from "./control/Test.js";
11
+ export type {} from "./control/SummaryBuilder.js";
12
+ export type {} from "./control/Spec.js";
13
+ export type {} from "./control/Sized.js";
14
+ export type {} from "./control/Sample.js";
15
+ export type {} from "./control/Live.js";
16
+ export type {} from "./control/Gen.js";
17
+ export type {} from "./control/FreeBooleanAlgebraIO.js";
18
+ export type {} from "./control/DefaultTestReporter.js";
19
+ export type {} from "./control/DefaultRunnableSpec.js";
20
+ export type {} from "./control/AssertionIO.js";
21
+ export type {} from "./control/Assertion.js";
22
+ export type {} from "./control/Annotations.js";
23
+ export type {} from "./control/AbstractRunnableSpec.js";
26
24
  // codegen:end
@@ -11,7 +11,10 @@ export type AssertionDataTypeId = typeof AssertionDataTypeId;
11
11
  */
12
12
  export class AssertionData<A> {
13
13
  readonly [AssertionDataTypeId]: AssertionDataTypeId = AssertionDataTypeId;
14
- constructor(readonly value: A, readonly assertion: Assertion<A>) {}
14
+ constructor(
15
+ readonly value: A,
16
+ readonly assertion: Assertion<A>,
17
+ ) {}
15
18
  }
16
19
 
17
20
  /**
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./AssertionValue/*.ts }
2
- export * from "./AssertionValue/api.js";
3
3
  export * from "./AssertionValue/definition.js";
4
+ export * from "./AssertionValue/api.js";
4
5
  // codegen:end
@@ -18,12 +18,18 @@ export class ExecutedSpec<E> {
18
18
 
19
19
  export class TestCase<E> {
20
20
  readonly _tag = ExecutedSpecCaseTag.Test;
21
- constructor(readonly test: Either<TestFailure<E>, TestSuccess>, readonly annotations: TestAnnotationMap) {}
21
+ constructor(
22
+ readonly test: Either<TestFailure<E>, TestSuccess>,
23
+ readonly annotations: TestAnnotationMap,
24
+ ) {}
22
25
  }
23
26
 
24
27
  export class LabeledCase<A> {
25
28
  readonly _tag = ExecutedSpecCaseTag.Labeled;
26
- constructor(readonly label: string, readonly spec: A) {}
29
+ constructor(
30
+ readonly label: string,
31
+ readonly spec: A,
32
+ ) {}
27
33
  }
28
34
 
29
35
  export class MultipleCase<A> {
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./ExecutedSpec/*.ts }
2
- export * from "./ExecutedSpec/api.js";
3
3
  export * from "./ExecutedSpec/definition.js";
4
+ export * from "./ExecutedSpec/api.js";
4
5
  // codegen:end
@@ -9,5 +9,8 @@ import type { GenFailureDetails } from "./GenFailureDetails.js";
9
9
  export type TestResult = FreeBooleanAlgebra<FailureDetailsResult>;
10
10
 
11
11
  export class FailureDetails {
12
- constructor(readonly assertion: Cons<AssertionValue<any>>, readonly gen: Maybe<GenFailureDetails<any>>) {}
12
+ constructor(
13
+ readonly assertion: Cons<AssertionValue<any>>,
14
+ readonly gen: Maybe<GenFailureDetails<any>>,
15
+ ) {}
13
16
  }
@@ -55,8 +55,8 @@ export function failures<A>(self: FreeBooleanAlgebra<A>): Maybe<FreeBooleanAlgeb
55
55
  ? Either.right(l.right && r.right)
56
56
  : r
57
57
  : r.isRight()
58
- ? l
59
- : Either.left(l.left && r.left);
58
+ ? l
59
+ : Either.left(l.left && r.left);
60
60
  },
61
61
  Or: (l, r) => {
62
62
  Either.concrete(l);
@@ -66,12 +66,12 @@ export function failures<A>(self: FreeBooleanAlgebra<A>): Maybe<FreeBooleanAlgeb
66
66
  ? Either.right(l.right || r.right)
67
67
  : l
68
68
  : r.isRight()
69
- ? r
70
- : Either.left(l.left || r.left);
69
+ ? r
70
+ : Either.left(l.left || r.left);
71
71
  },
72
72
  Not: (v) => v.swap,
73
73
  })
74
- .match(Maybe.just, () => Nothing());
74
+ .match({ Left: Maybe.just, Right: () => Nothing() });
75
75
  }
76
76
 
77
77
  /**
@@ -12,12 +12,18 @@ export class Value<A> {
12
12
 
13
13
  export class And<A> {
14
14
  readonly _tag = FreeBooleanAlgebraTag.And;
15
- constructor(readonly left: FreeBooleanAlgebra<A>, readonly right: FreeBooleanAlgebra<A>) {}
15
+ constructor(
16
+ readonly left: FreeBooleanAlgebra<A>,
17
+ readonly right: FreeBooleanAlgebra<A>,
18
+ ) {}
16
19
  }
17
20
 
18
21
  export class Or<A> {
19
22
  readonly _tag = FreeBooleanAlgebraTag.Or;
20
- constructor(readonly left: FreeBooleanAlgebra<A>, readonly right: FreeBooleanAlgebra<A>) {}
23
+ constructor(
24
+ readonly left: FreeBooleanAlgebra<A>,
25
+ readonly right: FreeBooleanAlgebra<A>,
26
+ ) {}
21
27
  }
22
28
 
23
29
  export class Not<A> {
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./FreeBooleanAlgebra/*.ts }
2
- export * from "./FreeBooleanAlgebra/api.js";
3
3
  export * from "./FreeBooleanAlgebra/definition.js";
4
+ export * from "./FreeBooleanAlgebra/api.js";
4
5
  // codegen:end
@@ -1,3 +1,7 @@
1
1
  export class GenFailureDetails<A = any> {
2
- constructor(readonly initialInput: A, readonly shrunkenInput: A, readonly iterations: number) {}
2
+ constructor(
3
+ readonly initialInput: A,
4
+ readonly shrunkenInput: A,
5
+ readonly iterations: number,
6
+ ) {}
3
7
  }
@@ -6,7 +6,10 @@ import { Style } from "./Style.js";
6
6
  * @tsplus companion fncts.test.data.FragmentOps
7
7
  */
8
8
  export class Fragment {
9
- constructor(readonly text: string, readonly style: Style = Style.Default) {}
9
+ constructor(
10
+ readonly text: string,
11
+ readonly style: Style = Style.Default,
12
+ ) {}
10
13
  }
11
14
 
12
15
  /**
@@ -6,7 +6,10 @@ import { Message } from "./Message.js";
6
6
  * @tsplus companion fncts.test.data.LineOps
7
7
  */
8
8
  export class Line {
9
- constructor(readonly fragments: Vector<Fragment> = Vector.empty(), readonly offset = 0) {}
9
+ constructor(
10
+ readonly fragments: Vector<Fragment> = Vector.empty(),
11
+ readonly offset = 0,
12
+ ) {}
10
13
  }
11
14
 
12
15
  /**
@@ -7,7 +7,10 @@ export const enum RenderTag {
7
7
 
8
8
  export class RenderFunction {
9
9
  readonly _tag = RenderTag.Function;
10
- constructor(readonly name: string, readonly paramLists: Conc<Conc<RenderParam>>) {}
10
+ constructor(
11
+ readonly name: string,
12
+ readonly paramLists: Conc<Conc<RenderParam>>,
13
+ ) {}
11
14
  get rendered(): string {
12
15
  return `${this.name}(${this.paramLists.map((ps) => ps.map((p) => p.rendered).join(", ")).join("")})`;
13
16
  }
@@ -15,7 +18,11 @@ export class RenderFunction {
15
18
 
16
19
  export class RenderInfix {
17
20
  readonly _tag = RenderTag.Infix;
18
- constructor(readonly left: RenderParam, readonly op: string, readonly right: RenderParam) {}
21
+ constructor(
22
+ readonly left: RenderParam,
23
+ readonly op: string,
24
+ readonly right: RenderParam,
25
+ ) {}
19
26
  get rendered(): string {
20
27
  return `(${this.left.rendered} ${this.op} ${this.right.rendered})`;
21
28
  }
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./Render/*.ts }
2
- export * from "./Render/api.js";
3
3
  export * from "./Render/definition.js";
4
+ export * from "./Render/api.js";
4
5
  // codegen:end
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./RenderParam/*.ts }
2
- export * from "./RenderParam/api.js";
3
3
  export * from "./RenderParam/definition.js";
4
+ export * from "./RenderParam/api.js";
4
5
  // codegen:end
@@ -1,4 +1,9 @@
1
1
  export class Summary {
2
- constructor(readonly success: number, readonly fail: number, readonly ignore: number, readonly summary: string) {}
2
+ constructor(
3
+ readonly success: number,
4
+ readonly fail: number,
5
+ readonly ignore: number,
6
+ readonly summary: string,
7
+ ) {}
3
8
  total = this.success + this.fail + this.ignore;
4
9
  }
@@ -42,10 +42,10 @@ export const Fibers = new TestAnnotation(FibersTag, "fibers", Either.left(0), (l
42
42
  ? Either.left(left.left + right.left)
43
43
  : right
44
44
  : left.isRight()
45
- ? right.isRight()
46
- ? Either.right(left.right.concat(right.right))
47
- : right
48
- : (() => {
49
- throw new Error("absurd");
50
- })();
45
+ ? right.isRight()
46
+ ? Either.right(left.right.concat(right.right))
47
+ : right
48
+ : (() => {
49
+ throw new Error("absurd");
50
+ })();
51
51
  });
@@ -1,4 +1,5 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./TestAnnotation/*.ts }
2
- export * from "./TestAnnotation/api.js";
3
3
  export * from "./TestAnnotation/definition.js";
4
+ export * from "./TestAnnotation/api.js";
4
5
  // codegen:end
@@ -1,3 +1,4 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: barrel, include: ./TestArgs/*.ts }
2
3
  export * from "./TestArgs/definition.js";
3
4
  // codegen:end
package/_src/data.ts CHANGED
@@ -1,21 +1,22 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: type-barrel, include: ./data/*.ts }
2
- export type {} from "./data/AssertionData.js";
3
- export type {} from "./data/AssertionResult.js";
4
- export type {} from "./data/AssertionValue.js";
5
- export type {} from "./data/ExecutedSpec.js";
6
- export type {} from "./data/ExecutionResult.js";
7
- export type {} from "./data/FailureDetails.js";
8
- export type {} from "./data/FreeBooleanAlgebra.js";
9
- export type {} from "./data/GenFailureDetails.js";
10
- export type {} from "./data/LogLine.js";
11
- export type {} from "./data/Render.js";
12
- export type {} from "./data/RenderParam.js";
13
- export type {} from "./data/Summary.js";
14
- export type {} from "./data/TestAnnotation.js";
15
- export type {} from "./data/TestAnnotationMap.js";
16
- export type {} from "./data/TestArgs.js";
17
- export type {} from "./data/TestConfig.js";
18
- export type {} from "./data/TestFailure.js";
19
- export type {} from "./data/TestSuccess.js";
20
3
  export type {} from "./data/TestTimeoutException.js";
4
+ export type {} from "./data/TestSuccess.js";
5
+ export type {} from "./data/TestFailure.js";
6
+ export type {} from "./data/TestConfig.js";
7
+ export type {} from "./data/TestArgs.js";
8
+ export type {} from "./data/TestAnnotationMap.js";
9
+ export type {} from "./data/TestAnnotation.js";
10
+ export type {} from "./data/Summary.js";
11
+ export type {} from "./data/RenderParam.js";
12
+ export type {} from "./data/Render.js";
13
+ export type {} from "./data/LogLine.js";
14
+ export type {} from "./data/GenFailureDetails.js";
15
+ export type {} from "./data/FreeBooleanAlgebra.js";
16
+ export type {} from "./data/FailureDetails.js";
17
+ export type {} from "./data/ExecutionResult.js";
18
+ export type {} from "./data/ExecutedSpec.js";
19
+ export type {} from "./data/AssertionValue.js";
20
+ export type {} from "./data/AssertionResult.js";
21
+ export type {} from "./data/AssertionData.js";
21
22
  // codegen:end
package/_src/index.ts CHANGED
@@ -1,8 +1,9 @@
1
- // codegen:start { preset: type-barrel, include: ./*.ts, exclude: ./vitest.ts }
2
- export type {} from "./api.js";
3
- export type {} from "./control.js";
4
- export type {} from "./data.js";
5
- export type {} from "./demo.js";
6
- export type {} from "./global.js";
1
+ /* eslint-disable simple-import-sort/exports */
2
+ // codegen:start { preset: type-barrel, include: ./*.ts, exclude: vitest.ts }
7
3
  export type {} from "./util.js";
4
+ export type {} from "./global.js";
5
+ export type {} from "./demo.js";
6
+ export type {} from "./data.js";
7
+ export type {} from "./control.js";
8
+ export type {} from "./api.js";
8
9
  // codegen:end
package/_src/util.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable simple-import-sort/exports */
1
2
  // codegen:start { preset: type-barrel, include: ./util/*.ts }
2
3
  export type {} from "./util/math.js";
3
4
  // codegen:end
package/_src/vitest.ts CHANGED
@@ -1,17 +1,15 @@
1
1
  import type { AssertionValue } from "@fncts/test/data/AssertionValue";
2
2
  import type { TestResult } from "@fncts/test/data/FailureDetails";
3
3
 
4
- import { identity } from "@fncts/base/data/function";
5
4
  import { check, checkAllConcurrently, checkAllIOConcurrently, checkIO } from "@fncts/test/api";
5
+ import { Assertion } from "@fncts/test/control/Assertion";
6
6
  import { renderFragment } from "@fncts/test/control/DefaultTestReporter";
7
- import { Gen } from "@fncts/test/control/Gen";
8
7
  import { TestAnnotationRenderer } from "@fncts/test/control/TestAnnotationRenderer";
9
8
  import { TestEnvironment } from "@fncts/test/control/TestEnvironment";
10
9
  import { ConsoleRenderer } from "@fncts/test/control/TestRenderer/ConsoleRenderer";
11
10
  import { Failed, Passed, rendered, Test } from "@fncts/test/data/ExecutionResult";
12
- import { TestConfig } from "@fncts/test/data/TestConfig";
11
+ import { RenderParam } from "@fncts/test/data/RenderParam";
13
12
  import * as V from "vitest";
14
- import { GenerateStackTrace } from "@fncts/io/IO";
15
13
 
16
14
  export const describe = V.describe;
17
15
 
@@ -26,15 +24,21 @@ export const it = (() => {
26
24
  if (result.isFailure) {
27
25
  const lines = (assertionValues: Cons<AssertionValue<any>>) =>
28
26
  assertionValues.flatMap((value) => List.from(renderFragment(value, 0).lines));
29
- const renderedResult = ConsoleRenderer.renderSingle(
30
- result.invert.fold({
31
- Value: (details) => rendered(Test, "", Failed, 0, lines(details.failureDetails.assertion)),
32
- And: (l, r) => l && r,
33
- Or: (l, r) => l || r,
34
- Not: (v) => v.invert,
35
- }),
36
- TestAnnotationRenderer.Default,
37
- );
27
+
28
+ const renderedResult = result.failures
29
+ .map((failures) =>
30
+ ConsoleRenderer.renderSingle(
31
+ failures.fold({
32
+ Value: (details) => rendered(Test, "", Failed, 0, lines(details.failureDetails.assertion)),
33
+ And: (l, r) => l && r,
34
+ Or: (l, r) => l || r,
35
+ Not: (v) => v.invert,
36
+ }),
37
+ TestAnnotationRenderer.Default,
38
+ ),
39
+ )
40
+ .getOrElse("Unknown Test Failure");
41
+
38
42
  const error = new Error(renderedResult);
39
43
  error.stack = undefined;
40
44
  throw error;
@@ -53,7 +57,7 @@ export const it = (() => {
53
57
  if (result.isFailure) {
54
58
  const lines = (assertionValues: Cons<AssertionValue<any>>) => {
55
59
  return assertionValues.flatMap((value) => List.from(renderFragment(value, 0).lines));
56
- }
60
+ };
57
61
  const renderedResult = ConsoleRenderer.renderSingle(
58
62
  result.fold({
59
63
  Value: (details) => rendered(Test, "", Passed, 0, lines(details.failureDetails.assertion)),
@@ -92,7 +96,7 @@ export const it = (() => {
92
96
  checkAllIO: checkAllIOConcurrently,
93
97
  io: Object.assign(itIO, {
94
98
  scoped: <E>(name: string, io: Lazy<IO<TestEnvironment | Scope, E, TestResult>>, timeout = 5_000) => {
95
- return itIO(name, io().scoped, timeout)
99
+ return itIO(name, io().scoped, timeout);
96
100
  },
97
101
  skip: <E>(name: string, io: Lazy<IO<TestEnvironment, E, TestResult>>, timeout = 5_000) => {
98
102
  return V.it.skip(name, () => runTestIO(io), timeout);
@@ -105,3 +109,10 @@ export const it = (() => {
105
109
  })();
106
110
 
107
111
  export const test = it;
112
+
113
+ /**
114
+ * @tsplus static fncts.test.AssertionOps calledTimes
115
+ */
116
+ export function calledTimes(times: number): Assertion<V.Mock> {
117
+ return Assertion.make("calledTimes", [RenderParam(times)], (mock) => mock.mock.calls.length === times);
118
+ }
package/api.d.ts CHANGED
@@ -20,7 +20,7 @@ export declare function assert<A>(assertion: Assertion<A>): (value: A) => TestRe
20
20
  * @tsplus pipeable fncts.io.IO assertIO
21
21
  * @tsplus location "@fncts/test/api"
22
22
  */
23
- export declare function assertIO<A>(assertion: AssertionIO<A>): <R, E>(io: import("@fncts/io/IO.js").IO<R, E, A>) => import("@fncts/io/IO.js").IO<R, E, TestResult>;
23
+ export declare function assertIO<A>(assertion: AssertionIO<A>): <R, E>(io: IO<R, E, A>) => IO<R, E, TestResult>;
24
24
  export declare function suite<Specs extends ReadonlyArray<Spec<any, any>>>(label: string, ...specs: Specs): Spec<_R<Specs[number]>, _E<Specs[number]>>;
25
25
  export declare function testIO<R, E>(label: string, assertion: Lazy<IO<R, E, TestResult>>): Spec<R, E>;
26
26
  export declare function test(label: string, assertion: Lazy<TestResult>): Spec<never, never>;
@@ -28,19 +28,19 @@ export declare function test(label: string, assertion: Lazy<TestResult>): Spec<n
28
28
  * @tsplus pipeable fncts.test.Gen check
29
29
  * @tsplus location "@fncts/test/api"
30
30
  */
31
- export declare function check<A>(test: (a: A) => TestResult): <R>(rv: Gen<R, A>) => import("@fncts/io/IO.js").IO<TestConfig | R, never, TestResult>;
31
+ export declare function check<A>(test: (a: A) => TestResult): <R>(rv: Gen<R, A>) => IO<R | TestConfig, never, TestResult>;
32
32
  /**
33
33
  * @tsplus pipeable fncts.test.Gen check
34
34
  * @tsplus location "@fncts/test/api"
35
35
  */
36
- export declare function checkIO<A, R1, E>(test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) => import("@fncts/io/IO.js").IO<TestConfig | R1 | R, E, TestResult>;
36
+ export declare function checkIO<A, R1, E>(test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) => IO<R | R1 | TestConfig, E, TestResult>;
37
37
  /**
38
38
  * @tsplus pipeable fncts.test.Gen checkAllConcurrently
39
39
  * @tsplus location "@fncts/test/api"
40
40
  */
41
- export declare function checkAllConcurrently<A>(concurrency: number, test: (a: A) => TestResult): <R>(rv: Gen<R, A>) => import("@fncts/io/IO.js").IO<TestConfig | R, never, TestResult>;
41
+ export declare function checkAllConcurrently<A>(concurrency: number, test: (a: A) => TestResult): <R>(rv: Gen<R, A>) => IO<R | TestConfig, never, TestResult>;
42
42
  /**
43
43
  * @tsplus pipeable fncts.test.Gen checkAllConcurrently
44
44
  * @tsplus location "@fncts/test/api"
45
45
  */
46
- export declare function checkAllIOConcurrently<A, R1, E>(concurrency: number, test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) => import("@fncts/io/IO.js").IO<TestConfig | R1 | R, E, TestResult>;
46
+ export declare function checkAllIOConcurrently<A, R1, E>(concurrency: number, test: (a: A) => IO<R1, E, TestResult>): <R>(rv: Gen<R, A>) => IO<R | R1 | TestConfig, E, TestResult>;
@@ -23,4 +23,4 @@ export declare abstract class AbstractRunnableSpec<R, E> {
23
23
  * @tsplus pipeable-operator fncts.test.AbstractRunnableSpec +
24
24
  * @tsplus location "@fncts/test/control/AbstractRunnableSpec"
25
25
  */
26
- export declare function combine<R1, E1>(that: AbstractRunnableSpec<R1, E1>): <R, E>(self: AbstractRunnableSpec<R, E>) => AbstractRunnableSpec<R1 | R, E1 | E>;
26
+ export declare function combine<R1, E1>(that: AbstractRunnableSpec<R1, E1>): <R, E>(self: AbstractRunnableSpec<R, E>) => AbstractRunnableSpec<R | R1, E | E1>;
@@ -21,4 +21,4 @@ export declare abstract class Annotations {
21
21
  * @tsplus static fncts.test.AnnotationsOps Tag
22
22
  * @tsplus location "@fncts/test/control/Annotations/definition"
23
23
  */
24
- export declare const AnnotationsTag: import("@fncts/base/data/Tag.js").Tag<Annotations>;
24
+ export declare const AnnotationsTag: import("@fncts/base/data/Tag.js").Tag<Annotations, Annotations>;
@@ -1,3 +1,3 @@
1
- export * from "./Annotations/api.js";
2
- export * from "./Annotations/definition.js";
3
1
  export * from "./Annotations/live.js";
2
+ export * from "./Annotations/definition.js";
3
+ export * from "./Annotations/api.js";
@@ -65,6 +65,7 @@ export declare const isTrue: Assertion<boolean>;
65
65
  export declare const isEmpty: Assertion<Iterable<any>>;
66
66
  export declare const isUnit: Assertion<void>;
67
67
  export declare function isLessThanOrEqualTo(n: number): Assertion<number>;
68
+ export declare function isGreaterThanOrEqualTo(n: number): Assertion<number>;
68
69
  /**
69
70
  * @tsplus pipeable fncts.test.Assertion label
70
71
  * @tsplus location "@fncts/test/control/Assertion/api"
@@ -92,3 +93,4 @@ export declare function succeeds<A>(assertion: Assertion<A>): Assertion<Exit<any
92
93
  */
93
94
  export declare function test<A>(actual: A): (self: Assertion<A>) => boolean;
94
95
  export declare const completes: Assertion<unknown>;
96
+ export declare function hasSize<A>(assertion: Assertion<number>): Assertion<Iterable<A>>;
@@ -1,2 +1,2 @@
1
- export * from "./Assertion/api.js";
2
1
  export * from "./Assertion/definition.js";
2
+ export * from "./Assertion/api.js";
@@ -1,2 +1,2 @@
1
- export * from "./AssertionIO/api.js";
2
1
  export * from "./AssertionIO/definition.js";
2
+ export * from "./AssertionIO/api.js";
@@ -1,2 +1,2 @@
1
- export * from "./DefaultTestReporter/definition.js";
2
1
  export * from "./DefaultTestReporter/render.js";
2
+ export * from "./DefaultTestReporter/definition.js";