chore: Fix types in tests 22/N.

This commit is contained in:
cpojer
2026-02-17 12:22:34 +09:00
parent 245018fd6b
commit 8d6e345338
7 changed files with 95 additions and 54 deletions

View File

@@ -87,7 +87,9 @@ describe("DiscordMessageListener", () => {
expect(handler).toHaveBeenCalledOnce();
expect(handlerResolved).toBe(false);
resolveHandler?.();
if (resolveHandler) {
resolveHandler();
}
await handlerPromise;
});
@@ -132,12 +134,15 @@ describe("DiscordMessageListener", () => {
);
vi.setSystemTime(31_000);
resolveHandler?.();
if (resolveHandler) {
resolveHandler();
}
await handlerPromise;
await Promise.resolve();
expect(logger.warn).toHaveBeenCalled();
const [, meta] = logger.warn.mock.calls[0] ?? [];
const warnMock = logger.warn as unknown as { mock: { calls: unknown[][] } };
const [, meta] = warnMock.mock.calls[0] ?? [];
expect(meta?.durationMs).toBeGreaterThanOrEqual(30_000);
} finally {
vi.useRealTimers();
@@ -935,7 +940,10 @@ describe("discord DM reaction handling", () => {
await listener.handle(data, client);
expect(resolveAgentRouteMock).toHaveBeenCalledOnce();
const routeArgs = resolveAgentRouteMock.mock.calls[0][0];
const [routeArgs] = resolveAgentRouteMock.mock.calls[0] ?? [];
if (!routeArgs) {
throw new Error("expected route arguments");
}
expect(routeArgs.peer).toEqual({ kind: "direct", id: "user-42" });
});
@@ -950,7 +958,10 @@ describe("discord DM reaction handling", () => {
await listener.handle(data, client);
expect(resolveAgentRouteMock).toHaveBeenCalledOnce();
const routeArgs = resolveAgentRouteMock.mock.calls[0][0];
const [routeArgs] = resolveAgentRouteMock.mock.calls[0] ?? [];
if (!routeArgs) {
throw new Error("expected route arguments");
}
expect(routeArgs.peer).toEqual({ kind: "group", id: "channel-1" });
});
});

View File

@@ -78,7 +78,7 @@ async function createHandler(cfg: LoadedConfig) {
const { createDiscordMessageHandler } = await import("./monitor.js");
return createDiscordMessageHandler({
cfg,
discordConfig: cfg.channels.discord,
discordConfig: cfg.channels?.discord,
accountId: "default",
token: "token",
runtime: makeRuntime(),
@@ -90,7 +90,7 @@ async function createHandler(cfg: LoadedConfig) {
replyToMode: "off",
dmEnabled: true,
groupDmEnabled: false,
guildEntries: cfg.channels.discord.guilds,
guildEntries: cfg.channels?.discord?.guilds,
});
}
@@ -275,7 +275,9 @@ describe("discord tool result dispatch", () => {
},
},
session: { store: "/tmp/openclaw-sessions.json" },
discord: { dm: { enabled: true, policy: "open" } },
channels: {
discord: { dm: { enabled: true, policy: "open" } },
},
} as ReturnType<typeof import("../config/config.js").loadConfig>;
const command = createDiscordNativeCommand({
@@ -285,9 +287,8 @@ describe("discord tool result dispatch", () => {
acceptsArgs: true,
},
cfg,
discordConfig: cfg.discord,
discordConfig: cfg.channels!.discord!,
accountId: "default",
token: "token",
sessionPrefix: "discord:slash",
ephemeralDefault: true,
});
@@ -295,7 +296,7 @@ describe("discord tool result dispatch", () => {
const reply = vi.fn().mockResolvedValue(undefined);
const followUp = vi.fn().mockResolvedValue(undefined);
await command.run({
const interaction = {
user: { id: "u1", username: "Ada", globalName: "Ada" },
channel: { type: ChannelType.DM },
guild: null,
@@ -303,7 +304,9 @@ describe("discord tool result dispatch", () => {
options: { getString: vi.fn().mockReturnValue("on") },
reply,
followUp,
});
} as unknown as Parameters<typeof command.run>[0];
await command.run(interaction);
expect(dispatchMock).toHaveBeenCalledTimes(1);
expect(reply).toHaveBeenCalledTimes(1);

View File

@@ -23,15 +23,15 @@ beforeEach(() => {
upsertPairingRequestMock.mockReset().mockResolvedValue({ code: "PAIRCODE", created: true });
});
const BASE_CFG = {
const BASE_CFG: Config = {
agents: {
defaults: {
model: "anthropic/claude-opus-4-5",
model: { primary: "anthropic/claude-opus-4-5" },
workspace: "/tmp/openclaw",
},
},
session: { store: "/tmp/openclaw-sessions.json" },
} as const;
};
const CATEGORY_GUILD_CFG = {
...BASE_CFG,
@@ -47,13 +47,13 @@ const CATEGORY_GUILD_CFG = {
},
},
routing: { allowFrom: [] },
} as Config;
} satisfies Config;
async function createDmHandler(opts: { cfg: Config; runtimeError?: (err: unknown) => void }) {
const { createDiscordMessageHandler } = await import("./monitor.js");
return createDiscordMessageHandler({
cfg: opts.cfg,
discordConfig: opts.cfg.channels.discord,
discordConfig: opts.cfg.channels?.discord,
accountId: "default",
token: "token",
runtime: {
@@ -89,7 +89,7 @@ async function createCategoryGuildHandler() {
const { createDiscordMessageHandler } = await import("./monitor.js");
return createDiscordMessageHandler({
cfg: CATEGORY_GUILD_CFG,
discordConfig: CATEGORY_GUILD_CFG.channels.discord,
discordConfig: CATEGORY_GUILD_CFG.channels?.discord,
accountId: "default",
token: "token",
runtime: {