chore: implement NPM/JSON import routes and fix SMTP persistence

Phase 3 of skipped tests remediation - enables 7 previously skipped E2E tests

Backend:

Add NPM import handler with session-based upload/commit/cancel
Add JSON import handler with Charon/NPM format support
Fix SMTP SaveSMTPConfig using transaction-based upsert
Add comprehensive unit tests for new handlers
Frontend:

Add ImportNPM page component following ImportCaddy pattern
Add ImportJSON page component with format detection
Add useNPMImport and useJSONImport React Query hooks
Add API clients for npm/json import endpoints
Register routes in App.tsx and navigation in Layout.tsx
Add i18n keys for new import pages
Tests:

7 E2E tests now enabled and passing
Backend coverage: 86.8%
Reduced total skipped tests from 98 to 91
Closes: Phase 3 of skipped-tests-remediation plan
This commit is contained in:
GitHub Actions
2026-01-22 21:10:01 +00:00
parent b60e0be5fb
commit bc15e976b2
21 changed files with 3771 additions and 476 deletions
+702 -429
View File
File diff suppressed because it is too large Load Diff
+13 -9
View File
@@ -1,8 +1,8 @@
# Skipped Playwright Tests Remediation Plan
> **Status**: Active
> **Status**: Active (Phase 3 Complete)
> **Created**: 2024
> **Total Skipped Tests**: 98
> **Total Skipped Tests**: 91 (was 98, reduced by 7 in Phase 3)
> **Target**: Reduce to <10 intentional skips
## Executive Summary
@@ -15,12 +15,14 @@ This plan addresses 98 skipped Playwright E2E tests discovered through comprehen
|----------|-------|--------|----------|
| Environment-Dependent (Cerberus) | 35 | S | P0 |
| Feature Not Implemented | 25 | L | P1 |
| Route/API Not Implemented | 12 | M | P1 |
| UI Mismatch/Test ID Issues | 10 | S | P2 |
| Route/API Not Implemented | 6 | M | P1 |
| UI Mismatch/Test ID Issues | 9 | S | P2 |
| TestDataManager Auth Issues | 8 | M | P1 |
| Flaky/Timing Issues | 5 | S | P2 |
| Intentional Skips | 3 | - | - |
> **Note**: Phase 3 completed - NPM/JSON import routes implemented (6→0), SMTP fix (1 test), reducing total from 98 to 91.
---
## Category 1: Environment-Dependent Tests (Cerberus Disabled)
@@ -339,13 +341,14 @@ These tests are intentionally skipped with documented reasons:
### Phase 3: Backend Routes (Week 3-4)
**Target**: Implement missing API routes
**Status**: ✅ COMPLETE (2026-01-22)
1. Implement NPM import route
2. Implement JSON import route
3. Review SMTP persistence issue
4. Re-enable import tests (+6 tests)
1. Implemented NPM import route (`POST /api/v1/import/npm/upload`, `commit`, `cancel`)
2. Implemented JSON import route (`POST /api/v1/import/json/upload`, `commit`, `cancel`)
3. ✅ Fixed SMTP persistence bug (settings now persist correctly after save)
4. Re-enabled import tests (+7 tests now passing)
**Estimated Work**: 16-24 hours
**Actual Work**: ~20 hours
### Phase 4: UI Components (Week 5-8)
**Target**: Implement missing frontend components
@@ -462,3 +465,4 @@ grep -rn "test\.skip\|test\.fixme" tests/ --include="*.spec.ts" > skip-report.tx
| Date | Author | Change |
|------|--------|--------|
| 2024-XX-XX | AI Analysis | Initial plan created |
| 2026-01-22 | Implementation Team | Phase 3 complete - NPM/JSON import routes implemented, SMTP persistence fixed, 7 tests re-enabled |