« get me outta code hell

test: generateTrackReleaseInfo (snapshot) - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-06-13 13:14:35 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-06-13 13:14:35 -0300
commitafdc1e4bee3eba30a83ec3f71617573331d98169 (patch)
treeec0aba7f6e13a826b8a138f46914dd38127e09ca
parent444cb054d5d18f320680e3badee453af1cc17d88 (diff)
test: generateTrackReleaseInfo (snapshot)
-rw-r--r--tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs36
-rw-r--r--test/snapshot/generateTrackReleaseInfo.js51
2 files changed, 87 insertions, 0 deletions
diff --git a/tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs b/tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs
new file mode 100644
index 00000000..b72680ae
--- /dev/null
+++ b/tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs
@@ -0,0 +1,36 @@
+/* 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/generateTrackReleaseInfo.js TAP linkArtist (snapshot) > basic behavior 1`] = `
+<p>
+    By <a href="artist/toby-fox/">Toby Fox</a>.
+    <br>
+    Released 11/29/2011.
+    <br>
+    Duration: 0:58.
+</p>
+<p>Listen on <a href="https://soundcloud.com/foo" class="nowrap">SoundCloud</a> or <a href="https://youtube.com/watch?v=bar" class="nowrap">YouTube</a>.</p>
+`
+
+exports[`test/snapshot/generateTrackReleaseInfo.js TAP linkArtist (snapshot) > cover artist contribs, non-unique 1`] = `
+<p>By <a href="artist/toby-fox/">Toby Fox</a>.</p>
+<p>This wiki doesn&apos;t have any listening links for <i>Suspicious Track</i>.</p>
+`
+
+exports[`test/snapshot/generateTrackReleaseInfo.js TAP linkArtist (snapshot) > cover artist contribs, unique 1`] = `
+<p>
+    By <a href="artist/toby-fox/">Toby Fox</a>.
+    <br>
+    Cover art by <a href="artist/alpaca/">Alpaca</a> (🔥).
+</p>
+<p>This wiki doesn&apos;t have any listening links for <i>Suspicious Track</i>.</p>
+`
+
+exports[`test/snapshot/generateTrackReleaseInfo.js TAP linkArtist (snapshot) > reduced details 1`] = `
+<p>By <a href="artist/toby-fox/">Toby Fox</a>.</p>
+<p>This wiki doesn&apos;t have any listening links for <i>Suspicious Track</i>.</p>
+`
diff --git a/test/snapshot/generateTrackReleaseInfo.js b/test/snapshot/generateTrackReleaseInfo.js
new file mode 100644
index 00000000..c9c40684
--- /dev/null
+++ b/test/snapshot/generateTrackReleaseInfo.js
@@ -0,0 +1,51 @@
+import t from 'tap';
+import {testContentFunctions} from '../lib/content-function.js';
+
+testContentFunctions(t, 'linkArtist (snapshot)', async (t, evaluate) => {
+  await evaluate.load();
+
+  const artistContribs = [{who: {name: 'Toby Fox', directory: 'toby-fox'}, what: null}];
+  const coverArtistContribs = [{who: {name: 'Alpaca', directory: 'alpaca'}, what: '🔥'}];
+
+  evaluate.snapshot('basic behavior', {
+    name: 'generateTrackReleaseInfo',
+    args: [{
+      artistContribs,
+      name: 'An Apple Disaster!!',
+      date: new Date('2011-11-30'),
+      duration: 58,
+      urls: ['https://soundcloud.com/foo', 'https://youtube.com/watch?v=bar'],
+    }],
+  });
+
+  const sparse = {
+    artistContribs,
+    name: 'Suspicious Track',
+    date: null,
+    duration: null,
+    urls: [],
+  };
+
+  evaluate.snapshot('reduced details', {
+    name: 'generateTrackReleaseInfo',
+    args: [sparse],
+  });
+
+  evaluate.snapshot('cover artist contribs, non-unique', {
+    name: 'generateTrackReleaseInfo',
+    args: [{
+      ...sparse,
+      coverArtistContribs,
+      hasUniqueCoverArt: false,
+    }],
+  });
+
+  evaluate.snapshot('cover artist contribs, unique', {
+    name: 'generateTrackReleaseInfo',
+    args: [{
+      ...sparse,
+      coverArtistContribs,
+      hasUniqueCoverArt: true,
+    }],
+  });
+});