33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
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();
|
|
});
|
|
}); |