Skip to main content
Glama

Memory Bank MCP Server

by t3ta
integration.test.ts4.17 kB
/** * Integration tests for schema components * * These tests validate that different schema components work correctly together * and validate common real-world examples. */ import { // BaseJsonDocumentV2Schema, // 使わないので削除 SCHEMA_VERSION } from '../../src/v2/json-document.js'; import { JsonDocumentV2Schema } from '../../src/v2/document-union.js'; // JsonDocumentV2Schema をインポート import { TAG_INDEX_VERSION } from '../../src/v2/tag-index.js'; import { ValidationResult } from '../../src/types/index.js'; describe('Document validation integration', () => { it('should validate a complete document with multiple tags', () => { // JsonDocumentV2Schema に合わせてテストデータを修正 const document = { schema: SCHEMA_VERSION, documentType: 'branch_context' as const, // documentType を有効なリテラル値に変更 metadata: { // metadata をネスト id: '123e4567-e89b-12d3-a456-426614174000', title: 'Test Complete Document', // documentType はトップレベルに移動済み path: 'test/complete.json', tags: ['test', 'integration', 'example'], lastModified: '2025-03-27T12:00:00Z', createdAt: '2025-03-26T10:00:00Z', version: 1 }, content: { // content を BranchContextContentV2Schema に合わせる purpose: 'Integration test for a complete document', // purpose を追加 userStories: [ // userStories を追加 (空でもOK) { description: 'Story 1', completed: true }, { description: 'Story 2' } // completed は default(false) ], // background は optional なので省略 } }; const result = JsonDocumentV2Schema.safeParse(document); // BaseJsonDocumentV2Schema -> JsonDocumentV2Schema expect(result.success).toBe(true); }); it('should handle validation errors with useful messages', () => { // JsonDocumentV2Schema に合わせてテストデータを修正 const invalidDocument = { schema: SCHEMA_VERSION, documentType: 'branch_context' as const, // documentType を有効なリテラル値に変更 metadata: { // metadata をネスト // Missing required id title: 'Invalid Document', // documentType はトップレベルに移動済み path: 'test/invalid.json', tags: ['test'], lastModified: '2025-03-27T12:00:00Z', createdAt: '2025-03-26T10:00:00Z', version: 1 }, content: { // content を BranchContextContentV2Schema に合わせる (id 欠損テストなので content は有効な形にする) purpose: 'Integration test for invalid metadata', // purpose を追加 userStories: [] // userStories を追加 } }; const result = JsonDocumentV2Schema.safeParse(invalidDocument); // BaseJsonDocumentV2Schema -> JsonDocumentV2Schema expect(result.success).toBe(false); if (!result.success) { // There should be at least one error message about the missing id // エラーパスが metadata.id になっていることを確認 const hasIdError = result.error.issues.some((issue: any) => issue.path.length === 2 && issue.path[0] === 'metadata' && issue.path[1] === 'id' ); expect(hasIdError).toBe(true); } }); it('should map ValidationResult type correctly', () => { // Create a validation result object const successfulValidation: ValidationResult = { success: true }; const failedValidation: ValidationResult = { success: false, errors: [ { message: 'Validation failed', path: ['document', 'field'] } ] }; expect(successfulValidation.success).toBe(true); expect(failedValidation.success).toBe(false); expect(failedValidation.errors?.[0].message).toBe('Validation failed'); }); it('should check schema version constants are correct', () => { // Verify that exported constants have the expected values expect(SCHEMA_VERSION).toBe('memory_document_v2'); expect(TAG_INDEX_VERSION).toBe('tag_index_v1'); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/t3ta/memory-bank-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server