58 lines
2.4 KiB
JavaScript
58 lines
2.4 KiB
JavaScript
// Generated, do not edit. sha256:e5fc151e66dc65fbc4a3b92e5607e9c11c93c4da41ceb4d39b4aa634c9cb82b3
|
|
import { describe, it, beforeEach, mock } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
import { toSearchName } from '../../shared/search-name.js';
|
|
import { createDbHarness } from '../helpers/db-node.mjs';
|
|
|
|
const harness = createDbHarness();
|
|
mock.module('../../server/db.js', { namedExports: harness.exports });
|
|
|
|
const { getAssetNote, setAssetNote } = await import('../../server/data/asset-notes.js');
|
|
|
|
let btc;
|
|
beforeEach(() => {
|
|
harness.recreate();
|
|
harness.exports.run(
|
|
`INSERT INTO Asset (symbol, name, searchName, kind, unit, subunit, decimals, displayUnit) VALUES ('BTC','Bitcoin',?,'crypto','BTC',NULL,8,'unit')`,
|
|
[toSearchName('Bitcoin')]);
|
|
btc = harness.exports.lastId();
|
|
});
|
|
|
|
describe('setAssetNote / getAssetNote', () => {
|
|
it('geeft null zonder notitie en de tekst na opslaan', async () => {
|
|
assert.equal(getAssetNote(btc), null);
|
|
const uit = await setAssetNote(btc, '2026-09-26 14:32 gekocht na de dip');
|
|
assert.equal(uit.body, '2026-09-26 14:32 gekocht na de dip');
|
|
assert.equal(getAssetNote(btc).body, uit.body);
|
|
assert.ok(uit.createdAt);
|
|
});
|
|
|
|
it('wijzigt de ene notitie en laat createdAt staan', async () => {
|
|
await setAssetNote(btc, 'eerste');
|
|
harness.exports.run(`UPDATE AssetNote SET createdAt = '2026-01-01T00:00:00.000Z'`);
|
|
const uit = await setAssetNote(btc, 'tweede');
|
|
assert.equal(uit.body, 'tweede');
|
|
assert.equal(uit.createdAt, '2026-01-01T00:00:00.000Z');
|
|
assert.equal(harness.exports.one(`SELECT COUNT(*) AS n FROM AssetNote`).n, 1, 'één notitie per asset');
|
|
});
|
|
|
|
it('haalt de rij weg bij een lege of alleen-witruimte notitie', async () => {
|
|
await setAssetNote(btc, 'iets');
|
|
assert.equal(await setAssetNote(btc, ' \n '), null);
|
|
assert.equal(harness.exports.one(`SELECT COUNT(*) AS n FROM AssetNote`).n, 0);
|
|
await setAssetNote(btc, 'iets');
|
|
assert.equal(await setAssetNote(btc, null), null, 'geen tekst is leeg');
|
|
});
|
|
|
|
it('weigert een onbekend asset', async () => {
|
|
await assert.rejects(() => setAssetNote(btc + 99, 'x'), /does not exist/);
|
|
});
|
|
|
|
it('verdwijnt met zijn asset', async () => {
|
|
await setAssetNote(btc, 'weg ermee');
|
|
harness.exports.run(`DELETE FROM Asset WHERE id = ?`, [btc]);
|
|
assert.equal(harness.exports.one(`SELECT COUNT(*) AS n FROM AssetNote`).n, 0);
|
|
});
|
|
});
|