Files

67 lines
2.3 KiB
JavaScript
Raw Permalink Normal View History

2026-10-29 11:57:29 +01:00
// Generated, do not edit. sha256:39bdc4d7a5d894186d06fb91a6bd592c985897d148807099ceaa0916d6fa3d0d
import { describe, it, beforeEach } from 'node:test';
import assert from 'node:assert/strict';
const opslag = new Map();
globalThis.sessionStorage = {
getItem: k => (opslag.has(k) ? opslag.get(k) : null),
setItem: (k, v) => { opslag.set(k, String(v)); },
removeItem: k => { opslag.delete(k); },
};
const { setRowFocus, takeRowFocus } = await import('../../client/ui/row-focus.js');
const { CONFIG } = await import('../../shared/config.js');
beforeEach(() => opslag.clear());
describe('een focus doorgeven', () => {
it('geeft het id terug aan de tabel die hij noemt', () => {
setRowFocus('transfers', 184);
assert.equal(takeRowFocus('transfers'), 184);
});
it('geeft niets aan een ANDERE tabel, en laat de focus staan', () => {
setRowFocus('accounts', 3);
assert.equal(takeRowFocus('assets'), null);
assert.equal(takeRowFocus('accounts'), 3, 'de focus is niet opgegeten door de verkeerde tabel');
});
it('werkt maar één keer', () => {
setRowFocus('trades', 7);
assert.equal(takeRowFocus('trades'), 7);
assert.equal(takeRowFocus('trades'), null, 'anders springt de tabel bij elk volgend bezoek');
});
it('slaat niets op zonder tabel of zonder id', () => {
setRowFocus('', 3);
setRowFocus('assets', null);
assert.equal(opslag.get(CONFIG.FOCUS.ROW), undefined);
});
});
describe('een focus die te oud is', () => {
it('vervalt en wordt opgeruimd', () => {
opslag.set(CONFIG.FOCUS.ROW, JSON.stringify({
table: 'assets', id: 9, at: Date.now() - CONFIG.FOCUS.ROW_TTL_MS - 1,
}));
assert.equal(takeRowFocus('assets'), null);
assert.equal(opslag.get(CONFIG.FOCUS.ROW), undefined, 'blijft niet liggen tot het volgende bezoek');
});
it('een lading zonder tijdstempel vervalt ook', () => {
opslag.set(CONFIG.FOCUS.ROW, JSON.stringify({ table: 'assets', id: 9 }));
assert.equal(takeRowFocus('assets'), null);
});
});
describe('een onleesbare lading', () => {
it('geeft niets terug en blijft niet liggen', () => {
opslag.set(CONFIG.FOCUS.ROW, '{kapot');
assert.equal(takeRowFocus('assets'), null);
assert.equal(opslag.get(CONFIG.FOCUS.ROW), undefined);
});
it('geeft niets terug als er helemaal niets staat', () => {
assert.equal(takeRowFocus('assets'), null);
});
});