67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
// 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);
|
||
|
|
});
|
||
|
|
});
|