

























@@ -152,18 +152,16 @@ describe("message hook mappers", () => {
152152"https://example.test/ramp.jpg",
153153]);
154154expect(canonical.mediaTypes).toEqual(["image/jpeg", "image/jpeg"]);
155-expect(toPluginInboundClaimEvent(canonical)).toEqual(
156-expect.objectContaining({
157-metadata: expect.objectContaining({
158-mediaPath: "/tmp/tree.jpg",
159-mediaUrl: "https://example.test/tree.jpg",
160-mediaType: "image/jpeg",
161-mediaPaths: ["/tmp/tree.jpg", "/tmp/ramp.jpg"],
162-mediaUrls: ["https://example.test/tree.jpg", "https://example.test/ramp.jpg"],
163-mediaTypes: ["image/jpeg", "image/jpeg"],
164-}),
165-}),
166-);
155+const claimEvent = toPluginInboundClaimEvent(canonical);
156+expect(claimEvent.metadata?.mediaPath).toBe("/tmp/tree.jpg");
157+expect(claimEvent.metadata?.mediaUrl).toBe("https://example.test/tree.jpg");
158+expect(claimEvent.metadata?.mediaType).toBe("image/jpeg");
159+expect(claimEvent.metadata?.mediaPaths).toEqual(["/tmp/tree.jpg", "/tmp/ramp.jpg"]);
160+expect(claimEvent.metadata?.mediaUrls).toEqual([
161+"https://example.test/tree.jpg",
162+"https://example.test/ramp.jpg",
163+]);
164+expect(claimEvent.metadata?.mediaTypes).toEqual(["image/jpeg", "image/jpeg"]);
167165});
168166169167it("maps canonical inbound context to plugin/internal received payloads", () => {
@@ -181,6 +179,7 @@ describe("message hook mappers", () => {
181179182180const pluginContext = toPluginMessageContext(canonical);
183181const receivedEvent = toPluginMessageReceivedEvent(canonical);
182+const { metadata: receivedMetadata, ...receivedEventBase } = receivedEvent;
184183expect(pluginContext).toEqual({
185184channelId: "demo-chat",
186185accountId: "acc-1",
@@ -198,7 +197,10 @@ describe("message hook mappers", () => {
198197expect(pluginContext.trace).not.toBe(trace);
199198expect(pluginContext.trace).toEqual(trace);
200199expect(Object.isFrozen(pluginContext.trace)).toBe(true);
201-expect(receivedEvent).toEqual({
200+expect(receivedEvent.trace).not.toBe(trace);
201+expect(receivedEvent.trace).toEqual(trace);
202+expect(Object.isFrozen(receivedEvent.trace)).toBe(true);
203+expect(receivedEventBase).toEqual({
202204from: "demo-chat:user:123",
203205content: "commands-body",
204206timestamp: 1710000000,
@@ -207,34 +209,29 @@ describe("message hook mappers", () => {
207209senderId: "sender-1",
208210sessionKey: "session-1",
209211runId: "run-1",
210- trace,
212+trace: receivedEvent.trace,
211213traceId: "11111111111111111111111111111111",
212214spanId: "2222222222222222",
213215parentSpanId: "3333333333333333",
214-metadata: expect.objectContaining({
215-messageId: "msg-1",
216-senderName: "User One",
217-threadId: 42,
218-topicName: "Deployments",
219-}),
220216});
221-expect(receivedEvent.trace).not.toBe(trace);
222-expect(receivedEvent.trace).toEqual(trace);
223-expect(Object.isFrozen(receivedEvent.trace)).toBe(true);
224-expect(toInternalMessageReceivedContext(canonical)).toEqual({
217+expect(receivedMetadata?.messageId).toBe("msg-1");
218+expect(receivedMetadata?.senderName).toBe("User One");
219+expect(receivedMetadata?.threadId).toBe(42);
220+expect(receivedMetadata?.topicName).toBe("Deployments");
221+const internalReceived = toInternalMessageReceivedContext(canonical);
222+const { metadata: internalMetadata, ...internalReceivedBase } = internalReceived;
223+expect(internalReceivedBase).toEqual({
225224from: "demo-chat:user:123",
226225content: "commands-body",
227226timestamp: 1710000000,
228227channelId: "demo-chat",
229228accountId: "acc-1",
230229conversationId: "demo-chat:chat:456",
231230messageId: "msg-1",
232-metadata: expect.objectContaining({
233-senderUsername: "userone",
234-senderE164: "+15551234567",
235-topicName: "Deployments",
236-}),
237231});
232+expect(internalMetadata?.senderUsername).toBe("userone");
233+expect(internalMetadata?.senderE164).toBe("+15551234567");
234+expect(internalMetadata?.topicName).toBe("Deployments");
238235});
239236240237it("passes frozen trace copies to inbound claim and sent plugin hooks", () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。