agmission/Development/server/tests/test_job_id_priority.js

57 lines
2.7 KiB
JavaScript

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();