Changeset 5218863 in Klonkt for test/ward-pwa.test.js
- Timestamp:
- 08/12/2026 08:25:10 PM (3 months ago)
- Children:
- 4bb93aa
- Parents:
- 084b046
- File:
-
- 1 edited
-
test/ward-pwa.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
test/ward-pwa.test.js
r084b046 r5218863 172 172 } finally { server.close(); } 173 173 }); 174 175 176 test('het gesprek draagt beide kanten en een zwaai heet een zwaai', async () => { 177 // Eén binnengekomen bericht (ap_mentions) en één eigen antwoord (ap_outbox, 178 // direct). Het gesprek moet ze allebei dragen, elk met zijn richting. 179 const VRIEND = 'https://elders.example/ap/users/vriend'; 180 db.prepare(`INSERT INTO ap_mentions (slug, object_uri, actor_uri, actor_name, actor_handle, content, wave, published, created_at) 181 VALUES ('mee', 'https://elders.example/n/w1', ?, 'Vriend', '@vriend@elders.example', '<p>👋</p>', 1, datetime('now'), datetime('now'))`) 182 .run(VRIEND); 183 // post_id is NOT NULL (een reply hangt normaal onder een post); een direct 184 // bericht draagt daar een leeg anker, precies zoals deliverDirectNote doet. 185 db.prepare(`INSERT INTO ap_outbox (id, site_slug, post_id, in_reply_to, content, visibility, to_actors, created_at) 186 VALUES ('out-1', 'mee', '', NULL, '<p>hoi terug</p>', 'direct', ?, datetime('now', '+1 minute'))`) 187 .run(JSON.stringify([VRIEND])); 188 189 const { server, port } = await listen(appWith({ user: { id: 'u1' } })); 190 try { 191 const r = await fetch(`http://127.0.0.1:${port}/ward/api/thread?with=${encodeURIComponent(VRIEND)}`); 192 assert.equal(r.status, 200); 193 const { items } = await r.json(); 194 const dirs = items.map((i) => i.dir).sort(); 195 assert.deepEqual(dirs, ['in', 'out'], 'een kant van het gesprek ontbreekt'); 196 // De zwaai-vlag overleeft de reis: de client toont hem groter, en dat kan 197 // alleen als de server hem niet als kale tekst plat slaat. 198 assert.equal(items.find((i) => i.dir === 'in').wave, true); 199 } finally { server.close(); } 200 }); 201 202 test('een bericht sturen eist een echte ontvanger en echte tekst', async () => { 203 const { server, port } = await listen(appWith({ user: { id: 'u1' } })); 204 try { 205 const post = (body) => fetch(`http://127.0.0.1:${port}/ward/api/message`, { 206 method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), 207 }); 208 // Geen uri: weigeren, want "aan niemand" bestaat niet. 209 assert.equal((await post({ to: 'vriend', text: 'hoi' })).status, 400); 210 // Lege tekst: weigeren, een leeg bericht versturen kan niet. 211 assert.equal((await post({ to: 'https://elders.example/ap/users/vriend', text: ' ' })).status, 400); 212 } finally { server.close(); } 213 });
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)