diff options
Diffstat (limited to 'test/unit/content')
| -rw-r--r-- | test/unit/content/dependencies/generateAlbumTrackList.js | 40 | ||||
| -rw-r--r-- | test/unit/content/dependencies/linkArtist.js | 31 | ||||
| -rw-r--r-- | test/unit/content/dependencies/linkContribution.js | 122 |
3 files changed, 0 insertions, 193 deletions
diff --git a/test/unit/content/dependencies/generateAlbumTrackList.js b/test/unit/content/dependencies/generateAlbumTrackList.js deleted file mode 100644 index 7b3ecd33..00000000 --- a/test/unit/content/dependencies/generateAlbumTrackList.js +++ /dev/null @@ -1,40 +0,0 @@ -import t from 'tap'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'generateAlbumTrackList (unit)', async (t, evaluate) => { - await evaluate.load({ - mock: { - generateAlbumTrackListItem: { - extraDependencies: ['html'], - data: track => track.name, - generate: (name, {html}) => - html.tag('li', `Item: ${name}`), - }, - }, - }); - - let readDuration = false; - - const track = (name, duration) => ({ - name, - get duration() { - readDuration = true; - return duration; - }, - }); - - const tracks = [ - track('Track 1', 30), - track('Track 2', 15), - ]; - - evaluate({ - name: 'generateAlbumTrackList', - args: [{ - trackSections: [{isDefaultTrackSection: true, tracks}], - tracks, - }], - }); - - t.notOk(readDuration, 'expect no access to track.duration property'); -}); diff --git a/test/unit/content/dependencies/linkArtist.js b/test/unit/content/dependencies/linkArtist.js deleted file mode 100644 index e6e19d2f..00000000 --- a/test/unit/content/dependencies/linkArtist.js +++ /dev/null @@ -1,31 +0,0 @@ -import t from 'tap'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'linkArtist (unit)', async (t, evaluate) => { - const artistObject = {}; - const linkTemplate = {}; - - await evaluate.load({ - mock: evaluate.mock(mock => ({ - linkThing: { - relations: mock.function('linkThing.relations', () => ({})) - .args([undefined, 'localized.artist', artistObject]) - .once(), - - data: mock.function('linkThing.data', () => ({})) - .args(['localized.artist', artistObject]) - .once(), - - generate: mock.function('linkThing.data', () => linkTemplate) - .once(), - } - })), - }); - - const result = evaluate({ - name: 'linkArtist', - args: [artistObject], - }); - - t.equal(result, linkTemplate); -}); diff --git a/test/unit/content/dependencies/linkContribution.js b/test/unit/content/dependencies/linkContribution.js deleted file mode 100644 index 94908901..00000000 --- a/test/unit/content/dependencies/linkContribution.js +++ /dev/null @@ -1,122 +0,0 @@ -import t from 'tap'; -import {testContentFunctions} from '#test-lib'; - -t.test('generateContributionLinks (unit)', async t => { - const who1 = { - name: 'Clark Powell', - directory: 'clark-powell', - urls: ['https://soundcloud.com/plazmataz'], - }; - - const who2 = { - name: 'Grounder & Scratch', - directory: 'the-big-baddies', - urls: [], - }; - - const who3 = { - name: 'Toby Fox', - directory: 'toby-fox', - urls: ['https://tobyfox.bandcamp.com/', 'https://toby.fox/'], - }; - - const what1 = null; - const what2 = 'Snooping'; - const what3 = 'Arrangement'; - - await testContentFunctions(t, 'generateContributionLinks (unit 1)', async (t, evaluate) => { - const slots = { - showContribution: true, - showIcons: true, - }; - - await evaluate.load({ - mock: evaluate.mock(mock => ({ - linkArtist: { - relations: mock.function('linkArtist.relations', () => ({})) - .args([undefined, who1]).next() - .args([undefined, who2]).next() - .args([undefined, who3]), - - data: mock.function('linkArtist.data', () => ({})) - .args([who1]).next() - .args([who2]).next() - .args([who3]), - - // This can be tweaked to return a specific (mocked) template - // for each artist if we need to test for slots in the future. - generate: mock.function('linkArtist.generate', () => 'artist link') - .repeat(3), - }, - - linkExternalAsIcon: { - data: mock.function('linkExternalAsIcon.data', () => ({})) - .args([who1.urls[0]]).next() - .args([who3.urls[0]]).next() - .args([who3.urls[1]]), - - generate: mock.function('linkExternalAsIcon.generate', () => 'icon') - .repeat(3), - } - })), - }); - - evaluate({ - name: 'linkContribution', - multiple: [ - {args: [{who: who1, what: what1}]}, - {args: [{who: who2, what: what2}]}, - {args: [{who: who3, what: what3}]}, - ], - slots, - }); - }); - - await testContentFunctions(t, 'generateContributionLinks (unit 2)', async (t, evaluate) => { - const slots = { - showContribution: false, - showIcons: false, - }; - - await evaluate.load({ - mock: evaluate.mock(mock => ({ - linkArtist: { - relations: mock.function('linkArtist.relations', () => ({})) - .args([undefined, who1]).next() - .args([undefined, who2]).next() - .args([undefined, who3]), - - data: mock.function('linkArtist.data', () => ({})) - .args([who1]).next() - .args([who2]).next() - .args([who3]), - - generate: mock.function(() => 'artist link') - .repeat(3), - }, - - // Even though icons are hidden, these are still called! The dependency - // tree is the same since whether or not the external icon links are - // shown is dependent on a slot, which is undefined and arbitrary at - // relations/data time (it might change on a whim at generate time). - linkExternalAsIcon: { - data: mock.function('linkExternalAsIcon.data', () => ({})) - .repeat(3), - - generate: mock.function('linkExternalAsIcon.generate', () => 'icon') - .repeat(3), - }, - })), - }); - - evaluate({ - name: 'linkContribution', - multiple: [ - {args: [{who: who1, what: what1}]}, - {args: [{who: who2, what: what2}]}, - {args: [{who: who3, what: what3}]}, - ], - slots, - }); - }); -}); |