57 lines
2.7 KiB
JavaScript
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(); |