Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,80 @@
|
||||
// Generated, do not edit. sha256:2e6bfe033c662af65c973904363a2a3b198b4658a4ee3fa7b11729b6619711bf
|
||||
import { describe, it, beforeEach, afterEach, mock } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { mkdtempSync, rmSync, readFileSync, writeFileSync, existsSync } from 'node:fs';
|
||||
import { tmpdir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import { CONFIG } from '../../shared/config.js';
|
||||
|
||||
let geldig = true;
|
||||
const echt = await import('../../server/license.mjs');
|
||||
mock.module('../../server/license.mjs', {
|
||||
namedExports: { ...echt, verifySignature: () => geldig },
|
||||
});
|
||||
|
||||
const { installLicense } = await import('../../server/data/license-install.js');
|
||||
|
||||
const BODY = { buyer: 'a'.repeat(64), level: 'full', issued: '2026-09-19', majorFrom: 1, majorTo: 'unlimited' };
|
||||
const BESTAND = JSON.stringify({ format: CONFIG.LICENSE.FORMAT, license: BODY, signature: 'b'.repeat(128) });
|
||||
|
||||
let DIR;
|
||||
let vorige;
|
||||
const pad = () => join(DIR, CONFIG.LICENSE.FILE_NAME);
|
||||
|
||||
beforeEach(() => {
|
||||
vorige = process.env.ASSETAPP_DATA_DIR;
|
||||
DIR = mkdtempSync(join(tmpdir(), 'lic-inst-'));
|
||||
process.env.ASSETAPP_DATA_DIR = DIR;
|
||||
geldig = true;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
if (vorige === undefined) delete process.env.ASSETAPP_DATA_DIR;
|
||||
else process.env.ASSETAPP_DATA_DIR = vorige;
|
||||
rmSync(DIR, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
describe('een licentie installeren', () => {
|
||||
it('schrijft hem weg en meldt of hij deze versie dekt', async () => {
|
||||
const uit = await installLicense(BESTAND);
|
||||
assert.deepEqual(uit.license, BODY);
|
||||
assert.equal(typeof uit.covers, 'boolean');
|
||||
assert.ok(existsSync(pad()));
|
||||
const opSchijf = JSON.parse(readFileSync(pad(), 'utf8'));
|
||||
assert.deepEqual(Object.keys(opSchijf), ['format', 'license', 'signature']);
|
||||
});
|
||||
|
||||
it('weigert onleesbare invoer met de reden erbij, en schrijft NIETS', async () => {
|
||||
await assert.rejects(() => installLicense('geen json'), (fout) => {
|
||||
assert.equal(fout.key, 'license.installUnreadable');
|
||||
assert.match(fout.params.reason, /JSON/);
|
||||
return true;
|
||||
});
|
||||
assert.equal(existsSync(pad()), false);
|
||||
});
|
||||
|
||||
it('weigert een verkeerde handtekening, en schrijft NIETS', async () => {
|
||||
geldig = false;
|
||||
await assert.rejects(() => installLicense(BESTAND), (fout) => {
|
||||
assert.equal(fout.key, 'license.installBadSignature');
|
||||
return true;
|
||||
});
|
||||
assert.equal(existsSync(pad()), false);
|
||||
});
|
||||
|
||||
it('LAAT EEN WERKENDE LICENTIE STAAN als de nieuwe niet deugt', async () => {
|
||||
await installLicense(BESTAND);
|
||||
const voor = readFileSync(pad(), 'utf8');
|
||||
|
||||
geldig = false;
|
||||
await assert.rejects(() => installLicense(JSON.stringify({ format: 1, license: { ...BODY, majorFrom: 9 }, signature: 'c'.repeat(128) })));
|
||||
await assert.rejects(() => installLicense('{ kapot'));
|
||||
assert.equal(readFileSync(pad(), 'utf8'), voor, 'de bestaande licentie is aangeraakt');
|
||||
});
|
||||
|
||||
it('overschrijft een BESTAAND bestand wel als de nieuwe deugt', async () => {
|
||||
writeFileSync(pad(), 'oude rommel');
|
||||
await installLicense(BESTAND);
|
||||
assert.deepEqual(JSON.parse(readFileSync(pad(), 'utf8')).license, BODY);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user