From ddaf34d6e97269719107398569716fc1f1e98073 Mon Sep 17 00:00:00 2001
From: "(quasar) nebula"
Date: Tue, 5 Sep 2023 19:03:44 -0300
Subject: infra, test: cleaner output for stubTemplate
---
.../snapshot/generatePreviousNextLinks.js.test.cjs | 12 ++++++------
test/lib/content-function.js | 21 ++++++++++++++++++++-
2 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/tap-snapshots/test/snapshot/generatePreviousNextLinks.js.test.cjs b/tap-snapshots/test/snapshot/generatePreviousNextLinks.js.test.cjs
index 07268581..fa641830 100644
--- a/tap-snapshots/test/snapshot/generatePreviousNextLinks.js.test.cjs
+++ b/tap-snapshots/test/snapshot/generatePreviousNextLinks.js.test.cjs
@@ -6,13 +6,13 @@
*/
'use strict'
exports[`test/snapshot/generatePreviousNextLinks.js TAP generatePreviousNextLinks (snapshot) > basic behavior 1`] = `
-previous: {"tooltip":true,"color":false,"attributes":{"id":"previous-button"},"content":"Previous"}
-next: {"tooltip":true,"color":false,"attributes":{"id":"next-button"},"content":"Next"}
+previous: { tooltip: true, color: false, attributes: { id: 'previous-button' }, content: 'Previous' }
+next: { tooltip: true, color: false, attributes: { id: 'next-button' }, content: 'Next' }
`
exports[`test/snapshot/generatePreviousNextLinks.js TAP generatePreviousNextLinks (snapshot) > disable id 1`] = `
-previous: {"tooltip":true,"color":false,"attributes":{"id":false},"content":"Previous"}
-next: {"tooltip":true,"color":false,"attributes":{"id":false},"content":"Next"}
+previous: { tooltip: true, color: false, attributes: { id: false }, content: 'Previous' }
+next: { tooltip: true, color: false, attributes: { id: false }, content: 'Next' }
`
exports[`test/snapshot/generatePreviousNextLinks.js TAP generatePreviousNextLinks (snapshot) > neither link present 1`] = `
@@ -20,9 +20,9 @@ exports[`test/snapshot/generatePreviousNextLinks.js TAP generatePreviousNextLink
`
exports[`test/snapshot/generatePreviousNextLinks.js TAP generatePreviousNextLinks (snapshot) > next missing 1`] = `
-previous: {"tooltip":true,"color":false,"attributes":{"id":"previous-button"},"content":"Previous"}
+previous: { tooltip: true, color: false, attributes: { id: 'previous-button' }, content: 'Previous' }
`
exports[`test/snapshot/generatePreviousNextLinks.js TAP generatePreviousNextLinks (snapshot) > previous missing 1`] = `
-next: {"tooltip":true,"color":false,"attributes":{"id":"next-button"},"content":"Next"}
+next: { tooltip: true, color: false, attributes: { id: 'next-button' }, content: 'Next' }
`
diff --git a/test/lib/content-function.js b/test/lib/content-function.js
index bb12be82..b706cd8c 100644
--- a/test/lib/content-function.js
+++ b/test/lib/content-function.js
@@ -1,5 +1,6 @@
import * as path from 'node:path';
import {fileURLToPath} from 'node:url';
+import {inspect} from 'node:util';
import chroma from 'chroma-js';
@@ -99,7 +100,7 @@ export function testContentFunctions(t, message, fn) {
constructor() {
super({
- content: () => `${name}: ${JSON.stringify(this.#slotValues)}`,
+ content: () => this.#getContent(this),
});
}
@@ -110,6 +111,24 @@ export function testContentFunctions(t, message, fn) {
setSlot(slotName, slotValue) {
this.#slotValues[slotName] = slotValue;
}
+
+ #getContent() {
+ const toInspect =
+ Object.fromEntries(
+ Object.entries(this.#slotValues)
+ .filter(([key, value]) => value !== null));
+
+ const inspected =
+ inspect(toInspect, {
+ breakLength: Infinity,
+ colors: false,
+ compact: true,
+ depth: Infinity,
+ sort: true,
+ });
+
+ return `${name}: ${inspected}`;
+ }
});
};
--
cgit 1.3.0-6-gf8a5
From ae1131e54280da63a678eb3489b02a9fb292ee8b Mon Sep 17 00:00:00 2001
From: "(quasar) nebula"
Date: Tue, 5 Sep 2023 19:39:51 -0300
Subject: infra, test: new stubContentFunction utility
Just like stubTemplate, but the result is ready for passing to
evaluate.load's {mock} option, and the template's content is
formatted to include the content function's provided arguments
as well.
---
test/lib/content-function.js | 109 +++++++++++++++++++++++++++++++------------
1 file changed, 78 insertions(+), 31 deletions(-)
diff --git a/test/lib/content-function.js b/test/lib/content-function.js
index b706cd8c..5cb499b1 100644
--- a/test/lib/content-function.js
+++ b/test/lib/content-function.js
@@ -91,45 +91,92 @@ export function testContentFunctions(t, message, fn) {
t.matchSnapshot(result, description);
};
- evaluate.stubTemplate = name => {
+ evaluate.stubTemplate = name =>
// Creates a particularly permissable template, allowing any slot values
// to be stored and just outputting the contents of those slots as-are.
+ _stubTemplate(name, false);
- return new (class extends html.Template {
- #slotValues = {};
+ evaluate.stubContentFunction = name =>
+ // Like stubTemplate, but instead of a template directly, returns
+ // an object describing a content function - suitable for passing
+ // into evaluate.mock.
+ _stubTemplate(name, true);
- constructor() {
- super({
- content: () => this.#getContent(this),
- });
- }
-
- setSlots(slotNamesToValues) {
- Object.assign(this.#slotValues, slotNamesToValues);
- }
+ const _stubTemplate = (name, mockContentFunction) => {
+ const inspectNicely = (value, opts = {}) =>
+ inspect(value, {
+ ...opts,
+ colors: false,
+ sort: true,
+ });
- setSlot(slotName, slotValue) {
- this.#slotValues[slotName] = slotValue;
- }
+ const makeTemplate = formatContentFn =>
+ new (class extends html.Template {
+ #slotValues = {};
- #getContent() {
- const toInspect =
- Object.fromEntries(
- Object.entries(this.#slotValues)
- .filter(([key, value]) => value !== null));
-
- const inspected =
- inspect(toInspect, {
- breakLength: Infinity,
- colors: false,
- compact: true,
- depth: Infinity,
- sort: true,
+ constructor() {
+ super({
+ content: () => this.#getContent(formatContentFn),
});
+ }
- return `${name}: ${inspected}`;
- }
- });
+ setSlots(slotNamesToValues) {
+ Object.assign(this.#slotValues, slotNamesToValues);
+ }
+
+ setSlot(slotName, slotValue) {
+ this.#slotValues[slotName] = slotValue;
+ }
+
+ #getContent(formatContentFn) {
+ const toInspect =
+ Object.fromEntries(
+ Object.entries(this.#slotValues)
+ .filter(([key, value]) => value !== null));
+
+ const inspected =
+ inspectNicely(toInspect, {
+ breakLength: Infinity,
+ compact: true,
+ depth: Infinity,
+ });
+
+ return formatContentFn(inspected); `${name}: ${inspected}`;
+ }
+ });
+
+ if (mockContentFunction) {
+ return {
+ data: (...args) => ({args}),
+ generate: (data) =>
+ makeTemplate(slots => {
+ const argsLines =
+ (empty(data.args)
+ ? []
+ : inspectNicely(data.args, {depth: Infinity})
+ .split('\n'));
+
+ return (`[mocked: ${name}` +
+
+ (empty(data.args)
+ ? ``
+ : argsLines.length === 1
+ ? `\n args: ${argsLines[0]}`
+ : `\n args: ${argsLines[0]}\n` +
+ argsLines.slice(1).join('\n').replace(/^/gm, ' ')) +
+
+ (!empty(data.args)
+ ? `\n `
+ : ` - `) +
+
+ (slots
+ ? `slots: ${slots}]`
+ : `slots: none]`));
+ }),
+ };
+ } else {
+ return makeTemplate(slots => `${name}: ${slots}`);
+ }
};
evaluate.mock = (...opts) => {
--
cgit 1.3.0-6-gf8a5
From de0b85d81e6392597a35196bde523b9642d7e016 Mon Sep 17 00:00:00 2001
From: "(quasar) nebula"
Date: Tue, 5 Sep 2023 20:09:03 -0300
Subject: test: update snapshot tests to always mock image dependency
---
.../snapshot/generateAlbumCoverArtwork.js.test.cjs | 37 ++++++++++--------
.../test/snapshot/generateCoverArtwork.js.test.cjs | 37 ++++++++++--------
.../snapshot/generateTrackCoverArtwork.js.test.cjs | 45 +++++++++++++---------
.../test/snapshot/transformContent.js.test.cjs | 6 +--
test/snapshot/generateAlbumCoverArtwork.js | 14 +++----
test/snapshot/generateCoverArtwork.js | 12 +++---
test/snapshot/generateTrackCoverArtwork.js | 14 +++----
test/snapshot/transformContent.js | 17 +++++---
8 files changed, 97 insertions(+), 85 deletions(-)
diff --git a/tap-snapshots/test/snapshot/generateAlbumCoverArtwork.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumCoverArtwork.js.test.cjs
index d787df68..017ab0e4 100644
--- a/tap-snapshots/test/snapshot/generateAlbumCoverArtwork.js.test.cjs
+++ b/tap-snapshots/test/snapshot/generateAlbumCoverArtwork.js.test.cjs
@@ -7,26 +7,29 @@
'use strict'
exports[`test/snapshot/generateAlbumCoverArtwork.js TAP generateAlbumCoverArtwork (snapshot) > display: primary 1`] = `
-
-
-
-
-
-
-
- cw: creepy crawlies
-
- click to show
-
-
-
-
-
-
+ [mocked: image
+ args: [
+ [
+ { name: 'Damara', directory: 'damara', isContentWarning: false },
+ { name: 'Cronus', directory: 'cronus', isContentWarning: false },
+ { name: 'Bees', directory: 'bees', isContentWarning: false },
+ { name: 'creepy crawlies', isContentWarning: true }
+ ]
+ ]
+ slots: { path: [ 'media.albumCover', 'bee-forus-seatbelt-safebee', 'png' ], thumb: 'medium', id: 'cover-art', reveal: true, link: true, square: true }]
Tags: Damara, Cronus, Bees
`
exports[`test/snapshot/generateAlbumCoverArtwork.js TAP generateAlbumCoverArtwork (snapshot) > display: thumbnail 1`] = `
-
+[mocked: image
+ args: [
+ [
+ { name: 'Damara', directory: 'damara', isContentWarning: false },
+ { name: 'Cronus', directory: 'cronus', isContentWarning: false },
+ { name: 'Bees', directory: 'bees', isContentWarning: false },
+ { name: 'creepy crawlies', isContentWarning: true }
+ ]
+ ]
+ slots: { path: [ 'media.albumCover', 'bee-forus-seatbelt-safebee', 'png' ], thumb: 'small', reveal: false, link: false, square: true }]
`
diff --git a/tap-snapshots/test/snapshot/generateCoverArtwork.js.test.cjs b/tap-snapshots/test/snapshot/generateCoverArtwork.js.test.cjs
index 88be76ea..c1c880bc 100644
--- a/tap-snapshots/test/snapshot/generateCoverArtwork.js.test.cjs
+++ b/tap-snapshots/test/snapshot/generateCoverArtwork.js.test.cjs
@@ -7,26 +7,29 @@
'use strict'
exports[`test/snapshot/generateCoverArtwork.js TAP generateCoverArtwork (snapshot) > display: primary 1`] = `
-
-
-
-
-
-
-
- cw: creepy crawlies
-
- click to show
-
-
-
-
-
-
+ [mocked: image
+ args: [
+ [
+ { name: 'Damara', directory: 'damara', isContentWarning: false },
+ { name: 'Cronus', directory: 'cronus', isContentWarning: false },
+ { name: 'Bees', directory: 'bees', isContentWarning: false },
+ { name: 'creepy crawlies', isContentWarning: true }
+ ]
+ ]
+ slots: { path: [ 'media.albumCover', 'bee-forus-seatbelt-safebee', 'png' ], thumb: 'medium', id: 'cover-art', reveal: true, link: true, square: true }]
Tags: Damara, Cronus, Bees
`
exports[`test/snapshot/generateCoverArtwork.js TAP generateCoverArtwork (snapshot) > display: thumbnail 1`] = `
-
+[mocked: image
+ args: [
+ [
+ { name: 'Damara', directory: 'damara', isContentWarning: false },
+ { name: 'Cronus', directory: 'cronus', isContentWarning: false },
+ { name: 'Bees', directory: 'bees', isContentWarning: false },
+ { name: 'creepy crawlies', isContentWarning: true }
+ ]
+ ]
+ slots: { path: [ 'media.albumCover', 'bee-forus-seatbelt-safebee', 'png' ], thumb: 'small', reveal: false, link: false, square: true }]
`
diff --git a/tap-snapshots/test/snapshot/generateTrackCoverArtwork.js.test.cjs b/tap-snapshots/test/snapshot/generateTrackCoverArtwork.js.test.cjs
index 92216a89..33b5d155 100644
--- a/tap-snapshots/test/snapshot/generateTrackCoverArtwork.js.test.cjs
+++ b/tap-snapshots/test/snapshot/generateTrackCoverArtwork.js.test.cjs
@@ -7,37 +7,44 @@
'use strict'
exports[`test/snapshot/generateTrackCoverArtwork.js TAP generateTrackCoverArtwork (snapshot) > display: primary - no unique art 1`] = `
-
-
-
-
-
-
-
- cw: creepy crawlies
-
- click to show
-
-
-
-
-
-
+ [mocked: image
+ args: [
+ [
+ { name: 'Damara', directory: 'damara', isContentWarning: false },
+ { name: 'Cronus', directory: 'cronus', isContentWarning: false },
+ { name: 'Bees', directory: 'bees', isContentWarning: false },
+ { name: 'creepy crawlies', isContentWarning: true }
+ ]
+ ]
+ slots: { path: [ 'media.albumCover', 'bee-forus-seatbelt-safebee', 'png' ], thumb: 'medium', id: 'cover-art', reveal: true, link: true, square: true }]
Tags: Damara, Cronus, Bees
`
exports[`test/snapshot/generateTrackCoverArtwork.js TAP generateTrackCoverArtwork (snapshot) > display: primary - unique art 1`] = `
-
+ [mocked: image
+ args: [ [ { name: 'Bees', directory: 'bees', isContentWarning: false } ] ]
+ slots: { path: [ 'media.trackCover', 'bee-forus-seatbelt-safebee', 'beesmp3', 'jpg' ], thumb: 'medium', id: 'cover-art', reveal: true, link: true, square: true }]
Tags: Bees
`
exports[`test/snapshot/generateTrackCoverArtwork.js TAP generateTrackCoverArtwork (snapshot) > display: thumbnail - no unique art 1`] = `
-
+[mocked: image
+ args: [
+ [
+ { name: 'Damara', directory: 'damara', isContentWarning: false },
+ { name: 'Cronus', directory: 'cronus', isContentWarning: false },
+ { name: 'Bees', directory: 'bees', isContentWarning: false },
+ { name: 'creepy crawlies', isContentWarning: true }
+ ]
+ ]
+ slots: { path: [ 'media.albumCover', 'bee-forus-seatbelt-safebee', 'png' ], thumb: 'small', reveal: false, link: false, square: true }]
`
exports[`test/snapshot/generateTrackCoverArtwork.js TAP generateTrackCoverArtwork (snapshot) > display: thumbnail - unique art 1`] = `
-
+[mocked: image
+ args: [ [ { name: 'Bees', directory: 'bees', isContentWarning: false } ] ]
+ slots: { path: [ 'media.trackCover', 'bee-forus-seatbelt-safebee', 'beesmp3', 'jpg' ], thumb: 'small', reveal: false, link: false, square: true }]
`
diff --git a/tap-snapshots/test/snapshot/transformContent.js.test.cjs b/tap-snapshots/test/snapshot/transformContent.js.test.cjs
index d144cf12..4af6b147 100644
--- a/tap-snapshots/test/snapshot/transformContent.js.test.cjs
+++ b/tap-snapshots/test/snapshot/transformContent.js.test.cjs
@@ -53,16 +53,16 @@ How it goes
`
exports[`test/snapshot/transformContent.js TAP transformContent (snapshot) > non-inline image #1 1`] = `
-
+[mocked: image - slots: { src: 'spark.png', link: true, thumb: 'large' }]
`
exports[`test/snapshot/transformContent.js TAP transformContent (snapshot) > non-inline image #2 1`] = `
Rad.
-
+[mocked: image - slots: { src: 'spark.png', link: true, thumb: 'large' }]
`
exports[`test/snapshot/transformContent.js TAP transformContent (snapshot) > non-inline image #3 1`] = `
-
+[mocked: image - slots: { src: 'spark.png', link: true, thumb: 'large' }]
Baller.
`
diff --git a/test/snapshot/generateAlbumCoverArtwork.js b/test/snapshot/generateAlbumCoverArtwork.js
index 98632d39..b1c7885f 100644
--- a/test/snapshot/generateAlbumCoverArtwork.js
+++ b/test/snapshot/generateAlbumCoverArtwork.js
@@ -1,12 +1,14 @@
import t from 'tap';
+
+import contentFunction from '#content-function';
import {testContentFunctions} from '#test-lib';
testContentFunctions(t, 'generateAlbumCoverArtwork (snapshot)', async (t, evaluate) => {
- await evaluate.load();
-
- const extraDependencies = {
- getSizeOfImageFile: () => 0,
- };
+ await evaluate.load({
+ mock: {
+ image: evaluate.stubContentFunction('image'),
+ },
+ });
const album = {
directory: 'bee-forus-seatbelt-safebee',
@@ -23,13 +25,11 @@ testContentFunctions(t, 'generateAlbumCoverArtwork (snapshot)', async (t, evalua
name: 'generateAlbumCoverArtwork',
args: [album],
slots: {mode: 'primary'},
- extraDependencies,
});
evaluate.snapshot('display: thumbnail', {
name: 'generateAlbumCoverArtwork',
args: [album],
slots: {mode: 'thumbnail'},
- extraDependencies,
});
});
diff --git a/test/snapshot/generateCoverArtwork.js b/test/snapshot/generateCoverArtwork.js
index 21c91454..e35dd8d0 100644
--- a/test/snapshot/generateCoverArtwork.js
+++ b/test/snapshot/generateCoverArtwork.js
@@ -2,11 +2,11 @@ import t from 'tap';
import {testContentFunctions} from '#test-lib';
testContentFunctions(t, 'generateCoverArtwork (snapshot)', async (t, evaluate) => {
- await evaluate.load();
-
- const extraDependencies = {
- getSizeOfImageFile: () => 0,
- };
+ await evaluate.load({
+ mock: {
+ image: evaluate.stubContentFunction('image', {mock: true}),
+ },
+ });
const artTags = [
{name: 'Damara', directory: 'damara', isContentWarning: false},
@@ -21,13 +21,11 @@ testContentFunctions(t, 'generateCoverArtwork (snapshot)', async (t, evaluate) =
name: 'generateCoverArtwork',
args: [artTags],
slots: {path, mode: 'primary'},
- extraDependencies,
});
evaluate.snapshot('display: thumbnail', {
name: 'generateCoverArtwork',
args: [artTags],
slots: {path, mode: 'thumbnail'},
- extraDependencies,
});
});
diff --git a/test/snapshot/generateTrackCoverArtwork.js b/test/snapshot/generateTrackCoverArtwork.js
index 9e154703..03a181e7 100644
--- a/test/snapshot/generateTrackCoverArtwork.js
+++ b/test/snapshot/generateTrackCoverArtwork.js
@@ -2,11 +2,11 @@ import t from 'tap';
import {testContentFunctions} from '#test-lib';
testContentFunctions(t, 'generateTrackCoverArtwork (snapshot)', async (t, evaluate) => {
- await evaluate.load();
-
- const extraDependencies = {
- getSizeOfImageFile: () => 0,
- };
+ await evaluate.load({
+ mock: {
+ image: evaluate.stubContentFunction('image'),
+ },
+ });
const album = {
directory: 'bee-forus-seatbelt-safebee',
@@ -37,27 +37,23 @@ testContentFunctions(t, 'generateTrackCoverArtwork (snapshot)', async (t, evalua
name: 'generateTrackCoverArtwork',
args: [track1],
slots: {mode: 'primary'},
- extraDependencies,
});
evaluate.snapshot('display: thumbnail - unique art', {
name: 'generateTrackCoverArtwork',
args: [track1],
slots: {mode: 'thumbnail'},
- extraDependencies,
});
evaluate.snapshot('display: primary - no unique art', {
name: 'generateTrackCoverArtwork',
args: [track2],
slots: {mode: 'primary'},
- extraDependencies,
});
evaluate.snapshot('display: thumbnail - no unique art', {
name: 'generateTrackCoverArtwork',
args: [track2],
slots: {mode: 'thumbnail'},
- extraDependencies,
});
});
diff --git a/test/snapshot/transformContent.js b/test/snapshot/transformContent.js
index 25952856..b05beac1 100644
--- a/test/snapshot/transformContent.js
+++ b/test/snapshot/transformContent.js
@@ -2,7 +2,11 @@ import t from 'tap';
import {testContentFunctions} from '#test-lib';
testContentFunctions(t, 'transformContent (snapshot)', async (t, evaluate) => {
- await evaluate.load();
+ await evaluate.load({
+ mock: {
+ image: evaluate.stubContentFunction('image'),
+ },
+ });
const extraDependencies = {
wikiData: {
@@ -11,8 +15,6 @@ testContentFunctions(t, 'transformContent (snapshot)', async (t, evaluate) => {
],
},
- getSizeOfImageFile: () => 0,
-
to: (key, ...args) => `to-${key}/${args.join('/')}`,
};
@@ -50,15 +52,18 @@ testContentFunctions(t, 'transformContent (snapshot)', async (t, evaluate) => {
quickSnapshot(
'non-inline image #2',
- `Rad.\n`);
+ `Rad.\n` +
+ ``);
quickSnapshot(
'non-inline image #3',
- `\nBaller.`);
+ `\n` +
+ `Baller.`);
quickSnapshot(
'dates',
- `[[date:2023-04-13]] Yep!\nVery nice: [[date:25 October 2413]]`);
+ `[[date:2023-04-13]] Yep!\n` +
+ `Very nice: [[date:25 October 2413]]`);
quickSnapshot(
'super basic string',
--
cgit 1.3.0-6-gf8a5
From aea700dc531b5183ad20c6fcbf8643aef3f102df Mon Sep 17 00:00:00 2001
From: "(quasar) nebula"
Date: Tue, 5 Sep 2023 20:24:08 -0300
Subject: test: fix & update generateAlbumSecondaryNav snapshot test
---
.../test/snapshot/generateAlbumSecondaryNav.js.test.cjs | 16 ++++++++--------
test/snapshot/generateAlbumSecondaryNav.js | 4 ++--
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs
index f84827ae..032fdc05 100644
--- a/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs
+++ b/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs
@@ -7,27 +7,27 @@
'use strict'
exports[`test/snapshot/generateAlbumSecondaryNav.js TAP generateAlbumSecondaryNav (snapshot) > basic behavior, mode: album 1`] = `
`
exports[`test/snapshot/generateAlbumSecondaryNav.js TAP generateAlbumSecondaryNav (snapshot) > basic behavior, mode: track 1`] = `
`
exports[`test/snapshot/generateAlbumSecondaryNav.js TAP generateAlbumSecondaryNav (snapshot) > dateless album in mixed group 1`] = `
`
diff --git a/test/snapshot/generateAlbumSecondaryNav.js b/test/snapshot/generateAlbumSecondaryNav.js
index a5cb2e91..709b062e 100644
--- a/test/snapshot/generateAlbumSecondaryNav.js
+++ b/test/snapshot/generateAlbumSecondaryNav.js
@@ -6,8 +6,8 @@ testContentFunctions(t, 'generateAlbumSecondaryNav (snapshot)', async (t, evalua
let album, group1, group2;
- group1 = {name: 'VCG', directory: 'vcg'};
- group2 = {name: 'Bepis', directory: 'bepis'};
+ group1 = {name: 'VCG', directory: 'vcg', color: '#abcdef'};
+ group2 = {name: 'Bepis', directory: 'bepis', color: '#123456'};
album = {
date: new Date('2010-04-13'),
--
cgit 1.3.0-6-gf8a5
From 0ff743b1350b1d42ba23d9701a0b7acfb7501254 Mon Sep 17 00:00:00 2001
From: "(quasar) nebula"
Date: Tue, 5 Sep 2023 20:32:13 -0300
Subject: content: linkTemplate: handle null href w/ hash cleanly
---
src/content/dependencies/linkTemplate.js | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/content/dependencies/linkTemplate.js b/src/content/dependencies/linkTemplate.js
index 1cf64c59..ba7c7cda 100644
--- a/src/content/dependencies/linkTemplate.js
+++ b/src/content/dependencies/linkTemplate.js
@@ -29,14 +29,16 @@ export default {
language,
to,
}) {
- let href = slots.href;
+ let href;
let style;
let title;
- if (href) {
- href = encodeURI(href);
+ if (slots.href) {
+ href = encodeURI(slots.href);
} else if (!empty(slots.path)) {
href = to(...slots.path);
+ } else {
+ href = '';
}
if (appendIndexHTML) {
--
cgit 1.3.0-6-gf8a5