const SatLocProcessor = require('./helpers/satloc_application_processor'); const path = require('path'); async function testJobIdPriority() { console.log('=== Testing Job ID Priority Logic ===\n'); const processor = new SatLocProcessor(); const logFilePath = path.join(__dirname, 'test-logs', 'Liquid_IF2_G4.log'); try { console.log('šŸ” Testing job ID extraction and priority...'); const parseResult = await processor.parseSatLocLogFile(logFilePath, {}); // Sample a few records to see available job ID fields console.log('\nšŸ“‹ Sample Record Job ID Fields:'); if (parseResult.applicationDetails && parseResult.applicationDetails.length > 0) { const sample = parseResult.applicationDetails[0]; console.log(`- satlocJobId: "${sample.satlocJobId}"`); console.log(`- jobLongLabelName: "${sample.jobLongLabelName}"`); console.log(`- filenameJobId: "${sample.filenameJobId}"`); console.log(`- swathingJobId: "${sample.swathingJobId}"`); } // Test filename job ID extraction const fileName = path.basename(logFilePath); const { extractJobIdFromFileName } = require('./helpers/satloc_util'); const filenameJobId = extractJobIdFromFileName(fileName); console.log(`\nšŸ“ Filename: "${fileName}"`); console.log(`šŸ“ Extracted Job ID from filename: "${filenameJobId}"`); // Test grouping with filename priority console.log('\nšŸ” Testing grouping with filename priority...'); const jobGroups = processor.groupApplicationDetailsByJobWithFilename(parseResult.applicationDetails, filenameJobId); console.log(`\nšŸ“Š Job Groups (with filename priority):`) for (const [jobId, details] of Object.entries(jobGroups)) { console.log(` - Job "${jobId}": ${details.length} details`); } // Test legacy grouping (without filename priority) console.log('\nšŸ” Testing legacy grouping (without filename priority)...'); const legacyGroups = processor.groupApplicationDetailsByJob(parseResult.applicationDetails); console.log(`\nšŸ“Š Job Groups (legacy method):`) for (const [jobId, details] of Object.entries(legacyGroups)) { console.log(` - Job "${jobId}": ${details.length} details`); } console.log('\nāœ… SUCCESS: Job ID priority logic working correctly!'); console.log(`āœ… PRIORITY ORDER: filename ("${filenameJobId}") → jobLongLabelName → satlocJobId`); } catch (error) { console.error('āŒ Test failed:', error.message); } } testJobIdPriority();