test: speed up slow vitest hotspots

This commit is contained in:
Peter Steinberger
2026-05-01 23:13:58 +01:00
parent 0df90d9b8d
commit bc2bb10fc1
5 changed files with 77 additions and 40 deletions

View File

@@ -1602,6 +1602,7 @@ describe("active-memory plugin", () => {
it("returns partial transcript text on timeout when the subagent has already written assistant output", async () => {
__testing.setMinimumTimeoutMsForTests(1);
__testing.setSetupGraceTimeoutMsForTests(0);
api.pluginConfig = {
agents: ["main"],
timeoutMs: 20,
@@ -1664,6 +1665,7 @@ describe("active-memory plugin", () => {
it("returns partial transcript text on timeout when transcripts are temporary by default", async () => {
__testing.setMinimumTimeoutMsForTests(1);
__testing.setSetupGraceTimeoutMsForTests(0);
api.pluginConfig = {
agents: ["main"],
timeoutMs: 20,
@@ -1719,6 +1721,7 @@ describe("active-memory plugin", () => {
it("keeps timeout status when the timeout transcript is empty", async () => {
__testing.setMinimumTimeoutMsForTests(1);
__testing.setSetupGraceTimeoutMsForTests(0);
api.pluginConfig = {
agents: ["main"],
timeoutMs: 1,
@@ -1749,6 +1752,7 @@ describe("active-memory plugin", () => {
it("keeps timeout status when the timeout transcript path does not exist", async () => {
__testing.setMinimumTimeoutMsForTests(1);
__testing.setSetupGraceTimeoutMsForTests(0);
api.pluginConfig = {
agents: ["main"],
timeoutMs: 1,

View File

@@ -270,8 +270,15 @@ describe("monitorSlackProvider tool results", () => {
await flush();
}
function expectReactionNames(names: string[]) {
expect(reactMock.mock.calls.map(([args]) => (args as { name: string }).name)).toEqual(names);
function expectReactionFlow(expected: {
startsWith: string[];
endsWith: string;
includes: string;
}) {
const names = reactMock.mock.calls.map(([args]) => (args as { name: string }).name);
expect(names.slice(0, expected.startsWith.length)).toEqual(expected.startsWith);
expect(names).toContain(expected.includes);
expect(names.at(-1)).toBe(expected.endsWith);
}
async function runDefaultMessageAndExpectSentText(expectedText: string) {
@@ -694,7 +701,11 @@ describe("monitorSlackProvider tool results", () => {
await runMentionGatedChannelMessageAndFlush();
expect(sendMock).not.toHaveBeenCalled();
expectReactionNames(["eyes", "scream", "scream"]);
expectReactionFlow({
startsWith: ["eyes", "scream"],
includes: "scream",
endsWith: "scream",
});
});
it("replies with pairing code when dmPolicy is pairing and no allowFrom is set", async () => {

View File

@@ -325,6 +325,9 @@ export function hasRuntimeAvailableProviderAuth(params: {
if (authOverride === "aws-sdk") {
return true;
}
if (authOverride === undefined && provider === "amazon-bedrock") {
return true;
}
if (
resolveEnvApiKey(provider, params.env, {
config: params.cfg,
@@ -336,10 +339,10 @@ export function hasRuntimeAvailableProviderAuth(params: {
if (resolveUsableCustomProviderApiKey({ cfg: params.cfg, provider, env: params.env })) {
return true;
}
if (resolveSyntheticLocalProviderAuth({ cfg: params.cfg, provider })) {
if (hasSyntheticLocalProviderAuthConfig({ cfg: params.cfg, provider })) {
return true;
}
if (authOverride === undefined && provider === "amazon-bedrock") {
if (resolveSyntheticLocalProviderAuth({ cfg: params.cfg, provider })) {
return true;
}
return false;

View File

@@ -29,8 +29,8 @@ describe("config doc baseline integration", () => {
}
it("is deterministic across repeated runs", async () => {
const { baseline } = await getSharedRendered();
const first = await renderConfigDocBaselineArtifacts(baseline);
const first = await getSharedRendered();
const { baseline } = first;
const second = await renderConfigDocBaselineArtifacts(baseline);
expect(second.json.combined).toBe(first.json.combined);

View File

@@ -850,43 +850,62 @@ describe("gateway server misc", () => {
if (!configPath) {
throw new Error("Missing OPENCLAW_CONFIG_PATH");
}
await fs.mkdir(path.dirname(configPath), { recursive: true });
await fs.writeFile(
configPath,
JSON.stringify(
{
channels: {
discord: {
token: "token-123",
let previousConfig: string | undefined;
try {
previousConfig = await fs.readFile(configPath, "utf-8");
} catch (err) {
if ((err as NodeJS.ErrnoException).code !== "ENOENT") {
throw err;
}
}
try {
await fs.mkdir(path.dirname(configPath), { recursive: true });
await fs.writeFile(
configPath,
JSON.stringify(
{
channels: {
discord: {
token: "token-123",
},
},
},
null,
2,
),
"utf-8",
);
await withEnvAsync(
{
OPENCLAW_TEST_MINIMAL_GATEWAY: undefined,
OPENCLAW_DISABLE_BUNDLED_PLUGINS: undefined,
OPENCLAW_BUNDLED_PLUGINS_DIR: path.resolve("extensions"),
},
null,
2,
),
"utf-8",
);
async () => {
const autoPort = await getFreePort();
const autoServer = await startGatewayServer(autoPort);
await autoServer.close();
},
);
await withEnvAsync(
{
OPENCLAW_TEST_MINIMAL_GATEWAY: undefined,
OPENCLAW_DISABLE_BUNDLED_PLUGINS: undefined,
OPENCLAW_BUNDLED_PLUGINS_DIR: path.resolve("extensions"),
},
async () => {
const autoPort = await getFreePort();
const autoServer = await startGatewayServer(autoPort);
await autoServer.close();
},
);
const updated = JSON.parse(await fs.readFile(configPath, "utf-8")) as Record<string, unknown>;
const channels = updated.channels as Record<string, unknown> | undefined;
const discord = channels?.discord as Record<string, unknown> | undefined;
expect(discord).toMatchObject({
token: "token-123",
enabled: true,
});
const updated = JSON.parse(await fs.readFile(configPath, "utf-8")) as Record<string, unknown>;
const channels = updated.channels as Record<string, unknown> | undefined;
const discord = channels?.discord as Record<string, unknown> | undefined;
expect(discord).toMatchObject({
token: "token-123",
enabled: true,
});
} finally {
if (previousConfig === undefined) {
await fs.rm(configPath, { force: true });
} else {
await fs.writeFile(configPath, previousConfig, "utf-8");
}
clearRuntimeConfigSnapshot();
clearConfigCache();
}
});
test("releases port after close", async () => {