mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 14:00:47 +00:00
test: stabilize loaded full-suite checks
This commit is contained in:
@@ -5,6 +5,8 @@ import type { ClawdbotConfig, PluginRuntime, RuntimeEnv } from "../../runtime-ap
|
||||
import { setFeishuRuntime } from "../runtime.js";
|
||||
import type { ResolvedFeishuAccount } from "../types.js";
|
||||
|
||||
const FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS = 10_000;
|
||||
|
||||
type InboundDebouncerParams<T> = {
|
||||
onFlush?: (items: T[]) => Promise<void>;
|
||||
onError?: (err: unknown, items: T[]) => void;
|
||||
@@ -303,9 +305,11 @@ export async function replayFeishuLifecycleEvent(params: {
|
||||
waitForSecond?: () => void | Promise<void>;
|
||||
}) {
|
||||
await params.handler(params.event);
|
||||
await vi.waitFor(params.waitForFirst);
|
||||
await vi.waitFor(params.waitForFirst, { timeout: FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS });
|
||||
await params.handler(params.event);
|
||||
await vi.waitFor(params.waitForSecond ?? params.waitForFirst);
|
||||
await vi.waitFor(params.waitForSecond ?? params.waitForFirst, {
|
||||
timeout: FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS,
|
||||
});
|
||||
}
|
||||
|
||||
export async function runFeishuLifecycleSequence(
|
||||
@@ -314,7 +318,9 @@ export async function runFeishuLifecycleSequence(
|
||||
) {
|
||||
for (const [index, deliver] of deliveries.entries()) {
|
||||
await deliver();
|
||||
await vi.waitFor(waits[index] ?? waits.at(-1) ?? (() => {}));
|
||||
await vi.waitFor(waits[index] ?? waits.at(-1) ?? (() => {}), {
|
||||
timeout: FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,7 +347,7 @@ export async function expectFeishuReplyPipelineDedupedAcrossReplay(params: {
|
||||
createFeishuReplyDispatcherMock: ReturnType<typeof vi.fn>;
|
||||
waitTimeoutMs?: number;
|
||||
}) {
|
||||
const waitTimeoutMs = params.waitTimeoutMs;
|
||||
const waitTimeoutMs = params.waitTimeoutMs ?? FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS;
|
||||
await replayFeishuLifecycleEvent({
|
||||
handler: params.handler,
|
||||
event: params.event,
|
||||
|
||||
@@ -37,6 +37,12 @@ describe("runQaManualLane", () => {
|
||||
listenUrl: "http://127.0.0.1:43124",
|
||||
baseUrl: "http://127.0.0.1:58000",
|
||||
state: {
|
||||
reset: vi.fn(),
|
||||
addInboundMessage: vi.fn(),
|
||||
addOutboundMessage: vi.fn(),
|
||||
readMessage: vi.fn(),
|
||||
searchMessages: vi.fn(() => []),
|
||||
waitFor: vi.fn(),
|
||||
getSnapshot: () => ({
|
||||
messages: [
|
||||
{
|
||||
|
||||
@@ -93,7 +93,9 @@ describe("qa multipass runtime", () => {
|
||||
expect(script).toContain("pnpm install --frozen-lockfile");
|
||||
expect(script).toContain("pnpm build");
|
||||
expect(script).toContain("corepack prepare 'pnpm@10.32.1' --activate");
|
||||
expect(script).toContain("'pnpm' 'openclaw' 'qa' 'suite' '--provider-mode' 'mock-openai'");
|
||||
expect(script).toContain(
|
||||
"'pnpm' 'openclaw' 'qa' 'suite' '--transport' 'qa-channel' '--provider-mode' 'mock-openai'",
|
||||
);
|
||||
expect(script).toContain("'--scenario' 'channel-chat-baseline'");
|
||||
expect(script).toContain("'--scenario' 'thread-follow-up'");
|
||||
expect(script).toContain("/workspace/openclaw-host/.artifacts/qa-e2e/multipass-test");
|
||||
@@ -126,7 +128,9 @@ describe("qa multipass runtime", () => {
|
||||
);
|
||||
expect(plan.forwardedEnv.OPENAI_API_KEY).toBe("test-openai-key");
|
||||
expect(script).toContain("OPENAI_API_KEY='test-openai-key'");
|
||||
expect(script).toContain("'pnpm' 'openclaw' 'qa' 'suite' '--provider-mode' 'live-frontier'");
|
||||
expect(script).toContain(
|
||||
"'pnpm' 'openclaw' 'qa' 'suite' '--transport' 'qa-channel' '--provider-mode' 'live-frontier'",
|
||||
);
|
||||
});
|
||||
|
||||
it("redacts forwarded live secrets in the persisted artifact script", () => {
|
||||
|
||||
@@ -9,6 +9,10 @@ export {
|
||||
normalizeTelegramCommandName,
|
||||
resolveTelegramCustomCommands,
|
||||
} from "./src/command-config.js";
|
||||
export {
|
||||
listTelegramDirectoryGroupsFromConfig,
|
||||
listTelegramDirectoryPeersFromConfig,
|
||||
} from "./src/directory-config.js";
|
||||
export { parseTelegramTopicConversation } from "./src/topic-conversation.js";
|
||||
export { singleAccountKeysToMove } from "./src/setup-contract.js";
|
||||
export { mergeTelegramAccountConfig } from "./src/accounts.js";
|
||||
|
||||
Reference in New Issue
Block a user