From fce7b95d194d3d3ef20a7801caeb74f6fbfb51f6 Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 8 May 2026 16:28:52 +0100 Subject: [PATCH] test: require skills view buttons --- ui/src/ui/views/skills.test.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/ui/src/ui/views/skills.test.ts b/ui/src/ui/views/skills.test.ts index 25e1d6f6773..f8e73bb6c6a 100644 --- a/ui/src/ui/views/skills.test.ts +++ b/ui/src/ui/views/skills.test.ts @@ -148,7 +148,11 @@ describe("renderSkills", () => { expect(showModal).toHaveBeenCalledTimes(1); expect(container.querySelector("dialog")?.hasAttribute("open")).toBe(true); - container.querySelector(".md-preview-dialog__header .btn")?.click(); + const closeButton = container.querySelector( + ".md-preview-dialog__header .btn", + ); + expect(closeButton).toBeInstanceOf(HTMLButtonElement); + closeButton!.click(); expect(onDetailClose).toHaveBeenCalledTimes(1); @@ -178,10 +182,12 @@ describe("renderSkills", () => { expect(text).toContain("GitHub integration for OpenClaw"); expect(text).toContain("v1.2.3"); - container.querySelector(".list-item")?.click(); - container - .querySelector(".list-item .btn.btn--sm") - ?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + const resultItem = container.querySelector(".list-item"); + const installButton = container.querySelector(".list-item .btn.btn--sm"); + expect(resultItem).toBeInstanceOf(HTMLElement); + expect(installButton).toBeInstanceOf(HTMLButtonElement); + resultItem!.click(); + installButton!.dispatchEvent(new MouseEvent("click", { bubbles: true })); expect(onClawHubDetailOpen).toHaveBeenCalledTimes(1); expect(onClawHubDetailOpen).toHaveBeenCalledWith("github"); @@ -234,9 +240,11 @@ describe("renderSkills", () => { expect(text).toContain("Platforms: macos, linux"); expect(text).toContain("Added search support"); - container - .querySelector(".md-preview-dialog__body .btn.primary") - ?.dispatchEvent(new MouseEvent("click", { bubbles: true })); + const detailInstallButton = container.querySelector( + ".md-preview-dialog__body .btn.primary", + ); + expect(detailInstallButton).toBeInstanceOf(HTMLButtonElement); + detailInstallButton!.dispatchEvent(new MouseEvent("click", { bubbles: true })); expect(onClawHubInstall).toHaveBeenCalledTimes(1); expect(onClawHubInstall).toHaveBeenCalledWith("github");