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

fix(appview): use != null guards for optional fields and add cssOverrides/fontUrls test in duplicate (ATB-58)

+29 -2
+27
apps/appview/src/routes/__tests__/admin.test.ts
··· 3104 3104 }); 3105 3105 expect(res.status).toBe(401); 3106 3106 }); 3107 + 3108 + it("copies cssOverrides and fontUrls when they are set on the source", async () => { 3109 + // Insert a theme with optional fields populated 3110 + await ctx.db.insert(themes).values({ 3111 + did: ctx.config.forumDid, 3112 + rkey: "3lblsource2bb", 3113 + cid: "bafysource2", 3114 + name: "Custom Theme", 3115 + colorScheme: "dark", 3116 + tokens: { "color-bg": "#1a1a1a" }, 3117 + cssOverrides: "body { font-size: 18px; }", 3118 + fontUrls: ["https://fonts.googleapis.com/css2?family=Roboto"], 3119 + createdAt: new Date(), 3120 + indexedAt: new Date(), 3121 + }); 3122 + 3123 + const res = await app.request("/api/admin/themes/3lblsource2bb/duplicate", { 3124 + method: "POST", 3125 + }); 3126 + 3127 + expect(res.status).toBe(201); 3128 + expect(mockPutRecord).toHaveBeenCalledOnce(); 3129 + const putCall = mockPutRecord.mock.calls[0][0]; 3130 + expect(putCall.record.cssOverrides).toBe("body { font-size: 18px; }"); 3131 + expect(putCall.record.fontUrls).toEqual(["https://fonts.googleapis.com/css2?family=Roboto"]); 3132 + expect(putCall.record.name).toBe("Custom Theme (Copy)"); 3133 + }); 3107 3134 }); 3108 3135 3109 3136 describe("PUT /api/admin/theme-policy", () => {
+2 -2
apps/appview/src/routes/admin.ts
··· 1343 1343 name: newName, 1344 1344 colorScheme: source.colorScheme, 1345 1345 tokens: source.tokens, 1346 - ...(source.cssOverrides && { cssOverrides: source.cssOverrides }), 1347 - ...(source.fontUrls && { fontUrls: source.fontUrls }), 1346 + ...(source.cssOverrides != null && { cssOverrides: source.cssOverrides }), 1347 + ...(source.fontUrls != null && { fontUrls: source.fontUrls }), 1348 1348 createdAt: now, 1349 1349 }, 1350 1350 });