Files
2026-10-29 11:57:29 +01:00

40 lines
1.8 KiB
JavaScript

// Generated, do not edit. sha256:3e7be8fe91199a27e369fbae661fe27d142febd9a3610db0e0958e0e9a82d5ec
import { describe, it, mock } from 'node:test';
import assert from 'node:assert/strict';
import { SYSTEM_PAGE } from '../../shared/config.js';
let dicht = new Set();
mock.module('../../client/license.js', { namedExports: { locked: f => dicht.has(f) } });
const { registerSystemTab, systemTabs } = await import('../../client/pages/system-tabs.js');
const T = SYSTEM_PAGE.TABS;
const leeg = () => {};
registerSystemTab({ id: T.LICENSE, render: leeg });
registerSystemTab({ id: T.INTEGRATIONS, feature: 'sourceMatrix', render: leeg });
registerSystemTab({ id: T.SETTINGS, render: leeg });
registerSystemTab({ id: T.INTEGRATIONS, label: 'nav.connections', render: leeg });
registerSystemTab({ id: T.DATA, feature: 'data', render: leeg });
const ids = () => systemTabs().map(x => x.id);
const integraties = () => systemTabs().find(x => x.id === T.INTEGRATIONS);
describe('systemTabs', () => {
it('volledig: de betaalde tabs, in de volgorde van SYSTEM_PAGE.TABS', () => {
dicht = new Set();
assert.deepEqual(ids(), [T.SETTINGS, T.INTEGRATIONS, T.DATA, T.LICENSE]);
assert.equal(integraties().feature, 'sourceMatrix', 'de betaalde registratie wint van de vervanger');
assert.equal(integraties().label, 'nav.integrations');
});
it('gratis: een betaalde tab zonder vervanger verdwijnt, een met vervanger wordt die vervanger', () => {
dicht = new Set(['sourceMatrix', 'data']);
assert.deepEqual(ids(), [T.SETTINGS, T.INTEGRATIONS, T.LICENSE]);
assert.equal(integraties().feature, null);
assert.equal(integraties().label, 'nav.connections');
});
it('weigert een tab die SYSTEM_PAGE niet kent', () => {
assert.throws(() => registerSystemTab({ id: 'bestaat-niet', render: leeg }), /Unknown system tab/);
});
});