import { validatePages, validatePage, } from "../src/userInterface/pagesParsing/validatePages" const validPages = () => ({ main: { index: { title: "My Cool App", }, appBody: "./main.app.json", }, unauthenticated: { index: { title: "My Cool App - Login", }, appBody: "./unauthenticated.app.json", }, componentLibraries: ["./myComponents"], }) const getComponent = name => ({ testIndexHtml: { name: "testIndexHtml", props: { title: "string", }, }, }[name]) describe("validate single page", () => { it("should return no errors when page is valid", () => { const errors = validatePage(validPages().main, getComponent) expect(errors).toEqual([]) }) it("should return error when index is not set, or set incorrectly", () => { let page = validPages().main delete page.index expect(validatePage(page, getComponent).length).toEqual(1) }) it("should return error when appBody is not set, or set incorrectly", () => { let page = validPages().main delete page.appBody expect(validatePage(page, getComponent).length).toEqual(1) page.appBody = true // not a string expect(validatePage(page, getComponent).length).toEqual(1) page.appBody = "something.js" // not a json expect(validatePage(page, getComponent).length).toEqual(1) }) }) describe("validate pages", () => { it("should return no errors when pages are valid", () => { const errors = validatePages(validPages(), getComponent) expect(errors).toEqual([]) }) it("should return error when component libraries not set", () => { const pages = validPages() delete pages.componentLibraries let errors = validatePages(pages, getComponent) expect(errors.length).toBe(1) pages.componentLibraries = [] errors = validatePages(pages, getComponent) expect(errors.length).toBe(1) }) it("should return error when no main or unauthenticated page", () => { let pages = validPages() delete pages.main let errors = validatePages(pages, getComponent) expect(errors.length).toBe(1) pages = validPages() delete pages.unauthenticated errors = validatePages(pages, getComponent) expect(errors.length).toBe(1) }) it("should return error when page is invalid", () => { const pages = validPages() delete pages.main.index const errors = validatePages(pages, getComponent) expect(errors.length).toBe(1) }) })