@daiso-tech/core 0.48.5 → 0.49.0

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 (541) hide show
  1. package/dist/backoff-policies/_shared.d.ts +0 -3
  2. package/dist/backoff-policies/_shared.js.map +1 -1
  3. package/dist/backoff-policies/constant-backoff/constant-backoff.d.ts +0 -1
  4. package/dist/backoff-policies/constant-backoff/constant-backoff.js.map +1 -1
  5. package/dist/backoff-policies/exponential-backoff/exponential-backoff.d.ts +0 -1
  6. package/dist/backoff-policies/exponential-backoff/exponential-backoff.js.map +1 -1
  7. package/dist/backoff-policies/linear-backoff/linear-backoff.d.ts +0 -1
  8. package/dist/backoff-policies/linear-backoff/linear-backoff.js.map +1 -1
  9. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.d.ts +0 -1
  10. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.js.map +1 -1
  11. package/dist/cache/contracts/cache-adapter.contract.d.ts +6 -6
  12. package/dist/cache/contracts/cache.contract.d.ts +16 -9
  13. package/dist/cache/contracts/cache.errors.d.ts +1 -4
  14. package/dist/cache/contracts/cache.errors.js +1 -3
  15. package/dist/cache/contracts/cache.errors.js.map +1 -1
  16. package/dist/cache/contracts/cache.events.d.ts +11 -3
  17. package/dist/cache/contracts/cache.events.js +1 -1
  18. package/dist/cache/contracts/cache.events.js.map +1 -1
  19. package/dist/cache/contracts/database-cache-adapter.contract.d.ts +0 -1
  20. package/dist/cache/contracts/types.d.ts +0 -2
  21. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +1 -2
  22. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  23. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
  24. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +17 -15
  25. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  26. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +0 -2
  27. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  28. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  29. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +1 -1
  30. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +0 -1
  31. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  32. package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -5
  33. package/dist/cache/implementations/derivables/cache/cache.js +10 -2
  34. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  35. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js +1 -1
  36. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -1
  37. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +0 -2
  38. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  39. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.d.ts +0 -1
  40. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +6 -2
  41. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
  42. package/dist/cache/implementations/test-utilities/cache.test-suite.d.ts +0 -1
  43. package/dist/cache/implementations/test-utilities/cache.test-suite.js +1772 -1735
  44. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  45. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +1 -1
  46. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
  47. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.d.ts +0 -5
  48. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js +0 -1
  49. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js.map +1 -1
  50. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.d.ts +0 -2
  51. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.js +0 -1
  52. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.js.map +1 -1
  53. package/dist/circuit-breaker/contracts/circuit-breaker.contract.d.ts +3 -4
  54. package/dist/circuit-breaker/contracts/circuit-breaker.contract.js +2 -3
  55. package/dist/circuit-breaker/contracts/circuit-breaker.contract.js.map +1 -1
  56. package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +0 -3
  57. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +1 -3
  58. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -1
  59. package/dist/circuit-breaker/contracts/circuit-breaker.events.d.ts +0 -2
  60. package/dist/circuit-breaker/contracts/circuit-breaker.events.js +0 -1
  61. package/dist/circuit-breaker/contracts/circuit-breaker.events.js.map +1 -1
  62. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.d.ts +2 -2
  63. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js +2 -2
  64. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js.map +1 -1
  65. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.d.ts +2 -3
  66. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js +8 -10
  67. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js.map +1 -1
  68. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.d.ts +2 -2
  69. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js +2 -2
  70. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js.map +1 -1
  71. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.d.ts +2 -0
  72. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js +2 -0
  73. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js.map +1 -1
  74. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.d.ts +2 -0
  75. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js +2 -0
  76. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js.map +1 -1
  77. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +2 -4
  78. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
  79. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.d.ts +1 -1
  80. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js +2 -2
  81. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +1 -1
  82. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts +0 -2
  83. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map +1 -1
  84. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts +0 -2
  85. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map +1 -1
  86. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.d.ts +0 -1
  87. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.js +1 -1
  88. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.js.map +1 -1
  89. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.d.ts +0 -1
  90. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js +1 -1
  91. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js.map +1 -1
  92. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.d.ts +0 -1
  93. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js +1 -1
  94. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js.map +1 -1
  95. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.d.ts +0 -1
  96. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js +1 -1
  97. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js.map +1 -1
  98. package/dist/codec/contracts/_module-exports.d.ts +3 -0
  99. package/dist/codec/contracts/_module-exports.js +2 -0
  100. package/dist/codec/contracts/_module-exports.js.map +1 -0
  101. package/dist/codec/contracts/_module.d.ts +4 -0
  102. package/dist/codec/contracts/_module.js +2 -0
  103. package/dist/codec/contracts/_module.js.map +1 -0
  104. package/dist/codec/contracts/codec.contract.d.ts +12 -0
  105. package/dist/codec/contracts/codec.contract.js +6 -0
  106. package/dist/codec/contracts/codec.contract.js.map +1 -0
  107. package/dist/codec/contracts/codec.errors.d.ts +51 -0
  108. package/dist/codec/contracts/codec.errors.js +64 -0
  109. package/dist/codec/contracts/codec.errors.js.map +1 -0
  110. package/dist/codec/contracts/decoder.contract.d.ts +12 -0
  111. package/dist/codec/contracts/decoder.contract.js +6 -0
  112. package/dist/codec/contracts/decoder.contract.js.map +1 -0
  113. package/dist/codec/contracts/encoder.contract.d.ts +12 -0
  114. package/dist/codec/contracts/encoder.contract.js +6 -0
  115. package/dist/codec/contracts/encoder.contract.js.map +1 -0
  116. package/dist/codec/implementations/base-64-codec/_module-exports.d.ts +1 -0
  117. package/dist/codec/implementations/base-64-codec/_module-exports.js +2 -0
  118. package/dist/codec/implementations/base-64-codec/_module-exports.js.map +1 -0
  119. package/dist/codec/implementations/base-64-codec/_module.d.ts +1 -0
  120. package/dist/codec/implementations/base-64-codec/_module.js +2 -0
  121. package/dist/codec/implementations/base-64-codec/_module.js.map +1 -0
  122. package/dist/codec/implementations/base-64-codec/base-64-codec.d.ts +12 -0
  123. package/dist/codec/implementations/base-64-codec/base-64-codec.js +27 -0
  124. package/dist/codec/implementations/base-64-codec/base-64-codec.js.map +1 -0
  125. package/dist/collection/contracts/_shared/compartor.type.d.ts +0 -1
  126. package/dist/collection/contracts/_shared/cross-join-result.type.d.ts +0 -1
  127. package/dist/collection/contracts/_shared/ensure-map.type.d.ts +0 -1
  128. package/dist/collection/contracts/_shared/ensure-record.type.d.ts +0 -1
  129. package/dist/collection/contracts/_shared/foreach.type.d.ts +0 -2
  130. package/dist/collection/contracts/_shared/map.type.d.ts +0 -2
  131. package/dist/collection/contracts/_shared/modifier.type.d.ts +0 -2
  132. package/dist/collection/contracts/_shared/predicate.type.d.ts +0 -7
  133. package/dist/collection/contracts/_shared/reduce.type.d.ts +0 -2
  134. package/dist/collection/contracts/_shared/tap.type.d.ts +0 -2
  135. package/dist/collection/contracts/_shared/transform.type.d.ts +0 -2
  136. package/dist/collection/contracts/async-collection.contract.d.ts +0 -1
  137. package/dist/collection/contracts/collection.contract.d.ts +0 -2
  138. package/dist/collection/contracts/collection.errors.d.ts +0 -1
  139. package/dist/collection/contracts/collection.errors.js +0 -1
  140. package/dist/collection/contracts/collection.errors.js.map +1 -1
  141. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +0 -4
  142. package/dist/event-bus/contracts/event-bus.contract.d.ts +0 -4
  143. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +1 -1
  144. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +7 -9
  145. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  146. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +1 -1
  147. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +1 -1
  148. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +0 -1
  149. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  150. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +2 -5
  151. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  152. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +0 -2
  153. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  154. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.d.ts +0 -1
  155. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +1 -1
  156. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  157. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.d.ts +0 -1
  158. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +1 -1
  159. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  160. package/dist/file-size/contracts/_module-exports.d.ts +1 -0
  161. package/dist/file-size/contracts/_module-exports.js +2 -0
  162. package/dist/file-size/contracts/_module-exports.js.map +1 -0
  163. package/dist/file-size/contracts/_module.d.ts +1 -0
  164. package/dist/file-size/contracts/_module.js +2 -0
  165. package/dist/file-size/contracts/_module.js.map +1 -0
  166. package/dist/file-size/contracts/file-size.contract.d.ts +17 -0
  167. package/dist/file-size/contracts/file-size.contract.js +9 -0
  168. package/dist/file-size/contracts/file-size.contract.js.map +1 -0
  169. package/dist/file-size/implementations/_module-exports.d.ts +1 -0
  170. package/dist/file-size/implementations/_module-exports.js +2 -0
  171. package/dist/file-size/implementations/_module-exports.js.map +1 -0
  172. package/dist/file-size/implementations/_module.d.ts +1 -0
  173. package/dist/file-size/implementations/_module.js +2 -0
  174. package/dist/file-size/implementations/_module.js.map +1 -0
  175. package/dist/file-size/implementations/file-size.d.ts +50 -0
  176. package/dist/file-size/implementations/file-size.js +89 -0
  177. package/dist/file-size/implementations/file-size.js.map +1 -0
  178. package/dist/file-storage/contracts/_module-exports.d.ts +7 -0
  179. package/dist/file-storage/contracts/_module-exports.js +4 -0
  180. package/dist/file-storage/contracts/_module-exports.js.map +1 -0
  181. package/dist/file-storage/contracts/_module.d.ts +7 -0
  182. package/dist/file-storage/contracts/_module.js +4 -0
  183. package/dist/file-storage/contracts/_module.js.map +1 -0
  184. package/dist/file-storage/contracts/file-storage-adapter.contract.d.ts +180 -0
  185. package/dist/file-storage/contracts/file-storage-adapter.contract.js +13 -0
  186. package/dist/file-storage/contracts/file-storage-adapter.contract.js.map +1 -0
  187. package/dist/file-storage/contracts/file-storage-factory.contract.d.ts +19 -0
  188. package/dist/file-storage/contracts/file-storage-factory.contract.js +10 -0
  189. package/dist/file-storage/contracts/file-storage-factory.contract.js.map +1 -0
  190. package/dist/file-storage/contracts/file-storage.contract.d.ts +37 -0
  191. package/dist/file-storage/contracts/file-storage.contract.js +8 -0
  192. package/dist/file-storage/contracts/file-storage.contract.js.map +1 -0
  193. package/dist/file-storage/contracts/file.contract.d.ts +224 -0
  194. package/dist/file-storage/contracts/file.contract.js +10 -0
  195. package/dist/file-storage/contracts/file.contract.js.map +1 -0
  196. package/dist/file-storage/contracts/file.errors.d.ts +68 -0
  197. package/dist/file-storage/contracts/file.errors.js +86 -0
  198. package/dist/file-storage/contracts/file.errors.js.map +1 -0
  199. package/dist/file-storage/contracts/file.events.d.ts +135 -0
  200. package/dist/file-storage/contracts/file.events.js +23 -0
  201. package/dist/file-storage/contracts/file.events.js.map +1 -0
  202. package/dist/file-storage/contracts/types.d.ts +9 -0
  203. package/dist/file-storage/contracts/types.js +5 -0
  204. package/dist/file-storage/contracts/types.js.map +1 -0
  205. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module-exports.d.ts +1 -0
  206. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module-exports.js +2 -0
  207. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module-exports.js.map +1 -0
  208. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module.d.ts +1 -0
  209. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module.js +2 -0
  210. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module.js.map +1 -0
  211. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/fs-file-storage-adapter.d.ts +82 -0
  212. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/fs-file-storage-adapter.js +302 -0
  213. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/fs-file-storage-adapter.js.map +1 -0
  214. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module-exports.d.ts +1 -0
  215. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module-exports.js +2 -0
  216. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module-exports.js.map +1 -0
  217. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module.d.ts +1 -0
  218. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module.js +2 -0
  219. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module.js.map +1 -0
  220. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/memory-file-storage-adapter.d.ts +58 -0
  221. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/memory-file-storage-adapter.js +254 -0
  222. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/memory-file-storage-adapter.js.map +1 -0
  223. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module-exports.d.ts +1 -0
  224. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module-exports.js +2 -0
  225. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module-exports.js.map +1 -0
  226. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module.d.ts +1 -0
  227. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module.js +2 -0
  228. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module.js.map +1 -0
  229. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/no-op-file-storage-adapter.d.ts +31 -0
  230. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/no-op-file-storage-adapter.js +70 -0
  231. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/no-op-file-storage-adapter.js.map +1 -0
  232. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module-exports.d.ts +1 -0
  233. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module-exports.js +2 -0
  234. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module-exports.js.map +1 -0
  235. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module.d.ts +1 -0
  236. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module.js +2 -0
  237. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module.js.map +1 -0
  238. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/s3-file-storage-adapter.d.ts +137 -0
  239. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/s3-file-storage-adapter.js +512 -0
  240. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/s3-file-storage-adapter.js.map +1 -0
  241. package/dist/file-storage/implementations/derivables/_module-exports.d.ts +2 -0
  242. package/dist/file-storage/implementations/derivables/_module-exports.js +3 -0
  243. package/dist/file-storage/implementations/derivables/_module-exports.js.map +1 -0
  244. package/dist/file-storage/implementations/derivables/_module.d.ts +2 -0
  245. package/dist/file-storage/implementations/derivables/_module.js +3 -0
  246. package/dist/file-storage/implementations/derivables/_module.js.map +1 -0
  247. package/dist/file-storage/implementations/derivables/file-storage/_module.d.ts +1 -0
  248. package/dist/file-storage/implementations/derivables/file-storage/_module.js +2 -0
  249. package/dist/file-storage/implementations/derivables/file-storage/_module.js.map +1 -0
  250. package/dist/file-storage/implementations/derivables/file-storage/file-serde-transformer.d.ts +48 -0
  251. package/dist/file-storage/implementations/derivables/file-storage/file-serde-transformer.js +87 -0
  252. package/dist/file-storage/implementations/derivables/file-storage/file-serde-transformer.js.map +1 -0
  253. package/dist/file-storage/implementations/derivables/file-storage/file-storage.d.ts +163 -0
  254. package/dist/file-storage/implementations/derivables/file-storage/file-storage.js +185 -0
  255. package/dist/file-storage/implementations/derivables/file-storage/file-storage.js.map +1 -0
  256. package/dist/file-storage/implementations/derivables/file-storage/file.d.ts +114 -0
  257. package/dist/file-storage/implementations/derivables/file-storage/file.js +722 -0
  258. package/dist/file-storage/implementations/derivables/file-storage/file.js.map +1 -0
  259. package/dist/file-storage/implementations/derivables/file-storage/is-signed-file-storage-adapter.d.ts +8 -0
  260. package/dist/file-storage/implementations/derivables/file-storage/is-signed-file-storage-adapter.js +62 -0
  261. package/dist/file-storage/implementations/derivables/file-storage/is-signed-file-storage-adapter.js.map +1 -0
  262. package/dist/file-storage/implementations/derivables/file-storage/merged-file-url-adapter.d.ts +15 -0
  263. package/dist/file-storage/implementations/derivables/file-storage/merged-file-url-adapter.js +34 -0
  264. package/dist/file-storage/implementations/derivables/file-storage/merged-file-url-adapter.js.map +1 -0
  265. package/dist/file-storage/implementations/derivables/file-storage/no-op-file-url-adapter.d.ts +12 -0
  266. package/dist/file-storage/implementations/derivables/file-storage/no-op-file-url-adapter.js +19 -0
  267. package/dist/file-storage/implementations/derivables/file-storage/no-op-file-url-adapter.js.map +1 -0
  268. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-content.d.ts +8 -0
  269. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-content.js +18 -0
  270. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-content.js.map +1 -0
  271. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-storage-adapter.d.ts +8 -0
  272. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-storage-adapter.js +16 -0
  273. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-storage-adapter.js.map +1 -0
  274. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-stream.d.ts +12 -0
  275. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-stream.js +20 -0
  276. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-stream.js.map +1 -0
  277. package/dist/file-storage/implementations/derivables/file-storage/signed-file-storage-adapter.d.ts +31 -0
  278. package/dist/file-storage/implementations/derivables/file-storage/signed-file-storage-adapter.js +74 -0
  279. package/dist/file-storage/implementations/derivables/file-storage/signed-file-storage-adapter.js.map +1 -0
  280. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.d.ts +1 -0
  281. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.js +2 -0
  282. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.js.map +1 -0
  283. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.d.ts +59 -0
  284. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.js +113 -0
  285. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.js.map +1 -0
  286. package/dist/file-storage/implementations/test-utilities/_module-exports.d.ts +2 -0
  287. package/dist/file-storage/implementations/test-utilities/_module-exports.js +3 -0
  288. package/dist/file-storage/implementations/test-utilities/_module-exports.js.map +1 -0
  289. package/dist/file-storage/implementations/test-utilities/_module.d.ts +2 -0
  290. package/dist/file-storage/implementations/test-utilities/_module.js +3 -0
  291. package/dist/file-storage/implementations/test-utilities/_module.js.map +1 -0
  292. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.d.ts +28 -0
  293. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.js +1637 -0
  294. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.js.map +1 -0
  295. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.d.ts +36 -0
  296. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.js +3109 -0
  297. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.js.map +1 -0
  298. package/dist/hooks/async-hooks.d.ts +0 -8
  299. package/dist/hooks/async-hooks.js.map +1 -1
  300. package/dist/hooks/hooks.d.ts +0 -6
  301. package/dist/hooks/hooks.js.map +1 -1
  302. package/dist/hooks/types.d.ts +0 -1
  303. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +0 -3
  304. package/dist/lock/contracts/lock-provider.contract.d.ts +0 -2
  305. package/dist/lock/contracts/lock-state.contract.d.ts +0 -6
  306. package/dist/lock/contracts/lock-state.contract.js +0 -1
  307. package/dist/lock/contracts/lock-state.contract.js.map +1 -1
  308. package/dist/lock/contracts/lock.contract.d.ts +3 -6
  309. package/dist/lock/contracts/lock.contract.js +2 -1
  310. package/dist/lock/contracts/lock.contract.js.map +1 -1
  311. package/dist/lock/contracts/lock.errors.d.ts +0 -3
  312. package/dist/lock/contracts/lock.errors.js +0 -2
  313. package/dist/lock/contracts/lock.errors.js.map +1 -1
  314. package/dist/lock/contracts/lock.events.d.ts +0 -3
  315. package/dist/lock/contracts/lock.events.js +0 -1
  316. package/dist/lock/contracts/lock.events.js.map +1 -1
  317. package/dist/lock/contracts/types.d.ts +0 -1
  318. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +0 -3
  319. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  320. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +1 -2
  321. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +19 -24
  322. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  323. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +0 -2
  324. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  325. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +1 -1
  326. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +1 -1
  327. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +0 -1
  328. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  329. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +2 -4
  330. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  331. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +4 -4
  332. package/dist/lock/implementations/derivables/lock-provider/lock.js +1 -1
  333. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  334. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +0 -2
  335. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  336. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.d.ts +0 -1
  337. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +1 -1
  338. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  339. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.d.ts +0 -1
  340. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +1 -1
  341. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  342. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +0 -1
  343. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +1 -1
  344. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  345. package/dist/namespace/contracts/namespace.contract.d.ts +19 -2
  346. package/dist/namespace/contracts/namespace.contract.js +1 -1
  347. package/dist/namespace/contracts/namespace.contract.js.map +1 -1
  348. package/dist/namespace/implementations/namespace.js +3 -0
  349. package/dist/namespace/implementations/namespace.js.map +1 -1
  350. package/dist/namespace/implementations/no-op-namespace.d.ts +1 -1
  351. package/dist/namespace/implementations/no-op-namespace.js +4 -1
  352. package/dist/namespace/implementations/no-op-namespace.js.map +1 -1
  353. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.d.ts +0 -1
  354. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.d.ts +0 -1
  355. package/dist/rate-limiter/contracts/rate-limiter-state.contract.d.ts +0 -6
  356. package/dist/rate-limiter/contracts/rate-limiter-state.contract.js +0 -1
  357. package/dist/rate-limiter/contracts/rate-limiter-state.contract.js.map +1 -1
  358. package/dist/rate-limiter/contracts/rate-limiter-storage-adapter.contract.d.ts +0 -1
  359. package/dist/rate-limiter/contracts/rate-limiter.contract.d.ts +3 -4
  360. package/dist/rate-limiter/contracts/rate-limiter.contract.js +2 -1
  361. package/dist/rate-limiter/contracts/rate-limiter.contract.js.map +1 -1
  362. package/dist/rate-limiter/contracts/rate-limiter.errors.d.ts +7 -3
  363. package/dist/rate-limiter/contracts/rate-limiter.errors.js +9 -2
  364. package/dist/rate-limiter/contracts/rate-limiter.errors.js.map +1 -1
  365. package/dist/rate-limiter/contracts/rate-limiter.events.d.ts +0 -2
  366. package/dist/rate-limiter/contracts/rate-limiter.events.js +0 -1
  367. package/dist/rate-limiter/contracts/rate-limiter.events.js.map +1 -1
  368. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.d.ts +2 -1
  369. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js +13 -12
  370. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js.map +1 -1
  371. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.d.ts +1 -1
  372. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js +1 -1
  373. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js.map +1 -1
  374. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.d.ts +2 -0
  375. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js +2 -0
  376. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js.map +1 -1
  377. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.d.ts +2 -0
  378. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js +2 -0
  379. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js.map +1 -1
  380. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +2 -4
  381. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
  382. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts +1 -1
  383. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js +6 -6
  384. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +1 -1
  385. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts +0 -2
  386. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map +1 -1
  387. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts +0 -2
  388. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js.map +1 -1
  389. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.d.ts +0 -1
  390. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js +1 -1
  391. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js.map +1 -1
  392. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.d.ts +0 -1
  393. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.js +1 -1
  394. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.js.map +1 -1
  395. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.d.ts +0 -1
  396. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js +1 -1
  397. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js.map +1 -1
  398. package/dist/resilience/middlewares/fallback/fallback.types.d.ts +0 -4
  399. package/dist/resilience/middlewares/observe/observe.types.d.ts +0 -9
  400. package/dist/resilience/middlewares/retry/retry.types.d.ts +0 -6
  401. package/dist/resilience/middlewares/timeout/timeout.type.d.ts +0 -4
  402. package/dist/resilience/resilience.errors.d.ts +0 -5
  403. package/dist/resilience/resilience.errors.js +0 -4
  404. package/dist/resilience/resilience.errors.js.map +1 -1
  405. package/dist/semaphore/contracts/semaphore-adapter.contract.d.ts +0 -2
  406. package/dist/semaphore/contracts/semaphore-provider.contract.d.ts +0 -2
  407. package/dist/semaphore/contracts/semaphore-state.contract.d.ts +0 -7
  408. package/dist/semaphore/contracts/semaphore-state.contract.js +0 -1
  409. package/dist/semaphore/contracts/semaphore-state.contract.js.map +1 -1
  410. package/dist/semaphore/contracts/semaphore.contract.d.ts +3 -6
  411. package/dist/semaphore/contracts/semaphore.contract.js +2 -1
  412. package/dist/semaphore/contracts/semaphore.contract.js.map +1 -1
  413. package/dist/semaphore/contracts/semaphore.errors.d.ts +0 -3
  414. package/dist/semaphore/contracts/semaphore.errors.js +0 -2
  415. package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
  416. package/dist/semaphore/contracts/semaphore.events.d.ts +0 -3
  417. package/dist/semaphore/contracts/semaphore.events.js +0 -1
  418. package/dist/semaphore/contracts/semaphore.events.js.map +1 -1
  419. package/dist/semaphore/contracts/types.d.ts +0 -1
  420. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.d.ts +0 -4
  421. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js.map +1 -1
  422. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.d.ts +1 -2
  423. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js +18 -23
  424. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js.map +1 -1
  425. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.d.ts +0 -3
  426. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.js.map +1 -1
  427. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.d.ts +1 -1
  428. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js +1 -1
  429. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +2 -4
  430. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
  431. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -1
  432. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +3 -3
  433. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +2 -2
  434. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -1
  435. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +0 -2
  436. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -1
  437. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.d.ts +0 -1
  438. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js +1 -1
  439. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js.map +1 -1
  440. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.d.ts +0 -1
  441. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js +1 -1
  442. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js.map +1 -1
  443. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.d.ts +0 -1
  444. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js +1 -1
  445. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +1 -1
  446. package/dist/serde/contracts/flexible-serde-adapter.contract.d.ts +0 -1
  447. package/dist/serde/contracts/flexible-serde.contract.d.ts +0 -2
  448. package/dist/serde/contracts/serde.errors.d.ts +1 -4
  449. package/dist/serde/contracts/serde.errors.js +0 -2
  450. package/dist/serde/contracts/serde.errors.js.map +1 -1
  451. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.d.ts +1 -1
  452. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js +1 -1
  453. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.d.ts +0 -1
  454. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +0 -1
  455. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
  456. package/dist/serde/implementations/derivables/serde-transformers.d.ts +1 -0
  457. package/dist/serde/implementations/derivables/serde-transformers.js +1 -0
  458. package/dist/serde/implementations/derivables/serde-transformers.js.map +1 -1
  459. package/dist/serde/implementations/derivables/serde.d.ts +0 -2
  460. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  461. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.d.ts +0 -1
  462. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js.map +1 -1
  463. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.d.ts +0 -1
  464. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js +1 -0
  465. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js.map +1 -1
  466. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.d.ts +0 -3
  467. package/dist/shared-lock/contracts/shared-lock-adapter.contract.d.ts +0 -1
  468. package/dist/shared-lock/contracts/shared-lock-provider.contract.d.ts +0 -2
  469. package/dist/shared-lock/contracts/shared-lock-state.contract.d.ts +0 -15
  470. package/dist/shared-lock/contracts/shared-lock-state.contract.js +0 -3
  471. package/dist/shared-lock/contracts/shared-lock-state.contract.js.map +1 -1
  472. package/dist/shared-lock/contracts/shared-lock.contract.d.ts +3 -8
  473. package/dist/shared-lock/contracts/shared-lock.contract.js +2 -1
  474. package/dist/shared-lock/contracts/shared-lock.contract.js.map +1 -1
  475. package/dist/shared-lock/contracts/shared-lock.errors.d.ts +0 -9
  476. package/dist/shared-lock/contracts/shared-lock.errors.js +0 -6
  477. package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
  478. package/dist/shared-lock/contracts/shared-lock.events.d.ts +0 -7
  479. package/dist/shared-lock/contracts/shared-lock.events.js +0 -3
  480. package/dist/shared-lock/contracts/shared-lock.events.js.map +1 -1
  481. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.d.ts +0 -5
  482. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js.map +1 -1
  483. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.d.ts +1 -4
  484. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js +42 -52
  485. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js.map +1 -1
  486. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.d.ts +0 -5
  487. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js.map +1 -1
  488. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.d.ts +1 -1
  489. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js +1 -1
  490. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +2 -4
  491. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
  492. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -1
  493. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +5 -5
  494. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +12 -12
  495. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -1
  496. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +0 -2
  497. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -1
  498. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.d.ts +0 -1
  499. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js +1 -1
  500. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js.map +1 -1
  501. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.d.ts +0 -1
  502. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js +1 -1
  503. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js.map +1 -1
  504. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.d.ts +0 -1
  505. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js +1 -1
  506. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +1 -1
  507. package/dist/task/implementations/task.js +0 -1
  508. package/dist/task/implementations/task.js.map +1 -1
  509. package/dist/time-span/contracts/time-span.contract.d.ts +0 -1
  510. package/dist/time-span/contracts/time-span.contract.js +0 -1
  511. package/dist/time-span/contracts/time-span.contract.js.map +1 -1
  512. package/dist/time-span/implementations/time-span.d.ts +1 -3
  513. package/dist/time-span/implementations/time-span.js +1 -1
  514. package/dist/time-span/implementations/time-span.js.map +1 -1
  515. package/dist/utilities/contracts/comparable.contract.d.ts +0 -6
  516. package/dist/utilities/contracts/deinitizable.contract.d.ts +0 -1
  517. package/dist/utilities/contracts/initizable.contract.d.ts +0 -1
  518. package/dist/utilities/contracts/prunable.contract.d.ts +0 -1
  519. package/dist/utilities/contracts/sqlite-database.contract.d.ts +0 -2
  520. package/dist/utilities/errors.d.ts +0 -1
  521. package/dist/utilities/errors.js +0 -1
  522. package/dist/utilities/errors.js.map +1 -1
  523. package/dist/utilities/functions/error-policy.d.ts +0 -2
  524. package/dist/utilities/functions/error-policy.js.map +1 -1
  525. package/dist/utilities/functions/invokable.d.ts +0 -4
  526. package/dist/utilities/functions/invokable.js.map +1 -1
  527. package/dist/utilities/functions/is-positive-nbr.d.ts +0 -1
  528. package/dist/utilities/functions/is-positive-nbr.js +0 -1
  529. package/dist/utilities/functions/is-positive-nbr.js.map +1 -1
  530. package/dist/utilities/functions/iterable-to-async-iterable.js +1 -2
  531. package/dist/utilities/functions/iterable-to-async-iterable.js.map +1 -1
  532. package/dist/utilities/functions/lazy.d.ts +0 -5
  533. package/dist/utilities/functions/lazy.js.map +1 -1
  534. package/dist/utilities/functions/object.js +2 -6
  535. package/dist/utilities/functions/object.js.map +1 -1
  536. package/dist/utilities/functions/resolve-one-or-more.d.ts +0 -1
  537. package/dist/utilities/functions/resolve-one-or-more.js.map +1 -1
  538. package/dist/utilities/types/async-iterable-value.type.d.ts +0 -2
  539. package/dist/utilities/types/none-func.type.d.ts +0 -1
  540. package/dist/utilities/types/promiseable.type.d.ts +0 -1
  541. package/package.json +15 -1
@@ -46,1785 +46,1822 @@ export function cacheTestSuite(settings) {
46
46
  }
47
47
  const TTL = TimeSpan.fromMilliseconds(50);
48
48
  const LONG_TTL = TimeSpan.fromMinutes(5);
49
- describe("Api tests:", () => {
50
- describe("method: exists", () => {
51
- test("Should return false when key does not exists", async () => {
52
- const key = "a";
53
- const result = await cache.exists(key);
54
- expect(result).toBe(false);
55
- });
56
- test("Should return false when key is expired", async () => {
57
- const key = "a";
58
- await cache.add(key, 1, {
59
- ttl: TTL,
60
- });
61
- await delay(TTL.addMilliseconds(10));
62
- const result = await cache.exists(key);
63
- expect(result).toBe(false);
64
- });
65
- test("Should return true when key exists", async () => {
66
- const key = "a";
67
- await cache.add(key, 1);
68
- const result = await cache.exists(key);
69
- expect(result).toBe(true);
70
- });
71
- test("Should return true when key is unexpired", async () => {
72
- const key = "a";
73
- await cache.add(key, 1, { ttl: LONG_TTL });
74
- const result = await cache.exists(key);
75
- expect(result).toBe(true);
76
- });
77
- });
78
- describe("method: missing", () => {
79
- test("Should return true when key does not exists", async () => {
80
- const key = "a";
81
- const result = await cache.missing(key);
82
- expect(result).toBe(true);
83
- });
84
- test("Should return true when key is expired", async () => {
85
- const key = "a";
86
- await cache.add(key, 1, {
87
- ttl: TTL,
88
- });
89
- await delay(TTL.addMilliseconds(10));
90
- const result = await cache.missing(key);
91
- expect(result).toBe(true);
92
- });
93
- test("Should return false when key exists", async () => {
94
- const key = "a";
95
- await cache.add(key, 1);
96
- const result = await cache.missing(key);
97
- expect(result).toBe(false);
98
- });
99
- test("Should return false when key is unexpired", async () => {
100
- const key = "a";
101
- await cache.add(key, 1, { ttl: LONG_TTL });
102
- const result = await cache.missing(key);
103
- expect(result).toBe(false);
104
- });
105
- });
106
- describe("method: get", () => {
107
- test("Should return null when key does not exists", async () => {
108
- const key = "a";
109
- const result = await cache.get(key);
110
- expect(result).toBeNull();
111
- });
112
- test("Should return null when key is expired", async () => {
113
- const key = "a";
114
- await cache.add(key, 1, {
115
- ttl: TTL,
116
- });
117
- await delay(TTL.addMilliseconds(10));
118
- const result = await cache.get(key);
119
- expect(result).toBeNull();
120
- });
121
- test("Should return value when key exists", async () => {
122
- const key = "a";
123
- const value = 1;
124
- await cache.add(key, value);
125
- const result = await cache.get(key);
126
- expect(result).toBe(value);
127
- });
128
- test("Should return value when key is unexpired", async () => {
129
- const key = "a";
130
- const value = 1;
131
- await cache.add(key, value, { ttl: LONG_TTL });
132
- const result = await cache.get(key);
133
- expect(result).toBe(value);
134
- });
135
- });
136
- describe("method: getOrFail", () => {
137
- test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
138
- const key = "a";
139
- const result = cache.getOrFail(key);
140
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
141
- });
142
- test("Should throw KeyNotFoundCacheError when key is expired", async () => {
143
- const key = "a";
144
- await cache.add(key, 1, {
145
- ttl: TTL,
146
- });
147
- await delay(TTL.addMilliseconds(10));
148
- const result = cache.getOrFail(key);
149
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
150
- });
151
- test("Should return value when key exists", async () => {
152
- const key = "a";
153
- const value = 1;
154
- await cache.add(key, value);
155
- const result = await cache.getOrFail(key);
156
- expect(result).toBe(value);
157
- });
158
- test("Should return value when key is unexpired", async () => {
159
- const key = "a";
160
- const value = 1;
161
- await cache.add(key, value, { ttl: LONG_TTL });
162
- const result = await cache.getOrFail(key);
163
- expect(result).toBe(value);
164
- });
165
- });
166
- describe("method: getOr", () => {
167
- test("Should return default value when key does not exists", async () => {
168
- const key = "a";
169
- const defaultValue = -1;
170
- const result = await cache.getOr(key, defaultValue);
171
- expect(result).toBe(defaultValue);
172
- });
173
- test("Should return default value when key is expired", async () => {
174
- const key = "a";
175
- await cache.add(key, 1, {
176
- ttl: TTL,
177
- });
178
- await delay(TTL.addMilliseconds(10));
179
- const defaultValue = -1;
180
- const result = await cache.getOr(key, defaultValue);
181
- expect(result).toBe(defaultValue);
182
- });
183
- test("Should return value when key exists", async () => {
184
- const key = "a";
185
- const value = 1;
186
- await cache.add(key, value);
187
- const defaultValue = -1;
188
- const result = await cache.getOr(key, defaultValue);
189
- expect(result).toBe(value);
190
- });
191
- test("Should return value when key is unexpired", async () => {
192
- const key = "a";
193
- const value = 1;
194
- await cache.add(key, value, { ttl: LONG_TTL });
195
- const defaultValue = -1;
196
- const result = await cache.getOr(key, defaultValue);
197
- expect(result).toBe(value);
198
- });
199
- });
200
- describe("method: getAndRemove", () => {
201
- test("Should return null when key does not exists", async () => {
202
- const key = "a";
203
- const result = await cache.getAndRemove(key);
204
- expect(result).toBeNull();
205
- });
206
- test("Should return null when key is expired", async () => {
207
- const key = "a";
208
- await cache.add(key, 1, {
209
- ttl: TTL,
210
- });
211
- await delay(TTL.addMilliseconds(10));
212
- const result = await cache.getAndRemove(key);
213
- expect(result).toBeNull();
214
- });
215
- test("Should return value when key exists", async () => {
216
- const key = "a";
217
- const value = 1;
218
- await cache.add(key, value);
219
- const result = await cache.getAndRemove(key);
220
- expect(result).toBe(value);
221
- });
222
- test("Should return value when key is unexpired", async () => {
223
- const key = "a";
224
- const value = 1;
225
- await cache.add(key, value, { ttl: LONG_TTL });
226
- const result = await cache.getAndRemove(key);
227
- expect(result).toBe(value);
228
- });
229
- test("Should remove key when exists", async () => {
230
- const key = "a";
231
- const value = 1;
232
- await cache.add(key, value);
233
- await cache.getAndRemove(key);
234
- const result = await cache.get(key);
235
- expect(result).toBeNull();
236
- });
237
- test("Should remove key when is unexpired", async () => {
238
- const key = "a";
239
- const value = 1;
240
- await cache.add(key, value, { ttl: LONG_TTL });
241
- await cache.getAndRemove(key);
242
- const result = await cache.get(key);
243
- expect(result).toBeNull();
244
- });
245
- });
246
- describe("method: getOrAdd", () => {
247
- test("Should return value to add when key does not exists", async () => {
248
- const key = "a";
249
- const valueToAdd = -1;
250
- const result = await cache.getOrAdd(key, valueToAdd);
251
- expect(result).toBe(valueToAdd);
252
- });
253
- test("Should persist value when key does not exists", async () => {
254
- const key = "a";
255
- const valueToAdd = -1;
256
- await cache.getOrAdd(key, valueToAdd);
257
- const result = await cache.get(key);
258
- expect(result).toBe(valueToAdd);
259
- });
260
- test("Should return value to add when key is expired", async () => {
261
- const key = "a";
262
- await cache.add(key, 1, {
263
- ttl: TTL,
264
- });
265
- await delay(TTL.addMilliseconds(10));
266
- const valueToAdd = -1;
267
- const result = await cache.getOrAdd(key, valueToAdd);
268
- expect(result).toBe(valueToAdd);
269
- });
270
- test("Should persist value when key is expired", async () => {
271
- const key = "a";
272
- await cache.add(key, 1, {
273
- ttl: TTL,
274
- });
275
- await delay(TTL.addMilliseconds(10));
276
- const valueToAdd = -1;
277
- await cache.getOrAdd(key, valueToAdd);
278
- const result = await cache.get(key);
279
- expect(result).toBe(valueToAdd);
280
- });
281
- test("Should return value when key exists", async () => {
282
- const key = "a";
283
- const value = 1;
284
- await cache.add(key, value);
285
- const valueToAdd = -1;
286
- const result = await cache.getOrAdd(key, valueToAdd);
287
- expect(result).toBe(value);
288
- });
289
- test("Should not persist value when key exists", async () => {
290
- const key = "a";
291
- const value = 1;
292
- await cache.add(key, value);
293
- const valueToAdd = -1;
294
- await cache.getOrAdd(key, valueToAdd);
295
- const result = await cache.get(key);
296
- expect(result).toBe(value);
297
- });
298
- test("Should return value when key is unexpired", async () => {
299
- const key = "a";
300
- const value = 1;
301
- await cache.add(key, value, { ttl: LONG_TTL });
302
- const valueToAdd = -1;
303
- const result = await cache.getOrAdd(key, valueToAdd);
304
- expect(result).toBe(value);
305
- });
306
- test("Should not persist when key is unexpired", async () => {
307
- const key = "a";
308
- const value = 1;
309
- await cache.add(key, value, { ttl: LONG_TTL });
310
- const valueToAdd = -1;
311
- await cache.getOrAdd(key, valueToAdd);
312
- const result = await cache.get(key);
313
- expect(result).toBe(value);
314
- });
315
- });
316
- describe("method: add", () => {
317
- test("Should return true when key does not exists", async () => {
318
- const key = "a";
319
- const value = 1;
320
- const result = await cache.add(key, value);
321
- expect(result).toBe(true);
322
- });
323
- test("Should persist value when key does not exists", async () => {
324
- const key = "a";
325
- const value = 1;
326
- await cache.add(key, value);
327
- const result = await cache.get(key);
328
- expect(result).toBe(value);
329
- });
330
- test("Should return true when key is expired", async () => {
331
- const key = "a";
332
- const value1 = 1;
333
- await cache.add(key, value1, {
334
- ttl: TTL,
335
- });
336
- await delay(TTL.addMilliseconds(10));
337
- const value2 = 2;
338
- const result = await cache.add(key, value2);
339
- expect(result).toBe(true);
340
- });
341
- test("Should persist value when key is expired", async () => {
342
- const key = "a";
343
- const value1 = 1;
344
- await cache.add(key, value1, {
345
- ttl: TTL,
346
- });
347
- await delay(TTL.addMilliseconds(10));
348
- const value2 = 2;
349
- await cache.add(key, value2);
350
- const result = await cache.get(key);
351
- expect(result).toBe(value2);
352
- });
353
- test("Should return false when key exists", async () => {
354
- const key = "a";
355
- const value1 = 1;
356
- await cache.add(key, value1);
357
- const value2 = 2;
358
- const result = await cache.add(key, value2);
359
- expect(result).toBe(false);
360
- });
361
- test("Should return false when key is unexpired", async () => {
362
- const key = "a";
363
- const value1 = 1;
364
- await cache.add(key, value1, { ttl: LONG_TTL });
365
- const value2 = 2;
366
- const result = await cache.add(key, value2);
367
- expect(result).toBe(false);
368
- });
369
- test("Should not persist value when key exists", async () => {
370
- const key = "a";
371
- const value1 = 1;
372
- await cache.add(key, value1);
373
- const value2 = 2;
374
- await cache.add(key, value2);
375
- const result = await cache.get(key);
376
- expect(result).toBe(value1);
377
- });
378
- test("Should not persist value when key is unexpired", async () => {
379
- const key = "a";
380
- const value1 = 1;
381
- await cache.add(key, value1, { ttl: LONG_TTL });
382
- const value2 = 2;
383
- await cache.add(key, value2);
384
- const result = await cache.get(key);
385
- expect(result).toBe(value1);
49
+ describe("ICache tests:", () => {
50
+ describe("Api tests:", () => {
51
+ describe("method: exists", () => {
52
+ test("Should return false when key does not exists", async () => {
53
+ const key = "a";
54
+ const result = await cache.exists(key);
55
+ expect(result).toBe(false);
56
+ });
57
+ test("Should return false when key is expired", async () => {
58
+ const key = "a";
59
+ await cache.add(key, 1, {
60
+ ttl: TTL,
61
+ });
62
+ await delay(TTL.addMilliseconds(10));
63
+ const result = await cache.exists(key);
64
+ expect(result).toBe(false);
65
+ });
66
+ test("Should return true when key exists", async () => {
67
+ const key = "a";
68
+ await cache.add(key, 1);
69
+ const result = await cache.exists(key);
70
+ expect(result).toBe(true);
71
+ });
72
+ test("Should return true when key is unexpired", async () => {
73
+ const key = "a";
74
+ await cache.add(key, 1, { ttl: LONG_TTL });
75
+ const result = await cache.exists(key);
76
+ expect(result).toBe(true);
77
+ });
386
78
  });
387
- });
388
- describe("method: addOrFail", () => {
389
- test("Should not throw error when key does not exists", async () => {
390
- const key = "a";
391
- const value = 1;
392
- const result = cache.addOrFail(key, value);
393
- await expect(result).resolves.toBeUndefined();
79
+ describe("method: missing", () => {
80
+ test("Should return true when key does not exists", async () => {
81
+ const key = "a";
82
+ const result = await cache.missing(key);
83
+ expect(result).toBe(true);
84
+ });
85
+ test("Should return true when key is expired", async () => {
86
+ const key = "a";
87
+ await cache.add(key, 1, {
88
+ ttl: TTL,
89
+ });
90
+ await delay(TTL.addMilliseconds(10));
91
+ const result = await cache.missing(key);
92
+ expect(result).toBe(true);
93
+ });
94
+ test("Should return false when key exists", async () => {
95
+ const key = "a";
96
+ await cache.add(key, 1);
97
+ const result = await cache.missing(key);
98
+ expect(result).toBe(false);
99
+ });
100
+ test("Should return false when key is unexpired", async () => {
101
+ const key = "a";
102
+ await cache.add(key, 1, { ttl: LONG_TTL });
103
+ const result = await cache.missing(key);
104
+ expect(result).toBe(false);
105
+ });
394
106
  });
395
- test("Should persist value when key does not exists", async () => {
396
- const key = "a";
397
- const value = 1;
398
- await cache.addOrFail(key, value);
399
- const result = await cache.get(key);
400
- expect(result).toBe(value);
107
+ describe("method: get", () => {
108
+ test("Should return null when key does not exists", async () => {
109
+ const key = "a";
110
+ const result = await cache.get(key);
111
+ expect(result).toBeNull();
112
+ });
113
+ test("Should return null when key is expired", async () => {
114
+ const key = "a";
115
+ await cache.add(key, 1, {
116
+ ttl: TTL,
117
+ });
118
+ await delay(TTL.addMilliseconds(10));
119
+ const result = await cache.get(key);
120
+ expect(result).toBeNull();
121
+ });
122
+ test("Should return value when key exists", async () => {
123
+ const key = "a";
124
+ const value = 1;
125
+ await cache.add(key, value);
126
+ const result = await cache.get(key);
127
+ expect(result).toBe(value);
128
+ });
129
+ test("Should return value when key is unexpired", async () => {
130
+ const key = "a";
131
+ const value = 1;
132
+ await cache.add(key, value, { ttl: LONG_TTL });
133
+ const result = await cache.get(key);
134
+ expect(result).toBe(value);
135
+ });
401
136
  });
402
- test("Should not throw error when key is expired", async () => {
403
- const key = "a";
404
- const value1 = 1;
405
- await cache.addOrFail(key, value1, {
406
- ttl: TTL,
407
- });
408
- await delay(TTL.addMilliseconds(10));
409
- const value2 = 2;
410
- const result = cache.addOrFail(key, value2);
411
- await expect(result).resolves.toBeUndefined();
137
+ describe("method: getOrFail", () => {
138
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
139
+ const key = "a";
140
+ const result = cache.getOrFail(key);
141
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
142
+ });
143
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
144
+ const key = "a";
145
+ await cache.add(key, 1, {
146
+ ttl: TTL,
147
+ });
148
+ await delay(TTL.addMilliseconds(10));
149
+ const result = cache.getOrFail(key);
150
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
151
+ });
152
+ test("Should return value when key exists", async () => {
153
+ const key = "a";
154
+ const value = 1;
155
+ await cache.add(key, value);
156
+ const result = await cache.getOrFail(key);
157
+ expect(result).toBe(value);
158
+ });
159
+ test("Should return value when key is unexpired", async () => {
160
+ const key = "a";
161
+ const value = 1;
162
+ await cache.add(key, value, { ttl: LONG_TTL });
163
+ const result = await cache.getOrFail(key);
164
+ expect(result).toBe(value);
165
+ });
412
166
  });
413
- test("Should persist value when key is expired", async () => {
414
- const key = "a";
415
- const value1 = 1;
416
- await cache.addOrFail(key, value1, {
417
- ttl: TTL,
418
- });
419
- await delay(TTL.addMilliseconds(10));
420
- const value2 = 2;
421
- await cache.addOrFail(key, value2);
422
- const result = await cache.get(key);
423
- expect(result).toBe(value2);
167
+ describe("method: getOr", () => {
168
+ test("Should return default value when key does not exists", async () => {
169
+ const key = "a";
170
+ const defaultValue = -1;
171
+ const result = await cache.getOr(key, defaultValue);
172
+ expect(result).toBe(defaultValue);
173
+ });
174
+ test("Should return default value when key is expired", async () => {
175
+ const key = "a";
176
+ await cache.add(key, 1, {
177
+ ttl: TTL,
178
+ });
179
+ await delay(TTL.addMilliseconds(10));
180
+ const defaultValue = -1;
181
+ const result = await cache.getOr(key, defaultValue);
182
+ expect(result).toBe(defaultValue);
183
+ });
184
+ test("Should return value when key exists", async () => {
185
+ const key = "a";
186
+ const value = 1;
187
+ await cache.add(key, value);
188
+ const defaultValue = -1;
189
+ const result = await cache.getOr(key, defaultValue);
190
+ expect(result).toBe(value);
191
+ });
192
+ test("Should return value when key is unexpired", async () => {
193
+ const key = "a";
194
+ const value = 1;
195
+ await cache.add(key, value, { ttl: LONG_TTL });
196
+ const defaultValue = -1;
197
+ const result = await cache.getOr(key, defaultValue);
198
+ expect(result).toBe(value);
199
+ });
424
200
  });
425
- test("Should throw KeyExistsCacheError when key exists", async () => {
426
- const key = "a";
427
- const value1 = 1;
428
- await cache.addOrFail(key, value1);
429
- const value2 = 2;
430
- const result = cache.addOrFail(key, value2);
431
- await expect(result).rejects.toBeInstanceOf(KeyExistsCacheError);
201
+ describe("method: getAndRemove", () => {
202
+ test("Should return null when key does not exists", async () => {
203
+ const key = "a";
204
+ const result = await cache.getAndRemove(key);
205
+ expect(result).toBeNull();
206
+ });
207
+ test("Should return null when key is expired", async () => {
208
+ const key = "a";
209
+ await cache.add(key, 1, {
210
+ ttl: TTL,
211
+ });
212
+ await delay(TTL.addMilliseconds(10));
213
+ const result = await cache.getAndRemove(key);
214
+ expect(result).toBeNull();
215
+ });
216
+ test("Should return value when key exists", async () => {
217
+ const key = "a";
218
+ const value = 1;
219
+ await cache.add(key, value);
220
+ const result = await cache.getAndRemove(key);
221
+ expect(result).toBe(value);
222
+ });
223
+ test("Should return value when key is unexpired", async () => {
224
+ const key = "a";
225
+ const value = 1;
226
+ await cache.add(key, value, { ttl: LONG_TTL });
227
+ const result = await cache.getAndRemove(key);
228
+ expect(result).toBe(value);
229
+ });
230
+ test("Should remove key when exists", async () => {
231
+ const key = "a";
232
+ const value = 1;
233
+ await cache.add(key, value);
234
+ await cache.getAndRemove(key);
235
+ const result = await cache.get(key);
236
+ expect(result).toBeNull();
237
+ });
238
+ test("Should remove key when is unexpired", async () => {
239
+ const key = "a";
240
+ const value = 1;
241
+ await cache.add(key, value, { ttl: LONG_TTL });
242
+ await cache.getAndRemove(key);
243
+ const result = await cache.get(key);
244
+ expect(result).toBeNull();
245
+ });
432
246
  });
433
- test("Should throw KeyExistsCacheError when key is unexpired", async () => {
434
- const key = "a";
435
- const value1 = 1;
436
- await cache.addOrFail(key, value1, {
437
- ttl: LONG_TTL,
438
- });
439
- const value2 = 2;
440
- const result = cache.addOrFail(key, value2);
441
- await expect(result).rejects.toBeInstanceOf(KeyExistsCacheError);
247
+ describe("method: getOrAdd", () => {
248
+ test("Should return value to add when key does not exists", async () => {
249
+ const key = "a";
250
+ const valueToAdd = -1;
251
+ const result = await cache.getOrAdd(key, valueToAdd);
252
+ expect(result).toBe(valueToAdd);
253
+ });
254
+ test("Should persist value when key does not exists", async () => {
255
+ const key = "a";
256
+ const valueToAdd = -1;
257
+ await cache.getOrAdd(key, valueToAdd);
258
+ const result = await cache.get(key);
259
+ expect(result).toBe(valueToAdd);
260
+ });
261
+ test("Should return value to add when key is expired", async () => {
262
+ const key = "a";
263
+ await cache.add(key, 1, {
264
+ ttl: TTL,
265
+ });
266
+ await delay(TTL.addMilliseconds(10));
267
+ const valueToAdd = -1;
268
+ const result = await cache.getOrAdd(key, valueToAdd);
269
+ expect(result).toBe(valueToAdd);
270
+ });
271
+ test("Should persist value when key is expired", async () => {
272
+ const key = "a";
273
+ await cache.add(key, 1, {
274
+ ttl: TTL,
275
+ });
276
+ await delay(TTL.addMilliseconds(10));
277
+ const valueToAdd = -1;
278
+ await cache.getOrAdd(key, valueToAdd);
279
+ const result = await cache.get(key);
280
+ expect(result).toBe(valueToAdd);
281
+ });
282
+ test("Should return value when key exists", async () => {
283
+ const key = "a";
284
+ const value = 1;
285
+ await cache.add(key, value);
286
+ const valueToAdd = -1;
287
+ const result = await cache.getOrAdd(key, valueToAdd);
288
+ expect(result).toBe(value);
289
+ });
290
+ test("Should not persist value when key exists", async () => {
291
+ const key = "a";
292
+ const value = 1;
293
+ await cache.add(key, value);
294
+ const valueToAdd = -1;
295
+ await cache.getOrAdd(key, valueToAdd);
296
+ const result = await cache.get(key);
297
+ expect(result).toBe(value);
298
+ });
299
+ test("Should return value when key is unexpired", async () => {
300
+ const key = "a";
301
+ const value = 1;
302
+ await cache.add(key, value, { ttl: LONG_TTL });
303
+ const valueToAdd = -1;
304
+ const result = await cache.getOrAdd(key, valueToAdd);
305
+ expect(result).toBe(value);
306
+ });
307
+ test("Should not persist when key is unexpired", async () => {
308
+ const key = "a";
309
+ const value = 1;
310
+ await cache.add(key, value, { ttl: LONG_TTL });
311
+ const valueToAdd = -1;
312
+ await cache.getOrAdd(key, valueToAdd);
313
+ const result = await cache.get(key);
314
+ expect(result).toBe(value);
315
+ });
442
316
  });
443
- test("Should not persist value when key exists", async () => {
444
- const key = "a";
445
- const value1 = 1;
446
- await cache.addOrFail(key, value1);
447
- const value2 = 2;
448
- try {
449
- await cache.addOrFail(key, value2);
450
- }
451
- catch {
452
- /* EMPTY */
453
- }
454
- const result = await cache.get(key);
455
- expect(result).toBe(value1);
317
+ describe("method: add", () => {
318
+ test("Should return true when key does not exists", async () => {
319
+ const key = "a";
320
+ const value = 1;
321
+ const result = await cache.add(key, value);
322
+ expect(result).toBe(true);
323
+ });
324
+ test("Should persist value when key does not exists", async () => {
325
+ const key = "a";
326
+ const value = 1;
327
+ await cache.add(key, value);
328
+ const result = await cache.get(key);
329
+ expect(result).toBe(value);
330
+ });
331
+ test("Should return true when key is expired", async () => {
332
+ const key = "a";
333
+ const value1 = 1;
334
+ await cache.add(key, value1, {
335
+ ttl: TTL,
336
+ });
337
+ await delay(TTL.addMilliseconds(10));
338
+ const value2 = 2;
339
+ const result = await cache.add(key, value2);
340
+ expect(result).toBe(true);
341
+ });
342
+ test("Should persist value when key is expired", async () => {
343
+ const key = "a";
344
+ const value1 = 1;
345
+ await cache.add(key, value1, {
346
+ ttl: TTL,
347
+ });
348
+ await delay(TTL.addMilliseconds(10));
349
+ const value2 = 2;
350
+ await cache.add(key, value2);
351
+ const result = await cache.get(key);
352
+ expect(result).toBe(value2);
353
+ });
354
+ test("Should return false when key exists", async () => {
355
+ const key = "a";
356
+ const value1 = 1;
357
+ await cache.add(key, value1);
358
+ const value2 = 2;
359
+ const result = await cache.add(key, value2);
360
+ expect(result).toBe(false);
361
+ });
362
+ test("Should return false when key is unexpired", async () => {
363
+ const key = "a";
364
+ const value1 = 1;
365
+ await cache.add(key, value1, { ttl: LONG_TTL });
366
+ const value2 = 2;
367
+ const result = await cache.add(key, value2);
368
+ expect(result).toBe(false);
369
+ });
370
+ test("Should not persist value when key exists", async () => {
371
+ const key = "a";
372
+ const value1 = 1;
373
+ await cache.add(key, value1);
374
+ const value2 = 2;
375
+ await cache.add(key, value2);
376
+ const result = await cache.get(key);
377
+ expect(result).toBe(value1);
378
+ });
379
+ test("Should not persist value when key is unexpired", async () => {
380
+ const key = "a";
381
+ const value1 = 1;
382
+ await cache.add(key, value1, { ttl: LONG_TTL });
383
+ const value2 = 2;
384
+ await cache.add(key, value2);
385
+ const result = await cache.get(key);
386
+ expect(result).toBe(value1);
387
+ });
456
388
  });
457
- test("Should not persist value when key is unexpired", async () => {
458
- const key = "a";
459
- const value1 = 1;
460
- await cache.addOrFail(key, value1, {
461
- ttl: LONG_TTL,
462
- });
463
- const value2 = 2;
464
- try {
389
+ describe("method: addOrFail", () => {
390
+ test("Should not throw error when key does not exists", async () => {
391
+ const key = "a";
392
+ const value = 1;
393
+ const result = cache.addOrFail(key, value);
394
+ await expect(result).resolves.toBeUndefined();
395
+ });
396
+ test("Should persist value when key does not exists", async () => {
397
+ const key = "a";
398
+ const value = 1;
399
+ await cache.addOrFail(key, value);
400
+ const result = await cache.get(key);
401
+ expect(result).toBe(value);
402
+ });
403
+ test("Should not throw error when key is expired", async () => {
404
+ const key = "a";
405
+ const value1 = 1;
406
+ await cache.addOrFail(key, value1, {
407
+ ttl: TTL,
408
+ });
409
+ await delay(TTL.addMilliseconds(10));
410
+ const value2 = 2;
411
+ const result = cache.addOrFail(key, value2);
412
+ await expect(result).resolves.toBeUndefined();
413
+ });
414
+ test("Should persist value when key is expired", async () => {
415
+ const key = "a";
416
+ const value1 = 1;
417
+ await cache.addOrFail(key, value1, {
418
+ ttl: TTL,
419
+ });
420
+ await delay(TTL.addMilliseconds(10));
421
+ const value2 = 2;
465
422
  await cache.addOrFail(key, value2);
466
- }
467
- catch {
468
- /* EMPTY */
469
- }
470
- const result = await cache.get(key);
471
- expect(result).toBe(value1);
472
- });
473
- });
474
- describe("method: put", () => {
475
- test("Should return true when key exists", async () => {
476
- const key = "a";
477
- const value1 = 1;
478
- await cache.add(key, value1);
479
- const value2 = 2;
480
- const result = await cache.put(key, value2);
481
- expect(result).toBe(true);
482
- });
483
- test("Should persist value when key exists", async () => {
484
- const key = "a";
485
- const value1 = 1;
486
- await cache.add(key, value1);
487
- const value2 = 2;
488
- await cache.put(key, value2);
489
- const result = await cache.get(key);
490
- expect(result).toBe(value2);
491
- });
492
- test("Should persist ttl when key exists", async () => {
493
- const key = "a";
494
- const value1 = 1;
495
- await cache.add(key, value1);
496
- const value2 = 2;
497
- await cache.put(key, value2, { ttl: TTL });
498
- await delay(TTL.addMilliseconds(10));
499
- const result = await cache.get(key);
500
- expect(result).toBeNull();
501
- });
502
- test("Should return true when key is unexpired", async () => {
503
- const key = "a";
504
- const value1 = 1;
505
- await cache.add(key, value1, { ttl: LONG_TTL });
506
- const value2 = 2;
507
- const result = await cache.put(key, value2);
508
- expect(result).toBe(true);
509
- });
510
- test("Should persist value when key is unexpired", async () => {
511
- const key = "a";
512
- const value1 = 1;
513
- await cache.add(key, value1, { ttl: LONG_TTL });
514
- const value2 = 2;
515
- await cache.put(key, value2);
516
- const result = await cache.get(key);
517
- expect(result).toBe(value2);
518
- });
519
- test("Should persist ttl when key is unexpired", async () => {
520
- const key = "a";
521
- const value1 = 1;
522
- await cache.add(key, value1, { ttl: LONG_TTL });
523
- const value2 = 2;
524
- await cache.put(key, value2, { ttl: TTL });
525
- await delay(TTL.addMilliseconds(10));
526
- const result = await cache.get(key);
527
- expect(result).toBeNull();
528
- });
529
- test("Should return false when key does not exist", async () => {
530
- const key = "a";
531
- const value = 1;
532
- const result = await cache.put(key, value);
533
- expect(result).toBe(false);
534
- });
535
- test("Should persist value when key does not exist", async () => {
536
- const key = "a";
537
- const value = 2;
538
- await cache.put(key, value);
539
- const result = await cache.get(key);
540
- expect(result).toBe(value);
541
- });
542
- test("Should persist ttl when key does not exist", async () => {
543
- const key = "a";
544
- const value = 2;
545
- await cache.put(key, value, { ttl: TTL });
546
- await delay(TTL.addMilliseconds(10));
547
- const result = await cache.get(key);
548
- expect(result).toBeNull();
549
- });
550
- });
551
- describe("method: update", () => {
552
- test("Should return false when key does not exists", async () => {
553
- const key = "a";
554
- const value = 1;
555
- const result = await cache.update(key, value);
556
- expect(result).toBe(false);
557
- });
558
- test("Should not persist value when key does not exists", async () => {
559
- const key = "a";
560
- const value = 1;
561
- await cache.update(key, value);
562
- const result = await cache.get(key);
563
- expect(result).toBeNull();
564
- });
565
- test("Should return false when key is expired", async () => {
566
- const key = "a";
567
- const value1 = 1;
568
- await cache.add(key, value1, {
569
- ttl: TTL,
570
- });
571
- await delay(TTL.addMilliseconds(10));
572
- const value2 = 2;
573
- const result = await cache.update(key, value2);
574
- expect(result).toBe(false);
575
- });
576
- test("Should not persist value when key is expired", async () => {
577
- const key = "a";
578
- const value1 = 1;
579
- await cache.add(key, value1, {
580
- ttl: TTL,
581
- });
582
- await delay(TTL.addMilliseconds(10));
583
- const value2 = 2;
584
- await cache.update(key, value2);
585
- const result = await cache.get(key);
586
- expect(result).toBeNull();
587
- });
588
- test("Should return true when key exists", async () => {
589
- const key = "a";
590
- const value1 = 1;
591
- await cache.add(key, value1);
592
- const value2 = 2;
593
- const result = await cache.update(key, value2);
594
- expect(result).toBe(true);
595
- });
596
- test("Should return true when key is unexpired", async () => {
597
- const key = "a";
598
- const value1 = 1;
599
- await cache.add(key, value1, { ttl: LONG_TTL });
600
- const value2 = 2;
601
- const result = await cache.update(key, value2);
602
- expect(result).toBe(true);
603
- });
604
- test("Should persist value when key exists", async () => {
605
- const key = "a";
606
- const value1 = 1;
607
- await cache.add(key, value1);
608
- const value2 = 2;
609
- await cache.update(key, value2);
610
- const result = await cache.get(key);
611
- expect(result).toBe(value2);
612
- });
613
- test("Should persist value when key is unexpired", async () => {
614
- const key = "a";
615
- const value1 = 1;
616
- await cache.add(key, value1, { ttl: LONG_TTL });
617
- const value2 = 2;
618
- await cache.update(key, value2);
619
- const result = await cache.get(key);
620
- expect(result).toBe(value2);
621
- });
622
- });
623
- describe("method: updateOrFail", () => {
624
- test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
625
- const key = "a";
626
- const value = 1;
627
- const result = cache.updateOrFail(key, value);
628
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
423
+ const result = await cache.get(key);
424
+ expect(result).toBe(value2);
425
+ });
426
+ test("Should throw KeyExistsCacheError when key exists", async () => {
427
+ const key = "a";
428
+ const value1 = 1;
429
+ await cache.addOrFail(key, value1);
430
+ const value2 = 2;
431
+ const result = cache.addOrFail(key, value2);
432
+ await expect(result).rejects.toBeInstanceOf(KeyExistsCacheError);
433
+ });
434
+ test("Should throw KeyExistsCacheError when key is unexpired", async () => {
435
+ const key = "a";
436
+ const value1 = 1;
437
+ await cache.addOrFail(key, value1, {
438
+ ttl: LONG_TTL,
439
+ });
440
+ const value2 = 2;
441
+ const result = cache.addOrFail(key, value2);
442
+ await expect(result).rejects.toBeInstanceOf(KeyExistsCacheError);
443
+ });
444
+ test("Should not persist value when key exists", async () => {
445
+ const key = "a";
446
+ const value1 = 1;
447
+ await cache.addOrFail(key, value1);
448
+ const value2 = 2;
449
+ try {
450
+ await cache.addOrFail(key, value2);
451
+ }
452
+ catch {
453
+ /* EMPTY */
454
+ }
455
+ const result = await cache.get(key);
456
+ expect(result).toBe(value1);
457
+ });
458
+ test("Should not persist value when key is unexpired", async () => {
459
+ const key = "a";
460
+ const value1 = 1;
461
+ await cache.addOrFail(key, value1, {
462
+ ttl: LONG_TTL,
463
+ });
464
+ const value2 = 2;
465
+ try {
466
+ await cache.addOrFail(key, value2);
467
+ }
468
+ catch {
469
+ /* EMPTY */
470
+ }
471
+ const result = await cache.get(key);
472
+ expect(result).toBe(value1);
473
+ });
629
474
  });
630
- test("Should not persist value when key does not exists", async () => {
631
- const key = "a";
632
- const value = 1;
633
- try {
634
- await cache.updateOrFail(key, value);
635
- }
636
- catch {
637
- /* EMPTY */
638
- }
639
- const result = await cache.get(key);
640
- expect(result).toBeNull();
475
+ describe("method: put", () => {
476
+ test("Should return true when key exists", async () => {
477
+ const key = "a";
478
+ const value1 = 1;
479
+ await cache.add(key, value1);
480
+ const value2 = 2;
481
+ const result = await cache.put(key, value2);
482
+ expect(result).toBe(true);
483
+ });
484
+ test("Should persist value when key exists", async () => {
485
+ const key = "a";
486
+ const value1 = 1;
487
+ await cache.add(key, value1);
488
+ const value2 = 2;
489
+ await cache.put(key, value2);
490
+ const result = await cache.get(key);
491
+ expect(result).toBe(value2);
492
+ });
493
+ test("Should persist ttl when key exists", async () => {
494
+ const key = "a";
495
+ const value1 = 1;
496
+ await cache.add(key, value1);
497
+ const value2 = 2;
498
+ await cache.put(key, value2, { ttl: TTL });
499
+ await delay(TTL.addMilliseconds(10));
500
+ const result = await cache.get(key);
501
+ expect(result).toBeNull();
502
+ });
503
+ test("Should return true when key is unexpired", async () => {
504
+ const key = "a";
505
+ const value1 = 1;
506
+ await cache.add(key, value1, { ttl: LONG_TTL });
507
+ const value2 = 2;
508
+ const result = await cache.put(key, value2);
509
+ expect(result).toBe(true);
510
+ });
511
+ test("Should persist value when key is unexpired", async () => {
512
+ const key = "a";
513
+ const value1 = 1;
514
+ await cache.add(key, value1, { ttl: LONG_TTL });
515
+ const value2 = 2;
516
+ await cache.put(key, value2);
517
+ const result = await cache.get(key);
518
+ expect(result).toBe(value2);
519
+ });
520
+ test("Should persist ttl when key is unexpired", async () => {
521
+ const key = "a";
522
+ const value1 = 1;
523
+ await cache.add(key, value1, { ttl: LONG_TTL });
524
+ const value2 = 2;
525
+ await cache.put(key, value2, { ttl: TTL });
526
+ await delay(TTL.addMilliseconds(10));
527
+ const result = await cache.get(key);
528
+ expect(result).toBeNull();
529
+ });
530
+ test("Should return false when key does not exist", async () => {
531
+ const key = "a";
532
+ const value = 1;
533
+ const result = await cache.put(key, value);
534
+ expect(result).toBe(false);
535
+ });
536
+ test("Should persist value when key does not exist", async () => {
537
+ const key = "a";
538
+ const value = 2;
539
+ await cache.put(key, value);
540
+ const result = await cache.get(key);
541
+ expect(result).toBe(value);
542
+ });
543
+ test("Should persist ttl when key does not exist", async () => {
544
+ const key = "a";
545
+ const value = 2;
546
+ await cache.put(key, value, { ttl: TTL });
547
+ await delay(TTL.addMilliseconds(10));
548
+ const result = await cache.get(key);
549
+ expect(result).toBeNull();
550
+ });
641
551
  });
642
- test("Should throw KeyNotFoundCacheError when key is expired", async () => {
643
- const key = "a";
644
- const value1 = 1;
645
- await cache.add(key, value1, {
646
- ttl: TTL,
647
- });
648
- await delay(TTL.addMilliseconds(10));
649
- const value2 = 2;
650
- const result = cache.updateOrFail(key, value2);
651
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
552
+ describe("method: update", () => {
553
+ test("Should return false when key does not exists", async () => {
554
+ const key = "a";
555
+ const value = 1;
556
+ const result = await cache.update(key, value);
557
+ expect(result).toBe(false);
558
+ });
559
+ test("Should not persist value when key does not exists", async () => {
560
+ const key = "a";
561
+ const value = 1;
562
+ await cache.update(key, value);
563
+ const result = await cache.get(key);
564
+ expect(result).toBeNull();
565
+ });
566
+ test("Should return false when key is expired", async () => {
567
+ const key = "a";
568
+ const value1 = 1;
569
+ await cache.add(key, value1, {
570
+ ttl: TTL,
571
+ });
572
+ await delay(TTL.addMilliseconds(10));
573
+ const value2 = 2;
574
+ const result = await cache.update(key, value2);
575
+ expect(result).toBe(false);
576
+ });
577
+ test("Should not persist value when key is expired", async () => {
578
+ const key = "a";
579
+ const value1 = 1;
580
+ await cache.add(key, value1, {
581
+ ttl: TTL,
582
+ });
583
+ await delay(TTL.addMilliseconds(10));
584
+ const value2 = 2;
585
+ await cache.update(key, value2);
586
+ const result = await cache.get(key);
587
+ expect(result).toBeNull();
588
+ });
589
+ test("Should return true when key exists", async () => {
590
+ const key = "a";
591
+ const value1 = 1;
592
+ await cache.add(key, value1);
593
+ const value2 = 2;
594
+ const result = await cache.update(key, value2);
595
+ expect(result).toBe(true);
596
+ });
597
+ test("Should return true when key is unexpired", async () => {
598
+ const key = "a";
599
+ const value1 = 1;
600
+ await cache.add(key, value1, { ttl: LONG_TTL });
601
+ const value2 = 2;
602
+ const result = await cache.update(key, value2);
603
+ expect(result).toBe(true);
604
+ });
605
+ test("Should persist value when key exists", async () => {
606
+ const key = "a";
607
+ const value1 = 1;
608
+ await cache.add(key, value1);
609
+ const value2 = 2;
610
+ await cache.update(key, value2);
611
+ const result = await cache.get(key);
612
+ expect(result).toBe(value2);
613
+ });
614
+ test("Should persist value when key is unexpired", async () => {
615
+ const key = "a";
616
+ const value1 = 1;
617
+ await cache.add(key, value1, { ttl: LONG_TTL });
618
+ const value2 = 2;
619
+ await cache.update(key, value2);
620
+ const result = await cache.get(key);
621
+ expect(result).toBe(value2);
622
+ });
652
623
  });
653
- test("Should not persist value when key is expired", async () => {
654
- const key = "a";
655
- const value1 = 1;
656
- await cache.add(key, value1, {
657
- ttl: TTL,
658
- });
659
- await delay(TTL.addMilliseconds(10));
660
- const value2 = 2;
661
- try {
624
+ describe("method: updateOrFail", () => {
625
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
626
+ const key = "a";
627
+ const value = 1;
628
+ const result = cache.updateOrFail(key, value);
629
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
630
+ });
631
+ test("Should not persist value when key does not exists", async () => {
632
+ const key = "a";
633
+ const value = 1;
634
+ try {
635
+ await cache.updateOrFail(key, value);
636
+ }
637
+ catch {
638
+ /* EMPTY */
639
+ }
640
+ const result = await cache.get(key);
641
+ expect(result).toBeNull();
642
+ });
643
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
644
+ const key = "a";
645
+ const value1 = 1;
646
+ await cache.add(key, value1, {
647
+ ttl: TTL,
648
+ });
649
+ await delay(TTL.addMilliseconds(10));
650
+ const value2 = 2;
651
+ const result = cache.updateOrFail(key, value2);
652
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
653
+ });
654
+ test("Should not persist value when key is expired", async () => {
655
+ const key = "a";
656
+ const value1 = 1;
657
+ await cache.add(key, value1, {
658
+ ttl: TTL,
659
+ });
660
+ await delay(TTL.addMilliseconds(10));
661
+ const value2 = 2;
662
+ try {
663
+ await cache.updateOrFail(key, value2);
664
+ }
665
+ catch {
666
+ /* EMPTY */
667
+ }
668
+ const result = await cache.get(key);
669
+ expect(result).toBeNull();
670
+ });
671
+ test("Should not throw error when key exists", async () => {
672
+ const key = "a";
673
+ const value1 = 1;
674
+ await cache.add(key, value1);
675
+ const value2 = 2;
676
+ const result = cache.updateOrFail(key, value2);
677
+ await expect(result).resolves.toBeUndefined();
678
+ });
679
+ test("Should not throw error when key is unexpired", async () => {
680
+ const key = "a";
681
+ const value1 = 1;
682
+ await cache.add(key, value1, { ttl: LONG_TTL });
683
+ const value2 = 2;
684
+ const result = cache.updateOrFail(key, value2);
685
+ await expect(result).resolves.toBeUndefined();
686
+ });
687
+ test("Should persist value when key exists", async () => {
688
+ const key = "a";
689
+ const value1 = 1;
690
+ await cache.add(key, value1);
691
+ const value2 = 2;
662
692
  await cache.updateOrFail(key, value2);
663
- }
664
- catch {
665
- /* EMPTY */
666
- }
667
- const result = await cache.get(key);
668
- expect(result).toBeNull();
669
- });
670
- test("Should not throw error when key exists", async () => {
671
- const key = "a";
672
- const value1 = 1;
673
- await cache.add(key, value1);
674
- const value2 = 2;
675
- const result = cache.updateOrFail(key, value2);
676
- await expect(result).resolves.toBeUndefined();
677
- });
678
- test("Should not throw error when key is unexpired", async () => {
679
- const key = "a";
680
- const value1 = 1;
681
- await cache.add(key, value1, { ttl: LONG_TTL });
682
- const value2 = 2;
683
- const result = cache.updateOrFail(key, value2);
684
- await expect(result).resolves.toBeUndefined();
685
- });
686
- test("Should persist value when key exists", async () => {
687
- const key = "a";
688
- const value1 = 1;
689
- await cache.add(key, value1);
690
- const value2 = 2;
691
- await cache.updateOrFail(key, value2);
692
- const result = await cache.get(key);
693
- expect(result).toBe(value2);
694
- });
695
- test("Should persist value when key is unexpired", async () => {
696
- const key = "a";
697
- const value1 = 1;
698
- await cache.add(key, value1, { ttl: LONG_TTL });
699
- const value2 = 2;
700
- await cache.updateOrFail(key, value2);
701
- const result = await cache.get(key);
702
- expect(result).toBe(value2);
703
- });
704
- });
705
- describe("method: increment", () => {
706
- test("Should return false when key does not exists", async () => {
707
- const key = "a";
708
- const value = 1;
709
- const result = await cache.increment(key, value);
710
- expect(result).toBe(false);
711
- });
712
- test("Should not persist value when key does not exists", async () => {
713
- const key = "a";
714
- const value = 1;
715
- await cache.increment(key, value);
716
- const result = await cache.get(key);
717
- expect(result).toBeNull();
718
- });
719
- test("Should return false when key is expired", async () => {
720
- const key = "a";
721
- const value1 = 1;
722
- await cache.add(key, value1, {
723
- ttl: TTL,
724
- });
725
- await delay(TTL.addMilliseconds(10));
726
- const value2 = 2;
727
- const result = await cache.increment(key, value2);
728
- expect(result).toBe(false);
729
- });
730
- test("Should not persist value when key is expired", async () => {
731
- const key = "a";
732
- const value1 = 1;
733
- await cache.add(key, value1, {
734
- ttl: TTL,
735
- });
736
- await delay(TTL.addMilliseconds(10));
737
- const value2 = 2;
738
- await cache.increment(key, value2);
739
- const result = await cache.get(key);
740
- expect(result).toBeNull();
741
- });
742
- test("Should return true when key exists", async () => {
743
- const key = "a";
744
- const value1 = 1;
745
- await cache.add(key, value1);
746
- const value2 = 2;
747
- const result = await cache.increment(key, value2);
748
- expect(result).toBe(true);
749
- });
750
- test("Should return true when key is unexpired", async () => {
751
- const key = "a";
752
- const value1 = 1;
753
- await cache.add(key, value1, { ttl: LONG_TTL });
754
- const value2 = 2;
755
- const result = await cache.increment(key, value2);
756
- expect(result).toBe(true);
757
- });
758
- test("Should persist value when key exists", async () => {
759
- const key = "a";
760
- const value1 = 1;
761
- await cache.add(key, value1);
762
- const value2 = 2;
763
- await cache.increment(key, value2);
764
- const result = await cache.get(key);
765
- expect(result).toBe(3);
766
- });
767
- test("Should persist value when key is unexpired", async () => {
768
- const key = "a";
769
- const value1 = 1;
770
- await cache.add(key, value1, { ttl: LONG_TTL });
771
- const value2 = 2;
772
- await cache.increment(key, value2);
773
- const result = await cache.get(key);
774
- expect(result).toBe(3);
775
- });
776
- });
777
- describe("method: incrementOrFail", () => {
778
- test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
779
- const key = "a";
780
- const value = 1;
781
- const result = cache.incrementOrFail(key, value);
782
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
783
- });
784
- test("Should not persist value when key does not exists", async () => {
785
- const key = "a";
786
- const value = 1;
787
- try {
788
- await cache.incrementOrFail(key, value);
789
- }
790
- catch {
791
- /* EMPTY */
792
- }
793
- const result = await cache.get(key);
794
- expect(result).toBeNull();
693
+ const result = await cache.get(key);
694
+ expect(result).toBe(value2);
695
+ });
696
+ test("Should persist value when key is unexpired", async () => {
697
+ const key = "a";
698
+ const value1 = 1;
699
+ await cache.add(key, value1, { ttl: LONG_TTL });
700
+ const value2 = 2;
701
+ await cache.updateOrFail(key, value2);
702
+ const result = await cache.get(key);
703
+ expect(result).toBe(value2);
704
+ });
795
705
  });
796
- test("Should throw KeyNotFoundCacheError when key is expired", async () => {
797
- const key = "a";
798
- const value1 = 1;
799
- await cache.add(key, value1, {
800
- ttl: TTL,
801
- });
802
- await delay(TTL.addMilliseconds(10));
803
- const value2 = 2;
804
- const result = cache.incrementOrFail(key, value2);
805
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
706
+ describe("method: increment", () => {
707
+ test("Should return false when key does not exists", async () => {
708
+ const key = "a";
709
+ const value = 1;
710
+ const result = await cache.increment(key, value);
711
+ expect(result).toBe(false);
712
+ });
713
+ test("Should not persist value when key does not exists", async () => {
714
+ const key = "a";
715
+ const value = 1;
716
+ await cache.increment(key, value);
717
+ const result = await cache.get(key);
718
+ expect(result).toBeNull();
719
+ });
720
+ test("Should return false when key is expired", async () => {
721
+ const key = "a";
722
+ const value1 = 1;
723
+ await cache.add(key, value1, {
724
+ ttl: TTL,
725
+ });
726
+ await delay(TTL.addMilliseconds(10));
727
+ const value2 = 2;
728
+ const result = await cache.increment(key, value2);
729
+ expect(result).toBe(false);
730
+ });
731
+ test("Should not persist value when key is expired", async () => {
732
+ const key = "a";
733
+ const value1 = 1;
734
+ await cache.add(key, value1, {
735
+ ttl: TTL,
736
+ });
737
+ await delay(TTL.addMilliseconds(10));
738
+ const value2 = 2;
739
+ await cache.increment(key, value2);
740
+ const result = await cache.get(key);
741
+ expect(result).toBeNull();
742
+ });
743
+ test("Should return true when key exists", async () => {
744
+ const key = "a";
745
+ const value1 = 1;
746
+ await cache.add(key, value1);
747
+ const value2 = 2;
748
+ const result = await cache.increment(key, value2);
749
+ expect(result).toBe(true);
750
+ });
751
+ test("Should return true when key is unexpired", async () => {
752
+ const key = "a";
753
+ const value1 = 1;
754
+ await cache.add(key, value1, { ttl: LONG_TTL });
755
+ const value2 = 2;
756
+ const result = await cache.increment(key, value2);
757
+ expect(result).toBe(true);
758
+ });
759
+ test("Should persist value when key exists", async () => {
760
+ const key = "a";
761
+ const value1 = 1;
762
+ await cache.add(key, value1);
763
+ const value2 = 2;
764
+ await cache.increment(key, value2);
765
+ const result = await cache.get(key);
766
+ expect(result).toBe(3);
767
+ });
768
+ test("Should persist value when key is unexpired", async () => {
769
+ const key = "a";
770
+ const value1 = 1;
771
+ await cache.add(key, value1, { ttl: LONG_TTL });
772
+ const value2 = 2;
773
+ await cache.increment(key, value2);
774
+ const result = await cache.get(key);
775
+ expect(result).toBe(3);
776
+ });
806
777
  });
807
- test("Should not persist value when key is expired", async () => {
808
- const key = "a";
809
- const value1 = 1;
810
- await cache.add(key, value1, {
811
- ttl: TTL,
812
- });
813
- await delay(TTL.addMilliseconds(10));
814
- const value2 = 2;
815
- try {
778
+ describe("method: incrementOrFail", () => {
779
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
780
+ const key = "a";
781
+ const value = 1;
782
+ const result = cache.incrementOrFail(key, value);
783
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
784
+ });
785
+ test("Should not persist value when key does not exists", async () => {
786
+ const key = "a";
787
+ const value = 1;
788
+ try {
789
+ await cache.incrementOrFail(key, value);
790
+ }
791
+ catch {
792
+ /* EMPTY */
793
+ }
794
+ const result = await cache.get(key);
795
+ expect(result).toBeNull();
796
+ });
797
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
798
+ const key = "a";
799
+ const value1 = 1;
800
+ await cache.add(key, value1, {
801
+ ttl: TTL,
802
+ });
803
+ await delay(TTL.addMilliseconds(10));
804
+ const value2 = 2;
805
+ const result = cache.incrementOrFail(key, value2);
806
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
807
+ });
808
+ test("Should not persist value when key is expired", async () => {
809
+ const key = "a";
810
+ const value1 = 1;
811
+ await cache.add(key, value1, {
812
+ ttl: TTL,
813
+ });
814
+ await delay(TTL.addMilliseconds(10));
815
+ const value2 = 2;
816
+ try {
817
+ await cache.incrementOrFail(key, value2);
818
+ }
819
+ catch {
820
+ /* EMPTY */
821
+ }
822
+ const result = await cache.get(key);
823
+ expect(result).toBeNull();
824
+ });
825
+ test("Should not throw error when key exists", async () => {
826
+ const key = "a";
827
+ const value1 = 1;
828
+ await cache.add(key, value1);
829
+ const value2 = 2;
830
+ const result = cache.incrementOrFail(key, value2);
831
+ await expect(result).resolves.toBeUndefined();
832
+ });
833
+ test("Should not throw error when key is unexpired", async () => {
834
+ const key = "a";
835
+ const value1 = 1;
836
+ await cache.add(key, value1, { ttl: LONG_TTL });
837
+ const value2 = 2;
838
+ const result = cache.incrementOrFail(key, value2);
839
+ await expect(result).resolves.toBeUndefined();
840
+ });
841
+ test("Should persist value when key exists", async () => {
842
+ const key = "a";
843
+ const value1 = 1;
844
+ await cache.add(key, value1);
845
+ const value2 = 2;
816
846
  await cache.incrementOrFail(key, value2);
817
- }
818
- catch {
819
- /* EMPTY */
820
- }
821
- const result = await cache.get(key);
822
- expect(result).toBeNull();
823
- });
824
- test("Should not throw error when key exists", async () => {
825
- const key = "a";
826
- const value1 = 1;
827
- await cache.add(key, value1);
828
- const value2 = 2;
829
- const result = cache.incrementOrFail(key, value2);
830
- await expect(result).resolves.toBeUndefined();
831
- });
832
- test("Should not throw error when key is unexpired", async () => {
833
- const key = "a";
834
- const value1 = 1;
835
- await cache.add(key, value1, { ttl: LONG_TTL });
836
- const value2 = 2;
837
- const result = cache.incrementOrFail(key, value2);
838
- await expect(result).resolves.toBeUndefined();
839
- });
840
- test("Should persist value when key exists", async () => {
841
- const key = "a";
842
- const value1 = 1;
843
- await cache.add(key, value1);
844
- const value2 = 2;
845
- await cache.incrementOrFail(key, value2);
846
- const result = await cache.get(key);
847
- expect(result).toBe(3);
848
- });
849
- test("Should persist value when key is unexpired", async () => {
850
- const key = "a";
851
- const value1 = 1;
852
- await cache.add(key, value1, { ttl: LONG_TTL });
853
- const value2 = 2;
854
- await cache.incrementOrFail(key, value2);
855
- const result = await cache.get(key);
856
- expect(result).toBe(3);
857
- });
858
- });
859
- describe("method: decrement", () => {
860
- test("Should return false when key does not exists", async () => {
861
- const key = "a";
862
- const value = 1;
863
- const result = await cache.decrement(key, value);
864
- expect(result).toBe(false);
865
- });
866
- test("Should not persist value when key does not exists", async () => {
867
- const key = "a";
868
- const value = 1;
869
- await cache.decrement(key, value);
870
- const result = await cache.get(key);
871
- expect(result).toBeNull();
872
- });
873
- test("Should return false when key is expired", async () => {
874
- const key = "a";
875
- const value1 = 1;
876
- await cache.add(key, value1, {
877
- ttl: TTL,
878
- });
879
- await delay(TTL.addMilliseconds(10));
880
- const value2 = 2;
881
- const result = await cache.decrement(key, value2);
882
- expect(result).toBe(false);
883
- });
884
- test("Should not persist value when key is expired", async () => {
885
- const key = "a";
886
- const value1 = 1;
887
- await cache.add(key, value1, {
888
- ttl: TTL,
889
- });
890
- await delay(TTL.addMilliseconds(10));
891
- const value2 = 2;
892
- await cache.decrement(key, value2);
893
- const result = await cache.get(key);
894
- expect(result).toBeNull();
895
- });
896
- test("Should return true when key exists", async () => {
897
- const key = "a";
898
- const value1 = 1;
899
- await cache.add(key, value1);
900
- const value2 = 2;
901
- const result = await cache.decrement(key, value2);
902
- expect(result).toBe(true);
903
- });
904
- test("Should return true when key is unexpired", async () => {
905
- const key = "a";
906
- const value1 = 1;
907
- await cache.add(key, value1, { ttl: LONG_TTL });
908
- const value2 = 2;
909
- const result = await cache.decrement(key, value2);
910
- expect(result).toBe(true);
911
- });
912
- test("Should persist value when key exists", async () => {
913
- const key = "a";
914
- const value1 = 1;
915
- await cache.add(key, value1);
916
- const value2 = 2;
917
- await cache.decrement(key, value2);
918
- const result = await cache.get(key);
919
- expect(result).toBe(-1);
920
- });
921
- test("Should persist value when key is unexpired", async () => {
922
- const key = "a";
923
- const value1 = 1;
924
- await cache.add(key, value1, { ttl: LONG_TTL });
925
- const value2 = 2;
926
- await cache.decrement(key, value2);
927
- const result = await cache.get(key);
928
- expect(result).toBe(-1);
929
- });
930
- });
931
- describe("method: decrementOrFail", () => {
932
- test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
933
- const key = "a";
934
- const value = 1;
935
- const result = cache.decrementOrFail(key, value);
936
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
937
- });
938
- test("Should not persist value when key does not exists", async () => {
939
- const key = "a";
940
- const value = 1;
941
- try {
942
- await cache.decrementOrFail(key, value);
943
- }
944
- catch {
945
- /* EMPTY */
946
- }
947
- const result = await cache.get(key);
948
- expect(result).toBeNull();
847
+ const result = await cache.get(key);
848
+ expect(result).toBe(3);
849
+ });
850
+ test("Should persist value when key is unexpired", async () => {
851
+ const key = "a";
852
+ const value1 = 1;
853
+ await cache.add(key, value1, { ttl: LONG_TTL });
854
+ const value2 = 2;
855
+ await cache.incrementOrFail(key, value2);
856
+ const result = await cache.get(key);
857
+ expect(result).toBe(3);
858
+ });
949
859
  });
950
- test("Should throw KeyNotFoundCacheError when key is expired", async () => {
951
- const key = "a";
952
- const value1 = 1;
953
- await cache.add(key, value1, {
954
- ttl: TTL,
955
- });
956
- await delay(TTL.addMilliseconds(10));
957
- const value2 = 2;
958
- const result = cache.decrementOrFail(key, value2);
959
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
860
+ describe("method: decrement", () => {
861
+ test("Should return false when key does not exists", async () => {
862
+ const key = "a";
863
+ const value = 1;
864
+ const result = await cache.decrement(key, value);
865
+ expect(result).toBe(false);
866
+ });
867
+ test("Should not persist value when key does not exists", async () => {
868
+ const key = "a";
869
+ const value = 1;
870
+ await cache.decrement(key, value);
871
+ const result = await cache.get(key);
872
+ expect(result).toBeNull();
873
+ });
874
+ test("Should return false when key is expired", async () => {
875
+ const key = "a";
876
+ const value1 = 1;
877
+ await cache.add(key, value1, {
878
+ ttl: TTL,
879
+ });
880
+ await delay(TTL.addMilliseconds(10));
881
+ const value2 = 2;
882
+ const result = await cache.decrement(key, value2);
883
+ expect(result).toBe(false);
884
+ });
885
+ test("Should not persist value when key is expired", async () => {
886
+ const key = "a";
887
+ const value1 = 1;
888
+ await cache.add(key, value1, {
889
+ ttl: TTL,
890
+ });
891
+ await delay(TTL.addMilliseconds(10));
892
+ const value2 = 2;
893
+ await cache.decrement(key, value2);
894
+ const result = await cache.get(key);
895
+ expect(result).toBeNull();
896
+ });
897
+ test("Should return true when key exists", async () => {
898
+ const key = "a";
899
+ const value1 = 1;
900
+ await cache.add(key, value1);
901
+ const value2 = 2;
902
+ const result = await cache.decrement(key, value2);
903
+ expect(result).toBe(true);
904
+ });
905
+ test("Should return true when key is unexpired", async () => {
906
+ const key = "a";
907
+ const value1 = 1;
908
+ await cache.add(key, value1, { ttl: LONG_TTL });
909
+ const value2 = 2;
910
+ const result = await cache.decrement(key, value2);
911
+ expect(result).toBe(true);
912
+ });
913
+ test("Should persist value when key exists", async () => {
914
+ const key = "a";
915
+ const value1 = 1;
916
+ await cache.add(key, value1);
917
+ const value2 = 2;
918
+ await cache.decrement(key, value2);
919
+ const result = await cache.get(key);
920
+ expect(result).toBe(-1);
921
+ });
922
+ test("Should persist value when key is unexpired", async () => {
923
+ const key = "a";
924
+ const value1 = 1;
925
+ await cache.add(key, value1, { ttl: LONG_TTL });
926
+ const value2 = 2;
927
+ await cache.decrement(key, value2);
928
+ const result = await cache.get(key);
929
+ expect(result).toBe(-1);
930
+ });
960
931
  });
961
- test("Should not persist value when key is expired", async () => {
962
- const key = "a";
963
- const value1 = 1;
964
- await cache.add(key, value1, {
965
- ttl: TTL,
966
- });
967
- await delay(TTL.addMilliseconds(10));
968
- const value2 = 2;
969
- try {
932
+ describe("method: decrementOrFail", () => {
933
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
934
+ const key = "a";
935
+ const value = 1;
936
+ const result = cache.decrementOrFail(key, value);
937
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
938
+ });
939
+ test("Should not persist value when key does not exists", async () => {
940
+ const key = "a";
941
+ const value = 1;
942
+ try {
943
+ await cache.decrementOrFail(key, value);
944
+ }
945
+ catch {
946
+ /* EMPTY */
947
+ }
948
+ const result = await cache.get(key);
949
+ expect(result).toBeNull();
950
+ });
951
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
952
+ const key = "a";
953
+ const value1 = 1;
954
+ await cache.add(key, value1, {
955
+ ttl: TTL,
956
+ });
957
+ await delay(TTL.addMilliseconds(10));
958
+ const value2 = 2;
959
+ const result = cache.decrementOrFail(key, value2);
960
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
961
+ });
962
+ test("Should not persist value when key is expired", async () => {
963
+ const key = "a";
964
+ const value1 = 1;
965
+ await cache.add(key, value1, {
966
+ ttl: TTL,
967
+ });
968
+ await delay(TTL.addMilliseconds(10));
969
+ const value2 = 2;
970
+ try {
971
+ await cache.decrementOrFail(key, value2);
972
+ }
973
+ catch {
974
+ /* EMPTY */
975
+ }
976
+ const result = await cache.get(key);
977
+ expect(result).toBeNull();
978
+ });
979
+ test("Should not throw error when key exists", async () => {
980
+ const key = "a";
981
+ const value1 = 1;
982
+ await cache.add(key, value1);
983
+ const value2 = 2;
984
+ const result = cache.decrementOrFail(key, value2);
985
+ await expect(result).resolves.toBeUndefined();
986
+ });
987
+ test("Should not throw error when key is unexpired", async () => {
988
+ const key = "a";
989
+ const value1 = 1;
990
+ await cache.add(key, value1, { ttl: LONG_TTL });
991
+ const value2 = 2;
992
+ const result = cache.decrementOrFail(key, value2);
993
+ await expect(result).resolves.toBeUndefined();
994
+ });
995
+ test("Should persist value when key exists", async () => {
996
+ const key = "a";
997
+ const value1 = 1;
998
+ await cache.add(key, value1);
999
+ const value2 = 2;
970
1000
  await cache.decrementOrFail(key, value2);
971
- }
972
- catch {
973
- /* EMPTY */
974
- }
975
- const result = await cache.get(key);
976
- expect(result).toBeNull();
977
- });
978
- test("Should not throw error when key exists", async () => {
979
- const key = "a";
980
- const value1 = 1;
981
- await cache.add(key, value1);
982
- const value2 = 2;
983
- const result = cache.decrementOrFail(key, value2);
984
- await expect(result).resolves.toBeUndefined();
985
- });
986
- test("Should not throw error when key is unexpired", async () => {
987
- const key = "a";
988
- const value1 = 1;
989
- await cache.add(key, value1, { ttl: LONG_TTL });
990
- const value2 = 2;
991
- const result = cache.decrementOrFail(key, value2);
992
- await expect(result).resolves.toBeUndefined();
993
- });
994
- test("Should persist value when key exists", async () => {
995
- const key = "a";
996
- const value1 = 1;
997
- await cache.add(key, value1);
998
- const value2 = 2;
999
- await cache.decrementOrFail(key, value2);
1000
- const result = await cache.get(key);
1001
- expect(result).toBe(-1);
1002
- });
1003
- test("Should persist value when key is unexpired", async () => {
1004
- const key = "a";
1005
- const value1 = 1;
1006
- await cache.add(key, value1, { ttl: LONG_TTL });
1007
- const value2 = 2;
1008
- await cache.decrementOrFail(key, value2);
1009
- const result = await cache.get(key);
1010
- expect(result).toBe(-1);
1011
- });
1012
- });
1013
- describe("method: remove", () => {
1014
- test("Should return false when key does not exists", async () => {
1015
- const key = "a";
1016
- const result = await cache.remove(key);
1017
- expect(result).toBe(false);
1018
- });
1019
- test("Should return false when key is expired", async () => {
1020
- const key = "a";
1021
- await cache.add(key, 1, {
1022
- ttl: TTL,
1023
- });
1024
- await delay(TTL.addMilliseconds(10));
1025
- const result = await cache.remove(key);
1026
- expect(result).toBe(false);
1027
- });
1028
- test("Should return true when key exists", async () => {
1029
- const key = "a";
1030
- await cache.add(key, 1);
1031
- const result = await cache.remove(key);
1032
- expect(result).toBe(true);
1033
- });
1034
- test("Should return true when key is unexpired", async () => {
1035
- const key = "a";
1036
- await cache.add(key, 1, { ttl: LONG_TTL });
1037
- const result = await cache.remove(key);
1038
- expect(result).toBe(true);
1039
- });
1040
- test("Should persist removal when key exists", async () => {
1041
- const key = "a";
1042
- await cache.add(key, 1);
1043
- await cache.remove(key);
1044
- const result = await cache.get(key);
1045
- expect(result).toBeNull();
1046
- });
1047
- test("Should persist removal when key is unexpired", async () => {
1048
- const key = "a";
1049
- await cache.add(key, 1, { ttl: LONG_TTL });
1050
- await cache.remove(key);
1051
- const result = await cache.get(key);
1052
- expect(result).toBeNull();
1053
- });
1054
- });
1055
- describe("method: removeOrFail", () => {
1056
- test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
1057
- const key = "a";
1058
- const result = cache.removeOrFail(key);
1059
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
1060
- });
1061
- test("Should throw KeyNotFoundCacheError when key is expired", async () => {
1062
- const key = "a";
1063
- await cache.add(key, 1, {
1064
- ttl: TTL,
1065
- });
1066
- await delay(TTL.addMilliseconds(10));
1067
- const result = cache.removeOrFail(key);
1068
- await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
1069
- });
1070
- test("Should not throw error when key exists", async () => {
1071
- const key = "a";
1072
- await cache.add(key, 1);
1073
- const result = cache.removeOrFail(key);
1074
- await expect(result).resolves.toBeUndefined();
1075
- });
1076
- test("Should not throw error when key is unexpired", async () => {
1077
- const key = "a";
1078
- await cache.add(key, 1, { ttl: LONG_TTL });
1079
- const result = cache.removeOrFail(key);
1080
- await expect(result).resolves.toBeUndefined();
1081
- });
1082
- test("Should persist removal when key exists", async () => {
1083
- const key = "a";
1084
- await cache.add(key, 1);
1085
- await cache.removeOrFail(key);
1086
- const result = await cache.get(key);
1087
- expect(result).toBeNull();
1088
- });
1089
- test("Should persist removal when key is unexpired", async () => {
1090
- const key = "a";
1091
- await cache.add(key, 1, { ttl: LONG_TTL });
1092
- await cache.removeOrFail(key);
1093
- const result = await cache.get(key);
1094
- expect(result).toBeNull();
1095
- });
1096
- });
1097
- describe("method: removeMany", () => {
1098
- test("Should return false when all keys dont exists", async () => {
1099
- const keyA = "a";
1100
- const keyB = "b";
1101
- const keyC = "c";
1102
- await cache.add(keyA, 1, { ttl: TTL });
1103
- await delay(TTL.addMilliseconds(10));
1104
- const result = await cache.removeMany([keyA, keyB, keyC]);
1105
- expect(result).toBe(false);
1106
- });
1107
- test("Should return true when one key exists", async () => {
1108
- const keyA = "a";
1109
- const keyB = "b";
1110
- const keyC = "c";
1111
- await cache.add(keyA, 1, { ttl: TTL });
1112
- await delay(TTL.addMilliseconds(10));
1113
- await cache.add(keyC, 2);
1114
- const result = await cache.removeMany([keyA, keyB, keyC]);
1115
- expect(result).toBe(true);
1116
- });
1117
- test("Should persist removal when one key exists", async () => {
1118
- const keyA = "a";
1119
- const keyB = "b";
1120
- const keyC = "c";
1121
- await cache.add(keyA, 1, { ttl: TTL });
1122
- await delay(TTL.addMilliseconds(10));
1123
- await cache.add(keyC, 2);
1124
- await cache.removeMany([keyA, keyB, keyC]);
1125
- const resultA = await cache.get(keyA);
1126
- expect(resultA).toBeNull();
1127
- const resultB = await cache.get(keyB);
1128
- expect(resultB).toBeNull();
1129
- const resultC = await cache.get(keyC);
1130
- expect(resultC).toBeNull();
1131
- });
1132
- });
1133
- });
1134
- describe.skipIf(excludeEventTests)("Event tests:", () => {
1135
- describe("method: exists", () => {
1136
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1137
- const handlerFn = vi.fn((_event) => { });
1138
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1139
- const key = "a";
1140
- await cache.exists(key);
1141
- expect(handlerFn).toHaveBeenCalledOnce();
1142
- expect(handlerFn).toHaveBeenCalledWith({
1143
- key: expect.objectContaining({
1144
- get: expect.any(Function),
1145
- toString: expect.any(Function),
1146
- }),
1147
- });
1148
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1149
- expect(keyObj?.get()).toBe(key);
1001
+ const result = await cache.get(key);
1002
+ expect(result).toBe(-1);
1003
+ });
1004
+ test("Should persist value when key is unexpired", async () => {
1005
+ const key = "a";
1006
+ const value1 = 1;
1007
+ await cache.add(key, value1, { ttl: LONG_TTL });
1008
+ const value2 = 2;
1009
+ await cache.decrementOrFail(key, value2);
1010
+ const result = await cache.get(key);
1011
+ expect(result).toBe(-1);
1012
+ });
1150
1013
  });
1151
- test("Should dispatch FoundCacheEvent when key exists", async () => {
1152
- const handlerFn = vi.fn((_event) => { });
1153
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1154
- const key = "a";
1155
- const value = 1;
1156
- await cache.add(key, value);
1157
- await cache.exists(key);
1158
- expect(handlerFn).toHaveBeenCalledOnce();
1159
- expect(handlerFn).toHaveBeenCalledWith({
1160
- key: expect.objectContaining({
1161
- get: expect.any(Function),
1162
- toString: expect.any(Function),
1163
- }),
1164
- value,
1165
- });
1166
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1167
- expect(keyObj?.get()).toBe(key);
1014
+ describe("method: remove", () => {
1015
+ test("Should return false when key does not exists", async () => {
1016
+ const key = "a";
1017
+ const result = await cache.remove(key);
1018
+ expect(result).toBe(false);
1019
+ });
1020
+ test("Should return false when key is expired", async () => {
1021
+ const key = "a";
1022
+ await cache.add(key, 1, {
1023
+ ttl: TTL,
1024
+ });
1025
+ await delay(TTL.addMilliseconds(10));
1026
+ const result = await cache.remove(key);
1027
+ expect(result).toBe(false);
1028
+ });
1029
+ test("Should return true when key exists", async () => {
1030
+ const key = "a";
1031
+ await cache.add(key, 1);
1032
+ const result = await cache.remove(key);
1033
+ expect(result).toBe(true);
1034
+ });
1035
+ test("Should return true when key is unexpired", async () => {
1036
+ const key = "a";
1037
+ await cache.add(key, 1, { ttl: LONG_TTL });
1038
+ const result = await cache.remove(key);
1039
+ expect(result).toBe(true);
1040
+ });
1041
+ test("Should persist removal when key exists", async () => {
1042
+ const key = "a";
1043
+ await cache.add(key, 1);
1044
+ await cache.remove(key);
1045
+ const result = await cache.get(key);
1046
+ expect(result).toBeNull();
1047
+ });
1048
+ test("Should persist removal when key is unexpired", async () => {
1049
+ const key = "a";
1050
+ await cache.add(key, 1, { ttl: LONG_TTL });
1051
+ await cache.remove(key);
1052
+ const result = await cache.get(key);
1053
+ expect(result).toBeNull();
1054
+ });
1168
1055
  });
1169
- });
1170
- describe("method: missing", () => {
1171
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1172
- const handlerFn = vi.fn((_event) => { });
1173
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1174
- const key = "a";
1175
- await cache.missing(key);
1176
- expect(handlerFn).toHaveBeenCalledOnce();
1177
- expect(handlerFn).toHaveBeenCalledWith({
1178
- key: expect.objectContaining({
1179
- get: expect.any(Function),
1180
- toString: expect.any(Function),
1181
- }),
1182
- });
1183
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1184
- expect(keyObj?.get()).toBe(key);
1056
+ describe("method: removeOrFail", () => {
1057
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
1058
+ const key = "a";
1059
+ const result = cache.removeOrFail(key);
1060
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
1061
+ });
1062
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
1063
+ const key = "a";
1064
+ await cache.add(key, 1, {
1065
+ ttl: TTL,
1066
+ });
1067
+ await delay(TTL.addMilliseconds(10));
1068
+ const result = cache.removeOrFail(key);
1069
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
1070
+ });
1071
+ test("Should not throw error when key exists", async () => {
1072
+ const key = "a";
1073
+ await cache.add(key, 1);
1074
+ const result = cache.removeOrFail(key);
1075
+ await expect(result).resolves.toBeUndefined();
1076
+ });
1077
+ test("Should not throw error when key is unexpired", async () => {
1078
+ const key = "a";
1079
+ await cache.add(key, 1, { ttl: LONG_TTL });
1080
+ const result = cache.removeOrFail(key);
1081
+ await expect(result).resolves.toBeUndefined();
1082
+ });
1083
+ test("Should persist removal when key exists", async () => {
1084
+ const key = "a";
1085
+ await cache.add(key, 1);
1086
+ await cache.removeOrFail(key);
1087
+ const result = await cache.get(key);
1088
+ expect(result).toBeNull();
1089
+ });
1090
+ test("Should persist removal when key is unexpired", async () => {
1091
+ const key = "a";
1092
+ await cache.add(key, 1, { ttl: LONG_TTL });
1093
+ await cache.removeOrFail(key);
1094
+ const result = await cache.get(key);
1095
+ expect(result).toBeNull();
1096
+ });
1185
1097
  });
1186
- test("Should dispatch FoundCacheEvent when key exists", async () => {
1187
- const handlerFn = vi.fn((_event) => { });
1188
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1189
- const key = "a";
1190
- const value = 1;
1191
- await cache.add(key, value);
1192
- await cache.missing(key);
1193
- expect(handlerFn).toHaveBeenCalledOnce();
1194
- expect(handlerFn).toHaveBeenCalledWith({
1195
- key: expect.objectContaining({
1196
- get: expect.any(Function),
1197
- toString: expect.any(Function),
1198
- }),
1199
- value,
1200
- });
1201
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1202
- expect(keyObj?.get()).toBe(key);
1098
+ describe("method: removeMany", () => {
1099
+ test("Should return false when all keys dont exists", async () => {
1100
+ const keyA = "a";
1101
+ const keyB = "b";
1102
+ const keyC = "c";
1103
+ await cache.add(keyA, 1, { ttl: TTL });
1104
+ await delay(TTL.addMilliseconds(10));
1105
+ const result = await cache.removeMany([keyA, keyB, keyC]);
1106
+ expect(result).toBe(false);
1107
+ });
1108
+ test("Should return true when one key exists", async () => {
1109
+ const keyA = "a";
1110
+ const keyB = "b";
1111
+ const keyC = "c";
1112
+ await cache.add(keyA, 1, { ttl: TTL });
1113
+ await delay(TTL.addMilliseconds(10));
1114
+ await cache.add(keyC, 2);
1115
+ const result = await cache.removeMany([keyA, keyB, keyC]);
1116
+ expect(result).toBe(true);
1117
+ });
1118
+ test("Should persist removal when one key exists", async () => {
1119
+ const keyA = "a";
1120
+ const keyB = "b";
1121
+ const keyC = "c";
1122
+ await cache.add(keyA, 1, { ttl: TTL });
1123
+ await delay(TTL.addMilliseconds(10));
1124
+ await cache.add(keyC, 2);
1125
+ await cache.removeMany([keyA, keyB, keyC]);
1126
+ const resultA = await cache.get(keyA);
1127
+ expect(resultA).toBeNull();
1128
+ const resultB = await cache.get(keyB);
1129
+ expect(resultB).toBeNull();
1130
+ const resultC = await cache.get(keyC);
1131
+ expect(resultC).toBeNull();
1132
+ });
1203
1133
  });
1204
1134
  });
1205
- describe("method: get", () => {
1206
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1207
- const handlerFn = vi.fn((_event) => { });
1208
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1209
- const key = "a";
1210
- await cache.get(key);
1211
- expect(handlerFn).toHaveBeenCalledOnce();
1212
- expect(handlerFn).toHaveBeenCalledWith({
1213
- key: expect.objectContaining({
1214
- get: expect.any(Function),
1215
- toString: expect.any(Function),
1216
- }),
1217
- });
1218
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1219
- expect(keyObj?.get()).toBe(key);
1135
+ describe.skipIf(excludeEventTests)("Event tests:", () => {
1136
+ describe("method: exists", () => {
1137
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1138
+ const handlerFn = vi.fn((_event) => { });
1139
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1140
+ const key = "a";
1141
+ await cache.exists(key);
1142
+ expect(handlerFn).toHaveBeenCalledOnce();
1143
+ expect(handlerFn).toHaveBeenCalledWith({
1144
+ key: expect.objectContaining({
1145
+ get: expect.any(Function),
1146
+ toString: expect.any(Function),
1147
+ equals: expect.any(Function),
1148
+ }),
1149
+ });
1150
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1151
+ expect(keyObj?.get()).toBe(key);
1152
+ });
1153
+ test("Should dispatch FoundCacheEvent when key exists", async () => {
1154
+ const handlerFn = vi.fn((_event) => { });
1155
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1156
+ const key = "a";
1157
+ const value = 1;
1158
+ await cache.add(key, value);
1159
+ await cache.exists(key);
1160
+ expect(handlerFn).toHaveBeenCalledOnce();
1161
+ expect(handlerFn).toHaveBeenCalledWith({
1162
+ key: expect.objectContaining({
1163
+ get: expect.any(Function),
1164
+ toString: expect.any(Function),
1165
+ equals: expect.any(Function),
1166
+ }),
1167
+ value,
1168
+ });
1169
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1170
+ expect(keyObj?.get()).toBe(key);
1171
+ });
1220
1172
  });
1221
- test("Should dispatch FoundCacheEvent when key exists", async () => {
1222
- const handlerFn = vi.fn((_event) => { });
1223
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1224
- const key = "a";
1225
- const value = 1;
1226
- await cache.add(key, value);
1227
- await cache.get(key);
1228
- expect(handlerFn).toHaveBeenCalledOnce();
1229
- expect(handlerFn).toHaveBeenCalledWith({
1230
- key: expect.objectContaining({
1231
- get: expect.any(Function),
1232
- toString: expect.any(Function),
1233
- }),
1234
- value,
1235
- });
1236
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1237
- expect(keyObj?.get()).toBe(key);
1173
+ describe("method: missing", () => {
1174
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1175
+ const handlerFn = vi.fn((_event) => { });
1176
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1177
+ const key = "a";
1178
+ await cache.missing(key);
1179
+ expect(handlerFn).toHaveBeenCalledOnce();
1180
+ expect(handlerFn).toHaveBeenCalledWith({
1181
+ key: expect.objectContaining({
1182
+ get: expect.any(Function),
1183
+ toString: expect.any(Function),
1184
+ equals: expect.any(Function),
1185
+ }),
1186
+ });
1187
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1188
+ expect(keyObj?.get()).toBe(key);
1189
+ });
1190
+ test("Should dispatch FoundCacheEvent when key exists", async () => {
1191
+ const handlerFn = vi.fn((_event) => { });
1192
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1193
+ const key = "a";
1194
+ const value = 1;
1195
+ await cache.add(key, value);
1196
+ await cache.missing(key);
1197
+ expect(handlerFn).toHaveBeenCalledOnce();
1198
+ expect(handlerFn).toHaveBeenCalledWith({
1199
+ key: expect.objectContaining({
1200
+ get: expect.any(Function),
1201
+ toString: expect.any(Function),
1202
+ equals: expect.any(Function),
1203
+ }),
1204
+ value,
1205
+ });
1206
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1207
+ expect(keyObj?.get()).toBe(key);
1208
+ });
1238
1209
  });
1239
- });
1240
- describe("method: getOr", () => {
1241
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1242
- const handlerFn = vi.fn((_event) => { });
1243
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1244
- const key = "a";
1245
- await cache.getOr(key, -1);
1246
- expect(handlerFn).toHaveBeenCalledOnce();
1247
- expect(handlerFn).toHaveBeenCalledWith({
1248
- key: expect.objectContaining({
1249
- get: expect.any(Function),
1250
- toString: expect.any(Function),
1251
- }),
1252
- });
1253
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1254
- expect(keyObj?.get()).toBe(key);
1210
+ describe("method: get", () => {
1211
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1212
+ const handlerFn = vi.fn((_event) => { });
1213
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1214
+ const key = "a";
1215
+ await cache.get(key);
1216
+ expect(handlerFn).toHaveBeenCalledOnce();
1217
+ expect(handlerFn).toHaveBeenCalledWith({
1218
+ key: expect.objectContaining({
1219
+ get: expect.any(Function),
1220
+ toString: expect.any(Function),
1221
+ equals: expect.any(Function),
1222
+ }),
1223
+ });
1224
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1225
+ expect(keyObj?.get()).toBe(key);
1226
+ });
1227
+ test("Should dispatch FoundCacheEvent when key exists", async () => {
1228
+ const handlerFn = vi.fn((_event) => { });
1229
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1230
+ const key = "a";
1231
+ const value = 1;
1232
+ await cache.add(key, value);
1233
+ await cache.get(key);
1234
+ expect(handlerFn).toHaveBeenCalledOnce();
1235
+ expect(handlerFn).toHaveBeenCalledWith({
1236
+ key: expect.objectContaining({
1237
+ get: expect.any(Function),
1238
+ toString: expect.any(Function),
1239
+ equals: expect.any(Function),
1240
+ }),
1241
+ value,
1242
+ });
1243
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1244
+ expect(keyObj?.get()).toBe(key);
1245
+ });
1255
1246
  });
1256
- test("Should dispatch FoundCacheEvent when key exists", async () => {
1257
- const handlerFn = vi.fn((_event) => { });
1258
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1259
- const key = "a";
1260
- const value = 1;
1261
- await cache.add(key, value);
1262
- await cache.getOr(key, -1);
1263
- expect(handlerFn).toHaveBeenCalledOnce();
1264
- expect(handlerFn).toHaveBeenCalledWith({
1265
- key: expect.objectContaining({
1266
- get: expect.any(Function),
1267
- toString: expect.any(Function),
1268
- }),
1269
- value,
1270
- });
1271
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1272
- expect(keyObj?.get()).toBe(key);
1247
+ describe("method: getOr", () => {
1248
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1249
+ const handlerFn = vi.fn((_event) => { });
1250
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1251
+ const key = "a";
1252
+ await cache.getOr(key, -1);
1253
+ expect(handlerFn).toHaveBeenCalledOnce();
1254
+ expect(handlerFn).toHaveBeenCalledWith({
1255
+ key: expect.objectContaining({
1256
+ get: expect.any(Function),
1257
+ toString: expect.any(Function),
1258
+ equals: expect.any(Function),
1259
+ }),
1260
+ });
1261
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1262
+ expect(keyObj?.get()).toBe(key);
1263
+ });
1264
+ test("Should dispatch FoundCacheEvent when key exists", async () => {
1265
+ const handlerFn = vi.fn((_event) => { });
1266
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1267
+ const key = "a";
1268
+ const value = 1;
1269
+ await cache.add(key, value);
1270
+ await cache.getOr(key, -1);
1271
+ expect(handlerFn).toHaveBeenCalledOnce();
1272
+ expect(handlerFn).toHaveBeenCalledWith({
1273
+ key: expect.objectContaining({
1274
+ get: expect.any(Function),
1275
+ toString: expect.any(Function),
1276
+ equals: expect.any(Function),
1277
+ }),
1278
+ value,
1279
+ });
1280
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1281
+ expect(keyObj?.get()).toBe(key);
1282
+ });
1273
1283
  });
1274
- });
1275
- describe("method: getOrFail", () => {
1276
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1277
- const handlerFn = vi.fn((_event) => { });
1278
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1279
- const key = "a";
1280
- try {
1284
+ describe("method: getOrFail", () => {
1285
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1286
+ const handlerFn = vi.fn((_event) => { });
1287
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1288
+ const key = "a";
1289
+ try {
1290
+ await cache.getOrFail(key);
1291
+ }
1292
+ catch {
1293
+ /* EMPTY */
1294
+ }
1295
+ expect(handlerFn).toHaveBeenCalledOnce();
1296
+ expect(handlerFn).toHaveBeenCalledWith({
1297
+ key: expect.objectContaining({
1298
+ get: expect.any(Function),
1299
+ toString: expect.any(Function),
1300
+ equals: expect.any(Function),
1301
+ }),
1302
+ });
1303
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1304
+ expect(keyObj?.get()).toBe(key);
1305
+ });
1306
+ test("Should dispatch FoundCacheEvent when key exists", async () => {
1307
+ const handlerFn = vi.fn((_event) => { });
1308
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1309
+ const key = "a";
1310
+ const value = 1;
1311
+ await cache.add(key, value);
1281
1312
  await cache.getOrFail(key);
1282
- }
1283
- catch {
1284
- /* EMPTY */
1285
- }
1286
- expect(handlerFn).toHaveBeenCalledOnce();
1287
- expect(handlerFn).toHaveBeenCalledWith({
1288
- key: expect.objectContaining({
1289
- get: expect.any(Function),
1290
- toString: expect.any(Function),
1291
- }),
1292
- });
1293
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1294
- expect(keyObj?.get()).toBe(key);
1295
- });
1296
- test("Should dispatch FoundCacheEvent when key exists", async () => {
1297
- const handlerFn = vi.fn((_event) => { });
1298
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1299
- const key = "a";
1300
- const value = 1;
1301
- await cache.add(key, value);
1302
- await cache.getOrFail(key);
1303
- expect(handlerFn).toHaveBeenCalledOnce();
1304
- expect(handlerFn).toHaveBeenCalledWith({
1305
- key: expect.objectContaining({
1306
- get: expect.any(Function),
1307
- toString: expect.any(Function),
1308
- }),
1309
- value,
1310
- });
1311
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1312
- expect(keyObj?.get()).toBe(key);
1313
- });
1314
- });
1315
- describe("method: add", () => {
1316
- test("Should dispatch AddedCacheEvent when key doesnt exists", async () => {
1317
- const handlerFn = vi.fn((_event) => { });
1318
- await cache.events.addListener(CACHE_EVENTS.ADDED, handlerFn);
1319
- const key = "a";
1320
- const value = 1;
1321
- await cache.add(key, value, { ttl: TTL });
1322
- expect(handlerFn).toHaveBeenCalledOnce();
1323
- expect(handlerFn).toHaveBeenCalledWith({
1324
- key: expect.objectContaining({
1325
- get: expect.any(Function),
1326
- toString: expect.any(Function),
1327
- }),
1328
- value,
1329
- ttl: expect.any(TimeSpan),
1330
- });
1331
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1332
- expect(keyObj?.get()).toBe(key);
1333
- const ttl_ = handlerFn.mock.calls[0]?.[0].ttl;
1334
- expect(ttl_?.toMilliseconds()).toBe(TTL.toMilliseconds());
1335
- });
1336
- });
1337
- describe("method: update", () => {
1338
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1339
- const handlerFn = vi.fn((_event) => { });
1340
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1341
- const key = "a";
1342
- const value = 1;
1343
- await cache.update(key, value);
1344
- expect(handlerFn).toHaveBeenCalledOnce();
1345
- expect(handlerFn).toHaveBeenCalledWith({
1346
- key: expect.objectContaining({
1347
- get: expect.any(Function),
1348
- toString: expect.any(Function),
1349
- }),
1350
- });
1351
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1352
- expect(keyObj?.get()).toBe(key);
1353
- });
1354
- test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1355
- const handlerFn = vi.fn((_event) => { });
1356
- await cache.events.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1357
- const key = "a";
1358
- const value1 = 1;
1359
- await cache.add(key, value1);
1360
- const value2 = 2;
1361
- await cache.update(key, value2);
1362
- expect(handlerFn).toHaveBeenCalledOnce();
1363
- expect(handlerFn).toHaveBeenCalledWith({
1364
- key: expect.objectContaining({
1365
- get: expect.any(Function),
1366
- toString: expect.any(Function),
1367
- }),
1368
- value: value2,
1369
- });
1370
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1371
- expect(keyObj?.get()).toBe(key);
1372
- });
1373
- });
1374
- describe("method: updateOrFail", () => {
1375
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1376
- const handlerFn = vi.fn((_event) => { });
1377
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1378
- const key = "a";
1379
- const value = 1;
1380
- try {
1381
- await cache.updateOrFail(key, value);
1382
- }
1383
- catch {
1384
- /* EMPTY */
1385
- }
1386
- expect(handlerFn).toHaveBeenCalledOnce();
1387
- expect(handlerFn).toHaveBeenCalledWith({
1388
- key: expect.objectContaining({
1389
- get: expect.any(Function),
1390
- toString: expect.any(Function),
1391
- }),
1392
- });
1393
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1394
- expect(keyObj?.get()).toBe(key);
1313
+ expect(handlerFn).toHaveBeenCalledOnce();
1314
+ expect(handlerFn).toHaveBeenCalledWith({
1315
+ key: expect.objectContaining({
1316
+ get: expect.any(Function),
1317
+ toString: expect.any(Function),
1318
+ equals: expect.any(Function),
1319
+ }),
1320
+ value,
1321
+ });
1322
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1323
+ expect(keyObj?.get()).toBe(key);
1324
+ });
1395
1325
  });
1396
- test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1397
- const handlerFn = vi.fn((_event) => { });
1398
- await cache.events.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1399
- const key = "a";
1400
- const value1 = 1;
1401
- await cache.add(key, value1);
1402
- const value2 = 2;
1403
- await cache.updateOrFail(key, value2);
1404
- expect(handlerFn).toHaveBeenCalledOnce();
1405
- expect(handlerFn).toHaveBeenCalledWith({
1406
- key: expect.objectContaining({
1407
- get: expect.any(Function),
1408
- toString: expect.any(Function),
1409
- }),
1410
- value: value2,
1411
- });
1412
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1413
- expect(keyObj?.get()).toBe(key);
1326
+ describe("method: add", () => {
1327
+ test("Should dispatch AddedCacheEvent when key doesnt exists", async () => {
1328
+ const handlerFn = vi.fn((_event) => { });
1329
+ await cache.events.addListener(CACHE_EVENTS.ADDED, handlerFn);
1330
+ const key = "a";
1331
+ const value = 1;
1332
+ await cache.add(key, value, { ttl: TTL });
1333
+ expect(handlerFn).toHaveBeenCalledOnce();
1334
+ expect(handlerFn).toHaveBeenCalledWith({
1335
+ key: expect.objectContaining({
1336
+ get: expect.any(Function),
1337
+ toString: expect.any(Function),
1338
+ equals: expect.any(Function),
1339
+ }),
1340
+ value,
1341
+ ttl: expect.any(TimeSpan),
1342
+ });
1343
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1344
+ expect(keyObj?.get()).toBe(key);
1345
+ const ttl_ = handlerFn.mock.calls[0]?.[0].ttl;
1346
+ expect(ttl_?.toMilliseconds()).toBe(TTL.toMilliseconds());
1347
+ });
1414
1348
  });
1415
- });
1416
- describe("method: put", () => {
1417
- test("Should dispatch AddedCacheEvent when key doesnt exists", async () => {
1418
- const handlerFn = vi.fn((_event) => { });
1419
- await cache.events.addListener(CACHE_EVENTS.ADDED, handlerFn);
1420
- const key = "a";
1421
- const value = 1;
1422
- await cache.put(key, value, { ttl: TTL });
1423
- expect(handlerFn).toHaveBeenCalledOnce();
1424
- expect(handlerFn).toHaveBeenCalledWith({
1425
- key: expect.objectContaining({
1426
- get: expect.any(Function),
1427
- toString: expect.any(Function),
1428
- }),
1429
- value,
1430
- ttl: expect.any(TimeSpan),
1431
- });
1432
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1433
- expect(keyObj?.get()).toBe(key);
1434
- const ttl = handlerFn.mock.calls[0]?.[0].ttl;
1435
- expect(ttl?.toMilliseconds()).toBe(ttl?.toMilliseconds());
1349
+ describe("method: update", () => {
1350
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1351
+ const handlerFn = vi.fn((_event) => { });
1352
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1353
+ const key = "a";
1354
+ const value = 1;
1355
+ await cache.update(key, value);
1356
+ expect(handlerFn).toHaveBeenCalledOnce();
1357
+ expect(handlerFn).toHaveBeenCalledWith({
1358
+ key: expect.objectContaining({
1359
+ get: expect.any(Function),
1360
+ toString: expect.any(Function),
1361
+ equals: expect.any(Function),
1362
+ }),
1363
+ });
1364
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1365
+ expect(keyObj?.get()).toBe(key);
1366
+ });
1367
+ test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1368
+ const handlerFn = vi.fn((_event) => { });
1369
+ await cache.events.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1370
+ const key = "a";
1371
+ const value1 = 1;
1372
+ await cache.add(key, value1);
1373
+ const value2 = 2;
1374
+ await cache.update(key, value2);
1375
+ expect(handlerFn).toHaveBeenCalledOnce();
1376
+ expect(handlerFn).toHaveBeenCalledWith({
1377
+ key: expect.objectContaining({
1378
+ get: expect.any(Function),
1379
+ toString: expect.any(Function),
1380
+ equals: expect.any(Function),
1381
+ }),
1382
+ value: value2,
1383
+ });
1384
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1385
+ expect(keyObj?.get()).toBe(key);
1386
+ });
1436
1387
  });
1437
- test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1438
- const handlerFn = vi.fn((_event) => { });
1439
- await cache.events.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1440
- const key = "a";
1441
- const value = 1;
1442
- await cache.add(key, value);
1443
- await cache.put(key, value, { ttl: TTL });
1444
- expect(handlerFn).toHaveBeenCalledOnce();
1445
- expect(handlerFn).toHaveBeenCalledWith({
1446
- key: expect.objectContaining({
1447
- get: expect.any(Function),
1448
- toString: expect.any(Function),
1449
- }),
1450
- value,
1451
- });
1452
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1453
- expect(keyObj?.get()).toBe(key);
1388
+ describe("method: updateOrFail", () => {
1389
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1390
+ const handlerFn = vi.fn((_event) => { });
1391
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1392
+ const key = "a";
1393
+ const value = 1;
1394
+ try {
1395
+ await cache.updateOrFail(key, value);
1396
+ }
1397
+ catch {
1398
+ /* EMPTY */
1399
+ }
1400
+ expect(handlerFn).toHaveBeenCalledOnce();
1401
+ expect(handlerFn).toHaveBeenCalledWith({
1402
+ key: expect.objectContaining({
1403
+ get: expect.any(Function),
1404
+ toString: expect.any(Function),
1405
+ equals: expect.any(Function),
1406
+ }),
1407
+ });
1408
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1409
+ expect(keyObj?.get()).toBe(key);
1410
+ });
1411
+ test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1412
+ const handlerFn = vi.fn((_event) => { });
1413
+ await cache.events.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1414
+ const key = "a";
1415
+ const value1 = 1;
1416
+ await cache.add(key, value1);
1417
+ const value2 = 2;
1418
+ await cache.updateOrFail(key, value2);
1419
+ expect(handlerFn).toHaveBeenCalledOnce();
1420
+ expect(handlerFn).toHaveBeenCalledWith({
1421
+ key: expect.objectContaining({
1422
+ get: expect.any(Function),
1423
+ toString: expect.any(Function),
1424
+ equals: expect.any(Function),
1425
+ }),
1426
+ value: value2,
1427
+ });
1428
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1429
+ expect(keyObj?.get()).toBe(key);
1430
+ });
1454
1431
  });
1455
- });
1456
- describe("method: remove", () => {
1457
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1458
- const handlerFn = vi.fn((_event) => { });
1459
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1460
- const key = "a";
1461
- await cache.remove(key);
1462
- expect(handlerFn).toHaveBeenCalledOnce();
1463
- expect(handlerFn).toHaveBeenCalledWith({
1464
- key: expect.objectContaining({
1465
- get: expect.any(Function),
1466
- toString: expect.any(Function),
1467
- }),
1468
- });
1469
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1470
- expect(keyObj?.get()).toBe(key);
1432
+ describe("method: put", () => {
1433
+ test("Should dispatch AddedCacheEvent when key doesnt exists", async () => {
1434
+ const handlerFn = vi.fn((_event) => { });
1435
+ await cache.events.addListener(CACHE_EVENTS.ADDED, handlerFn);
1436
+ const key = "a";
1437
+ const value = 1;
1438
+ await cache.put(key, value, { ttl: TTL });
1439
+ expect(handlerFn).toHaveBeenCalledOnce();
1440
+ expect(handlerFn).toHaveBeenCalledWith({
1441
+ key: expect.objectContaining({
1442
+ get: expect.any(Function),
1443
+ toString: expect.any(Function),
1444
+ equals: expect.any(Function),
1445
+ }),
1446
+ value,
1447
+ ttl: expect.any(TimeSpan),
1448
+ });
1449
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1450
+ expect(keyObj?.get()).toBe(key);
1451
+ const ttl = handlerFn.mock.calls[0]?.[0].ttl;
1452
+ expect(ttl?.toMilliseconds()).toBe(ttl?.toMilliseconds());
1453
+ });
1454
+ test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1455
+ const handlerFn = vi.fn((_event) => { });
1456
+ await cache.events.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1457
+ const key = "a";
1458
+ const value = 1;
1459
+ await cache.add(key, value);
1460
+ await cache.put(key, value, { ttl: TTL });
1461
+ expect(handlerFn).toHaveBeenCalledOnce();
1462
+ expect(handlerFn).toHaveBeenCalledWith({
1463
+ key: expect.objectContaining({
1464
+ get: expect.any(Function),
1465
+ toString: expect.any(Function),
1466
+ equals: expect.any(Function),
1467
+ }),
1468
+ value,
1469
+ });
1470
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1471
+ expect(keyObj?.get()).toBe(key);
1472
+ });
1471
1473
  });
1472
- test("Should dispatch RemovedCacheEvent when key exists", async () => {
1473
- const handlerFn = vi.fn((_event) => { });
1474
- await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1475
- const key = "a";
1476
- const value = 1;
1477
- await cache.add(key, value);
1478
- await cache.remove(key);
1479
- expect(handlerFn).toHaveBeenCalledOnce();
1480
- expect(handlerFn).toHaveBeenCalledWith({
1481
- key: expect.objectContaining({
1482
- get: expect.any(Function),
1483
- toString: expect.any(Function),
1484
- }),
1485
- });
1486
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1487
- expect(keyObj?.get()).toBe(key);
1474
+ describe("method: remove", () => {
1475
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1476
+ const handlerFn = vi.fn((_event) => { });
1477
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1478
+ const key = "a";
1479
+ await cache.remove(key);
1480
+ expect(handlerFn).toHaveBeenCalledOnce();
1481
+ expect(handlerFn).toHaveBeenCalledWith({
1482
+ key: expect.objectContaining({
1483
+ get: expect.any(Function),
1484
+ toString: expect.any(Function),
1485
+ equals: expect.any(Function),
1486
+ }),
1487
+ });
1488
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1489
+ expect(keyObj?.get()).toBe(key);
1490
+ });
1491
+ test("Should dispatch RemovedCacheEvent when key exists", async () => {
1492
+ const handlerFn = vi.fn((_event) => { });
1493
+ await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1494
+ const key = "a";
1495
+ const value = 1;
1496
+ await cache.add(key, value);
1497
+ await cache.remove(key);
1498
+ expect(handlerFn).toHaveBeenCalledOnce();
1499
+ expect(handlerFn).toHaveBeenCalledWith({
1500
+ key: expect.objectContaining({
1501
+ get: expect.any(Function),
1502
+ toString: expect.any(Function),
1503
+ equals: expect.any(Function),
1504
+ }),
1505
+ });
1506
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1507
+ expect(keyObj?.get()).toBe(key);
1508
+ });
1488
1509
  });
1489
- });
1490
- describe("method: removeOrFail", () => {
1491
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1492
- const handlerFn = vi.fn((_event) => { });
1493
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1494
- const key = "a";
1495
- try {
1510
+ describe("method: removeOrFail", () => {
1511
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1512
+ const handlerFn = vi.fn((_event) => { });
1513
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1514
+ const key = "a";
1515
+ try {
1516
+ await cache.removeOrFail(key);
1517
+ }
1518
+ catch {
1519
+ /* EMPTY */
1520
+ }
1521
+ expect(handlerFn).toHaveBeenCalledOnce();
1522
+ expect(handlerFn).toHaveBeenCalledWith({
1523
+ key: expect.objectContaining({
1524
+ get: expect.any(Function),
1525
+ toString: expect.any(Function),
1526
+ equals: expect.any(Function),
1527
+ }),
1528
+ });
1529
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1530
+ expect(keyObj?.get()).toBe(key);
1531
+ });
1532
+ test("Should dispatch RemovedCacheEvent when key exists", async () => {
1533
+ const handlerFn = vi.fn((_event) => { });
1534
+ await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1535
+ const key = "a";
1536
+ const value = 1;
1537
+ await cache.add(key, value);
1496
1538
  await cache.removeOrFail(key);
1497
- }
1498
- catch {
1499
- /* EMPTY */
1500
- }
1501
- expect(handlerFn).toHaveBeenCalledOnce();
1502
- expect(handlerFn).toHaveBeenCalledWith({
1503
- key: expect.objectContaining({
1504
- get: expect.any(Function),
1505
- toString: expect.any(Function),
1506
- }),
1507
- });
1508
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1509
- expect(keyObj?.get()).toBe(key);
1510
- });
1511
- test("Should dispatch RemovedCacheEvent when key exists", async () => {
1512
- const handlerFn = vi.fn((_event) => { });
1513
- await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1514
- const key = "a";
1515
- const value = 1;
1516
- await cache.add(key, value);
1517
- await cache.removeOrFail(key);
1518
- expect(handlerFn).toHaveBeenCalledOnce();
1519
- expect(handlerFn).toHaveBeenCalledWith({
1520
- key: expect.objectContaining({
1521
- get: expect.any(Function),
1522
- toString: expect.any(Function),
1523
- }),
1524
- });
1525
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1526
- expect(keyObj?.get()).toBe(key);
1527
- });
1528
- });
1529
- describe("method: removeMany", () => {
1530
- test("Should dispatch RemovedCacheEvent when one key exists", async () => {
1531
- const handlerFn = vi.fn((_event) => { });
1532
- await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1533
- const key1 = "a";
1534
- const key2 = "b";
1535
- const value = 1;
1536
- await cache.add(key1, value);
1537
- await cache.removeMany([key1, key2]);
1538
- expect(handlerFn).toHaveBeenCalledTimes(2);
1539
- expect(handlerFn).toHaveBeenCalledWith({
1540
- key: expect.objectContaining({
1541
- get: expect.any(Function),
1542
- toString: expect.any(Function),
1543
- }),
1544
- });
1545
- const keyObj1 = handlerFn.mock.calls[0]?.[0].key;
1546
- expect(keyObj1?.get()).toBe("a");
1547
- const keyObj2 = handlerFn.mock.calls[1]?.[0].key;
1548
- expect(keyObj2?.get()).toBe("b");
1549
- });
1550
- test("Should dispatch NotFoundCacheEvent when all keys doesnt exists", async () => {
1551
- const handlerFn = vi.fn((_event) => { });
1552
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1553
- const key1 = "a";
1554
- const key2 = "b";
1555
- await cache.removeMany([key1, key2]);
1556
- expect(handlerFn).toHaveBeenCalledTimes(2);
1557
- expect(handlerFn).toHaveBeenCalledWith({
1558
- key: expect.objectContaining({
1559
- get: expect.any(Function),
1560
- toString: expect.any(Function),
1561
- }),
1562
- });
1563
- const keyObj1 = handlerFn.mock.calls[0]?.[0].key;
1564
- expect(keyObj1?.get()).toBe("a");
1565
- const keyObj2 = handlerFn.mock.calls[1]?.[0].key;
1566
- expect(keyObj2?.get()).toBe("b");
1567
- });
1568
- });
1569
- describe("method: getAndRemove", () => {
1570
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1571
- const handlerFn = vi.fn((_event) => { });
1572
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1573
- const key = "a";
1574
- await cache.getAndRemove(key);
1575
- expect(handlerFn).toHaveBeenCalledOnce();
1576
- expect(handlerFn).toHaveBeenCalledWith({
1577
- key: expect.objectContaining({
1578
- get: expect.any(Function),
1579
- toString: expect.any(Function),
1580
- }),
1581
- });
1582
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1583
- expect(keyObj?.get()).toBe(key);
1584
- });
1585
- test("Should not dispatch FoundCacheEvent when key exists", async () => {
1586
- const handlerFn = vi.fn((_event) => { });
1587
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1588
- const key = "a";
1589
- const value = 1;
1590
- await cache.add(key, value);
1591
- await cache.getAndRemove(key);
1592
- expect(handlerFn).not.toHaveBeenCalled();
1593
- });
1594
- test("Should dispatch RemovedCacheEvent when key exists", async () => {
1595
- const handlerFn = vi.fn((_event) => { });
1596
- await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1597
- const key = "a";
1598
- const value = 1;
1599
- await cache.add(key, value);
1600
- await cache.getAndRemove(key);
1601
- expect(handlerFn).toHaveBeenCalledOnce();
1602
- expect(handlerFn).toHaveBeenCalledWith({
1603
- key: expect.objectContaining({
1604
- get: expect.any(Function),
1605
- toString: expect.any(Function),
1606
- }),
1607
- });
1608
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1609
- expect(keyObj?.get()).toBe(key);
1610
- });
1611
- });
1612
- describe("method: getOrAdd", () => {
1613
- test("Should not dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1614
- const handlerFn = vi.fn((_event) => { });
1615
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1616
- const key = "a";
1617
- const value = 1;
1618
- await cache.getOrAdd(key, value);
1619
- expect(handlerFn).not.toHaveBeenCalled();
1620
- });
1621
- test("Should dispatch FoundCacheEvent when key exists", async () => {
1622
- const handlerFn = vi.fn((_event) => { });
1623
- await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1624
- const key = "a";
1625
- const value = 1;
1626
- await cache.add(key, value);
1627
- await cache.getOrAdd(key, value);
1628
- expect(handlerFn).toHaveBeenCalledOnce();
1629
- expect(handlerFn).toHaveBeenCalledWith({
1630
- key: expect.objectContaining({
1631
- get: expect.any(Function),
1632
- toString: expect.any(Function),
1633
- }),
1634
- value,
1635
- });
1636
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1637
- expect(keyObj?.get()).toBe(key);
1638
- });
1639
- test("Should dispatch AddedCacheEvent when key exists", async () => {
1640
- const handlerFn = vi.fn((_event) => { });
1641
- await cache.events.addListener(CACHE_EVENTS.ADDED, handlerFn);
1642
- const key = "a";
1643
- const value = 1;
1644
- await cache.getOrAdd(key, value, { ttl: TTL });
1645
- expect(handlerFn).toHaveBeenCalledOnce();
1646
- expect(handlerFn).toHaveBeenCalledWith({
1647
- key: expect.objectContaining({
1648
- get: expect.any(Function),
1649
- toString: expect.any(Function),
1650
- }),
1651
- value,
1652
- ttl: expect.any(TimeSpan),
1653
- });
1654
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1655
- expect(keyObj?.get()).toBe(key);
1656
- const ttl = handlerFn.mock.calls[0]?.[0].ttl;
1657
- expect(ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
1658
- });
1659
- });
1660
- describe("method: increment", () => {
1661
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1662
- const handlerFn = vi.fn((_event) => { });
1663
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1664
- const key = "a";
1665
- const value = 1;
1666
- await cache.increment(key, value);
1667
- expect(handlerFn).toHaveBeenCalledOnce();
1668
- expect(handlerFn).toHaveBeenCalledWith({
1669
- key: expect.objectContaining({
1670
- get: expect.any(Function),
1671
- toString: expect.any(Function),
1672
- }),
1673
- });
1674
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1675
- expect(keyObj?.get()).toBe(key);
1539
+ expect(handlerFn).toHaveBeenCalledOnce();
1540
+ expect(handlerFn).toHaveBeenCalledWith({
1541
+ key: expect.objectContaining({
1542
+ get: expect.any(Function),
1543
+ toString: expect.any(Function),
1544
+ equals: expect.any(Function),
1545
+ }),
1546
+ });
1547
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1548
+ expect(keyObj?.get()).toBe(key);
1549
+ });
1676
1550
  });
1677
- test("Should dispatch IncrementedCacheEvent when key exists", async () => {
1678
- const handlerFn = vi.fn((_event) => { });
1679
- await cache.events.addListener(CACHE_EVENTS.INCREMENTED, handlerFn);
1680
- const key = "a";
1681
- const value1 = 1;
1682
- await cache.add(key, value1);
1683
- const value2 = 2;
1684
- await cache.increment(key, value2);
1685
- expect(handlerFn).toHaveBeenCalledOnce();
1686
- expect(handlerFn).toHaveBeenCalledWith({
1687
- key: expect.objectContaining({
1688
- get: expect.any(Function),
1689
- toString: expect.any(Function),
1690
- }),
1691
- value: value2,
1692
- });
1693
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1694
- expect(keyObj?.get()).toBe(key);
1551
+ describe("method: removeMany", () => {
1552
+ test("Should dispatch RemovedCacheEvent when one key exists", async () => {
1553
+ const handlerFn = vi.fn((_event) => { });
1554
+ await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1555
+ const key1 = "a";
1556
+ const key2 = "b";
1557
+ const value = 1;
1558
+ await cache.add(key1, value);
1559
+ await cache.removeMany([key1, key2]);
1560
+ expect(handlerFn).toHaveBeenCalledTimes(2);
1561
+ expect(handlerFn).toHaveBeenCalledWith({
1562
+ key: expect.objectContaining({
1563
+ get: expect.any(Function),
1564
+ toString: expect.any(Function),
1565
+ equals: expect.any(Function),
1566
+ }),
1567
+ });
1568
+ const keyObj1 = handlerFn.mock.calls[0]?.[0].key;
1569
+ expect(keyObj1?.get()).toBe("a");
1570
+ const keyObj2 = handlerFn.mock.calls[1]?.[0].key;
1571
+ expect(keyObj2?.get()).toBe("b");
1572
+ });
1573
+ test("Should dispatch NotFoundCacheEvent when all keys doesnt exists", async () => {
1574
+ const handlerFn = vi.fn((_event) => { });
1575
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1576
+ const key1 = "a";
1577
+ const key2 = "b";
1578
+ await cache.removeMany([key1, key2]);
1579
+ expect(handlerFn).toHaveBeenCalledTimes(2);
1580
+ expect(handlerFn).toHaveBeenCalledWith({
1581
+ key: expect.objectContaining({
1582
+ get: expect.any(Function),
1583
+ toString: expect.any(Function),
1584
+ equals: expect.any(Function),
1585
+ }),
1586
+ });
1587
+ const keyObj1 = handlerFn.mock.calls[0]?.[0].key;
1588
+ expect(keyObj1?.get()).toBe("a");
1589
+ const keyObj2 = handlerFn.mock.calls[1]?.[0].key;
1590
+ expect(keyObj2?.get()).toBe("b");
1591
+ });
1695
1592
  });
1696
- });
1697
- describe("method: incrementOrFail", () => {
1698
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1699
- const handlerFn = vi.fn((_event) => { });
1700
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1701
- const key = "a";
1702
- const value = 1;
1703
- try {
1704
- await cache.incrementOrFail(key, value);
1705
- }
1706
- catch {
1707
- /* EMPTY */
1708
- }
1709
- expect(handlerFn).toHaveBeenCalledOnce();
1710
- expect(handlerFn).toHaveBeenCalledWith({
1711
- key: expect.objectContaining({
1712
- get: expect.any(Function),
1713
- toString: expect.any(Function),
1714
- }),
1715
- });
1716
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1717
- expect(keyObj?.get()).toBe(key);
1593
+ describe("method: getAndRemove", () => {
1594
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1595
+ const handlerFn = vi.fn((_event) => { });
1596
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1597
+ const key = "a";
1598
+ await cache.getAndRemove(key);
1599
+ expect(handlerFn).toHaveBeenCalledOnce();
1600
+ expect(handlerFn).toHaveBeenCalledWith({
1601
+ key: expect.objectContaining({
1602
+ get: expect.any(Function),
1603
+ toString: expect.any(Function),
1604
+ equals: expect.any(Function),
1605
+ }),
1606
+ });
1607
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1608
+ expect(keyObj?.get()).toBe(key);
1609
+ });
1610
+ test("Should not dispatch FoundCacheEvent when key exists", async () => {
1611
+ const handlerFn = vi.fn((_event) => { });
1612
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1613
+ const key = "a";
1614
+ const value = 1;
1615
+ await cache.add(key, value);
1616
+ await cache.getAndRemove(key);
1617
+ expect(handlerFn).not.toHaveBeenCalled();
1618
+ });
1619
+ test("Should dispatch RemovedCacheEvent when key exists", async () => {
1620
+ const handlerFn = vi.fn((_event) => { });
1621
+ await cache.events.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1622
+ const key = "a";
1623
+ const value = 1;
1624
+ await cache.add(key, value);
1625
+ await cache.getAndRemove(key);
1626
+ expect(handlerFn).toHaveBeenCalledOnce();
1627
+ expect(handlerFn).toHaveBeenCalledWith({
1628
+ key: expect.objectContaining({
1629
+ get: expect.any(Function),
1630
+ toString: expect.any(Function),
1631
+ equals: expect.any(Function),
1632
+ }),
1633
+ });
1634
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1635
+ expect(keyObj?.get()).toBe(key);
1636
+ });
1718
1637
  });
1719
- test("Should dispatch IncrementedCacheEvent when key exists", async () => {
1720
- const handlerFn = vi.fn((_event) => { });
1721
- await cache.events.addListener(CACHE_EVENTS.INCREMENTED, handlerFn);
1722
- const key = "a";
1723
- const value1 = 1;
1724
- await cache.add(key, value1);
1725
- const value2 = 2;
1726
- await cache.incrementOrFail(key, value2);
1727
- expect(handlerFn).toHaveBeenCalledOnce();
1728
- expect(handlerFn).toHaveBeenCalledWith({
1729
- key: expect.objectContaining({
1730
- get: expect.any(Function),
1731
- toString: expect.any(Function),
1732
- }),
1733
- value: value2,
1734
- });
1735
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1736
- expect(keyObj?.get()).toBe(key);
1638
+ describe("method: getOrAdd", () => {
1639
+ test("Should not dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1640
+ const handlerFn = vi.fn((_event) => { });
1641
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1642
+ const key = "a";
1643
+ const value = 1;
1644
+ await cache.getOrAdd(key, value);
1645
+ expect(handlerFn).not.toHaveBeenCalled();
1646
+ });
1647
+ test("Should dispatch FoundCacheEvent when key exists", async () => {
1648
+ const handlerFn = vi.fn((_event) => { });
1649
+ await cache.events.addListener(CACHE_EVENTS.FOUND, handlerFn);
1650
+ const key = "a";
1651
+ const value = 1;
1652
+ await cache.add(key, value);
1653
+ await cache.getOrAdd(key, value);
1654
+ expect(handlerFn).toHaveBeenCalledOnce();
1655
+ expect(handlerFn).toHaveBeenCalledWith({
1656
+ key: expect.objectContaining({
1657
+ get: expect.any(Function),
1658
+ toString: expect.any(Function),
1659
+ equals: expect.any(Function),
1660
+ }),
1661
+ value,
1662
+ });
1663
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1664
+ expect(keyObj?.get()).toBe(key);
1665
+ });
1666
+ test("Should dispatch AddedCacheEvent when key exists", async () => {
1667
+ const handlerFn = vi.fn((_event) => { });
1668
+ await cache.events.addListener(CACHE_EVENTS.ADDED, handlerFn);
1669
+ const key = "a";
1670
+ const value = 1;
1671
+ await cache.getOrAdd(key, value, { ttl: TTL });
1672
+ expect(handlerFn).toHaveBeenCalledOnce();
1673
+ expect(handlerFn).toHaveBeenCalledWith({
1674
+ key: expect.objectContaining({
1675
+ get: expect.any(Function),
1676
+ toString: expect.any(Function),
1677
+ equals: expect.any(Function),
1678
+ }),
1679
+ value,
1680
+ ttl: expect.any(TimeSpan),
1681
+ });
1682
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1683
+ expect(keyObj?.get()).toBe(key);
1684
+ const ttl = handlerFn.mock.calls[0]?.[0].ttl;
1685
+ expect(ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
1686
+ });
1737
1687
  });
1738
- });
1739
- describe("method: decrement", () => {
1740
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1741
- const handlerFn = vi.fn((_event) => { });
1742
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1743
- const key = "a";
1744
- const value = 1;
1745
- await cache.decrement(key, value);
1746
- expect(handlerFn).toHaveBeenCalledOnce();
1747
- expect(handlerFn).toHaveBeenCalledWith({
1748
- key: expect.objectContaining({
1749
- get: expect.any(Function),
1750
- toString: expect.any(Function),
1751
- }),
1752
- });
1753
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1754
- expect(keyObj?.get()).toBe(key);
1688
+ describe("method: increment", () => {
1689
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1690
+ const handlerFn = vi.fn((_event) => { });
1691
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1692
+ const key = "a";
1693
+ const value = 1;
1694
+ await cache.increment(key, value);
1695
+ expect(handlerFn).toHaveBeenCalledOnce();
1696
+ expect(handlerFn).toHaveBeenCalledWith({
1697
+ key: expect.objectContaining({
1698
+ get: expect.any(Function),
1699
+ toString: expect.any(Function),
1700
+ equals: expect.any(Function),
1701
+ }),
1702
+ });
1703
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1704
+ expect(keyObj?.get()).toBe(key);
1705
+ });
1706
+ test("Should dispatch IncrementedCacheEvent when key exists", async () => {
1707
+ const handlerFn = vi.fn((_event) => { });
1708
+ await cache.events.addListener(CACHE_EVENTS.INCREMENTED, handlerFn);
1709
+ const key = "a";
1710
+ const value1 = 1;
1711
+ await cache.add(key, value1);
1712
+ const value2 = 2;
1713
+ await cache.increment(key, value2);
1714
+ expect(handlerFn).toHaveBeenCalledOnce();
1715
+ expect(handlerFn).toHaveBeenCalledWith({
1716
+ key: expect.objectContaining({
1717
+ get: expect.any(Function),
1718
+ toString: expect.any(Function),
1719
+ equals: expect.any(Function),
1720
+ }),
1721
+ value: value2,
1722
+ });
1723
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1724
+ expect(keyObj?.get()).toBe(key);
1725
+ });
1755
1726
  });
1756
- test("Should dispatch DecrementedCacheEvent when key exists", async () => {
1757
- const handlerFn = vi.fn((_event) => { });
1758
- await cache.events.addListener(CACHE_EVENTS.DECREMENTED, handlerFn);
1759
- const key = "a";
1760
- const value1 = 1;
1761
- await cache.add(key, value1);
1762
- const value2 = 2;
1763
- await cache.decrement(key, value2);
1764
- expect(handlerFn).toHaveBeenCalledOnce();
1765
- expect(handlerFn).toHaveBeenCalledWith({
1766
- key: expect.objectContaining({
1767
- get: expect.any(Function),
1768
- toString: expect.any(Function),
1769
- }),
1770
- value: value2,
1771
- });
1772
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1773
- expect(keyObj?.get()).toBe(key);
1727
+ describe("method: incrementOrFail", () => {
1728
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1729
+ const handlerFn = vi.fn((_event) => { });
1730
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1731
+ const key = "a";
1732
+ const value = 1;
1733
+ try {
1734
+ await cache.incrementOrFail(key, value);
1735
+ }
1736
+ catch {
1737
+ /* EMPTY */
1738
+ }
1739
+ expect(handlerFn).toHaveBeenCalledOnce();
1740
+ expect(handlerFn).toHaveBeenCalledWith({
1741
+ key: expect.objectContaining({
1742
+ get: expect.any(Function),
1743
+ toString: expect.any(Function),
1744
+ equals: expect.any(Function),
1745
+ }),
1746
+ });
1747
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1748
+ expect(keyObj?.get()).toBe(key);
1749
+ });
1750
+ test("Should dispatch IncrementedCacheEvent when key exists", async () => {
1751
+ const handlerFn = vi.fn((_event) => { });
1752
+ await cache.events.addListener(CACHE_EVENTS.INCREMENTED, handlerFn);
1753
+ const key = "a";
1754
+ const value1 = 1;
1755
+ await cache.add(key, value1);
1756
+ const value2 = 2;
1757
+ await cache.incrementOrFail(key, value2);
1758
+ expect(handlerFn).toHaveBeenCalledOnce();
1759
+ expect(handlerFn).toHaveBeenCalledWith({
1760
+ key: expect.objectContaining({
1761
+ get: expect.any(Function),
1762
+ toString: expect.any(Function),
1763
+ equals: expect.any(Function),
1764
+ }),
1765
+ value: value2,
1766
+ });
1767
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1768
+ expect(keyObj?.get()).toBe(key);
1769
+ });
1774
1770
  });
1775
- });
1776
- describe("method: decrementOrFail", () => {
1777
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1778
- const handlerFn = vi.fn((_event) => { });
1779
- await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1780
- const key = "a";
1781
- const value = 1;
1782
- try {
1783
- await cache.decrementOrFail(key, value);
1784
- }
1785
- catch {
1786
- /* EMPTY */
1787
- }
1788
- expect(handlerFn).toHaveBeenCalledOnce();
1789
- expect(handlerFn).toHaveBeenCalledWith({
1790
- key: expect.objectContaining({
1791
- get: expect.any(Function),
1792
- toString: expect.any(Function),
1793
- }),
1794
- });
1795
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1796
- expect(keyObj?.get()).toBe(key);
1771
+ describe("method: decrement", () => {
1772
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1773
+ const handlerFn = vi.fn((_event) => { });
1774
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1775
+ const key = "a";
1776
+ const value = 1;
1777
+ await cache.decrement(key, value);
1778
+ expect(handlerFn).toHaveBeenCalledOnce();
1779
+ expect(handlerFn).toHaveBeenCalledWith({
1780
+ key: expect.objectContaining({
1781
+ get: expect.any(Function),
1782
+ toString: expect.any(Function),
1783
+ equals: expect.any(Function),
1784
+ }),
1785
+ });
1786
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1787
+ expect(keyObj?.get()).toBe(key);
1788
+ });
1789
+ test("Should dispatch DecrementedCacheEvent when key exists", async () => {
1790
+ const handlerFn = vi.fn((_event) => { });
1791
+ await cache.events.addListener(CACHE_EVENTS.DECREMENTED, handlerFn);
1792
+ const key = "a";
1793
+ const value1 = 1;
1794
+ await cache.add(key, value1);
1795
+ const value2 = 2;
1796
+ await cache.decrement(key, value2);
1797
+ expect(handlerFn).toHaveBeenCalledOnce();
1798
+ expect(handlerFn).toHaveBeenCalledWith({
1799
+ key: expect.objectContaining({
1800
+ get: expect.any(Function),
1801
+ toString: expect.any(Function),
1802
+ equals: expect.any(Function),
1803
+ }),
1804
+ value: value2,
1805
+ });
1806
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1807
+ expect(keyObj?.get()).toBe(key);
1808
+ });
1797
1809
  });
1798
- test("Should dispatch DecrementedCacheEvent when key exists", async () => {
1799
- const handlerFn = vi.fn((_event) => { });
1800
- await cache.events.addListener(CACHE_EVENTS.DECREMENTED, handlerFn);
1801
- const key = "a";
1802
- const value1 = 1;
1803
- await cache.add(key, value1);
1804
- const value2 = 2;
1805
- await cache.decrementOrFail(key, value2);
1806
- expect(handlerFn).toHaveBeenCalledOnce();
1807
- expect(handlerFn).toHaveBeenCalledWith({
1808
- key: expect.objectContaining({
1809
- get: expect.any(Function),
1810
- toString: expect.any(Function),
1811
- }),
1812
- value: value2,
1813
- });
1814
- const keyObj = handlerFn.mock.calls[0]?.[0].key;
1815
- expect(keyObj?.get()).toBe(key);
1810
+ describe("method: decrementOrFail", () => {
1811
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1812
+ const handlerFn = vi.fn((_event) => { });
1813
+ await cache.events.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1814
+ const key = "a";
1815
+ const value = 1;
1816
+ try {
1817
+ await cache.decrementOrFail(key, value);
1818
+ }
1819
+ catch {
1820
+ /* EMPTY */
1821
+ }
1822
+ expect(handlerFn).toHaveBeenCalledOnce();
1823
+ expect(handlerFn).toHaveBeenCalledWith({
1824
+ key: expect.objectContaining({
1825
+ get: expect.any(Function),
1826
+ toString: expect.any(Function),
1827
+ equals: expect.any(Function),
1828
+ }),
1829
+ });
1830
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1831
+ expect(keyObj?.get()).toBe(key);
1832
+ });
1833
+ test("Should dispatch DecrementedCacheEvent when key exists", async () => {
1834
+ const handlerFn = vi.fn((_event) => { });
1835
+ await cache.events.addListener(CACHE_EVENTS.DECREMENTED, handlerFn);
1836
+ const key = "a";
1837
+ const value1 = 1;
1838
+ await cache.add(key, value1);
1839
+ const value2 = 2;
1840
+ await cache.decrementOrFail(key, value2);
1841
+ expect(handlerFn).toHaveBeenCalledOnce();
1842
+ expect(handlerFn).toHaveBeenCalledWith({
1843
+ key: expect.objectContaining({
1844
+ get: expect.any(Function),
1845
+ toString: expect.any(Function),
1846
+ equals: expect.any(Function),
1847
+ }),
1848
+ value: value2,
1849
+ });
1850
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1851
+ expect(keyObj?.get()).toBe(key);
1852
+ });
1816
1853
  });
1817
- });
1818
- describe("method: clear", () => {
1819
- test("Should dispatch ClearedCacheEvent when key doesnt exists", async () => {
1820
- const handler = vi.fn((_event) => { });
1821
- await cache.events.addListener(CACHE_EVENTS.CLEARED, handler);
1822
- await cache.add("a", 1);
1823
- await cache.add("b", 2);
1824
- await cache.add("c", 3);
1825
- await cache.clear();
1826
- expect(handler).toHaveBeenCalledOnce();
1827
- expect(handler).toHaveBeenCalledWith({});
1854
+ describe("method: clear", () => {
1855
+ test("Should dispatch ClearedCacheEvent when clear method is called", async () => {
1856
+ const handler = vi.fn((_event) => { });
1857
+ await cache.events.addListener(CACHE_EVENTS.CLEARED, handler);
1858
+ await cache.add("a", 1);
1859
+ await cache.add("b", 2);
1860
+ await cache.add("c", 3);
1861
+ await cache.clear();
1862
+ expect(handler).toHaveBeenCalledOnce();
1863
+ expect(handler).toHaveBeenCalledWith({});
1864
+ });
1828
1865
  });
1829
1866
  });
1830
1867
  });