const fetch = require('node-fetch'); describe('Production Environment', () => { jest.setTimeout(30000); test('CouchDB is accessible', async () => { console.log('1️⃣ Testing CouchDB connection...'); try { const response = await fetch('http://localhost:5984/', { headers: { Authorization: 'Basic ' + Buffer.from('admin:password').toString('base64'), }, }); if (response.ok) { const data = await response.json(); console.log('✅ CouchDB is accessible'); console.log(` Version: ${data.version}`); expect(data.version).toBeDefined(); } else { console.log('❌ CouchDB connection failed'); fail('CouchDB connection failed'); } } catch (error) { console.log('❌ CouchDB connection error:', error.message); throw error; } }); test('Required databases exist', async () => { console.log('2️⃣ Checking databases...'); try { const response = await fetch('http://localhost:5984/_all_dbs', { headers: { Authorization: 'Basic ' + Buffer.from('admin:password').toString('base64'), }, }); if (response.ok) { const databases = await response.json(); console.log('✅ Available databases:', databases); const requiredDbs = [ 'users', 'medications', 'settings', 'taken_doses', 'reminders', ]; const missing = requiredDbs.filter(db => !databases.includes(db)); if (missing.length === 0) { console.log('✅ All required databases exist'); expect(missing).toHaveLength(0); } else { console.log('⚠️ Missing databases:', missing); console.warn(`Missing databases: ${missing.join(', ')}`); } } else { fail('Failed to fetch database list'); } } catch (error) { console.log('❌ Database check error:', error.message); throw error; } }); test('Frontend is accessible', async () => { console.log('3️⃣ Testing frontend accessibility...'); try { const response = await fetch('http://localhost:8080/'); if (response.ok) { console.log('✅ Frontend is accessible at http://localhost:8080'); expect(response.status).toBe(200); } else { console.log('❌ Frontend connection failed'); console.warn('Frontend may not be running'); } } catch (error) { console.log('❌ Frontend connection error:', error.message); console.warn('Frontend may not be running'); } }); afterAll(() => { console.log('\n🎯 Production Environment Test Summary:'); console.log(' • CouchDB: http://localhost:5984'); console.log(' • Frontend: http://localhost:8080'); console.log(' • Admin Login: admin@localhost / admin123!'); console.log( '\n🚀 Your medication reminder app is ready for production testing!' ); }); });