

















@@ -313,7 +313,7 @@ function mockCallArg(mock: unknown, index: number, label: string, argIndex = 0):
313313if (!Array.isArray(calls)) {
314314throw new Error(`Expected ${label} to be a mock`);
315315}
316-const call = calls[index];
316+const call = calls.at(index);
317317if (!call) {
318318throw new Error(`Expected ${label} call ${index + 1}`);
319319}
@@ -344,6 +344,14 @@ function slackInteractionPayload(callIndex = 0): Record<string, unknown> {
344344return JSON.parse(eventText.replace("Slack interaction: ", "")) as Record<string, unknown>;
345345}
346346347+function enqueueSystemEventText(callIndex = 0): string {
348+const eventText = mockCallArg(enqueueSystemEventMock, callIndex, "enqueueSystemEvent");
349+if (typeof eventText !== "string") {
350+throw new Error("Expected Slack interaction event text");
351+}
352+return eventText;
353+}
354+347355function chatUpdateCall(app: { client: { chat: { update: unknown } } }, callIndex = 0) {
348356return requireRecord(
349357mockCallArg(app.client.chat.update, callIndex, "chat.update"),
@@ -506,8 +514,11 @@ describe("registerSlackInteractionEvents", () => {
506514});
507515508516expect(ack).toHaveBeenCalled();
509-const dispatchCalls = dispatchPluginInteractiveHandlerMock.mock.calls as unknown[][];
510-const dispatchCall = dispatchCalls[0]?.[0] as
517+const dispatchCall = mockCallArg(
518+dispatchPluginInteractiveHandlerMock,
519+0,
520+"plugin interactive dispatcher",
521+) as
511522| {
512523channel?: string;
513524data?: string;
@@ -598,7 +609,11 @@ describe("registerSlackInteractionEvents", () => {
598609},
599610});
600611601-const dispatchCall = dispatchPluginInteractiveHandlerMock.mock.calls[0]?.[0] as
612+const dispatchCall = mockCallArg(
613+dispatchPluginInteractiveHandlerMock,
614+0,
615+"plugin interactive dispatcher",
616+) as
602617| {
603618invoke?: (params: {
604619registration: { handler: (ctx: unknown) => unknown };
@@ -667,7 +682,11 @@ describe("registerSlackInteractionEvents", () => {
667682},
668683});
669684670-const dispatchCall = dispatchPluginInteractiveHandlerMock.mock.calls[0]?.[0] as
685+const dispatchCall = mockCallArg(
686+dispatchPluginInteractiveHandlerMock,
687+0,
688+"plugin interactive dispatcher",
689+) as
671690| {
672691invoke?: (params: {
673692registration: { handler: (ctx: unknown) => unknown };
@@ -1390,7 +1409,7 @@ describe("registerSlackInteractionEvents", () => {
1390140913911410expect(ack).toHaveBeenCalled();
13921411expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
1393-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
1412+const eventText = enqueueSystemEventText();
13941413const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
13951414actionType: string;
13961415selectedValues?: string[];
@@ -1747,7 +1766,7 @@ describe("registerSlackInteractionEvents", () => {
17471766threadTs: "222.111",
17481767});
17491768expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
1750-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
1769+const eventText = enqueueSystemEventText();
17511770const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
17521771channelId?: string;
17531772messageTs?: string;
@@ -1985,7 +2004,7 @@ describe("registerSlackInteractionEvents", () => {
1985200419862005expect(ack).toHaveBeenCalled();
19872006expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
1988-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2007+const eventText = enqueueSystemEventText();
19892008const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
19902009actionType: string;
19912010selectedValues?: string[];
@@ -2046,7 +2065,7 @@ describe("registerSlackInteractionEvents", () => {
2046206520472066expect(ack).toHaveBeenCalled();
20482067expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
2049-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2068+const eventText = enqueueSystemEventText();
20502069const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
20512070actionType?: string;
20522071workflowTriggerUrl?: string;
@@ -2126,7 +2145,7 @@ describe("registerSlackInteractionEvents", () => {
21262145senderId: "U777",
21272146});
21282147expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
2129-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2148+const eventText = enqueueSystemEventText();
21302149const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
21312150interactionType: string;
21322151actionId: string;
@@ -2361,7 +2380,7 @@ describe("registerSlackInteractionEvents", () => {
2361238023622381expect(ack).toHaveBeenCalled();
23632382expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
2364-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2383+const eventText = enqueueSystemEventText();
23652384const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
23662385inputs: Array<{
23672386actionId: string;
@@ -2478,7 +2497,7 @@ describe("registerSlackInteractionEvents", () => {
24782497});
2479249824802499expect(ack).toHaveBeenCalled();
2481-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2500+const eventText = enqueueSystemEventText();
24822501const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
24832502inputs: Array<{ actionId: string; richTextPreview?: string }>;
24842503};
@@ -2534,10 +2553,11 @@ describe("registerSlackInteractionEvents", () => {
25342553expect(ack).toHaveBeenCalled();
25352554expect(resolveSessionKey).not.toHaveBeenCalled();
25362555expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
2537-const [eventText, options] = enqueueSystemEventMock.mock.calls[0] as [
2538-string,
2539-{ sessionKey?: string },
2540-];
2556+const eventText = enqueueSystemEventText();
2557+const options = requireRecord(
2558+mockCallArg(enqueueSystemEventMock, 0, "enqueueSystemEvent", 1),
2559+"enqueueSystemEvent options",
2560+) as { sessionKey?: string };
25412561const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
25422562interactionType: string;
25432563actionId: string;
@@ -2596,7 +2616,7 @@ describe("registerSlackInteractionEvents", () => {
2596261625972617expect(ack).toHaveBeenCalled();
25982618expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
2599-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2619+const eventText = enqueueSystemEventText();
26002620const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
26012621interactionType: string;
26022622isCleared?: boolean;
@@ -2651,7 +2671,7 @@ describe("registerSlackInteractionEvents", () => {
2651267126522672expect(ack).toHaveBeenCalled();
26532673expect(enqueueSystemEventMock).toHaveBeenCalledTimes(1);
2654-const [eventText] = enqueueSystemEventMock.mock.calls[0] as [string];
2674+const eventText = enqueueSystemEventText();
26552675expect(eventText.length).toBeLessThanOrEqual(2400);
26562676const payload = JSON.parse(eventText.replace("Slack interaction: ", "")) as {
26572677payloadTruncated?: boolean;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。