selfdefined/11ty/shortcodes/__tests__/renderDefinitionContentNextEntries.spec.js
Oscar 7f7943d2fc
🌓 Adds Dark Mode (#210)
* feat(dark mode): set up first set of colors

* feat(dark mode): define state colours

* 🧹

* feat(dark mode): variablify all teh wordz

* feat(dark mode): set colors on body

* feat(dark mode): replace hard coded color value

* feat(dark mode): 🌑

* feat(a11y): update link focus styles

- restores visible focus in windows high contrast mode
- increases visibility in boxes with bg colour

* feat(dark mode): enable postcss

* 💅

* feat(dark mode): add user control

* chore: use generic headline name

* feat(dark mode): hide switch until script loads

* feat(dark mode): increase link contrast

* add content warning to footer nav partial

* feat(dark mode): replace hard coded colour value in alertbox

* feat(dark mode): tone down text colour

* feat(dark mode): properly invert code elements

* 🧹 move box styles into own partial

* feat(dark mode): use darker colour as background for links
2020-08-26 03:10:24 -07:00

68 lines
2.5 KiB
JavaScript

import test from 'ava';
import testCollection from '../../../_util/_mocks/testCollection.json';
import renderDefinitionContentNextEntries from '../renderDefinitionContentNextEntries';
test('first item', (t) => {
const { title, slug } = testCollection[0].data;
t.is(
renderDefinitionContentNextEntries(title, slug, testCollection),
`<section class="definition-navigation definition__further-definitions_nav">
<h2 class="visually-hidden">Browse</h2>
<div><h3 class="smcp-headline" id="context-nav-previous">Previous words</h3>
<nav class="definition-navigation__nav" aria-labelledby="context-nav-previous">
</nav>
</div>
<div><h3 class="smcp-headline" id="context-nav-next">Next words</h3>
<nav class="definition-navigation__nav" aria-labelledby="context-nav-next"><ul class="definition-navigation__list"><li><a href=/definitions/ableism/>Ableism</a></li><li><a href=/definitions/barbaric/>Barbaric</a></li><li><a href=/definitions/biromantic/>Biromantic</a></li></ul></nav>
</div>
</section>`
);
});
test('last item', (t) => {
const { title, slug } = testCollection[testCollection.length - 1].data;
t.is(
renderDefinitionContentNextEntries(title, slug, testCollection),
`<section class="definition-navigation definition__further-definitions_nav">
<h2 class="visually-hidden">Browse</h2>
<div><h3 class="smcp-headline" id="context-nav-previous">Previous words</h3>
<nav class="definition-navigation__nav" aria-labelledby="context-nav-previous">
<ul class="definition-navigation__list"><li><a href=/definitions/transgender/>Transgender</a></li><li><a href=/definitions/unreal/>unreal</a></li><li><a href=/definitions/white-fragility/>White Fragility</a></li></ul></nav>
</div>
<div><h3 class="smcp-headline" id="context-nav-next">Next words</h3>
<nav class="definition-navigation__nav" aria-labelledby="context-nav-next"></nav>
</div>
</section>`
);
});
test('throws if no title has been passed', (t) => {
const error = t.throws(() => {
renderDefinitionContentNextEntries();
});
t.is(error.message, 'E_NO_TITLE');
});
test('throws if no slug has been passed', (t) => {
const error = t.throws(() => {
renderDefinitionContentNextEntries('title');
});
t.is(error.message, 'E_NO_SLUG');
});
test('throws if no collection has been passed', (t) => {
const error = t.throws(() => {
renderDefinitionContentNextEntries(
testCollection[0].data.title,
testCollection[0].data.slug
);
});
t.is(error.message, 'E_NO_COLLECTION');
});