Changes in test/feed-wait.test.js [d14bf1c:4f322bc] in Klonkt
- File:
-
- 1 edited
-
test/feed-wait.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/feed-wait.test.js
rd14bf1c r4f322bc 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 schrijft63 // 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 het80 // 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 denkt96 // 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: de104 // "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 blijft119 // één rij, en dat is waarom er niets te snoeien valt. Mijn eerste test ging uit120 // 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');124 59 }); 125 60
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)