import { describe, it, expect } from "vitest"; import { Parallel } from "../../src/component/parallel.js"; import type { ParallelProps } from "../../src/component/parallel.js"; import type { UElement, UNode } from "@alkdev/ujsx"; describe("Parallel", () => { it("produces UElement with type parallel", () => { const el = Parallel({} as ParallelProps & { children?: UNode[] }); expect(el.type).toBe("parallel"); expect(el.children).toEqual([]); }); it("preserves id prop", () => { const el = Parallel({ id: "group-1" } as ParallelProps & { children?: UNode[] }); expect((el as UElement).props.id).toBe("group-1"); }); it("preserves maxConcurrency prop", () => { const el = Parallel({ maxConcurrency: 3 } as ParallelProps & { children?: UNode[] }); expect((el as UElement).props.maxConcurrency).toBe(3); }); it("includes children", () => { const el = Parallel({ children: ["child1", "child2"] } as ParallelProps & { children?: UNode[] }); expect(el.children).toEqual(["child1", "child2"]); }); it("omits id and maxConcurrency when not provided", () => { const el = Parallel({} as ParallelProps & { children?: UNode[] }); expect((el as UElement).props.id).toBeUndefined(); expect((el as UElement).props.maxConcurrency).toBeUndefined(); }); });