






















@@ -408,7 +408,7 @@ function expectArgMenuLayout(respond: ReturnType<typeof vi.fn>): {
408408elements?: Array<{ type?: string; action_id?: string; confirm?: unknown }>;
409409} {
410410expect(respond).toHaveBeenCalledTimes(1);
411-const payload = respond.mock.calls[0]?.[0] as { blocks?: Array<{ type: string }> };
411+const payload = respond.mock.calls.at(0)?.[0] as { blocks?: Array<{ type: string }> };
412412expect(payload.blocks?.[0]?.type).toBe("header");
413413expect(payload.blocks?.[1]?.type).toBe("section");
414414expect(payload.blocks?.[2]?.type).toBe("context");
@@ -421,7 +421,7 @@ function expectArgMenuLayout(respond: ReturnType<typeof vi.fn>): {
421421422422function expectSingleDispatchedSlashBody(expectedBody: string) {
423423expect(dispatchMock).toHaveBeenCalledTimes(1);
424-const call = dispatchMock.mock.calls[0]?.[0] as { ctx?: { Body?: string } };
424+const call = dispatchMock.mock.calls.at(0)?.[0] as { ctx?: { Body?: string } };
425425expect(call.ctx?.Body).toBe(expectedBody);
426426}
427427@@ -437,15 +437,15 @@ async function runCommandAndResolveActionsBlock(
437437blockId?: string;
438438}> {
439439const { respond } = await runCommandHandler(handler);
440-const payload = respond.mock.calls[0]?.[0] as ActionsBlockPayload;
440+const payload = respond.mock.calls.at(0)?.[0] as ActionsBlockPayload;
441441const blockId = payload.blocks?.find((block) => block.type === "actions")?.block_id;
442442return { respond, payload, blockId };
443443}
444444445445async function getFirstActionElementFromCommand(handler: (args: unknown) => Promise<void>) {
446446const { respond } = await runCommandHandler(handler);
447447expect(respond).toHaveBeenCalledTimes(1);
448-const payload = respond.mock.calls[0]?.[0] as { blocks?: Array<{ type: string }> };
448+const payload = respond.mock.calls.at(0)?.[0] as { blocks?: Array<{ type: string }> };
449449const actions = findFirstActionsBlock(payload);
450450const element = actions?.elements?.[0];
451451if (!element) {
@@ -486,7 +486,7 @@ async function runArgMenuAction(
486486487487function firstCallPayload(mock: ReturnType<typeof vi.fn>, label: string): Record<string, unknown> {
488488expect(mock).toHaveBeenCalled();
489-const [payload] = mock.mock.calls[0] ?? [];
489+const [payload] = mock.mock.calls.at(0) ?? [];
490490if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
491491throw new Error(`expected ${label} payload`);
492492}
@@ -633,7 +633,7 @@ describe("Slack native command argument menus", () => {
633633 respond,
634634});
635635expect(respond).toHaveBeenCalledTimes(1);
636-const payload = respond.mock.calls[0]?.[0] as { blocks?: Array<{ type: string }> };
636+const payload = respond.mock.calls.at(0)?.[0] as { blocks?: Array<{ type: string }> };
637637const actionsBlock = findFirstActionsBlock(payload);
638638// Should be static_select (fallback) not external_select
639639expect(actionsBlock?.elements?.[0]?.type).toBe("static_select");
@@ -687,7 +687,7 @@ describe("Slack native command argument menus", () => {
687687it("caps large button fallback menus to Slack's block limit", async () => {
688688const { respond } = await runCommandHandler(reportHugeButtonHandler);
689689expect(respond).toHaveBeenCalledTimes(1);
690-const payload = respond.mock.calls[0]?.[0] as {
690+const payload = respond.mock.calls.at(0)?.[0] as {
691691blocks?: Array<{ type: string; elements?: unknown[] }>;
692692};
693693const actionBlocks = (payload.blocks ?? []).filter((block) => block.type === "actions");
@@ -699,7 +699,7 @@ describe("Slack native command argument menus", () => {
699699it("drops fallback buttons whose encoded values exceed Slack's button value limit", async () => {
700700const { respond } = await runCommandHandler(reportHugeValueHandler);
701701expect(respond).toHaveBeenCalledTimes(1);
702-const payload = respond.mock.calls[0]?.[0] as {
702+const payload = respond.mock.calls.at(0)?.[0] as {
703703blocks?: Array<{
704704type: string;
705705elements?: Array<{ text?: { text?: string }; value?: string }>;
@@ -747,7 +747,7 @@ describe("Slack native command argument menus", () => {
747747});
748748749749expect(dispatchMock).toHaveBeenCalledTimes(1);
750-const call = dispatchMock.mock.calls[0]?.[0] as { ctx?: { Body?: string } };
750+const call = dispatchMock.mock.calls.at(0)?.[0] as { ctx?: { Body?: string } };
751751expect(call.ctx?.Body).toBe("/usage tokens");
752752});
753753@@ -825,7 +825,7 @@ describe("Slack native command argument menus", () => {
825825});
826826827827expect(ackOptions).toHaveBeenCalledTimes(1);
828-const optionsPayload = ackOptions.mock.calls[0]?.[0] as {
828+const optionsPayload = ackOptions.mock.calls.at(0)?.[0] as {
829829options?: Array<{ text?: { text?: string }; value?: string }>;
830830};
831831const optionTexts = (optionsPayload.options ?? []).map((option) => option.text?.text ?? "");
@@ -1161,7 +1161,7 @@ describe("slack slash commands access groups", () => {
1161116111621162expect(dispatchMock).toHaveBeenCalledTimes(1);
11631163expect(responseTexts(respond)).not.toContain("You are not authorized to use this command.");
1164-const dispatchArg = dispatchMock.mock.calls[0]?.[0] as {
1164+const dispatchArg = dispatchMock.mock.calls.at(0)?.[0] as {
11651165ctx?: { CommandAuthorized?: boolean };
11661166};
11671167expect(dispatchArg?.ctx?.CommandAuthorized).toBe(true);
@@ -1185,7 +1185,7 @@ describe("slack slash commands access groups", () => {
11851185});
1186118611871187expect(dispatchMock).toHaveBeenCalledTimes(1);
1188-const dispatchArg = dispatchMock.mock.calls[0]?.[0] as {
1188+const dispatchArg = dispatchMock.mock.calls.at(0)?.[0] as {
11891189ctx?: { CommandAuthorized?: boolean };
11901190};
11911191expect(dispatchArg?.ctx?.CommandAuthorized).toBe(true);
@@ -1200,7 +1200,7 @@ describe("slack slash commands access groups", () => {
12001200await registerAndRunPolicySlash({ harness });
1201120112021202expect(dispatchMock).toHaveBeenCalledTimes(1);
1203-const dispatchArg = dispatchMock.mock.calls[0]?.[0] as {
1203+const dispatchArg = dispatchMock.mock.calls.at(0)?.[0] as {
12041204ctx?: { ChatType?: string; From?: string };
12051205};
12061206expect(dispatchArg?.ctx?.ChatType).toBe("group");
@@ -1229,7 +1229,7 @@ describe("slack slash command session metadata", () => {
1229122912301230expect(dispatchMock).toHaveBeenCalledTimes(1);
12311231expect(recordSessionMetaFromInboundMock).toHaveBeenCalledTimes(1);
1232-const call = recordSessionMetaFromInboundMock.mock.calls[0]?.[0] as {
1232+const call = recordSessionMetaFromInboundMock.mock.calls.at(0)?.[0] as {
12331233sessionKey?: string;
12341234ctx?: { GroupSpace?: string; OriginatingChannel?: string };
12351235};
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。