Files
web-cad/test_report.md
T

4.2 KiB

Test Report - Dashboard Redesign (3-Spalten Layout)

Datum: 2026-07-03 Task: Redesign Dashboard mit Projekt-Ordnern, 3-Spalten Layout, Info-Panel

Summary

Check Result
Frontend tsc --noEmit PASS (0 errors)
Frontend vite build PASS (built in 3.73s)
Frontend npm test PASS (374 tests, 15 files)
Backend tsc --noEmit PASS (0 errors)
Backend npm test PASS (239 tests, 16 files)

Backend Test Details

New Tests: projectFolders.test.ts (18 tests)

✓ tests/projectFolders.test.ts (18 tests) 283ms

 Test Files  1 passed (1)
      Tests  18 passed (18)

Tests cover:

  • List empty folders initially
  • Create folder (with/without parent)
  • List folders with created items
  • Get single folder
  • Rename folder
  • Reject folder creation without name
  • Reject rename without name
  • Reject operations on non-existent folder (404)
  • Reject unauthenticated requests (401)
  • Create project with folder_id
  • List projects filtered by folder
  • List unfoldered projects (folderId=null)
  • Move project to different folder
  • Move project to root (folder_id=null)
  • Reject moving to non-existent folder (404)
  • Delete folder moves projects to root
  • Delete remaining folders

Full Backend Suite

Test Files  16 passed (16)
     Tests  239 passed (239)
  Duration  9.73s

(221 existing + 18 new = 239 total)

Frontend Test Details

Test Files  15 passed (15)
     Tests  374 passed (374)
  Duration  12.23s

Build Verification

Frontend Build

✓ 345 modules transformed.
dist/index.html                   0.37 kB │ gzip:   0.27 kB
dist/assets/index-BZ8Y_YgF.css   64.74 kB │ gzip:  10.84 kB
dist/assets/index-BaRGTmsw.js   994.68 kB │ gzip: 334.41 kB
✓ built in 3.73s

Backend TypeScript Check

node_modules/.bin/tsc --noEmit
(exit 0, no errors)

Smoke-Test Description

  • Frontend tsc: 0 TypeScript errors — all types valid
  • Frontend build: Vite build succeeds, output generated correctly
  • Frontend tests: All 374 existing tests pass — no regressions
  • Backend tsc: 0 TypeScript errors — new DBProjectFolder interface, listProjects signature, moveProjectToFolder, CRUD methods all type-safe
  • Backend tests: All 239 tests pass (221 existing + 18 new) — new project folder CRUD and project-folder integration fully tested
  • API endpoints tested via inject: GET/POST/PUT/DELETE /api/project-folders, PUT /api/projects/:id/folder, GET /api/projects?folderId=...

Files Changed

Modified (8 files, +966/-94 lines)

  1. backend/src/database/DatabaseInterface.ts — Added DBProjectFolder interface, folder_id to DBProject, listProjects(ownerId?, folderId?), moveProjectToFolder, project folder CRUD methods
  2. backend/src/database/SqliteAdapter.ts — Implemented all new methods, ALTER TABLE for folder_id on existing DBs, updated createProject with folder_id
  3. backend/src/database/schema.sql — Added project_folders table + indexes
  4. backend/src/routes/projects.ts — Added folderId query param filtering
  5. backend/src/server.ts — Registered projectFolders route
  6. frontend/src/pages/Dashboard.tsx — Complete rewrite with 3-column layout (TreeView, project cards, info panel)
  7. frontend/src/services/api.ts — Added ProjectFolder type, getProjectFolders, createProjectFolder, renameProjectFolder, deleteProjectFolder, moveProjectToFolder, getProjectsByFolder
  8. frontend/src/styles/auth.css — Added 3-column grid layout, TreeView styles, info-panel styles, context menu, folder forms, responsive breakpoint

New (2 files)

  1. backend/src/routes/projectFolders.ts — New route: GET/POST/PUT/DELETE /api/project-folders, PUT /api/projects/:id/folder (111 lines)
  2. backend/tests/projectFolders.test.ts — 18 tests covering all folder CRUD + project-folder integration (285 lines)

Known Issues

  • CSS build warning: Unexpected "}" at line 1519 — pre-existing, not caused by this change
  • Chunk size warning for JS bundle > 500kB — pre-existing

No Forbidden Patterns

  • No as any in production code
  • No @ts-ignore in production code
  • No eslint-disable in production code
  • No console.log in production code
  • No empty methods or stubs
  • No TODO/FIXME markers in main path