const axios = require('axios'); const FormData = require('form-data'); const fs = require('fs'); const path = require('path'); async function testUpload() { try { // First login console.log('1. Logging in as admin...'); const loginResponse = await axios.post('http://localhost:3000/api/admin/auth/login', { username: 'admin', password: 'admin123' }); const token = loginResponse.data.token; console.log('✓ Login successful'); // Create a test image file const testImagePath = path.join(__dirname, 'test-image.png'); const imageBuffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==', 'base64'); fs.writeFileSync(testImagePath, imageBuffer); // Test upload console.log('\n2. Testing upload with category_id=7...'); const form = new FormData(); form.append('photos', fs.createReadStream(testImagePath), 'test-image.png'); form.append('category_id', '7'); console.log('Form data headers:', form.getHeaders()); try { const uploadResponse = await axios.post( 'http://localhost:3000/api/admin/events/12/upload', form, { headers: { ...form.getHeaders(), 'Authorization': `Bearer ${token}` } } ); console.log('✓ Upload successful:', uploadResponse.data); } catch (error) { console.error('✗ Upload failed:', error.response?.status, error.response?.data); if (error.response?.data) { console.error('Error details:', JSON.stringify(error.response.data, null, 2)); } } // Clean up fs.unlinkSync(testImagePath); } catch (error) { console.error('Error:', error.message); } } testUpload();