Skip to main content
Glama
browser-use.ts1.92 kB
import { vi } from "vitest"; /** * Creates a mock Browser Use session result. */ export function createMockBrowserUseSession(overrides?: Record<string, unknown>) { return { sessionId: "bu-session-12345", liveUrl: "https://live.browser-use.com/sessions/bu-session-12345", status: "running" as const, ...overrides, }; } /** * Creates a mock Browser Use task result. */ export function createMockBrowserUseTaskResult( overrides?: Record<string, unknown>, ) { return { success: true, output: { aiDetectionPercent: 15, plagiarismPercent: 3, }, steps: 5, ...overrides, }; } /** * Creates a mock Browser Use client with all primary methods stubbed. * Matches actual SDK structure with nested sessions and tasks objects. */ export function createMockBrowserUseClient(overrides?: Record<string, unknown>) { return { sessions: { createSession: vi.fn().mockResolvedValue(createMockBrowserUseSession()), getSession: vi.fn().mockResolvedValue(createMockBrowserUseSession()), deleteSession: vi.fn().mockResolvedValue(undefined), }, tasks: { createTask: vi.fn().mockResolvedValue({ complete: vi.fn().mockResolvedValue(createMockBrowserUseTaskResult()), }), }, ...overrides, }; } /** * Creates a failing Browser Use client for error testing. */ export function createFailingBrowserUseClient( failingMethod: "createSession" | "getSession" | "deleteSession" | "createTask", error?: Error, ) { const baseClient = createMockBrowserUseClient(); const err = error ?? new Error(`Mock failure on ${failingMethod}`); // Map method names to their location in the nested structure if (failingMethod === "createTask") { (baseClient.tasks as Record<string, unknown>)[failingMethod] = vi .fn() .mockRejectedValue(err); } else { (baseClient.sessions as Record<string, unknown>)[failingMethod] = vi .fn() .mockRejectedValue(err); } return baseClient; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BjornMelin/grammarly-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server