1
0
Fork 0
mirror of synced 2024-07-04 05:50:57 +12:00
budibase/packages/builder/tests/validatePages.spec.js
2019-07-25 07:31:54 +01:00

122 lines
3.3 KiB
JavaScript

import {
validatePages,
validatePage
} from "../src/userInterface/pagesParsing/validatePages";
const validPages = () => ({
"main" : {
"index" : {
"_component": "testIndexHtml",
"title": "My Cool App",
"customScripts": [
{"url": "MyCustomComponents.js"}
]
},
"appBody" : "./main.app.json"
},
"unauthenticated" : {
"index" : {
"_component": "testIndexHtml",
"title": "My Cool App - Login",
"customScripts": [
{"url": "MyCustomComponents.js"}
]
},
"appBody" : "./unauthenticated.app.json"
},
"componentLibraries": ["./myComponents"]
});
const getComponent = name => ({
testIndexHtml : {
title: "string",
customScripts: {
type:"array",
elementDefinition: {
url: "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);
page.index = {title:"something"}; // no _component
const noComponent = validatePage(page, getComponent);
expect(noComponent.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);
});
});