Spaces:
Runtime error
Runtime error
| import { Browser, BrowserContext, Page } from "@playwright/test"; | |
| import { TEST_USERS } from "../constants/test-users"; | |
| export const deleteMcpServer = async ( | |
| access: { | |
| browser?: Browser; | |
| context?: BrowserContext; | |
| page?: Page; | |
| }, | |
| serverId: string, | |
| ) => { | |
| 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.delete(`/api/mcp/${serverId}`); | |
| await access.browser?.close(); | |
| await access.page?.close(); | |
| await access.context?.close(); | |
| if (!response.ok) { | |
| const responseText = await response.text(); | |
| // If server is already deleted (404), that's OK during cleanup | |
| if (response.status() === 404 || responseText.includes("not found")) { | |
| console.log(`MCP server ${serverId} already deleted or not found`); | |
| return; | |
| } | |
| console.error( | |
| "Failed to delete MCP server", | |
| response.status(), | |
| responseText, | |
| ); | |
| await access.browser?.close(); | |
| await access.page?.close(); | |
| await access.context?.close(); | |
| throw new Error("Failed to delete MCP server"); | |
| } | |
| } catch (error) { | |
| console.error("Failed to delete MCP server", error); | |
| throw error; | |
| } | |
| }; | |