brainy/tests/database-operations.test.ts
David Snelling 26c7d61185 CHECKPOINT: Brainy 2.0 API refactor - pre-fixes state
Current state:
- Unified augmentation system to BrainyAugmentation interface
- Changed methods to specific noun/verb naming (addNoun, getNoun, etc)
- Made old methods private
- Combined getNouns into single unified method
- Neural API exists and is complete
- Triple Intelligence uses correct Brainy operators (not MongoDB)

Issues identified:
- Documentation incorrectly shows MongoDB operators (code is correct)
- Need to ensure all features are properly exposed
- Need to verify nothing was lost in simplification

This commit serves as a rollback point before applying fixes.
2025-08-25 09:52:32 -07:00

64 lines
1.8 KiB
TypeScript

import { describe, it, expect } from 'vitest'
import { BrainyData } from '../dist/unified.js'
describe('Database Operations', () => {
let db: BrainyData
beforeEach(async () => {
db = new BrainyData()
await db.init()
})
it('should initialize and return database status', async () => {
const status = await db.status()
expect(status).toBeDefined()
// The structure of status might vary, just check it exists
})
it('should return statistics', async () => {
const stats = await db.getStatistics()
expect(stats).toBeDefined()
// The structure of stats might vary, just check it exists
})
it('should retrieve all nouns', async () => {
const nouns = await db.getAllNouns()
expect(Array.isArray(nouns)).toBe(true)
})
it('should retrieve all verbs', async () => {
const verbs = await db.getAllVerbs()
expect(Array.isArray(verbs)).toBe(true)
})
it('should perform a search operation', async () => {
const searchResults = await db.searchText('test', 10)
expect(Array.isArray(searchResults)).toBe(true)
})
it('should add and retrieve an item', async () => {
// Add a test item
const testText = 'This is a test item for searching'
const metadata = { noun: 'Thing', category: 'test' }
const id = await db.add(testText, metadata)
// Verify the item was added
expect(id).toBeDefined()
// Retrieve the item
const noun = await db.get(id)
expect(noun).toBeDefined()
expect(noun.id).toBe(id)
// Check that the metadata contains our properties
// (The system might add additional properties)
expect(noun.metadata.category).toBe('test')
// Search for the item
const searchResults = await db.searchText('test', 10)
expect(searchResults.length).toBeGreaterThan(0)
// Clean up
await db.delete(id)
})
})