Changes in test/conversations.test.js [2365630:41de7cb] in Klonkt
- File:
-
- 1 edited
-
test/conversations.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/conversations.test.js
r2365630 r41de7cb 41 41 // Een PUBLIEK antwoord aan een vreemde is geen gesprek. 42 42 sent('mijn-publiek', VREEMDE, '2026-08-09T12:00:00Z', 'public'); 43 44 // ── De vorm van een stempel ───────────────────────────────────────────────45 //46 // Barts melding (14-8): in Berichten stond een bericht van 00:30 boven een47 // antwoord van 20:22 de avond ervoor, op iOS en op Android. De oorzaak zat48 // niet in de clients maar hier: de twee poten van de unie leverden een ANDERE49 // VORM. SQLite's CURRENT_TIMESTAMP schrijft '2026-08-13 22:30:12', een object50 // draagt '2026-08-13T20:22:00Z', en soms met milliseconden erbij. Als tekst51 // vergeleken staat op plek 10 een spatie tegen een T, en een spatie is kleiner52 // -- dus stond binnen dezelfde dag alles wat jij stuurde vóór alles wat53 // binnenkwam.54 //55 // De toetsen hierboven gebruikten overal dezelfde ISO-vorm en konden hier dus56 // niet op falen. Deze zet ze door elkaar, precies zoals de echte database.57 //58 // Eigen site, want de toetsen hierboven tellen ALLE gesprekken van 'kind' en59 // een gezicht erbij zou ze laten vallen om een reden die er niets mee te maken60 // heeft.61 db.prepare('INSERT INTO sites (id, slug, title, owner_id) VALUES (?,?,?,?)').run('s2', 'buur', 'Buur', 'u1');62 const BUURMAN = 'https://elders/u/buurman';63 const kwam = (uri, stamp) =>64 db.prepare(`INSERT INTO ap_mentions (slug, object_uri, actor_uri, actor_name, content, published)65 VALUES ('buur', ?, ?, 'buurman', '<p>hoi</p>', ?)`).run(uri, BUURMAN, stamp);66 const ging = (id, stamp) =>67 db.prepare(`INSERT INTO ap_outbox (id, site_slug, post_id, to_actor, to_actors, content, visibility, created_at)68 VALUES (?, 'buur', 'p1', ?, ?, '<p>terug</p>', 'direct', ?)`)69 .run(id, BUURMAN, JSON.stringify([BUURMAN]), stamp);70 71 kwam('https://elders/n/buur-mid', '2026-08-13T14:17:45.000Z');72 ging('mijn-buur-1', '2026-08-13 16:16:00');73 kwam('https://elders/n/buur-avond', '2026-08-13T20:22:00Z');74 ging('mijn-buur-2', '2026-08-13 22:30:12');75 76 test('vormen door elkaar sorteren op de KLOK, niet op hun schrijfwijze', () => {77 const talk = AP.conversationHistory('buur', BUURMAN, { limit: 60 });78 assert.deepEqual(talk.rows.map((r) => r.ref), [79 'mijn-buur-2', // 22:3080 'https://elders/n/buur-avond', // 20:2281 'mijn-buur-1', // 16:1682 'https://elders/n/buur-mid', // 14:1783 ], 'nieuwste eerst, om en om -- niet eerst al het uitgaande');84 });85 86 test('de stempel komt er in EEN vorm uit, want de client rekent ermee', () => {87 // new Date('2026-08-13 22:30:12') leest in JavaScript als LOKALE tijd en88 // '...T22:30:12Z' als UTC. Dezelfde rij gaf dus een leeftijd die per vorm89 // uren verschilde, en daar hangt in de hemel de afstand tot het midden aan.90 const talk = AP.conversationHistory('buur', BUURMAN, { limit: 60 });91 for (const r of talk.rows) {92 assert.match(r.stamp, /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/, `stempel ${r.stamp}`);93 }94 });95 96 test('de cursor blijft werken over de vormen heen', () => {97 const eerste = AP.conversationHistory('buur', BUURMAN, { limit: 2 });98 assert.equal(eerste.more, true);99 const tweede = AP.conversationHistory('buur', BUURMAN, { limit: 2, before: eerste.oldest });100 assert.deepEqual(101 [...eerste.rows, ...tweede.rows].map((r) => r.ref),102 ['mijn-buur-2', 'https://elders/n/buur-avond', 'mijn-buur-1', 'https://elders/n/buur-mid'],103 'twee pagina\'s samen zijn hetzelfde gesprek',104 );105 });106 43 107 44 test('de oude lezing verliest tante achter een druk gesprek -- dat is de bug', () => {
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)