Index: test/ward-pwa.test.js
===================================================================
--- test/ward-pwa.test.js	(revision 4bb93aa4a060a71f9d58edb59da3c88711d16844)
+++ test/ward-pwa.test.js	(revision 5412cbbcf42cb02fb3fb6d67ef433290c95bb38c)
@@ -225,2 +225,24 @@
   assert.match(css, /#thread\s*\{[^}]*display:\s*flex/);
 });
+
+test('de vrienden achter de (+) komen uit beide richtingen', async () => {
+  // Iemand die JIJ volgt en iemand die JOU volgt: allebei een deur. De hemel
+  // toont alleen met wie je al sprak; de kiezer moet ruimer zijn, anders kun
+  // je nooit een EERSTE bericht sturen.
+  db.prepare(`INSERT INTO ap_following (slug, actor_uri, handle, name, icon, follow_id, status)
+              VALUES ('mee', 'https://elders.example/ap/users/tante', '@tante@elders.example', 'Tante', NULL, 'f-1', 'accepted')`).run();
+  db.prepare(`INSERT INTO ap_followers (slug, actor_uri, handle, name)
+              VALUES ('mee', 'https://elders.example/ap/users/neef', '@neef@elders.example', 'Neef')`).run();
+
+  const { server, port } = await listen(appWith({ user: { id: 'u1' } }));
+  try {
+    const r = await fetch(`http://127.0.0.1:${port}/ward/api/friends`);
+    assert.equal(r.status, 200);
+    const { items } = await r.json();
+    const uris = items.map((f) => f.uri);
+    assert.ok(uris.includes('https://elders.example/ap/users/tante'), 'wie je volgt ontbreekt');
+    assert.ok(uris.includes('https://elders.example/ap/users/neef'), 'wie jou volgt ontbreekt');
+    // Elke deur heeft een leesbare naam, ook zonder display name.
+    assert.ok(items.every((f) => f.name && f.handle));
+  } finally { server.close(); }
+});
