@daiso-tech/core 0.20.0 → 0.21.1

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 (121) hide show
  1. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +13 -7
  2. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  3. package/dist/cjs/cache/contracts/cache.errors.js +13 -0
  4. package/dist/cjs/cache/contracts/cache.errors.js.map +1 -1
  5. package/dist/cjs/cache/contracts/cache.events.js +17 -130
  6. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  7. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +0 -19
  8. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  9. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +671 -0
  10. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  11. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +0 -20
  12. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  13. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -3
  14. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  15. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +0 -4
  16. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +0 -23
  18. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
  20. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +0 -5
  22. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  23. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -3
  24. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  25. package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js +0 -18
  26. package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js.map +1 -1
  27. package/dist/cjs/cache/implementations/derivables/cache/cache.js +4 -69
  28. package/dist/cjs/cache/implementations/derivables/cache/cache.js.map +1 -1
  29. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js +17 -13
  30. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  31. package/dist/cjs/event-bus/contracts/_shared.js +3 -2
  32. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  33. package/dist/cjs/event-bus/contracts/event-bus.errors.js +14 -0
  34. package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -1
  35. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +1 -12
  36. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  37. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +2 -24
  38. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  39. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -12
  40. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +1 -1
  41. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js +1 -29
  42. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  43. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +17 -15
  44. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  45. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +3 -0
  46. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
  47. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +15 -0
  48. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  49. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +13 -7
  50. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  51. package/dist/esm/cache/contracts/cache.errors.js +12 -0
  52. package/dist/esm/cache/contracts/cache.errors.js.map +1 -1
  53. package/dist/esm/cache/contracts/cache.events.js +15 -129
  54. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  55. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +0 -19
  56. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  57. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +672 -1
  58. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  59. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +0 -20
  60. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  61. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -3
  62. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  63. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +0 -4
  64. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  65. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +0 -23
  66. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  67. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
  68. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  69. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +0 -5
  70. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  71. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -3
  72. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  73. package/dist/esm/cache/implementations/derivables/cache/cache-settings.js +0 -18
  74. package/dist/esm/cache/implementations/derivables/cache/cache-settings.js.map +1 -1
  75. package/dist/esm/cache/implementations/derivables/cache/cache.js +5 -70
  76. package/dist/esm/cache/implementations/derivables/cache/cache.js.map +1 -1
  77. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js +17 -13
  78. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  79. package/dist/esm/event-bus/contracts/_shared.js +3 -2
  80. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  81. package/dist/esm/event-bus/contracts/event-bus.errors.js +13 -0
  82. package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -1
  83. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +1 -12
  84. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  85. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +2 -24
  86. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  87. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -12
  88. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +1 -1
  89. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js +2 -30
  90. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  91. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +14 -12
  92. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  93. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +3 -0
  94. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
  95. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +15 -0
  96. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  97. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +0 -4
  98. package/dist/types/cache/contracts/cache.errors.d.ts +7 -2
  99. package/dist/types/cache/contracts/cache.events.d.ts +22 -93
  100. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +6 -10
  101. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +0 -1
  102. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +0 -1
  103. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +0 -1
  104. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +0 -1
  105. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +0 -1
  106. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +0 -1
  107. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +0 -1
  108. package/dist/types/cache/implementations/derivables/cache/cache-settings.d.ts +2 -29
  109. package/dist/types/cache/implementations/derivables/cache/cache.d.ts +5 -33
  110. package/dist/types/cache/implementations/derivables/cache-factory/cache-factory-settings.d.ts +1 -1
  111. package/dist/types/cache/implementations/derivables/cache-factory/cache-factory.d.ts +4 -5
  112. package/dist/types/event-bus/contracts/_shared.d.ts +3 -4
  113. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +4 -23
  114. package/dist/types/event-bus/contracts/event-bus.errors.d.ts +7 -2
  115. package/dist/types/event-bus/implementations/derivables/event-bus/event-bus-settings.d.ts +1 -19
  116. package/dist/types/event-bus/implementations/derivables/event-bus/event-bus.d.ts +16 -14
  117. package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +30 -5
  118. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +3 -2
  119. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +2 -1
  120. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +2 -1
  121. package/package.json +1 -1
@@ -805,6 +805,587 @@ function cacheTestSuite(settings) {
805
805
  });
806
806
  });
807
807
  });
808
+ describe("Event tests:", () => {
809
+ const delayTime = _module_2.TimeSpan.fromMilliseconds(50);
810
+ describe("method: exists", () => {
811
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
812
+ let event_ = null;
813
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
814
+ event_ = event;
815
+ });
816
+ await cacheA.exists("a");
817
+ await (0, _module_3.delay)(delayTime);
818
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
819
+ expect(event_?.fields.key).toBe("a");
820
+ await unsubscribe();
821
+ });
822
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
823
+ let event_ = null;
824
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
825
+ event_ = event;
826
+ });
827
+ await cacheA.add("a", 1);
828
+ await cacheA.exists("a");
829
+ await (0, _module_3.delay)(delayTime);
830
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
831
+ expect(event_?.fields.key).toBe("a");
832
+ expect(event_?.fields.value).toBe(1);
833
+ await unsubscribe();
834
+ });
835
+ });
836
+ describe("method: existsMany", () => {
837
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
838
+ let event_ = null;
839
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
840
+ event_ = event;
841
+ });
842
+ await cacheA.existsMany(["a"]);
843
+ await (0, _module_3.delay)(delayTime);
844
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
845
+ expect(event_?.fields.key).toBe("a");
846
+ await unsubscribe();
847
+ });
848
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
849
+ let event_ = null;
850
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
851
+ event_ = event;
852
+ });
853
+ await cacheA.add("a", 1);
854
+ await cacheA.existsMany(["a"]);
855
+ await (0, _module_3.delay)(delayTime);
856
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
857
+ expect(event_?.fields.key).toBe("a");
858
+ expect(event_?.fields.value).toBe(1);
859
+ await unsubscribe();
860
+ });
861
+ });
862
+ describe("method: missing", () => {
863
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
864
+ let event_ = null;
865
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
866
+ event_ = event;
867
+ });
868
+ await cacheA.missing("a");
869
+ await (0, _module_3.delay)(delayTime);
870
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
871
+ expect(event_?.fields.key).toBe("a");
872
+ await unsubscribe();
873
+ });
874
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
875
+ let event_ = null;
876
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
877
+ event_ = event;
878
+ });
879
+ await cacheA.add("a", 1);
880
+ await cacheA.missing("a");
881
+ await (0, _module_3.delay)(delayTime);
882
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
883
+ expect(event_?.fields.key).toBe("a");
884
+ expect(event_?.fields.value).toBe(1);
885
+ await unsubscribe();
886
+ });
887
+ });
888
+ describe("method: missingMany", () => {
889
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
890
+ let event_ = null;
891
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
892
+ event_ = event;
893
+ });
894
+ await cacheA.missingMany(["a"]);
895
+ await (0, _module_3.delay)(delayTime);
896
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
897
+ expect(event_?.fields.key).toBe("a");
898
+ await unsubscribe();
899
+ });
900
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
901
+ let event_ = null;
902
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
903
+ event_ = event;
904
+ });
905
+ await cacheA.add("a", 1);
906
+ await cacheA.missingMany(["a"]);
907
+ await (0, _module_3.delay)(delayTime);
908
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
909
+ expect(event_?.fields.key).toBe("a");
910
+ expect(event_?.fields.value).toBe(1);
911
+ await unsubscribe();
912
+ });
913
+ });
914
+ describe("method: get", () => {
915
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
916
+ let event_ = null;
917
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
918
+ event_ = event;
919
+ });
920
+ await cacheA.get("a");
921
+ await (0, _module_3.delay)(delayTime);
922
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
923
+ expect(event_?.fields.key).toBe("a");
924
+ await unsubscribe();
925
+ });
926
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
927
+ let event_ = null;
928
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
929
+ event_ = event;
930
+ });
931
+ await cacheA.add("a", 1);
932
+ await cacheA.get("a");
933
+ await (0, _module_3.delay)(delayTime);
934
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
935
+ expect(event_?.fields.key).toBe("a");
936
+ expect(event_?.fields.value).toBe(1);
937
+ await unsubscribe();
938
+ });
939
+ });
940
+ describe("method: getMany", () => {
941
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
942
+ let event_ = null;
943
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
944
+ event_ = event;
945
+ });
946
+ await cacheA.getMany(["a"]);
947
+ await (0, _module_3.delay)(delayTime);
948
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
949
+ expect(event_?.fields.key).toBe("a");
950
+ await unsubscribe();
951
+ });
952
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
953
+ let event_ = null;
954
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
955
+ event_ = event;
956
+ });
957
+ await cacheA.add("a", 1);
958
+ await cacheA.getMany(["a"]);
959
+ await (0, _module_3.delay)(delayTime);
960
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
961
+ expect(event_?.fields.key).toBe("a");
962
+ expect(event_?.fields.value).toBe(1);
963
+ await unsubscribe();
964
+ });
965
+ });
966
+ describe("method: getOr", () => {
967
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
968
+ let event_ = null;
969
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
970
+ event_ = event;
971
+ });
972
+ await cacheA.getOr("a", 1);
973
+ await (0, _module_3.delay)(delayTime);
974
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
975
+ expect(event_?.fields.key).toBe("a");
976
+ await unsubscribe();
977
+ });
978
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
979
+ let event_ = null;
980
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
981
+ event_ = event;
982
+ });
983
+ await cacheA.add("a", 1);
984
+ await cacheA.getOr("a", 1);
985
+ await (0, _module_3.delay)(delayTime);
986
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
987
+ expect(event_?.fields.key).toBe("a");
988
+ expect(event_?.fields.value).toBe(1);
989
+ await unsubscribe();
990
+ });
991
+ });
992
+ describe("method: getOrMany", () => {
993
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
994
+ let event_ = null;
995
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
996
+ event_ = event;
997
+ });
998
+ await cacheA.getOrMany({ a: 1 });
999
+ await (0, _module_3.delay)(delayTime);
1000
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1001
+ expect(event_?.fields.key).toBe("a");
1002
+ await unsubscribe();
1003
+ });
1004
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
1005
+ let event_ = null;
1006
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
1007
+ event_ = event;
1008
+ });
1009
+ await cacheA.add("a", 1);
1010
+ await cacheA.getOrMany({ a: 1 });
1011
+ await (0, _module_3.delay)(delayTime);
1012
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
1013
+ expect(event_?.fields.key).toBe("a");
1014
+ expect(event_?.fields.value).toBe(1);
1015
+ await unsubscribe();
1016
+ });
1017
+ });
1018
+ describe("method: getOrFail", () => {
1019
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1020
+ let event_ = null;
1021
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1022
+ event_ = event;
1023
+ });
1024
+ try {
1025
+ await cacheA.getOrFail("a");
1026
+ }
1027
+ catch {
1028
+ }
1029
+ await (0, _module_3.delay)(delayTime);
1030
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1031
+ expect(event_?.fields.key).toBe("a");
1032
+ await unsubscribe();
1033
+ });
1034
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
1035
+ let event_ = null;
1036
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
1037
+ event_ = event;
1038
+ });
1039
+ await cacheA.add("a", 1);
1040
+ await cacheA.getOrFail("a");
1041
+ await (0, _module_3.delay)(delayTime);
1042
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
1043
+ expect(event_?.fields.key).toBe("a");
1044
+ expect(event_?.fields.value).toBe(1);
1045
+ await unsubscribe();
1046
+ });
1047
+ });
1048
+ describe("method: add", () => {
1049
+ test("Should dispatch KeyAddedCacheEvent when key doesnt exists", async () => {
1050
+ let event_ = null;
1051
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyAddedCacheEvent, (event) => {
1052
+ event_ = event;
1053
+ });
1054
+ const ttl = _module_2.TimeSpan.fromMilliseconds(20);
1055
+ await cacheA.add("a", 1, ttl);
1056
+ await (0, _module_3.delay)(delayTime);
1057
+ expect(event_).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1058
+ expect(event_?.fields.key).toBe("a");
1059
+ expect(event_?.fields.value).toBe(1);
1060
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
1061
+ await unsubscribe();
1062
+ });
1063
+ });
1064
+ describe("method: addMany", () => {
1065
+ test("Should dispatch KeyAddedCacheEvent when key doesnt exists", async () => {
1066
+ let event_ = null;
1067
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyAddedCacheEvent, (event) => {
1068
+ event_ = event;
1069
+ });
1070
+ const ttl = _module_2.TimeSpan.fromMilliseconds(20);
1071
+ await cacheA.addMany({ a: { value: 1, ttl } });
1072
+ await (0, _module_3.delay)(delayTime);
1073
+ expect(event_).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1074
+ expect(event_?.fields.key).toBe("a");
1075
+ expect(event_?.fields.value).toBe(1);
1076
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
1077
+ await unsubscribe();
1078
+ });
1079
+ });
1080
+ describe("method: update", () => {
1081
+ test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
1082
+ let event_ = null;
1083
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyUpdatedCacheEvent, (event) => {
1084
+ event_ = event;
1085
+ });
1086
+ await cacheA.add("a", 1);
1087
+ await cacheA.update("a", 2);
1088
+ await (0, _module_3.delay)(delayTime);
1089
+ expect(event_).toBeInstanceOf(_module_1.KeyUpdatedCacheEvent);
1090
+ expect(event_?.fields.key).toBe("a");
1091
+ expect(event_?.fields.value).toBe(2);
1092
+ await unsubscribe();
1093
+ });
1094
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1095
+ let event_ = null;
1096
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1097
+ event_ = event;
1098
+ });
1099
+ await cacheA.update("a", 2);
1100
+ await (0, _module_3.delay)(delayTime);
1101
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1102
+ expect(event_?.fields.key).toBe("a");
1103
+ await unsubscribe();
1104
+ });
1105
+ });
1106
+ describe("method: updateMany", () => {
1107
+ test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
1108
+ let event_ = null;
1109
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyUpdatedCacheEvent, (event) => {
1110
+ event_ = event;
1111
+ });
1112
+ await cacheA.add("a", 1);
1113
+ await cacheA.updateMany({ a: 2 });
1114
+ await (0, _module_3.delay)(delayTime);
1115
+ expect(event_).toBeInstanceOf(_module_1.KeyUpdatedCacheEvent);
1116
+ expect(event_?.fields.key).toBe("a");
1117
+ expect(event_?.fields.value).toBe(2);
1118
+ await unsubscribe();
1119
+ });
1120
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1121
+ let event_ = null;
1122
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1123
+ event_ = event;
1124
+ });
1125
+ await cacheA.updateMany({ a: 2 });
1126
+ await (0, _module_3.delay)(delayTime);
1127
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1128
+ expect(event_?.fields.key).toBe("a");
1129
+ await unsubscribe();
1130
+ });
1131
+ });
1132
+ describe("method: put", () => {
1133
+ test("Should dispatch KeyAddedCacheEvent when key doesnt exists", async () => {
1134
+ let event_ = null;
1135
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyAddedCacheEvent, (event) => {
1136
+ event_ = event;
1137
+ });
1138
+ const ttl = _module_2.TimeSpan.fromMilliseconds(20);
1139
+ await cacheA.put("a", 1, ttl);
1140
+ await (0, _module_3.delay)(delayTime);
1141
+ expect(event_).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1142
+ expect(event_?.fields.key).toBe("a");
1143
+ expect(event_?.fields.value).toBe(1);
1144
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
1145
+ await unsubscribe();
1146
+ });
1147
+ test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
1148
+ let event_ = null;
1149
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyUpdatedCacheEvent, (event) => {
1150
+ event_ = event;
1151
+ });
1152
+ await cacheA.put("a", 1);
1153
+ await cacheA.put("a", 2);
1154
+ await (0, _module_3.delay)(delayTime);
1155
+ expect(event_).toBeInstanceOf(_module_1.KeyUpdatedCacheEvent);
1156
+ expect(event_?.fields.key).toBe("a");
1157
+ expect(event_?.fields.value).toBe(2);
1158
+ await unsubscribe();
1159
+ });
1160
+ });
1161
+ describe("method: putMany", () => {
1162
+ test("Should dispatch KeyAddedCacheEvent when key exists", async () => {
1163
+ let event_ = null;
1164
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyAddedCacheEvent, (event) => {
1165
+ event_ = event;
1166
+ });
1167
+ const ttl = _module_2.TimeSpan.fromMilliseconds(20);
1168
+ await cacheA.putMany({ a: { value: 1, ttl } });
1169
+ await (0, _module_3.delay)(delayTime);
1170
+ expect(event_).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1171
+ expect(event_?.fields.key).toBe("a");
1172
+ expect(event_?.fields.value).toBe(1);
1173
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
1174
+ await unsubscribe();
1175
+ });
1176
+ test("Should dispatch KeyUpdatedCacheEvent when key exists", async () => {
1177
+ let event_ = null;
1178
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyUpdatedCacheEvent, (event) => {
1179
+ event_ = event;
1180
+ });
1181
+ const ttl = _module_2.TimeSpan.fromMilliseconds(20);
1182
+ await cacheA.putMany({ a: { value: 1, ttl } });
1183
+ await cacheA.putMany({ a: { value: 2, ttl } });
1184
+ await (0, _module_3.delay)(delayTime);
1185
+ expect(event_).toBeInstanceOf(_module_1.KeyUpdatedCacheEvent);
1186
+ expect(event_?.fields.key).toBe("a");
1187
+ expect(event_?.fields.value).toBe(2);
1188
+ await unsubscribe();
1189
+ });
1190
+ });
1191
+ describe("method: remove", () => {
1192
+ test("Should dispatch KeyRemovedCacheEvent when key exists", async () => {
1193
+ let event_ = null;
1194
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyRemovedCacheEvent, (event) => {
1195
+ event_ = event;
1196
+ });
1197
+ await cacheA.add("a", 1);
1198
+ await cacheA.remove("a");
1199
+ await (0, _module_3.delay)(delayTime);
1200
+ expect(event_).toBeInstanceOf(_module_1.KeyRemovedCacheEvent);
1201
+ expect(event_?.fields.key).toBe("a");
1202
+ await unsubscribe();
1203
+ });
1204
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1205
+ let event_ = null;
1206
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1207
+ event_ = event;
1208
+ });
1209
+ await cacheA.remove("a");
1210
+ await (0, _module_3.delay)(delayTime);
1211
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1212
+ expect(event_?.fields.key).toBe("a");
1213
+ await unsubscribe();
1214
+ });
1215
+ });
1216
+ describe("method: removeMany", () => {
1217
+ test("Should dispatch KeyRemovedCacheEvent when key doesnt exists", async () => {
1218
+ let event_ = null;
1219
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyRemovedCacheEvent, (event) => {
1220
+ event_ = event;
1221
+ });
1222
+ await cacheA.add("a", 1);
1223
+ await cacheA.removeMany(["a"]);
1224
+ await (0, _module_3.delay)(delayTime);
1225
+ expect(event_).toBeInstanceOf(_module_1.KeyRemovedCacheEvent);
1226
+ expect(event_?.fields.key).toBe("a");
1227
+ await unsubscribe();
1228
+ });
1229
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1230
+ let event_ = null;
1231
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1232
+ event_ = event;
1233
+ });
1234
+ await cacheA.removeMany(["a"]);
1235
+ await (0, _module_3.delay)(delayTime);
1236
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1237
+ expect(event_?.fields.key).toBe("a");
1238
+ await unsubscribe();
1239
+ });
1240
+ });
1241
+ describe("method: getAndRemove", () => {
1242
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1243
+ let event_ = null;
1244
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1245
+ event_ = event;
1246
+ });
1247
+ await cacheA.getAndRemove("a");
1248
+ await (0, _module_3.delay)(delayTime);
1249
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1250
+ expect(event_?.fields.key).toBe("a");
1251
+ await unsubscribe();
1252
+ });
1253
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
1254
+ let event_ = null;
1255
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
1256
+ event_ = event;
1257
+ });
1258
+ await cacheA.add("a", 1);
1259
+ await cacheA.getAndRemove("a");
1260
+ await (0, _module_3.delay)(delayTime);
1261
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
1262
+ expect(event_?.fields.key).toBe("a");
1263
+ expect(event_?.fields.value).toBe(1);
1264
+ await unsubscribe();
1265
+ });
1266
+ test("Should dispatch KeyRemovedCacheEvent when key exists", async () => {
1267
+ let event_ = null;
1268
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyRemovedCacheEvent, (event) => {
1269
+ event_ = event;
1270
+ });
1271
+ await cacheA.add("a", 1);
1272
+ await cacheA.getAndRemove("a");
1273
+ await (0, _module_3.delay)(delayTime);
1274
+ expect(event_).toBeInstanceOf(_module_1.KeyRemovedCacheEvent);
1275
+ expect(event_?.fields.key).toBe("a");
1276
+ await unsubscribe();
1277
+ });
1278
+ });
1279
+ describe("method: getOrAdd", () => {
1280
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1281
+ let event_ = null;
1282
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1283
+ event_ = event;
1284
+ });
1285
+ await cacheA.getOrAdd("a", 1);
1286
+ await (0, _module_3.delay)(delayTime);
1287
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1288
+ expect(event_?.fields.key).toBe("a");
1289
+ await unsubscribe();
1290
+ });
1291
+ test("Should dispatch KeyFoundCacheEvent when key exists", async () => {
1292
+ let event_ = null;
1293
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyFoundCacheEvent, (event) => {
1294
+ event_ = event;
1295
+ });
1296
+ await cacheA.add("a", 1);
1297
+ await cacheA.getOrAdd("a", 1);
1298
+ await (0, _module_3.delay)(delayTime);
1299
+ expect(event_).toBeInstanceOf(_module_1.KeyFoundCacheEvent);
1300
+ expect(event_?.fields.key).toBe("a");
1301
+ expect(event_?.fields.value).toBe(1);
1302
+ await unsubscribe();
1303
+ });
1304
+ test("Should dispatch KeyAddedCacheEvent when key exists", async () => {
1305
+ let event_ = null;
1306
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyAddedCacheEvent, (event) => {
1307
+ event_ = event;
1308
+ });
1309
+ const ttl = _module_2.TimeSpan.fromMilliseconds(50);
1310
+ await cacheA.getOrAdd("a", 1, ttl);
1311
+ await (0, _module_3.delay)(delayTime);
1312
+ expect(event_).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1313
+ expect(event_?.fields.key).toBe("a");
1314
+ expect(event_?.fields.value).toBe(1);
1315
+ expect(event_?.fields.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
1316
+ await unsubscribe();
1317
+ });
1318
+ });
1319
+ describe("method: increment", () => {
1320
+ test("Should dispatch KeyIncrementedCacheEvent when key exists", async () => {
1321
+ let event_ = null;
1322
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyIncrementedCacheEvent, (event) => {
1323
+ event_ = event;
1324
+ });
1325
+ await cacheA.add("a", 1);
1326
+ await cacheA.increment("a", 1);
1327
+ await (0, _module_3.delay)(delayTime);
1328
+ expect(event_).toBeInstanceOf(_module_1.KeyIncrementedCacheEvent);
1329
+ expect(event_?.fields.key).toBe("a");
1330
+ expect(event_?.fields.value).toBe(1);
1331
+ await unsubscribe();
1332
+ });
1333
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1334
+ let event_ = null;
1335
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1336
+ event_ = event;
1337
+ });
1338
+ await cacheA.increment("a", 1);
1339
+ await (0, _module_3.delay)(delayTime);
1340
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1341
+ expect(event_?.fields.key).toBe("a");
1342
+ await unsubscribe();
1343
+ });
1344
+ });
1345
+ describe("method: decrement", () => {
1346
+ test("Should dispatch KeyDecrementedCacheEvent when key exists", async () => {
1347
+ let event_ = null;
1348
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyDecrementedCacheEvent, (event) => {
1349
+ event_ = event;
1350
+ });
1351
+ await cacheA.add("a", 1);
1352
+ await cacheA.decrement("a", 1);
1353
+ await (0, _module_3.delay)(delayTime);
1354
+ expect(event_).toBeInstanceOf(_module_1.KeyDecrementedCacheEvent);
1355
+ expect(event_?.fields.key).toBe("a");
1356
+ expect(event_?.fields.value).toBe(1);
1357
+ await unsubscribe();
1358
+ });
1359
+ test("Should dispatch KeyNotFoundCacheEvent when key doesnt exists", async () => {
1360
+ let event_ = null;
1361
+ const unsubscribe = await cacheA.subscribe(_module_1.KeyNotFoundCacheEvent, (event) => {
1362
+ event_ = event;
1363
+ });
1364
+ await cacheA.decrement("a", 1);
1365
+ await (0, _module_3.delay)(delayTime);
1366
+ expect(event_).toBeInstanceOf(_module_1.KeyNotFoundCacheEvent);
1367
+ expect(event_?.fields.key).toBe("a");
1368
+ await unsubscribe();
1369
+ });
1370
+ });
1371
+ describe("method: clear", () => {
1372
+ test("Should dispatch KeysClearedCacheEvent when key doesnt exists", async () => {
1373
+ let event_ = null;
1374
+ const unsubscribe = await cacheA.subscribe(_module_1.KeysClearedCacheEvent, (event) => {
1375
+ event_ = event;
1376
+ });
1377
+ await cacheA.addMany({
1378
+ a: { value: 1 },
1379
+ b: { value: 2 },
1380
+ c: { value: 3 },
1381
+ });
1382
+ await cacheA.clear();
1383
+ await (0, _module_3.delay)(delayTime);
1384
+ expect(event_).toBeInstanceOf(_module_1.KeysClearedCacheEvent);
1385
+ await unsubscribe();
1386
+ });
1387
+ });
1388
+ });
808
1389
  describe("Group tests:", () => {
809
1390
  test("method: exists", async () => {
810
1391
  await cacheA.put("a", 1);
@@ -1026,6 +1607,96 @@ function cacheTestSuite(settings) {
1026
1607
  b: 2,
1027
1608
  });
1028
1609
  });
1610
+ test("method: addListener / dispatch", async () => {
1611
+ let result_a = null;
1612
+ await cacheA.addListener(_module_1.KeyAddedCacheEvent, (event) => {
1613
+ result_a = event;
1614
+ });
1615
+ let result_b = null;
1616
+ await cacheB.addListener(_module_1.KeyAddedCacheEvent, (event) => {
1617
+ result_b = event;
1618
+ });
1619
+ await cacheA.add("a", 1);
1620
+ expect(result_a).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1621
+ expect(result_b).toBeNull();
1622
+ });
1623
+ test("method: addListenerMany / dispatch", async () => {
1624
+ let result_a = null;
1625
+ await cacheA.addListenerMany([_module_1.KeyAddedCacheEvent], (event) => {
1626
+ result_a = event;
1627
+ });
1628
+ let result_b = null;
1629
+ await cacheB.addListenerMany([_module_1.KeyAddedCacheEvent], (event) => {
1630
+ result_b = event;
1631
+ });
1632
+ await cacheA.add("a", 1);
1633
+ expect(result_a).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1634
+ expect(result_b).toBeNull();
1635
+ });
1636
+ test("method: removeListener / addListener / dispatch", async () => {
1637
+ let result_a = null;
1638
+ await cacheA.addListener(_module_1.KeyAddedCacheEvent, (event) => {
1639
+ result_a = event;
1640
+ });
1641
+ let result_b = null;
1642
+ const listenerB = (event) => {
1643
+ result_b = event;
1644
+ };
1645
+ await cacheB.addListener(_module_1.KeyAddedCacheEvent, listenerB);
1646
+ await cacheB.removeListener(_module_1.KeyAddedCacheEvent, listenerB);
1647
+ await cacheA.add("a", 1);
1648
+ await cacheB.add("a", 1);
1649
+ expect(result_a).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1650
+ expect(result_b).toBeNull();
1651
+ });
1652
+ test("method: removeListenerMany / addListener / dispatch", async () => {
1653
+ let result_a = null;
1654
+ await cacheA.addListener(_module_1.KeyAddedCacheEvent, (event) => {
1655
+ result_a = event;
1656
+ });
1657
+ let result_b = null;
1658
+ const listenerB = (event) => {
1659
+ result_b = event;
1660
+ };
1661
+ await cacheB.addListener(_module_1.KeyAddedCacheEvent, listenerB);
1662
+ await cacheB.removeListenerMany([_module_1.KeyAddedCacheEvent], listenerB);
1663
+ await cacheA.add("a", 1);
1664
+ await cacheB.add("a", 1);
1665
+ expect(result_a).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1666
+ expect(result_b).toBeNull();
1667
+ });
1668
+ test("method: subscribe / dispatch", async () => {
1669
+ let result_a = null;
1670
+ await cacheA.subscribe(_module_1.KeyAddedCacheEvent, (event) => {
1671
+ result_a = event;
1672
+ });
1673
+ let result_b = null;
1674
+ const listenerB = (event) => {
1675
+ result_b = event;
1676
+ };
1677
+ const unsubscribe = await cacheB.subscribe(_module_1.KeyAddedCacheEvent, listenerB);
1678
+ await unsubscribe();
1679
+ await cacheA.add("a", 1);
1680
+ await cacheB.add("a", 1);
1681
+ expect(result_a).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1682
+ expect(result_b).toBeNull();
1683
+ });
1684
+ test("method: subscribeMany / dispatch", async () => {
1685
+ let result_a = null;
1686
+ await cacheA.subscribeMany([_module_1.KeyAddedCacheEvent], (event) => {
1687
+ result_a = event;
1688
+ });
1689
+ let result_b = null;
1690
+ const listenerB = (event) => {
1691
+ result_b = event;
1692
+ };
1693
+ const unsubscribe = await cacheB.subscribeMany([_module_1.KeyAddedCacheEvent], listenerB);
1694
+ await unsubscribe();
1695
+ await cacheA.add("a", 1);
1696
+ await cacheB.add("a", 1);
1697
+ expect(result_a).toBeInstanceOf(_module_1.KeyAddedCacheEvent);
1698
+ expect(result_b).toBeNull();
1699
+ });
1029
1700
  });
1030
1701
  }
1031
1702
  //# sourceMappingURL=cache.test-suite.js.map