Changeset d14bf1c in Klonkt for test/feed-wait.test.js
- Timestamp:
- 08/07/2026 09:14:32 AM (5 weeks ago)
- Branches:
- main
- Children:
- 44c9f3f
- Parents:
- f2a7181
- git-author:
- Robin <roboburr@…> (08/07/2026 09:14:20 AM)
- git-committer:
- roboburr <roboburr@…> (08/07/2026 09:14:32 AM)
- File:
-
- 1 edited
-
test/feed-wait.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/feed-wait.test.js
rf2a7181 rd14bf1c 57 57 assert.notEqual(AP.feedCursor('me'), voor, `${naam} hoort de merksteen te bewegen`); 58 58 } 59 }); 60 61 test('een BEWERKING beweegt hem ook', () => { 62 // De reden dat de merksteen niet meer op MAX(rowid) leunt. Een Update schrijft 63 // dezelfde rij, dus de rowid bleef staan en een wachtende client sliep door. 64 db.prepare("INSERT INTO ap_timeline (id, slug, author_uri, content) VALUES ('bw','me','https://r.test/u/a','<p>oud</p>')").run(); 65 const voor = AP.feedCursor('me'); 66 db.prepare("UPDATE ap_timeline SET content = '<p>nieuw</p>' WHERE id = 'bw'").run(); 67 assert.notEqual(AP.feedCursor('me'), voor); 68 }); 69 70 test('en een VERWIJDERING, ook als het niet de laatste is', () => { 71 db.prepare("INSERT INTO ap_timeline (id, slug, author_uri, content) VALUES ('later','me','https://r.test/u/a','<p>x</p>')").run(); 72 const voor = AP.feedCursor('me'); 73 db.prepare("DELETE FROM ap_timeline WHERE id = 'bw'").run(); 74 assert.notEqual(AP.feedCursor('me'), voor, 'anders blijft een verwijderde post staan tot je toevallig ververst'); 75 }); 76 77 test('maar een LIKE of BOOST van jezelf niet', () => { 78 // De val waar dit bijna in liep: een like schrijft ap_timeline.liked en een 🔁 79 // schrijft .boosted. Zonder de UPDATE OF-kolomlijst zou je eigen like het 80 // bericht als BEWERKT merken en elke wachtende client wekken. 81 const voor = AP.feedCursor('me'); 82 db.prepare("UPDATE ap_timeline SET liked = 1 WHERE id = 'later'").run(); 83 db.prepare("UPDATE ap_timeline SET boosted = 1 WHERE id = 'later'").run(); 84 db.prepare("UPDATE ap_interactions SET acted_like = 1 WHERE post_id = 'p1'").run(); 85 assert.equal(AP.feedCursor('me'), voor, 'je eigen reactie is geen nieuws'); 86 }); 87 88 test('een INSERT OR IGNORE die niets doet beweegt hem niet', () => { 89 const voor = AP.feedCursor('me'); 90 db.prepare("INSERT OR IGNORE INTO ap_timeline (id, slug, author_uri, content) VALUES ('later','me','https://r.test/u/a','<p>x</p>')").run(); 91 assert.equal(AP.feedCursor('me'), voor); 92 }); 93 94 test('de teller loopt nooit achteruit', () => { 95 // Met MAX(rowid) zakte hij terug zodra de nieuwste rij verdween, en dan denkt 96 // een client dat er niets gebeurd is. 97 const hoog = parseInt(AP.feedCursor('me'), 10); 98 db.prepare('DELETE FROM ap_timeline WHERE slug = ?').run('me'); 99 assert.ok(parseInt(AP.feedCursor('me'), 10) >= hoog); 100 }); 101 102 test('en hij vertelt WAT er veranderd is', () => { 103 // Dit is wat een revisieteller niet kan en deze tabel gratis meegeeft: de 104 // "bewerkt"-markering hoeft er later geen eigen bouwsel voor te worden. 105 const stand = (uri) => (AP.feedChangesSince('me', 0).find((r) => r.object_uri === uri) || {}).kind; 106 107 db.prepare("INSERT INTO ap_timeline (id, slug, author_uri, content) VALUES ('vers','me','https://r.test/u/a','<p>x</p>')").run(); 108 assert.equal(stand('vers'), 'new'); 109 110 db.prepare("UPDATE ap_timeline SET content = '<p>anders</p>' WHERE id = 'vers'").run(); 111 assert.equal(stand('vers'), 'updated'); 112 113 db.prepare("DELETE FROM ap_timeline WHERE id = 'vers'").run(); 114 assert.equal(stand('vers'), 'deleted'); 115 }); 116 117 test('het is een STAND en geen logboek: bewerkt-en-toen-weg leest als weg', () => { 118 // Een rij per bericht, niet een rij per gebeurtenis. Vijf keer bewerken blijft 119 // één rij, en dat is waarom er niets te snoeien valt. Mijn eerste test ging uit 120 // van een log en viel daar terecht over. 121 const alles = AP.feedChangesSince('me', 0); 122 const perUri = new Set(alles.map((r) => r.object_uri)); 123 assert.equal(alles.length, perUri.size, 'geen enkel bericht komt twee keer voor'); 59 124 }); 60 125
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)