mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:50:43 +00:00
test: stabilize full-suite lanes
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { Mock, vi } from "vitest";
|
||||
|
||||
type SlackHandler = (args: unknown) => Promise<void>;
|
||||
type SlackMiddleware = (args: { next: () => Promise<void> } & Record<string, unknown>) => unknown;
|
||||
type SlackProviderMonitor = (params: {
|
||||
botToken: string;
|
||||
appToken: string;
|
||||
@@ -255,12 +256,33 @@ vi.mock("@slack/bolt", () => {
|
||||
class App {
|
||||
client = slackClient;
|
||||
receiver: unknown;
|
||||
middlewares: SlackMiddleware[] = [];
|
||||
|
||||
constructor(args?: { receiver?: unknown }) {
|
||||
this.receiver = args?.receiver;
|
||||
}
|
||||
use(middleware: SlackMiddleware) {
|
||||
this.middlewares.push(middleware);
|
||||
}
|
||||
event(name: string, handler: SlackHandler) {
|
||||
handlers.set(name, handler);
|
||||
handlers.set(name, async (args: unknown) => {
|
||||
const eventArgs =
|
||||
args && typeof args === "object" && !Array.isArray(args)
|
||||
? (args as Record<string, unknown>)
|
||||
: {};
|
||||
const run = async (index: number): Promise<void> => {
|
||||
const middleware = this.middlewares[index];
|
||||
if (!middleware) {
|
||||
await handler(args);
|
||||
return;
|
||||
}
|
||||
await middleware({
|
||||
...eventArgs,
|
||||
next: () => run(index + 1),
|
||||
});
|
||||
};
|
||||
await run(0);
|
||||
});
|
||||
}
|
||||
command() {
|
||||
/* no-op */
|
||||
|
||||
@@ -65,7 +65,7 @@ process.exitCode = await runManagedCommand({
|
||||
const result = await waitForClose(runner);
|
||||
|
||||
expect(result).toEqual({ code: 143, signal: null });
|
||||
await waitFor(() => !isProcessAlive(childPid));
|
||||
await waitFor(() => !isProcessAlive(childPid), 10_000);
|
||||
} finally {
|
||||
if (runner.pid && isProcessAlive(runner.pid)) {
|
||||
process.kill(runner.pid, "SIGKILL");
|
||||
|
||||
Reference in New Issue
Block a user