From 4e6f3c16818d9beb200c337d48c8ae2470a322ee Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 26 Mar 2023 08:42:14 -0300 Subject: data steps: linkTemplate snapshot tests --- src/content-function.js | 6 +++-- src/content/dependencies/linkTemplate.js | 5 +++- .../test/snapshots/linkTemplate.js.test.cjs | 14 +++++++++++ test/snapshots/linkTemplate.js | 28 ++++++++++++++++++++++ 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 tap-snapshots/test/snapshots/linkTemplate.js.test.cjs create mode 100644 test/snapshots/linkTemplate.js diff --git a/src/content-function.js b/src/content-function.js index 0a217800..377eecc9 100644 --- a/src/content-function.js +++ b/src/content-function.js @@ -279,7 +279,9 @@ export function flattenRelationsTree({ } } - recursive(relationsTree); + if (relationsTree) { + recursive(relationsTree); + } return { root, @@ -335,7 +337,7 @@ export function quickEvaluate({ extraDependencies: allExtraDependencies, name, - args, + args = [], }) { const treeInfo = getRelationsTree(allContentDependencies, name, ...args); const flatTreeInfo = flattenRelationsTree(treeInfo); diff --git a/src/content/dependencies/linkTemplate.js b/src/content/dependencies/linkTemplate.js index 94b90652..acac99be 100644 --- a/src/content/dependencies/linkTemplate.js +++ b/src/content/dependencies/linkTemplate.js @@ -26,7 +26,10 @@ export default { } if (appendIndexHTML) { - if (/^(?!https?:\/\/).+\/$/.test(href)) { + if ( + /^(?!https?:\/\/).+\/$/.test(href) && + href.endsWith('/') + ) { href += 'index.html'; } } diff --git a/tap-snapshots/test/snapshots/linkTemplate.js.test.cjs b/tap-snapshots/test/snapshots/linkTemplate.js.test.cjs new file mode 100644 index 00000000..e3c3356b --- /dev/null +++ b/tap-snapshots/test/snapshots/linkTemplate.js.test.cjs @@ -0,0 +1,14 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/snapshots/linkTemplate.js TAP linkTemplate > output 1`] = ` +My Cool Link +` + +exports[`test/snapshots/linkTemplate.js TAP linkTemplate > output 2`] = ` + +` diff --git a/test/snapshots/linkTemplate.js b/test/snapshots/linkTemplate.js new file mode 100644 index 00000000..0dcf5b61 --- /dev/null +++ b/test/snapshots/linkTemplate.js @@ -0,0 +1,28 @@ +import t from 'tap'; + +import {testContentFunctions} from './_support.js'; + +testContentFunctions(t, 'linkTemplate', (t, evaluate) => { + evaluate.snapshot({ + name: 'linkTemplate', + extraDependencies: { + getColors: c => ({primary: c + 'ff', dim: c + '77'}), + }, + }, + v => v + .slot('color', '#123456') + .slot('href', 'https://hsmusic.wiki/media/cool file.pdf') + .slot('hash', 'fooey') + .slot('attributes', {class: 'dog', id: 'cat1'}) + .slot('content', 'My Cool Link')); + + evaluate.snapshot({ + name: 'linkTemplate', + extraDependencies: { + to: (...path) => '/c*lzone/' + path.join('/') + '/', + appendIndexHTML: true, + }, + }, + v => v + .slot('path', ['myCoolPath', 'ham', 'pineapple', 'tomato'])); +}); -- cgit 1.3.0-6-gf8a5