// Generated, do not edit. sha256:3aaa6e524933ad9658661ecb7b45494d44629620bf29811a6f9255c236d13e47 import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; const { attentionDotHtml, attentionHasProblem, attentionDimmed } = await import('../../client/ui/attention.js'); const item = (extra = {}) => ({ id: 'x', severity: 'attention', label: 'iets', fade: 'full', ...extra }); describe('de kleur van het bolletje', () => { it('is accent bij een indicatie', () => { const html = attentionDotHtml([item()]); assert.match(html, /class="nav-attention"/, 'geen extra klasse betekent de basis, en die is accent'); }); it('is rood zodra er iets stuk is', () => { assert.match(attentionDotHtml([item({ severity: 'problem' })]), /is-problem/); }); it('laat één probleem de hele dot kleuren, ook naast indicaties', () => { const html = attentionDotHtml([item(), item({ id: 'y', severity: 'problem' }), item({ id: 'z' })]); assert.match(html, /is-problem/); }); it('behandelt een ontbrekende ernst als indicatie en niet als probleem', () => { assert.doesNotMatch(attentionDotHtml([{ id: 'x', label: 'iets', fade: 'full' }]), /is-problem/); }); }); describe('de vervaging', () => { it('dimt pas als er niets meer vol is', () => { assert.match(attentionDotHtml([item({ fade: 'dim' })]), /is-dim/); assert.doesNotMatch(attentionDotHtml([item({ fade: 'dim' }), item({ id: 'y' })]), /is-dim/, 'één vol item houdt de dot vol'); }); }); describe('de gedeelde regel, los van het element', () => { it('noemt een leeg of ontbrekend stel niet vervaagd en niet stuk', () => { for (const leeg of [[], null, undefined]) { assert.equal(attentionHasProblem(leeg), false); assert.equal(attentionDimmed(leeg), false, 'niets is niet hetzelfde als vervaagd'); } }); it('kleurt op de zwaarste en dimt op de zwakste', () => { const vol = item(); const vaag = item({ id: 'y', fade: 'dim' }); const stuk = item({ id: 'z', severity: 'problem' }); assert.equal(attentionHasProblem([vol, stuk]), true, 'één probleem is genoeg'); assert.equal(attentionDimmed([vol, vaag]), false, 'één vol item houdt het geheel vol'); assert.equal(attentionDimmed([vaag]), true); }); }); describe('de rand van het geval', () => { it('tekent niets zonder items', () => { assert.equal(attentionDotHtml([]), ''); assert.equal(attentionDotHtml(null), ''); }); it('zet de labels als hint, en escapet ze', () => { const html = attentionDotHtml([item({ label: 'een "raar" label' })]); assert.match(html, /title="een "raar" label"/); }); });