debug-validation.js•2.12 kB
#!/usr/bin/env node
/**
* Debug validation auto-fix issue
*/
import { LessonDataValidator } from './src/tools/validate-lesson-data.js';
const validator = new LessonDataValidator();
// Test data with missing topic field but valid widget count
const testLessonData = {
metadata: {
// topic is missing - should be auto-fixed
duration: 50,
subject: 'matemática'
},
widgets: [
{
type: 'head-1',
content: {
category: 'MATEMÁTICA',
author_name: 'Professor(a) Virtual'
}
},
{
type: 'text-1',
content: {
title: 'Introdução',
text: '<p>Conteúdo educacional aqui.</p>'
}
},
{
type: 'quiz-1',
content: {
title: 'Quiz de Matemática',
questions: [
{
question: '<p>Quanto é 2 + 2?</p>',
answers: [
{ text: '<p>3</p>', correct_answer: false },
{ text: '<p>4</p>', correct_answer: true },
{ text: '<p>5</p>', correct_answer: false }
]
}
]
}
}
]
};
console.log('🔍 Debugging Validation Auto-Fix');
console.log('================================');
validator.validateLessonData(testLessonData)
.then(result => {
console.log('Validation result:', result.success ? 'SUCCESS' : 'FAILED');
if (!result.success) {
console.log('Error code:', result.error.code);
console.log('Error message:', result.error.message);
console.log('Error details:', JSON.stringify(result.error.details, null, 2));
} else {
console.log('✅ Auto-fix worked!');
console.log('Fixed topic:', result.data.validatedLessonData.metadata.topic);
}
// Debug information
if (result.debug) {
console.log('\n🔧 Debug Information:');
console.log('Validation checks:', result.debug.validationChecks?.length || 0);
console.log('Auto-fixes applied:', result.debug.autoFixesApplied || 'none');
}
})
.catch(error => {
console.log('❌ Validation error:', error.message);
console.log('Stack:', error.stack);
});