# ROA2WEB Unified App - Integration Testing Checklist ## Pre-Test Setup - [ ] Stop any previously running services: `./start-test.sh stop` - [ ] Verify SSH tunnel is configured: `./ssh-tunnel-test.sh status` - [ ] Start all services: `./start-test.sh` - [ ] Wait for all services to start (check logs if needed) ## Service Health Checks ### Backend Services - [ ] Reports Backend (8001): http://localhost:8001/health - [ ] Reports API Docs: http://localhost:8001/docs - [ ] Data Entry Backend (8003): http://localhost:8003/health - [ ] Data Entry API Docs: http://localhost:8003/docs - [ ] Telegram Bot Internal API (8002): Should be running (check logs: `/tmp/telegram_bot.log`) ### Frontend - [ ] Unified Frontend loads: http://localhost:3000 - [ ] No console errors in browser DevTools - [ ] Login page displays correctly ## Authentication Flow ### Login - [ ] Navigate to http://localhost:3000 - [ ] Should redirect to `/login` automatically - [ ] Enter valid test credentials - [ ] Login succeeds and redirects to dashboard - [ ] User info displays in header (username, company selector) - [ ] Access token stored in localStorage - [ ] JWT contains correct user info and companies ### Session Persistence - [ ] Refresh page - user remains logged in - [ ] Close tab and reopen - user remains logged in - [ ] Open in new tab - user is already logged in ## Reports Module (http://localhost:3000/reports) ### Navigation - [ ] Click "Rapoarte" in menu - [ ] Dashboard loads at `/reports/dashboard` - [ ] No console errors - [ ] Company selector works (change company) - [ ] Period selector works (change accounting period) ### Dashboard Widgets - [ ] Metrics cards display (Sales, Purchases, etc.) - [ ] Charts render correctly - [ ] Data loads from Reports API (8001) - [ ] Check Network tab: requests go to `/api/reports/*` ### Reports Pages - [ ] Navigate to "Facturi Clienți" (`/reports/invoices/sales`) - [ ] Table loads with data - [ ] Filters work (date range, company, status) - [ ] Pagination works - [ ] Export buttons work (Excel, PDF) - [ ] Invoice details modal opens - [ ] Navigate to "Facturi Furnizori" (`/reports/invoices/purchases`) - [ ] Verify same functionality as sales invoices ### Treasury Reports - [ ] Navigate to "Trezorerie" (`/reports/treasury`) - [ ] Cash flow data loads - [ ] Charts display correctly - [ ] Date filters work ### Error Boundary Testing - [ ] Manually trigger an error in Reports module (e.g., bad API call) - [ ] ErrorBoundary catches the error - [ ] Error message displays: "A apărut o eroare în modulul Rapoarte" - [ ] Other modules (Data Entry) remain functional ## Data Entry Module (http://localhost:3000/data-entry) ### Navigation - [ ] Click "Introduceri" in menu - [ ] Receipts list loads at `/data-entry/receipts` - [ ] No console errors - [ ] Check Network tab: requests go to `/api/data-entry/*` ### Receipts List - [ ] Table displays receipts - [ ] Status badges display correctly (DRAFT, PENDING, APPROVED) - [ ] Filters work (date range, status, user) - [ ] Create new receipt button visible ### Create Receipt - [ ] Click "Adaugă Bon Fiscal" - [ ] Form displays at `/data-entry/receipts/new` - [ ] Partner/Supplier dropdown loads from Data Entry API - [ ] Expense type dropdown works - [ ] Date picker works - [ ] Amount fields accept input - [ ] File upload works (image/PDF) - [ ] Save as DRAFT works - [ ] Receipt appears in list with DRAFT status ### Edit Receipt - [ ] Click edit on a DRAFT receipt - [ ] Form loads with existing data - [ ] Modify fields - [ ] Save changes - updates successfully - [ ] Delete receipt - removes from list ### Submit for Review - [ ] Open a DRAFT receipt - [ ] Click "Trimite spre aprobare" - [ ] Status changes to PENDING_REVIEW - [ ] Accounting entries auto-generated - [ ] Receipt is read-only in PENDING state ### Approval Workflow (Accountant Role) - [ ] Login as accountant user - [ ] See pending receipts - [ ] Open PENDING receipt - [ ] Review accounting entries - [ ] Approve receipt - status changes to APPROVED - [ ] Receipt becomes fully read-only ### Error Boundary Testing - [ ] Manually trigger an error in Data Entry module - [ ] ErrorBoundary catches the error - [ ] Error message displays: "A apărut o eroare în modulul Introduceri" - [ ] Other modules (Reports) remain functional ## Cross-Module Testing ### Module Switching - [ ] Start in Reports module - [ ] Navigate to Data Entry module - [ ] Return to Reports module - [ ] Company selection persists across modules - [ ] No console errors during switching - [ ] No memory leaks (check DevTools Memory tab) ### Shared State - [ ] Login state shared (logout in one module logs out everywhere) - [ ] Company selection shared (change company affects both modules) - [ ] Period selection shared (for modules that use it) ### API Isolation - [ ] Reports module only calls `/api/reports/*` - [ ] Data Entry module only calls `/api/data-entry/*` - [ ] No cross-contamination of API calls - [ ] Auth headers included in all requests ## Logout Flow - [ ] Click logout button in header - [ ] User redirected to `/login` - [ ] Access token removed from localStorage - [ ] Cannot access protected routes without re-login - [ ] Attempting to access `/reports` or `/data-entry` redirects to login ## Browser Compatibility - [ ] Chrome/Edge (latest) - [ ] Firefox (latest) - [ ] Safari (if available) ## Responsive Design - [ ] Desktop (1920x1080) - [ ] Laptop (1366x768) - [ ] Tablet (768x1024) - [ ] Mobile (375x667) ## Performance - [ ] Initial page load < 3s - [ ] Navigation between modules smooth - [ ] No unnecessary re-renders (check React DevTools) - [ ] API responses cached appropriately - [ ] Bundle sizes reasonable (check Network tab) ## Build & Production - [ ] Run `npm run build` - [ ] Build completes without errors - [ ] Dist folder created with proper structure - [ ] index.html exists - [ ] Assets folder has JS/CSS bundles - [ ] Chunk splitting works (separate bundles for modules) - [ ] Source maps generated (for debugging) ## Cleanup - [ ] Stop all services: `./start-test.sh stop` - [ ] Verify all ports released (8001, 8003, 8002, 3000) - [ ] SSH tunnel stopped - [ ] No lingering processes ## Issues Found Document any issues discovered during testing: | Issue | Module | Severity | Description | Status | |-------|--------|----------|-------------|--------| | | | | | | ## Sign-Off - **Tester**: _______________ - **Date**: _______________ - **Environment**: TEST / DEV / PROD - **Status**: PASS / FAIL / NEEDS FIXES ## Notes Additional observations or comments: