« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tap-snapshots/test/snapshot/generateContributionLinks.js.test.cjs52
-rw-r--r--test/snapshot/generateContributionLinks.js50
2 files changed, 102 insertions, 0 deletions
diff --git a/tap-snapshots/test/snapshot/generateContributionLinks.js.test.cjs b/tap-snapshots/test/snapshot/generateContributionLinks.js.test.cjs
new file mode 100644
index 00000000..51e1ac86
--- /dev/null
+++ b/tap-snapshots/test/snapshot/generateContributionLinks.js.test.cjs
@@ -0,0 +1,52 @@
+/* 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/snapshot/generateContributionLinks.js TAP generateContributionLinks (snapshot) > output 1`] = `
+<a href="artist/clark-powell/">Clark Powell</a> (<span class="icons"><a href="https://soundcloud.com/plazmataz" class="icon">
+        <svg>
+            <title>SoundCloud</title>
+            <use href="static/icons.svg#icon-soundcloud"></use>
+        </svg>
+    </a></span>), <a href="artist/the-big-baddies/">Grounder & Scratch</a> (Snooping), and <a href="artist/toby-fox/">Toby Fox</a> (Arrangement) (<span class="icons"><a href="https://tobyfox.bandcamp.com/" class="icon">
+        <svg>
+            <title>Bandcamp</title>
+            <use href="static/icons.svg#icon-bandcamp"></use>
+        </svg>
+    </a>, <a href="https://toby.fox/" class="icon">
+        <svg>
+            <title>External (toby.fox)</title>
+            <use href="static/icons.svg#icon-globe"></use>
+        </svg>
+    </a></span>)
+`
+
+exports[`test/snapshot/generateContributionLinks.js TAP generateContributionLinks (snapshot) > output 2`] = `
+<a href="artist/clark-powell/">Clark Powell</a>, <a href="artist/the-big-baddies/">Grounder & Scratch</a> (Snooping), and <a href="artist/toby-fox/">Toby Fox</a> (Arrangement)
+`
+
+exports[`test/snapshot/generateContributionLinks.js TAP generateContributionLinks (snapshot) > output 3`] = `
+<a href="artist/clark-powell/">Clark Powell</a> (<span class="icons"><a href="https://soundcloud.com/plazmataz" class="icon">
+        <svg>
+            <title>SoundCloud</title>
+            <use href="static/icons.svg#icon-soundcloud"></use>
+        </svg>
+    </a></span>), <a href="artist/the-big-baddies/">Grounder & Scratch</a>, and <a href="artist/toby-fox/">Toby Fox</a> (<span class="icons"><a href="https://tobyfox.bandcamp.com/" class="icon">
+        <svg>
+            <title>Bandcamp</title>
+            <use href="static/icons.svg#icon-bandcamp"></use>
+        </svg>
+    </a>, <a href="https://toby.fox/" class="icon">
+        <svg>
+            <title>External (toby.fox)</title>
+            <use href="static/icons.svg#icon-globe"></use>
+        </svg>
+    </a></span>)
+`
+
+exports[`test/snapshot/generateContributionLinks.js TAP generateContributionLinks (snapshot) > output 4`] = `
+<a href="artist/clark-powell/">Clark Powell</a>, <a href="artist/the-big-baddies/">Grounder & Scratch</a>, and <a href="artist/toby-fox/">Toby Fox</a>
+`
diff --git a/test/snapshot/generateContributionLinks.js b/test/snapshot/generateContributionLinks.js
new file mode 100644
index 00000000..10d225cd
--- /dev/null
+++ b/test/snapshot/generateContributionLinks.js
@@ -0,0 +1,50 @@
+import t from 'tap';
+import {testContentFunctions} from '../lib/content-function.js';
+
+testContentFunctions(t, 'generateContributionLinks (snapshot)', async (t, evaluate) => {
+  const artist1 = {
+    name: 'Clark Powell',
+    directory: 'clark-powell',
+    urls: ['https://soundcloud.com/plazmataz'],
+  };
+
+  const artist2 = {
+    name: 'Grounder & Scratch',
+    directory: 'the-big-baddies',
+    urls: [],
+  };
+
+  const artist3 = {
+    name: 'Toby Fox',
+    directory: 'toby-fox',
+    urls: ['https://tobyfox.bandcamp.com/', 'https://toby.fox/'],
+  };
+
+  const contributions = [
+    {who: artist1, what: null},
+    {who: artist2, what: 'Snooping'},
+    {who: artist3, what: 'Arrangement'},
+  ];
+
+  await evaluate.load();
+
+  evaluate.snapshot({
+    name: 'generateContributionLinks',
+    args: [contributions, {showContribution: true, showIcons: true}],
+  });
+
+  evaluate.snapshot({
+    name: 'generateContributionLinks',
+    args: [contributions, {showContribution: true, showIcons: false}],
+  });
+
+  evaluate.snapshot({
+    name: 'generateContributionLinks',
+    args: [contributions, {showContribution: false, showIcons: true}],
+  });
+
+  evaluate.snapshot({
+    name: 'generateContributionLinks',
+    args: [contributions, {showContribution: false, showIcons: false}],
+  });
+});