@reventlessdev/reventless-local 3.0.0-alpha.249 → 3.0.0-alpha.250

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 (170) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +13 -13
  3. package/src/BakedManifest.res +5 -6
  4. package/src/EmitCapabilities.res +3 -1
  5. package/src/LocalPlatformRegistry.res +3 -1
  6. package/src/LocalPlatformStart.res +7 -6
  7. package/src/LocalSeedTarget.res +3 -1
  8. package/src/Platform.res +291 -215
  9. package/src/ShellConfig.res +10 -17
  10. package/src/UiHints.res +8 -14
  11. package/src/UiSlots.res +10 -17
  12. package/src/adapter/Api/LocalEvents_Server.res +5 -3
  13. package/src/adapter/Api/LocalGraphQL_Adapter.res +4 -4
  14. package/src/adapter/Auth/LocalAuth.res +11 -15
  15. package/src/adapter/Auth/UserStore.res +5 -7
  16. package/src/adapter/Backend.res +1 -2
  17. package/src/adapter/CommandGenerator/CommandGeneratorResolvers_GraphQL.res +42 -26
  18. package/src/adapter/CommandGenerator/InboundTranslationResolvers_GraphQL.res +13 -3
  19. package/src/adapter/CommandTopic/LocalCommandTopicChannel.res +15 -17
  20. package/src/adapter/CommandTopic/LocalCommandTopicRemoteChannel.res +18 -22
  21. package/src/adapter/Counter/LocalCounterHandler.res +1 -1
  22. package/src/adapter/DcbEventLog/DcbEventLogStorage_InMemory.res +33 -22
  23. package/src/adapter/DcbEventLog/DcbEventLogStorage_Sqlite.res +57 -57
  24. package/src/adapter/DomainGraphQL_Server.res +35 -34
  25. package/src/adapter/DomainMCP_Server.res +45 -41
  26. package/src/adapter/EventCollector/LocalEventCollectorChannel.res +47 -36
  27. package/src/adapter/EventHistory/EventHistoryResolvers_GraphQL.res +15 -12
  28. package/src/adapter/EventLog/EventLogStorage_InMemory.res +9 -4
  29. package/src/adapter/EventLog/EventLogStorage_Sqlite.res +36 -24
  30. package/src/adapter/EventTopic/LocalEventTopicPublisher.res +9 -3
  31. package/src/adapter/Heartbeat/LocalHeartbeatRunner.res +9 -14
  32. package/src/adapter/LocalBus.res +12 -12
  33. package/src/adapter/LocalCapabilities.res.mjs +1 -1
  34. package/src/adapter/LocalGeocodeResolvers.res +1 -4
  35. package/src/adapter/LocalSideEffectHandler.res +1 -1
  36. package/src/adapter/LocalStateChangeDescriptor.res +2 -1
  37. package/src/adapter/MCP_ServerInstance.res +51 -39
  38. package/src/adapter/ObjectStore/LocalObjectStore.res +5 -2
  39. package/src/adapter/ObjectStore/ObjectStoreStorage_FileSystem.res +1 -2
  40. package/src/adapter/PlatformGraphQL_Server.res +9 -5
  41. package/src/adapter/ProjectionCheckpoint.res +8 -1
  42. package/src/adapter/ProjectionPending.res +1 -3
  43. package/src/adapter/QueryDb/LocalQueryDbStorage.res +2 -1
  44. package/src/adapter/QueryDb/QueryDbResolvers_GraphQL.res +367 -269
  45. package/src/adapter/QueryDb/QueryDbStorage_InMemory.res +5 -3
  46. package/src/adapter/QueryDb/QueryDbStorage_Sqlite.res +63 -40
  47. package/src/adapter/QueryDb/SortKey_Filter.res +14 -6
  48. package/src/adapter/Runtime/LocalAggregateRuntime_Builder.res +12 -10
  49. package/src/adapter/Runtime/LocalEventCollectorRuntime_Builder.res +8 -2
  50. package/src/adapter/Runtime/LocalPluginRuntime_Builder.res +1 -4
  51. package/src/adapter/Scheduler/LocalScheduledPublisher.res +12 -12
  52. package/src/adapter/SqliteDriver.res +16 -4
  53. package/src/adapter/Task/TaskBucket_Sqlite.res +5 -6
  54. package/src/components/Aggregate_Builder.res +6 -1
  55. package/src/components/Counter_Builder.res +1 -5
  56. package/src/components/DcbEventLog_Builder.res +5 -3
  57. package/src/components/ExtensionPoint_Builder.res +13 -15
  58. package/src/components/InboundTranslationSlice_Builder.res +3 -2
  59. package/src/components/OutboundTranslationSlice_Builder.res +3 -2
  60. package/src/components/ReadModel_Builder.res +18 -20
  61. package/src/components/StateViewSlice_Builder.res +3 -2
  62. package/src/components/Task_Builder.res +12 -13
  63. package/src/reset/LocalSeedReset.res +2 -5
  64. package/src/test/Mocks/MockDcbEventLogStorage.res +5 -1
  65. package/src/test/Mocks/MockEventLogStorage.res +8 -3
  66. package/src/test/Mocks/MockQueryDbStorage.res +3 -2
  67. package/src/test/TestRunner.res +1 -1
  68. package/tests/BakedManifestFilesTest.res +7 -10
  69. package/tests/LocalEventTapTest.res +26 -21
  70. package/tests/LocalPlatformStartTest.res +33 -28
  71. package/tests/PluginEventDecodeTest.res +3 -3
  72. package/tests/ShellConfigTest.res +30 -21
  73. package/tests/SplitApiFixtures.res +34 -10
  74. package/tests/SplitApiTest.res +92 -62
  75. package/tests/adapter/BackendParityTest.res +180 -130
  76. package/tests/adapter/CollectNEventsTest.res +6 -4
  77. package/tests/adapter/CommandAuthorizationTest.res +47 -41
  78. package/tests/adapter/CommandTopicChannelTest.res +163 -139
  79. package/tests/adapter/CounterHandlerTest.res +95 -77
  80. package/tests/adapter/DcbEventLogStorageSqliteTest.res +171 -168
  81. package/tests/adapter/DcbEventLogStorageTest.res +264 -207
  82. package/tests/adapter/DomainGraphQL_ServerTest.res +53 -43
  83. package/tests/adapter/EventCollectorChannelTest.res +153 -124
  84. package/tests/adapter/EventHistoryResolverTest.res +46 -18
  85. package/tests/adapter/EventLogSnapshotParityTest.res +57 -45
  86. package/tests/adapter/EventLogStorageSqliteTest.res +9 -10
  87. package/tests/adapter/EventTapTest.res +37 -20
  88. package/tests/adapter/EventTopicPublisherTest.res +74 -50
  89. package/tests/adapter/GraphQLSubscriptionBridgeTest.res +4 -3
  90. package/tests/adapter/GraphQL_SchemaInspectorTest.res +666 -568
  91. package/tests/adapter/GraphQL_SubscriptionResolversTest.res +105 -96
  92. package/tests/adapter/HeartbeatRunnerTest.res +99 -81
  93. package/tests/adapter/InboundTranslationMutationTest.res +4 -1
  94. package/tests/adapter/LocalAuthHttpTest.res +79 -85
  95. package/tests/adapter/LocalAuthLoginTest.res +42 -50
  96. package/tests/adapter/LocalAuthTest.res +8 -16
  97. package/tests/adapter/LocalAuthUserStoreTest.res +2 -7
  98. package/tests/adapter/LocalBusBoundedTest.res +187 -117
  99. package/tests/adapter/LocalBusPubSubTest.res +118 -76
  100. package/tests/adapter/LocalDispatchContextTest.res +1 -2
  101. package/tests/adapter/LocalEvents_ServerTest.res +242 -187
  102. package/tests/adapter/PgProjectionCatchupTest.res +44 -10
  103. package/tests/adapter/ProjectionCheckpointTest.res +261 -206
  104. package/tests/adapter/QueryDbGsiTtlTest.res +123 -83
  105. package/tests/adapter/QueryDbListPushdownParityTest.res +107 -67
  106. package/tests/adapter/QueryDbListResolverTest.res +225 -208
  107. package/tests/adapter/QueryDbResolvedFieldsTest.res +17 -14
  108. package/tests/adapter/QueryDbStorageSqliteTest.res +33 -49
  109. package/tests/adapter/QueryDbStorageTest.res +163 -117
  110. package/tests/adapter/QueryDbUnionRoundTripTest.res +8 -10
  111. package/tests/adapter/QueryEngineTest.res +179 -126
  112. package/tests/adapter/ScheduledPublisherTest.res +171 -135
  113. package/tests/adapter/ServedBucketHttpTest.res +65 -59
  114. package/tests/adapter/SortKey_FilterTest.res +19 -3
  115. package/tests/adapter/SqliteDriverTest.res +13 -10
  116. package/tests/adapter/TaskBucketTest.res +94 -80
  117. package/tests/components/aggregate/AggregateTest.res +31 -18
  118. package/tests/components/automationslice/AutomationSliceCallbackTest.res +259 -222
  119. package/tests/components/automationslice/AutomationSliceFixtures.res +4 -2
  120. package/tests/components/automationslice/AutomationSliceSelfDeadlockFixtures.res +38 -38
  121. package/tests/components/automationslice/MixedSourceAutomationSliceFixtures.res +12 -14
  122. package/tests/components/automationslice/MixedSourceAutomationSliceTest.res +8 -32
  123. package/tests/components/commandgenerator/CommandGeneratorFixtures.res +7 -5
  124. package/tests/components/commandgenerator/CommandGeneratorTest.res +40 -31
  125. package/tests/components/commandtopic/CommandTopicFixtures.res +3 -4
  126. package/tests/components/commandtopic/CommandTopicStreamFixtures.res +7 -5
  127. package/tests/components/commandtopic/CommandTopicTest.res +24 -15
  128. package/tests/components/counter/CounterFixtures.res +6 -8
  129. package/tests/components/dcb/DcbCrossPartitionFixtures.res +8 -2
  130. package/tests/components/dcb/DcbCrossPartitionReadTest.res +20 -13
  131. package/tests/components/dcb/DcbEventLogAppendStreamTest.res +12 -8
  132. package/tests/components/dcb/DcbEventLogStreamTest.res +88 -61
  133. package/tests/components/dcb/DcbFixtures.res +4 -1
  134. package/tests/components/dcb/DcbTest.res +9 -6
  135. package/tests/components/eventcollector/EventCollectorFixtures.res +0 -1
  136. package/tests/components/eventcollector/EventCollectorTest.res +6 -3
  137. package/tests/components/eventlog/EventLogAppendStreamTest.res +88 -68
  138. package/tests/components/eventlog/EventLogConflictTest.res +8 -4
  139. package/tests/components/eventlog/EventLogFixtures.res +3 -3
  140. package/tests/components/eventlog/EventLogProvisioningSeamTest.res +26 -13
  141. package/tests/components/eventlog/EventLogStreamTest.res +119 -56
  142. package/tests/components/eventlog/EventLogTest.res +20 -4
  143. package/tests/components/eventtopic/EventTopicFixtures.res +3 -3
  144. package/tests/components/eventtopic/EventTopicStreamFixtures.res +1 -2
  145. package/tests/components/eventtopic/EventTopicStreamTest.res +7 -1
  146. package/tests/components/extensionpoint/ExtensionPointFixtures.res +14 -9
  147. package/tests/components/extensionpoint/ExtensionPointTest.res +3 -2
  148. package/tests/components/heartbeat/HeartbeatFixtures.res +5 -6
  149. package/tests/components/heartbeat/HeartbeatTest.res +56 -47
  150. package/tests/components/inboundtranslationslice/InboundTranslationSliceCallbackTest.res +271 -249
  151. package/tests/components/inboundtranslationslice/InboundTranslationSliceFixtures.res +3 -2
  152. package/tests/components/outboundtranslationslice/OutboundTranslationSliceCallbackTest.res +361 -276
  153. package/tests/components/outboundtranslationslice/OutboundTranslationSliceFixtures.res +8 -10
  154. package/tests/components/outboundtranslationslice/OutboundTranslationSlicePlatformFixtures.res +37 -43
  155. package/tests/components/querydb/QueryDbFixtures.res +1 -5
  156. package/tests/components/querydb/QueryDbTest.res +2 -4
  157. package/tests/components/readmodel/DcbReadModelE2EFixtures.res +15 -18
  158. package/tests/components/readmodel/MixedSourceReadModelFixtures.res +5 -7
  159. package/tests/components/readmodel/ReadModelFixtures.res +8 -8
  160. package/tests/components/scheduler/SchedulerTest.res +76 -58
  161. package/tests/components/sideeffecthandler/SideEffectHandlerFixtures.res +4 -4
  162. package/tests/components/stateviewslice/StateViewSliceDisplayNameFixtures.res +5 -7
  163. package/tests/components/stateviewslice/StateViewSliceFixtures.res +8 -6
  164. package/tests/components/stateviewslice/StateViewSliceSubIdFixtures.res +17 -11
  165. package/tests/components/stateviewslice/StateViewSliceSubIdTest.res +12 -2
  166. package/tests/components/task/TaskFixtures.res +5 -5
  167. package/tests/components/task/TaskTest.res +95 -80
  168. package/tests/plugin/PluginsProjection_GWT.res +3 -1
  169. package/tests/plugin/UiFragments_GWT.res +6 -1
  170. package/tests/reset/LocalSeedResetTest.res +1 -0
@@ -7,91 +7,105 @@ open JestGlobals
7
7
 
8
8
  describe("LocalTaskBucket", () => {
9
9
  describe("makeHandler", () => {
10
- testPromise("calls callback with eventName and key extracted from JSON object", async () => {
11
- let receivedEventName: ref<string> = ref("")
12
- let receivedKey: ref<string> = ref("")
13
- let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key) => {
14
- receivedEventName := eventName
15
- receivedKey := key
16
- []
17
- }
18
- let handler = LocalTaskBucket.makeHandler(callback)
19
- let json = JSON.Encode.object(
20
- Dict.fromArray([
21
- ("eventName", JSON.Encode.string("ObjectCreated:Put")),
22
- ("key", JSON.Encode.string("uploads/file.csv")),
23
- ]),
24
- )
25
- let _ = await handler(json, ())
26
- expect(receivedEventName.contents)->toBe("ObjectCreated:Put")
27
- expect(receivedKey.contents)->toBe("uploads/file.csv")
28
- })
10
+ testPromise(
11
+ "calls callback with eventName and key extracted from JSON object",
12
+ async () => {
13
+ let receivedEventName: ref<string> = ref("")
14
+ let receivedKey: ref<string> = ref("")
15
+ let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key) => {
16
+ receivedEventName := eventName
17
+ receivedKey := key
18
+ []
19
+ }
20
+ let handler = LocalTaskBucket.makeHandler(callback)
21
+ let json = JSON.Encode.object(
22
+ Dict.fromArray([
23
+ ("eventName", JSON.Encode.string("ObjectCreated:Put")),
24
+ ("key", JSON.Encode.string("uploads/file.csv")),
25
+ ]),
26
+ )
27
+ let _ = await handler(json, ())
28
+ expect(receivedEventName.contents)->toBe("ObjectCreated:Put")
29
+ expect(receivedKey.contents)->toBe("uploads/file.csv")
30
+ },
31
+ )
29
32
 
30
- testPromise("uses 'ObjectCreated' when JSON has no eventName field", async () => {
31
- let receivedEventName: ref<string> = ref("")
32
- let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key as _) => {
33
- receivedEventName := eventName
34
- []
35
- }
36
- let handler = LocalTaskBucket.makeHandler(callback)
37
- let json = JSON.Encode.object(
38
- Dict.fromArray([("key", JSON.Encode.string("some/path"))]),
39
- )
40
- let _ = await handler(json, ())
41
- expect(receivedEventName.contents)->toBe("ObjectCreated")
42
- })
33
+ testPromise(
34
+ "uses 'ObjectCreated' when JSON has no eventName field",
35
+ async () => {
36
+ let receivedEventName: ref<string> = ref("")
37
+ let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key as _) => {
38
+ receivedEventName := eventName
39
+ []
40
+ }
41
+ let handler = LocalTaskBucket.makeHandler(callback)
42
+ let json = JSON.Encode.object(Dict.fromArray([("key", JSON.Encode.string("some/path"))]))
43
+ let _ = await handler(json, ())
44
+ expect(receivedEventName.contents)->toBe("ObjectCreated")
45
+ },
46
+ )
43
47
 
44
- testPromise("uses empty string when JSON has no key field", async () => {
45
- let receivedKey: ref<string> = ref("initial")
46
- let callback: ReventlessCore.Task.bucketCallback = async (~eventName as _, ~key) => {
47
- receivedKey := key
48
- []
49
- }
50
- let handler = LocalTaskBucket.makeHandler(callback)
51
- let json = JSON.Encode.object(
52
- Dict.fromArray([("eventName", JSON.Encode.string("ObjectRemoved"))]),
53
- )
54
- let _ = await handler(json, ())
55
- expect(receivedKey.contents)->toBe("")
56
- })
48
+ testPromise(
49
+ "uses empty string when JSON has no key field",
50
+ async () => {
51
+ let receivedKey: ref<string> = ref("initial")
52
+ let callback: ReventlessCore.Task.bucketCallback = async (~eventName as _, ~key) => {
53
+ receivedKey := key
54
+ []
55
+ }
56
+ let handler = LocalTaskBucket.makeHandler(callback)
57
+ let json = JSON.Encode.object(
58
+ Dict.fromArray([("eventName", JSON.Encode.string("ObjectRemoved"))]),
59
+ )
60
+ let _ = await handler(json, ())
61
+ expect(receivedKey.contents)->toBe("")
62
+ },
63
+ )
57
64
 
58
- testPromise("non-object JSON uses 'ObjectCreated' and empty string for key", async () => {
59
- let receivedEventName: ref<string> = ref("")
60
- let receivedKey: ref<string> = ref("initial")
61
- let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key) => {
62
- receivedEventName := eventName
63
- receivedKey := key
64
- []
65
- }
66
- let handler = LocalTaskBucket.makeHandler(callback)
67
- let _ = await handler(JSON.Encode.string("not-an-object"), ())
68
- expect(receivedEventName.contents)->toBe("ObjectCreated")
69
- expect(receivedKey.contents)->toBe("")
70
- })
65
+ testPromise(
66
+ "non-object JSON uses 'ObjectCreated' and empty string for key",
67
+ async () => {
68
+ let receivedEventName: ref<string> = ref("")
69
+ let receivedKey: ref<string> = ref("initial")
70
+ let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key) => {
71
+ receivedEventName := eventName
72
+ receivedKey := key
73
+ []
74
+ }
75
+ let handler = LocalTaskBucket.makeHandler(callback)
76
+ let _ = await handler(JSON.Encode.string("not-an-object"), ())
77
+ expect(receivedEventName.contents)->toBe("ObjectCreated")
78
+ expect(receivedKey.contents)->toBe("")
79
+ },
80
+ )
71
81
 
72
- testPromise("non-string eventName field falls back to ObjectCreated", async () => {
73
- let receivedEventName: ref<string> = ref("")
74
- let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key as _) => {
75
- receivedEventName := eventName
76
- []
77
- }
78
- let handler = LocalTaskBucket.makeHandler(callback)
79
- let json = JSON.Encode.object(
80
- Dict.fromArray([("eventName", JSON.Encode.int(42))]),
81
- )
82
- let _ = await handler(json, ())
83
- expect(receivedEventName.contents)->toBe("ObjectCreated")
84
- })
82
+ testPromise(
83
+ "non-string eventName field falls back to ObjectCreated",
84
+ async () => {
85
+ let receivedEventName: ref<string> = ref("")
86
+ let callback: ReventlessCore.Task.bucketCallback = async (~eventName, ~key as _) => {
87
+ receivedEventName := eventName
88
+ []
89
+ }
90
+ let handler = LocalTaskBucket.makeHandler(callback)
91
+ let json = JSON.Encode.object(Dict.fromArray([("eventName", JSON.Encode.int(42))]))
92
+ let _ = await handler(json, ())
93
+ expect(receivedEventName.contents)->toBe("ObjectCreated")
94
+ },
95
+ )
85
96
 
86
- testPromise("returns task actions from callback", async () => {
87
- let callback: ReventlessCore.Task.bucketCallback = async (~eventName as _, ~key as _) => {
88
- [ReventlessCore.Task.DeleteSchedule("my-schedule")]
89
- }
90
- let handler = LocalTaskBucket.makeHandler(callback)
91
- let json = JSON.Encode.object(Dict.fromArray([]))
92
- let actions = await handler(json, ())
93
- expect(actions->Array.length)->toBe(1)
94
- })
97
+ testPromise(
98
+ "returns task actions from callback",
99
+ async () => {
100
+ let callback: ReventlessCore.Task.bucketCallback = async (~eventName as _, ~key as _) => {
101
+ [ReventlessCore.Task.DeleteSchedule("my-schedule")]
102
+ }
103
+ let handler = LocalTaskBucket.makeHandler(callback)
104
+ let json = JSON.Encode.object(Dict.fromArray([]))
105
+ let actions = await handler(json, ())
106
+ expect(actions->Array.length)->toBe(1)
107
+ },
108
+ )
95
109
  })
96
110
 
97
111
  describe("make", () => {
@@ -9,12 +9,18 @@ describe("LocalBus", () => {
9
9
  testPromise("publishes events to all subscribers", async () => {
10
10
  module TestBus = LocalBus.Make()
11
11
  let count: ref<int> = ref(0)
12
- TestBus.subscribeToEvents("t1", async (_, _, _) => {
13
- count := count.contents + 1
14
- })
15
- TestBus.subscribeToEvents("t1", async (_, _, _) => {
16
- count := count.contents + 1
17
- })
12
+ TestBus.subscribeToEvents(
13
+ "t1",
14
+ async (_, _, _) => {
15
+ count := count.contents + 1
16
+ },
17
+ )
18
+ TestBus.subscribeToEvents(
19
+ "t1",
20
+ async (_, _, _) => {
21
+ count := count.contents + 1
22
+ },
23
+ )
18
24
  await TestBus.publishEvent("t1", "memory:InMemory", testMeta, JSON.Null)
19
25
  expect(count.contents)->toBe(2)
20
26
  })
@@ -22,12 +28,16 @@ describe("LocalBus", () => {
22
28
  testPromise("dispatches commands to registered handler", async () => {
23
29
  module TestBus = LocalBus.Make()
24
30
  let received: ref<option<string>> = ref(None)
25
- TestBus.registerCommandHandler("cmd1", async (json, _) => {
26
- received := switch json {
27
- | JSON.String(s) => Some(s)
28
- | _ => None
29
- }
30
- })
31
+ TestBus.registerCommandHandler(
32
+ "cmd1",
33
+ async (json, _) => {
34
+ received :=
35
+ switch json {
36
+ | JSON.String(s) => Some(s)
37
+ | _ => None
38
+ }
39
+ },
40
+ )
31
41
  await TestBus.dispatchCommand("cmd1", JSON.Encode.string("hello"))
32
42
  expect(received.contents)->toEqual(Some("hello"))
33
43
  })
@@ -35,9 +45,12 @@ describe("LocalBus", () => {
35
45
  testPromise("reset clears all handlers and subscribers", async () => {
36
46
  module TestBus = LocalBus.Make()
37
47
  let count: ref<int> = ref(0)
38
- TestBus.subscribeToEvents("topic", async (_, _, _) => {
39
- count := count.contents + 1
40
- })
48
+ TestBus.subscribeToEvents(
49
+ "topic",
50
+ async (_, _, _) => {
51
+ count := count.contents + 1
52
+ },
53
+ )
41
54
  TestBus.reset()
42
55
  // After reset, no subscribers — this just verifies no crash
43
56
  expect(count.contents)->toBe(0)
@@ -91,7 +104,7 @@ describe("Aggregate E2E", () => {
91
104
  {
92
105
  Reventless.Message.id: "item-1",
93
106
  meta: testMeta,
94
- commandJson: commandJson,
107
+ commandJson,
95
108
  },
96
109
  ])
97
110
  expect(capturedEventCount.contents)->toBe(1)
@@ -106,7 +119,7 @@ describe("Aggregate E2E", () => {
106
119
  {
107
120
  Reventless.Message.id: "item-1",
108
121
  meta: testMeta,
109
- commandJson: commandJson,
122
+ commandJson,
110
123
  },
111
124
  ])
112
125
  // AlreadyExists error → no events generated → no bus publish
@@ -121,7 +134,7 @@ describe("Aggregate E2E", () => {
121
134
  {
122
135
  Reventless.Message.id: "item-2",
123
136
  meta: testMeta,
124
- commandJson: commandJson,
137
+ commandJson,
125
138
  },
126
139
  ])
127
140
  expect(capturedEventCount.contents)->toBe(1)