@asyncapi/generator 2.7.1 → 2.8.2

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 (230) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/docs/api.md +32 -0
  3. package/docs/baked-in-templates.md +100 -0
  4. package/docs/configuration-file.md +49 -31
  5. package/docs/template.md +22 -3
  6. package/lib/generator.js +31 -3
  7. package/lib/templates/BakedInTemplatesList.json +27 -0
  8. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/.ageneratorrc +21 -0
  9. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/README.md +12 -0
  10. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientClass.js +42 -0
  11. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientClass.js.map +1 -0
  12. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientFields.js +21 -0
  13. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientFields.js.map +1 -0
  14. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/Connect.js +60 -0
  15. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/Connect.js.map +1 -0
  16. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/Constructor.js +27 -0
  17. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/Constructor.js.map +1 -0
  18. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/HandleMessage.js +21 -0
  19. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/HandleMessage.js.map +1 -0
  20. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/RegisterErrorHandler.js +21 -0
  21. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/RegisterErrorHandler.js.map +1 -0
  22. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/SendEchoMessage.js +27 -0
  23. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/SendEchoMessage.js.map +1 -0
  24. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/client.dart.js +181 -0
  25. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/client.dart.js.map +1 -0
  26. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/pubspec.yaml.js +21 -0
  27. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/pubspec.yaml.js.map +1 -0
  28. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/ClientClass.js +32 -0
  29. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/ClientFields.js +12 -0
  30. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/Connect.js +49 -0
  31. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/Constructor.js +16 -0
  32. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/HandleMessage.js +14 -0
  33. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/RegisterErrorHandler.js +14 -0
  34. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/SendEchoMessage.js +20 -0
  35. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/example.dart +36 -0
  36. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/package.json +54 -0
  37. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/template/client.dart.js +24 -0
  38. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/template/pubspec.yaml.js +16 -0
  39. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/.ageneratorrc +25 -0
  40. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/README.md +28 -0
  41. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientConnector.js +27 -0
  42. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientConnector.js.map +1 -0
  43. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientFields.js +19 -0
  44. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ClientFields.js.map +1 -0
  45. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ConnectorFields.js +22 -0
  46. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/ConnectorFields.js.map +1 -0
  47. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/EchoWebSocket.js +40 -0
  48. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/EchoWebSocket.js.map +1 -0
  49. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/HandleError.js +20 -0
  50. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/HandleError.js.map +1 -0
  51. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/InitConnector.js +47 -0
  52. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/InitConnector.js.map +1 -0
  53. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnClose.js +23 -0
  54. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnClose.js.map +1 -0
  55. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnOpen.js +25 -0
  56. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnOpen.js.map +1 -0
  57. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnTextMessageHandler.js +29 -0
  58. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/OnTextMessageHandler.js.map +1 -0
  59. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ClientDependencies.js +29 -0
  60. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ClientDependencies.js.map +1 -0
  61. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ConnectorDependencies.js +27 -0
  62. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/dependencies/ConnectorDependencies.js.map +1 -0
  63. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js +154 -0
  64. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js.map +1 -0
  65. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/connector.java.js +108 -0
  66. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/connector.java.js.map +1 -0
  67. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/models/model.js +52 -0
  68. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/models/model.js.map +1 -0
  69. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/resources/AppProperties.js +27 -0
  70. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/resources/AppProperties.js.map +1 -0
  71. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ClientConnector.js +17 -0
  72. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ClientFields.js +10 -0
  73. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/ConnectorFields.js +11 -0
  74. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/EchoWebSocket.js +27 -0
  75. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/HandleError.js +14 -0
  76. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/InitConnector.js +41 -0
  77. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/OnClose.js +16 -0
  78. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/OnOpen.js +16 -0
  79. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/OnTextMessageHandler.js +25 -0
  80. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/dependencies/ClientDependencies.js +23 -0
  81. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/dependencies/ConnectorDependencies.js +20 -0
  82. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/package.json +63 -0
  83. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/.dockerignore +5 -0
  84. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/.mvn/wrapper/MavenWrapperDownloader.java +93 -0
  85. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/.mvn/wrapper/maven-wrapper.properties +20 -0
  86. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/README.md +58 -0
  87. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/mvnw +332 -0
  88. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/mvnw.cmd +206 -0
  89. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/pom.xml +125 -0
  90. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/docker/Dockerfile.jvm +98 -0
  91. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/java/com/asyncapi/client.java.js +27 -0
  92. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/java/com/asyncapi/connector.java.js +16 -0
  93. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/java/com/asyncapi/models/model.js +36 -0
  94. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/template/src/main/resources/AppProperties.js +19 -0
  95. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/.ageneratorrc +21 -0
  96. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/README.md +10 -0
  97. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/AvailableOperations.js +34 -0
  98. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/AvailableOperations.js.map +1 -0
  99. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js +47 -0
  100. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js.map +1 -0
  101. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Connect.js +63 -0
  102. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Connect.js.map +1 -0
  103. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js +29 -0
  104. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js.map +1 -0
  105. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/HandleMessage.js +21 -0
  106. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/HandleMessage.js.map +1 -0
  107. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/MessageExamples.js +29 -0
  108. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/MessageExamples.js.map +1 -0
  109. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ModuleExport.js +18 -0
  110. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ModuleExport.js.map +1 -0
  111. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/OperationHeader.js +19 -0
  112. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/OperationHeader.js.map +1 -0
  113. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/RegisterErrorHandler.js +25 -0
  114. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/RegisterErrorHandler.js.map +1 -0
  115. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/SendOperation.js +53 -0
  116. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/SendOperation.js.map +1 -0
  117. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/example.js +43 -0
  118. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/example.js.map +1 -0
  119. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/README.md.js +166 -0
  120. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/README.md.js.map +1 -0
  121. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js +216 -0
  122. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js.map +1 -0
  123. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/AvailableOperations.js +20 -0
  124. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/ClientClass.js +32 -0
  125. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/Connect.js +54 -0
  126. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/Constructor.js +21 -0
  127. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/HandleMessage.js +14 -0
  128. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/MessageExamples.js +25 -0
  129. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/ModuleExport.js +11 -0
  130. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/OperationHeader.js +12 -0
  131. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/RegisterErrorHandler.js +18 -0
  132. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/SendOperation.js +44 -0
  133. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/example.js +42 -0
  134. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/package.json +54 -0
  135. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/template/README.md.js +106 -0
  136. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/template/client.js.js +24 -0
  137. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/.ageneratorrc +21 -0
  138. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/README.md +53 -0
  139. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/ClientClass.js +61 -0
  140. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/ClientClass.js.map +1 -0
  141. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Connect.js +58 -0
  142. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Connect.js.map +1 -0
  143. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Constructor.js +55 -0
  144. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Constructor.js.map +1 -0
  145. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleError.js +25 -0
  146. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleError.js.map +1 -0
  147. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleMessage.js +24 -0
  148. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleMessage.js.map +1 -0
  149. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/InitSignature.js +34 -0
  150. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/InitSignature.js.map +1 -0
  151. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/QueryParamsArgumentsDocs.js +27 -0
  152. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/QueryParamsArgumentsDocs.js.map +1 -0
  153. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/QueryParamsVariables.js +36 -0
  154. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/QueryParamsVariables.js.map +1 -0
  155. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/RegisterErrorHandler.js +23 -0
  156. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/RegisterErrorHandler.js.map +1 -0
  157. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/RegisterOutgoingProcessor.js +26 -0
  158. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/RegisterOutgoingProcessor.js.map +1 -0
  159. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Requires.js +24 -0
  160. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Requires.js.map +1 -0
  161. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Send.js +41 -0
  162. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/Send.js.map +1 -0
  163. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/SendOperation.js +56 -0
  164. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/SendOperation.js.map +1 -0
  165. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/client.py.js +379 -0
  166. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/client.py.js.map +1 -0
  167. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/models.js +15 -0
  168. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/models.js.map +1 -0
  169. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/requirements.txt.js +19 -0
  170. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/requirements.txt.js.map +1 -0
  171. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/ClientClass.js +47 -0
  172. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/Connect.js +49 -0
  173. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/Constructor.js +42 -0
  174. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/HandleError.js +18 -0
  175. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/HandleMessage.js +17 -0
  176. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/InitSignature.js +24 -0
  177. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/QueryParamsArgumentsDocs.js +19 -0
  178. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/QueryParamsVariables.js +27 -0
  179. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/RegisterErrorHandler.js +16 -0
  180. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/RegisterOutgoingProcessor.js +19 -0
  181. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/Requires.js +15 -0
  182. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/Send.js +33 -0
  183. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/SendOperation.js +50 -0
  184. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/example-slack.py +21 -0
  185. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/example.py +41 -0
  186. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/package.json +54 -0
  187. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/template/client.py.js +23 -0
  188. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/template/models.js +5 -0
  189. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/template/requirements.txt.js +13 -0
  190. package/lib/templates/bakedInTemplates.js +53 -0
  191. package/package.json +8 -3
  192. package/test/__mocks__/@npmcli/arborist.js +0 -11
  193. package/test/__mocks__/@npmcli/config.js +0 -3
  194. package/test/__mocks__/fs.extra.js +0 -3
  195. package/test/__mocks__/loglevel.js +0 -3
  196. package/test/__mocks__/resolve-from.js +0 -8
  197. package/test/__mocks__/resolve-pkg.js +0 -8
  198. package/test/__snapshots__/integration.test.js.snap +0 -419
  199. package/test/docs/apiwithref.json +0 -41
  200. package/test/docs/dummy.yml +0 -390
  201. package/test/docs/dummyV3.yml +0 -31
  202. package/test/docs/shared.json +0 -27
  203. package/test/docs/ws.yml +0 -36
  204. package/test/generator.test.js +0 -629
  205. package/test/hooksRegistry.test.js +0 -173
  206. package/test/integration.test.js +0 -203
  207. package/test/parser.test.js +0 -205
  208. package/test/renderer.test.js +0 -62
  209. package/test/templateConfigValidator.test.js +0 -294
  210. package/test/test-project/.yarncr.yml +0 -3
  211. package/test/test-project/README.md +0 -8
  212. package/test/test-project/docker-compose.yml +0 -16
  213. package/test/test-project/package.json +0 -24
  214. package/test/test-project/test-global.test.js +0 -37
  215. package/test/test-project/test-project.test.js +0 -102
  216. package/test/test-project/test-registry.test.js +0 -62
  217. package/test/test-project/test.sh +0 -104
  218. package/test/test-project/verdaccio/config.yaml +0 -22
  219. package/test/test-project/verdaccio/htpasswd +0 -1
  220. package/test/test-templates/nunjucks-template/package-lock.json +0 -4062
  221. package/test/test-templates/nunjucks-template/package.json +0 -21
  222. package/test/test-templates/nunjucks-template/template/test-file.md +0 -5
  223. package/test/test-templates/react-template/.ageneratorrc +0 -33
  224. package/test/test-templates/react-template/package.json +0 -14
  225. package/test/test-templates/react-template/template/conditionalFile.txt +0 -0
  226. package/test/test-templates/react-template/template/conditionalFolder/conditionalFile.txt +0 -0
  227. package/test/test-templates/react-template/template/conditionalFolder2/input.txt +0 -0
  228. package/test/test-templates/react-template/template/models.js +0 -6
  229. package/test/test-templates/react-template/template/test-file.md.js +0 -11
  230. package/test/utils.test.js +0 -129
@@ -1,173 +0,0 @@
1
- /**
2
- * @jest-environment node
3
- */
4
- const fs = require('fs');
5
- const path = require('path');
6
- const { addHook, registerLocalHooks, registerConfigHooks, registerHooks } = require('../lib/hooksRegistry');
7
-
8
- jest.mock('fs');
9
- jest.mock('path');
10
-
11
- describe('hooksRegistry', () => {
12
- let hooks;
13
-
14
- beforeEach(() => {
15
- hooks = {}; // reset hooks for each test
16
- jest.clearAllMocks(); // Reset all mocks
17
- jest.resetModules(); // Reset modules
18
- });
19
-
20
- describe('registerHooks', () => {
21
- it('registers both local and config hooks', async () => {
22
- const templateDir = path.join(__dirname, 'fixtures', 'template', 'hooks');
23
- const hooksDir = path.join(__dirname, 'hooks');
24
-
25
- fs.mkdirSync(hooksDir, { recursive: true });
26
- fs.writeFileSync(path.join(hooksDir, 'preGenerate.js'), `
27
- module.exports = function localPreGenerateHook() {};
28
- `);
29
-
30
- const templateConfig = {
31
- hooks: {
32
- '@asyncapi/hooks-module': ['configPreGenerateHook']
33
- }
34
- };
35
-
36
- jest.mock('@asyncapi/hooks-module', () => ({
37
- preGenerate: [function configPreGenerateHook() {}]
38
- }), { virtual: true });
39
-
40
- const result = await registerHooks(hooks, templateConfig, templateDir, 'hooks');
41
-
42
- expect(result.preGenerate).toHaveLength(1);
43
- expect(result.preGenerate[0].name).toBe('configPreGenerateHook');
44
-
45
- fs.rmSync(hooksDir, { recursive: true, force: true });
46
- });
47
- });
48
-
49
- describe('registerLocalHooks', () => {
50
- const mockPreGenerateHook = function preGenerateHook() {};
51
-
52
- beforeAll(() => {
53
- path.join.mockImplementation((...args) => args.join('/'));
54
- });
55
-
56
- beforeEach(() => {
57
- fs.existsSync.mockReturnValue(true);
58
- fs.readdirSync.mockReturnValue(['preGenerate.js']);
59
-
60
- jest.mock('fixtures/template/hooks/preGenerate.js', () => mockPreGenerateHook, { virtual: true });
61
- });
62
-
63
- it('handles missing hooks directory', async () => {
64
- fs.existsSync.mockReturnValueOnce(false);
65
-
66
- const result = await registerLocalHooks(hooks, '/non/existent/path', 'hooks');
67
- expect(result).toBe(hooks);
68
- expect(result.preGenerate).toBeUndefined();
69
- });
70
-
71
- it('handles errors during hook loading', async () => {
72
- fs.existsSync.mockReturnValue(true);
73
- fs.readdirSync.mockReturnValue(['errorHook.js']);
74
-
75
- jest.mock('fixtures/template/hooks/errorHook.js', () => {
76
- throw new Error('Mock import error');
77
- }, { virtual: true });
78
-
79
- await expect(registerLocalHooks(hooks, 'fixtures/template', 'hooks'))
80
- .resolves.not.toThrow();
81
-
82
- expect(hooks).toEqual({});
83
- });
84
- });
85
-
86
- describe('registerConfigHooks', () => {
87
- it('registers hooks from template config', async () => {
88
- const templateDir = path.join(__dirname, 'fixtures', 'template');
89
- const templateConfig = {
90
- hooks: {
91
- '@asyncapi/hooks-module': ['preGenerateHook']
92
- }
93
- };
94
-
95
- // Mock the hook module
96
- jest.mock('@asyncapi/hooks-module', () => ({
97
- preGenerate: [function preGenerateHook() {}]
98
- }), { virtual: true });
99
-
100
- const result = await registerConfigHooks(hooks, templateDir, templateConfig);
101
-
102
- expect(result.preGenerate).toHaveLength(1);
103
- expect(result.preGenerate[0].name).toBe('preGenerateHook');
104
- });
105
-
106
- it('handles missing hooks in config', async () => {
107
- const result = await registerConfigHooks(hooks, '', {});
108
- expect(result).toBeUndefined();
109
- expect(hooks).toEqual({});
110
- });
111
- });
112
-
113
- describe('addHooks', () => {
114
- it('adds hooks from module to hooks object', () => {
115
- const mod = {
116
- preGenerate: [function preGenerateHook() {}],
117
- postGenerate: [function postGenerateHook() {}]
118
- };
119
-
120
- addHook(hooks, mod, null);
121
-
122
- expect(hooks.preGenerate).toHaveLength(1);
123
- expect(hooks.postGenerate).toHaveLength(1);
124
- expect(hooks.preGenerate[0].name).toBe('preGenerateHook');
125
- expect(hooks.postGenerate[0].name).toBe('postGenerateHook');
126
- });
127
-
128
- it('adds hooks from module.default if it exists', () => {
129
- const mod = {
130
- default: {
131
- preGenerate: [function preGenerateHook() {}],
132
- postGenerate: [function postGenerateHook() {}]
133
- }
134
- };
135
-
136
- addHook(hooks, mod, null);
137
-
138
- expect(hooks.preGenerate).toHaveLength(1);
139
- expect(hooks.postGenerate).toHaveLength(1);
140
- expect(hooks.preGenerate[0].name).toBe('preGenerateHook');
141
- expect(hooks.postGenerate[0].name).toBe('postGenerateHook');
142
- });
143
-
144
- it('does not add hooks that are not in config', () => {
145
- const mod = {
146
- preGenerate: [function preGenerateHook() {}],
147
- postGenerate: [function postGenerateHook() {}]
148
- };
149
- const config = ['preGenerateHook'];
150
-
151
- addHook(hooks, mod, config);
152
-
153
- expect(hooks.preGenerate).toHaveLength(1);
154
- expect(hooks.postGenerate).toBeUndefined();
155
- expect(hooks.preGenerate[0].name).toBe('preGenerateHook');
156
- });
157
-
158
- it('adds hooks that are in config', () => {
159
- const mod = {
160
- preGenerate: [function preGenerateHook() {}],
161
- postGenerate: [function postGenerateHook() {}]
162
- };
163
- const config = ['preGenerateHook', 'postGenerateHook'];
164
-
165
- addHook(hooks, mod, config);
166
-
167
- expect(hooks.preGenerate).toHaveLength(1);
168
- expect(hooks.postGenerate).toHaveLength(1);
169
- expect(hooks.preGenerate[0].name).toBe('preGenerateHook');
170
- expect(hooks.postGenerate[0].name).toBe('postGenerateHook');
171
- });
172
- });
173
- });
@@ -1,203 +0,0 @@
1
- /**
2
- * @jest-environment node
3
- */
4
-
5
- const path = require('path');
6
- const { readFile, writeFile, access, mkdir } = require('fs').promises;
7
- const { copy } = require('fs-extra');
8
- const Generator = require('../lib/generator');
9
- const dummySpecPath = path.resolve(__dirname, './docs/dummy.yml');
10
- const refSpecPath = path.resolve(__dirname, './docs/apiwithref.json');
11
- const refSpecFolder = path.resolve(__dirname, './docs/');
12
- const crypto = require('crypto');
13
- const mainTestResultPath = path.resolve(__dirname, './temp/integrationTestResult');
14
- const reactTemplate = path.resolve(__dirname, './test-templates/react-template');
15
- const nunjucksTemplate = path.resolve(__dirname, './test-templates/nunjucks-template');
16
- //temp location where react template is copied for each test that does some mutation on template files
17
- const copyOfReactTemplate = path.resolve(__dirname, './temp/reactTemplate');
18
-
19
- describe('Integration testing generateFromFile() to make sure the result of the generation is not changend comparing to snapshot', () => {
20
- const generateFolderName = () => {
21
- //you always want to generate to new directory to make sure test runs in clear environment
22
- return path.resolve(mainTestResultPath, crypto.randomBytes(4).toString('hex'));
23
- };
24
-
25
- const getCleanReactTemplate = async () => {
26
- //for each test new react template is needed in unique location
27
- const newReactTemplateLocation = path.resolve(copyOfReactTemplate, crypto.randomBytes(4).toString('hex'));
28
- await copy(reactTemplate, newReactTemplateLocation);
29
- return newReactTemplateLocation;
30
- };
31
-
32
- jest.setTimeout(100000);
33
- const testOutputFile = 'test-file.md';
34
-
35
- const tempJsContent = `
36
- import { File, Text } from '@asyncapi/generator-react-sdk';
37
-
38
- export default function() {
39
- return (
40
- <File name="temp.md">
41
- <Text>Test</Text>
42
- </File>
43
- );
44
- }
45
- `;
46
-
47
- it('generated using Nunjucks template', async () => {
48
- const outputDir = generateFolderName();
49
- const generator = new Generator(nunjucksTemplate, outputDir, {
50
- forceWrite: true,
51
- templateParams: { version: 'v1', mode: 'production' }
52
- });
53
- await generator.generateFromFile(dummySpecPath);
54
- const file = await readFile(path.join(outputDir, testOutputFile), 'utf8');
55
- expect(file).toMatchSnapshot();
56
- });
57
-
58
- it('generate using React template', async () => {
59
- const outputDir = generateFolderName();
60
- const generator = new Generator(reactTemplate, outputDir, {
61
- forceWrite: true ,
62
- templateParams: { version: 'v1', mode: 'production' }
63
- });
64
- await generator.generateFromFile(dummySpecPath);
65
- const mdFile = await readFile(path.join(outputDir, testOutputFile), 'utf8');
66
- //react template has hooks lib enabled and generation of asyncapi document that was passed as input should work out of the box without adding @asyncapi/generator-hooks to dependencies
67
- const asyncAPIFile = await readFile(path.join(outputDir, 'asyncapi.yaml'), 'utf8');
68
- expect(mdFile).toMatchSnapshot();
69
- expect(asyncAPIFile).toMatchSnapshot();
70
- });
71
-
72
- it('generate json based api with referenced JSON Schema', async () => {
73
- const outputDir = generateFolderName();
74
- const generator = new Generator(reactTemplate, outputDir, {
75
- mapBaseUrlToFolder: { url: 'https://schema.example.com/crm/', folder: `${refSpecFolder}/`},
76
- forceWrite: true,
77
- templateParams: { version: 'v1', mode: 'production' }
78
- });
79
- await generator.generateFromFile(refSpecPath);
80
- const file = await readFile(path.join(outputDir, testOutputFile), 'utf8');
81
- expect(file).toMatchSnapshot();
82
- });
83
-
84
- it('check if the temp.md file is created with compile option true', async () => {
85
- const outputDir = generateFolderName();
86
- const cleanReactTemplate = await getCleanReactTemplate();
87
- // Create temp.md.js file dynamically
88
-
89
- const tempJsPath = path.join(cleanReactTemplate, 'template/temp.md.js');
90
- // Create temp.md.js file dynamically
91
- await writeFile(tempJsPath, tempJsContent);
92
-
93
- const generator = new Generator(cleanReactTemplate, outputDir, {
94
- forceWrite: true,
95
- compile: true,
96
- debug: true,
97
- });
98
- await generator.generateFromFile(dummySpecPath);
99
-
100
- const tempMdPath = path.join(outputDir, 'temp.md');
101
-
102
- // Check the content of temp.md
103
- const tempMdContent = await readFile(tempMdPath, 'utf8');
104
- expect(tempMdContent.trim()).toBe('Test');
105
- });
106
-
107
- it('check if the temp.md file is not created when compile option is false', async () => {
108
- const outputDir = generateFolderName();
109
- const cleanReactTemplate = await getCleanReactTemplate();
110
- // Create temp.md.js file dynamically
111
- const tempJsPath = path.join(cleanReactTemplate, 'template/temp.md.js');
112
- await writeFile(tempJsPath, tempJsContent);
113
-
114
- const generator = new Generator(cleanReactTemplate, outputDir, {
115
- forceWrite: true,
116
- compile: false,
117
- debug: true
118
- });
119
- await generator.generateFromFile(dummySpecPath);
120
-
121
- // Check if temp.md is not created in the output directory
122
- const tempMdPath = path.join(outputDir, 'temp.md');
123
- const tempMdExists = await access(tempMdPath).then(() => true).catch(() => false);
124
- expect(tempMdExists).toBe(false);
125
- });
126
-
127
- it('should ignore specified files with noOverwriteGlobs', async () => {
128
- const outputDir = generateFolderName();
129
- const cleanReactTemplate = await getCleanReactTemplate();
130
- // Manually create a file to test if it's not overwritten
131
- await mkdir(outputDir, { recursive: true });
132
- // Create a variable to store the file content
133
- const testContent = '<script>const initialContent = "This should not change";</script>';
134
- // eslint-disable-next-line sonarjs/no-duplicate-string
135
- const testFilePath = path.normalize(path.resolve(outputDir, testOutputFile));
136
- await writeFile(testFilePath, testContent);
137
-
138
- // Manually create an output first, before generation, with additional custom file to validate if later it is still there, not overwritten
139
- const generator = new Generator(cleanReactTemplate, outputDir, {
140
- forceWrite: true,
141
- noOverwriteGlobs: [`**/${testOutputFile}`],
142
- debug: true,
143
- });
144
-
145
- await generator.generateFromFile(dummySpecPath);
146
-
147
- // Read the file to confirm it was not overwritten
148
- const fileContent = await readFile(testFilePath, 'utf8');
149
- // Check if the files have been overwritten
150
- expect(fileContent).toBe(testContent);
151
- // Check if the log debug message was printed
152
- /*TODO:
153
- Include log message test in the future to ensure that the log.debug for skipping overwrite is called
154
- */
155
- });
156
-
157
- it('should not generate the conditionalFolder if the singleFolder parameter is set true', async () => {
158
- const outputDir = generateFolderName();
159
- const generator = new Generator(reactTemplate, outputDir, {
160
- forceWrite: true ,
161
- templateParams: { version: 'v1', mode: 'production', singleFolder: 'true' }
162
- });
163
- await generator.generateFromFile(dummySpecPath);
164
- const conditionalFolderPath = path.join(outputDir, 'conditionalFolder');
165
- const exists = await access(conditionalFolderPath).then(() => true).catch(() => false);
166
- expect(exists).toBe(false);
167
- });
168
- it('should not generate the conditionalFile if the singleFile parameter is set true', async () => {
169
- const outputDir = generateFolderName();
170
- const generator = new Generator(reactTemplate, outputDir, {
171
- forceWrite: true ,
172
- templateParams: { version: 'v1', mode: 'production', singleFile: 'true' }
173
- });
174
- await generator.generateFromFile(dummySpecPath);
175
- const conditionalFilePath = path.join(outputDir, 'conditionalFile.txt');
176
- const exists = await readFile(conditionalFilePath).then(() => true).catch(() => false);
177
- expect(exists).toBe(false);
178
- });
179
-
180
- it('should generate the conditionalFile if the singleFile parameter is set false', async () => {
181
- const outputDir = generateFolderName();
182
- const generator = new Generator(reactTemplate, outputDir, {
183
- forceWrite: true ,
184
- templateParams: { version: 'v1', mode: 'production', singleFile: 'false' }
185
- });
186
- await generator.generateFromFile(dummySpecPath);
187
- const conditionalFilePath = path.join(outputDir, 'conditionalFile.txt');
188
- const exists = await readFile(conditionalFilePath).then(() => true).catch(() => false);
189
- expect(exists).toBe(true);
190
- });
191
-
192
- it('should generate the conditionalFile if the singleFile parameter is set false using enum validation', async () => {
193
- const outputDir = generateFolderName();
194
- const generator = new Generator(reactTemplate, outputDir, {
195
- forceWrite: true ,
196
- templateParams: { version: 'v1', mode: 'production', singleFile: 'false' }
197
- });
198
- await generator.generateFromFile(dummySpecPath);
199
- const conditionalFilePath = path.join(outputDir, 'conditionalFolder2/input.txt');
200
- const exists = await readFile(conditionalFilePath).then(() => true).catch(() => false);
201
- expect(exists).toBe(true);
202
- });
203
- });
@@ -1,205 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const { sanitizeTemplateApiVersion, usesNewAPI, parse, convertOldOptionsToNew } = require('../lib/parser');
4
- const dummyV2Document = fs.readFileSync(path.resolve(__dirname, './docs/dummy.yml'), 'utf8');
5
- const dummyV3Document = fs.readFileSync(path.resolve(__dirname, './docs/dummyV3.yml'), 'utf8');
6
-
7
- describe('Parser', () => {
8
- describe('sanitizeTemplateApiVersion', () => {
9
- it('should return version number when given `v99` syntax', () => {
10
- const rawVersion = 'v99';
11
- const expectedVersion = 99;
12
- const sanitizedVersion = sanitizeTemplateApiVersion(rawVersion);
13
-
14
- expect(sanitizedVersion).toStrictEqual(expectedVersion);
15
- });
16
- it('should return version number when given `v1` syntax', () => {
17
- const rawVersion = 'v1';
18
- const expectedVersion = 1;
19
- const sanitizedVersion = sanitizeTemplateApiVersion(rawVersion);
20
-
21
- expect(sanitizedVersion).toStrictEqual(expectedVersion);
22
- });
23
- it('should return version number when given `1` syntax', () => {
24
- const rawVersion = '1';
25
- const expectedVersion = 1;
26
- const sanitizedVersion = sanitizeTemplateApiVersion(rawVersion);
27
-
28
- expect(sanitizedVersion).toStrictEqual(expectedVersion);
29
- });
30
- });
31
- describe('usesNewAPI', () => {
32
- it('should use new parser api if v1', () => {
33
- const templateConfig = {
34
- apiVersion: 'v1'
35
- };
36
- const isUsingNewAPI = usesNewAPI(templateConfig);
37
-
38
- expect(isUsingNewAPI).toStrictEqual(true);
39
- });
40
- it('should use new parser api if v2', () => {
41
- const templateConfig = {
42
- apiVersion: 'v2'
43
- };
44
- const isUsingNewAPI = usesNewAPI(templateConfig);
45
-
46
- expect(isUsingNewAPI).toStrictEqual(true);
47
- });
48
- it('should use new parser api if v3', () => {
49
- const templateConfig = {
50
- apiVersion: 'v3'
51
- };
52
- const isUsingNewAPI = usesNewAPI(templateConfig);
53
-
54
- expect(isUsingNewAPI).toStrictEqual(true);
55
- });
56
- it('should not use new API if no apiVersion', () => {
57
- const templateConfig = { };
58
- const isUsingNewAPI = usesNewAPI(templateConfig);
59
-
60
- expect(isUsingNewAPI).toStrictEqual(false);
61
- });
62
- });
63
- describe('parse', () => {
64
- it('should be able to parse AsyncAPI v2 document for parser API v1', async () => {
65
- const parsedDocument = await parse(dummyV2Document, {}, {templateConfig: {apiVersion: 'v1'}});
66
-
67
- expect(parsedDocument).toBeDefined();
68
- expect(parsedDocument.document.version()).toEqual('2.3.0');
69
- });
70
- it('should be able to parse AsyncAPI v2 document for parser API v2', async () => {
71
- const parsedDocument = await parse(dummyV2Document, {}, {templateConfig: {apiVersion: 'v2'}});
72
-
73
- expect(parsedDocument).toBeDefined();
74
- expect(parsedDocument.document.version()).toEqual('2.3.0');
75
- });
76
- it('should be able to parse AsyncAPI v2 document for parser API v3', async () => {
77
- const parsedDocument = await parse(dummyV2Document, {}, {templateConfig: {apiVersion: 'v3'}});
78
-
79
- expect(parsedDocument).toBeDefined();
80
- expect(parsedDocument.document.version()).toEqual('2.3.0');
81
- });
82
- it('should not be able to parse AsyncAPI v3 document for parser API v1', async () => {
83
- const parsedDocument = await parse(dummyV3Document, {}, {templateConfig: {apiVersion: 'v1'}});
84
-
85
- expect(parsedDocument).toBeDefined();
86
- expect(parsedDocument.document).not.toBeDefined();
87
- });
88
- it('should not be able to parse AsyncAPI v3 document for old parser', async () => {
89
- const parsedDocument = await parse(dummyV3Document, {}, {templateConfig: {}});
90
-
91
- expect(parsedDocument).toBeDefined();
92
- expect(parsedDocument.document).not.toBeDefined();
93
- });
94
- it('should be able to parse AsyncAPI v3 document for parser API v2', async () => {
95
- const parsedDocument = await parse(dummyV3Document, {}, {templateConfig: {apiVersion: 'v2'}});
96
-
97
- expect(parsedDocument).toBeDefined();
98
- expect(parsedDocument.document.version()).toEqual('3.0.0');
99
- });
100
- it('should be able to parse AsyncAPI v3 document for parser API v3', async () => {
101
- const parsedDocument = await parse(dummyV3Document, {}, {templateConfig: {apiVersion: 'v3'}});
102
- expect(parsedDocument).toBeDefined();
103
- expect(parsedDocument.document.version()).toEqual('3.0.0');
104
- });
105
- });
106
-
107
- describe('getProperApiDocument', () => {
108
- const parser_api_version = 'x-parser-api-version';
109
- const parser_spec_parsed = 'x-parser-spec-parsed';
110
- const parser_original_schema = 'x-parser-original-schema-format';
111
- const parser_original_payload = 'x-parser-original-payload';
112
- const parser_message = 'x-parser-message-parsed';
113
- it('should convert to old API if apiVersion is undefined', async () => {
114
- // parse calls the get properAPIDocument and returns it along with a diagnostic in a Object
115
- // so its like called the get properAPIDocument function and then returned the result
116
- const templateConfig = {};
117
- const properDocument = await parse(dummyV2Document, {}, { templateConfig });
118
-
119
- // Validate that properDocument convert it to expected API version from the template
120
- expect(properDocument).toBeDefined();
121
-
122
- expect(properDocument).toBeDefined();
123
- expect(properDocument.document._json).toBeDefined();
124
- expect(properDocument.document._json.asyncapi).toEqual('2.3.0');
125
- expect(properDocument.diagnostics).toBeDefined();
126
- expect(properDocument.diagnostics.length).toBeGreaterThan(0);
127
-
128
- expect(properDocument.document._json[parser_api_version]).toBeDefined();
129
- expect(properDocument.document._json[parser_api_version]).toEqual(0);
130
- expect(properDocument.document._json[parser_spec_parsed]).toBeDefined();
131
- expect(properDocument.document._json[parser_spec_parsed]).toEqual(true);
132
-
133
- expect(properDocument.document._meta).toBeDefined();
134
- expect(properDocument.document._meta).toEqual({});
135
- expect(properDocument.document._json.components.messages.dummyCreated).toBeDefined();
136
- expect(properDocument.document._json.components.messages.dummyCreated[parser_original_schema]).toBeDefined(); // Only old API includes this filed
137
- expect(properDocument.document._json.components.messages.dummyCreated[parser_original_payload]).toBeDefined();
138
- expect(properDocument.document._json.components.messages.dummyCreated[parser_message]).toBeDefined();
139
- });
140
-
141
- it('should convert to specified API version', async () => {
142
- const templateConfig = { apiVersion: 'v2' };
143
- const properDocument = await parse(dummyV2Document, {}, { templateConfig });
144
-
145
- // Validate that properDocument is defined
146
- expect(properDocument).toBeDefined();
147
-
148
- // Validate that the document is converted to the specified API version
149
- expect(properDocument.document._json.asyncapi).toEqual('2.3.0');
150
- expect(properDocument.diagnostics).toBeDefined();
151
- expect(properDocument.diagnostics.length).toBeGreaterThan(0);
152
-
153
- expect(properDocument.document._json[parser_api_version]).toBeDefined();
154
- expect(properDocument.document._json[parser_spec_parsed]).toBeDefined();
155
- expect(properDocument.document._json[parser_api_version]).toEqual(2);
156
- expect(properDocument.document._json[parser_spec_parsed]).toEqual(true);
157
-
158
- expect(properDocument.document._meta).toBeDefined();
159
- expect(properDocument.document._json.components.messages.dummyCreated).toBeDefined();
160
- expect(properDocument.document._json.components.messages.dummyCreated[parser_original_schema]).toBeUndefined();
161
- expect(properDocument.document._json.components.messages.dummyCreated[parser_original_payload]).toBeUndefined();
162
- expect(properDocument.document._json.components.messages.dummyCreated[parser_message]).toBeUndefined();
163
-
164
- // Validate that old API-specific functions and properties are not present
165
- expect(properDocument.oldApiSpecificFunction).toBeUndefined();
166
- expect(properDocument.oldApiSpecificProperty).toBeUndefined();
167
- expect(properDocument.anotherOldApiFunction).toBeUndefined();
168
- });
169
- });
170
-
171
- describe('convertOldOptionsToNew', () => {
172
- it('should convert old options to new options', () => {
173
- const oldOptions = {
174
- path: './test/docs/',
175
- applyTraits: true,
176
- resolve: {
177
- http: {
178
- order: 1,
179
- canRead: true,
180
- read: jest.fn()
181
- }
182
- }
183
- };
184
- const generator = {
185
- mapBaseUrlToFolder: {
186
- url: 'https://schema.example.com/crm/',
187
- folder: './test/docs/'
188
- }
189
- };
190
- const newOptions = convertOldOptionsToNew(oldOptions, generator);
191
-
192
- expect(newOptions).toBeDefined();
193
- expect(newOptions.source).toEqual(oldOptions.path);
194
- expect(newOptions.applyTraits).toEqual(oldOptions.applyTraits);
195
- expect(newOptions.__unstable).toBeDefined();
196
- expect(newOptions.__unstable.resolver.resolvers.length).toBeGreaterThan(0);
197
- });
198
-
199
- it('should return undefined if oldOptions is not provided', () => {
200
- const newOptions = convertOldOptionsToNew(undefined, {});
201
-
202
- expect(newOptions).toBeUndefined();
203
- });
204
- });
205
- });
@@ -1,62 +0,0 @@
1
- /* eslint-disable sonarjs/no-duplicate-string */
2
- const {
3
- configureReact,
4
- renderReact,
5
- saveRenderedReactContent,
6
- } = require('../lib/renderer/react');
7
-
8
- jest.mock('../lib/utils');
9
- jest.mock('@asyncapi/generator-react-sdk');
10
-
11
- describe('React renderer', () => {
12
- describe('saveRenderedReactContent', () => {
13
- let util;
14
- let AsyncReactSDK;
15
- beforeAll(() => {
16
- util = require('../lib/utils');
17
- AsyncReactSDK = require('@asyncapi/generator-react-sdk');
18
- });
19
-
20
- it('works transpilation', async () => {
21
- await configureReact('../file', '../dir', '../file');
22
- expect(AsyncReactSDK.transpileFiles).toHaveBeenCalledTimes(1);
23
- });
24
-
25
- it('works rendering', async () => {
26
- await renderReact({}, '../file', {}, '../file', '../dir', '../location', {}, false, '');
27
- expect(AsyncReactSDK.renderTemplate).toHaveBeenCalledTimes(1);
28
- });
29
-
30
- it('works saving single rendered content', async () => {
31
- const content = {
32
- content: 'Content',
33
- metadata: {
34
- fileName: 'file.html',
35
- }
36
- };
37
-
38
- await saveRenderedReactContent(content, '../some/path');
39
- expect(util.writeFile).toHaveBeenCalledTimes(1);
40
- });
41
-
42
- it('works saving multiple rendered contents', async () => {
43
- const content = [
44
- {
45
- content: 'Content1',
46
- metadata: {
47
- fileName: 'file1.html',
48
- }
49
- },
50
- {
51
- content: 'Content2',
52
- metadata: {
53
- fileName: 'file2.html',
54
- }
55
- },
56
- ];
57
-
58
- await saveRenderedReactContent(content, '../some/path');
59
- expect(util.writeFile).toHaveBeenCalledTimes(2);
60
- });
61
- });
62
- });