From 4c3005aa74d0323ebaed9b7cd5814a010bb7d25a Mon Sep 17 00:00:00 2001 From: Mats Bosson Date: Sun, 29 Mar 2026 08:03:31 +0700 Subject: [PATCH] Fix Collapsible controlled mode --- .../tests/components/collapsible/collapsible.test.tsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/core/tests/components/collapsible/collapsible.test.tsx b/packages/core/tests/components/collapsible/collapsible.test.tsx index d73138d..73f994f 100644 --- a/packages/core/tests/components/collapsible/collapsible.test.tsx +++ b/packages/core/tests/components/collapsible/collapsible.test.tsx @@ -1,5 +1,5 @@ import { fireEvent, render, screen } from "@solidjs/testing-library"; -import { describe, expect, it } from "vitest"; +import { describe, expect, it, vi } from "vitest"; import { Collapsible } from "../../../src/components/collapsible/index"; describe("Collapsible", () => { @@ -80,13 +80,16 @@ describe("Collapsible", () => { expect(screen.getByTestId("content")).toHaveAttribute("hidden"); }); - it("controlled open state", () => { + it("controlled: open=false keeps content hidden after click and calls onOpenChange", () => { + const onOpenChange = vi.fn(); render(() => ( - {}}> + Toggle Content )); - expect(screen.getByTestId("content")).not.toHaveAttribute("hidden"); + fireEvent.click(screen.getByRole("button")); + expect(screen.getByTestId("content")).toHaveAttribute("hidden"); + expect(onOpenChange).toHaveBeenCalledWith(true); }); });