@eventcatalog/core 0.1.12 → 0.1.16

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/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +58 -38
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1bay4w0 +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/routes-manifest.json +1 -1
  14. package/.next/server/chunks/484.js +572 -0
  15. package/.next/server/chunks/944.js +89 -53
  16. package/.next/server/pages/404.html +1 -1
  17. package/.next/server/pages/500.html +1 -1
  18. package/.next/server/pages/_app.js +16 -5
  19. package/.next/server/pages/events/AddedItemToCart/logs.html +1 -1
  20. package/.next/server/pages/events/AddedItemToCart/v/0.0.1.html +3 -3
  21. package/.next/server/pages/events/AddedItemToCart/v/0.0.1.json +1 -1
  22. package/.next/server/pages/events/AddedItemToCart/v/0.0.2.html +3 -3
  23. package/.next/server/pages/events/AddedItemToCart/v/0.0.2.json +1 -1
  24. package/.next/server/pages/events/AddedItemToCart.html +4 -22
  25. package/.next/server/pages/events/AddedItemToCart.json +1 -1
  26. package/.next/server/pages/events/OrderComplete/logs.html +1 -1
  27. package/.next/server/pages/events/OrderComplete.html +3 -21
  28. package/.next/server/pages/events/OrderComplete.json +1 -1
  29. package/.next/server/pages/events/OrderConfirmed/logs.html +1 -1
  30. package/.next/server/pages/events/OrderConfirmed.html +3 -21
  31. package/.next/server/pages/events/OrderConfirmed.json +1 -1
  32. package/.next/server/pages/events/OrderRequested/logs.html +1 -1
  33. package/.next/server/pages/events/OrderRequested.html +3 -21
  34. package/.next/server/pages/events/OrderRequested.json +1 -1
  35. package/.next/server/pages/events/PaymentProcessed/logs.html +1 -1
  36. package/.next/server/pages/events/PaymentProcessed.html +3 -21
  37. package/.next/server/pages/events/PaymentProcessed.json +1 -1
  38. package/.next/server/pages/events/RemovedItemFromCart/logs.html +1 -1
  39. package/.next/server/pages/events/RemovedItemFromCart.html +3 -21
  40. package/.next/server/pages/events/RemovedItemFromCart.json +1 -1
  41. package/.next/server/pages/events/ShipmentDelivered/logs.html +1 -1
  42. package/.next/server/pages/events/ShipmentDelivered.html +3 -23
  43. package/.next/server/pages/events/ShipmentDelivered.json +1 -1
  44. package/.next/server/pages/events/ShipmentDispatched/logs.html +1 -1
  45. package/.next/server/pages/events/ShipmentDispatched.html +3 -21
  46. package/.next/server/pages/events/ShipmentDispatched.json +1 -1
  47. package/.next/server/pages/events/ShipmentPrepared/logs.html +1 -1
  48. package/.next/server/pages/events/ShipmentPrepared.html +2 -20
  49. package/.next/server/pages/events/ShipmentPrepared.json +1 -1
  50. package/.next/server/pages/events/[name]/v/[version].js +29 -1
  51. package/.next/server/pages/events/[name]/v/[version].js.nft.json +1 -1
  52. package/.next/server/pages/events/[name].js +29 -1
  53. package/.next/server/pages/events/[name].js.nft.json +1 -1
  54. package/.next/server/pages/events.html +3 -3
  55. package/.next/server/pages/events.js.nft.json +1 -1
  56. package/.next/server/pages/events.json +1 -1
  57. package/.next/server/pages/index.html +1 -1
  58. package/.next/server/pages/overview.html +1 -1
  59. package/.next/server/pages/overview.json +1 -1
  60. package/.next/server/pages/services/Basket Service.html +2 -22
  61. package/.next/server/pages/services/Basket Service.json +1 -1
  62. package/.next/server/pages/services/Data Lake.html +2 -24
  63. package/.next/server/pages/services/Data Lake.json +1 -1
  64. package/.next/server/pages/services/Payment Service.html +2 -20
  65. package/.next/server/pages/services/Payment Service.json +1 -1
  66. package/.next/server/pages/services/Shipping Service.html +2 -28
  67. package/.next/server/pages/services/Shipping Service.json +1 -1
  68. package/.next/server/pages/services/[name].js +64 -4
  69. package/.next/server/pages/services/[name].js.nft.json +1 -1
  70. package/.next/server/pages/services.html +2 -2
  71. package/.next/server/pages/services.js.nft.json +1 -1
  72. package/.next/server/pages/services.json +1 -1
  73. package/.next/server/pages/users/[id].js.nft.json +1 -1
  74. package/.next/server/pages/users/dboyne.html +3 -3
  75. package/.next/server/pages/users/dboyne.json +1 -1
  76. package/.next/server/pages/users/mSmith.html +3 -3
  77. package/.next/server/pages/users/mSmith.json +1 -1
  78. package/.next/server/pages/visualiser.html +14 -0
  79. package/.next/server/pages/visualiser.js +583 -0
  80. package/.next/server/pages/visualiser.js.nft.json +1 -0
  81. package/.next/server/pages/visualiser.json +1 -0
  82. package/.next/server/pages-manifest.json +1 -0
  83. package/.next/static/7llqY64OLAlXQNo-YhXyr/_buildManifest.js +1 -0
  84. package/.next/static/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/_middlewareManifest.js +0 -0
  85. package/.next/static/7llqY64OLAlXQNo-YhXyr/_ssgManifest.js +1 -0
  86. package/.next/static/chunks/109-a08539311d3d6672.js +1 -0
  87. package/.next/static/chunks/178-87f01d17ab32dd4f.js +1 -0
  88. package/.next/static/chunks/252-08ab418f9b6821dd.js +1 -0
  89. package/.next/static/chunks/506-12764fcf4b5d93b0.js +1 -0
  90. package/.next/static/chunks/519-2ec6fc3cdbaa4dc2.js +1 -0
  91. package/.next/static/chunks/650-343888e13f994a09.js +1 -0
  92. package/.next/static/chunks/962-20c87db3880df896.js +1 -0
  93. package/.next/static/chunks/b744740b-229c238b25b9eeac.js +1 -0
  94. package/.next/static/chunks/pages/_app-6eba1099469a6889.js +1 -0
  95. package/.next/static/chunks/pages/events/[name]/v/{[version]-f6619ec4056cc70d.js → [version]-33051dbc32f5fe4e.js} +1 -1
  96. package/.next/static/chunks/pages/events/{[name]-73ecab7171745a3f.js → [name]-813780e7042af288.js} +1 -1
  97. package/.next/static/chunks/pages/services/[name]-142d7fa515cfc532.js +1 -0
  98. package/.next/static/chunks/pages/visualiser-0fbd55ba5b1f83ed.js +1 -0
  99. package/.next/static/chunks/{webpack-2ebfdb1666dac4ad.js → webpack-de66347fdf9ac788.js} +1 -1
  100. package/.next/static/css/f56eba33afeb64fa.css +3 -0
  101. package/.next/trace +56 -54
  102. package/CHANGELOG.md +26 -0
  103. package/components/Header.tsx +1 -0
  104. package/components/Mdx/Examples.tsx +27 -27
  105. package/components/Mdx/NodeGraph/GraphElements.tsx +238 -0
  106. package/components/Mdx/NodeGraph/GraphLayout.ts +57 -0
  107. package/components/Mdx/NodeGraph/Node.tsx +15 -0
  108. package/components/Mdx/NodeGraph/NodeGraph.tsx +180 -0
  109. package/components/Mdx/NodeGraph/__tests__/GraphElements.spec.ts +98 -0
  110. package/components/Mdx/NodeGraph/__tests__/GraphLayout.spec.ts +104 -0
  111. package/components/Mdx/NodeGraph/__tests__/__snapshots__/GraphElements.spec.ts.snap +995 -0
  112. package/components/Mdx/NodeGraph/__tests__/__snapshots__/GraphLayout.spec.ts.snap +81 -0
  113. package/components/Sidebars/EventSidebar.tsx +7 -0
  114. package/components/Sidebars/ServiceSidebar.tsx +8 -1
  115. package/components/SyntaxHighlighter.tsx +18 -10
  116. package/out/404/index.html +1 -1
  117. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/AddedItemToCart/logs.json +0 -0
  118. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/AddedItemToCart/v/0.0.1.json +1 -1
  119. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/AddedItemToCart/v/0.0.2.json +1 -1
  120. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/events/AddedItemToCart.json +1 -0
  121. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/OrderComplete/logs.json +0 -0
  122. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/events/OrderComplete.json +1 -0
  123. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/OrderConfirmed/logs.json +0 -0
  124. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/OrderConfirmed.json +1 -1
  125. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/OrderRequested/logs.json +0 -0
  126. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/events/OrderRequested.json +1 -0
  127. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/PaymentProcessed/logs.json +0 -0
  128. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/PaymentProcessed.json +1 -1
  129. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/RemovedItemFromCart/logs.json +0 -0
  130. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/RemovedItemFromCart.json +1 -1
  131. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/ShipmentDelivered/logs.json +0 -0
  132. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/events/ShipmentDelivered.json +1 -0
  133. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/ShipmentDispatched/logs.json +0 -0
  134. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/ShipmentDispatched.json +1 -1
  135. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events/ShipmentPrepared/logs.json +0 -0
  136. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/events/ShipmentPrepared.json +1 -0
  137. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/events.json +1 -1
  138. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/overview.json +1 -1
  139. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/services/Basket Service.json +1 -1
  140. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/services/Data Lake.json +1 -0
  141. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/services/Payment Service.json +1 -0
  142. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/services/Shipping Service.json +1 -0
  143. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/services.json +1 -0
  144. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/users/dboyne.json +1 -0
  145. package/out/_next/data/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/users/mSmith.json +1 -1
  146. package/out/_next/data/7llqY64OLAlXQNo-YhXyr/visualiser.json +1 -0
  147. package/out/_next/static/7llqY64OLAlXQNo-YhXyr/_buildManifest.js +1 -0
  148. package/out/_next/static/{bMdE5uGdmIhIs9cgTPp_Z → 7llqY64OLAlXQNo-YhXyr}/_middlewareManifest.js +0 -0
  149. package/out/_next/static/7llqY64OLAlXQNo-YhXyr/_ssgManifest.js +1 -0
  150. package/out/_next/static/chunks/109-a08539311d3d6672.js +1 -0
  151. package/out/_next/static/chunks/178-87f01d17ab32dd4f.js +1 -0
  152. package/out/_next/static/chunks/252-08ab418f9b6821dd.js +1 -0
  153. package/out/_next/static/chunks/506-12764fcf4b5d93b0.js +1 -0
  154. package/out/_next/static/chunks/519-2ec6fc3cdbaa4dc2.js +1 -0
  155. package/out/_next/static/chunks/650-343888e13f994a09.js +1 -0
  156. package/out/_next/static/chunks/962-20c87db3880df896.js +1 -0
  157. package/out/_next/static/chunks/b744740b-229c238b25b9eeac.js +1 -0
  158. package/out/_next/static/chunks/pages/_app-6eba1099469a6889.js +1 -0
  159. package/out/_next/static/chunks/pages/events/[name]/v/{[version]-f6619ec4056cc70d.js → [version]-33051dbc32f5fe4e.js} +1 -1
  160. package/out/_next/static/chunks/pages/events/{[name]-73ecab7171745a3f.js → [name]-813780e7042af288.js} +1 -1
  161. package/out/_next/static/chunks/pages/services/[name]-142d7fa515cfc532.js +1 -0
  162. package/out/_next/static/chunks/pages/visualiser-0fbd55ba5b1f83ed.js +1 -0
  163. package/out/_next/static/chunks/{webpack-2ebfdb1666dac4ad.js → webpack-de66347fdf9ac788.js} +1 -1
  164. package/out/_next/static/css/f56eba33afeb64fa.css +3 -0
  165. package/out/events/AddedItemToCart/index.html +4 -22
  166. package/out/events/AddedItemToCart/logs/index.html +1 -1
  167. package/out/events/AddedItemToCart/v/0.0.1/index.html +3 -3
  168. package/out/events/AddedItemToCart/v/0.0.2/index.html +3 -3
  169. package/out/events/OrderComplete/index.html +3 -21
  170. package/out/events/OrderComplete/logs/index.html +1 -1
  171. package/out/events/OrderConfirmed/index.html +3 -21
  172. package/out/events/OrderConfirmed/logs/index.html +1 -1
  173. package/out/events/OrderRequested/index.html +3 -21
  174. package/out/events/OrderRequested/logs/index.html +1 -1
  175. package/out/events/PaymentProcessed/index.html +3 -21
  176. package/out/events/PaymentProcessed/logs/index.html +1 -1
  177. package/out/events/RemovedItemFromCart/index.html +3 -21
  178. package/out/events/RemovedItemFromCart/logs/index.html +1 -1
  179. package/out/events/ShipmentDelivered/index.html +3 -23
  180. package/out/events/ShipmentDelivered/logs/index.html +1 -1
  181. package/out/events/ShipmentDispatched/index.html +3 -21
  182. package/out/events/ShipmentDispatched/logs/index.html +1 -1
  183. package/out/events/ShipmentPrepared/index.html +2 -20
  184. package/out/events/ShipmentPrepared/logs/index.html +1 -1
  185. package/out/events/index.html +3 -3
  186. package/out/index.html +1 -1
  187. package/out/overview/index.html +1 -1
  188. package/out/services/Basket Service/index.html +2 -22
  189. package/out/services/Data Lake/index.html +2 -24
  190. package/out/services/Payment Service/index.html +2 -20
  191. package/out/services/Shipping Service/index.html +2 -28
  192. package/out/services/index.html +2 -2
  193. package/out/users/dboyne/index.html +3 -3
  194. package/out/users/mSmith/index.html +3 -3
  195. package/out/visualiser/index.html +14 -0
  196. package/package.json +3 -1
  197. package/pages/events/[name].tsx +46 -8
  198. package/pages/services/[name].tsx +37 -1
  199. package/pages/visualiser.tsx +226 -0
  200. package/styles/globals.css +4 -0
  201. package/.next/static/bMdE5uGdmIhIs9cgTPp_Z/_buildManifest.js +0 -1
  202. package/.next/static/bMdE5uGdmIhIs9cgTPp_Z/_ssgManifest.js +0 -1
  203. package/.next/static/chunks/178-9b89f5c036d77ab9.js +0 -1
  204. package/.next/static/chunks/336-7c4681dab353ec23.js +0 -1
  205. package/.next/static/chunks/519-7c428c1e49c8e614.js +0 -1
  206. package/.next/static/chunks/650-4004943b2a9623ca.js +0 -1
  207. package/.next/static/chunks/962-d5070461f6d4a478.js +0 -1
  208. package/.next/static/chunks/pages/_app-46c2e0f1ff3b4efb.js +0 -1
  209. package/.next/static/chunks/pages/services/[name]-d8873d29190a6447.js +0 -1
  210. package/.next/static/css/0b54ec6503b91283.css +0 -3
  211. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/events/AddedItemToCart.json +0 -1
  212. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/events/OrderComplete.json +0 -1
  213. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/events/OrderRequested.json +0 -1
  214. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/events/ShipmentDelivered.json +0 -1
  215. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/events/ShipmentPrepared.json +0 -1
  216. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/services/Data Lake.json +0 -1
  217. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/services/Payment Service.json +0 -1
  218. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/services/Shipping Service.json +0 -1
  219. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/services.json +0 -1
  220. package/out/_next/data/bMdE5uGdmIhIs9cgTPp_Z/users/dboyne.json +0 -1
  221. package/out/_next/static/bMdE5uGdmIhIs9cgTPp_Z/_buildManifest.js +0 -1
  222. package/out/_next/static/bMdE5uGdmIhIs9cgTPp_Z/_ssgManifest.js +0 -1
  223. package/out/_next/static/chunks/178-9b89f5c036d77ab9.js +0 -1
  224. package/out/_next/static/chunks/336-7c4681dab353ec23.js +0 -1
  225. package/out/_next/static/chunks/519-7c428c1e49c8e614.js +0 -1
  226. package/out/_next/static/chunks/650-4004943b2a9623ca.js +0 -1
  227. package/out/_next/static/chunks/962-d5070461f6d4a478.js +0 -1
  228. package/out/_next/static/chunks/pages/_app-46c2e0f1ff3b4efb.js +0 -1
  229. package/out/_next/static/chunks/pages/services/[name]-d8873d29190a6447.js +0 -1
  230. package/out/_next/static/css/0b54ec6503b91283.css +0 -3
@@ -0,0 +1,98 @@
1
+ import { Event, Service } from '@eventcatalog/types';
2
+ import { getEventElements, getServiceElements } from '../GraphElements';
3
+
4
+ jest.mock('next/config', () => () => ({
5
+ publicRuntimeConfig: {
6
+ basePath: '/docs',
7
+ },
8
+ }));
9
+
10
+ describe('GraphElements', () => {
11
+ describe('getServiceElements', () => {
12
+ it('takes a given Service and returns the ReactFlow elements with relations the events it publishes and consumes', () => {
13
+ const event = { name: 'My Event', version: '0.0.1' };
14
+ const event2 = { name: 'My Event 2', version: '0.0.1' };
15
+ const rootNodeColor = '#2563eb';
16
+ const isAnimated = true;
17
+
18
+ const service = {
19
+ id: 'My Service',
20
+ name: 'My Service',
21
+ version: '0.0.1',
22
+ summary: 'Summary',
23
+ publishes: [event],
24
+ subscribes: [event2],
25
+ };
26
+
27
+ const result = getServiceElements(service as Service, rootNodeColor, isAnimated);
28
+
29
+ expect(result).toMatchSnapshot();
30
+ });
31
+
32
+ it('takes a given Service and returns the ReactFlow elements with multiple events & long names', () => {
33
+ const event = { name: 'My Event', version: '0.0.1' };
34
+ const event2 = { name: 'My Event 2', version: '0.0.1' };
35
+ const event3 = { name: 'My Event 3', version: '0.0.1' };
36
+ const event4 = { name: 'very.very.very.very.very.very.very.very.very.very.very.very.long.name.event.4', version: '0.0.1' };
37
+ const event5 = { name: 'very very very very very very very very very very very very long name event 5', version: '0.0.1' };
38
+ const event6 = { name: 'My Event 6', version: '0.0.1' };
39
+ const event7 = { name: 'My Event 7', version: '0.0.1' };
40
+ const event8 = { name: 'My Event 8', version: '0.0.1' };
41
+ const event9 = { name: 'My Event 9', version: '0.0.1' };
42
+ const rootNodeColor = '#2563eb';
43
+ const isAnimated = true;
44
+
45
+ const service = {
46
+ id: 'My Service',
47
+ name: 'My Service',
48
+ version: '0.0.1',
49
+ summary: 'Summary',
50
+ publishes: [event, event2, event3, event4],
51
+ subscribes: [event5, event6, event7, event8, event9],
52
+ };
53
+
54
+ const result = getServiceElements(service as Service, rootNodeColor, isAnimated);
55
+
56
+ expect(result).toMatchSnapshot();
57
+ });
58
+ });
59
+
60
+ describe('getEventElements', () => {
61
+ it('takes a given event and returns the ReactFlow elements with relations between the event and its consumers and producers', () => {
62
+ const event = {
63
+ name: 'My Event',
64
+ version: '0.0.1',
65
+ producers: ['Service 1'],
66
+ consumers: ['Service 2'],
67
+ };
68
+ const rootNodeColor = '#2563eb';
69
+ const isAnimated = true;
70
+
71
+ const result = getEventElements(event as Event, rootNodeColor, isAnimated);
72
+
73
+ expect(result).toMatchSnapshot();
74
+ });
75
+
76
+ it('takes a given event and returns the ReactFlow elements with multiple services & long names', () => {
77
+ const event = {
78
+ name: 'My Event',
79
+ version: '0.0.1',
80
+ producers: ['Service 1', 'Service 2', 'very very very very very very very very very very very very long name Service 3'],
81
+ consumers: [
82
+ 'Service 4',
83
+ 'Service 5',
84
+ 'Service 6',
85
+ 'Service 7',
86
+ 'Service 8',
87
+ 'very.very.very.very.very.very.very.very.very.very.very.very.long.name.event.8',
88
+ ],
89
+ };
90
+ const rootNodeColor = '#2563eb';
91
+ const isAnimated = true;
92
+
93
+ const result = getEventElements(event as Event, rootNodeColor, isAnimated);
94
+
95
+ expect(result).toMatchSnapshot();
96
+ });
97
+ });
98
+ });
@@ -0,0 +1,104 @@
1
+ import { Elements } from 'react-flow-renderer';
2
+ import createGraphLayout, { calcCanvasHeight } from '../GraphLayout';
3
+
4
+ describe('GraphLayout', () => {
5
+ describe('createGraphLayout', () => {
6
+ it('calculate a graph layout', () => {
7
+ const isHorizontal = true;
8
+ const elements = [
9
+ {
10
+ data: {
11
+ label: 'My Event 2',
12
+ link: '/docs/events/My Event 2',
13
+ maxWidth: 150,
14
+ width: 150,
15
+ },
16
+ id: 's-My_Event_2',
17
+ position: {
18
+ x: 0,
19
+ y: 0,
20
+ },
21
+ style: {
22
+ border: '2px solid #75d7b6',
23
+ width: 150,
24
+ },
25
+ type: 'input',
26
+ },
27
+ {
28
+ data: {
29
+ label: 'My Service',
30
+ link: '/docs/services/My Service',
31
+ maxWidth: 150,
32
+ width: 150,
33
+ },
34
+ id: 'c-My_Service',
35
+ position: {
36
+ x: 0,
37
+ y: 0,
38
+ },
39
+ style: {
40
+ border: '2px solid #2563eb',
41
+ width: 150,
42
+ },
43
+ },
44
+ {
45
+ data: {
46
+ label: 'My Event',
47
+ link: '/docs/events/My Event',
48
+ maxWidth: 150,
49
+ width: 150,
50
+ },
51
+ id: 'p-My_Event',
52
+ position: {
53
+ x: 0,
54
+ y: 0,
55
+ },
56
+ style: {
57
+ border: '2px solid #818cf8',
58
+ width: 150,
59
+ },
60
+ type: 'output',
61
+ },
62
+ {
63
+ animated: true,
64
+ arrowHeadType: 'arrowclosed',
65
+ id: 'ecp-My_Event',
66
+ source: 'c-My_Service',
67
+ target: 'p-My_Event',
68
+ type: 'smoothstep',
69
+ },
70
+ {
71
+ animated: true,
72
+ arrowHeadType: 'arrowclosed',
73
+ id: 'esc-My_Event_2',
74
+ source: 's-My_Event_2',
75
+ target: 'c-My_Service',
76
+ type: 'smoothstep',
77
+ },
78
+ ];
79
+
80
+ const result = createGraphLayout(elements as Elements, isHorizontal);
81
+ expect(result).toMatchSnapshot();
82
+ });
83
+ });
84
+
85
+ describe('calcCanvasHeight', () => {
86
+ it('takes all events and calculate the canvas height', () => {
87
+ const data = {
88
+ producers: [1, 2, 3, 4, 5, 6, 7, 8],
89
+ consumers: [1, 2, 3, 4, 5],
90
+ };
91
+ const result = calcCanvasHeight(data, 'event');
92
+ expect(result).toEqual(544);
93
+ });
94
+
95
+ it('takes all services and calculate the canvas height', () => {
96
+ const data = {
97
+ publishes: [1, 2, 3, 4, 5, 6, 7, 8, 9],
98
+ subscribes: [1, 2, 3, 4, 5],
99
+ };
100
+ const result = calcCanvasHeight(data, 'service');
101
+ expect(result).toEqual(612);
102
+ });
103
+ });
104
+ });