Skip to main content

Manual Browser Testing Guide - Sprint 2 Validation

Purpose: Validate end-to-end user experience in production Environment: https://coditect.ai (GKE Production) Date: 2025-10-20 Prerequisite: Automated tests passed (4/4) ✅


Pre-Test Setup

Test Credentials

Option 1: Use Existing Test User (from automated validation)

  • Email: test-1760920426@coditect.test
  • Password: Test123!Pass
  • User ID: 9bbd745b-6dfa-4483-825b-784d63ebf57d

Option 2: Create New Test User (recommended for fresh testing)

  • Use any email format: your-email@example.com
  • Password requirements: Min 8 chars, 1 uppercase, 1 lowercase, 1 number, 1 special char
  • Example: TestUser2025!

Browser Requirements

Recommended: Chrome 120+, Firefox 115+, Safari 17+, Edge 120+

Required Browser Features:

  • JavaScript enabled
  • Cookies enabled
  • LocalStorage enabled
  • WebSocket support
  • Modern ES6+ support

Testing Checklist

Print this checklist and mark off each test as you complete it:

Phase 1: Frontend Loading
[ ] Homepage loads
[ ] No console errors
[ ] UI renders correctly
[ ] Navigation working

Phase 2: Registration
[ ] Registration page loads
[ ] Form validation works
[ ] User registration succeeds
[ ] Redirect to login/dashboard

Phase 3: Login
[ ] Login page loads
[ ] Form validation works
[ ] Login with test user succeeds
[ ] JWT token stored
[ ] Redirect to dashboard

Phase 4: theia IDE
[ ] IDE interface loads
[ ] File explorer visible
[ ] editor pane visible
[ ] terminal pane visible
[ ] Menu bar working

Phase 5: terminal
[ ] terminal opens
[ ] Basic commands work (ls, pwd, echo)
[ ] Output displays correctly
[ ] Input responsive

Phase 6: File Operations
[ ] Create new file
[ ] Edit file content
[ ] Save file
[ ] Delete file
[ ] File persists after refresh

Phase 7: Session Management
[ ] Session persists after refresh
[ ] Logout works
[ ] Re-login works
[ ] Session state restored

Phase 1: Frontend Loading

Test 1.1: Homepage Access

Steps:

  1. Open browser (incognito/private mode recommended)
  2. Navigate to: https://coditect.ai
  3. Wait for page load (should be < 3 seconds)

Expected Results:

  • ✅ Page loads without errors
  • ✅ No SSL certificate warnings
  • ✅ Navigation bar visible
  • ✅ Main content visible
  • ✅ Footer visible (if present)

Check Browser Console (F12 → Console tab):

  • ⚠️ Look for errors (red messages)
  • ⚠️ Look for warnings (yellow messages)
  • ✅ No critical errors allowed

Document Any Issues:

Issue: [description]
Screenshot: [attach or describe]
Console Errors: [paste any errors]

Test 1.2: Navigation

Steps:

  1. Click "Register" (or "Sign Up") link
  2. Verify registration page loads
  3. Click "Login" (or "Sign In") link
  4. Verify login page loads
  5. Click "Home" or logo
  6. Verify returns to homepage

Expected Results:

  • ✅ All navigation links work
  • ✅ No 404 errors
  • ✅ No broken links

Phase 2: Registration

Test 2.1: Registration Form Validation

Steps:

  1. Navigate to registration page
  2. Click "Register" without filling form

Expected Results:

  • ✅ Form validation errors shown
  • ✅ Required fields highlighted
  • ✅ Error messages clear and helpful

Test 2.2: Password Validation

Steps:

  1. Try password: weak (too short)
  2. Try password: password (no uppercase/numbers/special)
  3. Try password: Password1 (no special char)
  4. Try password: Password1! (should work)

Expected Results:

  • ✅ Weak passwords rejected
  • ✅ Error messages explain requirements
  • ✅ Strong password accepted

Test 2.3: User Registration

Steps:

  1. Fill registration form:
    • First Name: Manual
    • Last Name: Test
    • Email: manual-test-[timestamp]@coditect.test (use current timestamp)
    • Password: ManualTest2025!
    • Confirm Password: ManualTest2025!
  2. Click "Register" or "Create Account"
  3. Observe response

Expected Results:

  • ✅ Registration succeeds
  • ✅ Success message shown
  • ✅ Redirected to dashboard or login page
  • ✅ JWT token received (check browser DevTools → Application → Local Storage)

Check Network Tab (F12 → Network tab):

  1. Find POST /api/v5/auth/register request
  2. Verify response status: 200 OK
  3. Verify response body contains:
    {
    "token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
    "user": {
    "id": "uuid-here",
    "email": "your-email",
    "first_name": "Manual",
    "last_name": "Test"
    }
    }

Document Registration:

Timestamp: [when registered]
Email Used: [email address]
User ID: [from response]
Success: [Yes/No]
Issues: [any problems]

Phase 3: Login

Test 3.1: Login Form Validation

Steps:

  1. Navigate to login page
  2. Click "Login" without filling form

Expected Results:

  • ✅ Email required error
  • ✅ Password required error

Test 3.2: Invalid Credentials

Steps:

  1. Enter email: test-1760920426@coditect.test
  2. Enter password: WrongPassword123!
  3. Click "Login"

Expected Results:

  • ✅ Login fails
  • ✅ Error message: "Invalid credentials" or similar
  • ✅ No redirect
  • ✅ Form cleared or maintains email

Test 3.3: Valid Login

Steps:

  1. Enter email: test-1760920426@coditect.test
  2. Enter password: Test123!Pass
  3. Click "Login"
  4. Observe response

Expected Results:

  • ✅ Login succeeds
  • ✅ Success message or immediate redirect
  • ✅ Redirected to dashboard or IDE
  • ✅ JWT token stored in LocalStorage
  • ✅ User info displayed (name, avatar, etc.)

Check Network Tab:

  1. Find POST /api/v5/auth/login request
  2. Verify response status: 200 OK
  3. Verify response contains new JWT token
  4. Note session_id from token (decode JWT at jwt.io)

Check LocalStorage (F12 → Application → Local Storage → https://coditect.ai):

  • token or authToken key present
  • ✅ Value is valid JWT (starts with eyJ)

Document Login:

Login Time: [timestamp]
Email: test-1760920426@coditect.test
Session ID: [from JWT payload]
Token Family: [from JWT payload]
Success: [Yes/No]
Issues: [any problems]

Phase 4: theia IDE

Test 4.1: IDE Interface Loading

Steps:

  1. After successful login, observe IDE loading
  2. Wait for full IDE interface to appear
  3. Maximize browser window for full view

Expected Results:

  • ✅ IDE loads within 5 seconds
  • ✅ Menu bar visible (File, Edit, View, terminal, etc.)
  • ✅ File explorer (left sidebar) visible
  • ✅ editor pane (center) visible
  • ✅ terminal pane (bottom) visible or available
  • ✅ Status bar (bottom) visible
  • ✅ No loading spinners stuck

Visual Checklist:

[ ] Top Menu Bar: File | Edit | View | Selection | terminal | Help
[ ] Left Sidebar: File Explorer icon, Search icon, Git icon
[ ] Center Pane: Welcome tab or editor
[ ] Bottom Pane: terminal, Output, Problems, Debug Console tabs
[ ] Status Bar: Line/Col, Language, Encoding, Git branch

Check Browser Console:

  • ⚠️ Look for errors related to theia loading
  • ⚠️ Look for WebSocket connection errors
  • ✅ No critical errors blocking IDE

Screenshot: Take screenshot of full IDE interface for documentation

Test 4.2: File Explorer

Steps:

  1. Click "File Explorer" icon (left sidebar)
  2. Observe file tree
  3. Right-click in file explorer
  4. Verify context menu appears

Expected Results:

  • ✅ File explorer opens
  • ✅ Root directory shown (may be empty or have sample files)
  • ✅ Right-click context menu shows options:
    • New File
    • New Folder
    • Refresh
    • etc.

Test 4.3: Menu Bar Navigation

Steps:

  1. Click "File" menu
  2. Verify dropdown appears
  3. Click "terminal" menu
  4. Verify terminal options appear
  5. Click "View" menu
  6. Verify view options appear

Expected Results:

  • ✅ All menus open correctly
  • ✅ Menu items visible and clickable
  • ✅ No broken menu rendering

Phase 5: terminal Functionality

Test 5.1: Open terminal

Steps:

  1. Click "terminal" menu → "New terminal" OR
  2. Click terminal icon in bottom panel OR
  3. Use keyboard shortcut: `Ctrl+`` (backtick)

Expected Results:

  • ✅ terminal pane opens (usually bottom of screen)
  • ✅ Command prompt visible
  • ✅ Cursor blinking
  • ✅ Ready for input

terminal Prompt Should Show:

user@container:/workspace$

(or similar, depending on container configuration)

Test 5.2: Basic Commands

Test Command: pwd (print working directory)

Steps:

  1. Type: pwd
  2. Press Enter
  3. Observe output

Expected Output:

/workspace

(or project root directory)


Test Command: ls (list files)

Steps:

  1. Type: ls
  2. Press Enter
  3. Observe output

Expected Output:

backend/  docs/  node_modules/  package.json  README.md  src/  ...

(actual project files and directories)


Test Command: echo (print text)

Steps:

  1. Type: echo "Hello from Coditect IDE"
  2. Press Enter
  3. Observe output

Expected Output:

Hello from Coditect IDE

Test Command: whoami (current user)

Steps:

  1. Type: whoami
  2. Press Enter
  3. Observe output

Expected Output:

hal

(or container username)


Test Command: date (current date/time)

Steps:

  1. Type: date
  2. Press Enter
  3. Observe output

Expected Output:

Sun Oct 20 02:50:15 UTC 2025

(current date and time)


Test 5.3: terminal Input/Output

Test: Multi-line Input

Steps:

  1. Type: echo "Line 1"
  2. Press Enter
  3. Type: echo "Line 2"
  4. Press Enter
  5. Observe both outputs

Expected Results:

  • ✅ Both commands execute separately
  • ✅ Output appears after each command
  • ✅ terminal scrolls if needed

Test: Arrow Key Navigation

Steps:

  1. Type: echo "test"
  2. Press Enter
  3. Press Up Arrow
  4. Observe previous command appears
  5. Press Down Arrow
  6. Observe command clears or cycles

Expected Results:

  • ✅ Up arrow shows command history
  • ✅ Down arrow navigates history
  • ✅ Command history persists

Test: Tab Completion

Steps:

  1. Type: ls doc (partial directory name)
  2. Press Tab
  3. Observe completion

Expected Results:

  • ✅ Tab completes to ls docs/ (if docs/ exists)
  • ✅ Tab shows multiple options if ambiguous
  • ✅ Tab completion works for files and commands

Phase 6: File Operations

Test 6.1: Create New File

Steps:

  1. In file explorer, right-click root directory
  2. Select "New File"
  3. Name file: test-manual-validation.txt
  4. Press Enter
  5. Observe file created

Expected Results:

  • ✅ File appears in file explorer
  • ✅ File opens in editor pane
  • ✅ Cursor ready in editor

Test 6.2: Edit File Content

Steps:

  1. In editor, type:
    Sprint 2 Manual Validation Test
    Created: [current date/time]
    User: manual-test

    This file validates:
    - File creation working
    - editor working
    - File save working
    - Persistence working
  2. Observe typing
  3. Look for auto-save indicator or unsaved marker

Expected Results:

  • ✅ Text appears as you type
  • ✅ No lag or input delay
  • ✅ Syntax highlighting (if applicable)
  • ✅ File marked as unsaved (dot or asterisk in tab)

Test 6.3: Save File

Steps:

  1. Press Ctrl+S (Windows/Linux) or Cmd+S (Mac) OR
  2. Click "File" menu → "Save"
  3. Observe save indicator

Expected Results:

  • ✅ File saved (unsaved marker removed)
  • ✅ Success message or notification
  • ✅ File contents preserved

Test 6.4: Verify File Persistence (terminal)

Steps:

  1. Open terminal (if not already open)
  2. Type: cat test-manual-validation.txt
  3. Press Enter
  4. Observe output

Expected Output:

Sprint 2 Manual Validation Test
Created: [date/time you entered]
User: manual-test

This file validates:
- File creation working
- editor working
- File save working
- Persistence working

Expected Results:

  • ✅ File contents match what you typed
  • ✅ File saved to filesystem
  • ✅ File readable from terminal

Test 6.5: File Persistence (Browser Refresh)

Steps:

  1. Press F5 or Ctrl+R to refresh browser
  2. Wait for IDE to reload
  3. Look for test-manual-validation.txt in file explorer
  4. Open file in editor

Expected Results:

  • ✅ File still present after refresh
  • ✅ File contents preserved
  • ✅ File opens correctly
  • ✅ editor shows saved content

Test 6.6: Delete File

Steps:

  1. Right-click test-manual-validation.txt in file explorer
  2. Select "Delete"
  3. Confirm deletion (if prompted)
  4. Observe file removed

Expected Results:

  • ✅ File removed from file explorer
  • ✅ editor tab closed (if file was open)
  • ✅ File deleted from filesystem

Verify Deletion:

  1. In terminal, type: ls test-manual-validation.txt
  2. Press Enter
  3. Expected output: ls: cannot access 'test-manual-validation.txt': No such file or directory

Phase 7: Session Management

Test 7.1: Session Persistence (Browser Refresh)

Steps:

  1. Note current session state (files open, terminal history, etc.)
  2. Press F5 to refresh browser
  3. Wait for reload
  4. Observe session restoration

Expected Results:

  • ✅ Auto-login (no login prompt)
  • ✅ IDE reloads
  • ✅ Open files restored (if applicable)
  • ✅ terminal available (may reset)
  • ✅ No data loss

Check LocalStorage:

  • ✅ JWT token still present
  • ✅ Same token as before refresh

Test 7.2: Session Persistence (Browser Close/Reopen)

Steps:

  1. Close browser completely
  2. Wait 10 seconds
  3. Reopen browser
  4. Navigate to https://coditect.ai
  5. Observe behavior

Expected Results:

  • ✅ Auto-login (if token not expired)
  • ✅ IDE loads without login prompt
  • ✅ Session restored

OR (if token expired):

  • ✅ Redirected to login page
  • ✅ Login works with test credentials
  • ✅ New session created

Test 7.3: Logout

Steps:

  1. Look for "Logout" or "Sign Out" button/link
  2. Click logout
  3. Observe behavior

Expected Results:

  • ✅ Logged out successfully
  • ✅ Redirected to login page or homepage
  • ✅ LocalStorage token removed
  • ✅ Cannot access IDE without re-login

Verify Logout:

  1. Try to navigate to https://coditect.ai/ide (or dashboard)
  2. Should redirect to login page
  3. Check LocalStorage: token key should be removed

Test 7.4: Re-Login After Logout

Steps:

  1. After logout, click "Login"
  2. Enter credentials:
    • Email: test-1760920426@coditect.test
    • Password: Test123!Pass
  3. Click "Login"
  4. Observe behavior

Expected Results:

  • ✅ Login succeeds
  • ✅ New JWT token issued
  • ✅ IDE loads
  • ✅ Fresh session started

Check Network Tab:

  • ✅ New POST /api/v5/auth/login request
  • ✅ New session_id in JWT payload
  • ✅ Different from previous session_id

Phase 8: Advanced terminal Tests (Optional)

Test 8.1: Node.js

Steps:

  1. Type: node --version
  2. Press Enter

Expected Output:

v18.x.x

(or current Node version in container)

Test 8.2: NPM

Steps:

  1. Type: npm --version
  2. Press Enter

Expected Output:

9.x.x

(or current npm version)

Test 8.3: Git

Steps:

  1. Type: git --version
  2. Press Enter

Expected Output:

git version 2.x.x

Test 8.4: Run Simple Script

Steps:

  1. Create file: test-script.js
  2. Add content:
    console.log("Coditect IDE - Script Execution Test");
    console.log("Date:", new Date().toISOString());
  3. Save file
  4. In terminal, type: node test-script.js
  5. Press Enter

Expected Output:

Coditect IDE - Script Execution Test
Date: 2025-10-20T02:50:15.123Z

Test Results Summary Template

Copy and fill out this template after completing all tests:

# Manual Browser Testing Results - Sprint 2

**Date**: 2025-10-20
**Tester**: [Your Name]
**Browser**: [Chrome 120 / Firefox 115 / etc.]
**OS**: [Windows 11 / macOS 14 / etc.]
**Session Duration**: [how long testing took]

---

## Phase 1: Frontend Loading
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- Issues: [describe any issues]

## Phase 2: Registration
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- Test User Created: [email and user ID]
- Issues: [describe any issues]

## Phase 3: Login
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- Session ID: [from JWT]
- Issues: [describe any issues]

## Phase 4: theia IDE
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- Load Time: [seconds]
- Issues: [describe any issues]

## Phase 5: terminal
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- Commands Tested: pwd, ls, echo, whoami, date
- Issues: [describe any issues]

## Phase 6: File Operations
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- File Created: test-manual-validation.txt
- Persistence: [verified after refresh]
- Issues: [describe any issues]

## Phase 7: Session Management
- [ ] ✅ PASS | [ ] ❌ FAIL | [ ] ⚠️ ISSUES
- Refresh Test: [PASS/FAIL]
- Logout Test: [PASS/FAIL]
- Re-login Test: [PASS/FAIL]
- Issues: [describe any issues]

---

## Overall Result
- [ ] ✅ ALL TESTS PASSED - Ready for Sprint 3
- [ ] ⚠️ MINOR ISSUES - Proceed with caution
- [ ] ❌ CRITICAL FAILURES - Fix before Sprint 3

---

## Critical Blockers Found
[List any critical issues that must be fixed before proceeding]

## Minor Issues Found
[List any minor issues that can be addressed later]

## Screenshots Attached
1. [Describe screenshot 1]
2. [Describe screenshot 2]
...

---

## Recommendations
[What should be done next based on test results]

Troubleshooting Common Issues

Issue: IDE Not Loading After Login

Symptoms: Login succeeds but IDE doesn't appear

Debug Steps:

  1. Check browser console for errors
  2. Check Network tab for failed requests
  3. Look for WebSocket connection errors
  4. Verify JWT token in LocalStorage

Possible Solutions:

  • Clear browser cache and LocalStorage
  • Try different browser
  • Check if WebSocket ports are blocked
  • Verify GKE pods are running: kubectl get pods -n coditect-app

Issue: terminal Not Opening

Symptoms: terminal menu option doesn't work

Debug Steps:

  1. Check browser console for errors
  2. Try keyboard shortcut: `Ctrl+``
  3. Check bottom panel - terminal may be minimized
  4. Try "View" → "terminal" from menu

Possible Solutions:

  • Refresh browser
  • Check if terminal service is running in container
  • Verify terminal is not blocked by browser security

Issue: File Save Not Working

Symptoms: Files don't save or changes don't persist

Debug Steps:

  1. Check for error messages
  2. Verify file permissions in terminal: ls -la
  3. Check if filesystem is read-only
  4. Look for disk space issues: df -h

Possible Solutions:

  • Try saving in different directory
  • Check file permissions
  • Verify OPFS/FoundationDB integration
  • Contact support if persistent

Issue: Session Expires Immediately

Symptoms: Logged out after every refresh

Debug Steps:

  1. Check JWT expiry time (decode at jwt.io)
  2. Check if LocalStorage is being cleared
  3. Verify browser cookies enabled
  4. Check for browser extensions blocking storage

Possible Solutions:

  • Enable cookies and LocalStorage
  • Disable privacy extensions temporarily
  • Use incognito mode
  • Check backend JWT expiry settings

Contact & Support

If you encounter critical issues during testing:

  1. Document the issue using the template above
  2. Take screenshots of errors and console output
  3. Note the exact steps to reproduce
  4. Check existing issues in sprint-2-validation-results.md
  5. File new issue if unique problem found

Next Steps After Manual Testing

If All Tests Pass ✅

  1. Update sprint-2-validation-results.md with manual test results
  2. Mark Sprint 2 as FULLY VALIDATED
  3. Proceed to Sprint 3: .coditect migration (Phase 1 - 1 day)
  4. Celebrate! 🎉

If Issues Found ⚠️

  1. Document all issues in detail
  2. Prioritize: Critical vs. Minor
  3. Fix critical blockers before Sprint 3
  4. Create tickets for minor issues
  5. Re-test after fixes

If Critical Failures ❌

  1. STOP - Do not proceed to Sprint 3
  2. Document all failures thoroughly
  3. Investigate root causes
  4. Create detailed bug reports
  5. Fix and redeploy
  6. Re-run full validation (automated + manual)

Good luck with testing! 🚀