@daiso-tech/core 0.28.0 → 0.29.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.
- package/README.md +8 -2
- package/dist/cache/implementations/derivables/cache/cache.d.ts +5 -0
- package/dist/cache/implementations/derivables/cache/cache.js +7 -0
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +37 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +37 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/event-bus/contracts/event-bus.contract.d.ts +5 -0
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +1 -0
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +28 -4
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus/listener-store.d.ts +2 -2
- package/dist/event-bus/implementations/derivables/event-bus/listener-store.js +9 -7
- package/dist/event-bus/implementations/derivables/event-bus/listener-store.js.map +1 -1
- package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +453 -4
- package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +9 -0
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +13 -4
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +2 -0
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +8 -2
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +5 -0
- package/dist/lock/implementations/derivables/lock-provider/lock.js +7 -0
- package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +1 -0
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
- package/package.json +85 -25
|
@@ -120,7 +120,7 @@ export function eventBusTestSuite(settings) {
|
|
|
120
120
|
await eventBusA.removeListener(AddEvent, listener);
|
|
121
121
|
});
|
|
122
122
|
});
|
|
123
|
-
describe("Should be null when listener removed and event is triggered", () => {
|
|
123
|
+
describe("Should be null when listener is removed and event is triggered", () => {
|
|
124
124
|
test("Object literal listener", async () => {
|
|
125
125
|
const listener = {
|
|
126
126
|
result: null,
|
|
@@ -320,7 +320,7 @@ export function eventBusTestSuite(settings) {
|
|
|
320
320
|
await eventBusA.removeListenerMany([AddEvent, SubEvent], listener);
|
|
321
321
|
});
|
|
322
322
|
});
|
|
323
|
-
describe("Should be null when listener removed and event is triggered", () => {
|
|
323
|
+
describe("Should be null when listener is removed and event is triggered", () => {
|
|
324
324
|
test("Object literal listener", async () => {
|
|
325
325
|
const listener = {
|
|
326
326
|
resultA: null,
|
|
@@ -496,7 +496,7 @@ export function eventBusTestSuite(settings) {
|
|
|
496
496
|
await unsubscribe();
|
|
497
497
|
});
|
|
498
498
|
});
|
|
499
|
-
describe("Should be null when listener removed and event is triggered", () => {
|
|
499
|
+
describe("Should be null when listener is removed by unsubscribe and event is triggered", () => {
|
|
500
500
|
test("Object literal listener", async () => {
|
|
501
501
|
const listener = {
|
|
502
502
|
result: null,
|
|
@@ -548,6 +548,58 @@ export function eventBusTestSuite(settings) {
|
|
|
548
548
|
expect(result).toBeNull();
|
|
549
549
|
});
|
|
550
550
|
});
|
|
551
|
+
describe("Should be null when listener is removed by removeListener and event is triggered", () => {
|
|
552
|
+
test("Object literal listener", async () => {
|
|
553
|
+
const listener = {
|
|
554
|
+
result: null,
|
|
555
|
+
invoke(event) {
|
|
556
|
+
this.result = event;
|
|
557
|
+
},
|
|
558
|
+
};
|
|
559
|
+
await eventBusA.subscribe(AddEvent, listener);
|
|
560
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
561
|
+
const event = new AddEvent({
|
|
562
|
+
a: 1,
|
|
563
|
+
b: 2,
|
|
564
|
+
});
|
|
565
|
+
await eventBusA.dispatch(event);
|
|
566
|
+
await LazyPromise.delay(TTL);
|
|
567
|
+
expect(listener.result).toBeNull();
|
|
568
|
+
});
|
|
569
|
+
test("Class instance listener", async () => {
|
|
570
|
+
class Listener {
|
|
571
|
+
result = null;
|
|
572
|
+
invoke(event) {
|
|
573
|
+
this.result = event;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
const listener = new Listener();
|
|
577
|
+
await eventBusA.subscribe(AddEvent, listener);
|
|
578
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
579
|
+
const event = new AddEvent({
|
|
580
|
+
a: 1,
|
|
581
|
+
b: 2,
|
|
582
|
+
});
|
|
583
|
+
await eventBusA.dispatch(event);
|
|
584
|
+
await LazyPromise.delay(TTL);
|
|
585
|
+
expect(listener.result).toBeNull();
|
|
586
|
+
});
|
|
587
|
+
test("Function listener", async () => {
|
|
588
|
+
let result = null;
|
|
589
|
+
const listener = (event) => {
|
|
590
|
+
result = event;
|
|
591
|
+
};
|
|
592
|
+
await eventBusA.subscribe(AddEvent, listener);
|
|
593
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
594
|
+
const event = new AddEvent({
|
|
595
|
+
a: 1,
|
|
596
|
+
b: 2,
|
|
597
|
+
});
|
|
598
|
+
await eventBusA.dispatch(event);
|
|
599
|
+
await LazyPromise.delay(TTL);
|
|
600
|
+
expect(result).toBeNull();
|
|
601
|
+
});
|
|
602
|
+
});
|
|
551
603
|
});
|
|
552
604
|
describe("method: subscribeMany, dispatchMany", () => {
|
|
553
605
|
describe("Should be null when listener is added and event is not triggered", () => {
|
|
@@ -696,7 +748,7 @@ export function eventBusTestSuite(settings) {
|
|
|
696
748
|
await unsubscribe();
|
|
697
749
|
});
|
|
698
750
|
});
|
|
699
|
-
describe("Should be null when listener removed and event is triggered", () => {
|
|
751
|
+
describe("Should be null when listener is removed by unsubscribe and event is triggered", () => {
|
|
700
752
|
test("Object literal listener", async () => {
|
|
701
753
|
const listener = {
|
|
702
754
|
resultA: null,
|
|
@@ -781,6 +833,332 @@ export function eventBusTestSuite(settings) {
|
|
|
781
833
|
expect(resultB).toBeNull();
|
|
782
834
|
});
|
|
783
835
|
});
|
|
836
|
+
describe("Should be null when listener is removed by removeListener and event is triggered", () => {
|
|
837
|
+
test("Object literal listener", async () => {
|
|
838
|
+
const listener = {
|
|
839
|
+
resultA: null,
|
|
840
|
+
resultB: null,
|
|
841
|
+
invoke(event) {
|
|
842
|
+
if (event instanceof AddEvent) {
|
|
843
|
+
this.resultA = event;
|
|
844
|
+
}
|
|
845
|
+
if (event instanceof SubEvent) {
|
|
846
|
+
this.resultB = event;
|
|
847
|
+
}
|
|
848
|
+
},
|
|
849
|
+
};
|
|
850
|
+
await eventBusA.subscribeMany([AddEvent, SubEvent], listener);
|
|
851
|
+
await eventBusA.removeListenerMany([AddEvent, SubEvent], listener);
|
|
852
|
+
const addEvent = new AddEvent({
|
|
853
|
+
a: 1,
|
|
854
|
+
b: 2,
|
|
855
|
+
});
|
|
856
|
+
const subEvent = new SubEvent({
|
|
857
|
+
c: 1,
|
|
858
|
+
d: 2,
|
|
859
|
+
});
|
|
860
|
+
await eventBusA.dispatchMany([addEvent, subEvent]);
|
|
861
|
+
await LazyPromise.delay(TTL);
|
|
862
|
+
expect(listener.resultA).toBeNull();
|
|
863
|
+
expect(listener.resultB).toBeNull();
|
|
864
|
+
});
|
|
865
|
+
test("Class instance listener", async () => {
|
|
866
|
+
class Listener {
|
|
867
|
+
resultA = null;
|
|
868
|
+
resultB = null;
|
|
869
|
+
invoke(event) {
|
|
870
|
+
if (event instanceof AddEvent) {
|
|
871
|
+
this.resultA = event;
|
|
872
|
+
}
|
|
873
|
+
if (event instanceof SubEvent) {
|
|
874
|
+
this.resultB = event;
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
const listener = new Listener();
|
|
879
|
+
await eventBusA.subscribeMany([AddEvent, SubEvent], listener);
|
|
880
|
+
await eventBusA.removeListenerMany([AddEvent, SubEvent], listener);
|
|
881
|
+
const addEvent = new AddEvent({
|
|
882
|
+
a: 1,
|
|
883
|
+
b: 2,
|
|
884
|
+
});
|
|
885
|
+
const subEvent = new SubEvent({
|
|
886
|
+
c: 1,
|
|
887
|
+
d: 2,
|
|
888
|
+
});
|
|
889
|
+
await eventBusA.dispatchMany([addEvent, subEvent]);
|
|
890
|
+
await LazyPromise.delay(TTL);
|
|
891
|
+
expect(listener.resultA).toBeNull();
|
|
892
|
+
expect(listener.resultB).toBeNull();
|
|
893
|
+
});
|
|
894
|
+
test("Function listener", async () => {
|
|
895
|
+
let resultA = null;
|
|
896
|
+
let resultB = null;
|
|
897
|
+
const listener = (event) => {
|
|
898
|
+
if (event instanceof AddEvent) {
|
|
899
|
+
resultA = event;
|
|
900
|
+
}
|
|
901
|
+
if (event instanceof SubEvent) {
|
|
902
|
+
resultB = event;
|
|
903
|
+
}
|
|
904
|
+
};
|
|
905
|
+
await eventBusA.subscribeMany([AddEvent, SubEvent], listener);
|
|
906
|
+
await eventBusA.removeListenerMany([AddEvent, SubEvent], listener);
|
|
907
|
+
const addEvent = new AddEvent({
|
|
908
|
+
a: 1,
|
|
909
|
+
b: 2,
|
|
910
|
+
});
|
|
911
|
+
const subEvent = new SubEvent({
|
|
912
|
+
c: 1,
|
|
913
|
+
d: 2,
|
|
914
|
+
});
|
|
915
|
+
await eventBusA.dispatchMany([addEvent, subEvent]);
|
|
916
|
+
await LazyPromise.delay(TTL);
|
|
917
|
+
expect(resultA).toBeNull();
|
|
918
|
+
expect(resultB).toBeNull();
|
|
919
|
+
});
|
|
920
|
+
});
|
|
921
|
+
});
|
|
922
|
+
describe("method: subscribeOnce", () => {
|
|
923
|
+
describe("Should be null when listener added and event is not triggered", () => {
|
|
924
|
+
test("Object literal listener", async () => {
|
|
925
|
+
const listener = {
|
|
926
|
+
result: null,
|
|
927
|
+
invoke(event) {
|
|
928
|
+
this.result = event;
|
|
929
|
+
},
|
|
930
|
+
};
|
|
931
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
932
|
+
expect(listener.result).toBeNull();
|
|
933
|
+
});
|
|
934
|
+
test("Class instance listener", async () => {
|
|
935
|
+
class Listener {
|
|
936
|
+
result = null;
|
|
937
|
+
invoke(event) {
|
|
938
|
+
this.result = event;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
const listener = new Listener();
|
|
942
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
943
|
+
expect(listener.result).toBeNull();
|
|
944
|
+
});
|
|
945
|
+
test("Function listener", async () => {
|
|
946
|
+
let result = null;
|
|
947
|
+
const listener = (event) => {
|
|
948
|
+
result = event;
|
|
949
|
+
};
|
|
950
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
951
|
+
expect(result).toBeNull();
|
|
952
|
+
});
|
|
953
|
+
});
|
|
954
|
+
describe("Should be AddEvent when listener added and event is triggered", () => {
|
|
955
|
+
test("Object literal listener", async () => {
|
|
956
|
+
const listener = {
|
|
957
|
+
result: null,
|
|
958
|
+
invoke(event) {
|
|
959
|
+
this.result = event;
|
|
960
|
+
},
|
|
961
|
+
};
|
|
962
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
963
|
+
const event = new AddEvent({
|
|
964
|
+
a: 1,
|
|
965
|
+
b: 2,
|
|
966
|
+
});
|
|
967
|
+
await eventBusA.dispatch(event);
|
|
968
|
+
await LazyPromise.delay(TTL);
|
|
969
|
+
expect(listener.result).toEqual(event);
|
|
970
|
+
expect(listener.result).toBeInstanceOf(AddEvent);
|
|
971
|
+
});
|
|
972
|
+
test("Class instance listener", async () => {
|
|
973
|
+
class Listener {
|
|
974
|
+
result = null;
|
|
975
|
+
invoke(event) {
|
|
976
|
+
this.result = event;
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
const listener = new Listener();
|
|
980
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
981
|
+
const event = new AddEvent({
|
|
982
|
+
a: 1,
|
|
983
|
+
b: 2,
|
|
984
|
+
});
|
|
985
|
+
await eventBusA.dispatch(event);
|
|
986
|
+
await LazyPromise.delay(TTL);
|
|
987
|
+
expect(listener.result).toEqual(event);
|
|
988
|
+
expect(listener.result).toBeInstanceOf(AddEvent);
|
|
989
|
+
});
|
|
990
|
+
test("Function listener", async () => {
|
|
991
|
+
let result = null;
|
|
992
|
+
const listener = (event) => {
|
|
993
|
+
result = event;
|
|
994
|
+
};
|
|
995
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
996
|
+
const event = new AddEvent({
|
|
997
|
+
a: 1,
|
|
998
|
+
b: 2,
|
|
999
|
+
});
|
|
1000
|
+
await eventBusA.dispatch(event);
|
|
1001
|
+
await LazyPromise.delay(TTL);
|
|
1002
|
+
expect(result).toEqual(event);
|
|
1003
|
+
expect(result).toBeInstanceOf(AddEvent);
|
|
1004
|
+
});
|
|
1005
|
+
});
|
|
1006
|
+
describe("Should only listen for event once", () => {
|
|
1007
|
+
test("Object literal listener", async () => {
|
|
1008
|
+
const listener = {
|
|
1009
|
+
i: 0,
|
|
1010
|
+
invoke(_event) {
|
|
1011
|
+
this.i++;
|
|
1012
|
+
},
|
|
1013
|
+
};
|
|
1014
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1015
|
+
const event = new AddEvent({
|
|
1016
|
+
a: 1,
|
|
1017
|
+
b: 2,
|
|
1018
|
+
});
|
|
1019
|
+
await eventBusA.dispatch(event);
|
|
1020
|
+
await eventBusA.dispatch(event);
|
|
1021
|
+
await LazyPromise.delay(TTL);
|
|
1022
|
+
expect(listener.i).toBe(1);
|
|
1023
|
+
});
|
|
1024
|
+
test("Class instance listener", async () => {
|
|
1025
|
+
class Listener {
|
|
1026
|
+
i = 0;
|
|
1027
|
+
invoke(_event) {
|
|
1028
|
+
this.i++;
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
const listener = new Listener();
|
|
1032
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1033
|
+
const event = new AddEvent({
|
|
1034
|
+
a: 1,
|
|
1035
|
+
b: 2,
|
|
1036
|
+
});
|
|
1037
|
+
await eventBusA.dispatch(event);
|
|
1038
|
+
await eventBusA.dispatch(event);
|
|
1039
|
+
await LazyPromise.delay(TTL);
|
|
1040
|
+
expect(listener.i).toBe(1);
|
|
1041
|
+
});
|
|
1042
|
+
test("Function listener", async () => {
|
|
1043
|
+
let i = 0;
|
|
1044
|
+
const listener = () => {
|
|
1045
|
+
i++;
|
|
1046
|
+
};
|
|
1047
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1048
|
+
const event = new AddEvent({
|
|
1049
|
+
a: 1,
|
|
1050
|
+
b: 2,
|
|
1051
|
+
});
|
|
1052
|
+
await eventBusA.dispatch(event);
|
|
1053
|
+
await eventBusA.dispatch(event);
|
|
1054
|
+
await LazyPromise.delay(TTL);
|
|
1055
|
+
expect(i).toBe(1);
|
|
1056
|
+
});
|
|
1057
|
+
});
|
|
1058
|
+
describe("Should be null when listener is removed by unsubscribe function and event is triggered", () => {
|
|
1059
|
+
test("Object literal listener", async () => {
|
|
1060
|
+
const listener = {
|
|
1061
|
+
result: null,
|
|
1062
|
+
invoke(event) {
|
|
1063
|
+
this.result = event;
|
|
1064
|
+
},
|
|
1065
|
+
};
|
|
1066
|
+
const unsubscribe = await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1067
|
+
await unsubscribe();
|
|
1068
|
+
const event = new AddEvent({
|
|
1069
|
+
a: 1,
|
|
1070
|
+
b: 2,
|
|
1071
|
+
});
|
|
1072
|
+
await eventBusA.dispatch(event);
|
|
1073
|
+
await LazyPromise.delay(TTL);
|
|
1074
|
+
expect(listener.result).toBeNull();
|
|
1075
|
+
});
|
|
1076
|
+
test("Class instance listener", async () => {
|
|
1077
|
+
class Listener {
|
|
1078
|
+
result = null;
|
|
1079
|
+
invoke(event) {
|
|
1080
|
+
this.result = event;
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
const listener = new Listener();
|
|
1084
|
+
const unsubscribe = await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1085
|
+
await unsubscribe();
|
|
1086
|
+
const event = new AddEvent({
|
|
1087
|
+
a: 1,
|
|
1088
|
+
b: 2,
|
|
1089
|
+
});
|
|
1090
|
+
await eventBusA.dispatch(event);
|
|
1091
|
+
await LazyPromise.delay(TTL);
|
|
1092
|
+
expect(listener.result).toBeNull();
|
|
1093
|
+
});
|
|
1094
|
+
test("Function listener", async () => {
|
|
1095
|
+
let result = null;
|
|
1096
|
+
const listener = (event) => {
|
|
1097
|
+
result = event;
|
|
1098
|
+
};
|
|
1099
|
+
const unsubscribe = await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1100
|
+
await unsubscribe();
|
|
1101
|
+
const event = new AddEvent({
|
|
1102
|
+
a: 1,
|
|
1103
|
+
b: 2,
|
|
1104
|
+
});
|
|
1105
|
+
await eventBusA.dispatch(event);
|
|
1106
|
+
await LazyPromise.delay(TTL);
|
|
1107
|
+
expect(result).toBeNull();
|
|
1108
|
+
});
|
|
1109
|
+
});
|
|
1110
|
+
describe("Should be null when listener is removed by removeListener method and event is triggered", () => {
|
|
1111
|
+
test("Object literal listener", async () => {
|
|
1112
|
+
const listener = {
|
|
1113
|
+
result: null,
|
|
1114
|
+
invoke(event) {
|
|
1115
|
+
this.result = event;
|
|
1116
|
+
},
|
|
1117
|
+
};
|
|
1118
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1119
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
1120
|
+
const event = new AddEvent({
|
|
1121
|
+
a: 1,
|
|
1122
|
+
b: 2,
|
|
1123
|
+
});
|
|
1124
|
+
await eventBusA.dispatch(event);
|
|
1125
|
+
await LazyPromise.delay(TTL);
|
|
1126
|
+
expect(listener.result).toBeNull();
|
|
1127
|
+
});
|
|
1128
|
+
test("Class instance listener", async () => {
|
|
1129
|
+
class Listener {
|
|
1130
|
+
result = null;
|
|
1131
|
+
invoke(event) {
|
|
1132
|
+
this.result = event;
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
const listener = new Listener();
|
|
1136
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1137
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
1138
|
+
const event = new AddEvent({
|
|
1139
|
+
a: 1,
|
|
1140
|
+
b: 2,
|
|
1141
|
+
});
|
|
1142
|
+
await eventBusA.dispatch(event);
|
|
1143
|
+
await LazyPromise.delay(TTL);
|
|
1144
|
+
expect(listener.result).toBeNull();
|
|
1145
|
+
});
|
|
1146
|
+
test("Function listener", async () => {
|
|
1147
|
+
let result = null;
|
|
1148
|
+
const listener = (event) => {
|
|
1149
|
+
result = event;
|
|
1150
|
+
};
|
|
1151
|
+
await eventBusA.subscribeOnce(AddEvent, listener);
|
|
1152
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
1153
|
+
const event = new AddEvent({
|
|
1154
|
+
a: 1,
|
|
1155
|
+
b: 2,
|
|
1156
|
+
});
|
|
1157
|
+
await eventBusA.dispatch(event);
|
|
1158
|
+
await LazyPromise.delay(TTL);
|
|
1159
|
+
expect(result).toBeNull();
|
|
1160
|
+
});
|
|
1161
|
+
});
|
|
784
1162
|
});
|
|
785
1163
|
describe("method: listenOnce", () => {
|
|
786
1164
|
describe("Should be null when listener added and event is not triggered", () => {
|
|
@@ -918,6 +1296,58 @@ export function eventBusTestSuite(settings) {
|
|
|
918
1296
|
expect(i).toBe(1);
|
|
919
1297
|
});
|
|
920
1298
|
});
|
|
1299
|
+
describe("Should be null when listener is removed and event is triggered", () => {
|
|
1300
|
+
test("Object literal listener", async () => {
|
|
1301
|
+
const listener = {
|
|
1302
|
+
result: null,
|
|
1303
|
+
invoke(event) {
|
|
1304
|
+
this.result = event;
|
|
1305
|
+
},
|
|
1306
|
+
};
|
|
1307
|
+
await eventBusA.listenOnce(AddEvent, listener);
|
|
1308
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
1309
|
+
const event = new AddEvent({
|
|
1310
|
+
a: 1,
|
|
1311
|
+
b: 2,
|
|
1312
|
+
});
|
|
1313
|
+
await eventBusA.dispatch(event);
|
|
1314
|
+
await LazyPromise.delay(TTL);
|
|
1315
|
+
expect(listener.result).toBeNull();
|
|
1316
|
+
});
|
|
1317
|
+
test("Class instance listener", async () => {
|
|
1318
|
+
class Listener {
|
|
1319
|
+
result = null;
|
|
1320
|
+
invoke(event) {
|
|
1321
|
+
this.result = event;
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
const listener = new Listener();
|
|
1325
|
+
await eventBusA.listenOnce(AddEvent, listener);
|
|
1326
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
1327
|
+
const event = new AddEvent({
|
|
1328
|
+
a: 1,
|
|
1329
|
+
b: 2,
|
|
1330
|
+
});
|
|
1331
|
+
await eventBusA.dispatch(event);
|
|
1332
|
+
await LazyPromise.delay(TTL);
|
|
1333
|
+
expect(listener.result).toBeNull();
|
|
1334
|
+
});
|
|
1335
|
+
test("Function listener", async () => {
|
|
1336
|
+
let result = null;
|
|
1337
|
+
const listener = (event) => {
|
|
1338
|
+
result = event;
|
|
1339
|
+
};
|
|
1340
|
+
await eventBusA.listenOnce(AddEvent, listener);
|
|
1341
|
+
await eventBusA.removeListener(AddEvent, listener);
|
|
1342
|
+
const event = new AddEvent({
|
|
1343
|
+
a: 1,
|
|
1344
|
+
b: 2,
|
|
1345
|
+
});
|
|
1346
|
+
await eventBusA.dispatch(event);
|
|
1347
|
+
await LazyPromise.delay(TTL);
|
|
1348
|
+
expect(result).toBeNull();
|
|
1349
|
+
});
|
|
1350
|
+
});
|
|
921
1351
|
});
|
|
922
1352
|
describe("method: asPromise", () => {
|
|
923
1353
|
test("Should be null when listener added and event is not triggered", () => {
|
|
@@ -1072,6 +1502,25 @@ export function eventBusTestSuite(settings) {
|
|
|
1072
1502
|
expect(result_a).toBeInstanceOf(AddEvent);
|
|
1073
1503
|
expect(result_b).toBeNull();
|
|
1074
1504
|
});
|
|
1505
|
+
test("method: subscribeOnce", async () => {
|
|
1506
|
+
let result_a = null;
|
|
1507
|
+
await eventBusA.subscribeOnce(AddEvent, (event) => {
|
|
1508
|
+
result_a = event;
|
|
1509
|
+
});
|
|
1510
|
+
let result_b = null;
|
|
1511
|
+
await eventBusB.subscribeOnce(AddEvent, (event) => {
|
|
1512
|
+
result_b = event;
|
|
1513
|
+
});
|
|
1514
|
+
const event = new AddEvent({
|
|
1515
|
+
a: 1,
|
|
1516
|
+
b: 2,
|
|
1517
|
+
});
|
|
1518
|
+
await eventBusA.dispatch(event);
|
|
1519
|
+
await LazyPromise.delay(TTL);
|
|
1520
|
+
expect(result_a).toEqual(event);
|
|
1521
|
+
expect(result_a).toBeInstanceOf(AddEvent);
|
|
1522
|
+
expect(result_b).toBeNull();
|
|
1523
|
+
});
|
|
1075
1524
|
test("method: listenOnce", async () => {
|
|
1076
1525
|
let result_a = null;
|
|
1077
1526
|
await eventBusA.listenOnce(AddEvent, (event) => {
|