diff options
-rw-r--r-- | tap-snapshots/test/snapshot/linkExternal.js.test.cjs | 43 | ||||
-rw-r--r-- | test/snapshot/linkExternal.js | 57 |
2 files changed, 100 insertions, 0 deletions
diff --git a/tap-snapshots/test/snapshot/linkExternal.js.test.cjs b/tap-snapshots/test/snapshot/linkExternal.js.test.cjs new file mode 100644 index 00000000..e4376810 --- /dev/null +++ b/tap-snapshots/test/snapshot/linkExternal.js.test.cjs @@ -0,0 +1,43 @@ +/* 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/linkExternal.js TAP linkExternal (snapshot) > basic domain matches 1`] = ` +<a href="https://homestuck.bandcamp.com/" class="nowrap">Bandcamp</a> +<a href="https://soundcloud.com/plazmataz" class="nowrap">SoundCloud</a> +<a href="https://aeritus.tumblr.com/" class="nowrap">Tumblr</a> +<a href="https://twitter.com/awkwarddoesart" class="nowrap">Twitter</a> +<a href="https://www.deviantart.com/chesswanderlust-sama" class="nowrap">DeviantArt</a> +<a href="https://en.wikipedia.org/wiki/Haydn_Quartet_(vocal_ensemble)" class="nowrap">Wikipedia</a> +<a href="https://www.poetryfoundation.org/poets/christina-rossetti" class="nowrap">Poetry Foundation</a> +<a href="https://www.instagram.com/levc_egm/" class="nowrap">Instagram</a> +<a href="https://www.patreon.com/CecilyRenns" class="nowrap">Patreon</a> +<a href="https://open.spotify.com/artist/63SNNpNOicDzG3LY82G4q3" class="nowrap">Spotify</a> +<a href="https://buzinkai.newgrounds.com/" class="nowrap">Newgrounds</a> +` + +exports[`test/snapshot/linkExternal.js TAP linkExternal (snapshot) > custom domains for common platforms 1`] = ` +<a href="https://music.solatrus.com/" class="nowrap">music.solatrus.com</a> +<a href="https://types.pl/" class="nowrap">Mastodon (types.pl)</a> +` + +exports[`test/snapshot/linkExternal.js TAP linkExternal (snapshot) > custom matches - type: album 1`] = ` +<a href="https://youtu.be/abc" class="nowrap">YouTube (full album)</a> +<a href="https://youtube.com/watch?v=abc" class="nowrap">YouTube (full album)</a> +<a href="https://youtube.com/Playlist?list=kweh" class="nowrap">YouTube (playlist)</a> +<a href="https://youtu.be/abc" class="nowrap">YouTube</a> +<a href="https://youtu.be/abc?list=kweh" class="nowrap">YouTube</a> +<a href="https://youtube.com/watch?v=abc" class="nowrap">YouTube</a> +<a href="https://youtube.com/watch?v=abc&list=kweh" class="nowrap">YouTube</a> +` + +exports[`test/snapshot/linkExternal.js TAP linkExternal (snapshot) > missing domain (arbitrary local path) 1`] = ` +<a href="/foo/bar/baz.mp3" class="nowrap">Wiki Archive (local upload)</a> +` + +exports[`test/snapshot/linkExternal.js TAP linkExternal (snapshot) > unknown domain (arbitrary world wide web path) 1`] = ` +<a href="https://snoo.ping.as/usual/i/see/" class="nowrap">snoo.ping.as</a> +` diff --git a/test/snapshot/linkExternal.js b/test/snapshot/linkExternal.js new file mode 100644 index 00000000..9661aead --- /dev/null +++ b/test/snapshot/linkExternal.js @@ -0,0 +1,57 @@ +import t from 'tap'; +import {testContentFunctions} from '../lib/content-function.js'; + +testContentFunctions(t, 'linkExternal (snapshot)', async (t, evaluate) => { + await evaluate.load(); + + evaluate.snapshot('missing domain (arbitrary local path)', { + name: 'linkExternal', + args: ['/foo/bar/baz.mp3'] + }); + + evaluate.snapshot('unknown domain (arbitrary world wide web path)', { + name: 'linkExternal', + args: ['https://snoo.ping.as/usual/i/see/'], + }); + + evaluate.snapshot('basic domain matches', { + name: 'linkExternal', + multiple: [ + {args: ['https://homestuck.bandcamp.com/']}, + {args: ['https://soundcloud.com/plazmataz']}, + {args: ['https://aeritus.tumblr.com/']}, + {args: ['https://twitter.com/awkwarddoesart']}, + {args: ['https://www.deviantart.com/chesswanderlust-sama']}, + {args: ['https://en.wikipedia.org/wiki/Haydn_Quartet_(vocal_ensemble)']}, + {args: ['https://www.poetryfoundation.org/poets/christina-rossetti']}, + {args: ['https://www.instagram.com/levc_egm/']}, + {args: ['https://www.patreon.com/CecilyRenns']}, + {args: ['https://open.spotify.com/artist/63SNNpNOicDzG3LY82G4q3']}, + {args: ['https://buzinkai.newgrounds.com/']}, + ], + }); + + evaluate.snapshot('custom matches - type: album', { + name: 'linkExternal', + multiple: [ + {args: ['https://youtu.be/abc', {type: 'album'}]}, + {args: ['https://youtube.com/watch?v=abc', {type: 'album'}]}, + {args: ['https://youtube.com/Playlist?list=kweh', {type: 'album'}]}, + + // Reuse default when no type specified + {args: ['https://youtu.be/abc']}, + {args: ['https://youtu.be/abc?list=kweh']}, + {args: ['https://youtube.com/watch?v=abc']}, + {args: ['https://youtube.com/watch?v=abc&list=kweh']}, + ], + }); + + evaluate.snapshot('custom domains for common platforms', { + name: 'linkExternal', + multiple: [ + // Just one domain of each platform is OK here + {args: ['https://music.solatrus.com/']}, + {args: ['https://types.pl/']}, + ], + }); +}); |