mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-12 13:41:40 +00:00
update
This commit is contained in:
336
node_modules/@11ty/eleventy/test/TemplateDataTest.js
generated
vendored
Normal file
336
node_modules/@11ty/eleventy/test/TemplateDataTest.js
generated
vendored
Normal file
@ -0,0 +1,336 @@
|
||||
import test from "ava";
|
||||
import TemplateData from "../src/TemplateData";
|
||||
import templateConfig from "../src/Config";
|
||||
|
||||
const config = templateConfig.getConfig();
|
||||
|
||||
test("Create", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.getData();
|
||||
|
||||
t.true(Object.keys(data[config.keys.package]).length > 0);
|
||||
});
|
||||
|
||||
test("getData()", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
|
||||
t.is(dataObj.getData().toString(), "[object Promise]");
|
||||
|
||||
let data = await dataObj.getData();
|
||||
t.is(data.globalData.datakey1, "datavalue1", "simple data value");
|
||||
t.is(
|
||||
data.globalData.datakey2,
|
||||
"@11ty/eleventy",
|
||||
`variables, resolve ${config.keys.package} to its value.`
|
||||
);
|
||||
|
||||
t.true(
|
||||
Object.keys(data[config.keys.package]).length > 0,
|
||||
`package.json imported to data in ${config.keys.package}`
|
||||
);
|
||||
});
|
||||
|
||||
test("Data dir does not exist", async t => {
|
||||
await t.throwsAsync(async () => {
|
||||
let dataObj = new TemplateData("./test/thisdirectorydoesnotexist");
|
||||
await dataObj.getData();
|
||||
});
|
||||
});
|
||||
|
||||
test("Add local data", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.getData();
|
||||
|
||||
t.is(data.globalData.datakey1, "datavalue1");
|
||||
t.is(data.globalData.datakey2, "@11ty/eleventy");
|
||||
|
||||
let withLocalData = await dataObj.getLocalData(
|
||||
"./test/stubs/component/component.njk"
|
||||
);
|
||||
t.is(withLocalData.globalData.datakey1, "datavalue1");
|
||||
t.is(withLocalData.globalData.datakey2, "@11ty/eleventy");
|
||||
t.is(withLocalData.localdatakey1, "localdatavalue1");
|
||||
|
||||
// from the js file
|
||||
t.is(withLocalData.localdatakeyfromjs, "howdydoody");
|
||||
t.is(withLocalData.localdatakeyfromjs2, "howdy2");
|
||||
});
|
||||
|
||||
test("Get local data async JS", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
|
||||
let withLocalData = await dataObj.getLocalData(
|
||||
"./test/stubs/component-async/component.njk"
|
||||
);
|
||||
|
||||
// from the js file
|
||||
t.is(withLocalData.localdatakeyfromjs, "howdydoody");
|
||||
});
|
||||
|
||||
test("addLocalData() doesn’t exist but doesn’t fail (template file does exist)", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.getData();
|
||||
let beforeDataKeyCount = Object.keys(data);
|
||||
|
||||
// template file does exist
|
||||
let withLocalData = await dataObj.getLocalData(
|
||||
"./test/stubs/datafiledoesnotexist/template.njk"
|
||||
);
|
||||
t.is(withLocalData.globalData.datakey1, "datavalue1");
|
||||
t.is(withLocalData.globalData.datakey2, "@11ty/eleventy");
|
||||
t.deepEqual(Object.keys(withLocalData), beforeDataKeyCount);
|
||||
});
|
||||
|
||||
test("addLocalData() doesn’t exist but doesn’t fail (template file does not exist)", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.getData();
|
||||
let beforeDataKeyCount = Object.keys(data);
|
||||
|
||||
let withLocalData = await dataObj.getLocalData(
|
||||
"./test/stubs/datafiledoesnotexist/templatedoesnotexist.njk"
|
||||
);
|
||||
t.is(withLocalData.globalData.datakey1, "datavalue1");
|
||||
t.is(withLocalData.globalData.datakey2, "@11ty/eleventy");
|
||||
t.deepEqual(Object.keys(withLocalData), beforeDataKeyCount);
|
||||
});
|
||||
|
||||
test("Global Dir Directory", async t => {
|
||||
let dataObj = new TemplateData("./");
|
||||
|
||||
t.deepEqual(await dataObj.getGlobalDataGlob(), ["./_data/**/*.(json|js)"]);
|
||||
});
|
||||
|
||||
test("Global Dir Directory with Constructor Path Arg", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
|
||||
t.deepEqual(await dataObj.getGlobalDataGlob(), [
|
||||
"./test/stubs/_data/**/*.(json|js)"
|
||||
]);
|
||||
});
|
||||
|
||||
test("getAllGlobalData() with other data files", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.cacheData();
|
||||
let dataFilePaths = await dataObj.getGlobalDataFiles();
|
||||
|
||||
t.true(dataFilePaths.length > 0);
|
||||
t.true(
|
||||
dataFilePaths.filter(path => {
|
||||
return path.indexOf("./test/stubs/_data/globalData.json") === 0;
|
||||
}).length > 0
|
||||
);
|
||||
|
||||
t.truthy(data.globalData);
|
||||
t.is(data.globalData.datakey1, "datavalue1");
|
||||
|
||||
t.truthy(data.testData);
|
||||
t.deepEqual(data.testData, {
|
||||
testdatakey1: "testdatavalue1"
|
||||
});
|
||||
t.deepEqual(data.subdir.testDataSubdir, {
|
||||
subdirkey: "subdirvalue"
|
||||
});
|
||||
});
|
||||
|
||||
test("getAllGlobalData() with js object data file", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.cacheData();
|
||||
let dataFilePaths = await dataObj.getGlobalDataFiles();
|
||||
|
||||
t.true(
|
||||
dataFilePaths.filter(path => {
|
||||
return path.indexOf("./test/stubs/_data/globalData2.js") === 0;
|
||||
}).length > 0
|
||||
);
|
||||
|
||||
t.truthy(data.globalData2);
|
||||
t.is(data.globalData2.datakeyfromjs, "howdy");
|
||||
});
|
||||
|
||||
test("getAllGlobalData() with js function data file", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let data = await dataObj.cacheData();
|
||||
let dataFilePaths = await dataObj.getGlobalDataFiles();
|
||||
|
||||
t.true(
|
||||
dataFilePaths.filter(path => {
|
||||
return path.indexOf("./test/stubs/_data/globalData2.js") === 0;
|
||||
}).length > 0
|
||||
);
|
||||
|
||||
t.truthy(data.globalDataFn);
|
||||
t.is(data.globalDataFn.datakeyfromjsfn, "howdy");
|
||||
});
|
||||
|
||||
test("getDataValue() without a dataTemplateEngine", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
dataObj.setDataTemplateEngine(false);
|
||||
|
||||
let data = await dataObj.getDataValue("./test/stubs/_data/testDataEjs.json", {
|
||||
pkg: { name: "pkgname" }
|
||||
});
|
||||
|
||||
t.deepEqual(data, {
|
||||
datakey1: "datavalue1",
|
||||
datakey2: "<%= pkg.name %>"
|
||||
});
|
||||
});
|
||||
|
||||
test("getDataValue() without dataTemplateEngine changed to `ejs`", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
dataObj.setDataTemplateEngine("ejs");
|
||||
|
||||
let data = await dataObj.getDataValue("./test/stubs/_data/testDataEjs.json", {
|
||||
pkg: { name: "pkgname" }
|
||||
});
|
||||
|
||||
t.deepEqual(data, {
|
||||
datakey1: "datavalue1",
|
||||
datakey2: "pkgname"
|
||||
});
|
||||
});
|
||||
|
||||
test("getLocalDataPaths", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let paths = await dataObj.getLocalDataPaths(
|
||||
"./test/stubs/component/component.liquid"
|
||||
);
|
||||
|
||||
t.deepEqual(paths, [
|
||||
"./test/stubs/component/component.json",
|
||||
"./test/stubs/component/component.11tydata.json",
|
||||
"./test/stubs/component/component.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("Deeper getLocalDataPaths", async t => {
|
||||
let dataObj = new TemplateData("./");
|
||||
let paths = await dataObj.getLocalDataPaths(
|
||||
"./test/stubs/component/component.liquid"
|
||||
);
|
||||
|
||||
t.deepEqual(paths, [
|
||||
"./test/test.json",
|
||||
"./test/test.11tydata.json",
|
||||
"./test/test.11tydata.js",
|
||||
"./test/stubs/stubs.json",
|
||||
"./test/stubs/stubs.11tydata.json",
|
||||
"./test/stubs/stubs.11tydata.js",
|
||||
"./test/stubs/component/component.json",
|
||||
"./test/stubs/component/component.11tydata.json",
|
||||
"./test/stubs/component/component.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("getLocalDataPaths with an 11ty js template", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let paths = await dataObj.getLocalDataPaths(
|
||||
"./test/stubs/component/component.11ty.js"
|
||||
);
|
||||
|
||||
t.deepEqual(paths, [
|
||||
"./test/stubs/component/component.json",
|
||||
"./test/stubs/component/component.11tydata.json",
|
||||
"./test/stubs/component/component.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("getLocalDataPaths with inputDir passed in (trailing slash)", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let paths = await dataObj.getLocalDataPaths(
|
||||
"./test/stubs/component/component.liquid"
|
||||
);
|
||||
|
||||
t.deepEqual(paths, [
|
||||
"./test/stubs/component/component.json",
|
||||
"./test/stubs/component/component.11tydata.json",
|
||||
"./test/stubs/component/component.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("getLocalDataPaths with inputDir passed in (no trailing slash)", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs/");
|
||||
let paths = await dataObj.getLocalDataPaths(
|
||||
"./test/stubs/component/component.liquid"
|
||||
);
|
||||
|
||||
t.deepEqual(paths, [
|
||||
"./test/stubs/component/component.json",
|
||||
"./test/stubs/component/component.11tydata.json",
|
||||
"./test/stubs/component/component.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("getLocalDataPaths with inputDir passed in (no leading slash)", async t => {
|
||||
let dataObj = new TemplateData("test/stubs");
|
||||
let paths = await dataObj.getLocalDataPaths(
|
||||
"./test/stubs/component/component.liquid"
|
||||
);
|
||||
|
||||
t.deepEqual(paths, [
|
||||
"./test/stubs/component/component.json",
|
||||
"./test/stubs/component/component.11tydata.json",
|
||||
"./test/stubs/component/component.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("getRawImports", async t => {
|
||||
let dataObj = new TemplateData("test/stubs");
|
||||
let data = dataObj.getRawImports();
|
||||
|
||||
t.is(data.pkg.name, "@11ty/eleventy");
|
||||
});
|
||||
|
||||
test("getTemplateDataFileGlob", async t => {
|
||||
let tw = new TemplateData("test/stubs");
|
||||
|
||||
t.deepEqual(await tw.getTemplateDataFileGlob(), [
|
||||
"./test/stubs/**/*.json",
|
||||
"./test/stubs/**/*.11tydata.js"
|
||||
]);
|
||||
});
|
||||
|
||||
test("TemplateData.merge", t => {
|
||||
t.deepEqual(
|
||||
TemplateData.merge(
|
||||
{
|
||||
tags: [1, 2, 3]
|
||||
},
|
||||
{
|
||||
tags: [4, 5, 6]
|
||||
}
|
||||
),
|
||||
{ tags: [1, 2, 3, 4, 5, 6] }
|
||||
);
|
||||
});
|
||||
|
||||
test("TemplateData.cleanupData", t => {
|
||||
t.deepEqual(TemplateData.cleanupData({}), {});
|
||||
t.deepEqual(TemplateData.cleanupData({ tags: null }), { tags: [] });
|
||||
t.deepEqual(TemplateData.cleanupData({ tags: "" }), { tags: [] });
|
||||
t.deepEqual(TemplateData.cleanupData({ tags: [] }), { tags: [] });
|
||||
t.deepEqual(TemplateData.cleanupData({ tags: "test" }), { tags: ["test"] });
|
||||
t.deepEqual(TemplateData.cleanupData({ tags: ["test1", "test2"] }), {
|
||||
tags: ["test1", "test2"]
|
||||
});
|
||||
});
|
||||
|
||||
test("Parent directory for data (Issue #337)", async t => {
|
||||
let dataObj = new TemplateData("./test/stubs-337/src/");
|
||||
dataObj._setConfig({
|
||||
dataTemplateEngine: false,
|
||||
dir: {
|
||||
input: "./test/stubs-337/src/",
|
||||
data: "../data/"
|
||||
}
|
||||
});
|
||||
dataObj.setInputDir("./test/stubs-337/src/");
|
||||
|
||||
let data = await dataObj.getData();
|
||||
|
||||
t.deepEqual(data, {
|
||||
xyz: {
|
||||
hi: "bye"
|
||||
}
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user