const http = require('http'); function makeRequest(options, data = null) { return new Promise((resolve, reject) => { const req = http.request(options, (res) => { let body = ''; res.on('data', (chunk) => { body += chunk; }); res.on('end', () => { try { const response = JSON.parse(body); resolve({ status: res.statusCode, data: response }); } catch (e) { resolve({ status: res.statusCode, data: body }); } }); }); req.on('error', (err) => { reject(err); }); if (data) { req.write(JSON.stringify(data)); } req.end(); }); } async function testAPI() { console.log('šŸ” Testing LuckyChit API...\n'); try { // Test health endpoint console.log('1. Testing health endpoint...'); const healthResponse = await makeRequest({ hostname: 'localhost', port: 3000, path: '/health', method: 'GET' }); console.log('āœ… Health check passed:', healthResponse.data.message); console.log(''); // Test login endpoint console.log('2. Testing login endpoint...'); const loginResponse = await makeRequest({ hostname: 'localhost', port: 3000, path: '/api/auth/login', method: 'POST', headers: { 'Content-Type': 'application/json' } }, { mobile_number: '9876543210', password: 'password123' }); if (loginResponse.status === 200) { console.log('āœ… Login successful'); const token = loginResponse.data.data.token; console.log('Token received:', token ? 'Yes' : 'No'); console.log(''); // Test chit groups endpoint with token console.log('3. Testing chit groups endpoint with token...'); const groupsResponse = await makeRequest({ hostname: 'localhost', port: 3000, path: '/api/chit-groups/manager', method: 'GET', headers: { 'Authorization': `Bearer ${token}` } }); if (groupsResponse.status === 200) { console.log('āœ… Chit groups endpoint working'); const groups = groupsResponse.data.data?.chitGroups || []; console.log('Groups found:', groups.length); if (groups.length > 0) { const groupId = groups[0].id; console.log('Testing with group ID:', groupId); console.log(''); // Test stats endpoint console.log('4. Testing stats endpoint...'); const statsResponse = await makeRequest({ hostname: 'localhost', port: 3000, path: `/api/chit-groups/${groupId}/stats`, method: 'GET', headers: { 'Authorization': `Bearer ${token}` } }); if (statsResponse.status === 200) { console.log('āœ… Stats endpoint working'); console.log('Stats data received'); } else { console.log('āŒ Stats endpoint failed:', statsResponse.status, statsResponse.data.message); } // Test financial data endpoint console.log('5. Testing financial data endpoint...'); const financialResponse = await makeRequest({ hostname: 'localhost', port: 3000, path: `/api/chit-groups/${groupId}/financial-data`, method: 'GET', headers: { 'Authorization': `Bearer ${token}` } }); if (financialResponse.status === 200) { console.log('āœ… Financial data endpoint working'); const financialData = financialResponse.data.data?.financial_data || []; console.log('Financial entries:', financialData.length); } else { console.log('āŒ Financial data endpoint failed:', financialResponse.status, financialResponse.data.message); } } else { console.log('šŸ’” No chit groups found. Create a chit group first.'); } } else { console.log('āŒ Chit groups endpoint failed:', groupsResponse.status, groupsResponse.data.message); } } else { console.log('āŒ Login failed:', loginResponse.status, loginResponse.data.message); console.log('šŸ’” You may need to create a test user first'); } } catch (error) { console.error('āŒ Test failed:', error.message); } console.log('\nšŸŽ‰ API testing completed!'); } testAPI();