import { expandComponentDefinition } from "../src/userInterface/pagesParsing/types"; const componentDef = () => ({ name: "comp", props: { label: "string", width: {type:"number"}, color: {type:"string", required:true}, } }) describe("expandPropDefintion", () => { it("should expand property defined as string, into default for that type", () => { const result = expandComponentDefinition(componentDef()); expect(result.props.label.type).toBe("string"); expect(result.props.label.required).toBe(false); }); it("should add members to property defined as object, when members do not exist", () => { const result = expandComponentDefinition(componentDef()); expect(result.props.width.required).toBe(false); }); it("should not override existing memebers", () => { const result = expandComponentDefinition(componentDef()); expect(result.props.color.required).toBe(true); }); it("should set children=true when not included", () => { const result = expandComponentDefinition(componentDef()); expect(result.children).toBe(true); }); it("should not change children when specified", () => { const c = componentDef(); c.children = false; const result = expandComponentDefinition(c); expect(result.children).toBe(false); c.children = true; const result2 = expandComponentDefinition(c); expect(result2.children).toBe(true); }); })