/** * Debug script to understand validation issues * This script will help us understand why organizations and sites are being filtered out */ import { httpClient } from './lib/http-client.ts'; import { validateData } from './lib/schema-validation.ts'; import { backendOrganizationSchema } from './schemas/backend/organization.ts'; import { backendSiteSchema } from './schemas/backend/site.ts'; async function debugValidation() { console.log('šŸ” Starting validation debug...'); try { // Fetch organizations console.log('šŸ“” Fetching organizations...'); const orgsRaw = await httpClient.get('/organizations'); console.log(`šŸ“Š Got ${Array.isArray(orgsRaw) ? orgsRaw.length : 'non-array'} organizations`); if (Array.isArray(orgsRaw) && orgsRaw.length > 0) { console.log('šŸ—ļø First organization structure:'); console.log(JSON.stringify(orgsRaw[0], null, 2)); console.log('šŸ”¬ Testing organization validation...'); const firstOrg = orgsRaw[0]; const orgResult = validateData(backendOrganizationSchema, firstOrg, { context: 'debug-org-0', logErrors: true, }); if (!orgResult.success) { console.log('āŒ Organization validation failed!'); console.log('Validation errors:', orgResult.error); } else { console.log('āœ… Organization validation passed!'); } // Test a few more for (let i = 1; i < Math.min(5, orgsRaw.length); i++) { const result = validateData(backendOrganizationSchema, orgsRaw[i], { context: `debug-org-${i}`, logErrors: false, }); console.log(`Org ${i}: ${result.success ? 'āœ…' : 'āŒ'}`); if (!result.success && result.error) { console.log(` Error: ${result.error.message}`); if (result.error.details && result.error.details.length > 0) { console.log(` Field errors:`, result.error.details.slice(0, 3)); } } } } // Fetch sites console.log('\nšŸ“” Fetching sites...'); const sitesRaw = await httpClient.get('/sites'); console.log(`šŸ“Š Got ${Array.isArray(sitesRaw) ? sitesRaw.length : 'non-array'} sites`); if (Array.isArray(sitesRaw) && sitesRaw.length > 0) { console.log('šŸ—ļø First site structure:'); console.log(JSON.stringify(sitesRaw[0], null, 2)); console.log('šŸ”¬ Testing site validation...'); const firstSite = sitesRaw[0]; const siteResult = validateData(backendSiteSchema, firstSite, { context: 'debug-site-0', logErrors: true, }); if (!siteResult.success) { console.log('āŒ Site validation failed!'); console.log('Validation errors:', siteResult.error); } else { console.log('āœ… Site validation passed!'); } // Test a few more sites for (let i = 1; i < Math.min(5, sitesRaw.length); i++) { const result = validateData(backendSiteSchema, sitesRaw[i], { context: `debug-site-${i}`, logErrors: false, }); console.log(`Site ${i}: ${result.success ? 'āœ…' : 'āŒ'}`); if (!result.success && result.error) { console.log(` Error: ${result.error.message}`); if (result.error.details && result.error.details.length > 0) { console.log(` Field errors:`, result.error.details.slice(0, 3)); } } } } console.log('\nšŸŽÆ Debug complete. Check the logs above for validation issues.'); } catch (error) { console.error('šŸ’„ Debug script failed:', error); } } // Run the debug script debugValidation();