













@@ -66,6 +66,12 @@ async function createWorkProfileWithConfig(params: {
6666return { result, state };
6767}
686869+function writtenBrowserConfig(): Record<string, unknown> {
70+const cfg = writeConfigFile.mock.calls[0]?.[0] as { browser?: Record<string, unknown> };
71+expect(cfg?.browser).toBeDefined();
72+return cfg.browser ?? {};
73+}
74+6975describe("BrowserProfilesService", () => {
7076beforeEach(() => {
7177vi.clearAllMocks();
@@ -135,17 +141,8 @@ describe("BrowserProfilesService", () => {
135141expect(result.cdpUrl).toBe("http://10.0.0.42:9222");
136142expect(result.cdpPort).toBe(9222);
137143expect(result.isRemote).toBe(true);
138-expect(writeConfigFile).toHaveBeenCalledWith(
139-expect.objectContaining({
140-browser: expect.objectContaining({
141-profiles: expect.objectContaining({
142-remote: expect.objectContaining({
143-cdpUrl: "http://10.0.0.42:9222",
144-}),
145-}),
146-}),
147-}),
148-);
144+const profiles = writtenBrowserConfig().profiles as Record<string, { cdpUrl?: string }>;
145+expect(profiles.remote?.cdpUrl).toBe("http://10.0.0.42:9222");
149146});
150147151148it("rejects private-network cdpUrl when strict SSRF mode is enabled", async () => {
@@ -188,23 +185,16 @@ describe("BrowserProfilesService", () => {
188185expect(result.cdpUrl).toBeNull();
189186expect(result.userDataDir).toBeNull();
190187expect(result.isRemote).toBe(false);
191-expect(state.resolved.profiles["chrome-live"]).toEqual({
192-driver: "existing-session",
193-attachOnly: true,
194-color: expect.any(String),
195-});
196-expect(writeConfigFile).toHaveBeenCalledWith(
197-expect.objectContaining({
198-browser: expect.objectContaining({
199-profiles: expect.objectContaining({
200-"chrome-live": expect.objectContaining({
201-driver: "existing-session",
202-attachOnly: true,
203-}),
204-}),
205-}),
206-}),
207-);
188+const resolvedProfile = state.resolved.profiles["chrome-live"];
189+expect(resolvedProfile?.driver).toBe("existing-session");
190+expect(resolvedProfile?.attachOnly).toBe(true);
191+expect(typeof resolvedProfile?.color).toBe("string");
192+const profiles = writtenBrowserConfig().profiles as Record<
193+string,
194+{ attachOnly?: boolean; driver?: string }
195+>;
196+expect(profiles["chrome-live"]?.driver).toBe("existing-session");
197+expect(profiles["chrome-live"]?.attachOnly).toBe(true);
208198});
209199210200it("rejects driver=existing-session when cdpUrl is provided", async () => {
@@ -241,12 +231,11 @@ describe("BrowserProfilesService", () => {
241231242232expect(result.transport).toBe("chrome-mcp");
243233expect(result.userDataDir).toBe(userDataDir);
244-expect(state.resolved.profiles["brave-live"]).toEqual({
245-driver: "existing-session",
246-attachOnly: true,
247- userDataDir,
248-color: expect.any(String),
249-});
234+const resolvedProfile = state.resolved.profiles["brave-live"];
235+expect(resolvedProfile?.driver).toBe("existing-session");
236+expect(resolvedProfile?.attachOnly).toBe(true);
237+expect(resolvedProfile?.userDataDir).toBe(userDataDir);
238+expect(typeof resolvedProfile?.color).toBe("string");
250239});
251240252241it("rejects userDataDir for non-existing-session profiles", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。