diff --git a/internals/test-helpers/index.ts b/internals/test-helpers/index.ts
index d0682557..bea2bff4 100644
--- a/internals/test-helpers/index.ts
+++ b/internals/test-helpers/index.ts
@@ -1,3 +1,3 @@
-export { act, render } from "@testing-library/react";
+export { act, cleanup, fireEvent, render } from "@testing-library/react";
export { default as userEvent } from "@testing-library/user-event";
export * from "shadow-dom-testing-library";
diff --git a/package.json b/package.json
index efb0872f..4e143181 100644
--- a/package.json
+++ b/package.json
@@ -61,6 +61,7 @@
"@types/stream-json": "^1.7.7",
"@vitejs/plugin-react": "^4.3.3",
"custom-elements-manifest": "^2.1.0",
+ "element-internals-polyfill": "^1.3.13",
"eslint": "^9.12.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.6.3",
diff --git a/packages/web-components/jest.setup.ts b/packages/web-components/jest.setup.ts
index ba7aa37a..0638102a 100644
--- a/packages/web-components/jest.setup.ts
+++ b/packages/web-components/jest.setup.ts
@@ -1 +1,12 @@
+import { cleanup } from "@internals/test-helpers";
+import { afterEach, beforeAll, jest } from "@jest/globals";
import "@testing-library/jest-dom/jest-globals";
+
+beforeAll(async () => {
+ await import("element-internals-polyfill");
+});
+
+afterEach(() => {
+ cleanup();
+ jest.clearAllMocks();
+});
diff --git a/packages/web-components/src/button/base/base-button.ts b/packages/web-components/src/button/base/base-button.ts
index 8e566870..cdd94400 100644
--- a/packages/web-components/src/button/base/base-button.ts
+++ b/packages/web-components/src/button/base/base-button.ts
@@ -119,7 +119,10 @@ export abstract class BaseButton extends BaseClass implements FormSubmitter {
*/
protected renderSpinner() {
return html`
-
+
`;
@@ -158,6 +161,7 @@ export abstract class BaseButton extends BaseClass implements FormSubmitter {
return html`