mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-27 01:41:40 +00:00
test: speed up discord monitor suites
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import type { Client } from "@buape/carbon";
|
||||
import { MessageType } from "@buape/carbon";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import {
|
||||
dispatchMock,
|
||||
loadConfigMock,
|
||||
@@ -16,12 +16,14 @@ let createDiscordMessageHandler: typeof import("./monitor/message-handler.js").c
|
||||
let __resetDiscordChannelInfoCacheForTest: typeof import("./monitor/message-utils.js").__resetDiscordChannelInfoCacheForTest;
|
||||
let createNoopThreadBindingManager: typeof import("./monitor/thread-bindings.js").createNoopThreadBindingManager;
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
beforeAll(async () => {
|
||||
({ ChannelType } = await import("@buape/carbon"));
|
||||
({ createDiscordMessageHandler } = await import("./monitor/message-handler.js"));
|
||||
({ __resetDiscordChannelInfoCacheForTest } = await import("./monitor/message-utils.js"));
|
||||
({ createNoopThreadBindingManager } = await import("./monitor/thread-bindings.js"));
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
__resetDiscordChannelInfoCacheForTest();
|
||||
sendMock.mockClear().mockResolvedValue(undefined);
|
||||
updateLastRouteMock.mockClear();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeAll, describe, expect, it, vi } from "vitest";
|
||||
|
||||
let buildDiscordComponentCustomId: typeof import("../components.js").buildDiscordComponentCustomId;
|
||||
let buildDiscordModalCustomId: typeof import("../components.js").buildDiscordModalCustomId;
|
||||
@@ -10,8 +10,7 @@ let createDiscordComponentRoleSelect: typeof import("./agent-components.js").cre
|
||||
let createDiscordComponentStringSelect: typeof import("./agent-components.js").createDiscordComponentStringSelect;
|
||||
let createDiscordComponentUserSelect: typeof import("./agent-components.js").createDiscordComponentUserSelect;
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
beforeAll(async () => {
|
||||
({ buildDiscordComponentCustomId, buildDiscordModalCustomId } = await import("../components.js"));
|
||||
({
|
||||
createDiscordComponentButton,
|
||||
|
||||
@@ -3,7 +3,6 @@ import { beforeAll, describe, expect, it, vi } from "vitest";
|
||||
let DiscordMessageListener: typeof import("./listeners.js").DiscordMessageListener;
|
||||
|
||||
beforeAll(async () => {
|
||||
vi.resetModules();
|
||||
({ DiscordMessageListener } = await import("./listeners.js"));
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeAll, describe, expect, it, vi } from "vitest";
|
||||
import type { OpenClawConfig, loadConfig } from "../../../../src/config/config.js";
|
||||
let listNativeCommandSpecs: typeof import("../../../../src/auto-reply/commands-registry.js").listNativeCommandSpecs;
|
||||
let createDiscordNativeCommand: typeof import("./native-command.js").createDiscordNativeCommand;
|
||||
@@ -64,8 +64,7 @@ function readChoices(option: CommandOption | undefined): unknown[] | undefined {
|
||||
}
|
||||
|
||||
describe("createDiscordNativeCommand option wiring", () => {
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
beforeAll(async () => {
|
||||
({ listNativeCommandSpecs } = await import("../../../../src/auto-reply/commands-registry.js"));
|
||||
({ createDiscordNativeCommand } = await import("./native-command.js"));
|
||||
({ createNoopThreadBindingManager } = await import("./thread-bindings.js"));
|
||||
|
||||
@@ -283,7 +283,6 @@ async function expectBoundStatusCommandDispatch(params: {
|
||||
|
||||
describe("Discord native plugin command dispatch", () => {
|
||||
beforeAll(async () => {
|
||||
vi.resetModules();
|
||||
({ createDiscordNativeCommand } = await import("./native-command.js"));
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ChannelType } from "discord-api-types/v10";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import type { OpenClawConfig } from "../../../../src/config/config.js";
|
||||
import type { ThreadBindingRecord } from "./thread-bindings.types.js";
|
||||
|
||||
@@ -37,11 +37,13 @@ vi.mock("../send.js", async (importOriginal) => {
|
||||
let maybeSendBindingMessage: typeof import("./thread-bindings.discord-api.js").maybeSendBindingMessage;
|
||||
let resolveChannelIdForBinding: typeof import("./thread-bindings.discord-api.js").resolveChannelIdForBinding;
|
||||
|
||||
beforeAll(async () => {
|
||||
({ maybeSendBindingMessage, resolveChannelIdForBinding } =
|
||||
await import("./thread-bindings.discord-api.js"));
|
||||
});
|
||||
|
||||
describe("resolveChannelIdForBinding", () => {
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
({ maybeSendBindingMessage, resolveChannelIdForBinding } =
|
||||
await import("./thread-bindings.discord-api.js"));
|
||||
beforeEach(() => {
|
||||
hoisted.restGet.mockClear();
|
||||
hoisted.createDiscordRestClient.mockClear();
|
||||
hoisted.sendMessageDiscord.mockClear().mockResolvedValue({});
|
||||
@@ -127,10 +129,7 @@ describe("resolveChannelIdForBinding", () => {
|
||||
});
|
||||
|
||||
describe("maybeSendBindingMessage", () => {
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
({ maybeSendBindingMessage, resolveChannelIdForBinding } =
|
||||
await import("./thread-bindings.discord-api.js"));
|
||||
beforeEach(() => {
|
||||
hoisted.sendMessageDiscord.mockClear().mockResolvedValue({});
|
||||
hoisted.sendWebhookMessageDiscord.mockClear().mockResolvedValue({});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const hoisted = vi.hoisted(() => {
|
||||
const updateSessionStore = vi.fn();
|
||||
@@ -30,9 +30,11 @@ const MATCHED_KEY = `agent:main:discord:channel:${THREAD_ID}`;
|
||||
const UNMATCHED_KEY = `agent:main:discord:channel:${OTHER_ID}`;
|
||||
|
||||
describe("closeDiscordThreadSessions", () => {
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
beforeAll(async () => {
|
||||
({ closeDiscordThreadSessions } = await import("./thread-session-close.js"));
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
hoisted.updateSessionStore.mockClear();
|
||||
hoisted.resolveStorePath.mockClear();
|
||||
hoisted.resolveStorePath.mockReturnValue("/tmp/openclaw-sessions.json");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const hoisted = vi.hoisted(() => ({
|
||||
completeWithPreparedSimpleCompletionModelMock: vi.fn(),
|
||||
@@ -20,8 +20,11 @@ vi.mock("openclaw/plugin-sdk/agent-runtime", async (importOriginal) => {
|
||||
|
||||
let generateThreadTitle: typeof import("./thread-title.js").generateThreadTitle;
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
beforeAll(async () => {
|
||||
({ generateThreadTitle } = await import("./thread-title.js"));
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
hoisted.completeWithPreparedSimpleCompletionModelMock.mockReset();
|
||||
hoisted.prepareSimpleCompletionModelForAgentMock.mockReset();
|
||||
hoisted.extractAssistantTextMock.mockReset();
|
||||
@@ -44,7 +47,6 @@ beforeEach(async () => {
|
||||
});
|
||||
hoisted.completeWithPreparedSimpleCompletionModelMock.mockResolvedValue({});
|
||||
hoisted.extractAssistantTextMock.mockReturnValue("Generated title");
|
||||
({ generateThreadTitle } = await import("./thread-title.js"));
|
||||
});
|
||||
|
||||
describe("generateThreadTitle", () => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ChannelType } from "@buape/carbon";
|
||||
import { describe, it, expect, vi, beforeEach } from "vitest";
|
||||
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import type { OpenClawConfig } from "../../../../src/config/config.js";
|
||||
type MaybeCreateDiscordAutoThreadFn = typeof import("./threading.js").maybeCreateDiscordAutoThread;
|
||||
|
||||
@@ -46,8 +46,7 @@ async function flushAsyncWork() {
|
||||
await Promise.resolve();
|
||||
}
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.resetModules();
|
||||
beforeAll(async () => {
|
||||
postMock.mockReset();
|
||||
getMock.mockReset();
|
||||
patchMock.mockReset();
|
||||
@@ -55,6 +54,13 @@ beforeEach(async () => {
|
||||
({ maybeCreateDiscordAutoThread } = await import("./threading.js"));
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
postMock.mockReset();
|
||||
getMock.mockReset();
|
||||
patchMock.mockReset();
|
||||
generateThreadTitleMock.mockReset();
|
||||
});
|
||||
|
||||
describe("maybeCreateDiscordAutoThread", () => {
|
||||
it("skips auto-thread if channelType is GuildForum", async () => {
|
||||
const result = await maybeCreateDiscordAutoThread(
|
||||
|
||||
Reference in New Issue
Block a user