Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,96 @@
|
||||
// Generated, do not edit. sha256:6129a8bbffc98b951f97ab835b37848de841b315ab86079ee5c45996f7fe3fe5
|
||||
import { describe, it, beforeEach, mock } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
const opslag = new Map();
|
||||
const sleutel = (scope, key) => `${scope}::${key}`;
|
||||
let stand = null;
|
||||
|
||||
mock.module('../../client/data/_rpc.js', {
|
||||
namedExports: {
|
||||
async rpc(module, functie, ...args) {
|
||||
if (module === 'license-status' && functie === 'licenseStatus') return stand;
|
||||
if (module === 'preferences' && functie === 'getPref') {
|
||||
const [scope, key, fallback] = args;
|
||||
return opslag.has(sleutel(scope, key)) ? opslag.get(sleutel(scope, key)) : fallback;
|
||||
}
|
||||
if (module === 'preferences' && functie === 'setPref') {
|
||||
const [scope, key, waarde] = args;
|
||||
opslag.set(sleutel(scope, key), waarde);
|
||||
return null;
|
||||
}
|
||||
throw new Error(`onverwachte aanroep in deze test: ${module}.${functie}`);
|
||||
},
|
||||
decodeer: v => v,
|
||||
setRowGuard() {},
|
||||
rowGuardAan: () => false,
|
||||
},
|
||||
});
|
||||
|
||||
const { loadLicense, licenseFingerprint, licenseChangedSinceSeen, markLicenseSeen } =
|
||||
await import('../../client/license.js');
|
||||
|
||||
const GRATIS = {
|
||||
level: 'free', why: 'none', enforced: true, version: '1.0.0', installed: null,
|
||||
installedCovers: false, buyer: null, issued: null, max: { assets: 1 }, features: { ai: false },
|
||||
};
|
||||
const BETAALD = {
|
||||
level: 'full', why: 'licensed', enforced: true, version: '1.0.0',
|
||||
installed: { buyer: 'npub1abc', issued: '2026-09-21', majorFrom: 1, majorTo: 'unlimited' },
|
||||
installedCovers: true, buyer: 'npub1abc', issued: '2026-09-21', max: null, features: null,
|
||||
};
|
||||
|
||||
beforeEach(() => { opslag.clear(); stand = GRATIS; });
|
||||
|
||||
describe('de vingerafdruk van de licentie', () => {
|
||||
it('is gelijk voor twee keer dezelfde stand', () => {
|
||||
assert.equal(licenseFingerprint(GRATIS), licenseFingerprint({ ...GRATIS }));
|
||||
});
|
||||
|
||||
it('verschilt als de stand omslaat', () => {
|
||||
assert.notEqual(licenseFingerprint(GRATIS), licenseFingerprint(BETAALD));
|
||||
});
|
||||
|
||||
it('verschilt als een ANDERE licentie op dezelfde stand staat', () => {
|
||||
const ander = { ...BETAALD, buyer: 'npub1xyz', installed: { ...BETAALD.installed, buyer: 'npub1xyz' } };
|
||||
assert.notEqual(licenseFingerprint(BETAALD), licenseFingerprint(ander));
|
||||
});
|
||||
|
||||
it('verschilt als het bereik verschuift, ook bij dezelfde koper', () => {
|
||||
const smaller = { ...BETAALD, installed: { ...BETAALD.installed, majorTo: 1 } };
|
||||
assert.notEqual(licenseFingerprint(BETAALD), licenseFingerprint(smaller));
|
||||
});
|
||||
|
||||
it('verschilt als de REDEN verandert bij dezelfde stand', () => {
|
||||
assert.notEqual(licenseFingerprint(GRATIS), licenseFingerprint({ ...GRATIS, why: 'invalid' }));
|
||||
});
|
||||
|
||||
it('geeft een lege afdruk zonder momentopname, en gooit niet', () => {
|
||||
assert.equal(licenseFingerprint(null), '');
|
||||
});
|
||||
});
|
||||
|
||||
describe('is er iets te melden', () => {
|
||||
it('MELDT NIETS op de eerste ronde en legt de stand stil vast', async () => {
|
||||
assert.equal(await licenseChangedSinceSeen(), false);
|
||||
assert.equal(opslag.get(sleutel('license', 'seen')), undefined, 'er is nog niets geladen');
|
||||
|
||||
await loadLicense();
|
||||
assert.equal(await licenseChangedSinceSeen(), false, 'de eerste ronde meldt niets');
|
||||
assert.equal(opslag.get(sleutel('license', 'seen')), licenseFingerprint(GRATIS),
|
||||
'en hij legt de stand vast, anders meldt de tweede ronde het alsnog');
|
||||
assert.equal(await licenseChangedSinceSeen(), false, 'de tweede ronde ook niet');
|
||||
});
|
||||
|
||||
it('meldt het zodra de stand omslaat, en zwijgt weer als je gekeken hebt', async () => {
|
||||
await loadLicense();
|
||||
await licenseChangedSinceSeen();
|
||||
|
||||
stand = BETAALD;
|
||||
await loadLicense();
|
||||
assert.equal(await licenseChangedSinceSeen(), true, 'een nieuwe licentie is nieuws');
|
||||
|
||||
await markLicenseSeen();
|
||||
assert.equal(await licenseChangedSinceSeen(), false);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user