import { componentDependencies } from "../src/userInterface/pagesParsing/findDependencies"; import { componentsAndScreens } from "./testData"; import { some, find } from "lodash/fp" describe("component dependencies", () => { const contains = (result, name) => some(c => c.name === name)(result); const get = (all, name) => find(c => c.name === name)(all); it("should include component that inheirts", () => { const {components, screens} = componentsAndScreens(); const result = componentDependencies( {}, screens, components, get([...components, ...screens], "budibase-components/TextBox")); expect(contains(result.dependantComponents, "common/SmallTextbox")).toBe(true); }); it("should include component that nests", () => { const {components, screens} = componentsAndScreens(); const result = componentDependencies( {}, screens, components, get([...components, ...screens], "budibase-components/Button")); expect(contains(result.dependantComponents, "ButtonGroup")).toBe(true); }); it("should include components n page apbody", () => { const {components, screens} = componentsAndScreens(); const pages = { main: { appBody: "PrimaryButton" } }; const result = componentDependencies( pages, screens, components, get([...components, ...screens], "PrimaryButton")); expect(result.dependantPages).toEqual(["main"]); }); })