From ebe6ef321c6253ea95c6c045e8d7418677195593 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 8 May 2026 17:36:02 +0100 Subject: [PATCH] test: require modal shadow labels --- ui/src/ui/components/modal-dialog.test.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ui/src/ui/components/modal-dialog.test.ts b/ui/src/ui/components/modal-dialog.test.ts index 53a5d35f035..2c2a686f4b7 100644 --- a/ui/src/ui/components/modal-dialog.test.ts +++ b/ui/src/ui/components/modal-dialog.test.ts @@ -74,6 +74,14 @@ async function renderModal() { return { modal, dialog }; } +function expectShadowElement(modal: OpenClawModalDialog, id: string): HTMLElement { + const element = modal.shadowRoot?.getElementById(id); + if (!(element instanceof HTMLElement)) { + throw new Error(`Expected shadow element #${id}`); + } + return element; +} + describe("openclaw-modal-dialog", () => { beforeEach(() => { installDialogPolyfill(); @@ -101,8 +109,10 @@ describe("openclaw-modal-dialog", () => { expect(descriptionId).toBe("openclaw-modal-dialog-description"); expect(dialog.getRootNode()).toBe(modal.shadowRoot); expect(dialog.ownerDocument.querySelector(`#${labelId}`)).toBeNull(); - expect(modal.shadowRoot?.getElementById(labelId!)?.textContent).toBe("Confirm action"); - expect(modal.shadowRoot?.getElementById(descriptionId!)?.textContent).toBe( + expect(expectShadowElement(modal, "openclaw-modal-dialog-label").textContent).toBe( + "Confirm action", + ); + expect(expectShadowElement(modal, "openclaw-modal-dialog-description").textContent).toBe( "Review the operation before continuing.", ); });