mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
b5d5ec340f
* feat(cloud-workers): add desktop apps and browser autonomy provider-attested Browser/Terminal launchers, shared visible loopback CDP Browser tool, no MCP/cookies/generic command. * feat(ui): add cloud desktop app launcher * docs(gateway): document cloud desktop apps and browser autonomy * perf(ui): trim desktop launcher startup copy * refactor(ui): simplify desktop launch feedback * perf(ui): reuse desktop app labels * fix(ui): keep desktop launch failures actionable * fix(crabbox): allow browser bootstrap to finish * fix(cloud-workers): honor provider provision budgets * fix(cloud-workers): persist browser screenshot receipts * fix(cloud-workers): bound browser screenshot lifecycle * fix(cloud-workers): avoid replaying desktop launches * test(cloud-workers): isolate browser runtime integration * refactor(cloud-workers): tighten desktop runtime boundaries * test(cloud-workers): keep browser runtime mock synchronous * fix(cloud-workers): break gateway type import cycle * fix(ci): settle admitted setup sessions in tests * build(plugin-sdk): refresh desktop app contract * ci: refresh merge-tree validation * build(plugin-sdk): regenerate desktop app baseline * style(gateway): format merged method order test
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
// Gateway startup advertisement tests for the cloud-worker Desktop Labs gate.
|
|
import { describe, expect, it } from "vitest";
|
|
import { writeConfigFile } from "../config/config.js";
|
|
import { connectOk, installGatewayTestHooks, startServerWithClient } from "./test-helpers.js";
|
|
|
|
installGatewayTestHooks();
|
|
|
|
describe("cloud worker desktop method advertisement", () => {
|
|
it.each([
|
|
{ desktop: undefined, advertised: false },
|
|
{ desktop: true, advertised: true },
|
|
])("advertises desktop methods only when the Labs gate is $desktop", async (testCase) => {
|
|
process.env.OPENCLAW_TEST_MINIMAL_GATEWAY = "0";
|
|
await writeConfigFile({
|
|
cloudWorkers: {
|
|
...(testCase.desktop === undefined ? {} : { desktop: testCase.desktop }),
|
|
profiles: {
|
|
development: {
|
|
provider: "test-worker-provider",
|
|
settings: {},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
const { server, ws } = await startServerWithClient(undefined, { auth: { mode: "none" } });
|
|
try {
|
|
const hello = await connectOk(ws);
|
|
const methods = (hello as { features?: { methods?: string[] } }).features?.methods ?? [];
|
|
|
|
expect(methods).toContain("sessions.dispatch");
|
|
expect(methods.includes("worker.desktop.observe")).toBe(testCase.advertised);
|
|
expect(methods.includes("worker.desktop.launch")).toBe(testCase.advertised);
|
|
} finally {
|
|
ws.close();
|
|
await server.close();
|
|
}
|
|
});
|
|
});
|