Skip to main content
Glama
test-http-api.js•5.96 kB
#!/usr/bin/env node /** * HTTP API Test - Direct composition creation without browser automation */ import { EuConquistoAPIClient } from './dist/api-client.js'; import { CompositionManager } from './dist/composition-manager.js'; async function testHTTPAPI() { console.log('šŸš€ Testing EuConquisto HTTP API Implementation...'); try { // Test 1: API Client Connection console.log('\n1ļøāƒ£ Testing API Client Connection...'); const apiClient = new EuConquistoAPIClient(); const connectionTest = await apiClient.testConnection(); console.log('Connection Test Result:'); console.log(` - Success: ${connectionTest.success}`); console.log(` - Status Code: ${connectionTest.statusCode}`); console.log(` - Message: ${connectionTest.data?.message || connectionTest.error}`); if (!connectionTest.success && connectionTest.data) { console.log(` - API Response: ${JSON.stringify(connectionTest.data, null, 2)}`); } if (!connectionTest.success) { console.log('āŒ API connection failed. Cannot proceed with further tests.'); return; } // Test 2: Composition Manager console.log('\n2ļøāƒ£ Testing Composition Manager...'); const compositionManager = new CompositionManager(); const managerTest = await compositionManager.testConnection(); console.log('Manager Test Result:'); console.log(` - Success: ${managerTest.success}`); console.log(` - Message: ${managerTest.message}`); // Test 3: Create Basic Composition console.log('\n3ļøāƒ£ Testing Basic Composition Creation...'); const basicComposition = apiClient.createBasicComposition( "Test Composition via HTTP API", "This composition was created using direct HTTP API calls instead of browser automation" ); // Add some widgets basicComposition.structure.push( apiClient.addHeaderWidget("Welcome to HTTP API Testing"), apiClient.addTextWidget("This text was added via the HTTP API without any browser automation."), apiClient.addTextWidget("The API approach is faster, more reliable, and doesn't require file system permissions.") ); console.log('Basic Composition Structure:'); console.log(` - Title: ${basicComposition.metadata.title}`); console.log(` - Description: ${basicComposition.metadata.description}`); console.log(` - Widgets: ${basicComposition.structure.length}`); console.log(` - Widget Types: ${basicComposition.structure.map(w => w.type).join(', ')}`); // Test 4: Create Composition via API console.log('\n4ļøāƒ£ Testing Composition Creation via Storage API...'); const createResult = await apiClient.createComposition(basicComposition); console.log('API Creation Result:'); console.log(` - Success: ${createResult.success}`); console.log(` - Status Code: ${createResult.statusCode}`); if (createResult.success) { console.log(' āœ… Composition created successfully!'); console.log(` - Data: ${JSON.stringify(createResult.data, null, 2)}`); } else { console.log(' āŒ Composition creation failed'); console.log(` - Error: ${createResult.error}`); } // Test 5: Natural Language Processing console.log('\n5ļøāƒ£ Testing Natural Language Composition Creation...'); const nlpRequest = { title: "AI-Generated Composition", description: "Created through natural language processing", content: `# Introduction to HTTP APIs This is a test of our natural language processing capabilities. The system can parse markdown-style content and convert it into appropriate widgets. This paragraph will become a text widget.` }; const nlpResult = await compositionManager.createFromDescription(nlpRequest); console.log('NLP Creation Result:'); console.log(` - Success: ${nlpResult.success}`); console.log(` - Message: ${nlpResult.message}`); console.log(` - Composition UID: ${nlpResult.compositionUID}`); if (nlpResult.success) { console.log(' āœ… Natural language processing successful!'); } else { console.log(' āŒ Natural language processing failed'); console.log(` - Error: ${nlpResult.error}`); } // Test Summary console.log('\nšŸ“Š Test Summary:'); console.log(` - API Connection: ${connectionTest.success ? 'āœ…' : 'āŒ'}`); console.log(` - Composition Manager: ${managerTest.success ? 'āœ…' : 'āŒ'}`); console.log(` - Direct API Creation: ${createResult.success ? 'āœ…' : 'āŒ'}`); console.log(` - Natural Language Processing: ${nlpResult.success ? 'āœ…' : 'āŒ'}`); const successCount = [connectionTest.success, managerTest.success, createResult.success, nlpResult.success].filter(Boolean).length; console.log(`\nšŸŽÆ Overall Success Rate: ${successCount}/4 (${Math.round(successCount/4*100)}%)`); if (successCount === 4) { console.log('\nšŸŽ‰ ALL TESTS PASSED! HTTP API implementation is working correctly.'); console.log('āœ… Browser automation has been successfully replaced with direct API calls.'); } else { console.log('\nāš ļø Some tests failed. See details above for troubleshooting.'); } } catch (error) { console.error('\nāŒ Test suite failed with error:', error.message); console.error('Stack trace:', error.stack); } } testHTTPAPI().catch(console.error);

Latest Blog Posts

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/rkm097git/euconquisto-composer-mcp-poc'

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