@n1k1t/mock-server 0.1.61 → 0.1.62

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 (559) hide show
  1. package/lib/package.json +1 -1
  2. package/package.json +1 -1
  3. package/bin/index.ts +0 -33
  4. package/coverage/clover.xml +0 -1372
  5. package/coverage/cobertura-coverage.xml +0 -3466
  6. package/coverage/coverage-final.json +0 -76
  7. package/coverage/lcov-report/base.css +0 -224
  8. package/coverage/lcov-report/block-navigation.js +0 -87
  9. package/coverage/lcov-report/client/errors/connection.error.ts.html +0 -106
  10. package/coverage/lcov-report/client/errors/index.html +0 -161
  11. package/coverage/lcov-report/client/errors/index.ts.html +0 -97
  12. package/coverage/lcov-report/client/errors/internal-server.error.ts.html +0 -115
  13. package/coverage/lcov-report/client/errors/validation.error.ts.html +0 -115
  14. package/coverage/lcov-report/client/helpers/expectations.ts.html +0 -766
  15. package/coverage/lcov-report/client/helpers/index.html +0 -131
  16. package/coverage/lcov-report/client/helpers/index.ts.html +0 -88
  17. package/coverage/lcov-report/client/index.html +0 -161
  18. package/coverage/lcov-report/client/index.ts.html +0 -100
  19. package/coverage/lcov-report/client/methods/expectations-group.update.method.ts.html +0 -193
  20. package/coverage/lcov-report/client/methods/expectations.create.method.ts.html +0 -202
  21. package/coverage/lcov-report/client/methods/expectations.delete.method.ts.html +0 -184
  22. package/coverage/lcov-report/client/methods/expectations.update.method.ts.html +0 -241
  23. package/coverage/lcov-report/client/methods/index.html +0 -191
  24. package/coverage/lcov-report/client/methods/index.ts.html +0 -103
  25. package/coverage/lcov-report/client/methods/ping.method.ts.html +0 -160
  26. package/coverage/lcov-report/client/models/client.ts.html +0 -340
  27. package/coverage/lcov-report/client/models/index.html +0 -146
  28. package/coverage/lcov-report/client/models/index.ts.html +0 -91
  29. package/coverage/lcov-report/client/models/method.ts.html +0 -235
  30. package/coverage/lcov-report/client/onsite.ts.html +0 -172
  31. package/coverage/lcov-report/client/remote.ts.html +0 -187
  32. package/coverage/lcov-report/client/utils.ts.html +0 -211
  33. package/coverage/lcov-report/config/index.html +0 -131
  34. package/coverage/lcov-report/config/index.ts.html +0 -97
  35. package/coverage/lcov-report/config/model.ts.html +0 -226
  36. package/coverage/lcov-report/expectations/__utils__/index.html +0 -116
  37. package/coverage/lcov-report/expectations/__utils__/index.ts.html +0 -268
  38. package/coverage/lcov-report/expectations/index.html +0 -146
  39. package/coverage/lcov-report/expectations/index.ts.html +0 -94
  40. package/coverage/lcov-report/expectations/models/expectation.ts.html +0 -373
  41. package/coverage/lcov-report/expectations/models/index.html +0 -161
  42. package/coverage/lcov-report/expectations/models/index.ts.html +0 -94
  43. package/coverage/lcov-report/expectations/models/operator.ts.html +0 -352
  44. package/coverage/lcov-report/expectations/models/storage.ts.html +0 -211
  45. package/coverage/lcov-report/expectations/operators/and.operator.ts.html +0 -196
  46. package/coverage/lcov-report/expectations/operators/exec.operator.ts.html +0 -160
  47. package/coverage/lcov-report/expectations/operators/has.operator.ts.html +0 -778
  48. package/coverage/lcov-report/expectations/operators/if.operator.ts.html +0 -316
  49. package/coverage/lcov-report/expectations/operators/index.html +0 -281
  50. package/coverage/lcov-report/expectations/operators/index.ts.html +0 -118
  51. package/coverage/lcov-report/expectations/operators/merge.operator.ts.html +0 -379
  52. package/coverage/lcov-report/expectations/operators/not.operator.ts.html +0 -199
  53. package/coverage/lcov-report/expectations/operators/or.operator.ts.html +0 -196
  54. package/coverage/lcov-report/expectations/operators/remove.operator.ts.html +0 -238
  55. package/coverage/lcov-report/expectations/operators/root.operator.ts.html +0 -238
  56. package/coverage/lcov-report/expectations/operators/set.operator.ts.html +0 -436
  57. package/coverage/lcov-report/expectations/operators/switch.operator.ts.html +0 -463
  58. package/coverage/lcov-report/expectations/types.ts.html +0 -766
  59. package/coverage/lcov-report/expectations/utils.ts.html +0 -802
  60. package/coverage/lcov-report/favicon.png +0 -0
  61. package/coverage/lcov-report/index.html +0 -431
  62. package/coverage/lcov-report/logger/index.html +0 -131
  63. package/coverage/lcov-report/logger/index.ts.html +0 -325
  64. package/coverage/lcov-report/logger/utils.ts.html +0 -160
  65. package/coverage/lcov-report/meta/index.html +0 -146
  66. package/coverage/lcov-report/meta/index.ts.html +0 -103
  67. package/coverage/lcov-report/meta/model.ts.html +0 -172
  68. package/coverage/lcov-report/meta/storage.ts.html +0 -145
  69. package/coverage/lcov-report/prettify.css +0 -1
  70. package/coverage/lcov-report/prettify.js +0 -2
  71. package/coverage/lcov-report/server/expectations/__utils__/index.html +0 -116
  72. package/coverage/lcov-report/server/expectations/__utils__/index.ts.html +0 -199
  73. package/coverage/lcov-report/server/expectations/index.html +0 -131
  74. package/coverage/lcov-report/server/expectations/operators/and.operator.ts.html +0 -103
  75. package/coverage/lcov-report/server/expectations/operators/exec.operator.ts.html +0 -139
  76. package/coverage/lcov-report/server/expectations/operators/has.operator.ts.html +0 -358
  77. package/coverage/lcov-report/server/expectations/operators/if.operator.ts.html +0 -130
  78. package/coverage/lcov-report/server/expectations/operators/index.html +0 -266
  79. package/coverage/lcov-report/server/expectations/operators/index.ts.html +0 -112
  80. package/coverage/lcov-report/server/expectations/operators/merge.operator.ts.html +0 -193
  81. package/coverage/lcov-report/server/expectations/operators/not.operator.ts.html +0 -100
  82. package/coverage/lcov-report/server/expectations/operators/or.operator.ts.html +0 -115
  83. package/coverage/lcov-report/server/expectations/operators/remove.operator.ts.html +0 -169
  84. package/coverage/lcov-report/server/expectations/operators/set.operator.ts.html +0 -208
  85. package/coverage/lcov-report/server/expectations/operators/utils.ts.html +0 -346
  86. package/coverage/lcov-report/server/expectations/types.ts.html +0 -517
  87. package/coverage/lcov-report/server/expectations/utils.ts.html +0 -358
  88. package/coverage/lcov-report/server/models/containers/index.html +0 -161
  89. package/coverage/lcov-report/server/models/containers/index.ts.html +0 -91
  90. package/coverage/lcov-report/server/models/containers/model.ts.html +0 -328
  91. package/coverage/lcov-report/server/models/containers/storage.ts.html +0 -256
  92. package/coverage/lcov-report/server/models/containers/utils.ts.html +0 -97
  93. package/coverage/lcov-report/server/models/context/index.html +0 -146
  94. package/coverage/lcov-report/server/models/context/index.ts.html +0 -514
  95. package/coverage/lcov-report/server/models/context/snapshot.ts.html +0 -529
  96. package/coverage/lcov-report/server/models/context/utils.ts.html +0 -382
  97. package/coverage/lcov-report/server/models/endpoint.ts.html +0 -304
  98. package/coverage/lcov-report/server/models/exchanges/index.html +0 -131
  99. package/coverage/lcov-report/server/models/exchanges/index.ts.html +0 -88
  100. package/coverage/lcov-report/server/models/exchanges/socket-io.ts.html +0 -154
  101. package/coverage/lcov-report/server/models/executor/errors/index.html +0 -116
  102. package/coverage/lcov-report/server/models/executor/errors/index.ts.html +0 -130
  103. package/coverage/lcov-report/server/models/executor/index.html +0 -116
  104. package/coverage/lcov-report/server/models/executor/index.ts.html +0 -1018
  105. package/coverage/lcov-report/server/models/history/index.html +0 -146
  106. package/coverage/lcov-report/server/models/history/index.ts.html +0 -91
  107. package/coverage/lcov-report/server/models/history/model.ts.html +0 -331
  108. package/coverage/lcov-report/server/models/history/storage.ts.html +0 -184
  109. package/coverage/lcov-report/server/models/index.html +0 -161
  110. package/coverage/lcov-report/server/models/index.ts.html +0 -115
  111. package/coverage/lcov-report/server/models/providers/index.html +0 -146
  112. package/coverage/lcov-report/server/models/providers/index.ts.html +0 -91
  113. package/coverage/lcov-report/server/models/providers/model.ts.html +0 -211
  114. package/coverage/lcov-report/server/models/providers/storage.ts.html +0 -172
  115. package/coverage/lcov-report/server/models/reply.ts.html +0 -115
  116. package/coverage/lcov-report/server/models/router.ts.html +0 -313
  117. package/coverage/lcov-report/server/models/transports/index.html +0 -146
  118. package/coverage/lcov-report/server/models/transports/index.ts.html +0 -91
  119. package/coverage/lcov-report/server/models/transports/model.ts.html +0 -112
  120. package/coverage/lcov-report/server/models/transports/storage.ts.html +0 -124
  121. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  122. package/coverage/lcov-report/sorter.js +0 -196
  123. package/coverage/lcov-report/utils/common.ts.html +0 -187
  124. package/coverage/lcov-report/utils/index.html +0 -176
  125. package/coverage/lcov-report/utils/index.ts.html +0 -97
  126. package/coverage/lcov-report/utils/json.ts.html +0 -193
  127. package/coverage/lcov-report/utils/regexp.ts.html +0 -97
  128. package/coverage/lcov-report/utils/validation.ts.html +0 -190
  129. package/coverage/lcov.info +0 -3012
  130. package/discardedTests.txt +0 -35606
  131. package/images/preview.png +0 -0
  132. package/images/strategy.png +0 -0
  133. package/keploy.yml +0 -64
  134. package/lib/src/client/errors/connection.error.spec.d.ts +0 -2
  135. package/lib/src/client/errors/connection.error.spec.d.ts.map +0 -1
  136. package/lib/src/client/errors/connection.error.spec.js +0 -12
  137. package/lib/src/client/errors/connection.error.spec.js.map +0 -1
  138. package/lib/src/client/errors/internal-server.error.spec.d.ts +0 -2
  139. package/lib/src/client/errors/internal-server.error.spec.d.ts.map +0 -1
  140. package/lib/src/client/errors/internal-server.error.spec.js +0 -12
  141. package/lib/src/client/errors/internal-server.error.spec.js.map +0 -1
  142. package/lib/src/client/errors/validation.error.spec.d.ts +0 -2
  143. package/lib/src/client/errors/validation.error.spec.d.ts.map +0 -1
  144. package/lib/src/client/errors/validation.error.spec.js +0 -10
  145. package/lib/src/client/errors/validation.error.spec.js.map +0 -1
  146. package/lib/src/client/models/client.spec.d.ts +0 -2
  147. package/lib/src/client/models/client.spec.d.ts.map +0 -1
  148. package/lib/src/client/models/client.spec.js +0 -244
  149. package/lib/src/client/models/client.spec.js.map +0 -1
  150. package/lib/src/client/onsite.spec.d.ts +0 -2
  151. package/lib/src/client/onsite.spec.d.ts.map +0 -1
  152. package/lib/src/client/onsite.spec.js +0 -23
  153. package/lib/src/client/onsite.spec.js.map +0 -1
  154. package/lib/src/client/remote.spec.d.ts +0 -2
  155. package/lib/src/client/remote.spec.d.ts.map +0 -1
  156. package/lib/src/client/remote.spec.js +0 -16
  157. package/lib/src/client/remote.spec.js.map +0 -1
  158. package/lib/src/client/utils.spec.d.ts +0 -2
  159. package/lib/src/client/utils.spec.d.ts.map +0 -1
  160. package/lib/src/client/utils.spec.js +0 -57
  161. package/lib/src/client/utils.spec.js.map +0 -1
  162. package/lib/src/expectations/models/storage.spec.d.ts +0 -2
  163. package/lib/src/expectations/models/storage.spec.d.ts.map +0 -1
  164. package/lib/src/expectations/models/storage.spec.js +0 -57
  165. package/lib/src/expectations/models/storage.spec.js.map +0 -1
  166. package/lib/src/expectations/operators/and.operator.spec.d.ts +0 -2
  167. package/lib/src/expectations/operators/and.operator.spec.d.ts.map +0 -1
  168. package/lib/src/expectations/operators/and.operator.spec.js +0 -83
  169. package/lib/src/expectations/operators/and.operator.spec.js.map +0 -1
  170. package/lib/src/expectations/operators/exec.operator.spec.d.ts +0 -2
  171. package/lib/src/expectations/operators/exec.operator.spec.d.ts.map +0 -1
  172. package/lib/src/expectations/operators/exec.operator.spec.js +0 -68
  173. package/lib/src/expectations/operators/exec.operator.spec.js.map +0 -1
  174. package/lib/src/expectations/operators/has.operator.spec.d.ts +0 -2
  175. package/lib/src/expectations/operators/has.operator.spec.d.ts.map +0 -1
  176. package/lib/src/expectations/operators/has.operator.spec.js +0 -444
  177. package/lib/src/expectations/operators/has.operator.spec.js.map +0 -1
  178. package/lib/src/expectations/operators/if.operator.spec.d.ts +0 -2
  179. package/lib/src/expectations/operators/if.operator.spec.d.ts.map +0 -1
  180. package/lib/src/expectations/operators/if.operator.spec.js +0 -132
  181. package/lib/src/expectations/operators/if.operator.spec.js.map +0 -1
  182. package/lib/src/expectations/operators/merge.operator.spec.d.ts +0 -2
  183. package/lib/src/expectations/operators/merge.operator.spec.d.ts.map +0 -1
  184. package/lib/src/expectations/operators/merge.operator.spec.js +0 -75
  185. package/lib/src/expectations/operators/merge.operator.spec.js.map +0 -1
  186. package/lib/src/expectations/operators/not.operator.spec.d.ts +0 -2
  187. package/lib/src/expectations/operators/not.operator.spec.d.ts.map +0 -1
  188. package/lib/src/expectations/operators/not.operator.spec.js +0 -46
  189. package/lib/src/expectations/operators/not.operator.spec.js.map +0 -1
  190. package/lib/src/expectations/operators/or.operator.spec.d.ts +0 -2
  191. package/lib/src/expectations/operators/or.operator.spec.d.ts.map +0 -1
  192. package/lib/src/expectations/operators/or.operator.spec.js +0 -84
  193. package/lib/src/expectations/operators/or.operator.spec.js.map +0 -1
  194. package/lib/src/expectations/operators/remove.operator.spec.d.ts +0 -2
  195. package/lib/src/expectations/operators/remove.operator.spec.d.ts.map +0 -1
  196. package/lib/src/expectations/operators/remove.operator.spec.js +0 -67
  197. package/lib/src/expectations/operators/remove.operator.spec.js.map +0 -1
  198. package/lib/src/expectations/operators/root.operator.spec.d.ts +0 -2
  199. package/lib/src/expectations/operators/root.operator.spec.d.ts.map +0 -1
  200. package/lib/src/expectations/operators/root.operator.spec.js +0 -29
  201. package/lib/src/expectations/operators/root.operator.spec.js.map +0 -1
  202. package/lib/src/expectations/operators/set.operator.spec.d.ts +0 -2
  203. package/lib/src/expectations/operators/set.operator.spec.d.ts.map +0 -1
  204. package/lib/src/expectations/operators/set.operator.spec.js +0 -111
  205. package/lib/src/expectations/operators/set.operator.spec.js.map +0 -1
  206. package/lib/src/expectations/operators/switch.operator.spec.d.ts +0 -2
  207. package/lib/src/expectations/operators/switch.operator.spec.d.ts.map +0 -1
  208. package/lib/src/expectations/operators/switch.operator.spec.js +0 -139
  209. package/lib/src/expectations/operators/switch.operator.spec.js.map +0 -1
  210. package/lib/src/expectations/utils/location.spec.d.ts +0 -2
  211. package/lib/src/expectations/utils/location.spec.d.ts.map +0 -1
  212. package/lib/src/expectations/utils/location.spec.js +0 -62
  213. package/lib/src/expectations/utils/location.spec.js.map +0 -1
  214. package/lib/src/expectations/utils/schema.spec.d.ts +0 -2
  215. package/lib/src/expectations/utils/schema.spec.d.ts.map +0 -1
  216. package/lib/src/expectations/utils/schema.spec.js +0 -19
  217. package/lib/src/expectations/utils/schema.spec.js.map +0 -1
  218. package/lib/src/meta/model.spec.d.ts +0 -2
  219. package/lib/src/meta/model.spec.d.ts.map +0 -1
  220. package/lib/src/meta/model.spec.js +0 -28
  221. package/lib/src/meta/model.spec.js.map +0 -1
  222. package/lib/src/meta/storage.spec.d.ts +0 -2
  223. package/lib/src/meta/storage.spec.d.ts.map +0 -1
  224. package/lib/src/meta/storage.spec.js +0 -19
  225. package/lib/src/meta/storage.spec.js.map +0 -1
  226. package/lib/src/server/models/containers/model.spec.d.ts +0 -2
  227. package/lib/src/server/models/containers/model.spec.d.ts.map +0 -1
  228. package/lib/src/server/models/containers/model.spec.js +0 -79
  229. package/lib/src/server/models/containers/model.spec.js.map +0 -1
  230. package/lib/src/server/models/containers/storage.spec.d.ts +0 -2
  231. package/lib/src/server/models/containers/storage.spec.d.ts.map +0 -1
  232. package/lib/src/server/models/containers/storage.spec.js +0 -39
  233. package/lib/src/server/models/containers/storage.spec.js.map +0 -1
  234. package/lib/src/server/models/context/index.spec.d.ts +0 -2
  235. package/lib/src/server/models/context/index.spec.d.ts.map +0 -1
  236. package/lib/src/server/models/context/index.spec.js +0 -143
  237. package/lib/src/server/models/context/index.spec.js.map +0 -1
  238. package/lib/src/server/models/context/snapshot.spec.d.ts +0 -2
  239. package/lib/src/server/models/context/snapshot.spec.d.ts.map +0 -1
  240. package/lib/src/server/models/context/snapshot.spec.js +0 -75
  241. package/lib/src/server/models/context/snapshot.spec.js.map +0 -1
  242. package/lib/src/server/models/context/utils.spec.d.ts +0 -2
  243. package/lib/src/server/models/context/utils.spec.d.ts.map +0 -1
  244. package/lib/src/server/models/context/utils.spec.js +0 -69
  245. package/lib/src/server/models/context/utils.spec.js.map +0 -1
  246. package/lib/src/server/models/endpoint.spec.d.ts +0 -2
  247. package/lib/src/server/models/endpoint.spec.d.ts.map +0 -1
  248. package/lib/src/server/models/endpoint.spec.js +0 -28
  249. package/lib/src/server/models/endpoint.spec.js.map +0 -1
  250. package/lib/src/server/models/exchanges/socket-io.spec.d.ts +0 -2
  251. package/lib/src/server/models/exchanges/socket-io.spec.d.ts.map +0 -1
  252. package/lib/src/server/models/exchanges/socket-io.spec.js +0 -12
  253. package/lib/src/server/models/exchanges/socket-io.spec.js.map +0 -1
  254. package/lib/src/server/models/executor/errors/index.spec.d.ts +0 -2
  255. package/lib/src/server/models/executor/errors/index.spec.d.ts.map +0 -1
  256. package/lib/src/server/models/executor/errors/index.spec.js +0 -23
  257. package/lib/src/server/models/executor/errors/index.spec.js.map +0 -1
  258. package/lib/src/server/models/executor/index.spec.d.ts +0 -2
  259. package/lib/src/server/models/executor/index.spec.d.ts.map +0 -1
  260. package/lib/src/server/models/executor/index.spec.js +0 -137
  261. package/lib/src/server/models/executor/index.spec.js.map +0 -1
  262. package/lib/src/server/models/history/model.spec.d.ts +0 -2
  263. package/lib/src/server/models/history/model.spec.d.ts.map +0 -1
  264. package/lib/src/server/models/history/model.spec.js +0 -30
  265. package/lib/src/server/models/history/model.spec.js.map +0 -1
  266. package/lib/src/server/models/history/storage.spec.d.ts +0 -2
  267. package/lib/src/server/models/history/storage.spec.d.ts.map +0 -1
  268. package/lib/src/server/models/history/storage.spec.js +0 -42
  269. package/lib/src/server/models/history/storage.spec.js.map +0 -1
  270. package/lib/src/server/models/providers/model.spec.d.ts +0 -2
  271. package/lib/src/server/models/providers/model.spec.d.ts.map +0 -1
  272. package/lib/src/server/models/providers/model.spec.js +0 -13
  273. package/lib/src/server/models/providers/model.spec.js.map +0 -1
  274. package/lib/src/server/models/providers/storage.spec.d.ts +0 -2
  275. package/lib/src/server/models/providers/storage.spec.d.ts.map +0 -1
  276. package/lib/src/server/models/providers/storage.spec.js +0 -19
  277. package/lib/src/server/models/providers/storage.spec.js.map +0 -1
  278. package/lib/src/server/models/reply.spec.d.ts +0 -2
  279. package/lib/src/server/models/reply.spec.d.ts.map +0 -1
  280. package/lib/src/server/models/reply.spec.js +0 -20
  281. package/lib/src/server/models/reply.spec.js.map +0 -1
  282. package/lib/src/server/models/router.spec.d.ts +0 -2
  283. package/lib/src/server/models/router.spec.d.ts.map +0 -1
  284. package/lib/src/server/models/router.spec.js +0 -46
  285. package/lib/src/server/models/router.spec.js.map +0 -1
  286. package/lib/src/server/models/transports/storage.spec.d.ts +0 -2
  287. package/lib/src/server/models/transports/storage.spec.d.ts.map +0 -1
  288. package/lib/src/server/models/transports/storage.spec.js +0 -13
  289. package/lib/src/server/models/transports/storage.spec.js.map +0 -1
  290. package/lib/src/server/services/analytics.service.spec.d.ts +0 -2
  291. package/lib/src/server/services/analytics.service.spec.d.ts.map +0 -1
  292. package/lib/src/server/services/analytics.service.spec.js +0 -35
  293. package/lib/src/server/services/analytics.service.spec.js.map +0 -1
  294. package/lib/src/server/services/metrics.service.spec.d.ts +0 -2
  295. package/lib/src/server/services/metrics.service.spec.d.ts.map +0 -1
  296. package/lib/src/server/services/metrics.service.spec.js +0 -35
  297. package/lib/src/server/services/metrics.service.spec.js.map +0 -1
  298. package/lib/src/utils/index.spec.d.ts +0 -2
  299. package/lib/src/utils/index.spec.d.ts.map +0 -1
  300. package/lib/src/utils/index.spec.js +0 -30
  301. package/lib/src/utils/index.spec.js.map +0 -1
  302. package/lib/tsconfig.tsbuildinfo +0 -1
  303. package/lib/vite.config.d.ts +0 -3
  304. package/lib/vite.config.d.ts.map +0 -1
  305. package/lib/vite.config.js +0 -57
  306. package/lib/vite.config.js.map +0 -1
  307. package/src/client/errors/connection.error.spec.ts +0 -10
  308. package/src/client/errors/connection.error.ts +0 -7
  309. package/src/client/errors/index.ts +0 -4
  310. package/src/client/errors/internal-server.error.spec.ts +0 -12
  311. package/src/client/errors/internal-server.error.ts +0 -10
  312. package/src/client/errors/types.ts +0 -3
  313. package/src/client/errors/validation.error.spec.ts +0 -9
  314. package/src/client/errors/validation.error.ts +0 -10
  315. package/src/client/helpers/expectations.ts +0 -227
  316. package/src/client/helpers/index.ts +0 -1
  317. package/src/client/index.ts +0 -5
  318. package/src/client/methods/expectations-group.update.method.ts +0 -36
  319. package/src/client/methods/expectations.create.method.ts +0 -39
  320. package/src/client/methods/expectations.delete.method.ts +0 -33
  321. package/src/client/methods/expectations.update.method.ts +0 -58
  322. package/src/client/methods/index.ts +0 -6
  323. package/src/client/methods/ping.method.ts +0 -25
  324. package/src/client/models/__snapshots__/client.spec.ts.snap +0 -1294
  325. package/src/client/models/client.spec.ts +0 -316
  326. package/src/client/models/client.ts +0 -85
  327. package/src/client/models/index.ts +0 -2
  328. package/src/client/models/method.ts +0 -50
  329. package/src/client/onsite.spec.ts +0 -23
  330. package/src/client/onsite.ts +0 -29
  331. package/src/client/remote.spec.ts +0 -15
  332. package/src/client/remote.ts +0 -34
  333. package/src/client/types.ts +0 -31
  334. package/src/client/utils.spec.ts +0 -60
  335. package/src/client/utils.ts +0 -41
  336. package/src/config/index.ts +0 -34
  337. package/src/config/model.ts +0 -24
  338. package/src/expectations/__utils__/index.ts +0 -61
  339. package/src/expectations/errors/index.ts +0 -7
  340. package/src/expectations/index.ts +0 -3
  341. package/src/expectations/models/expectation.ts +0 -96
  342. package/src/expectations/models/index.ts +0 -3
  343. package/src/expectations/models/operator.ts +0 -89
  344. package/src/expectations/models/storage.spec.ts +0 -70
  345. package/src/expectations/models/storage.ts +0 -42
  346. package/src/expectations/operators/and.operator.spec.ts +0 -59
  347. package/src/expectations/operators/and.operator.ts +0 -37
  348. package/src/expectations/operators/exec.operator.spec.ts +0 -47
  349. package/src/expectations/operators/exec.operator.ts +0 -25
  350. package/src/expectations/operators/has.operator.spec.ts +0 -514
  351. package/src/expectations/operators/has.operator.ts +0 -230
  352. package/src/expectations/operators/if.operator.spec.ts +0 -116
  353. package/src/expectations/operators/if.operator.ts +0 -77
  354. package/src/expectations/operators/index.ts +0 -11
  355. package/src/expectations/operators/merge.operator.spec.ts +0 -48
  356. package/src/expectations/operators/merge.operator.ts +0 -97
  357. package/src/expectations/operators/not.operator.spec.ts +0 -12
  358. package/src/expectations/operators/not.operator.ts +0 -38
  359. package/src/expectations/operators/or.operator.spec.ts +0 -60
  360. package/src/expectations/operators/or.operator.ts +0 -37
  361. package/src/expectations/operators/remove.operator.spec.ts +0 -40
  362. package/src/expectations/operators/remove.operator.ts +0 -50
  363. package/src/expectations/operators/root.operator.spec.ts +0 -26
  364. package/src/expectations/operators/root.operator.ts +0 -51
  365. package/src/expectations/operators/set.operator.spec.ts +0 -96
  366. package/src/expectations/operators/set.operator.ts +0 -116
  367. package/src/expectations/operators/switch.operator.spec.ts +0 -157
  368. package/src/expectations/operators/switch.operator.ts +0 -126
  369. package/src/expectations/types.ts +0 -225
  370. package/src/expectations/utils/index.ts +0 -3
  371. package/src/expectations/utils/json.ts +0 -22
  372. package/src/expectations/utils/location.spec.ts +0 -64
  373. package/src/expectations/utils/location.ts +0 -180
  374. package/src/expectations/utils/schema.spec.ts +0 -17
  375. package/src/expectations/utils/schema.ts +0 -60
  376. package/src/gui/app/components/chart.component/index.ts +0 -173
  377. package/src/gui/app/components/chart.component/style.scss +0 -4
  378. package/src/gui/app/components/checkbox-area.component/index.ts +0 -101
  379. package/src/gui/app/components/checkbox-area.component/item.component.ts +0 -72
  380. package/src/gui/app/components/checkbox-area.component/style.scss +0 -19
  381. package/src/gui/app/components/checkbox-area.component/template.hbs +0 -3
  382. package/src/gui/app/components/curtain.component/index.ts +0 -19
  383. package/src/gui/app/components/curtain.component/style.scss +0 -14
  384. package/src/gui/app/components/empty.component/index.ts +0 -10
  385. package/src/gui/app/components/empty.component/style.scss +0 -34
  386. package/src/gui/app/components/empty.component/template.hbs +0 -6
  387. package/src/gui/app/components/expectation.component/index.ts +0 -60
  388. package/src/gui/app/components/expectation.component/style.scss +0 -5
  389. package/src/gui/app/components/expectation.component/template.hbs +0 -5
  390. package/src/gui/app/components/header.component/index.ts +0 -81
  391. package/src/gui/app/components/header.component/style.scss +0 -46
  392. package/src/gui/app/components/header.component/template.hbs +0 -15
  393. package/src/gui/app/components/history.component/index.ts +0 -86
  394. package/src/gui/app/components/history.component/style.scss +0 -5
  395. package/src/gui/app/components/history.component/template.hbs +0 -62
  396. package/src/gui/app/components/index.ts +0 -11
  397. package/src/gui/app/components/loader.component/index.ts +0 -12
  398. package/src/gui/app/components/loader.component/style.scss +0 -39
  399. package/src/gui/app/components/panel.component/index.ts +0 -52
  400. package/src/gui/app/components/panel.component/style.scss +0 -60
  401. package/src/gui/app/components/panel.component/template.hbs +0 -13
  402. package/src/gui/app/components/popups.component/index.ts +0 -26
  403. package/src/gui/app/components/popups.component/style.scss +0 -51
  404. package/src/gui/app/components/popups.component/template.hbs +0 -9
  405. package/src/gui/app/components/search.component/index.ts +0 -67
  406. package/src/gui/app/components/search.component/style.scss +0 -43
  407. package/src/gui/app/components/search.component/template.hbs +0 -7
  408. package/src/gui/app/components/viewer.component/index.ts +0 -28
  409. package/src/gui/app/components/viewer.component/style.scss +0 -38
  410. package/src/gui/app/components/viewer.component/template.hbs +0 -3
  411. package/src/gui/app/context.ts +0 -76
  412. package/src/gui/app/handlebars/helpers.ts +0 -32
  413. package/src/gui/app/handlebars/index.ts +0 -11
  414. package/src/gui/app/handlebars/partials/expectation-meta.hbs +0 -53
  415. package/src/gui/app/handlebars/partials/index.ts +0 -2
  416. package/src/gui/app/handlebars/partials/truncated.hbs +0 -10
  417. package/src/gui/app/handlebars/utils.ts +0 -9
  418. package/src/gui/app/main.ts +0 -38
  419. package/src/gui/app/models/button.ts +0 -41
  420. package/src/gui/app/models/client-storage.ts +0 -21
  421. package/src/gui/app/models/component.ts +0 -79
  422. package/src/gui/app/models/context.ts +0 -14
  423. package/src/gui/app/models/dynamic-storage.ts +0 -36
  424. package/src/gui/app/models/form.ts +0 -75
  425. package/src/gui/app/models/index.ts +0 -7
  426. package/src/gui/app/models/section.ts +0 -82
  427. package/src/gui/app/sections/analytics.section/index.ts +0 -97
  428. package/src/gui/app/sections/analytics.section/style.scss +0 -1
  429. package/src/gui/app/sections/analytics.section/template.hbs +0 -6
  430. package/src/gui/app/sections/expectations.section/index.ts +0 -179
  431. package/src/gui/app/sections/expectations.section/style.scss +0 -1
  432. package/src/gui/app/sections/expectations.section/template.hbs +0 -15
  433. package/src/gui/app/sections/history.section/index.ts +0 -175
  434. package/src/gui/app/sections/history.section/style.scss +0 -10
  435. package/src/gui/app/sections/history.section/templates/actions.hbs +0 -5
  436. package/src/gui/app/sections/history.section/templates/section.hbs +0 -15
  437. package/src/gui/app/sections/index.ts +0 -4
  438. package/src/gui/app/sections/settings.section/index.ts +0 -63
  439. package/src/gui/app/sections/settings.section/style.scss +0 -24
  440. package/src/gui/app/sections/settings.section/templates/cache.hbs +0 -6
  441. package/src/gui/app/sections/settings.section/templates/section.hbs +0 -6
  442. package/src/gui/app/sections/settings.section/templates/stats.hbs +0 -6
  443. package/src/gui/app/setup.ts +0 -7
  444. package/src/gui/app/tsconfig.json +0 -20
  445. package/src/gui/app/types/dev.ts +0 -6
  446. package/src/gui/app/types/index.ts +0 -1
  447. package/src/gui/app/types/window.global.ts +0 -9
  448. package/src/gui/app/utils.ts +0 -15
  449. package/src/gui/assets/fa-all.css +0 -5
  450. package/src/gui/assets/fa-regular-400.woff2 +0 -0
  451. package/src/gui/assets/fa-solid-900.woff2 +0 -0
  452. package/src/gui/assets/favicon.png +0 -0
  453. package/src/gui/index.html +0 -18
  454. package/src/gui/styles/_constants.scss +0 -11
  455. package/src/gui/styles/_elements.scss +0 -216
  456. package/src/gui/styles/_soon.scss +0 -35
  457. package/src/gui/styles/main.scss +0 -245
  458. package/src/index.ts +0 -9
  459. package/src/logger/index.ts +0 -80
  460. package/src/logger/types.ts +0 -4
  461. package/src/logger/utils.ts +0 -25
  462. package/src/meta/index.ts +0 -6
  463. package/src/meta/model.spec.ts +0 -28
  464. package/src/meta/model.ts +0 -29
  465. package/src/meta/storage.spec.ts +0 -18
  466. package/src/meta/storage.ts +0 -20
  467. package/src/server/endpoints/cache.delete.endpoint.ts +0 -54
  468. package/src/server/endpoints/cache.usage.get.endpoint.ts +0 -12
  469. package/src/server/endpoints/config.get.endpoint.ts +0 -10
  470. package/src/server/endpoints/expectations-group.update.endpoint.ts +0 -32
  471. package/src/server/endpoints/expectations.create.endpoint.ts +0 -23
  472. package/src/server/endpoints/expectations.delete.endpoint.ts +0 -12
  473. package/src/server/endpoints/expectations.get-list.endpoint.ts +0 -15
  474. package/src/server/endpoints/expectations.update.endpoint.ts +0 -29
  475. package/src/server/endpoints/gui.endpoint.ts +0 -76
  476. package/src/server/endpoints/history.delete.endpoint.ts +0 -10
  477. package/src/server/endpoints/history.get-list.endpoint.ts +0 -15
  478. package/src/server/endpoints/index.ts +0 -18
  479. package/src/server/endpoints/metrics.endpoint.ts +0 -12
  480. package/src/server/endpoints/ping.endpoint.ts +0 -7
  481. package/src/server/endpoints/stats.endpoint.ts +0 -20
  482. package/src/server/index.ts +0 -182
  483. package/src/server/models/containers/index.ts +0 -2
  484. package/src/server/models/containers/model.spec.ts +0 -81
  485. package/src/server/models/containers/model.ts +0 -79
  486. package/src/server/models/containers/storage.spec.ts +0 -41
  487. package/src/server/models/containers/storage.ts +0 -59
  488. package/src/server/models/containers/utils.ts +0 -4
  489. package/src/server/models/context/index.spec.ts +0 -171
  490. package/src/server/models/context/index.ts +0 -136
  491. package/src/server/models/context/snapshot.spec.ts +0 -84
  492. package/src/server/models/context/snapshot.ts +0 -148
  493. package/src/server/models/context/types.ts +0 -65
  494. package/src/server/models/context/utils.spec.ts +0 -77
  495. package/src/server/models/context/utils.ts +0 -99
  496. package/src/server/models/endpoint.spec.ts +0 -28
  497. package/src/server/models/endpoint.ts +0 -69
  498. package/src/server/models/exchanges/index.ts +0 -1
  499. package/src/server/models/exchanges/socket-io.spec.ts +0 -13
  500. package/src/server/models/exchanges/socket-io.ts +0 -14
  501. package/src/server/models/executor/errors/index.spec.ts +0 -23
  502. package/src/server/models/executor/errors/index.ts +0 -15
  503. package/src/server/models/executor/index.spec.ts +0 -148
  504. package/src/server/models/executor/index.ts +0 -297
  505. package/src/server/models/history/index.ts +0 -2
  506. package/src/server/models/history/model.spec.ts +0 -35
  507. package/src/server/models/history/model.ts +0 -82
  508. package/src/server/models/history/storage.spec.ts +0 -41
  509. package/src/server/models/history/storage.ts +0 -38
  510. package/src/server/models/index.ts +0 -11
  511. package/src/server/models/providers/index.ts +0 -2
  512. package/src/server/models/providers/model.spec.ts +0 -11
  513. package/src/server/models/providers/model.ts +0 -33
  514. package/src/server/models/providers/storage.spec.ts +0 -21
  515. package/src/server/models/providers/storage.ts +0 -34
  516. package/src/server/models/reply.spec.ts +0 -17
  517. package/src/server/models/reply.ts +0 -10
  518. package/src/server/models/router.spec.ts +0 -50
  519. package/src/server/models/router.ts +0 -79
  520. package/src/server/models/service.ts +0 -5
  521. package/src/server/models/transports/index.ts +0 -2
  522. package/src/server/models/transports/model.ts +0 -9
  523. package/src/server/models/transports/storage.spec.ts +0 -14
  524. package/src/server/models/transports/storage.ts +0 -13
  525. package/src/server/services/analytics.service.spec.ts +0 -38
  526. package/src/server/services/analytics.service.ts +0 -58
  527. package/src/server/services/index.ts +0 -2
  528. package/src/server/services/metrics.service.spec.ts +0 -42
  529. package/src/server/services/metrics.service.ts +0 -46
  530. package/src/server/transports/http.transport/context.ts +0 -72
  531. package/src/server/transports/http.transport/executor.ts +0 -156
  532. package/src/server/transports/http.transport/index.ts +0 -53
  533. package/src/server/transports/index.ts +0 -3
  534. package/src/server/transports/internal/http.transport/context.ts +0 -50
  535. package/src/server/transports/internal/http.transport/executor.ts +0 -56
  536. package/src/server/transports/internal/http.transport/index.ts +0 -23
  537. package/src/server/transports/internal/http.transport/reply.ts +0 -82
  538. package/src/server/transports/internal/index.ts +0 -2
  539. package/src/server/transports/internal/io.transport/context.ts +0 -40
  540. package/src/server/transports/internal/io.transport/executor.ts +0 -27
  541. package/src/server/transports/internal/io.transport/index.ts +0 -36
  542. package/src/server/transports/internal/io.transport/reply.ts +0 -26
  543. package/src/server/transports/internal/utils.ts +0 -6
  544. package/src/server/transports/ws.transport/context.ts +0 -90
  545. package/src/server/transports/ws.transport/executor.ts +0 -64
  546. package/src/server/transports/ws.transport/index.ts +0 -105
  547. package/src/server/types/index.ts +0 -32
  548. package/src/server/utils/index.ts +0 -35
  549. package/src/utils/index.spec.ts +0 -31
  550. package/src/utils/index.ts +0 -51
  551. package/test/index.ts +0 -299
  552. package/test/providers/index.ts +0 -2
  553. package/test/providers/root.ts +0 -241
  554. package/test/providers/statics.ts +0 -37
  555. package/tsconfig.json +0 -108
  556. package/tsconfig.tsbuildinfo +0 -1
  557. package/types/common.ts +0 -127
  558. package/types/index.ts +0 -1
  559. package/vite.config.ts +0 -64
@@ -1,297 +0,0 @@
1
- import { gzip, ungzip } from 'node-gzip';
2
- import { from } from 'rxjs';
3
- import rfdc from 'rfdc';
4
- import _ from 'lodash';
5
-
6
- import type { Expectation, IExpectationSchemaForward } from '../../../expectations';
7
-
8
- import { ExecutorManualError } from './errors';
9
- import { cast, wait } from '../../../utils';
10
- import { Logger } from '../../../logger';
11
- import {
12
- parsePayload,
13
- RequestContext,
14
- serializePayload,
15
- extractPayloadType,
16
- IRequestContextCache,
17
- IRequestContextOutgoing,
18
- IRequestContextIncoming,
19
- IRequestContextForwarded,
20
- } from '../context';
21
-
22
- export * from './errors';
23
-
24
- const clone = rfdc();
25
- const logger = Logger.build('Server.Models.Executor');
26
-
27
- export interface IExecutorExecOptions {
28
- expectation?: Expectation<any>;
29
- }
30
-
31
- export abstract class Executor<TRequestContext extends RequestContext = RequestContext> {
32
- public TRequestContext!: TRequestContext;
33
- public TContext!: TRequestContext['TContext'];
34
-
35
- /** Uses to handle request forwarding */
36
- public abstract forward(
37
- context: TRequestContext,
38
- incoming: IRequestContextIncoming,
39
- configuration: IExpectationSchemaForward,
40
- ): Promise<IRequestContextForwarded | null>;
41
-
42
- /** Uses to handle outgoing payload and reply */
43
- public abstract reply(
44
- context: TRequestContext,
45
- outgoing: IRequestContextOutgoing
46
- ): Promise<IRequestContextOutgoing | null>;
47
-
48
- /** Matches expectation */
49
- public async match(context: TRequestContext): Promise<Expectation<any> | null> {
50
- return context.provider.storages.expectations.match(context.snapshot);
51
- }
52
-
53
- /** Prepares context right after expectation was manipulated */
54
- public async prepare(context: TRequestContext): Promise<unknown> {
55
- return context;
56
- }
57
-
58
- /** Uses to handle whole request */
59
- public async exec(context: TRequestContext, options?: IExecutorExecOptions): Promise<TRequestContext> {
60
- const expectation = options?.expectation ? options.expectation : await this.match(context).catch((error) => {
61
- logger.error('Got error while execution [matchExpectation] method', error?.stack ?? error);
62
- return null;
63
- });
64
-
65
- if (!expectation) {
66
- if (!context.outgoing) {
67
- context.provider.storages.history.unregister(context.history);
68
- return context;
69
- }
70
-
71
- if (context.history?.hasStatus('registered')) {
72
- context.history.switchStatus('pending');
73
- }
74
-
75
- return context;
76
- }
77
-
78
- context.assign({
79
- snapshot: expectation.request.manipulate(context.snapshot),
80
- expectation: expectation.increaseExecutionsCounter(),
81
- });
82
-
83
- await this
84
- .prepare(context)
85
- .catch((error) => logger.error('Got error while execution [prepare] method', error?.stack ?? error));
86
-
87
- context.provider.server.exchanges.io.publish('expectation:updated', expectation.toPlain());
88
- logger.info('Expectation has matched as', `"${expectation.name}" [${expectation.id}]`);
89
-
90
- if (context.history?.hasStatus('registered')) {
91
- context.history
92
- .switchStatus('pending')
93
- .actualizeSnapshot(context.snapshot)
94
- .assign({ expectation: context.expectation });
95
-
96
- context.provider.server.exchanges.io.publish('history:added', context.history.toPlain());
97
- context.provider.server.services.metrics.register('rate', { count: 1 });
98
- }
99
-
100
- if (!context.hasStatuses(['handling'])) {
101
- return context;
102
- }
103
-
104
- if (context.snapshot.incoming.delay) {
105
- logger.info(`Has delayed over [${context.snapshot.incoming.delay}ms]`);
106
- await wait(context.snapshot.incoming.delay);
107
- }
108
-
109
- if (context.snapshot.incoming.error) {
110
- logger.info(`Has destroyed using [${context.snapshot.incoming.error}]`);
111
-
112
- context.snapshot.assign({ error: { code: context.snapshot.incoming.error, isManual: true } });
113
- throw ExecutorManualError.build(context.snapshot.incoming.error);
114
- }
115
-
116
- if (expectation.forward) {
117
- const forwarded = await this.handleForwarding(context).catch((error) => {
118
- logger.error('Got error while execution [handleForwarding] method', error?.stack ?? error);
119
- return null;
120
- });
121
-
122
- if (forwarded) {
123
- context.snapshot.assign({
124
- outgoing: forwarded.outgoing ?? context.snapshot.outgoing,
125
-
126
- forwarded: {
127
- isCached: forwarded.isCached,
128
- messages: clone(forwarded.messages),
129
-
130
- incoming: Object.assign(
131
- clone(_.omit(forwarded.incoming, ['stream'])),
132
- _.pick(forwarded.incoming, ['stream'])
133
- ),
134
-
135
- ...(forwarded.outgoing && {
136
- outgoing: Object.assign(
137
- clone(_.omit(forwarded.outgoing, ['stream'])),
138
- _.pick(forwarded.outgoing, ['stream'])
139
- ),
140
- }),
141
- }
142
- });
143
- }
144
-
145
- if (context.snapshot.forwarded && context.history?.hasStatus('pending')) {
146
- context.history.snapshot.assign({
147
- cache: context.snapshot.cache,
148
-
149
- forwarded: {
150
- isCached: context.snapshot.forwarded.isCached,
151
- incoming: _.omit(context.snapshot.forwarded.incoming, ['stream']),
152
-
153
- ...(context.snapshot.forwarded.outgoing && {
154
- outgoing: _.omit(context.snapshot.forwarded.outgoing, ['stream'])
155
- }),
156
- },
157
- });
158
-
159
- context.provider.server.exchanges.io.publish('history:updated', context.history.toPlain());
160
- }
161
- }
162
-
163
- if (!context.hasStatuses(['handling'])) {
164
- return context;
165
- }
166
-
167
- const outgoing = await this.handleReplying(context).catch((error) => {
168
- logger.error('Got error while execution [handleReplying] method', error?.stack ?? error);
169
- return null;
170
- });
171
-
172
- return outgoing ? context.assign({ outgoing }) : context;
173
- }
174
-
175
- private async handleForwarding(context: TRequestContext): Promise<IRequestContextForwarded | null> {
176
- if (!context.expectation?.forward) {
177
- return context.snapshot;
178
- }
179
-
180
- const snapshot = context.snapshot.assign({ cache: context.compileCacheConfiguration() });
181
-
182
- if (snapshot.cache.isEnabled) {
183
- const cached = await context.provider.server.databases.redis!.get(snapshot.cache.key).catch((error) => {
184
- logger.error('Got error while redis get', error?.stack ?? error);
185
- return null;
186
- });
187
-
188
- const unziped = cached
189
- ? await ungzip(Buffer.from(cached, 'base64')).catch((error) => {
190
- logger.error('Got error while cache unzip', error?.stack ?? error);
191
- return null;
192
- })
193
- : null;
194
-
195
- const parsed = <IRequestContextCache | null>(unziped ? parsePayload('json', unziped) : null);
196
- const dataRaw = parsed?.outgoing.dataRaw ? Buffer.from(parsed?.outgoing.dataRaw, 'base64') : undefined;
197
-
198
- if (parsed) {
199
- logger.info(`Got cache [${snapshot.cache.key}]`);
200
-
201
- if (parsed.messages?.length) {
202
- parsed.outgoing.stream = from(parsed.messages.map((message) => message.data) ?? []);
203
- }
204
-
205
- return Object.assign(snapshot.pick(['incoming']), {
206
- isCached: true,
207
- messages: parsed.messages,
208
-
209
- outgoing: Object.assign(_.omit(parsed.outgoing, ['dataRaw']), {
210
- data: dataRaw ? parsePayload(parsed.outgoing.type, dataRaw) : undefined,
211
- dataRaw,
212
- }),
213
- });
214
- }
215
- }
216
-
217
- const type = extractPayloadType(snapshot.incoming.headers) ?? 'plain';
218
- const dataRaw = snapshot.incoming.data === undefined
219
- ? snapshot.incoming.dataRaw
220
- : typeof snapshot.incoming.data === 'object'
221
- ? serializePayload(type, snapshot.incoming.data)
222
- : Buffer.from(String(snapshot.incoming.data));
223
-
224
- const forwarded = await this
225
- .forward(context, Object.assign(snapshot.incoming, { type, dataRaw }), context.expectation.forward)
226
- .catch((error) => {
227
- logger.error('Got error while execution [forward] method', error?.stack ?? error);
228
- return null;
229
- });
230
-
231
- if (forwarded) {
232
- forwarded.messages = [];
233
- forwarded.outgoing?.stream?.subscribe({
234
- error: () => null,
235
- next: (data) => forwarded.messages!.push({ data, location: 'outgoing' }),
236
- });
237
- }
238
-
239
- return forwarded;
240
- }
241
-
242
- private async handleReplying(context: TRequestContext): Promise<IRequestContextOutgoing | null> {
243
- const snapshot = context.expectation?.response
244
- ? context.expectation.response.manipulate(context.snapshot)
245
- : context.snapshot;
246
-
247
- const type = extractPayloadType(snapshot.outgoing.headers) ?? snapshot.outgoing.type;
248
- const dataRaw = snapshot.outgoing.data === undefined
249
- ? snapshot.outgoing.dataRaw
250
- : typeof snapshot.outgoing.data === 'object'
251
- ? serializePayload(type, snapshot.outgoing.data)
252
- : Buffer.from(String(snapshot.outgoing.data));
253
-
254
- const outgoing = await this
255
- .reply(context, Object.assign(snapshot.outgoing, { type, dataRaw }))
256
- .catch((error) => {
257
- logger.error('Got error while execution [reply] method', error?.stack ?? error);
258
- return null;
259
- });
260
-
261
- const shouldBeCached = snapshot.cache.isEnabled
262
- && snapshot.forwarded?.outgoing
263
- && !snapshot.forwarded.isCached
264
- && snapshot.cache.ttl
265
- && typeof snapshot.cache.key === 'string';
266
-
267
- if (shouldBeCached) {
268
- const serialized = serializePayload('json', cast<IRequestContextCache>({
269
- messages: snapshot.forwarded!.messages?.filter((message) => message.location === 'outgoing'),
270
- outgoing: Object.assign(_.omit(snapshot.forwarded!.outgoing, ['data']), {
271
- dataRaw: snapshot.forwarded!.outgoing?.dataRaw?.toString('base64'),
272
- }),
273
- }));
274
-
275
- if (!serialized) {
276
- return outgoing;
277
- }
278
-
279
- const zipped = await gzip(serialized).catch((error) => {
280
- logger.error('Got error while zip payload', error?.stack ?? error);
281
- return null;
282
- });
283
-
284
- if (zipped) {
285
- await context.provider.server.databases.redis!.setex(
286
- <string>snapshot.cache.key,
287
- snapshot.cache.ttl!,
288
- zipped.toString('base64')
289
- )
290
- .then(() => logger.info(`Wrote cache [${snapshot.cache.key}] for [${snapshot.cache.ttl}] seconds`))
291
- .catch((error) => logger.error('Got error while redis set', error?.stack ?? error));
292
- }
293
- }
294
-
295
- return outgoing;
296
- }
297
- }
@@ -1,2 +0,0 @@
1
- export * from './storage';
2
- export * from './model';
@@ -1,35 +0,0 @@
1
- import { History } from './model';
2
-
3
- // Test generated using Keploy
4
- test('test_pushMessage_withValidData_messageAddedToSnapshot', () => {
5
- const history = new History({ group: 'testGroup', snapshot: <any>{ messages: [] } });
6
- const location = 'testLocation';
7
- const data = { key: 'value' };
8
-
9
- history.pushMessage(<any>location, data);
10
-
11
- expect(history.snapshot.messages.length).toBe(1);
12
- expect(history.snapshot.messages[0]).toEqual(
13
- expect.objectContaining({
14
- location: location,
15
- data: data
16
- })
17
- );
18
- });
19
-
20
- // Test generated using Keploy
21
- test('test_switchStatus_updatesStatus', () => {
22
- const history = new History({ group: 'testGroup', snapshot: <any>{ messages: [] } });
23
- history.switchStatus('completed');
24
- expect(history.hasStatus('completed')).toBe(true);
25
- });
26
-
27
- // Test generated using Keploy
28
- test('test_complete_marksStatusCompletedAndClonesContainer', () => {
29
- const mockContainer = { clone: jest.fn() };
30
- const history = new History({ group: 'testGroup', snapshot: <any>{ messages: [], container: mockContainer } });
31
- history.complete();
32
- expect(history.hasStatus('completed')).toBe(true);
33
- expect(mockContainer.clone).toHaveBeenCalled();
34
- });
35
-
@@ -1,82 +0,0 @@
1
- import { v4 as genUid } from 'uuid';
2
-
3
- import type { IRequestContextMessage, RequestContextSnapshot } from '../../models';
4
- import type { SetRequiredKeys } from '../../../../types';
5
- import type { Expectation } from '../../../expectations';
6
-
7
- import { buildCounter, cast } from '../../../utils';
8
-
9
- export class History {
10
- public TPlain!: Pick<History, 'id' | 'status' | 'group' | 'timestamp' | 'duration'> & {
11
- snapshot: RequestContextSnapshot['TPlain'];
12
- expectation?: Expectation<any>['TPlain'];
13
- };
14
-
15
- public id: string = genUid();
16
- public messagesCounter = buildCounter();
17
-
18
- public group: string = this.configuration.group;
19
- public snapshot: SetRequiredKeys<RequestContextSnapshot, 'messages'> = this.configuration.snapshot;
20
-
21
- public status = cast<'unregistered' | 'registered' | 'pending' | 'completed'>('unregistered');
22
- public expectation?: Expectation<any>;
23
-
24
- public timestamp: number = this.configuration.timestamp ?? Date.now();
25
- public duration: number = 0;
26
-
27
- constructor(private configuration: Pick<History, 'group' | 'snapshot'> & Partial<Pick<History, 'timestamp'>>) {}
28
-
29
- public pushMessage(location: IRequestContextMessage['location'], data: unknown): this {
30
- this.snapshot.messages.push({ location, data, id: this.messagesCounter(), timestamp: Date.now() });
31
- return this.mark();
32
- }
33
-
34
- public actualizeSnapshot(snapshot: RequestContextSnapshot): this {
35
- this.snapshot.assign(snapshot.omit(['incoming', 'forwarded', 'messages']));
36
- return this.mark();
37
- }
38
-
39
- public switchStatus(status: History['status']): this {
40
- return Object.assign(this.mark(), { status });
41
- }
42
-
43
- public hasStatus(status: History['status']): boolean {
44
- return this.status === status;
45
- }
46
-
47
- public complete(): this {
48
- if (this.snapshot.container) {
49
- this.snapshot.container = this.snapshot.container.clone();
50
- }
51
-
52
- return this.switchStatus('completed');
53
- }
54
-
55
- public assign<T extends Partial<Pick<History, 'expectation'>>>(payload: T) {
56
- return Object.assign(this.mark(), payload);
57
- }
58
-
59
- /** Updates duration property base on timestamp */
60
- public mark() {
61
- return this.hasStatus('completed') ? this : Object.assign(this, { duration: Date.now() - this.timestamp });
62
- }
63
-
64
- public toPlain(): History['TPlain'] {
65
- return {
66
- id: this.id,
67
-
68
- timestamp: this.timestamp,
69
- duration: this.duration,
70
-
71
- group: this.group,
72
- status: this.status,
73
-
74
- snapshot: this.snapshot.toPlain(),
75
- expectation: this.expectation?.toPlain(),
76
- };
77
- }
78
-
79
- static build(configuration: History['configuration']) {
80
- return new History(configuration);
81
- }
82
- }
@@ -1,41 +0,0 @@
1
- import { HistoryStorage } from './storage';
2
- import { History } from './model';
3
- import config from '../../../config';
4
-
5
- // Test generated using Keploy
6
- test('test_registerHistory_withoutExistingHistory_createsValidHistory', () => {
7
- const storage = new HistoryStorage({ group: 'test-group' });
8
- const historyData = { snapshot: {} };
9
- const result = storage.register(<any>historyData);
10
- expect(result).toBeInstanceOf(History);
11
- expect(result.group).toBe('test-group');
12
- expect(result.snapshot).toEqual(historyData.snapshot);
13
- });
14
-
15
- // Test generated using Keploy
16
- test('test_unregisterHistory_removesHistoryFromStorage', () => {
17
- const storage = new HistoryStorage({ group: 'test-group' });
18
- const historyInstance = new History(<any>{ id: '1', snapshot: {} });
19
- storage.register(historyInstance);
20
- expect(storage.size).toBe(1);
21
- storage.unregister(historyInstance);
22
- expect(storage.size).toBe(0);
23
- });
24
-
25
- // Test generated using Keploy
26
- test('test_registerHistory_exceedsLimit_removesOldestEntry', () => {
27
- const mockConfig = { get: () => ({ limit: 2 }) };
28
- jest.spyOn(config, 'get').mockImplementation(<any>mockConfig.get);
29
-
30
- const storage = new HistoryStorage({ group: 'test-group' });
31
- const history1 = new History(<any>{ id: '1', snapshot: {} });
32
- const history2 = new History(<any>{ id: '2', snapshot: {} });
33
- const history3 = new History(<any>{ id: '3', snapshot: {} });
34
-
35
- storage.register(history1);
36
- storage.register(history2);
37
- expect(storage.size).toBe(2);
38
- storage.register(history3);
39
- expect(storage.size).toBe(2);
40
- expect(storage.has('1')).toBe(false); // oldest entry should be removed
41
- });
@@ -1,38 +0,0 @@
1
- import { History } from './model';
2
- import config from '../../../config';
3
-
4
- export class HistoryStorage extends Map<string, History> {
5
- private stack: string[] = [];
6
-
7
- constructor(private configuration: Pick<History, 'group'>) {
8
- super();
9
- }
10
-
11
- public register(predicate: History | Omit<History['configuration'], 'group'>): History {
12
- const history = predicate instanceof History ? predicate : History.build({
13
- group: this.configuration.group,
14
- snapshot: predicate.snapshot,
15
- });
16
-
17
- this.set(history.id, history);
18
-
19
- if (this.stack.push(history.id) > config.get('history').limit) {
20
- this.delete(this.stack.shift()!);
21
- }
22
-
23
- return history.switchStatus('registered');
24
- }
25
-
26
- public unregister(history?: History): this {
27
- if (history) {
28
- this.delete(history.switchStatus('unregistered').id);
29
- }
30
-
31
- return this;
32
- }
33
-
34
- clear(): void {
35
- this.stack = [];
36
- super.clear();
37
- }
38
- }
@@ -1,11 +0,0 @@
1
- export * from './containers';
2
- export * from './transports';
3
- export * from './providers';
4
- export * from './exchanges';
5
- export * from './executor';
6
- export * from './endpoint';
7
- export * from './service';
8
- export * from './history';
9
- export * from './context';
10
- export * from './router';
11
- export * from './reply';
@@ -1,2 +0,0 @@
1
- export * from './storage';
2
- export * from './model';
@@ -1,11 +0,0 @@
1
- import { Provider } from './model';
2
-
3
- // Test generated using Keploy
4
- describe('Provider', () => {
5
- it('should assign the server correctly', () => {
6
- const provider = Provider.build({ group: 'test-group' });
7
- const mockServer = {}; // Mock server object
8
- provider.assign({ server: <any>mockServer });
9
- expect(provider.server).toBe(mockServer);
10
- });
11
- });
@@ -1,33 +0,0 @@
1
- import type { MockServer } from '../../index';
2
-
3
- import { IServerContext, TDefaultServerContext } from '../../types';
4
- import { ExpectationsStorage } from '../../../expectations';
5
- import { ContainersStorage } from '../containers';
6
- import { HistoryStorage } from '../history';
7
- import { OnsiteClient } from '../../../client';
8
-
9
- export class Provider<TContext extends IServerContext<any> = TDefaultServerContext> {
10
- public TContext!: TContext;
11
- public server!: MockServer;
12
-
13
- public client = OnsiteClient.build<TContext>(this);
14
- public group: string = this.provided.group;
15
-
16
- public storages = {
17
- expectations: new ExpectationsStorage(),
18
- containers: new ContainersStorage(),
19
- history: new HistoryStorage(this.provided),
20
- };
21
-
22
- constructor(private provided: Pick<Provider, 'group'>) {}
23
-
24
- public assign(payload: Partial<Pick<Provider, 'server'>>): this {
25
- return Object.assign(this, payload);
26
- }
27
-
28
- static build<TContext extends IServerContext<any> = TDefaultServerContext>(
29
- provided: Provider['provided']
30
- ): Provider<TContext> {
31
- return new Provider<TContext>(provided);
32
- }
33
- }
@@ -1,21 +0,0 @@
1
- import { ProvidersStorage } from './storage';
2
- import { MockServer } from '../../index';
3
- import { Provider } from './model';
4
-
5
- // Test generated using Keploy
6
- test('extract returns all providers including default', () => {
7
- const mockServer = <MockServer<any, any>>{};
8
- const storage = new ProvidersStorage(mockServer);
9
- const provider1 = Provider.build({ group: 'group1' });
10
- const provider2 = Provider.build({ group: 'group2' });
11
-
12
- storage.register(provider1);
13
- storage.register(provider2);
14
-
15
- const result = storage.extract();
16
-
17
- expect(result).toHaveLength(3); // Two registered + one default
18
- expect(result).toContainEqual(provider1);
19
- expect(result).toContainEqual(provider2);
20
- expect(result).toContainEqual(storage.default);
21
- });
@@ -1,34 +0,0 @@
1
- import type { IServerContext } from '../../types';
2
- import type { MockServer } from '../../index';
3
-
4
- import { Provider } from './model';
5
- import { Logger } from '../../../logger';
6
-
7
- const logger = Logger.build('Server.Models.ProvidersStorage');
8
-
9
- export class ProvidersStorage<TContext extends IServerContext<any>> extends Map<string, Provider<TContext>> {
10
- public default = Provider.build<TContext>({ group: 'default' });
11
-
12
- constructor(private server: MockServer<any, TContext>) {
13
- super();
14
- }
15
-
16
- public extract(): Provider[] {
17
- return [...this.values(), this.default];
18
- }
19
-
20
- public register(provider: Provider<TContext>): this {
21
- provider.assign({ server: this.server });
22
-
23
- if (this.default === provider) {
24
- return this;
25
- }
26
- if (this.has(provider.group)) {
27
- logger.info(`Provider group [${provider.group}] is already registered. Using existent...`);
28
- return this;
29
- }
30
-
31
- logger.info(`Provider group [${provider.group}] has registered`);
32
- return this.set(provider.group, provider);
33
- }
34
- }
@@ -1,17 +0,0 @@
1
- import { RequestContext } from './context';
2
- import { Reply } from './reply';
3
-
4
- // Test generated using Keploy
5
- test('test_okMethod_shouldReturnStructuredResponse', () => {
6
- const mockContext = {} as RequestContext;
7
- const reply = new class extends Reply<typeof mockContext> {
8
- ok = (payload: unknown) => ({ status: 200, data: payload });
9
- notFound = () => ({ status: 404 });
10
- internalError = (message?: string) => ({ status: 500, message });
11
- validationError = (reasons?: unknown[]) => ({ status: 400, errors: reasons });
12
- }(mockContext);
13
-
14
- const response = reply.ok({ message: 'success' });
15
- expect(response).toEqual({ status: 200, data: { message: 'success' } });
16
- expect(typeof response).toBe('object');
17
- });
@@ -1,10 +0,0 @@
1
- import type { RequestContext } from './context';
2
-
3
- export abstract class Reply<TContext extends RequestContext, TOutgoing = unknown> {
4
- constructor(public context: TContext) {}
5
-
6
- public abstract ok(payload: TOutgoing): unknown;
7
- public abstract notFound(): unknown;
8
- public abstract internalError(message?: string): unknown;
9
- public abstract validationError(reasons?: unknown[]): unknown;
10
- }