From 5b0cca036702b0726d54f90e407a06a3c80f3d66 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 4 Apr 2023 15:49:14 -0300 Subject: test: generateAlbumTrackListItem (snapshot) --- .../generateAlbumTrackListItem.js.test.cjs | 21 +++++++ test/snapshot/generateAlbumTrackListItem.js | 66 ++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 tap-snapshots/test/snapshot/generateAlbumTrackListItem.js.test.cjs create mode 100644 test/snapshot/generateAlbumTrackListItem.js diff --git a/tap-snapshots/test/snapshot/generateAlbumTrackListItem.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumTrackListItem.js.test.cjs new file mode 100644 index 00000000..c561d34b --- /dev/null +++ b/tap-snapshots/test/snapshot/generateAlbumTrackListItem.js.test.cjs @@ -0,0 +1,21 @@ +/* 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/generateAlbumTrackListItem.js TAP generateAlbumTrackListItem (snapshot) > basic behavior 1`] = ` +
  • (0:54) Final Spice by Toby Fox and James Roach
  • +` + +exports[`test/snapshot/generateAlbumTrackListItem.js TAP generateAlbumTrackListItem (snapshot) > hide artists if inherited from album 1`] = ` +
  • (_:__) Same artists, same order
  • +
  • (_:__) Same artists, different order
  • +
  • (_:__) Extra artist by Toby Fox, James Roach, and Clark Powell
  • +
  • (_:__) Missing artist by Toby Fox
  • +` + +exports[`test/snapshot/generateAlbumTrackListItem.js TAP generateAlbumTrackListItem (snapshot) > zero duration, zero artists 1`] = ` +
  • (_:__) You have got to be about the most superficial commentator on con-langues since the idiotic B. Gilson.
  • +` diff --git a/test/snapshot/generateAlbumTrackListItem.js b/test/snapshot/generateAlbumTrackListItem.js new file mode 100644 index 00000000..e87c6de0 --- /dev/null +++ b/test/snapshot/generateAlbumTrackListItem.js @@ -0,0 +1,66 @@ +import t from 'tap'; +import {testContentFunctions} from '../lib/content-function.js'; + +testContentFunctions(t, 'generateAlbumTrackListItem (snapshot)', async (t, evaluate) => { + const artist1 = {directory: 'toby-fox', name: 'Toby Fox', urls: ['https://toby.fox/']}; + const artist2 = {directory: 'james-roach', name: 'James Roach'}; + const artist3 = {directory: 'clark-powell', name: 'Clark Powell'}; + const artist4 = {directory: ''} + const albumContribs = [{who: artist1}, {who: artist2}]; + + await evaluate.load(); + + evaluate.snapshot('basic behavior', { + name: 'generateAlbumTrackListItem', + args: [ + { + // Just pretend Hiveswap Act 1 OST doesn't have its own Artists field OK? + // We test that kind of case later! + name: 'Final Spice', + directory: 'final-spice', + duration: 54, + color: '#33cc77', + artistContribs: [ + {who: artist1, what: 'composition & arrangement'}, + {who: artist2, what: 'arrangement'}, + ], + }, + {artistContribs: []}, + ], + }); + + evaluate.snapshot('zero duration, zero artists', { + name: 'generateAlbumTrackListItem', + args: [ + { + name: 'You have got to be about the most superficial commentator on con-langues since the idiotic B. Gilson.', + directory: 'you-have-got-to-be-about-the-most-superficial-commentator-on-con-langues-since-the-idiotic-b-gilson', + duration: 0, + artistContribs: [], + }, + {artistContribs: []}, + ], + }); + + evaluate.snapshot('hide artists if inherited from album', { + name: 'generateAlbumTrackListItem', + multiple: [ + {args: [ + {directory: 'track1', name: 'Same artists, same order', artistContribs: [{who: artist1}, {who: artist2}]}, + {artistContribs: albumContribs}, + ]}, + {args: [ + {directory: 'track2', name: 'Same artists, different order', artistContribs: [{who: artist2}, {who: artist1}]}, + {artistContribs: albumContribs}, + ]}, + {args: [ + {directory: 'track3', name: 'Extra artist', artistContribs: [{who: artist1}, {who: artist2}, {who: artist3}]}, + {artistContribs: albumContribs}, + ]}, + {args: [ + {directory: 'track4', name: 'Missing artist', artistContribs: [{who: artist1}]}, + {artistContribs: albumContribs}, + ]}, + ], + }); +}); -- cgit 1.3.0-6-gf8a5