- Created docs/ directory for better organization - Moved 35 markdown files from root to docs/ - Includes all status reports, guides, and testing documentation Co-Authored-By: Warp <agent@warp.dev>
5.3 KiB
Frontend Testing Guide
Prerequisites
1. Install Node.js
The frontend requires Node.js 18+ and npm. Install it using one of these methods:
Option 1: Use the install script (Recommended)
sudo ./scripts/install-requirements.sh
Option 2: Install Node.js manually
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Verify installation:
node --version # Should show v20.x or higher
npm --version # Should show 10.x or higher
2. Start Backend API
The frontend needs the backend API running:
cd backend
export CALYPSO_DB_PASSWORD="calypso123"
export CALYPSO_JWT_SECRET="test-jwt-secret-key-minimum-32-characters-long"
go run ./cmd/calypso-api -config config.yaml.example
The backend should be running on http://localhost:8080
Testing Steps
Step 1: Install Frontend Dependencies
cd frontend
npm install
This will install all required packages (React, Vite, TypeScript, etc.)
Step 2: Verify Build
Test that the project compiles without errors:
npm run build
This should complete successfully and create a dist/ directory.
Step 3: Start Development Server
npm run dev
The frontend will start on http://localhost:3000
Step 4: Test in Browser
-
Open Browser: Navigate to
http://localhost:3000 -
Login Page:
- Should see the login form
- Try logging in with test credentials:
- Username:
admin - Password:
admin123(or whatever password you set)
- Username:
-
Dashboard:
- After login, should see the dashboard
- Check system health status
- Verify overview cards show data
- Check quick actions work
-
Storage Page:
- Navigate to Storage from sidebar
- Should see repositories, disks, and volume groups
- Verify data displays correctly
- Check capacity bars render
-
Alerts Page:
- Navigate to Alerts from sidebar
- Should see alert list
- Test filtering (All / Unacknowledged)
- Try acknowledge/resolve actions
Automated Testing Script
Use the provided test script:
./scripts/test-frontend.sh
This script will:
- ✅ Check Node.js installation
- ✅ Verify backend API is running
- ✅ Install dependencies (if needed)
- ✅ Test build
- ✅ Provide instructions for starting dev server
Expected Behavior
Login Flow
- User enters credentials
- On success: Redirects to dashboard, token stored
- On failure: Shows error message
Dashboard
- System health indicator (green/yellow/red)
- Overview cards with real data:
- Storage repositories count
- Active alerts count
- iSCSI targets count
- Running tasks count
- Quick action buttons
- Recent alerts preview
Storage Page
- Repository list with:
- Name and description
- Capacity usage bars
- Status indicators
- Physical disks list
- Volume groups list
Alerts Page
- Alert cards with severity colors
- Filter buttons (All / Unacknowledged)
- Acknowledge and Resolve buttons
- Relative time display
Troubleshooting
Issue: "Node.js not found"
Solution: Install Node.js using the install script or manually (see Prerequisites)
Issue: "Cannot connect to API"
Solution:
- Ensure backend is running on
http://localhost:8080 - Check backend logs for errors
- Verify database is running and accessible
Issue: "401 Unauthorized" errors
Solution:
- Check if user exists in database
- Verify password is correct (may need to update with Argon2id hash)
- Check JWT secret is set correctly
Issue: "Build fails with TypeScript errors"
Solution:
- Check TypeScript version:
npm list typescript - Verify all imports are correct
- Check for missing dependencies
Issue: "Blank page after login"
Solution:
- Check browser console for errors
- Verify API responses are correct
- Check network tab for failed requests
Manual Testing Checklist
- Login page displays correctly
- Login with valid credentials works
- Login with invalid credentials shows error
- Dashboard loads after login
- System health status displays
- Overview cards show data
- Navigation sidebar works
- Storage page displays repositories
- Storage page displays disks
- Storage page displays volume groups
- Alerts page displays alerts
- Alert filtering works
- Alert acknowledge works
- Alert resolve works
- Logout works
- Protected routes redirect to login when not authenticated
Next Steps After Testing
Once basic functionality is verified:
- Continue building remaining pages (Tape Libraries, iSCSI, Tasks, System, IAM)
- Add WebSocket integration for real-time updates
- Enhance UI with more components
- Add error boundaries
- Implement loading states
- Add toast notifications
Quick Test Commands
# Check Node.js
node --version && npm --version
# Install dependencies
cd frontend && npm install
# Test build
npm run build
# Start dev server
npm run dev
# In another terminal, check backend
curl http://localhost:8080/api/v1/health
Notes
- The frontend dev server proxies API requests to
http://localhost:8080 - WebSocket connections will use
ws://localhost:8080/ws - Authentication tokens are stored in localStorage
- The frontend will automatically redirect to login on 401 errors