test: guard browser server launch mock calls · openclaw/openclaw@8ef408b
steipete
·
2026-05-12
·
via Recent Commits to openclaw:main
File tree
extensions/browser/src/browser
| Original file line number | Diff line number | Diff line change |
|---|
@@ -49,6 +49,16 @@ function createAttachOnlyLoopbackProfile(cdpUrl: string) {
|
49 | 49 | return { profile: ctx.forProfile("manual-cdp"), state }; |
50 | 50 | } |
51 | 51 | |
| 52 | +function requireFirstLaunchOptions(launchOpenClawChrome: { |
| 53 | +mock: { calls: unknown[][] }; |
| 54 | +}): unknown { |
| 55 | +const [call] = launchOpenClawChrome.mock.calls; |
| 56 | +if (!call) { |
| 57 | +throw new Error("expected Chrome launch call"); |
| 58 | +} |
| 59 | +return call[2]; |
| 60 | +} |
| 61 | + |
52 | 62 | afterEach(() => { |
53 | 63 | vi.useRealTimers(); |
54 | 64 | vi.clearAllMocks(); |
@@ -149,7 +159,7 @@ describe("browser server-context ensureBrowserAvailable", () => {
|
149 | 159 | await expect(promise).resolves.toBeUndefined(); |
150 | 160 | |
151 | 161 | expect(launchOpenClawChrome).toHaveBeenCalledTimes(1); |
152 | | -expect(launchOpenClawChrome.mock.calls[0]?.[2]).toEqual({ headlessOverride: true }); |
| 162 | +expect(requireFirstLaunchOptions(launchOpenClawChrome)).toEqual({ headlessOverride: true }); |
153 | 163 | expect(stopOpenClawChrome).not.toHaveBeenCalled(); |
154 | 164 | }); |
155 | 165 | |
@@ -179,7 +189,7 @@ describe("browser server-context ensureBrowserAvailable", () => {
|
179 | 189 | |
180 | 190 | expect(stopOpenClawChrome).toHaveBeenCalledTimes(1); |
181 | 191 | expect(launchOpenClawChrome).toHaveBeenCalledTimes(1); |
182 | | -expect(launchOpenClawChrome.mock.calls[0]?.[2]).toEqual({ headlessOverride: true }); |
| 192 | +expect(requireFirstLaunchOptions(launchOpenClawChrome)).toEqual({ headlessOverride: true }); |
183 | 193 | }); |
184 | 194 | |
185 | 195 | it("does not share inflight lazy-start promises across different headless overrides", async () => { |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。