WIP! A BB-style forum, on the ATmosphere! We're still working... we'll be back soon when we have something to show off!
node typescript hono htmx atproto
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(appview): add uri field to serializeCategory (ATB-47)

Malpercio e35f3688 680debb7

+9
+4
apps/appview/src/routes/__tests__/categories.test.ts
··· 80 80 expect(category).toHaveProperty("description"); 81 81 expect(category).toHaveProperty("slug"); 82 82 expect(category).toHaveProperty("sortOrder"); 83 + 84 + // Verify AT-URI field is present and well-formed 85 + expect(category.uri).toMatch(/^at:\/\/did:/); 86 + expect(category.uri).toContain("/space.atbb.forum.category/"); 83 87 }); 84 88 85 89 it("does not leak internal fields (rkey, cid)", async () => {
+1
apps/appview/src/routes/__tests__/helpers.test.ts
··· 497 497 expect(result).toEqual({ 498 498 id: "1", 499 499 did: "did:plc:forum", 500 + uri: "at://did:plc:forum/space.atbb.forum.category/3lbk9cat", 500 501 name: "General Discussion", 501 502 description: "A place for general conversation", 502 503 slug: "general",
+2
apps/appview/src/routes/helpers.ts
··· 268 268 * { 269 269 * "id": "1234", // BigInt → string 270 270 * "did": "did:plc:...", 271 + * "uri": "at://did:plc:.../space.atbb.forum.category/...", // computed AT URI 271 272 * "name": "General Discussion", 272 273 * "description": "A place for..." | null, 273 274 * "slug": "general" | null, ··· 282 283 return { 283 284 id: serializeBigInt(cat.id), 284 285 did: cat.did, 286 + uri: `at://${cat.did}/space.atbb.forum.category/${cat.rkey}`, 285 287 name: cat.name, 286 288 description: cat.description, 287 289 slug: cat.slug,
+2
bruno/AppView API/Categories/List Categories.bru
··· 11 11 assert { 12 12 res.status: eq 200 13 13 res.body.categories: isArray 14 + res.body.categories[0].uri: isDefined 14 15 } 15 16 16 17 docs { ··· 22 23 { 23 24 "id": "1", 24 25 "did": "did:plc:...", 26 + "uri": "at://did:plc:.../space.atbb.forum.category/3lbk7...", 25 27 "name": "General", 26 28 "description": "General discussion", 27 29 "slug": "general",