Barazo AppView backend barazo.forum
at main 42 lines 1.5 kB view raw
1import { describe, it, expect } from 'vitest' 2import { modNotes } from '../../../../src/db/schema/mod-notes.js' 3import { getTableName, getTableColumns } from 'drizzle-orm' 4 5describe('modNotes schema', () => { 6 it('should have the correct table name', () => { 7 expect(getTableName(modNotes)).toBe('mod_notes') 8 }) 9 10 it('should have all required columns', () => { 11 const columns = getTableColumns(modNotes) 12 const columnNames = Object.keys(columns) 13 expect(columnNames).toContain('id') 14 expect(columnNames).toContain('communityDid') 15 expect(columnNames).toContain('authorDid') 16 expect(columnNames).toContain('subjectDid') 17 expect(columnNames).toContain('subjectUri') 18 expect(columnNames).toContain('content') 19 expect(columnNames).toContain('noteType') 20 expect(columnNames).toContain('createdAt') 21 }) 22 23 it('should have id as primary key', () => { 24 const columns = getTableColumns(modNotes) 25 expect(columns.id.primary).toBe(true) 26 }) 27 28 it('should mark required columns as not null', () => { 29 const columns = getTableColumns(modNotes) 30 expect(columns.communityDid.notNull).toBe(true) 31 expect(columns.authorDid.notNull).toBe(true) 32 expect(columns.content.notNull).toBe(true) 33 expect(columns.noteType.notNull).toBe(true) 34 expect(columns.createdAt.notNull).toBe(true) 35 }) 36 37 it('should allow nullable subject columns', () => { 38 const columns = getTableColumns(modNotes) 39 expect(columns.subjectDid.notNull).toBe(false) 40 expect(columns.subjectUri.notNull).toBe(false) 41 }) 42})