import { renderToStaticMarkup } from "react-dom/server"; import { describe, expect, it } from "vitest"; import * as ActionBarMorePrimitive from "./actionBarMore"; import * as ThreadListItemMorePrimitive from "./threadListItemMore"; describe("dropdown menu primitive render props", () => { it.each([ [ "ActionBarMorePrimitive.Trigger", ActionBarMorePrimitive.Root, ActionBarMorePrimitive.Trigger, ], [ "ThreadListItemMorePrimitive.Trigger", ThreadListItemMorePrimitive.Root, ThreadListItemMorePrimitive.Trigger, ], ])("%s render matches asChild", (_name, Root, Trigger) => { const renderHtml = renderToStaticMarkup( }> More , ); const asChildHtml = renderToStaticMarkup( , ); expect(renderHtml).toBe(asChildHtml); }); it("accepts render on all affected dropdown menu primitives", () => { const actionBarTree = ( } /> } /> } /> } /> ); const threadListItemTree = ( } /> } /> } /> } /> ); expect(actionBarTree).toBeTruthy(); expect(threadListItemTree).toBeTruthy(); }); });