Files
AtreidesAssetsFree/tests/ui/widget-registry.test.mjs
T
2026-10-29 11:57:29 +01:00

37 lines
1.6 KiB
JavaScript

// Generated, do not edit. sha256:15dbf19377a08dba5f9a565fd3575f87341d62828d1e85351115ec01a421c123
import { describe, it, mock } from 'node:test';
import assert from 'node:assert/strict';
let dicht = new Set();
mock.module('../../client/license.js', { namedExports: { locked: f => dicht.has(f) } });
const { registerWidget, availableWidgets } = await import('../../client/widgets/registry.js');
const klok = () => {};
const klokInstelling = () => {};
const signaal = () => {};
const signaalInstelling = () => {};
registerWidget('clocks', { render: klok, settings: klokInstelling });
registerWidget('signal', { render: signaal, settings: signaalInstelling, feature: 'signals' });
describe('availableWidgets', () => {
it('volledig: elke widget met zijn instellingen', () => {
dicht = new Set();
const { renderers, settings } = availableWidgets();
assert.deepEqual(Object.keys(renderers).sort(), ['clocks', 'signal']);
assert.equal(settings.signal, signaalInstelling);
});
it('gratis: een betaalde widget verdwijnt, ook zijn instellingen', () => {
dicht = new Set(['signals']);
const { renderers, settings } = availableWidgets();
assert.deepEqual(Object.keys(renderers), ['clocks']);
assert.equal(settings.signal, undefined);
assert.equal(settings.clocks, klokInstelling, 'een widget zonder vlag blijft staan');
});
it('weigert een onbekend type en een tweede registratie', () => {
assert.throws(() => registerWidget('bestaat-niet', { render: klok }), /Unknown widget type/);
assert.throws(() => registerWidget('clocks', { render: klok }), /registered twice/);
});
});