better-chatbot / tests /helpers /create-data.ts
Bot
Initial commit for HF Spaces
05c5ed5
Raw
History Blame Contribute Delete
1.76 kB
import { Browser, BrowserContext, Page } from "@playwright/test";
import { TEST_USERS } from "../constants/test-users";
export const createMcpServer = async (
access: {
browser?: Browser;
context?: BrowserContext;
page?: Page;
},
server: {
name: string;
config?: {
command?: string;
args?: string[];
[key: string]: any;
};
visibility?: "public" | "private";
},
) => {
try {
let page: Page;
if (!access.browser && !access.page && !access.context) {
throw new Error("Browser, context, or page is required");
}
if (access.page) {
page = access.page;
}
if (access.context) {
page = await access.context.newPage();
}
if (access.browser) {
const browserContext = await access.browser.newContext({
storageState: TEST_USERS.admin.authFile,
});
page = await browserContext.newPage();
}
const response = await page!.request.post("/api/mcp", {
headers: { "Content-Type": "application/json" },
data: {
name: server.name,
config: server.config ?? {
command: "node",
args: ["tests/fixtures/test-mcp-server.js"],
},
visibility: server.visibility ?? "private",
},
timeout: 15000,
});
if (!response.ok()) {
const errorBody = await response.text();
throw new Error(
`Failed to create MCP server: Status ${response.status()} - ${errorBody}`,
);
}
const serverInfo = (await response.json()) as { id: string };
if (!serverInfo.id) {
throw new Error("Failed to create MCP server");
}
return serverInfo;
} catch (error) {
console.error("Error creating MCP server", error);
throw error;
}
};