fix(ci): stabilize windows tests

This commit is contained in:
Peter Steinberger
2026-01-08 02:44:09 +00:00
parent f3f5e49d94
commit fbeb9e6775
10 changed files with 148 additions and 62 deletions

View File

@@ -17,6 +17,44 @@ import {
installGatewayTestHooks();
describe("gateway server models + voicewake", () => {
const setTempHome = (homeDir: string) => {
const prevHome = process.env.HOME;
const prevUserProfile = process.env.USERPROFILE;
const prevHomeDrive = process.env.HOMEDRIVE;
const prevHomePath = process.env.HOMEPATH;
process.env.HOME = homeDir;
process.env.USERPROFILE = homeDir;
if (process.platform === "win32") {
const parsed = path.parse(homeDir);
process.env.HOMEDRIVE = parsed.root.replace(/\\$/, "");
process.env.HOMEPATH = homeDir.slice(Math.max(parsed.root.length - 1, 0));
}
return () => {
if (prevHome === undefined) {
delete process.env.HOME;
} else {
process.env.HOME = prevHome;
}
if (prevUserProfile === undefined) {
delete process.env.USERPROFILE;
} else {
process.env.USERPROFILE = prevUserProfile;
}
if (process.platform === "win32") {
if (prevHomeDrive === undefined) {
delete process.env.HOMEDRIVE;
} else {
process.env.HOMEDRIVE = prevHomeDrive;
}
if (prevHomePath === undefined) {
delete process.env.HOMEPATH;
} else {
process.env.HOMEPATH = prevHomePath;
}
}
};
};
test(
"voicewake.get returns defaults and voicewake.set broadcasts",
{ timeout: 15_000 },
@@ -24,8 +62,7 @@ describe("gateway server models + voicewake", () => {
const homeDir = await fs.mkdtemp(
path.join(os.tmpdir(), "clawdbot-home-"),
);
const prevHome = process.env.HOME;
process.env.HOME = homeDir;
const restoreHome = setTempHome(homeDir);
const { server, ws } = await startServerWithClient();
await connectOk(ws);
@@ -72,18 +109,13 @@ describe("gateway server models + voicewake", () => {
ws.close();
await server.close();
if (prevHome === undefined) {
delete process.env.HOME;
} else {
process.env.HOME = prevHome;
}
restoreHome();
},
);
test("pushes voicewake.changed to nodes on connect and on updates", async () => {
const homeDir = await fs.mkdtemp(path.join(os.tmpdir(), "clawdbot-home-"));
const prevHome = process.env.HOME;
process.env.HOME = homeDir;
const restoreHome = setTempHome(homeDir);
bridgeSendEvent.mockClear();
bridgeListConnected.mockReturnValue([{ nodeId: "n1" }]);
@@ -124,11 +156,7 @@ describe("gateway server models + voicewake", () => {
ws.close();
await server.close();
if (prevHome === undefined) {
delete process.env.HOME;
} else {
process.env.HOME = prevHome;
}
restoreHome();
});
test("models.list returns model catalog", async () => {