chore: move processed issue files to created/

This commit is contained in:
github-actions[bot]
2026-02-01 15:21:45 +00:00
parent a414a0f059
commit 63138eee98

View File

@@ -0,0 +1,362 @@
# Manual Testing Plan: E2E Test Fixes Validation
**Created:** 2026-02-01
**Status:** Pending
**Priority:** P0 - Verify CI Fixes
**Assignee:** QA Team
---
## Overview
Validate E2E test fixes for feature toggle timeouts and clipboard access failures work correctly in CI environment.
**Fixes Applied:**
1. Feature toggle tests: Sequential wait pattern (4 tests)
2. Clipboard test: Browser-specific verification (1 test)
---
## Test Environment
**Prerequisites:**
- Feature branch: `feature/beta-release`
- Docker E2E container rebuilt with latest code
- Database migrations applied
- Admin user credentials available
**Setup:**
```bash
# Rebuild E2E environment
.github/skills/scripts/skill-runner.sh docker-rebuild-e2e
# Verify container is healthy
docker ps | grep charon-e2e
```
---
## Test Cases
### **TC1: Feature Toggle - Cerberus Security**
**File:** `tests/settings/system-settings.spec.ts`
**Test:** "should toggle Cerberus security feature"
**Line:** ~135-162
**Steps:**
1. Navigate to Settings → System Settings
2. Click Cerberus security toggle
3. Verify PUT request completes (<15s)
4. Verify GET request completes (<10s)
5. Confirm toggle state changed
**Expected Results:**
- ✅ Test completes in <15 seconds total
- ✅ No timeout errors
- ✅ Toggle state persists after refresh
**Command:**
```bash
npx playwright test tests/settings/system-settings.spec.ts --project=chromium --grep "Cerberus"
```
---
### **TC2: Feature Toggle - CrowdSec Enrollment**
**File:** `tests/settings/system-settings.spec.ts`
**Test:** "should toggle CrowdSec console enrollment"
**Line:** ~174-201
**Steps:**
1. Navigate to Settings → System Settings
2. Click CrowdSec console enrollment toggle
3. Verify PUT request completes (<15s)
4. Verify GET request completes (<10s)
5. Confirm toggle state changed
**Expected Results:**
- ✅ Test completes in <15 seconds total
- ✅ No timeout errors
- ✅ Toggle state persists after refresh
**Command:**
```bash
npx playwright test tests/settings/system-settings.spec.ts --project=chromium --grep "CrowdSec"
```
---
### **TC3: Feature Toggle - Uptime Monitoring**
**File:** `tests/settings/system-settings.spec.ts`
**Test:** "should toggle uptime monitoring"
**Line:** ~213-240
**Steps:**
1. Navigate to Settings → System Settings
2. Click uptime monitoring toggle
3. Verify PUT request completes (<15s)
4. Verify GET request completes (<10s)
5. Confirm toggle state changed
**Expected Results:**
- ✅ Test completes in <15 seconds total
- ✅ No timeout errors
- ✅ Toggle state persists after refresh
**Command:**
```bash
npx playwright test tests/settings/system-settings.spec.ts --project=chromium --grep "uptime"
```
---
### **TC4: Feature Toggle - Persistence**
**File:** `tests/settings/system-settings.spec.ts`
**Test:** "should persist feature toggle changes"
**Line:** ~252-298
**Steps:**
1. Navigate to Settings → System Settings
2. Toggle feature ON
3. Verify PUT + GET requests complete
4. Refresh page
5. Verify toggle still ON
6. Toggle feature OFF
7. Verify PUT + GET requests complete
8. Refresh page
9. Verify toggle still OFF
**Expected Results:**
- ✅ Both toggle operations complete in <15s each
- ✅ State persists across page reloads
- ✅ No timeout errors
**Command:**
```bash
npx playwright test tests/settings/system-settings.spec.ts --project=chromium --grep "persist"
```
---
### **TC5: Clipboard Copy - Chromium**
**File:** `tests/settings/user-management.spec.ts`
**Test:** "should copy invite link"
**Line:** ~368-442
**Browser:** Chromium
**Steps:**
1. Navigate to Settings → User Management
2. Create invite for test user
3. Click copy button
4. Verify success toast appears
5. Verify clipboard contains invite link
**Expected Results:**
- ✅ Clipboard contains "accept-invite"
- ✅ Clipboard contains "token="
- ✅ No NotAllowedError
**Command:**
```bash
npx playwright test tests/settings/user-management.spec.ts --project=chromium --grep "copy invite"
```
---
### **TC6: Clipboard Copy - Firefox**
**File:** `tests/settings/user-management.spec.ts`
**Test:** "should copy invite link"
**Browser:** Firefox
**Steps:**
1. Navigate to Settings → User Management
2. Create invite for test user
3. Click copy button
4. Verify success toast appears
5. Test skips clipboard read (not supported)
**Expected Results:**
- ✅ Success toast displayed
- ✅ Invite link input visible with correct value
- ✅ No NotAllowedError
- ✅ Test completes without clipboard verification
**Command:**
```bash
npx playwright test tests/settings/user-management.spec.ts --project=firefox --grep "copy invite"
```
---
### **TC7: Clipboard Copy - WebKit**
**File:** `tests/settings/user-management.spec.ts`
**Test:** "should copy invite link"
**Browser:** WebKit
**Steps:**
1. Navigate to Settings → User Management
2. Create invite for test user
3. Click copy button
4. Verify success toast appears
5. Test skips clipboard read (not supported)
**Expected Results:**
- ✅ Success toast displayed
- ✅ Invite link input visible with correct value
- ✅ No NotAllowedError (previously failing)
- ✅ Test completes without clipboard verification
**Command:**
```bash
npx playwright test tests/settings/user-management.spec.ts --project=webkit --grep "copy invite"
```
---
## Cross-Browser Validation
**Full Suite (All 5 affected tests):**
```bash
npx playwright test \
tests/settings/system-settings.spec.ts \
tests/settings/user-management.spec.ts \
--project=chromium \
--project=firefox \
--project=webkit \
--grep "toggle|copy invite"
```
**Expected Results:**
- ✅ 12 tests pass (4 toggles × 3 browsers = 12, clipboard test already browser-filtered)
- ✅ Total execution time: <2 minutes
- ✅ 0 failures, 0 timeouts, 0 errors
---
## CI Validation
**GitHub Actions Run:**
1. Push changes to `feature/beta-release`
2. Wait for CI workflow to complete
3. Check test results at: https://github.com/Wikid82/Charon/actions
**Success Criteria:**
- ✅ All E2E tests pass on all browsers (Chromium, Firefox, WebKit)
- ✅ No timeout errors in workflow logs
- ✅ No NotAllowedError in WebKit results
- ✅ Build time improved (no 30s timeouts)
---
## Regression Testing
**Verify no side effects:**
```bash
# Run full settings test suite
npx playwright test tests/settings/ --project=chromium
# Check for unintended test failures
npx playwright show-report
```
**Areas to Validate:**
- Other settings tests still pass
- System settings page loads correctly
- User management page functions properly
- No new test flakiness introduced
---
## Bug Scenarios
### **Scenario 1: Feature Toggle Still Timing Out**
**Symptoms:**
- Test fails with timeout error
- Error mentions "waitForResponse" or "30000ms"
**Investigation:**
1. Check backend logs for `/feature-flags` endpoint
2. Verify database writes complete
3. Check network latency in CI environment
4. Confirm PUT timeout (15s) and GET timeout (10s) are present in code
**Resolution:**
- If backend is slow: Increase timeouts further (PUT: 20s, GET: 15s)
- If code error: Verify `clickAndWaitForResponse` imported and used correctly
---
### **Scenario 2: Clipboard Test Fails on Chromium**
**Symptoms:**
- Test fails on Chromium (previously passing browser)
- Error: "clipboard.readText() failed"
**Investigation:**
1. Verify permissions granted: `context.grantPermissions(['clipboard-read', 'clipboard-write'])`
2. Check if page context is correct
3. Verify clipboard API available in test environment
**Resolution:**
- Ensure permission grant happens before clipboard test step
- Verify try-catch block is present in implementation
---
### **Scenario 3: Clipboard Test Still Fails on WebKit/Firefox**
**Symptoms:**
- NotAllowedError still thrown on WebKit/Firefox
**Investigation:**
1. Verify browser detection logic: `testInfo.project?.name`
2. Confirm early return present: `if (browserName !== 'chromium') { return; }`
3. Check if clipboard verification skipped correctly
**Resolution:**
- Verify browser name comparison is exact: `'chromium'` (lowercase)
- Ensure return statement executes before clipboard read
---
## Success Metrics
| Metric | Target | Measurement |
|--------|--------|-------------|
| Feature Toggle Pass Rate | 100% | CI test results |
| Feature Toggle Execution Time | <15s each | Playwright reporter |
| Clipboard Test Pass Rate (All Browsers) | 100% | CI test results |
| CI Build Time Improvement | -5 minutes | GitHub Actions duration |
| Test Flakiness | 0% | 3 consecutive clean CI runs |
---
## Sign-Off
**Test Plan Created By:** GitHub Copilot (Management Agent)
**Date:** 2026-02-01
**Status:** Ready for Execution
**Validation Required By:**
- [ ] QA Engineer (manual execution)
- [ ] CI Pipeline (automated validation)
- [ ] Code Review (PR approval)
---
## References
- **Remediation Plan:** `docs/plans/current_spec.md`
- **QA Report:** `docs/reports/qa_e2e_test_fixes_report.md`
- **Modified Files:**
- `tests/settings/system-settings.spec.ts`
- `tests/settings/user-management.spec.ts`
- **CI Run (Original Failure):** https://github.com/Wikid82/Charon/actions/runs/21558579945/job/62119064951?pr=583