- Added ProjectExperienceService to calculate similar projects and scale hours based on area. - Created API endpoint for fetching similar project experiences. - Developed frontend components for automatic data fetching and displaying intelligent task estimates. - Updated build and test scripts to include new features and ensure functionality. - Added tests for the Experience API to validate responses and data integrity.
48 lines
1.9 KiB
JavaScript
48 lines
1.9 KiB
JavaScript
const fetch = require('node-fetch');
|
|
|
|
async function testExperienceAPI() {
|
|
try {
|
|
console.log('🧪 Testing Experience API...\n');
|
|
|
|
// Test 1: Få erfaring for projekt ID 1 (hvis det eksisterer)
|
|
const projectId = 1;
|
|
const roofArea = 96.0; // Eksempel tagflade
|
|
|
|
console.log(`📊 Testing: GET /api/customer-projects/projects/${projectId}/similar-experience`);
|
|
console.log(` Roof area: ${roofArea}m²\n`);
|
|
|
|
const response = await fetch(`http://localhost:3001/api/customer-projects/projects/${projectId}/similar-experience?roofArea=${roofArea}`);
|
|
const data = await response.json();
|
|
|
|
if (response.ok) {
|
|
console.log('✅ API Response Success!\n');
|
|
console.log('📦 Response data:');
|
|
console.log(JSON.stringify(data, null, 2));
|
|
|
|
if (data.similarProjects && data.similarProjects.length > 0) {
|
|
console.log('\n📋 Lignende projekter fundet:');
|
|
data.similarProjects.forEach((proj, idx) => {
|
|
console.log(` ${idx + 1}. ${proj.project_type}`);
|
|
console.log(` Original: ${proj.roof_area}m² = ${proj.total_hours}h`);
|
|
console.log(` Skaleret til ${roofArea}m²: ${proj.scaled_hours}h`);
|
|
console.log(` Similarity: ${(proj.similarity * 100).toFixed(0)}%`);
|
|
});
|
|
|
|
console.log(`\n💡 Anbefalet estimat for dit projekt (${data.currentArea}m²):`);
|
|
console.log(` ⏱️ ${data.scaledHours} timer`);
|
|
console.log(` 💰 ${(data.scaledHours * 580).toFixed(0)} kr (ved 580 kr/t)`);
|
|
console.log(` 🎯 Confidence: ${data.confidence.toUpperCase()}`);
|
|
console.log(` 📊 Baseret på ${data.projectCount} lignende projekter`);
|
|
}
|
|
} else {
|
|
console.log('❌ API Error:');
|
|
console.log(JSON.stringify(data, null, 2));
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('❌ Test fejlede:', error.message);
|
|
}
|
|
}
|
|
|
|
testExperienceAPI();
|