Skip to main content
Glama
test-pagination.js2.8 kB
#!/usr/bin/env node /** * Test script for verifying pagination-by-default functionality * This ensures we get complete, accurate data counts */ import { AutotaskService } from '../src/services/autotask.service.js'; import { Logger } from '../src/utils/logger.js'; import { loadEnvironmentConfig, mergeWithMcpConfig } from '../src/utils/config.js'; async function testPagination() { console.log('=== Testing Pagination-by-Default for Data Accuracy ===\n'); try { // Load configuration const envConfig = loadEnvironmentConfig(); const mcpConfig = mergeWithMcpConfig(envConfig); // Initialize logger const logger = new Logger('info', 'json'); // Initialize service const autotaskService = new AutotaskService(mcpConfig.autotask, logger); console.log('🔍 Testing default behavior (should get ALL open tickets)...'); const allOpenTickets = await autotaskService.searchTickets({ // No pageSize specified - should get ALL tickets via pagination }); console.log(`✅ Retrieved ${allOpenTickets.length} open tickets (complete dataset)`); console.log('\n🔍 Testing limited results (pageSize = 10)...'); const limitedTickets = await autotaskService.searchTickets({ pageSize: 10 // Should limit to 10 tickets }); console.log(`✅ Retrieved ${limitedTickets.length} tickets (limited dataset)`); console.log('\n📊 Comparison:'); console.log(`- Default (all results): ${allOpenTickets.length} tickets`); console.log(`- Limited (pageSize=10): ${limitedTickets.length} tickets`); if (allOpenTickets.length >= limitedTickets.length) { console.log('✅ Pagination working correctly - default gives complete dataset!'); } else { console.log('❌ Issue detected - limited results should be <= complete results'); } // Test with company filter if (allOpenTickets.length > 0) { const firstTicket = allOpenTickets[0]; if (firstTicket.companyID) { console.log(`\n🔍 Testing company filter (companyID: ${firstTicket.companyID})...`); const companyTickets = await autotaskService.searchTickets({ companyID: firstTicket.companyID }); console.log(`✅ Retrieved ${companyTickets.length} tickets for company ${firstTicket.companyID}`); } } } catch (error) { console.error('❌ Test failed:', error.message); throw error; } } // Run the test testPagination() .then(() => { console.log('\n🎉 Pagination tests completed successfully!'); console.log('Your ticket searches will now be accurate and complete by default.'); process.exit(0); }) .catch((error) => { console.error('\n💥 Pagination tests failed:', error); process.exit(1); });

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/asachs01/autotask-mcp'

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