























@@ -14,6 +14,8 @@ vi.mock("@slack/web-api", () => {
14141515let createSlackWebClient: typeof import("./client.js").createSlackWebClient;
1616let createSlackWriteClient: typeof import("./client.js").createSlackWriteClient;
17+let getSlackWriteClient: typeof import("./client.js").getSlackWriteClient;
18+let clearSlackWriteClientCacheForTest: typeof import("./client.js").clearSlackWriteClientCacheForTest;
1719let resolveSlackWebClientOptions: typeof import("./client.js").resolveSlackWebClientOptions;
1820let resolveSlackWriteClientOptions: typeof import("./client.js").resolveSlackWriteClientOptions;
1921let SLACK_DEFAULT_RETRY_OPTIONS: typeof import("./client.js").SLACK_DEFAULT_RETRY_OPTIONS;
@@ -25,6 +27,8 @@ beforeAll(async () => {
2527({
2628 createSlackWebClient,
2729 createSlackWriteClient,
30+ getSlackWriteClient,
31+ clearSlackWriteClientCacheForTest,
2832 resolveSlackWebClientOptions,
2933 resolveSlackWriteClientOptions,
3034SLACK_DEFAULT_RETRY_OPTIONS,
@@ -35,6 +39,7 @@ beforeAll(async () => {
35393640beforeEach(() => {
3741WebClient.mockClear();
42+clearSlackWriteClientCacheForTest();
3843});
39444045describe("slack web client config", () => {
@@ -93,6 +98,29 @@ describe("slack web client config", () => {
9398}),
9499);
95100});
101+102+it("reuses default write clients per token", () => {
103+const first = getSlackWriteClient("xoxb-test");
104+const second = getSlackWriteClient("xoxb-test");
105+106+expect(second).toBe(first);
107+expect(WebClient).toHaveBeenCalledTimes(1);
108+expect(WebClient).toHaveBeenCalledWith(
109+"xoxb-test",
110+expect.objectContaining({
111+maxRequestConcurrency: 1,
112+retryConfig: SLACK_WRITE_RETRY_OPTIONS,
113+}),
114+);
115+});
116+117+it("keeps default write clients separated by token", () => {
118+const first = getSlackWriteClient("xoxb-one");
119+const second = getSlackWriteClient("xoxb-two");
120+121+expect(second).not.toBe(first);
122+expect(WebClient).toHaveBeenCalledTimes(2);
123+});
96124});
9712598126describe("slack proxy agent", () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。