@auto-engineer/pipeline 0.20.0 → 0.21.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 (212) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +20 -0
  3. package/dist/src/server/pipeline-server.d.ts +2 -0
  4. package/dist/src/server/pipeline-server.d.ts.map +1 -1
  5. package/dist/src/server/pipeline-server.js +3 -0
  6. package/dist/src/server/pipeline-server.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/package.json +3 -3
  9. package/src/server/pipeline-server.specs.ts +9 -0
  10. package/src/server/pipeline-server.ts +4 -0
  11. package/.turbo/turbo-test.log +0 -14
  12. package/.turbo/turbo-type-check.log +0 -4
  13. package/coverage/base.css +0 -224
  14. package/coverage/block-navigation.js +0 -87
  15. package/coverage/builder/define.ts.html +0 -2224
  16. package/coverage/builder/index.html +0 -116
  17. package/coverage/config/index.html +0 -116
  18. package/coverage/config/pipeline-config.ts.html +0 -181
  19. package/coverage/core/descriptors.ts.html +0 -397
  20. package/coverage/core/index.html +0 -131
  21. package/coverage/core/types.ts.html +0 -133
  22. package/coverage/coverage-final.json +0 -33
  23. package/coverage/favicon.png +0 -0
  24. package/coverage/graph/filter-graph.ts.html +0 -418
  25. package/coverage/graph/index.html +0 -131
  26. package/coverage/graph/types.ts.html +0 -172
  27. package/coverage/index.html +0 -266
  28. package/coverage/logging/event-logger.ts.html +0 -235
  29. package/coverage/logging/index.html +0 -116
  30. package/coverage/plugins/handler-adapter.ts.html +0 -148
  31. package/coverage/plugins/index.html +0 -131
  32. package/coverage/plugins/plugin-loader.ts.html +0 -691
  33. package/coverage/prettify.css +0 -1
  34. package/coverage/prettify.js +0 -2
  35. package/coverage/projections/await-tracker-projection.ts.html +0 -289
  36. package/coverage/projections/index.html +0 -221
  37. package/coverage/projections/item-status-projection.ts.html +0 -181
  38. package/coverage/projections/latest-run-projection.ts.html +0 -145
  39. package/coverage/projections/message-log-projection.ts.html +0 -424
  40. package/coverage/projections/node-status-projection.ts.html +0 -184
  41. package/coverage/projections/phased-execution-projection.ts.html +0 -523
  42. package/coverage/projections/settled-instance-projection.ts.html +0 -565
  43. package/coverage/projections/stats-projection.ts.html +0 -163
  44. package/coverage/runtime/await-tracker.ts.html +0 -271
  45. package/coverage/runtime/context.ts.html +0 -124
  46. package/coverage/runtime/event-command-map.ts.html +0 -220
  47. package/coverage/runtime/index.html +0 -191
  48. package/coverage/runtime/phased-executor.ts.html +0 -775
  49. package/coverage/runtime/pipeline-runtime.ts.html +0 -448
  50. package/coverage/runtime/settled-tracker.ts.html +0 -790
  51. package/coverage/server/index.html +0 -131
  52. package/coverage/server/pipeline-server.ts.html +0 -3253
  53. package/coverage/server/sse-manager.ts.html +0 -310
  54. package/coverage/sort-arrow-sprite.png +0 -0
  55. package/coverage/sorter.js +0 -210
  56. package/coverage/store/index.html +0 -146
  57. package/coverage/store/pipeline-event-store.ts.html +0 -553
  58. package/coverage/store/pipeline-read-model.ts.html +0 -754
  59. package/coverage/store/sqlite-pipeline-event-store.ts.html +0 -193
  60. package/coverage/testing/event-capture.ts.html +0 -280
  61. package/coverage/testing/index.html +0 -161
  62. package/coverage/testing/mock-handlers.ts.html +0 -259
  63. package/coverage/testing/snapshot-compare.ts.html +0 -403
  64. package/coverage/testing/snapshot-sanitize.ts.html +0 -136
  65. package/dist/src/builder/define.specs.d.ts +0 -2
  66. package/dist/src/builder/define.specs.d.ts.map +0 -1
  67. package/dist/src/builder/define.specs.js +0 -435
  68. package/dist/src/builder/define.specs.js.map +0 -1
  69. package/dist/src/core/descriptors.specs.d.ts +0 -2
  70. package/dist/src/core/descriptors.specs.d.ts.map +0 -1
  71. package/dist/src/core/descriptors.specs.js +0 -24
  72. package/dist/src/core/descriptors.specs.js.map +0 -1
  73. package/dist/src/core/types.specs.d.ts +0 -2
  74. package/dist/src/core/types.specs.d.ts.map +0 -1
  75. package/dist/src/core/types.specs.js +0 -40
  76. package/dist/src/core/types.specs.js.map +0 -1
  77. package/dist/src/graph/filter-graph.specs.d.ts +0 -2
  78. package/dist/src/graph/filter-graph.specs.d.ts.map +0 -1
  79. package/dist/src/graph/filter-graph.specs.js +0 -204
  80. package/dist/src/graph/filter-graph.specs.js.map +0 -1
  81. package/dist/src/graph/types.specs.d.ts +0 -2
  82. package/dist/src/graph/types.specs.d.ts.map +0 -1
  83. package/dist/src/graph/types.specs.js +0 -148
  84. package/dist/src/graph/types.specs.js.map +0 -1
  85. package/dist/src/logging/event-logger.specs.d.ts +0 -2
  86. package/dist/src/logging/event-logger.specs.d.ts.map +0 -1
  87. package/dist/src/logging/event-logger.specs.js +0 -81
  88. package/dist/src/logging/event-logger.specs.js.map +0 -1
  89. package/dist/src/plugins/handler-adapter.specs.d.ts +0 -2
  90. package/dist/src/plugins/handler-adapter.specs.d.ts.map +0 -1
  91. package/dist/src/plugins/handler-adapter.specs.js +0 -129
  92. package/dist/src/plugins/handler-adapter.specs.js.map +0 -1
  93. package/dist/src/plugins/plugin-loader.specs.d.ts +0 -2
  94. package/dist/src/plugins/plugin-loader.specs.d.ts.map +0 -1
  95. package/dist/src/plugins/plugin-loader.specs.js +0 -246
  96. package/dist/src/plugins/plugin-loader.specs.js.map +0 -1
  97. package/dist/src/projections/item-status-projection.specs.d.ts +0 -2
  98. package/dist/src/projections/item-status-projection.specs.d.ts.map +0 -1
  99. package/dist/src/projections/item-status-projection.specs.js +0 -119
  100. package/dist/src/projections/item-status-projection.specs.js.map +0 -1
  101. package/dist/src/projections/latest-run-projection.specs.d.ts +0 -2
  102. package/dist/src/projections/latest-run-projection.specs.d.ts.map +0 -1
  103. package/dist/src/projections/latest-run-projection.specs.js +0 -33
  104. package/dist/src/projections/latest-run-projection.specs.js.map +0 -1
  105. package/dist/src/projections/message-log-projection.specs.d.ts +0 -2
  106. package/dist/src/projections/message-log-projection.specs.d.ts.map +0 -1
  107. package/dist/src/projections/message-log-projection.specs.js +0 -101
  108. package/dist/src/projections/message-log-projection.specs.js.map +0 -1
  109. package/dist/src/projections/node-status-projection.specs.d.ts +0 -2
  110. package/dist/src/projections/node-status-projection.specs.d.ts.map +0 -1
  111. package/dist/src/projections/node-status-projection.specs.js +0 -116
  112. package/dist/src/projections/node-status-projection.specs.js.map +0 -1
  113. package/dist/src/projections/phased-execution-projection.specs.d.ts +0 -2
  114. package/dist/src/projections/phased-execution-projection.specs.d.ts.map +0 -1
  115. package/dist/src/projections/phased-execution-projection.specs.js +0 -171
  116. package/dist/src/projections/phased-execution-projection.specs.js.map +0 -1
  117. package/dist/src/projections/settled-instance-projection.specs.d.ts +0 -2
  118. package/dist/src/projections/settled-instance-projection.specs.d.ts.map +0 -1
  119. package/dist/src/projections/settled-instance-projection.specs.js +0 -217
  120. package/dist/src/projections/settled-instance-projection.specs.js.map +0 -1
  121. package/dist/src/projections/stats-projection.specs.d.ts +0 -2
  122. package/dist/src/projections/stats-projection.specs.d.ts.map +0 -1
  123. package/dist/src/projections/stats-projection.specs.js +0 -91
  124. package/dist/src/projections/stats-projection.specs.js.map +0 -1
  125. package/dist/src/runtime/await-tracker.specs.d.ts +0 -2
  126. package/dist/src/runtime/await-tracker.specs.d.ts.map +0 -1
  127. package/dist/src/runtime/await-tracker.specs.js +0 -64
  128. package/dist/src/runtime/await-tracker.specs.js.map +0 -1
  129. package/dist/src/runtime/context.specs.d.ts +0 -2
  130. package/dist/src/runtime/context.specs.d.ts.map +0 -1
  131. package/dist/src/runtime/context.specs.js +0 -26
  132. package/dist/src/runtime/context.specs.js.map +0 -1
  133. package/dist/src/runtime/event-command-map.specs.d.ts +0 -2
  134. package/dist/src/runtime/event-command-map.specs.d.ts.map +0 -1
  135. package/dist/src/runtime/event-command-map.specs.js +0 -108
  136. package/dist/src/runtime/event-command-map.specs.js.map +0 -1
  137. package/dist/src/runtime/phased-executor.specs.d.ts +0 -2
  138. package/dist/src/runtime/phased-executor.specs.d.ts.map +0 -1
  139. package/dist/src/runtime/phased-executor.specs.js +0 -418
  140. package/dist/src/runtime/phased-executor.specs.js.map +0 -1
  141. package/dist/src/runtime/pipeline-runtime.specs.d.ts +0 -2
  142. package/dist/src/runtime/pipeline-runtime.specs.d.ts.map +0 -1
  143. package/dist/src/runtime/pipeline-runtime.specs.js +0 -227
  144. package/dist/src/runtime/pipeline-runtime.specs.js.map +0 -1
  145. package/dist/src/runtime/settled-tracker.specs.d.ts +0 -2
  146. package/dist/src/runtime/settled-tracker.specs.d.ts.map +0 -1
  147. package/dist/src/runtime/settled-tracker.specs.js +0 -811
  148. package/dist/src/runtime/settled-tracker.specs.js.map +0 -1
  149. package/dist/src/server/full-orchestration.e2e.specs.d.ts +0 -2
  150. package/dist/src/server/full-orchestration.e2e.specs.d.ts.map +0 -1
  151. package/dist/src/server/full-orchestration.e2e.specs.js +0 -561
  152. package/dist/src/server/full-orchestration.e2e.specs.js.map +0 -1
  153. package/dist/src/server/pipeline-server.e2e.specs.d.ts +0 -2
  154. package/dist/src/server/pipeline-server.e2e.specs.d.ts.map +0 -1
  155. package/dist/src/server/pipeline-server.e2e.specs.js +0 -373
  156. package/dist/src/server/pipeline-server.e2e.specs.js.map +0 -1
  157. package/dist/src/server/pipeline-server.specs.d.ts +0 -2
  158. package/dist/src/server/pipeline-server.specs.d.ts.map +0 -1
  159. package/dist/src/server/pipeline-server.specs.js +0 -1407
  160. package/dist/src/server/pipeline-server.specs.js.map +0 -1
  161. package/dist/src/server/sse-manager.specs.d.ts +0 -2
  162. package/dist/src/server/sse-manager.specs.d.ts.map +0 -1
  163. package/dist/src/server/sse-manager.specs.js +0 -178
  164. package/dist/src/server/sse-manager.specs.js.map +0 -1
  165. package/dist/src/store/pipeline-event-store.specs.d.ts +0 -2
  166. package/dist/src/store/pipeline-event-store.specs.d.ts.map +0 -1
  167. package/dist/src/store/pipeline-event-store.specs.js +0 -287
  168. package/dist/src/store/pipeline-event-store.specs.js.map +0 -1
  169. package/dist/src/store/pipeline-read-model.specs.d.ts +0 -2
  170. package/dist/src/store/pipeline-read-model.specs.d.ts.map +0 -1
  171. package/dist/src/store/pipeline-read-model.specs.js +0 -830
  172. package/dist/src/store/pipeline-read-model.specs.js.map +0 -1
  173. package/dist/src/testing/event-capture.specs.d.ts +0 -2
  174. package/dist/src/testing/event-capture.specs.d.ts.map +0 -1
  175. package/dist/src/testing/event-capture.specs.js +0 -114
  176. package/dist/src/testing/event-capture.specs.js.map +0 -1
  177. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.d.ts +0 -2
  178. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.d.ts.map +0 -1
  179. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.js +0 -263
  180. package/dist/src/testing/fixtures/kanban-full.pipeline.specs.js.map +0 -1
  181. package/dist/src/testing/fixtures/kanban.pipeline.specs.d.ts +0 -2
  182. package/dist/src/testing/fixtures/kanban.pipeline.specs.d.ts.map +0 -1
  183. package/dist/src/testing/fixtures/kanban.pipeline.specs.js +0 -29
  184. package/dist/src/testing/fixtures/kanban.pipeline.specs.js.map +0 -1
  185. package/dist/src/testing/kanban-todo.e2e.specs.d.ts +0 -2
  186. package/dist/src/testing/kanban-todo.e2e.specs.d.ts.map +0 -1
  187. package/dist/src/testing/kanban-todo.e2e.specs.js +0 -160
  188. package/dist/src/testing/kanban-todo.e2e.specs.js.map +0 -1
  189. package/dist/src/testing/mock-handlers.specs.d.ts +0 -2
  190. package/dist/src/testing/mock-handlers.specs.d.ts.map +0 -1
  191. package/dist/src/testing/mock-handlers.specs.js +0 -193
  192. package/dist/src/testing/mock-handlers.specs.js.map +0 -1
  193. package/dist/src/testing/real-execution.e2e.specs.d.ts +0 -2
  194. package/dist/src/testing/real-execution.e2e.specs.d.ts.map +0 -1
  195. package/dist/src/testing/real-execution.e2e.specs.js +0 -140
  196. package/dist/src/testing/real-execution.e2e.specs.js.map +0 -1
  197. package/dist/src/testing/real-plugin.e2e.specs.d.ts +0 -2
  198. package/dist/src/testing/real-plugin.e2e.specs.d.ts.map +0 -1
  199. package/dist/src/testing/real-plugin.e2e.specs.js +0 -65
  200. package/dist/src/testing/real-plugin.e2e.specs.js.map +0 -1
  201. package/dist/src/testing/server-startup.e2e.specs.d.ts +0 -2
  202. package/dist/src/testing/server-startup.e2e.specs.d.ts.map +0 -1
  203. package/dist/src/testing/server-startup.e2e.specs.js +0 -104
  204. package/dist/src/testing/server-startup.e2e.specs.js.map +0 -1
  205. package/dist/src/testing/snapshot-compare.specs.d.ts +0 -2
  206. package/dist/src/testing/snapshot-compare.specs.d.ts.map +0 -1
  207. package/dist/src/testing/snapshot-compare.specs.js +0 -112
  208. package/dist/src/testing/snapshot-compare.specs.js.map +0 -1
  209. package/dist/src/testing/snapshot-sanitize.specs.d.ts +0 -2
  210. package/dist/src/testing/snapshot-sanitize.specs.d.ts.map +0 -1
  211. package/dist/src/testing/snapshot-sanitize.specs.js +0 -104
  212. package/dist/src/testing/snapshot-sanitize.specs.js.map +0 -1
@@ -1,259 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for testing/mock-handlers.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">testing</a> mock-handlers.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>33/33</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>10/10</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>6/6</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>33/33</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-neutral">&nbsp;</span>
134
- <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-yes">1x</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-yes">1x</span>
138
- <span class="cline-any cline-yes">10x</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-yes">10x</span>
141
- <span class="cline-any cline-yes">12x</span>
142
- <span class="cline-any cline-yes">12x</span>
143
- <span class="cline-any cline-yes">12x</span>
144
- <span class="cline-any cline-yes">10x</span>
145
- <span class="cline-any cline-yes">10x</span>
146
- <span class="cline-any cline-yes">10x</span>
147
- <span class="cline-any cline-yes">10x</span>
148
- <span class="cline-any cline-yes">10x</span>
149
- <span class="cline-any cline-yes">10x</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-yes">1x</span>
152
- <span class="cline-any cline-yes">5x</span>
153
- <span class="cline-any cline-yes">5x</span>
154
- <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-yes">1x</span>
156
- <span class="cline-any cline-yes">14x</span>
157
- <span class="cline-any cline-yes">14x</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-yes">1x</span>
168
- <span class="cline-any cline-yes">3x</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">3x</span>
171
- <span class="cline-any cline-yes">3x</span>
172
- <span class="cline-any cline-yes">3x</span>
173
- <span class="cline-any cline-yes">3x</span>
174
- <span class="cline-any cline-yes">4x</span>
175
- <span class="cline-any cline-yes">4x</span>
176
- <span class="cline-any cline-yes">2x</span>
177
- <span class="cline-any cline-yes">2x</span>
178
- <span class="cline-any cline-yes">2x</span>
179
- <span class="cline-any cline-yes">4x</span>
180
- <span class="cline-any cline-yes">3x</span>
181
- <span class="cline-any cline-yes">3x</span>
182
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Command, Event } from '@auto-engineer/message-bus';
183
- import type { CommandHandlerWithMetadata } from '../server/pipeline-server';
184
- &nbsp;
185
- type MockHandlerFn = (cmd: Command, attempt: number) =&gt; Event | Event[];
186
- &nbsp;
187
- interface MockHandlerConfig {
188
- name: string;
189
- events: string[];
190
- fn: MockHandlerFn;
191
- }
192
- &nbsp;
193
- const callCounts = new Map&lt;string, number&gt;();
194
- &nbsp;
195
- export function createMockHandlers(configs: MockHandlerConfig[]): CommandHandlerWithMetadata[] {
196
- callCounts.clear();
197
- &nbsp;
198
- return configs.map((config) =&gt; ({
199
- name: config.name,
200
- events: config.events,
201
- handle: async (cmd: Command): Promise&lt;Event | Event[]&gt; =&gt; {
202
- const currentCount = (callCounts.get(config.name) ?? 0) + 1;
203
- callCounts.set(config.name, currentCount);
204
- return config.fn(cmd, currentCount);
205
- },
206
- }));
207
- }
208
- &nbsp;
209
- export function getHandlerCallCount(handlerName: string): number {
210
- return callCounts.get(handlerName) ?? 0;
211
- }
212
- &nbsp;
213
- export function resetCallCounts(): void {
214
- callCounts.clear();
215
- }
216
- &nbsp;
217
- interface StatefulHandlerConfig {
218
- name: string;
219
- events: string[];
220
- initialFails: number;
221
- failEvent: (cmd: Command) =&gt; Event;
222
- successEvent: (cmd: Command) =&gt; Event;
223
- }
224
- &nbsp;
225
- export function createStatefulHandler(config: StatefulHandlerConfig): CommandHandlerWithMetadata {
226
- let callCount = 0;
227
- &nbsp;
228
- return {
229
- name: config.name,
230
- events: config.events,
231
- handle: async (cmd: Command): Promise&lt;Event&gt; =&gt; {
232
- callCount++;
233
- if (callCount &lt;= config.initialFails) {
234
- return config.failEvent(cmd);
235
- }
236
- return config.successEvent(cmd);
237
- },
238
- };
239
- }
240
- &nbsp;</pre></td></tr></table></pre>
241
-
242
- <div class='push'></div><!-- for sticky footer -->
243
- </div><!-- /wrapper -->
244
- <div class='footer quiet pad2 space-top1 center small'>
245
- Code coverage generated by
246
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
247
- at 2026-01-06T00:27:41.742Z
248
- </div>
249
- <script src="../prettify.js"></script>
250
- <script>
251
- window.onload = function () {
252
- prettyPrint();
253
- };
254
- </script>
255
- <script src="../sorter.js"></script>
256
- <script src="../block-navigation.js"></script>
257
- </body>
258
- </html>
259
-
@@ -1,403 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for testing/snapshot-compare.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../prettify.css" />
9
- <link rel="stylesheet" href="../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../index.html">All files</a> / <a href="index.html">testing</a> snapshot-compare.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>81/81</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>26/26</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>5/5</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>81/81</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-neutral">&nbsp;</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-yes">1x</span>
187
- <span class="cline-any cline-yes">9x</span>
188
- <span class="cline-any cline-yes">9x</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">9x</span>
191
- <span class="cline-any cline-yes">25x</span>
192
- <span class="cline-any cline-yes">25x</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-yes">25x</span>
195
- <span class="cline-any cline-yes">2x</span>
196
- <span class="cline-any cline-yes">2x</span>
197
- <span class="cline-any cline-yes">2x</span>
198
- <span class="cline-any cline-yes">2x</span>
199
- <span class="cline-any cline-yes">2x</span>
200
- <span class="cline-any cline-yes">25x</span>
201
- <span class="cline-any cline-yes">3x</span>
202
- <span class="cline-any cline-yes">3x</span>
203
- <span class="cline-any cline-yes">3x</span>
204
- <span class="cline-any cline-yes">3x</span>
205
- <span class="cline-any cline-yes">3x</span>
206
- <span class="cline-any cline-yes">23x</span>
207
- <span class="cline-any cline-yes">2x</span>
208
- <span class="cline-any cline-yes">2x</span>
209
- <span class="cline-any cline-yes">2x</span>
210
- <span class="cline-any cline-yes">2x</span>
211
- <span class="cline-any cline-yes">2x</span>
212
- <span class="cline-any cline-yes">2x</span>
213
- <span class="cline-any cline-yes">2x</span>
214
- <span class="cline-any cline-yes">25x</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-yes">9x</span>
217
- <span class="cline-any cline-yes">9x</span>
218
- <span class="cline-any cline-yes">9x</span>
219
- <span class="cline-any cline-yes">9x</span>
220
- <span class="cline-any cline-yes">9x</span>
221
- <span class="cline-any cline-yes">9x</span>
222
- <span class="cline-any cline-yes">9x</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">1x</span>
225
- <span class="cline-any cline-yes">6x</span>
226
- <span class="cline-any cline-yes">6x</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">4x</span>
229
- <span class="cline-any cline-yes">6x</span>
230
- <span class="cline-any cline-yes">12x</span>
231
- <span class="cline-any cline-yes">5x</span>
232
- <span class="cline-any cline-yes">5x</span>
233
- <span class="cline-any cline-yes">2x</span>
234
- <span class="cline-any cline-yes">2x</span>
235
- <span class="cline-any cline-yes">5x</span>
236
- <span class="cline-any cline-yes">12x</span>
237
- <span class="cline-any cline-yes">2x</span>
238
- <span class="cline-any cline-yes">2x</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">1x</span>
241
- <span class="cline-any cline-yes">2x</span>
242
- <span class="cline-any cline-yes">2x</span>
243
- <span class="cline-any cline-yes">2x</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">1x</span>
246
- <span class="cline-any cline-yes">2x</span>
247
- <span class="cline-any cline-yes">2x</span>
248
- <span class="cline-any cline-yes">2x</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">1x</span>
251
- <span class="cline-any cline-yes">4x</span>
252
- <span class="cline-any cline-yes">1x</span>
253
- <span class="cline-any cline-yes">1x</span>
254
- <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">3x</span>
256
- <span class="cline-any cline-yes">3x</span>
257
- <span class="cline-any cline-yes">3x</span>
258
- <span class="cline-any cline-yes">3x</span>
259
- <span class="cline-any cline-yes">3x</span>
260
- <span class="cline-any cline-yes">3x</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-yes">3x</span>
263
- <span class="cline-any cline-yes">3x</span>
264
- <span class="cline-any cline-yes">3x</span>
265
- <span class="cline-any cline-yes">1x</span>
266
- <span class="cline-any cline-yes">1x</span>
267
- <span class="cline-any cline-yes">3x</span>
268
- <span class="cline-any cline-yes">1x</span>
269
- <span class="cline-any cline-yes">1x</span>
270
- <span class="cline-any cline-yes">3x</span>
271
- <span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-yes">1x</span>
273
- <span class="cline-any cline-yes">3x</span>
274
- <span class="cline-any cline-yes">3x</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">3x</span>
277
- <span class="cline-any cline-yes">3x</span>
278
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export interface SnapshotDiff {
279
- type: 'match' | 'mismatch' | 'missing' | 'extra';
280
- index: number;
281
- expected?: string;
282
- actual?: string;
283
- }
284
- &nbsp;
285
- export interface SnapshotResult {
286
- matches: boolean;
287
- differences: SnapshotDiff[];
288
- expectedCount: number;
289
- actualCount: number;
290
- }
291
- &nbsp;
292
- export function compareEventSequence(expected: string[], actual: string[]): SnapshotResult {
293
- const differences: SnapshotDiff[] = [];
294
- const maxLen = Math.max(expected.length, actual.length);
295
- &nbsp;
296
- for (let i = 0; i &lt; maxLen; i++) {
297
- const expectedItem = expected[i];
298
- const actualItem = actual[i];
299
- &nbsp;
300
- if (expectedItem === undefined) {
301
- differences.push({
302
- type: 'extra',
303
- index: i,
304
- actual: actualItem,
305
- });
306
- } else if (actualItem === undefined) {
307
- differences.push({
308
- type: 'missing',
309
- index: i,
310
- expected: expectedItem,
311
- });
312
- } else if (expectedItem !== actualItem) {
313
- differences.push({
314
- type: 'mismatch',
315
- index: i,
316
- expected: expectedItem,
317
- actual: actualItem,
318
- });
319
- }
320
- }
321
- &nbsp;
322
- return {
323
- matches: differences.length === 0,
324
- differences,
325
- expectedCount: expected.length,
326
- actualCount: actual.length,
327
- };
328
- }
329
- &nbsp;
330
- export function containsSubsequence(sequence: string[], subsequence: string[]): boolean {
331
- if (subsequence.length === 0) return true;
332
- if (sequence.length === 0) return false;
333
- &nbsp;
334
- let subIndex = 0;
335
- for (const item of sequence) {
336
- if (item === subsequence[subIndex]) {
337
- subIndex++;
338
- if (subIndex === subsequence.length) {
339
- return true;
340
- }
341
- }
342
- }
343
- return false;
344
- }
345
- &nbsp;
346
- export function findMissingEvents(sequence: string[], required: string[]): string[] {
347
- const present = new Set(sequence);
348
- return required.filter((r) =&gt; !present.has(r));
349
- }
350
- &nbsp;
351
- export function findUnexpectedEvents(sequence: string[], allowed: string[]): string[] {
352
- const allowedSet = new Set(allowed);
353
- return sequence.filter((s) =&gt; !allowedSet.has(s));
354
- }
355
- &nbsp;
356
- export function formatSnapshotDiff(result: SnapshotResult): string {
357
- if (result.matches) {
358
- return `✓ Event sequence matches (${result.expectedCount} events)`;
359
- }
360
- &nbsp;
361
- const lines: string[] = [
362
- `✗ Event sequence mismatch:`,
363
- ` Expected: ${result.expectedCount} events`,
364
- ` Actual: ${result.actualCount} events`,
365
- ` Differences:`,
366
- ];
367
- &nbsp;
368
- for (const diff of result.differences) {
369
- switch (diff.type) {
370
- case 'mismatch':
371
- lines.push(` [${diff.index}] Expected "${diff.expected}", got "${diff.actual}"`);
372
- break;
373
- case 'missing':
374
- lines.push(` [${diff.index}] Missing "${diff.expected}"`);
375
- break;
376
- case 'extra':
377
- lines.push(` [${diff.index}] Unexpected "${diff.actual}"`);
378
- break;
379
- }
380
- }
381
- &nbsp;
382
- return lines.join('\n');
383
- }
384
- &nbsp;</pre></td></tr></table></pre>
385
-
386
- <div class='push'></div><!-- for sticky footer -->
387
- </div><!-- /wrapper -->
388
- <div class='footer quiet pad2 space-top1 center small'>
389
- Code coverage generated by
390
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
391
- at 2026-01-06T00:27:41.742Z
392
- </div>
393
- <script src="../prettify.js"></script>
394
- <script>
395
- window.onload = function () {
396
- prettyPrint();
397
- };
398
- </script>
399
- <script src="../sorter.js"></script>
400
- <script src="../block-navigation.js"></script>
401
- </body>
402
- </html>
403
-