const axios = require('axios');

const BASE_URL = 'http://localhost:1340';

async function testEndpoints() {
    console.log('🧪 Test des endpoints de résolution d\'école...\n');

    // Test 1: Résolution d'école valide
    try {
        console.log('1️⃣ Test résolution école valide (E00001)...');
        const response1 = await axios.get(`${BASE_URL}/api/schools/resolve?identifier=E00001`);
        console.log('✅ Succès:', response1.data);
    } catch (error) {
        console.log('❌ Erreur:', error.response?.data || error.message);
    }

    // Test 2: Résolution d'école invalide
    try {
        console.log('\n2️⃣ Test résolution école invalide (E1234)...');
        const response2 = await axios.get(`${BASE_URL}/api/schools/resolve?identifier=E1234`);
        console.log('✅ Succès:', response2.data);
    } catch (error) {
        console.log('❌ Erreur attendue:', error.response?.data || error.message);
    }

    // Test 3: Configuration app valide
    try {
        console.log('\n3️⃣ Test configuration app valide (E00001)...');
        const response3 = await axios.get(`${BASE_URL}/api/app/config?schoolIdentifier=E00001`);
        console.log('✅ Succès:', {
            hasData: !!response3.data.data,
            hasMetadata: !!response3.data.metadata,
            schoolName: response3.data.data?.school?.name
        });
    } catch (error) {
        console.log('❌ Erreur:', error.response?.data || error.message);
    }

    // Test 4: Configuration app avec ETag
    try {
        console.log('\n4️⃣ Test configuration app avec ETag...');
        const response4 = await axios.get(`${BASE_URL}/api/app/config?schoolIdentifier=E00001`, {
            headers: {
                'If-None-Match': '"invalid-etag"'
            }
        });
        console.log('✅ Succès avec ETag invalide:', {
            status: response4.status,
            hasData: !!response4.data.data
        });
    } catch (error) {
        console.log('❌ Erreur:', error.response?.data || error.message);
    }

    console.log('\n🎉 Tests terminés!');
}

testEndpoints().catch(console.error);
