diff --git a/ui/index.html b/ui/index.html index 86ffe6a2e543..f3e56d709c42 100644 --- a/ui/index.html +++ b/ui/index.html @@ -158,7 +158,6 @@ background: transparent; font: inherit; font-weight: 700; - cursor: pointer; } .mount-fallback__button--primary { diff --git a/ui/src/components/form-controls.browser.test.ts b/ui/src/components/form-controls.browser.test.ts index 7b477b5e78ea..a6b045b6e70f 100644 --- a/ui/src/components/form-controls.browser.test.ts +++ b/ui/src/components/form-controls.browser.test.ts @@ -190,3 +190,38 @@ describeBrowserLayout("touch-primary form controls", () => { } }); }); + +describeBrowserLayout("mount fallback cursor", () => { + it("uses the default cursor for its controls and the pointer for its real link", async () => { + const browser = await chromium.launch({ + executablePath: chromiumExecutablePath, + headless: true, + }); + try { + const page = await browser.newPage(); + await page.setContent(readStyleSheet("ui/index.html")); + const cursors = await page.evaluate(() => { + const cursor = (selector: string) => { + const node = document.querySelector(selector); + if (!(node instanceof HTMLElement)) { + throw new Error(`Missing cursor fixture ${selector}`); + } + return getComputedStyle(node).cursor; + }; + return { + retry: cursor("#openclaw-mount-retry"), + wait: cursor("#openclaw-mount-wait"), + docs: cursor('.mount-fallback__panel a[href^="https://"]'), + }; + }); + + expect(cursors).toEqual({ + retry: "default", + wait: "default", + docs: "pointer", + }); + } finally { + await browser.close().catch(() => {}); + } + }); +});