Add user-scoped Hermes profile access
This commit is contained in:
@@ -21,7 +21,7 @@ describe('Hermes schema initialization', () => {
|
||||
})
|
||||
|
||||
it('initializes all tables with correct schemas', async () => {
|
||||
const { initAllHermesTables, USAGE_TABLE, SESSIONS_TABLE, MESSAGES_TABLE, GC_ROOMS_TABLE } =
|
||||
const { initAllHermesTables, USAGE_TABLE, SESSIONS_TABLE, MESSAGES_TABLE, GC_ROOMS_TABLE, USERS_TABLE, USER_PROFILES_TABLE } =
|
||||
await import('../../packages/server/src/db/hermes/schemas')
|
||||
|
||||
expect(() => initAllHermesTables()).not.toThrow()
|
||||
@@ -32,6 +32,8 @@ describe('Hermes schema initialization', () => {
|
||||
expect(tables.map(t => t.name)).toContain(SESSIONS_TABLE)
|
||||
expect(tables.map(t => t.name)).toContain(MESSAGES_TABLE)
|
||||
expect(tables.map(t => t.name)).toContain(GC_ROOMS_TABLE)
|
||||
expect(tables.map(t => t.name)).toContain(USERS_TABLE)
|
||||
expect(tables.map(t => t.name)).toContain(USER_PROFILES_TABLE)
|
||||
|
||||
// Verify USAGE_TABLE structure
|
||||
const usageCols = db.prepare(`PRAGMA table_info("${USAGE_TABLE}")`).all() as Array<{ name: string }>
|
||||
@@ -39,6 +41,17 @@ describe('Hermes schema initialization', () => {
|
||||
expect(usageCols.some(c => c.name === 'session_id')).toBe(true)
|
||||
expect(usageCols.some(c => c.name === 'input_tokens')).toBe(true)
|
||||
expect(usageCols.some(c => c.name === 'output_tokens')).toBe(true)
|
||||
|
||||
const userCols = db.prepare(`PRAGMA table_info("${USERS_TABLE}")`).all() as Array<{ name: string }>
|
||||
expect(userCols.some(c => c.name === 'id')).toBe(true)
|
||||
expect(userCols.some(c => c.name === 'username')).toBe(true)
|
||||
expect(userCols.some(c => c.name === 'password_hash')).toBe(true)
|
||||
expect(userCols.some(c => c.name === 'role')).toBe(true)
|
||||
|
||||
const profileCols = db.prepare(`PRAGMA table_info("${USER_PROFILES_TABLE}")`).all() as Array<{ name: string }>
|
||||
expect(profileCols.some(c => c.name === 'user_id')).toBe(true)
|
||||
expect(profileCols.some(c => c.name === 'profile_name')).toBe(true)
|
||||
expect(profileCols.some(c => c.name === 'is_default')).toBe(true)
|
||||
})
|
||||
|
||||
it('preserves existing data when adding safe schema columns', async () => {
|
||||
|
||||
Reference in New Issue
Block a user