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: address PR review comments

- Add @types/node and typescript to lexicon package devDependencies
- Add missing columns to schema tests (cid, description, indexedAt on all AT Proto record tables)
- Replace defensive if with explicit toBeDefined() in modAction test

+26 -7
+13 -1
packages/db/src/__tests__/schema.test.ts
··· 43 43 expect(cols).toHaveProperty("id"); 44 44 expect(cols).toHaveProperty("did"); 45 45 expect(cols).toHaveProperty("rkey"); 46 + expect(cols).toHaveProperty("cid"); 46 47 expect(cols).toHaveProperty("name"); 48 + expect(cols).toHaveProperty("description"); 47 49 expect(cols).toHaveProperty("slug"); 48 50 expect(cols).toHaveProperty("sortOrder"); 49 51 expect(cols).toHaveProperty("forumId"); ··· 78 80 expect(cols).toHaveProperty("id"); 79 81 expect(cols).toHaveProperty("did"); 80 82 expect(cols).toHaveProperty("rkey"); 83 + expect(cols).toHaveProperty("cid"); 81 84 expect(cols).toHaveProperty("forumId"); 82 85 expect(cols).toHaveProperty("forumUri"); 83 86 expect(cols).toHaveProperty("role"); 84 87 expect(cols).toHaveProperty("roleUri"); 85 88 expect(cols).toHaveProperty("joinedAt"); 86 89 expect(cols).toHaveProperty("createdAt"); 90 + expect(cols).toHaveProperty("indexedAt"); 87 91 }); 88 92 89 93 it("has did and forumUri as not-null", () => { ··· 103 107 expect(cols).toHaveProperty("id"); 104 108 expect(cols).toHaveProperty("did"); 105 109 expect(cols).toHaveProperty("rkey"); 110 + expect(cols).toHaveProperty("cid"); 106 111 expect(cols).toHaveProperty("text"); 112 + expect(cols).toHaveProperty("forumUri"); 107 113 expect(cols).toHaveProperty("rootPostId"); 108 114 expect(cols).toHaveProperty("parentPostId"); 109 115 expect(cols).toHaveProperty("rootUri"); 110 116 expect(cols).toHaveProperty("parentUri"); 111 - expect(cols).toHaveProperty("deleted"); 112 117 expect(cols).toHaveProperty("createdAt"); 118 + expect(cols).toHaveProperty("indexedAt"); 119 + expect(cols).toHaveProperty("deleted"); 113 120 }); 114 121 115 122 it("has text as not-null", () => { ··· 139 146 const cols = getTableColumns(modActions); 140 147 expect(cols).toHaveProperty("id"); 141 148 expect(cols).toHaveProperty("did"); 149 + expect(cols).toHaveProperty("rkey"); 150 + expect(cols).toHaveProperty("cid"); 142 151 expect(cols).toHaveProperty("action"); 143 152 expect(cols).toHaveProperty("subjectDid"); 144 153 expect(cols).toHaveProperty("subjectPostUri"); 154 + expect(cols).toHaveProperty("forumId"); 145 155 expect(cols).toHaveProperty("reason"); 146 156 expect(cols).toHaveProperty("createdBy"); 147 157 expect(cols).toHaveProperty("expiresAt"); 158 + expect(cols).toHaveProperty("createdAt"); 159 + expect(cols).toHaveProperty("indexedAt"); 148 160 }); 149 161 150 162 it("has action and createdBy as not-null", () => {
+3 -4
packages/lexicon/__tests__/lexicons.test.ts
··· 75 75 const parsed = parseYaml(content); 76 76 const actionField = 77 77 parsed.defs.main.record?.properties?.action; 78 - if (actionField) { 79 - expect(actionField).not.toHaveProperty("enum"); 80 - expect(actionField).toHaveProperty("knownValues"); 81 - } 78 + expect(actionField).toBeDefined(); 79 + expect(actionField).not.toHaveProperty("enum"); 80 + expect(actionField).toHaveProperty("knownValues"); 82 81 }); 83 82 }); 84 83
+4 -2
packages/lexicon/package.json
··· 18 18 }, 19 19 "devDependencies": { 20 20 "@atproto/lex-cli": "^0.5.0", 21 + "@types/node": "^22.0.0", 22 + "glob": "^11.0.0", 21 23 "tsx": "^4.0.0", 22 - "yaml": "^2.7.0", 23 - "glob": "^11.0.0" 24 + "typescript": "^5.7.0", 25 + "yaml": "^2.7.0" 24 26 } 25 27 }
+6
pnpm-lock.yaml
··· 95 95 '@atproto/lex-cli': 96 96 specifier: ^0.5.0 97 97 version: 0.5.7 98 + '@types/node': 99 + specifier: ^22.0.0 100 + version: 22.19.9 98 101 glob: 99 102 specifier: ^11.0.0 100 103 version: 11.1.0 101 104 tsx: 102 105 specifier: ^4.0.0 103 106 version: 4.21.0 107 + typescript: 108 + specifier: ^5.7.0 109 + version: 5.9.3 104 110 yaml: 105 111 specifier: ^2.7.0 106 112 version: 2.8.2