Files
tilbudgivern/test_work_breakdown.js
T
alexpolo1 1d96d69a58 feat(graphql): Implement comprehensive GraphQL queries for hours, hour types, and business hours
feat(graphql): Create a GraphQL client for improved API interaction and error handling

chore(deprecated): Disable deprecated REST endpoints and notify users of changes

feat(mapping): Develop a script to map Bygma products to categories based on varegrp codes

chore(lock): Update lock file for ordrestyring comprehensive sync

test(graphql): Add tests for new GraphQL endpoints and identify unused code

test(migration): Complete migration tests for GraphQL endpoints and cleanup

test(calendar): Implement tests for calendar and hours GraphQL integration

test(offer): Create tests for GraphQL offer creation endpoint

test(work-breakdown): Add tests for work breakdown and case details endpoints
2025-10-23 22:01:33 +00:00

74 lines
2.2 KiB
JavaScript

/**
* Test Work Breakdown Endpoint
*/
const axios = require('axios');
const BASE_URL = 'http://localhost:4031';
async function testWorkBreakdown() {
console.log('🧪 Testing Work Breakdown Endpoint\n');
// Test different case numbers
const testCases = [
'252202', // Random case number
'250001', // Another test
'TEST-001' // Non-existent
];
for (const caseNumber of testCases) {
try {
console.log(`📊 Testing case ${caseNumber}...`);
const response = await axios.get(`${BASE_URL}/api/ordrestyring/case/${caseNumber}/work-breakdown`);
console.log(`✅ Success for ${caseNumber}:`);
console.log(` - Work categories: ${response.data.work_breakdown?.length || 0}`);
console.log(` - Total hours: ${response.data.summary?.totalHours || 0}h`);
console.log(` - Description: ${response.data.case_description}`);
console.log('');
} catch (error) {
if (error.response?.status === 404) {
console.log(`⚠️ Case ${caseNumber} not found (404)`);
} else {
console.log(`❌ Error for ${caseNumber}:`, error.response?.data?.error || error.message);
}
console.log('');
}
}
}
async function testCaseDetails() {
console.log('\n🧪 Testing Case Details Endpoint\n');
const caseNumber = '252202';
try {
console.log(`📋 Fetching details for case ${caseNumber}...`);
const response = await axios.get(`${BASE_URL}/api/ordrestyring/case/${caseNumber}`);
console.log('✅ Case details:');
console.log(` - ID: ${response.data.data?.id}`);
console.log(` - Case Number: ${response.data.data?.caseNumber}`);
console.log(` - Description: ${response.data.data?.description}`);
console.log(` - Customer: ${response.data.data?.customer?.name}`);
console.log('');
} catch (error) {
console.log('❌ Error:', error.response?.data?.error || error.message);
}
}
async function runTests() {
console.log('🚀 Work Breakdown GraphQL Migration Test\n');
console.log('='.repeat(50));
await testWorkBreakdown();
await testCaseDetails();
console.log('='.repeat(50));
console.log('✅ Tests completed!\n');
}
runTests().catch(console.error);