@goast/kotlin 0.4.12 → 0.4.14-beta1

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 (538) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +45 -45
  3. package/assets/client/okhttp3/ApiClient.kt +252 -252
  4. package/esm/src/ast/nodes/function.d.ts.map +1 -1
  5. package/esm/src/ast/nodes/function.js +3 -1
  6. package/esm/src/ast/references/kotlin.d.ts +1 -0
  7. package/esm/src/ast/references/kotlin.d.ts.map +1 -1
  8. package/esm/src/ast/references/kotlin.js +1 -0
  9. package/esm/src/generators/models/model-generator.d.ts.map +1 -1
  10. package/esm/src/generators/models/model-generator.js +18 -3
  11. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +28 -28
  12. package/esm/src/generators/services/spring-controllers/models.d.ts +5 -2
  13. package/esm/src/generators/services/spring-controllers/models.d.ts.map +1 -1
  14. package/esm/src/generators/services/spring-controllers/refs.d.ts +6 -0
  15. package/esm/src/generators/services/spring-controllers/refs.d.ts.map +1 -0
  16. package/esm/src/generators/services/spring-controllers/refs.js +9 -0
  17. package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
  18. package/esm/src/generators/services/spring-controllers/spring-controller-generator.js +28 -14
  19. package/esm/src/generators/services/spring-controllers/spring-controllers-generator.d.ts +7 -1
  20. package/esm/src/generators/services/spring-controllers/spring-controllers-generator.d.ts.map +1 -1
  21. package/esm/src/generators/services/spring-controllers/spring-controllers-generator.js +41 -2
  22. package/package.json +6 -6
  23. package/script/src/ast/nodes/function.d.ts.map +1 -1
  24. package/script/src/ast/nodes/function.js +3 -1
  25. package/script/src/ast/references/kotlin.d.ts +1 -0
  26. package/script/src/ast/references/kotlin.d.ts.map +1 -1
  27. package/script/src/ast/references/kotlin.js +2 -1
  28. package/script/src/generators/models/model-generator.d.ts.map +1 -1
  29. package/script/src/generators/models/model-generator.js +17 -2
  30. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +28 -28
  31. package/script/src/generators/services/spring-controllers/models.d.ts +5 -2
  32. package/script/src/generators/services/spring-controllers/models.d.ts.map +1 -1
  33. package/script/src/generators/services/spring-controllers/refs.d.ts +6 -0
  34. package/script/src/generators/services/spring-controllers/refs.d.ts.map +1 -0
  35. package/script/src/generators/services/spring-controllers/refs.js +12 -0
  36. package/script/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
  37. package/script/src/generators/services/spring-controllers/spring-controller-generator.js +28 -14
  38. package/script/src/generators/services/spring-controllers/spring-controllers-generator.d.ts +7 -1
  39. package/script/src/generators/services/spring-controllers/spring-controllers-generator.d.ts.map +1 -1
  40. package/script/src/generators/services/spring-controllers/spring-controllers-generator.js +41 -1
  41. package/esm/_dnt.test_polyfills.d.ts +0 -29
  42. package/esm/_dnt.test_polyfills.d.ts.map +0 -1
  43. package/esm/_dnt.test_polyfills.js +0 -31
  44. package/esm/_dnt.test_shims.d.ts +0 -6
  45. package/esm/_dnt.test_shims.d.ts.map +0 -1
  46. package/esm/_dnt.test_shims.js +0 -61
  47. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts +0 -26
  48. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts.map +0 -1
  49. package/esm/deps/jsr.io/@std/assert/1.0.11/assertion_error.js +0 -30
  50. package/esm/deps/jsr.io/@std/assert/1.0.11/equal.d.ts +0 -17
  51. package/esm/deps/jsr.io/@std/assert/1.0.11/equal.d.ts.map +0 -1
  52. package/esm/deps/jsr.io/@std/assert/1.0.11/equal.js +0 -183
  53. package/esm/deps/jsr.io/@std/assert/1.0.11/equals.d.ts +0 -35
  54. package/esm/deps/jsr.io/@std/assert/1.0.11/equals.d.ts.map +0 -1
  55. package/esm/deps/jsr.io/@std/assert/1.0.11/equals.js +0 -58
  56. package/esm/deps/jsr.io/@std/assert/1.0.11/false.d.ts +0 -18
  57. package/esm/deps/jsr.io/@std/assert/1.0.11/false.d.ts.map +0 -1
  58. package/esm/deps/jsr.io/@std/assert/1.0.11/false.js +0 -22
  59. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts +0 -23
  60. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts.map +0 -1
  61. package/esm/deps/jsr.io/@std/assert/1.0.11/instance_of.js +0 -53
  62. package/esm/deps/jsr.io/@std/assert/1.0.11/is_error.d.ts +0 -25
  63. package/esm/deps/jsr.io/@std/assert/1.0.11/is_error.d.ts.map +0 -1
  64. package/esm/deps/jsr.io/@std/assert/1.0.11/is_error.js +0 -54
  65. package/esm/deps/jsr.io/@std/assert/1.0.11/match.d.ts +0 -18
  66. package/esm/deps/jsr.io/@std/assert/1.0.11/match.d.ts.map +0 -1
  67. package/esm/deps/jsr.io/@std/assert/1.0.11/match.js +0 -26
  68. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts +0 -20
  69. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts.map +0 -1
  70. package/esm/deps/jsr.io/@std/assert/1.0.11/not_instance_of.js +0 -29
  71. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts +0 -18
  72. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts.map +0 -1
  73. package/esm/deps/jsr.io/@std/assert/1.0.11/not_match.js +0 -26
  74. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts +0 -23
  75. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts.map +0 -1
  76. package/esm/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.js +0 -32
  77. package/esm/deps/jsr.io/@std/assert/1.0.11/rejects.d.ts +0 -42
  78. package/esm/deps/jsr.io/@std/assert/1.0.11/rejects.d.ts.map +0 -1
  79. package/esm/deps/jsr.io/@std/assert/1.0.11/rejects.js +0 -53
  80. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts +0 -24
  81. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts.map +0 -1
  82. package/esm/deps/jsr.io/@std/assert/1.0.11/strict_equals.js +0 -57
  83. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_equals.d.ts +0 -20
  84. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_equals.d.ts.map +0 -1
  85. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_equals.js +0 -29
  86. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.d.ts +0 -14
  87. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.d.ts.map +0 -1
  88. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.js +0 -43
  89. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.d.ts +0 -17
  90. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.d.ts.map +0 -1
  91. package/esm/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.js +0 -26
  92. package/esm/deps/jsr.io/@std/expect/1.0.13/_assertions.d.ts +0 -4
  93. package/esm/deps/jsr.io/@std/expect/1.0.13/_assertions.d.ts.map +0 -1
  94. package/esm/deps/jsr.io/@std/expect/1.0.13/_assertions.js +0 -13
  95. package/esm/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.d.ts +0 -46
  96. package/esm/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.d.ts.map +0 -1
  97. package/esm/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.js +0 -161
  98. package/esm/deps/jsr.io/@std/expect/1.0.13/_build_message.d.ts +0 -6
  99. package/esm/deps/jsr.io/@std/expect/1.0.13/_build_message.d.ts.map +0 -1
  100. package/esm/deps/jsr.io/@std/expect/1.0.13/_build_message.js +0 -29
  101. package/esm/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.d.ts +0 -4
  102. package/esm/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.d.ts.map +0 -1
  103. package/esm/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.js +0 -11
  104. package/esm/deps/jsr.io/@std/expect/1.0.13/_equal.d.ts +0 -9
  105. package/esm/deps/jsr.io/@std/expect/1.0.13/_equal.d.ts.map +0 -1
  106. package/esm/deps/jsr.io/@std/expect/1.0.13/_equal.js +0 -191
  107. package/esm/deps/jsr.io/@std/expect/1.0.13/_extend.d.ts +0 -4
  108. package/esm/deps/jsr.io/@std/expect/1.0.13/_extend.d.ts.map +0 -1
  109. package/esm/deps/jsr.io/@std/expect/1.0.13/_extend.js +0 -11
  110. package/esm/deps/jsr.io/@std/expect/1.0.13/_inspect_args.d.ts +0 -3
  111. package/esm/deps/jsr.io/@std/expect/1.0.13/_inspect_args.d.ts.map +0 -1
  112. package/esm/deps/jsr.io/@std/expect/1.0.13/_inspect_args.js +0 -12
  113. package/esm/deps/jsr.io/@std/expect/1.0.13/_matchers.d.ts +0 -34
  114. package/esm/deps/jsr.io/@std/expect/1.0.13/_matchers.d.ts.map +0 -1
  115. package/esm/deps/jsr.io/@std/expect/1.0.13/_matchers.js +0 -714
  116. package/esm/deps/jsr.io/@std/expect/1.0.13/_mock_util.d.ts +0 -11
  117. package/esm/deps/jsr.io/@std/expect/1.0.13/_mock_util.d.ts.map +0 -1
  118. package/esm/deps/jsr.io/@std/expect/1.0.13/_mock_util.js +0 -10
  119. package/esm/deps/jsr.io/@std/expect/1.0.13/_serializer.d.ts +0 -4
  120. package/esm/deps/jsr.io/@std/expect/1.0.13/_serializer.d.ts.map +0 -1
  121. package/esm/deps/jsr.io/@std/expect/1.0.13/_serializer.js +0 -10
  122. package/esm/deps/jsr.io/@std/expect/1.0.13/_types.d.ts +0 -843
  123. package/esm/deps/jsr.io/@std/expect/1.0.13/_types.d.ts.map +0 -1
  124. package/esm/deps/jsr.io/@std/expect/1.0.13/_types.js +0 -3
  125. package/esm/deps/jsr.io/@std/expect/1.0.13/_utils.d.ts +0 -9
  126. package/esm/deps/jsr.io/@std/expect/1.0.13/_utils.d.ts.map +0 -1
  127. package/esm/deps/jsr.io/@std/expect/1.0.13/_utils.js +0 -218
  128. package/esm/deps/jsr.io/@std/expect/1.0.13/expect.d.ts +0 -60
  129. package/esm/deps/jsr.io/@std/expect/1.0.13/expect.d.ts.map +0 -1
  130. package/esm/deps/jsr.io/@std/expect/1.0.13/expect.js +0 -523
  131. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +0 -160
  132. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +0 -1
  133. package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +0 -199
  134. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
  135. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
  136. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -111
  137. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
  138. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
  139. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -277
  140. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
  141. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
  142. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -180
  143. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
  144. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
  145. package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +0 -37
  146. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
  147. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
  148. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -207
  149. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
  150. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
  151. package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +0 -2
  152. package/esm/deps/jsr.io/@std/testing/1.0.9/_mock_utils.d.ts +0 -15
  153. package/esm/deps/jsr.io/@std/testing/1.0.9/_mock_utils.d.ts.map +0 -1
  154. package/esm/deps/jsr.io/@std/testing/1.0.9/_mock_utils.js +0 -35
  155. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts +0 -79
  156. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts.map +0 -1
  157. package/esm/deps/jsr.io/@std/testing/1.0.9/_test_suite.js +0 -380
  158. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts +0 -738
  159. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts.map +0 -1
  160. package/esm/deps/jsr.io/@std/testing/1.0.9/bdd.js +0 -654
  161. package/esm/deps/jsr.io/@std/testing/1.0.9/mock.d.ts +0 -674
  162. package/esm/deps/jsr.io/@std/testing/1.0.9/mock.d.ts.map +0 -1
  163. package/esm/deps/jsr.io/@std/testing/1.0.9/mock.js +0 -1083
  164. package/esm/src/ast/nodes/annotation.test.d.ts +0 -2
  165. package/esm/src/ast/nodes/annotation.test.d.ts.map +0 -1
  166. package/esm/src/ast/nodes/annotation.test.js +0 -56
  167. package/esm/src/ast/nodes/argument.test.d.ts +0 -2
  168. package/esm/src/ast/nodes/argument.test.d.ts.map +0 -1
  169. package/esm/src/ast/nodes/argument.test.js +0 -33
  170. package/esm/src/ast/nodes/call.test.d.ts +0 -2
  171. package/esm/src/ast/nodes/call.test.d.ts.map +0 -1
  172. package/esm/src/ast/nodes/call.test.js +0 -35
  173. package/esm/src/ast/nodes/class.test.d.ts +0 -2
  174. package/esm/src/ast/nodes/class.test.d.ts.map +0 -1
  175. package/esm/src/ast/nodes/class.test.js +0 -219
  176. package/esm/src/ast/nodes/constructor.test.d.ts +0 -2
  177. package/esm/src/ast/nodes/constructor.test.d.ts.map +0 -1
  178. package/esm/src/ast/nodes/constructor.test.js +0 -139
  179. package/esm/src/ast/nodes/doc-tag.test.d.ts +0 -2
  180. package/esm/src/ast/nodes/doc-tag.test.d.ts.map +0 -1
  181. package/esm/src/ast/nodes/doc-tag.test.js +0 -67
  182. package/esm/src/ast/nodes/doc.test.d.ts +0 -2
  183. package/esm/src/ast/nodes/doc.test.d.ts.map +0 -1
  184. package/esm/src/ast/nodes/doc.test.js +0 -33
  185. package/esm/src/ast/nodes/enum-value.test.d.ts +0 -2
  186. package/esm/src/ast/nodes/enum-value.test.d.ts.map +0 -1
  187. package/esm/src/ast/nodes/enum-value.test.js +0 -115
  188. package/esm/src/ast/nodes/enum.test.d.ts +0 -2
  189. package/esm/src/ast/nodes/enum.test.d.ts.map +0 -1
  190. package/esm/src/ast/nodes/enum.test.js +0 -129
  191. package/esm/src/ast/nodes/function.test.d.ts +0 -2
  192. package/esm/src/ast/nodes/function.test.d.ts.map +0 -1
  193. package/esm/src/ast/nodes/function.test.js +0 -160
  194. package/esm/src/ast/nodes/generic-parameter.test.d.ts +0 -2
  195. package/esm/src/ast/nodes/generic-parameter.test.d.ts.map +0 -1
  196. package/esm/src/ast/nodes/generic-parameter.test.js +0 -49
  197. package/esm/src/ast/nodes/init-block.test.d.ts +0 -2
  198. package/esm/src/ast/nodes/init-block.test.d.ts.map +0 -1
  199. package/esm/src/ast/nodes/init-block.test.js +0 -28
  200. package/esm/src/ast/nodes/interface.test.d.ts +0 -2
  201. package/esm/src/ast/nodes/interface.test.d.ts.map +0 -1
  202. package/esm/src/ast/nodes/interface.test.js +0 -121
  203. package/esm/src/ast/nodes/object.test.d.ts +0 -2
  204. package/esm/src/ast/nodes/object.test.d.ts.map +0 -1
  205. package/esm/src/ast/nodes/object.test.js +0 -78
  206. package/esm/src/ast/nodes/parameter.test.d.ts +0 -2
  207. package/esm/src/ast/nodes/parameter.test.d.ts.map +0 -1
  208. package/esm/src/ast/nodes/parameter.test.js +0 -152
  209. package/esm/src/ast/nodes/property.test.d.ts +0 -2
  210. package/esm/src/ast/nodes/property.test.d.ts.map +0 -1
  211. package/esm/src/ast/nodes/property.test.js +0 -206
  212. package/esm/src/ast/nodes/reference.test.d.ts +0 -2
  213. package/esm/src/ast/nodes/reference.test.d.ts.map +0 -1
  214. package/esm/src/ast/nodes/reference.test.js +0 -36
  215. package/esm/src/ast/nodes/string.test.d.ts +0 -2
  216. package/esm/src/ast/nodes/string.test.d.ts.map +0 -1
  217. package/esm/src/ast/nodes/string.test.js +0 -48
  218. package/esm/src/import-collection.test.d.ts +0 -2
  219. package/esm/src/import-collection.test.d.ts.map +0 -1
  220. package/esm/src/import-collection.test.js +0 -99
  221. package/esm/tests/openapi-models.test.d.ts +0 -2
  222. package/esm/tests/openapi-models.test.d.ts.map +0 -1
  223. package/esm/tests/openapi-models.test.js +0 -45
  224. package/script/_dnt.test_polyfills.d.ts +0 -29
  225. package/script/_dnt.test_polyfills.d.ts.map +0 -1
  226. package/script/_dnt.test_polyfills.js +0 -32
  227. package/script/_dnt.test_shims.d.ts +0 -6
  228. package/script/_dnt.test_shims.d.ts.map +0 -1
  229. package/script/_dnt.test_shims.js +0 -65
  230. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts +0 -26
  231. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.d.ts.map +0 -1
  232. package/script/deps/jsr.io/@std/assert/1.0.11/assertion_error.js +0 -34
  233. package/script/deps/jsr.io/@std/assert/1.0.11/equal.d.ts +0 -17
  234. package/script/deps/jsr.io/@std/assert/1.0.11/equal.d.ts.map +0 -1
  235. package/script/deps/jsr.io/@std/assert/1.0.11/equal.js +0 -187
  236. package/script/deps/jsr.io/@std/assert/1.0.11/equals.d.ts +0 -35
  237. package/script/deps/jsr.io/@std/assert/1.0.11/equals.d.ts.map +0 -1
  238. package/script/deps/jsr.io/@std/assert/1.0.11/equals.js +0 -61
  239. package/script/deps/jsr.io/@std/assert/1.0.11/false.d.ts +0 -18
  240. package/script/deps/jsr.io/@std/assert/1.0.11/false.d.ts.map +0 -1
  241. package/script/deps/jsr.io/@std/assert/1.0.11/false.js +0 -25
  242. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts +0 -23
  243. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.d.ts.map +0 -1
  244. package/script/deps/jsr.io/@std/assert/1.0.11/instance_of.js +0 -56
  245. package/script/deps/jsr.io/@std/assert/1.0.11/is_error.d.ts +0 -25
  246. package/script/deps/jsr.io/@std/assert/1.0.11/is_error.d.ts.map +0 -1
  247. package/script/deps/jsr.io/@std/assert/1.0.11/is_error.js +0 -57
  248. package/script/deps/jsr.io/@std/assert/1.0.11/match.d.ts +0 -18
  249. package/script/deps/jsr.io/@std/assert/1.0.11/match.d.ts.map +0 -1
  250. package/script/deps/jsr.io/@std/assert/1.0.11/match.js +0 -29
  251. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts +0 -20
  252. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.d.ts.map +0 -1
  253. package/script/deps/jsr.io/@std/assert/1.0.11/not_instance_of.js +0 -32
  254. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts +0 -18
  255. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.d.ts.map +0 -1
  256. package/script/deps/jsr.io/@std/assert/1.0.11/not_match.js +0 -29
  257. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts +0 -23
  258. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.d.ts.map +0 -1
  259. package/script/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.js +0 -35
  260. package/script/deps/jsr.io/@std/assert/1.0.11/rejects.d.ts +0 -42
  261. package/script/deps/jsr.io/@std/assert/1.0.11/rejects.d.ts.map +0 -1
  262. package/script/deps/jsr.io/@std/assert/1.0.11/rejects.js +0 -56
  263. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts +0 -24
  264. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.d.ts.map +0 -1
  265. package/script/deps/jsr.io/@std/assert/1.0.11/strict_equals.js +0 -60
  266. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_equals.d.ts +0 -20
  267. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_equals.d.ts.map +0 -1
  268. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_equals.js +0 -32
  269. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.d.ts +0 -14
  270. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.d.ts.map +0 -1
  271. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.js +0 -46
  272. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.d.ts +0 -17
  273. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.d.ts.map +0 -1
  274. package/script/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.js +0 -29
  275. package/script/deps/jsr.io/@std/expect/1.0.13/_assertions.d.ts +0 -4
  276. package/script/deps/jsr.io/@std/expect/1.0.13/_assertions.d.ts.map +0 -1
  277. package/script/deps/jsr.io/@std/expect/1.0.13/_assertions.js +0 -18
  278. package/script/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.d.ts +0 -46
  279. package/script/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.d.ts.map +0 -1
  280. package/script/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.js +0 -183
  281. package/script/deps/jsr.io/@std/expect/1.0.13/_build_message.d.ts +0 -6
  282. package/script/deps/jsr.io/@std/expect/1.0.13/_build_message.d.ts.map +0 -1
  283. package/script/deps/jsr.io/@std/expect/1.0.13/_build_message.js +0 -33
  284. package/script/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.d.ts +0 -4
  285. package/script/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.d.ts.map +0 -1
  286. package/script/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.js +0 -15
  287. package/script/deps/jsr.io/@std/expect/1.0.13/_equal.d.ts +0 -9
  288. package/script/deps/jsr.io/@std/expect/1.0.13/_equal.d.ts.map +0 -1
  289. package/script/deps/jsr.io/@std/expect/1.0.13/_equal.js +0 -194
  290. package/script/deps/jsr.io/@std/expect/1.0.13/_extend.d.ts +0 -4
  291. package/script/deps/jsr.io/@std/expect/1.0.13/_extend.d.ts.map +0 -1
  292. package/script/deps/jsr.io/@std/expect/1.0.13/_extend.js +0 -15
  293. package/script/deps/jsr.io/@std/expect/1.0.13/_inspect_args.d.ts +0 -3
  294. package/script/deps/jsr.io/@std/expect/1.0.13/_inspect_args.d.ts.map +0 -1
  295. package/script/deps/jsr.io/@std/expect/1.0.13/_inspect_args.js +0 -17
  296. package/script/deps/jsr.io/@std/expect/1.0.13/_matchers.d.ts +0 -34
  297. package/script/deps/jsr.io/@std/expect/1.0.13/_matchers.d.ts.map +0 -1
  298. package/script/deps/jsr.io/@std/expect/1.0.13/_matchers.js +0 -748
  299. package/script/deps/jsr.io/@std/expect/1.0.13/_mock_util.d.ts +0 -11
  300. package/script/deps/jsr.io/@std/expect/1.0.13/_mock_util.d.ts.map +0 -1
  301. package/script/deps/jsr.io/@std/expect/1.0.13/_mock_util.js +0 -14
  302. package/script/deps/jsr.io/@std/expect/1.0.13/_serializer.d.ts +0 -4
  303. package/script/deps/jsr.io/@std/expect/1.0.13/_serializer.d.ts.map +0 -1
  304. package/script/deps/jsr.io/@std/expect/1.0.13/_serializer.js +0 -14
  305. package/script/deps/jsr.io/@std/expect/1.0.13/_types.d.ts +0 -843
  306. package/script/deps/jsr.io/@std/expect/1.0.13/_types.d.ts.map +0 -1
  307. package/script/deps/jsr.io/@std/expect/1.0.13/_types.js +0 -4
  308. package/script/deps/jsr.io/@std/expect/1.0.13/_utils.d.ts +0 -9
  309. package/script/deps/jsr.io/@std/expect/1.0.13/_utils.d.ts.map +0 -1
  310. package/script/deps/jsr.io/@std/expect/1.0.13/_utils.js +0 -226
  311. package/script/deps/jsr.io/@std/expect/1.0.13/expect.d.ts +0 -60
  312. package/script/deps/jsr.io/@std/expect/1.0.13/expect.d.ts.map +0 -1
  313. package/script/deps/jsr.io/@std/expect/1.0.13/expect.js +0 -527
  314. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts +0 -160
  315. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +0 -1
  316. package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.js +0 -204
  317. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
  318. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
  319. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -116
  320. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
  321. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
  322. package/script/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -284
  323. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
  324. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
  325. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -186
  326. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
  327. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
  328. package/script/deps/jsr.io/@std/internal/1.0.5/format.js +0 -41
  329. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
  330. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
  331. package/script/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -220
  332. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
  333. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
  334. package/script/deps/jsr.io/@std/internal/1.0.5/types.js +0 -3
  335. package/script/deps/jsr.io/@std/testing/1.0.9/_mock_utils.d.ts +0 -15
  336. package/script/deps/jsr.io/@std/testing/1.0.9/_mock_utils.d.ts.map +0 -1
  337. package/script/deps/jsr.io/@std/testing/1.0.9/_mock_utils.js +0 -41
  338. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts +0 -79
  339. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.d.ts.map +0 -1
  340. package/script/deps/jsr.io/@std/testing/1.0.9/_test_suite.js +0 -385
  341. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts +0 -738
  342. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.d.ts.map +0 -1
  343. package/script/deps/jsr.io/@std/testing/1.0.9/bdd.js +0 -665
  344. package/script/deps/jsr.io/@std/testing/1.0.9/mock.d.ts +0 -674
  345. package/script/deps/jsr.io/@std/testing/1.0.9/mock.d.ts.map +0 -1
  346. package/script/deps/jsr.io/@std/testing/1.0.9/mock.js +0 -1102
  347. package/script/src/ast/nodes/annotation.test.d.ts +0 -2
  348. package/script/src/ast/nodes/annotation.test.d.ts.map +0 -1
  349. package/script/src/ast/nodes/annotation.test.js +0 -58
  350. package/script/src/ast/nodes/argument.test.d.ts +0 -2
  351. package/script/src/ast/nodes/argument.test.d.ts.map +0 -1
  352. package/script/src/ast/nodes/argument.test.js +0 -35
  353. package/script/src/ast/nodes/call.test.d.ts +0 -2
  354. package/script/src/ast/nodes/call.test.d.ts.map +0 -1
  355. package/script/src/ast/nodes/call.test.js +0 -37
  356. package/script/src/ast/nodes/class.test.d.ts +0 -2
  357. package/script/src/ast/nodes/class.test.d.ts.map +0 -1
  358. package/script/src/ast/nodes/class.test.js +0 -221
  359. package/script/src/ast/nodes/constructor.test.d.ts +0 -2
  360. package/script/src/ast/nodes/constructor.test.d.ts.map +0 -1
  361. package/script/src/ast/nodes/constructor.test.js +0 -141
  362. package/script/src/ast/nodes/doc-tag.test.d.ts +0 -2
  363. package/script/src/ast/nodes/doc-tag.test.d.ts.map +0 -1
  364. package/script/src/ast/nodes/doc-tag.test.js +0 -69
  365. package/script/src/ast/nodes/doc.test.d.ts +0 -2
  366. package/script/src/ast/nodes/doc.test.d.ts.map +0 -1
  367. package/script/src/ast/nodes/doc.test.js +0 -35
  368. package/script/src/ast/nodes/enum-value.test.d.ts +0 -2
  369. package/script/src/ast/nodes/enum-value.test.d.ts.map +0 -1
  370. package/script/src/ast/nodes/enum-value.test.js +0 -117
  371. package/script/src/ast/nodes/enum.test.d.ts +0 -2
  372. package/script/src/ast/nodes/enum.test.d.ts.map +0 -1
  373. package/script/src/ast/nodes/enum.test.js +0 -131
  374. package/script/src/ast/nodes/function.test.d.ts +0 -2
  375. package/script/src/ast/nodes/function.test.d.ts.map +0 -1
  376. package/script/src/ast/nodes/function.test.js +0 -162
  377. package/script/src/ast/nodes/generic-parameter.test.d.ts +0 -2
  378. package/script/src/ast/nodes/generic-parameter.test.d.ts.map +0 -1
  379. package/script/src/ast/nodes/generic-parameter.test.js +0 -51
  380. package/script/src/ast/nodes/init-block.test.d.ts +0 -2
  381. package/script/src/ast/nodes/init-block.test.d.ts.map +0 -1
  382. package/script/src/ast/nodes/init-block.test.js +0 -30
  383. package/script/src/ast/nodes/interface.test.d.ts +0 -2
  384. package/script/src/ast/nodes/interface.test.d.ts.map +0 -1
  385. package/script/src/ast/nodes/interface.test.js +0 -123
  386. package/script/src/ast/nodes/object.test.d.ts +0 -2
  387. package/script/src/ast/nodes/object.test.d.ts.map +0 -1
  388. package/script/src/ast/nodes/object.test.js +0 -80
  389. package/script/src/ast/nodes/parameter.test.d.ts +0 -2
  390. package/script/src/ast/nodes/parameter.test.d.ts.map +0 -1
  391. package/script/src/ast/nodes/parameter.test.js +0 -154
  392. package/script/src/ast/nodes/property.test.d.ts +0 -2
  393. package/script/src/ast/nodes/property.test.d.ts.map +0 -1
  394. package/script/src/ast/nodes/property.test.js +0 -208
  395. package/script/src/ast/nodes/reference.test.d.ts +0 -2
  396. package/script/src/ast/nodes/reference.test.d.ts.map +0 -1
  397. package/script/src/ast/nodes/reference.test.js +0 -38
  398. package/script/src/ast/nodes/string.test.d.ts +0 -2
  399. package/script/src/ast/nodes/string.test.d.ts.map +0 -1
  400. package/script/src/ast/nodes/string.test.js +0 -50
  401. package/script/src/import-collection.test.d.ts +0 -2
  402. package/script/src/import-collection.test.d.ts.map +0 -1
  403. package/script/src/import-collection.test.js +0 -101
  404. package/script/tests/openapi-models.test.d.ts +0 -2
  405. package/script/tests/openapi-models.test.d.ts.map +0 -1
  406. package/script/tests/openapi-models.test.js +0 -48
  407. package/src/_dnt.test_polyfills.ts +0 -70
  408. package/src/_dnt.test_shims.ts +0 -64
  409. package/src/deps/jsr.io/@std/assert/1.0.11/assertion_error.ts +0 -31
  410. package/src/deps/jsr.io/@std/assert/1.0.11/equal.ts +0 -210
  411. package/src/deps/jsr.io/@std/assert/1.0.11/equals.ts +0 -65
  412. package/src/deps/jsr.io/@std/assert/1.0.11/false.ts +0 -26
  413. package/src/deps/jsr.io/@std/assert/1.0.11/instance_of.ts +0 -64
  414. package/src/deps/jsr.io/@std/assert/1.0.11/is_error.ts +0 -65
  415. package/src/deps/jsr.io/@std/assert/1.0.11/match.ts +0 -30
  416. package/src/deps/jsr.io/@std/assert/1.0.11/not_instance_of.ts +0 -33
  417. package/src/deps/jsr.io/@std/assert/1.0.11/not_match.ts +0 -30
  418. package/src/deps/jsr.io/@std/assert/1.0.11/not_strict_equals.ts +0 -42
  419. package/src/deps/jsr.io/@std/assert/1.0.11/rejects.ts +0 -123
  420. package/src/deps/jsr.io/@std/assert/1.0.11/strict_equals.ts +0 -67
  421. package/src/deps/jsr.io/@std/expect/1.0.13/_assert_equals.ts +0 -38
  422. package/src/deps/jsr.io/@std/expect/1.0.13/_assert_is_error.ts +0 -54
  423. package/src/deps/jsr.io/@std/expect/1.0.13/_assert_not_equals.ts +0 -35
  424. package/src/deps/jsr.io/@std/expect/1.0.13/_assertions.ts +0 -18
  425. package/src/deps/jsr.io/@std/expect/1.0.13/_asymmetric_matchers.ts +0 -198
  426. package/src/deps/jsr.io/@std/expect/1.0.13/_build_message.ts +0 -51
  427. package/src/deps/jsr.io/@std/expect/1.0.13/_custom_equality_tester.ts +0 -19
  428. package/src/deps/jsr.io/@std/expect/1.0.13/_equal.ts +0 -230
  429. package/src/deps/jsr.io/@std/expect/1.0.13/_extend.ts +0 -16
  430. package/src/deps/jsr.io/@std/expect/1.0.13/_inspect_args.ts +0 -15
  431. package/src/deps/jsr.io/@std/expect/1.0.13/_matchers.ts +0 -1028
  432. package/src/deps/jsr.io/@std/expect/1.0.13/_mock_util.ts +0 -22
  433. package/src/deps/jsr.io/@std/expect/1.0.13/_serializer.ts +0 -15
  434. package/src/deps/jsr.io/@std/expect/1.0.13/_types.ts +0 -923
  435. package/src/deps/jsr.io/@std/expect/1.0.13/_utils.ts +0 -283
  436. package/src/deps/jsr.io/@std/expect/1.0.13/expect.ts +0 -620
  437. package/src/deps/jsr.io/@std/internal/1.0.5/assertion_state.ts +0 -214
  438. package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +0 -134
  439. package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +0 -317
  440. package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +0 -204
  441. package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +0 -39
  442. package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +0 -233
  443. package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +0 -18
  444. package/src/deps/jsr.io/@std/testing/1.0.9/_mock_utils.ts +0 -43
  445. package/src/deps/jsr.io/@std/testing/1.0.9/_test_suite.ts +0 -448
  446. package/src/deps/jsr.io/@std/testing/1.0.9/bdd.ts +0 -1288
  447. package/src/deps/jsr.io/@std/testing/1.0.9/mock.ts +0 -1807
  448. package/src/mod.ts +0 -8
  449. package/src/src/assets.ts +0 -9
  450. package/src/src/ast/_index.ts +0 -66
  451. package/src/src/ast/common.ts +0 -1
  452. package/src/src/ast/index.ts +0 -1
  453. package/src/src/ast/node.ts +0 -10
  454. package/src/src/ast/nodes/annotation.test.ts +0 -69
  455. package/src/src/ast/nodes/annotation.ts +0 -79
  456. package/src/src/ast/nodes/argument.test.ts +0 -41
  457. package/src/src/ast/nodes/argument.ts +0 -62
  458. package/src/src/ast/nodes/call.test.ts +0 -44
  459. package/src/src/ast/nodes/call.ts +0 -66
  460. package/src/src/ast/nodes/class.test.ts +0 -274
  461. package/src/src/ast/nodes/class.ts +0 -178
  462. package/src/src/ast/nodes/collection-literal.ts +0 -49
  463. package/src/src/ast/nodes/constructor.test.ts +0 -178
  464. package/src/src/ast/nodes/constructor.ts +0 -126
  465. package/src/src/ast/nodes/doc-tag.test.ts +0 -84
  466. package/src/src/ast/nodes/doc-tag.ts +0 -138
  467. package/src/src/ast/nodes/doc.test.ts +0 -42
  468. package/src/src/ast/nodes/doc.ts +0 -111
  469. package/src/src/ast/nodes/enum-value.test.ts +0 -146
  470. package/src/src/ast/nodes/enum-value.ts +0 -100
  471. package/src/src/ast/nodes/enum.test.ts +0 -167
  472. package/src/src/ast/nodes/enum.ts +0 -163
  473. package/src/src/ast/nodes/function.test.ts +0 -194
  474. package/src/src/ast/nodes/function.ts +0 -176
  475. package/src/src/ast/nodes/generic-parameter.test.ts +0 -60
  476. package/src/src/ast/nodes/generic-parameter.ts +0 -54
  477. package/src/src/ast/nodes/init-block.test.ts +0 -36
  478. package/src/src/ast/nodes/init-block.ts +0 -38
  479. package/src/src/ast/nodes/interface.test.ts +0 -151
  480. package/src/src/ast/nodes/interface.ts +0 -133
  481. package/src/src/ast/nodes/lambda-type.ts +0 -68
  482. package/src/src/ast/nodes/lambda.ts +0 -68
  483. package/src/src/ast/nodes/object.test.ts +0 -101
  484. package/src/src/ast/nodes/object.ts +0 -102
  485. package/src/src/ast/nodes/parameter.test.ts +0 -191
  486. package/src/src/ast/nodes/parameter.ts +0 -118
  487. package/src/src/ast/nodes/property.test.ts +0 -253
  488. package/src/src/ast/nodes/property.ts +0 -225
  489. package/src/src/ast/nodes/reference.test.ts +0 -47
  490. package/src/src/ast/nodes/reference.ts +0 -178
  491. package/src/src/ast/nodes/string.test.ts +0 -61
  492. package/src/src/ast/nodes/string.ts +0 -114
  493. package/src/src/ast/nodes/types.ts +0 -23
  494. package/src/src/ast/references/index.ts +0 -8
  495. package/src/src/ast/references/jackson.ts +0 -16
  496. package/src/src/ast/references/jakarta.ts +0 -14
  497. package/src/src/ast/references/java.ts +0 -19
  498. package/src/src/ast/references/kotlin.ts +0 -40
  499. package/src/src/ast/references/okhttp3.ts +0 -5
  500. package/src/src/ast/references/reactor.ts +0 -5
  501. package/src/src/ast/references/spring.ts +0 -72
  502. package/src/src/ast/references/swagger.ts +0 -23
  503. package/src/src/ast/utils/get-kotlin-builder-options.ts +0 -19
  504. package/src/src/ast/utils/to-kt-node.ts +0 -31
  505. package/src/src/ast/utils/write-kt-annotations.ts +0 -15
  506. package/src/src/ast/utils/write-kt-arguments.ts +0 -45
  507. package/src/src/ast/utils/write-kt-enum-values.ts +0 -27
  508. package/src/src/ast/utils/write-kt-generic-parameters.ts +0 -12
  509. package/src/src/ast/utils/write-kt-members.ts +0 -25
  510. package/src/src/ast/utils/write-kt-node.ts +0 -37
  511. package/src/src/ast/utils/write-kt-parameters.ts +0 -25
  512. package/src/src/common-results.ts +0 -4
  513. package/src/src/config.ts +0 -41
  514. package/src/src/file-builder.ts +0 -108
  515. package/src/src/generators/file-generator.ts +0 -29
  516. package/src/src/generators/index.ts +0 -4
  517. package/src/src/generators/models/args.ts +0 -123
  518. package/src/src/generators/models/index.ts +0 -4
  519. package/src/src/generators/models/model-generator.ts +0 -633
  520. package/src/src/generators/models/models-generator.ts +0 -65
  521. package/src/src/generators/models/models.ts +0 -95
  522. package/src/src/generators/services/okhttp3-clients/args.ts +0 -78
  523. package/src/src/generators/services/okhttp3-clients/index.ts +0 -4
  524. package/src/src/generators/services/okhttp3-clients/models.ts +0 -62
  525. package/src/src/generators/services/okhttp3-clients/okhttp3-client-generator.ts +0 -567
  526. package/src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts +0 -130
  527. package/src/src/generators/services/okhttp3-clients/refs.ts +0 -55
  528. package/src/src/generators/services/spring-controllers/args.ts +0 -88
  529. package/src/src/generators/services/spring-controllers/index.ts +0 -4
  530. package/src/src/generators/services/spring-controllers/models.ts +0 -66
  531. package/src/src/generators/services/spring-controllers/spring-controller-generator.ts +0 -768
  532. package/src/src/generators/services/spring-controllers/spring-controllers-generator.ts +0 -70
  533. package/src/src/import-collection.test.ts +0 -116
  534. package/src/src/import-collection.ts +0 -98
  535. package/src/src/types.ts +0 -3
  536. package/src/src/utils.ts +0 -39
  537. package/src/tests/openapi-models.test.ts +0 -63
  538. package/test_runner.js +0 -227
@@ -1,1288 +0,0 @@
1
- // Copyright 2018-2025 the Deno authors. MIT license.
2
-
3
- /**
4
- * A {@link https://en.wikipedia.org/wiki/Behavior-driven_development | BDD} interface
5
- * to `Deno.test()` API.
6
- *
7
- * With `@std/testing/bdd` module you can write your tests in a familiar format for
8
- * grouping tests and adding setup/teardown hooks used by other JavaScript testing
9
- * frameworks like Jasmine, Jest, and Mocha.
10
- *
11
- * The `describe` function creates a block that groups together several related
12
- * tests. The `it` function registers an individual test case.
13
- *
14
- * ## Hooks
15
- *
16
- * There are 4 types of hooks available for test suites. A test suite can have
17
- * multiples of each type of hook, they will be called in the order that they are
18
- * registered. The `afterEach` and `afterAll` hooks will be called whether or not
19
- * the test case passes. The *All hooks will be called once for the whole group
20
- * while the *Each hooks will be called for each individual test case.
21
- *
22
- * - `beforeAll`: Runs before all of the tests in the group.
23
- * - `afterAll`: Runs after all of the tests in the group finish.
24
- * - `beforeEach`: Runs before each of the individual test cases in the group.
25
- * - `afterEach`: Runs after each of the individual test cases in the group.
26
- *
27
- * If a hook is registered at the top level, a global test suite will be registered
28
- * and all tests will belong to it. Hooks registered at the top level must be
29
- * registered before any individual test cases or test suites.
30
- *
31
- * ## Focusing tests
32
- *
33
- * If you would like to run only specific test cases, you can do so by calling
34
- * `it.only` instead of `it`. If you would like to run only specific test suites,
35
- * you can do so by calling `describe.only` instead of `describe`.
36
- *
37
- * There is one limitation to this when using the flat test grouping style. When
38
- * `describe` is called without being nested, it registers the test with
39
- * `Deno.test`. If a child test case or suite is registered with `it.only` or
40
- * `describe.only`, it will be scoped to the top test suite instead of the file. To
41
- * make them the only tests that run in the file, you would need to register the
42
- * top test suite with `describe.only` too.
43
- *
44
- * ## Ignoring tests
45
- *
46
- * If you would like to not run specific individual test cases, you can do so by
47
- * calling `it.ignore` instead of `it`. If you would like to not run specific test
48
- * suites, you can do so by calling `describe.ignore` instead of `describe`.
49
- *
50
- * ## Sanitization options
51
- *
52
- * Like `Deno.TestDefinition`, the `DescribeDefinition` and `ItDefinition` have
53
- * sanitization options. They work in the same way.
54
- *
55
- * - `sanitizeExit`: Ensure the test case does not prematurely cause the process to
56
- * exit, for example via a call to Deno.exit. Defaults to true.
57
- * - `sanitizeOps`: Check that the number of async completed ops after the test is
58
- * the same as number of dispatched ops. Defaults to true.
59
- * - `sanitizeResources`: Ensure the test case does not "leak" resources - ie. the
60
- * resource table after the test has exactly the same contents as before the
61
- * test. Defaults to true.
62
- *
63
- * ## Permissions option
64
- *
65
- * Like `Deno.TestDefinition`, the `DescribeDefinition` and `ItDefinition` have a
66
- * `permissions` option. They specify the permissions that should be used to run an
67
- * individual test case or test suite. Set this to `"inherit"` to keep the calling
68
- * thread's permissions. Set this to `"none"` to revoke all permissions.
69
- *
70
- * This setting defaults to `"inherit"`.
71
- *
72
- * There is currently one limitation to this, you cannot use the permissions option
73
- * on an individual test case or test suite that belongs to another test suite.
74
- * That's because internally those tests are registered with `t.step` which does
75
- * not support the permissions option.
76
- *
77
- * ## Comparing to Deno\.test
78
- *
79
- * The default way of writing tests is using `Deno.test` and `t.step`. The
80
- * `describe` and `it` functions have similar call signatures to `Deno.test`,
81
- * making it easy to switch between the default style and the behavior-driven
82
- * development style of writing tests. Internally, `describe` and `it` are
83
- * registering tests with `Deno.test` and `t.step`.
84
- *
85
- * Below is an example of a test file using `Deno.test` and `t.step`. In the
86
- * following sections there are examples of how the same test could be written with
87
- * `describe` and `it` using nested test grouping, flat test grouping, or a mix of
88
- * both styles.
89
- *
90
- * ```ts
91
- * import {
92
- * assertEquals,
93
- * assertStrictEquals,
94
- * assertThrows,
95
- * } from "@std/assert";
96
- *
97
- * class User {
98
- * static users: Map<string, User> = new Map();
99
- * name: string;
100
- * age?: number;
101
- *
102
- * constructor(name: string) {
103
- * if (User.users.has(name)) {
104
- * throw new Deno.errors.AlreadyExists(`User ${name} already exists`);
105
- * }
106
- * this.name = name;
107
- * User.users.set(name, this);
108
- * }
109
- *
110
- * getAge(): number {
111
- * if (!this.age) {
112
- * throw new Error("Age unknown");
113
- * }
114
- * return this.age;
115
- * }
116
- *
117
- * setAge(age: number) {
118
- * this.age = age;
119
- * }
120
- * }
121
- *
122
- * Deno.test("User.users initially empty", () => {
123
- * assertEquals(User.users.size, 0);
124
- * });
125
- *
126
- * Deno.test("User constructor", () => {
127
- * try {
128
- * const user = new User("Kyle");
129
- * assertEquals(user.name, "Kyle");
130
- * assertStrictEquals(User.users.get("Kyle"), user);
131
- * } finally {
132
- * User.users.clear();
133
- * }
134
- * });
135
- *
136
- * Deno.test("User age", async (t) => {
137
- * const user = new User("Kyle");
138
- *
139
- * await t.step("getAge", () => {
140
- * assertThrows(() => user.getAge(), Error, "Age unknown");
141
- * user.age = 18;
142
- * assertEquals(user.getAge(), 18);
143
- * });
144
- *
145
- * await t.step("setAge", () => {
146
- * user.setAge(18);
147
- * assertEquals(user.getAge(), 18);
148
- * });
149
- * });
150
- * ```
151
- *
152
- * ### Nested test grouping
153
- *
154
- * Tests created within the callback of a `describe` function call will belong to
155
- * the new test suite it creates. The hooks can be created within it or be added to
156
- * the options argument for describe.
157
- *
158
- * ```ts
159
- * import {
160
- * assertEquals,
161
- * assertStrictEquals,
162
- * assertThrows,
163
- * } from "@std/assert";
164
- * import {
165
- * afterEach,
166
- * beforeEach,
167
- * describe,
168
- * it,
169
- * } from "@std/testing/bdd";
170
- *
171
- * class User {
172
- * static users: Map<string, User> = new Map();
173
- * name: string;
174
- * age?: number;
175
- *
176
- * constructor(name: string) {
177
- * if (User.users.has(name)) {
178
- * throw new Deno.errors.AlreadyExists(`User ${name} already exists`);
179
- * }
180
- * this.name = name;
181
- * User.users.set(name, this);
182
- * }
183
- *
184
- * getAge(): number {
185
- * if (!this.age) {
186
- * throw new Error("Age unknown");
187
- * }
188
- * return this.age;
189
- * }
190
- *
191
- * setAge(age: number) {
192
- * this.age = age;
193
- * }
194
- * }
195
- *
196
- * describe("User", () => {
197
- * it("users initially empty", () => {
198
- * assertEquals(User.users.size, 0);
199
- * });
200
- *
201
- * it("constructor", () => {
202
- * try {
203
- * const user = new User("Kyle");
204
- * assertEquals(user.name, "Kyle");
205
- * assertStrictEquals(User.users.get("Kyle"), user);
206
- * } finally {
207
- * User.users.clear();
208
- * }
209
- * });
210
- *
211
- * describe("age", () => {
212
- * let user: User;
213
- *
214
- * beforeEach(() => {
215
- * user = new User("Kyle");
216
- * });
217
- *
218
- * afterEach(() => {
219
- * User.users.clear();
220
- * });
221
- *
222
- * it("getAge", function () {
223
- * assertThrows(() => user.getAge(), Error, "Age unknown");
224
- * user.age = 18;
225
- * assertEquals(user.getAge(), 18);
226
- * });
227
- *
228
- * it("setAge", function () {
229
- * user.setAge(18);
230
- * assertEquals(user.getAge(), 18);
231
- * });
232
- * });
233
- * });
234
- * ```
235
- *
236
- * ### Flat test grouping
237
- *
238
- * The `describe` function returns a unique symbol that can be used to reference
239
- * the test suite for adding tests to it without having to create them within a
240
- * callback. The gives you the ability to have test grouping without any extra
241
- * indentation in front of the grouped tests.
242
- *
243
- * ```ts
244
- * import {
245
- * assertEquals,
246
- * assertStrictEquals,
247
- * assertThrows,
248
- * } from "@std/assert";
249
- * import {
250
- * describe,
251
- * it,
252
- * } from "@std/testing/bdd";
253
- *
254
- * class User {
255
- * static users: Map<string, User> = new Map();
256
- * name: string;
257
- * age?: number;
258
- *
259
- * constructor(name: string) {
260
- * if (User.users.has(name)) {
261
- * throw new Deno.errors.AlreadyExists(`User ${name} already exists`);
262
- * }
263
- * this.name = name;
264
- * User.users.set(name, this);
265
- * }
266
- *
267
- * getAge(): number {
268
- * if (!this.age) {
269
- * throw new Error("Age unknown");
270
- * }
271
- * return this.age;
272
- * }
273
- *
274
- * setAge(age: number) {
275
- * this.age = age;
276
- * }
277
- * }
278
- *
279
- * const userTests = describe("User");
280
- *
281
- * it(userTests, "users initially empty", () => {
282
- * assertEquals(User.users.size, 0);
283
- * });
284
- *
285
- * it(userTests, "constructor", () => {
286
- * try {
287
- * const user = new User("Kyle");
288
- * assertEquals(user.name, "Kyle");
289
- * assertStrictEquals(User.users.get("Kyle"), user);
290
- * } finally {
291
- * User.users.clear();
292
- * }
293
- * });
294
- *
295
- * const ageTests = describe({
296
- * name: "age",
297
- * suite: userTests,
298
- * beforeEach(this: { user: User }) {
299
- * this.user = new User("Kyle");
300
- * },
301
- * afterEach() {
302
- * User.users.clear();
303
- * },
304
- * });
305
- *
306
- * it(ageTests, "getAge", function () {
307
- * const { user } = this;
308
- * assertThrows(() => user.getAge(), Error, "Age unknown");
309
- * user.age = 18;
310
- * assertEquals(user.getAge(), 18);
311
- * });
312
- *
313
- * it(ageTests, "setAge", function () {
314
- * const { user } = this;
315
- * user.setAge(18);
316
- * assertEquals(user.getAge(), 18);
317
- * });
318
- * ```
319
- *
320
- * ### Mixed test grouping
321
- *
322
- * Both nested test grouping and flat test grouping can be used together. This can
323
- * be useful if you'd like to create deep groupings without all the extra
324
- * indentation in front of each line.
325
- *
326
- * ```ts
327
- * import {
328
- * assertEquals,
329
- * assertStrictEquals,
330
- * assertThrows,
331
- * } from "@std/assert";
332
- * import {
333
- * describe,
334
- * it,
335
- * } from "@std/testing/bdd";
336
- *
337
- * class User {
338
- * static users: Map<string, User> = new Map();
339
- * name: string;
340
- * age?: number;
341
- *
342
- * constructor(name: string) {
343
- * if (User.users.has(name)) {
344
- * throw new Deno.errors.AlreadyExists(`User ${name} already exists`);
345
- * }
346
- * this.name = name;
347
- * User.users.set(name, this);
348
- * }
349
- *
350
- * getAge(): number {
351
- * if (!this.age) {
352
- * throw new Error("Age unknown");
353
- * }
354
- * return this.age;
355
- * }
356
- *
357
- * setAge(age: number) {
358
- * this.age = age;
359
- * }
360
- * }
361
- *
362
- * describe("User", () => {
363
- * it("users initially empty", () => {
364
- * assertEquals(User.users.size, 0);
365
- * });
366
- *
367
- * it("constructor", () => {
368
- * try {
369
- * const user = new User("Kyle");
370
- * assertEquals(user.name, "Kyle");
371
- * assertStrictEquals(User.users.get("Kyle"), user);
372
- * } finally {
373
- * User.users.clear();
374
- * }
375
- * });
376
- *
377
- * const ageTests = describe({
378
- * name: "age",
379
- * beforeEach(this: { user: User }) {
380
- * this.user = new User("Kyle");
381
- * },
382
- * afterEach() {
383
- * User.users.clear();
384
- * },
385
- * });
386
- *
387
- * it(ageTests, "getAge", function () {
388
- * const { user } = this;
389
- * assertThrows(() => user.getAge(), Error, "Age unknown");
390
- * user.age = 18;
391
- * assertEquals(user.getAge(), 18);
392
- * });
393
- *
394
- * it(ageTests, "setAge", function () {
395
- * const { user } = this;
396
- * user.setAge(18);
397
- * assertEquals(user.getAge(), 18);
398
- * });
399
- * });
400
- * ```
401
- *
402
- * @module
403
- */
404
- import * as dntShim from "../../../../../_dnt.test_shims.js";
405
-
406
-
407
- import { getAssertionState } from "../../internal/1.0.5/assertion_state.js";
408
- import { AssertionError } from "../../assert/1.0.11/assertion_error.js";
409
- import {
410
- type DescribeDefinition,
411
- globalSanitizersState,
412
- type HookNames,
413
- type ItDefinition,
414
- type TestSuite,
415
- TestSuiteInternal,
416
- } from "./_test_suite.js";
417
- export type { DescribeDefinition, ItDefinition, TestSuite };
418
-
419
- /** The arguments for an ItFunction. */
420
- export type ItArgs<T> =
421
- | [options: ItDefinition<T>]
422
- | [
423
- name: string,
424
- options: Omit<ItDefinition<T>, "name">,
425
- ]
426
- | [
427
- name: string,
428
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
429
- ]
430
- | [fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>]
431
- | [
432
- name: string,
433
- options: Omit<ItDefinition<T>, "fn" | "name">,
434
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
435
- ]
436
- | [
437
- options: Omit<ItDefinition<T>, "fn">,
438
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
439
- ]
440
- | [
441
- options: Omit<ItDefinition<T>, "fn" | "name">,
442
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
443
- ]
444
- | [
445
- suite: TestSuite<T>,
446
- name: string,
447
- options: Omit<ItDefinition<T>, "name" | "suite">,
448
- ]
449
- | [
450
- suite: TestSuite<T>,
451
- name: string,
452
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
453
- ]
454
- | [
455
- suite: TestSuite<T>,
456
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
457
- ]
458
- | [
459
- suite: TestSuite<T>,
460
- name: string,
461
- options: Omit<ItDefinition<T>, "fn" | "name" | "suite">,
462
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
463
- ]
464
- | [
465
- suite: TestSuite<T>,
466
- options: Omit<ItDefinition<T>, "fn" | "suite">,
467
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
468
- ]
469
- | [
470
- suite: TestSuite<T>,
471
- options: Omit<ItDefinition<T>, "fn" | "name" | "suite">,
472
- fn: (this: T, t: dntShim.Deno.TestContext) => void | Promise<void>,
473
- ];
474
-
475
- /** Generates an ItDefinition from ItArgs. */
476
- function itDefinition<T>(...args: ItArgs<T>): ItDefinition<T> {
477
- let [
478
- suiteOptionsOrNameOrFn,
479
- optionsOrNameOrFn,
480
- optionsOrFn,
481
- fn,
482
- ] = args;
483
- let suite: TestSuite<T> | undefined = undefined;
484
- let name: string;
485
- let options:
486
- | ItDefinition<T>
487
- | Omit<ItDefinition<T>, "fn">
488
- | Omit<ItDefinition<T>, "name">
489
- | Omit<ItDefinition<T>, "fn" | "name">;
490
- if (
491
- typeof suiteOptionsOrNameOrFn === "object" &&
492
- typeof (suiteOptionsOrNameOrFn as TestSuite<T>).symbol === "symbol"
493
- ) {
494
- suite = suiteOptionsOrNameOrFn as TestSuite<T>;
495
- } else {
496
- fn = optionsOrFn as typeof fn;
497
- optionsOrFn = optionsOrNameOrFn as typeof optionsOrFn;
498
- optionsOrNameOrFn = suiteOptionsOrNameOrFn as typeof optionsOrNameOrFn;
499
- }
500
- if (typeof optionsOrNameOrFn === "string") {
501
- name = optionsOrNameOrFn;
502
- if (typeof optionsOrFn === "function") {
503
- fn = optionsOrFn;
504
- options = {};
505
- } else {
506
- options = optionsOrFn!;
507
- if (!fn) fn = (options as Omit<ItDefinition<T>, "name">).fn;
508
- }
509
- } else if (typeof optionsOrNameOrFn === "function") {
510
- fn = optionsOrNameOrFn;
511
- name = fn.name;
512
- options = {};
513
- } else {
514
- options = optionsOrNameOrFn!;
515
- if (typeof optionsOrFn === "function") {
516
- fn = optionsOrFn;
517
- } else {
518
- fn = (options as ItDefinition<T>).fn;
519
- }
520
- name = (options as ItDefinition<T>).name ?? fn.name;
521
- }
522
-
523
- return {
524
- ...(suite !== undefined ? { suite } : {}),
525
- ...options,
526
- name,
527
- fn,
528
- };
529
- }
530
-
531
- /** Registers an individual test case. */
532
- export interface it {
533
- <T>(...args: ItArgs<T>): void;
534
-
535
- /** Registers an individual test case with only set to true. */
536
- only<T>(...args: ItArgs<T>): void;
537
-
538
- /** Registers an individual test case with ignore set to true. */
539
- ignore<T>(...args: ItArgs<T>): void;
540
-
541
- /**
542
- * Registers an individual test case with ignore set to true. Alias of
543
- * `.ignore()`.
544
- */
545
- skip<T>(...args: ItArgs<T>): void;
546
- }
547
-
548
- /**
549
- * Registers an individual test case.
550
- *
551
- * @example Usage
552
- * ```ts
553
- * import { describe, it } from "@std/testing/bdd";
554
- * import { assertEquals } from "@std/assert";
555
- *
556
- * describe("example", () => {
557
- * it("should pass", () => {
558
- * // test case
559
- * assertEquals(2 + 2, 4);
560
- * });
561
- * });
562
- * ```
563
- *
564
- * @typeParam T The self type of the function to implement the test case
565
- * @param args The test case
566
- */
567
- export function it<T>(...args: ItArgs<T>) {
568
- if (TestSuiteInternal.runningCount > 0) {
569
- throw new Error(
570
- "Cannot register new test cases after already registered test cases start running",
571
- );
572
- }
573
- const assertionState = getAssertionState();
574
- const options = itDefinition(...args);
575
- const { suite } = options;
576
- const testSuite = suite
577
- ? TestSuiteInternal.suites.get(suite.symbol)
578
- : TestSuiteInternal.current;
579
-
580
- if (!TestSuiteInternal.started) TestSuiteInternal.started = true;
581
- if (testSuite) {
582
- TestSuiteInternal.addStep(testSuite, options);
583
- } else {
584
- const {
585
- name,
586
- fn,
587
- ignore,
588
- only,
589
- permissions,
590
- sanitizeExit = globalSanitizersState.sanitizeExit,
591
- sanitizeOps = globalSanitizersState.sanitizeOps,
592
- sanitizeResources = globalSanitizersState.sanitizeResources,
593
- } = options;
594
- const opts: dntShim.Deno.TestDefinition = {
595
- name,
596
- async fn(t) {
597
- TestSuiteInternal.runningCount++;
598
- try {
599
- await fn.call({} as T, t);
600
- } finally {
601
- TestSuiteInternal.runningCount--;
602
- }
603
-
604
- if (assertionState.checkAssertionErrorState()) {
605
- throw new AssertionError(
606
- "Expected at least one assertion to be called but received none",
607
- );
608
- }
609
-
610
- if (assertionState.checkAssertionCountSatisfied()) {
611
- throw new AssertionError(
612
- `Expected at least ${assertionState.assertionCount} assertion to be called, ` +
613
- `but received ${assertionState.assertionTriggeredCount}`,
614
- );
615
- }
616
-
617
- assertionState.resetAssertionState();
618
- },
619
- };
620
- if (ignore !== undefined) {
621
- opts.ignore = ignore;
622
- }
623
- if (only !== undefined) {
624
- opts.only = only;
625
- }
626
- if (permissions !== undefined) {
627
- opts.permissions = permissions;
628
- }
629
- if (sanitizeExit !== undefined) {
630
- opts.sanitizeExit = sanitizeExit;
631
- }
632
- if (sanitizeOps !== undefined) {
633
- opts.sanitizeOps = sanitizeOps;
634
- }
635
- if (sanitizeResources !== undefined) {
636
- opts.sanitizeResources = sanitizeResources;
637
- }
638
- TestSuiteInternal.registerTest(opts);
639
- }
640
- }
641
-
642
- /**
643
- * Only execute this test case.
644
- *
645
- * @example Usage
646
- * ```ts
647
- * import { describe, it } from "@std/testing/bdd";
648
- * import { assertEquals } from "@std/assert";
649
- *
650
- * describe("example", () => {
651
- * it("should pass", () => {
652
- * assertEquals(2 + 2, 4);
653
- * });
654
- *
655
- * it.only("should pass too", () => {
656
- * assertEquals(3 + 4, 7);
657
- * });
658
- * });
659
- * ```
660
- *
661
- * @param args The test case
662
- */
663
- it.only = function itOnly<T>(...args: ItArgs<T>): void {
664
- const options = itDefinition(...args);
665
- return it({
666
- ...options,
667
- only: true,
668
- });
669
- };
670
-
671
- /**
672
- * Ignore this test case.
673
- *
674
- * @example Usage
675
- * ```ts
676
- * import { describe, it } from "@std/testing/bdd";
677
- * import { assertEquals } from "@std/assert";
678
- *
679
- * describe("example", () => {
680
- * it("should pass", () => {
681
- * assertEquals(2 + 2, 4);
682
- * });
683
- *
684
- * it.ignore("should pass too", () => {
685
- * assertEquals(3 + 4, 7);
686
- * });
687
- * });
688
- * ```
689
- *
690
- * @param args The test case
691
- */
692
- it.ignore = function itIgnore<T>(...args: ItArgs<T>): void {
693
- const options = itDefinition(...args);
694
- return it({
695
- ...options,
696
- ignore: true,
697
- });
698
- };
699
-
700
- /** Skip this test case.
701
- *
702
- * @example Usage
703
- * ```ts
704
- * import { describe, it } from "@std/testing/bdd";
705
- * import { assertEquals } from "@std/assert";
706
- *
707
- * describe("example", () => {
708
- * it("should pass", () => {
709
- * assertEquals(2 + 2, 4);
710
- * });
711
- *
712
- * it.skip("should pass too", () => {
713
- * assertEquals(3 + 4, 7);
714
- * });
715
- * });
716
- * ```
717
- *
718
- * @param args The test case
719
- */
720
- it.skip = function itSkip<T>(...args: ItArgs<T>): void {
721
- it.ignore(...args);
722
- };
723
-
724
- /**
725
- * Alias of {@linkcode it}
726
- *
727
- * Registers an individual test case.
728
- *
729
- * @example Usage
730
- * ```ts
731
- * import { test } from "@std/testing/bdd";
732
- * import { assertEquals } from "@std/assert";
733
- *
734
- * test("a test case", () => {
735
- * // test case
736
- * assertEquals(2 + 2, 4);
737
- * });
738
- * ```
739
- *
740
- * @typeParam T The self type of the function to implement the test case
741
- * @param args The test case
742
- */
743
- export function test<T>(...args: ItArgs<T>) {
744
- it(...args);
745
- }
746
-
747
- /**
748
- * Only execute this test case.
749
- *
750
- * @example Usage
751
- * ```ts
752
- * import { describe, test } from "@std/testing/bdd";
753
- * import { assertEquals } from "@std/assert";
754
- *
755
- * describe("example", () => {
756
- * test("should pass", () => {
757
- * assertEquals(2 + 2, 4);
758
- * });
759
- *
760
- * test.only("should pass too", () => {
761
- * assertEquals(3 + 4, 7);
762
- * });
763
- * });
764
- * ```
765
- *
766
- * @param args The test case
767
- */
768
- test.only = function itOnly<T>(...args: ItArgs<T>): void {
769
- it.only(...args);
770
- };
771
-
772
- /**
773
- * Ignore this test case.
774
- *
775
- * @example Usage
776
- * ```ts
777
- * import { describe, test } from "@std/testing/bdd";
778
- * import { assertEquals } from "@std/assert";
779
- *
780
- * describe("example", () => {
781
- * test("should pass", () => {
782
- * assertEquals(2 + 2, 4);
783
- * });
784
- *
785
- * test.ignore("should pass too", () => {
786
- * assertEquals(3 + 4, 7);
787
- * });
788
- * });
789
- * ```
790
- *
791
- * @param args The test case
792
- */
793
- test.ignore = function itIgnore<T>(...args: ItArgs<T>): void {
794
- it.ignore(...args);
795
- };
796
-
797
- /** Skip this test case.
798
- *
799
- * @example Usage
800
- * ```ts
801
- * import { describe, test } from "@std/testing/bdd";
802
- * import { assertEquals } from "@std/assert";
803
- *
804
- * describe("example", () => {
805
- * test("should pass", () => {
806
- * assertEquals(2 + 2, 4);
807
- * });
808
- *
809
- * test.skip("should pass too", () => {
810
- * assertEquals(3 + 4, 7);
811
- * });
812
- * });
813
- * ```
814
- *
815
- * @param args The test case
816
- */
817
- test.skip = function itSkip<T>(...args: ItArgs<T>): void {
818
- it.ignore(...args);
819
- };
820
-
821
- function addHook<T>(
822
- name: HookNames,
823
- fn: (this: T) => void | Promise<void>,
824
- ) {
825
- if (!TestSuiteInternal.current) {
826
- if (TestSuiteInternal.started) {
827
- throw new Error(
828
- "Cannot add global hooks after a global test is registered",
829
- );
830
- }
831
- TestSuiteInternal.current = new TestSuiteInternal({
832
- name: "global",
833
- [name]: fn,
834
- });
835
- } else {
836
- TestSuiteInternal.setHook(TestSuiteInternal.current!, name, fn);
837
- }
838
- }
839
-
840
- /**
841
- * Run some shared setup before all of the tests in the group.
842
- * Useful for async setup in `describe` blocks. Outside them,
843
- * top-level initialization code should be used instead.
844
- *
845
- * @example Usage
846
- * ```ts
847
- * import { describe, it, beforeAll } from "@std/testing/bdd";
848
- * import { assertEquals } from "@std/assert";
849
- *
850
- * beforeAll(() => {
851
- * console.log("beforeAll");
852
- * });
853
- *
854
- * describe("example", () => {
855
- * it("should pass", () => {
856
- * // test case
857
- * assertEquals(2 + 2, 4);
858
- * });
859
- * });
860
- * ```
861
- *
862
- * @typeParam T The self type of the function
863
- * @param fn The function to implement the setup behavior.
864
- */
865
- export function beforeAll<T>(
866
- fn: (this: T) => void | Promise<void>,
867
- ) {
868
- addHook("beforeAll", fn);
869
- }
870
-
871
- /**
872
- * Alias of {@linkcode beforeAll}
873
- *
874
- * Run some shared setup before all of the tests in the suite.
875
- *
876
- * @example Usage
877
- * ```ts
878
- * import { describe, it, before } from "@std/testing/bdd";
879
- * import { assertEquals } from "@std/assert";
880
- *
881
- * before(() => {
882
- * console.log("before");
883
- * });
884
- *
885
- * describe("example", () => {
886
- * it("should pass", () => {
887
- * // test case
888
- * assertEquals(2 + 2, 4);
889
- * });
890
- * });
891
- * ```
892
- *
893
- * @typeParam T The self type of the function
894
- * @param fn The function to implement the setup behavior.
895
- */
896
- export function before<T>(
897
- fn: (this: T) => void | Promise<void>,
898
- ) {
899
- beforeAll(fn);
900
- }
901
-
902
- /**
903
- * Run some shared teardown after all of the tests in the suite.
904
- *
905
- * @example Usage
906
- * ```ts
907
- * import { describe, it, afterAll } from "@std/testing/bdd";
908
- * import { assertEquals } from "@std/assert";
909
- *
910
- * afterAll(() => {
911
- * console.log("afterAll");
912
- * });
913
- *
914
- * describe("example", () => {
915
- * it("should pass", () => {
916
- * // test case
917
- * assertEquals(2 + 2, 4);
918
- * });
919
- * });
920
- * ```
921
- *
922
- * @typeParam T The self type of the function
923
- * @param fn The function to implement the teardown behavior.
924
- */
925
- export function afterAll<T>(
926
- fn: (this: T) => void | Promise<void>,
927
- ) {
928
- addHook("afterAll", fn);
929
- }
930
-
931
- /**
932
- * Alias of {@linkcode afterAll}.
933
- *
934
- * Run some shared teardown after all of the tests in the suite.
935
- *
936
- * @example Usage
937
- * ```ts
938
- * import { describe, it, after } from "@std/testing/bdd";
939
- * import { assertEquals } from "@std/assert";
940
- *
941
- * after(() => {
942
- * console.log("after");
943
- * });
944
- *
945
- * describe("example", () => {
946
- * it("should pass", () => {
947
- * // test case
948
- * assertEquals(2 + 2, 4);
949
- * });
950
- * });
951
- * ```
952
- *
953
- * @typeParam T The self type of the function
954
- * @param fn The function to implement the teardown behavior.
955
- */
956
- export function after<T>(
957
- fn: (this: T) => void | Promise<void>,
958
- ) {
959
- afterAll(fn);
960
- }
961
-
962
- /**
963
- * Run some shared setup before each test in the suite.
964
- *
965
- * @example Usage
966
- * ```ts
967
- * import { describe, it, beforeEach } from "@std/testing/bdd";
968
- * import { assertEquals } from "@std/assert";
969
- *
970
- * beforeEach(() => {
971
- * console.log("beforeEach");
972
- * });
973
- *
974
- * describe("example", () => {
975
- * it("should pass", () => {
976
- * // test case
977
- * assertEquals(2 + 2, 4);
978
- * });
979
- * });
980
- * ```
981
- *
982
- * @typeParam T The self type of the function
983
- * @param fn The function to implement the shared setup behavior
984
- */
985
- export function beforeEach<T>(
986
- fn: (this: T) => void | Promise<void>,
987
- ) {
988
- addHook("beforeEach", fn);
989
- }
990
-
991
- /**
992
- * Run some shared teardown after each test in the suite.
993
- *
994
- * @example Usage
995
- * ```ts
996
- * import { describe, it, afterEach } from "@std/testing/bdd";
997
- * import { assertEquals } from "@std/assert";
998
- *
999
- * afterEach(() => {
1000
- * console.log("afterEach");
1001
- * });
1002
- *
1003
- * describe("example", () => {
1004
- * it("should pass", () => {
1005
- * // test case
1006
- * assertEquals(2 + 2, 4);
1007
- * });
1008
- * });
1009
- * ```
1010
- *
1011
- * @typeParam T The self type of the function
1012
- * @param fn The function to implement the shared teardown behavior
1013
- */
1014
- export function afterEach<T>(
1015
- fn: (this: T) => void | Promise<void>,
1016
- ) {
1017
- addHook("afterEach", fn);
1018
- }
1019
-
1020
- /** The arguments for a DescribeFunction. */
1021
- export type DescribeArgs<T> =
1022
- | [options: DescribeDefinition<T>]
1023
- | [name: string]
1024
- | [
1025
- name: string,
1026
- options: Omit<DescribeDefinition<T>, "name">,
1027
- ]
1028
- | [name: string, fn: () => void | undefined]
1029
- | [fn: () => void | undefined]
1030
- | [
1031
- name: string,
1032
- options: Omit<DescribeDefinition<T>, "fn" | "name">,
1033
- fn: () => void | undefined,
1034
- ]
1035
- | [
1036
- options: Omit<DescribeDefinition<T>, "fn">,
1037
- fn: () => void | undefined,
1038
- ]
1039
- | [
1040
- options: Omit<DescribeDefinition<T>, "fn" | "name">,
1041
- fn: () => void | undefined,
1042
- ]
1043
- | [
1044
- suite: TestSuite<T>,
1045
- name: string,
1046
- ]
1047
- | [
1048
- suite: TestSuite<T>,
1049
- name: string,
1050
- options: Omit<DescribeDefinition<T>, "name" | "suite">,
1051
- ]
1052
- | [
1053
- suite: TestSuite<T>,
1054
- name: string,
1055
- fn: () => void | undefined,
1056
- ]
1057
- | [
1058
- suite: TestSuite<T>,
1059
- fn: () => void | undefined,
1060
- ]
1061
- | [
1062
- suite: TestSuite<T>,
1063
- name: string,
1064
- options: Omit<DescribeDefinition<T>, "fn" | "name" | "suite">,
1065
- fn: () => void | undefined,
1066
- ]
1067
- | [
1068
- suite: TestSuite<T>,
1069
- options: Omit<DescribeDefinition<T>, "fn" | "suite">,
1070
- fn: () => void | undefined,
1071
- ]
1072
- | [
1073
- suite: TestSuite<T>,
1074
- options: Omit<DescribeDefinition<T>, "fn" | "name" | "suite">,
1075
- fn: () => void | undefined,
1076
- ];
1077
-
1078
- /** Generates a DescribeDefinition from DescribeArgs. */
1079
- function describeDefinition<T>(
1080
- ...args: DescribeArgs<T>
1081
- ): DescribeDefinition<T> {
1082
- let [
1083
- suiteOptionsOrNameOrFn,
1084
- optionsOrNameOrFn,
1085
- optionsOrFn,
1086
- fn,
1087
- ] = args;
1088
- let suite: TestSuite<T> | undefined = undefined;
1089
- let name: string;
1090
- let options:
1091
- | DescribeDefinition<T>
1092
- | Omit<DescribeDefinition<T>, "fn">
1093
- | Omit<DescribeDefinition<T>, "name">
1094
- | Omit<DescribeDefinition<T>, "fn" | "name">;
1095
- if (
1096
- typeof suiteOptionsOrNameOrFn === "object" &&
1097
- typeof (suiteOptionsOrNameOrFn as TestSuite<T>).symbol === "symbol"
1098
- ) {
1099
- suite = suiteOptionsOrNameOrFn as TestSuite<T>;
1100
- } else {
1101
- fn = optionsOrFn as typeof fn;
1102
- optionsOrFn = optionsOrNameOrFn as typeof optionsOrFn;
1103
- optionsOrNameOrFn = suiteOptionsOrNameOrFn as typeof optionsOrNameOrFn;
1104
- }
1105
- if (typeof optionsOrNameOrFn === "string") {
1106
- name = optionsOrNameOrFn;
1107
- if (typeof optionsOrFn === "function") {
1108
- fn = optionsOrFn;
1109
- options = {};
1110
- } else {
1111
- options = optionsOrFn ?? {};
1112
- if (fn === undefined) {
1113
- fn = (options as Omit<DescribeDefinition<T>, "name">).fn;
1114
- }
1115
- }
1116
- } else if (typeof optionsOrNameOrFn === "function") {
1117
- fn = optionsOrNameOrFn;
1118
- name = fn.name;
1119
- options = {};
1120
- } else {
1121
- options = optionsOrNameOrFn ?? {};
1122
- if (typeof optionsOrFn === "function") {
1123
- fn = optionsOrFn;
1124
- } else {
1125
- fn = (options as DescribeDefinition<T>).fn;
1126
- }
1127
- name = (options as DescribeDefinition<T>).name ?? fn?.name ?? "";
1128
- }
1129
-
1130
- if (suite === undefined) {
1131
- suite = options.suite;
1132
- }
1133
- if (suite === undefined && TestSuiteInternal.current) {
1134
- const { symbol } = TestSuiteInternal.current;
1135
- suite = { symbol };
1136
- }
1137
-
1138
- return {
1139
- ...options,
1140
- suite: suite!,
1141
- name,
1142
- fn: fn!,
1143
- };
1144
- }
1145
-
1146
- /** Registers a test suite. */
1147
- export interface describe {
1148
- <T>(...args: DescribeArgs<T>): TestSuite<T>;
1149
-
1150
- /** Registers a test suite with only set to true. */
1151
- only<T>(...args: DescribeArgs<T>): TestSuite<T>;
1152
-
1153
- /** Registers a test suite with ignore set to true. */
1154
- ignore<T>(...args: DescribeArgs<T>): TestSuite<T>;
1155
-
1156
- /** Registers a test suite with ignore set to true. Alias of `.ignore()`. */
1157
- skip<T>(...args: ItArgs<T>): void;
1158
- }
1159
-
1160
- /**
1161
- * Registers a test suite.
1162
- *
1163
- * @example Usage
1164
- * ```ts
1165
- * import { describe, it } from "@std/testing/bdd";
1166
- * import { assertEquals } from "@std/assert";
1167
- *
1168
- * describe("example", () => {
1169
- * it("should pass", () => {
1170
- * // test case
1171
- * assertEquals(2 + 2, 4);
1172
- * });
1173
- * });
1174
- * ```
1175
- *
1176
- * @typeParam T The self type of the test suite body.
1177
- * @param args The test suite body.
1178
- * @returns The test suite
1179
- */
1180
- export function describe<T>(
1181
- ...args: DescribeArgs<T>
1182
- ): TestSuite<T> {
1183
- if (TestSuiteInternal.runningCount > 0) {
1184
- throw new Error(
1185
- "Cannot register new test suites after already registered test cases start running",
1186
- );
1187
- }
1188
- const options = describeDefinition(...args);
1189
- if (!TestSuiteInternal.started) TestSuiteInternal.started = true;
1190
- const { symbol } = new TestSuiteInternal(options);
1191
- return { symbol };
1192
- }
1193
-
1194
- /**
1195
- * Only execute this test suite.
1196
- *
1197
- * @example Usage
1198
- * ```ts
1199
- * import { describe, it, beforeAll } from "@std/testing/bdd";
1200
- * import { assertEquals } from "@std/assert";
1201
- *
1202
- * describe("example", () => {
1203
- * it("should pass", () => {
1204
- * assertEquals(2 + 2, 4);
1205
- * });
1206
- * });
1207
- *
1208
- * // Only this test suite will run
1209
- * describe.only("example 2", () => {
1210
- * it("should pass too", () => {
1211
- * assertEquals(3 + 4, 7);
1212
- * });
1213
- * });
1214
- * ```
1215
- *
1216
- * @param args The test suite body
1217
- */
1218
- describe.only = function describeOnly<T>(
1219
- ...args: DescribeArgs<T>
1220
- ): TestSuite<T> {
1221
- const options = describeDefinition(...args);
1222
- return describe({
1223
- ...options,
1224
- only: true,
1225
- });
1226
- };
1227
-
1228
- /**
1229
- * Ignore the test suite.
1230
- *
1231
- * @example Usage
1232
- * ```ts
1233
- * import { describe, it, beforeAll } from "@std/testing/bdd";
1234
- * import { assertEquals } from "@std/assert";
1235
- *
1236
- * describe("example", () => {
1237
- * it("should pass", () => {
1238
- * assertEquals(2 + 2, 4);
1239
- * });
1240
- * });
1241
- *
1242
- * describe.ignore("example 2", () => {
1243
- * it("should pass too", () => {
1244
- * assertEquals(3 + 4, 7);
1245
- * });
1246
- * });
1247
- * ```
1248
- *
1249
- * @param args The test suite body
1250
- */
1251
- describe.ignore = function describeIgnore<T>(
1252
- ...args: DescribeArgs<T>
1253
- ): TestSuite<T> {
1254
- const options = describeDefinition(...args);
1255
- return describe({
1256
- ...options,
1257
- ignore: true,
1258
- });
1259
- };
1260
-
1261
- /**
1262
- * Skip the test suite.
1263
- *
1264
- * @example Usage
1265
- * ```ts
1266
- * import { describe, it, beforeAll } from "@std/testing/bdd";
1267
- * import { assertEquals } from "@std/assert";
1268
- *
1269
- * describe("example", () => {
1270
- * it("should pass", () => {
1271
- * assertEquals(2 + 2, 4);
1272
- * });
1273
- * });
1274
- *
1275
- * describe.skip("example 2", () => {
1276
- * it("should pass too", () => {
1277
- * assertEquals(3 + 4, 7);
1278
- * });
1279
- * });
1280
- * ```
1281
- *
1282
- * @param args The test suite body
1283
- */
1284
- describe.skip = function describeSkip<T>(
1285
- ...args: DescribeArgs<T>
1286
- ): TestSuite<T> {
1287
- return describe.ignore(...args);
1288
- };