Files
tessera-ctl/.planning/phases/07-dkv-fleet-module/07-VALIDATION.md
T
schalli e9f4f2dcad
Tessera CI/CD / Build & Deploy (push) Blocked by required conditions
Tessera CI/CD / Lint & Type Check (push) Successful in 40s
Tessera CI/CD / Tests (push) Waiting to run
docs(07): UI design contract and validation strategy for DKV fleet module
2026-06-26 14:55:41 +02:00

81 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
phase: 7
slug: dkv-fleet-module
status: draft
nyquist_compliant: false
wave_0_complete: false
created: 2026-06-26
---
# Phase 7 — Validation Strategy
> Per-phase validation contract for feedback sampling during execution.
---
## Test Infrastructure
| Property | Value |
|----------|-------|
| **Framework** | Vitest 4.1.9 (apps/web); no test framework in apps/api |
| **Config file** | `apps/web/vitest.config.ts` |
| **Quick run command** | `pnpm --filter @tessera/web test` |
| **Full suite command** | `pnpm --filter @tessera/web test && pnpm --filter @tessera/api type-check` |
| **Estimated runtime** | ~30 seconds |
---
## Sampling Rate
- **After every task commit:** Run `pnpm --filter @tessera/web test`
- **After every plan wave:** Run `pnpm --filter @tessera/web test && pnpm --filter @tessera/api type-check`
- **Before `/gsd-verify-work`:** Full suite must be green + manual PDF parse inspection + manual Excel file inspection
- **Max feedback latency:** ~30 seconds
---
## Per-Task Verification Map
| Task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status |
|---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------|
| 07-01-01 | 01 | 0 | DKV-02 | A2 | PDF parse output inspected manually | Manual | — | ❌ Wave 0 | ⬜ pending |
| 07-01-02 | 01 | 0 | — | — | ScheduleModule registered in AppModule | Manual type-check | `pnpm --filter @tessera/api type-check` | ✅ | ⬜ pending |
| 07-02-01 | 02 | 1 | DKV-01 | — | Inbox polling returns attachments | Manual integration | — | ❌ Wave 0 | ⬜ pending |
| 07-02-02 | 02 | 1 | DKV-04 | — | Excel 5-column buffer generated | Manual (open .xlsx) | — | — | ⬜ pending |
| 07-03-01 | 03 | 1 | DKV-03 | — | Vehicle CRUD table renders | unit | `pnpm --filter @tessera/web test` | ❌ Wave 0 | ⬜ pending |
| 07-03-02 | 03 | 1 | DKV-05 | — | SMTP settings form saves + reads | unit | `pnpm --filter @tessera/web test` | ❌ Wave 0 | ⬜ pending |
*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
---
## Wave 0 Requirements
- [ ] `apps/api/src/dkv/dkv-parser.validate.ts` — manual validation script: parse `user-files/invoice.pdf`, print structured output, verify vehicle block regex
- [ ] `apps/web/src/app/(portal)/modules/dkv-fleet/settings/components/VehicleTable.test.tsx` — covers DKV-03 (vehicle CRUD table)
- [ ] `apps/web/src/app/(portal)/settings/general/smtp/smtp-settings.test.tsx` — covers DKV-05 (SMTP settings form)
---
## Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|----------|-------------|------------|-------------------|
| Inbox polling detects DKV emails | DKV-01 | Requires live IMAP/Exchange inbox | Configure module with test inbox, trigger "Jetzt prüfen", verify email detected and PDF downloaded |
| PDF parser extracts correct data | DKV-02 | No API test framework; PDF content is binary | Run Wave 0 validation script against `user-files/invoice.pdf`; inspect 27 vehicles × transactions in output |
| Excel export correct format | DKV-04 | Requires human visual inspection in Excel | Open generated `.xlsx`, verify 5 columns (Lieferdatum, Fahrzeug, Fahrer, Ort, Kilometerstand), German date format `TT.MM.JJJJ` |
| SMTP delivery | DKV-04 | Requires live SMTP server | Trigger export with test SMTP config, verify email received with xlsx attachment |
---
## Validation Sign-Off
- [ ] All tasks have `<automated>` verify or Wave 0 dependencies
- [ ] Sampling continuity: no 3 consecutive tasks without automated verify
- [ ] Wave 0 covers all MISSING references
- [ ] No watch-mode flags
- [ ] Feedback latency < 30s
- [ ] `nyquist_compliant: true` set in frontmatter
**Approval:** pending