




















@@ -9,11 +9,16 @@ import { createHookRunner } from "../../plugins/hooks.js";
99import { addTestHook } from "../../plugins/hooks.test-helpers.js";
1010import { createEmptyPluginRegistry } from "../../plugins/registry.js";
1111import {
12+pinActivePluginChannelRegistry,
1213releasePinnedPluginChannelRegistry,
1314setActivePluginRegistry,
1415} from "../../plugins/runtime.js";
1516import type { PluginHookRegistration } from "../../plugins/types.js";
16-import { createOutboundTestPlugin, createTestRegistry } from "../../test-utils/channel-plugins.js";
17+import {
18+createChannelTestPluginBase,
19+createOutboundTestPlugin,
20+createTestRegistry,
21+} from "../../test-utils/channel-plugins.js";
1722import { createInternalHookEventPayload } from "../../test-utils/internal-hook-event-payload.js";
1823import {
1924onInternalDiagnosticEvent,
@@ -318,6 +323,43 @@ describe("deliverOutboundPayloads", () => {
318323setActivePluginRegistry(emptyRegistry);
319324});
320325326+it("delivers through full active plugin when pinned setup channel has no sender", async () => {
327+const sendMatrix = vi.fn().mockResolvedValue({ messageId: "m1", roomId: "!room:example" });
328+const setupRegistry = createTestRegistry([
329+{
330+pluginId: "matrix",
331+source: "setup",
332+plugin: createChannelTestPluginBase({ id: "matrix" }),
333+},
334+]);
335+const runtimeRegistry = createTestRegistry([
336+{
337+pluginId: "matrix",
338+source: "runtime",
339+plugin: createOutboundTestPlugin({ id: "matrix", outbound: matrixOutboundForTest }),
340+},
341+]);
342+343+setActivePluginRegistry(setupRegistry);
344+pinActivePluginChannelRegistry(setupRegistry);
345+setActivePluginRegistry(runtimeRegistry);
346+347+const results = await deliverOutboundPayloads({
348+cfg: matrixChunkConfig,
349+channel: "matrix",
350+to: "!room:example",
351+payloads: [{ text: "hello from queue" }],
352+deps: { matrix: sendMatrix },
353+});
354+355+expect(sendMatrix).toHaveBeenCalledWith("!room:example", "hello from queue", {
356+cfg: matrixChunkConfig,
357+accountId: undefined,
358+gifPlayback: undefined,
359+});
360+expect(results).toEqual([{ channel: "matrix", messageId: "m1", roomId: "!room:example" }]);
361+});
362+321363it("reports unsupported durable final delivery when required capabilities are missing", async () => {
322364setActivePluginRegistry(
323365createTestRegistry([
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。